@videojs/react 10.0.0-beta.30 → 10.0.0-beta.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/default/i18n/context.js.map +1 -1
- package/dist/default/i18n/create-i18n.js +10 -5
- package/dist/default/i18n/create-i18n.js.map +1 -1
- package/dist/default/i18n/get-provider-root-props.js +4 -2
- package/dist/default/i18n/get-provider-root-props.js.map +1 -1
- package/dist/default/i18n/locales/all/register.js.map +1 -1
- package/dist/default/i18n/locales/ar/register.js.map +1 -1
- package/dist/default/i18n/locales/az/register.js.map +1 -1
- package/dist/default/i18n/locales/bg/register.js.map +1 -1
- package/dist/default/i18n/locales/bn/register.js.map +1 -1
- package/dist/default/i18n/locales/bs/register.js.map +1 -1
- package/dist/default/i18n/locales/ca/register.js.map +1 -1
- package/dist/default/i18n/locales/cs/register.js.map +1 -1
- package/dist/default/i18n/locales/cy/register.js.map +1 -1
- package/dist/default/i18n/locales/da/register.js.map +1 -1
- package/dist/default/i18n/locales/de/register.js.map +1 -1
- package/dist/default/i18n/locales/el/register.js.map +1 -1
- package/dist/default/i18n/locales/en/register.js.map +1 -1
- package/dist/default/i18n/locales/es/register.js.map +1 -1
- package/dist/default/i18n/locales/et/register.js.map +1 -1
- package/dist/default/i18n/locales/eu/register.js.map +1 -1
- package/dist/default/i18n/locales/fa/register.js.map +1 -1
- package/dist/default/i18n/locales/fi/register.js.map +1 -1
- package/dist/default/i18n/locales/fr/register.js.map +1 -1
- package/dist/default/i18n/locales/gd/register.js.map +1 -1
- package/dist/default/i18n/locales/gl/register.js.map +1 -1
- package/dist/default/i18n/locales/he/register.js.map +1 -1
- package/dist/default/i18n/locales/hi/register.js.map +1 -1
- package/dist/default/i18n/locales/hr/register.js.map +1 -1
- package/dist/default/i18n/locales/hu/register.js.map +1 -1
- package/dist/default/i18n/locales/id/register.js.map +1 -1
- package/dist/default/i18n/locales/it/register.js.map +1 -1
- package/dist/default/i18n/locales/ja/register.js.map +1 -1
- package/dist/default/i18n/locales/ko/register.js.map +1 -1
- package/dist/default/i18n/locales/lt/register.js.map +1 -1
- package/dist/default/i18n/locales/lv/register.js.map +1 -1
- package/dist/default/i18n/locales/mr/register.js.map +1 -1
- package/dist/default/i18n/locales/nb/register.js.map +1 -1
- package/dist/default/i18n/locales/ne/register.js.map +1 -1
- package/dist/default/i18n/locales/nl/register.js.map +1 -1
- package/dist/default/i18n/locales/nn/register.js.map +1 -1
- package/dist/default/i18n/locales/oc/register.js.map +1 -1
- package/dist/default/i18n/locales/pl/register.js.map +1 -1
- package/dist/default/i18n/locales/pt/register.js.map +1 -1
- package/dist/default/i18n/locales/pt-BR/register.js.map +1 -1
- package/dist/default/i18n/locales/pt-PT/register.js.map +1 -1
- package/dist/default/i18n/locales/ro/register.js.map +1 -1
- package/dist/default/i18n/locales/ru/register.js.map +1 -1
- package/dist/default/i18n/locales/sk/register.js.map +1 -1
- package/dist/default/i18n/locales/sl/register.js.map +1 -1
- package/dist/default/i18n/locales/sr/register.js.map +1 -1
- package/dist/default/i18n/locales/sv/register.js.map +1 -1
- package/dist/default/i18n/locales/te/register.js.map +1 -1
- package/dist/default/i18n/locales/th/register.js.map +1 -1
- package/dist/default/i18n/locales/tr/register.js.map +1 -1
- package/dist/default/i18n/locales/uk/register.js.map +1 -1
- package/dist/default/i18n/locales/vi/register.js.map +1 -1
- package/dist/default/i18n/locales/zh/register.js.map +1 -1
- package/dist/default/i18n/locales/zh-CN/register.js.map +1 -1
- package/dist/default/i18n/locales/zh-TW/register.js.map +1 -1
- package/dist/default/i18n/text.js.map +1 -1
- package/dist/default/i18n/use-ambient-lang.js.map +1 -1
- package/dist/default/i18n/use-lang-root-element.js.map +1 -1
- package/dist/default/i18n/use-lazy-translations.js.map +1 -1
- package/dist/default/i18n/use-locale-root-notifications.js.map +1 -1
- package/dist/default/i18n/use-merged-translations.js +4 -2
- package/dist/default/i18n/use-merged-translations.js.map +1 -1
- package/dist/default/icons/dist/react/default/airplay-enter.js +5 -2
- package/dist/default/icons/dist/react/default/airplay-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/airplay-exit.js +5 -2
- package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/captions-off.js +5 -2
- package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/default/captions-on.js +5 -2
- package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
- package/dist/default/icons/dist/react/default/cast-enter.js +5 -2
- package/dist/default/icons/dist/react/default/cast-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/cast-exit.js +5 -2
- package/dist/default/icons/dist/react/default/cast-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/check.js +5 -2
- package/dist/default/icons/dist/react/default/check.js.map +1 -1
- package/dist/default/icons/dist/react/default/chevron.js +5 -2
- package/dist/default/icons/dist/react/default/chevron.js.map +1 -1
- package/dist/default/icons/dist/react/default/fullscreen-enter.js +5 -2
- package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/fullscreen-exit.js +5 -2
- package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/gear.js +5 -2
- package/dist/default/icons/dist/react/default/gear.js.map +1 -1
- package/dist/default/icons/dist/react/default/pause.js +5 -2
- package/dist/default/icons/dist/react/default/pause.js.map +1 -1
- package/dist/default/icons/dist/react/default/pip-enter.js +5 -2
- package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/pip-exit.js +5 -2
- package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/play.js +5 -2
- package/dist/default/icons/dist/react/default/play.js.map +1 -1
- package/dist/default/icons/dist/react/default/quality.js +5 -2
- package/dist/default/icons/dist/react/default/quality.js.map +1 -1
- package/dist/default/icons/dist/react/default/restart.js +5 -2
- package/dist/default/icons/dist/react/default/restart.js.map +1 -1
- package/dist/default/icons/dist/react/default/seek.js +5 -2
- package/dist/default/icons/dist/react/default/seek.js.map +1 -1
- package/dist/default/icons/dist/react/default/speech.js +5 -2
- package/dist/default/icons/dist/react/default/speech.js.map +1 -1
- package/dist/default/icons/dist/react/default/speed.js +5 -2
- package/dist/default/icons/dist/react/default/speed.js.map +1 -1
- package/dist/default/icons/dist/react/default/spinner.js +5 -2
- package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
- package/dist/default/icons/dist/react/default/switches.js +5 -2
- package/dist/default/icons/dist/react/default/switches.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-high.js +5 -2
- package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-low.js +5 -2
- package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-off.js +5 -2
- package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/airplay-enter.js +5 -2
- package/dist/default/icons/dist/react/minimal/airplay-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/airplay-exit.js +5 -2
- package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/captions-off.js +5 -2
- package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/captions-on.js +5 -2
- package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/cast-enter.js +5 -2
- package/dist/default/icons/dist/react/minimal/cast-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/cast-exit.js +5 -2
- package/dist/default/icons/dist/react/minimal/cast-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/check.js +5 -2
- package/dist/default/icons/dist/react/minimal/check.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/chevron.js +5 -2
- package/dist/default/icons/dist/react/minimal/chevron.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +5 -2
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +5 -2
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/gear.js +5 -2
- package/dist/default/icons/dist/react/minimal/gear.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pause.js +5 -2
- package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pip-enter.js +5 -2
- package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pip-exit.js +5 -2
- package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/play.js +5 -2
- package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/quality.js +5 -2
- package/dist/default/icons/dist/react/minimal/quality.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/restart.js +5 -2
- package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/seek.js +5 -2
- package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/speech.js +5 -2
- package/dist/default/icons/dist/react/minimal/speech.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/speed.js +5 -2
- package/dist/default/icons/dist/react/minimal/speed.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/spinner.js +5 -2
- package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/switches.js +5 -2
- package/dist/default/icons/dist/react/minimal/switches.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-high.js +5 -2
- package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-low.js +5 -2
- package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-off.js +5 -2
- package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
- package/dist/default/icons/index.js +26 -26
- package/dist/default/icons/minimal/index.js +26 -26
- package/dist/default/index.js +15 -13
- package/dist/default/media/audio.js +3 -1
- package/dist/default/media/audio.js.map +1 -1
- package/dist/default/media/background-video/media.js +5 -3
- package/dist/default/media/background-video/media.js.map +1 -1
- package/dist/default/media/cloudflare-video/media.js +2 -1
- package/dist/default/media/cloudflare-video/media.js.map +1 -1
- package/dist/default/media/dash-video/media.js +5 -2
- package/dist/default/media/dash-video/media.js.map +1 -1
- package/dist/default/media/google-cast/google-cast.js +10 -10
- package/dist/default/media/google-cast/google-cast.js.map +1 -1
- package/dist/default/media/hls-audio/media.js +5 -2
- package/dist/default/media/hls-audio/media.js.map +1 -1
- package/dist/default/media/hls-background-video/media.js +15 -20
- package/dist/default/media/hls-background-video/media.js.map +1 -1
- package/dist/default/media/hls-video/media.js +5 -2
- package/dist/default/media/hls-video/media.js.map +1 -1
- package/dist/default/media/hlsjs-video/media.js +5 -2
- package/dist/default/media/hlsjs-video/media.js.map +1 -1
- package/dist/default/media/mux-audio/hls-js.js +5 -2
- package/dist/default/media/mux-audio/hls-js.js.map +1 -1
- package/dist/default/media/mux-audio/spf.js +5 -2
- package/dist/default/media/mux-audio/spf.js.map +1 -1
- package/dist/default/media/mux-data/mux-data.js +13 -17
- package/dist/default/media/mux-data/mux-data.js.map +1 -1
- package/dist/default/media/mux-video/hls-js.js +5 -2
- package/dist/default/media/mux-video/hls-js.js.map +1 -1
- package/dist/default/media/mux-video/spf.js +5 -2
- package/dist/default/media/mux-video/spf.js.map +1 -1
- package/dist/default/media/mux-video/storyboard.js +1 -4
- package/dist/default/media/mux-video/storyboard.js.map +1 -1
- package/dist/default/media/native-hls-video/media.js +5 -2
- package/dist/default/media/native-hls-video/media.js.map +1 -1
- package/dist/default/media/shaka-video/media.js +5 -2
- package/dist/default/media/shaka-video/media.js.map +1 -1
- package/dist/default/media/spotify-audio/media.js +2 -1
- package/dist/default/media/spotify-audio/media.js.map +1 -1
- package/dist/default/media/tiktok-video/media.js +2 -1
- package/dist/default/media/tiktok-video/media.js.map +1 -1
- package/dist/default/media/twitch-video/media.js +2 -1
- package/dist/default/media/twitch-video/media.js.map +1 -1
- package/dist/default/media/video.js +9 -1
- package/dist/default/media/video.js.map +1 -1
- package/dist/default/media/vimeo-video/media.js +2 -1
- package/dist/default/media/vimeo-video/media.js.map +1 -1
- package/dist/default/media/youtube-video/media.js +2 -1
- package/dist/default/media/youtube-video/media.js.map +1 -1
- package/dist/default/player/container.js +24 -9
- package/dist/default/player/container.js.map +1 -1
- package/dist/default/player/context.js +2 -1
- package/dist/default/player/context.js.map +1 -1
- package/dist/default/player/create-player.js +12 -11
- package/dist/default/player/create-player.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +347 -250
- package/dist/default/presets/audio/minimal-skin.js +66 -38
- package/dist/default/presets/audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.tailwind.js +65 -38
- package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/audio/player.js.map +1 -1
- package/dist/default/presets/audio/skin.css +328 -238
- package/dist/default/presets/audio/skin.js +48 -36
- package/dist/default/presets/audio/skin.js.map +1 -1
- package/dist/default/presets/audio/skin.tailwind.js +46 -35
- package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/background/player.js.map +1 -1
- package/dist/default/presets/background/skin.js.map +1 -1
- package/dist/default/presets/live-audio/minimal-skin.css +347 -250
- package/dist/default/presets/live-audio/minimal-skin.js +42 -28
- package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-audio/minimal-skin.tailwind.js +41 -25
- package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-audio/player.js.map +1 -1
- package/dist/default/presets/live-audio/skin.css +328 -238
- package/dist/default/presets/live-audio/skin.js +24 -25
- package/dist/default/presets/live-audio/skin.js.map +1 -1
- package/dist/default/presets/live-audio/skin.tailwind.js +22 -22
- package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.css +435 -365
- package/dist/default/presets/live-video/minimal-skin.js +103 -83
- package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.tailwind.js +104 -83
- package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-video/player.js.map +1 -1
- package/dist/default/presets/live-video/skin.css +385 -320
- package/dist/default/presets/live-video/skin.js +87 -81
- package/dist/default/presets/live-video/skin.js.map +1 -1
- package/dist/default/presets/live-video/skin.tailwind.js +87 -81
- package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.css +435 -365
- package/dist/default/presets/video/minimal-skin.js +131 -91
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +127 -96
- package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/player.js.map +1 -1
- package/dist/default/presets/video/skin.css +385 -320
- package/dist/default/presets/video/skin.js +115 -91
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +111 -95
- package/dist/default/presets/video/skin.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +10 -9
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/badge.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/badge.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +6 -6
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/container.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/container.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls-backdrop.js +7 -0
- package/dist/default/skins/dist/default/default/tailwind/components/controls-backdrop.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/dialog.js +15 -0
- package/dist/default/skins/dist/default/default/tailwind/components/dialog.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/input-indicator.js +3 -2
- package/dist/default/skins/dist/default/default/tailwind/components/input-indicator.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js +16 -11
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js +5 -4
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +13 -13
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/surface.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/time.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +18 -17
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +10 -10
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +6 -6
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/container.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/container.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls-backdrop.js +7 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls-backdrop.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/dialog.js +15 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/dialog.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator.js +5 -4
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +16 -11
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +5 -4
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +2 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +12 -12
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +2 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +3 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/volume-indicator.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/volume-indicator.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +20 -20
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/ui/airplay-button/airplay-button.js.map +1 -1
- package/dist/default/ui/alert-dialog/alert-dialog-root.js +14 -45
- package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
- package/dist/default/ui/alert-dialog/index.js +1 -2
- package/dist/default/ui/alert-dialog/index.parts.js +11 -9
- package/dist/default/ui/alert-dialog/index.parts.js.map +1 -1
- package/dist/default/ui/audio-track/use-audio-track-options.js +2 -2
- package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -1
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js +11 -11
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
- package/dist/default/ui/buffering-indicator/buffering-indicator.js +7 -7
- package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
- package/dist/default/ui/captions-button/captions-button.js.map +1 -1
- package/dist/default/ui/captions-radio-group/captions-radio-group.js +11 -11
- package/dist/default/ui/captions-radio-group/captions-radio-group.js.map +1 -1
- package/dist/default/ui/captions-radio-group/use-captions-options.js +2 -3
- package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -1
- package/dist/default/ui/controls/context.js.map +1 -1
- package/dist/default/ui/controls/controls-backdrop.js +28 -0
- package/dist/default/ui/controls/controls-backdrop.js.map +1 -0
- package/dist/default/ui/controls/controls-content.js +27 -0
- package/dist/default/ui/controls/controls-content.js.map +1 -0
- package/dist/default/ui/controls/controls-root.js +5 -20
- package/dist/default/ui/controls/controls-root.js.map +1 -1
- package/dist/default/ui/controls/index.parts.js +5 -1
- package/dist/default/ui/controls/index.parts.js.map +1 -1
- package/dist/default/ui/create-context-part.js.map +1 -1
- package/dist/default/ui/create-media-button.js.map +1 -1
- package/dist/default/ui/dialog/context.js +17 -0
- package/dist/default/ui/dialog/context.js.map +1 -0
- package/dist/default/ui/dialog/dialog-backdrop.js +26 -0
- package/dist/default/ui/dialog/dialog-backdrop.js.map +1 -0
- package/dist/default/ui/dialog/dialog-close.js +29 -0
- package/dist/default/ui/dialog/dialog-close.js.map +1 -0
- package/dist/default/ui/dialog/dialog-description.js +14 -0
- package/dist/default/ui/dialog/dialog-description.js.map +1 -0
- package/dist/default/ui/dialog/dialog-popup.js +28 -0
- package/dist/default/ui/dialog/dialog-popup.js.map +1 -0
- package/dist/default/ui/dialog/dialog-root.js +23 -0
- package/dist/default/ui/dialog/dialog-root.js.map +1 -0
- package/dist/default/ui/dialog/dialog-title.js +14 -0
- package/dist/default/ui/dialog/dialog-title.js.map +1 -0
- package/dist/default/ui/dialog/dialog-trigger.js +30 -0
- package/dist/default/ui/dialog/dialog-trigger.js.map +1 -0
- package/dist/default/ui/dialog/index.js +3 -0
- package/dist/default/ui/dialog/index.parts.js +22 -0
- package/dist/default/ui/dialog/index.parts.js.map +1 -0
- package/dist/default/ui/dialog/use-dialog-root.js +59 -0
- package/dist/default/ui/dialog/use-dialog-root.js.map +1 -0
- package/dist/default/ui/error-dialog/context.js +1 -0
- package/dist/default/ui/error-dialog/context.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-close.js +3 -2
- package/dist/default/ui/error-dialog/error-dialog-close.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-description.js +3 -2
- package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-root.js +19 -34
- package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-title.js +3 -2
- package/dist/default/ui/error-dialog/error-dialog-title.js.map +1 -1
- package/dist/default/ui/error-dialog/index.parts.js +5 -3
- package/dist/default/ui/error-dialog/index.parts.js.map +1 -1
- package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
- package/dist/default/ui/gesture/use-doubletap-gesture.js +6 -0
- package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
- package/dist/default/ui/gesture/use-tap-gesture.js +6 -0
- package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
- package/dist/default/ui/hooks/create-radio-options-hook.js.map +1 -1
- package/dist/default/ui/hooks/use-button.js +15 -14
- package/dist/default/ui/hooks/use-button.js.map +1 -1
- package/dist/default/ui/hooks/use-slider.js +6 -7
- package/dist/default/ui/hooks/use-slider.js.map +1 -1
- package/dist/default/ui/hotkey/use-hotkey-shortcut.js +6 -0
- package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
- package/dist/default/ui/hotkey/use-hotkey.js +5 -0
- package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
- package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +1 -1
- package/dist/default/ui/input-indicator/use-input-indicator-root.js +2 -1
- package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +1 -1
- package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
- package/dist/default/ui/live-button/live-button.js +7 -10
- package/dist/default/ui/live-button/live-button.js.map +1 -1
- package/dist/default/ui/menu/context.js +10 -1
- package/dist/default/ui/menu/context.js.map +1 -1
- package/dist/default/ui/menu/index.parts.js +3 -1
- package/dist/default/ui/menu/index.parts.js.map +1 -1
- package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
- package/dist/default/ui/menu/menu-content.js +44 -106
- package/dist/default/ui/menu/menu-content.js.map +1 -1
- package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
- package/dist/default/ui/menu/menu-item.js +22 -20
- package/dist/default/ui/menu/menu-item.js.map +1 -1
- package/dist/default/ui/menu/menu-keyboard.js.map +1 -1
- package/dist/default/ui/menu/menu-popup.js +69 -0
- package/dist/default/ui/menu/menu-popup.js.map +1 -0
- package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
- package/dist/default/ui/menu/menu-root.js +28 -27
- package/dist/default/ui/menu/menu-root.js.map +1 -1
- package/dist/default/ui/menu/menu-trigger.js +2 -3
- package/dist/default/ui/menu/menu-trigger.js.map +1 -1
- package/dist/default/ui/menu/use-menu-group.js +2 -1
- package/dist/default/ui/menu/use-menu-group.js.map +1 -1
- package/dist/default/ui/play-button/play-button.js +8 -8
- package/dist/default/ui/play-button/play-button.js.map +1 -1
- package/dist/default/ui/playback-rate/use-playback-rate-options.js +2 -2
- package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -1
- package/dist/default/ui/playback-rate-button/playback-rate-button.js +8 -8
- package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js +11 -11
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
- package/dist/default/ui/popover/context.js +1 -0
- package/dist/default/ui/popover/context.js.map +1 -1
- package/dist/default/ui/popover/popover-popup.js +7 -3
- package/dist/default/ui/popover/popover-popup.js.map +1 -1
- package/dist/default/ui/popover/popover-root.js +1 -1
- package/dist/default/ui/popover/popover-root.js.map +1 -1
- package/dist/default/ui/popover/use-popup-position.js +2 -1
- package/dist/default/ui/popover/use-popup-position.js.map +1 -1
- package/dist/default/ui/poster/poster.js +11 -13
- package/dist/default/ui/poster/poster.js.map +1 -1
- package/dist/default/ui/quality/use-quality-options.js +2 -3
- package/dist/default/ui/quality/use-quality-options.js.map +1 -1
- package/dist/default/ui/quality-radio-group/quality-radio-group.js +12 -12
- package/dist/default/ui/quality-radio-group/quality-radio-group.js.map +1 -1
- package/dist/default/ui/seek-button/seek-button.js +8 -8
- package/dist/default/ui/seek-button/seek-button.js.map +1 -1
- package/dist/default/ui/seek-indicator/context.js.map +1 -1
- package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -1
- package/dist/default/ui/slider/context.js.map +1 -1
- package/dist/default/ui/slider/slider-root.js.map +1 -1
- package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
- package/dist/default/ui/status-announcer/status-announcer.js.map +1 -1
- package/dist/default/ui/status-indicator/context.js.map +1 -1
- package/dist/default/ui/status-indicator/index.parts.js.map +1 -1
- package/dist/default/ui/status-indicator/status-indicator-root.js +2 -1
- package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -1
- package/dist/default/ui/thumbnail/thumbnail.js +5 -6
- package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
- package/dist/default/ui/time/time-group.js +7 -7
- package/dist/default/ui/time/time-group.js.map +1 -1
- package/dist/default/ui/time/time-separator.js +4 -4
- package/dist/default/ui/time/time-separator.js.map +1 -1
- package/dist/default/ui/time/time-value.js +5 -5
- package/dist/default/ui/time/time-value.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js +1 -1
- package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/default/ui/title/title.js +5 -6
- package/dist/default/ui/title/title.js.map +1 -1
- package/dist/default/ui/tooltip/context.js +1 -0
- package/dist/default/ui/tooltip/context.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-popup.js +7 -3
- package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-root.js +4 -2
- package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -1
- package/dist/default/ui/volume-indicator/context.js.map +1 -1
- package/dist/default/ui/volume-indicator/index.parts.js.map +1 -1
- package/dist/default/ui/volume-indicator/volume-indicator-fill.js +3 -2
- package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
- package/dist/default/ui/volume-indicator/volume-indicator-root.js +2 -1
- package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
- package/dist/default/ui/volume-popover/context.js +13 -0
- package/dist/default/ui/volume-popover/context.js.map +1 -0
- package/dist/default/ui/volume-popover/index.js +2 -0
- package/dist/default/ui/volume-popover/index.parts.js +14 -0
- package/dist/default/ui/volume-popover/index.parts.js.map +1 -0
- package/dist/default/ui/volume-popover/volume-popover-popup.js +21 -0
- package/dist/default/ui/volume-popover/volume-popover-popup.js.map +1 -0
- package/dist/default/ui/volume-popover/volume-popover-root.js +47 -0
- package/dist/default/ui/volume-popover/volume-popover-root.js.map +1 -0
- package/dist/default/ui/volume-popover/volume-popover-trigger.js +32 -0
- package/dist/default/ui/volume-popover/volume-popover-trigger.js.map +1 -0
- package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
- package/dist/default/utils/merge-props.js +20 -30
- package/dist/default/utils/merge-props.js.map +1 -1
- package/dist/default/utils/use-attach-iframe.js.map +1 -1
- package/dist/default/utils/use-attach-media.js +5 -0
- package/dist/default/utils/use-attach-media.js.map +1 -1
- package/dist/default/utils/use-composed-refs.js +10 -8
- package/dist/default/utils/use-composed-refs.js.map +1 -1
- package/dist/default/utils/use-destroy.js +7 -9
- package/dist/default/utils/use-destroy.js.map +1 -1
- package/dist/default/utils/use-force-render.js.map +1 -1
- package/dist/default/utils/use-latest-ref.js +4 -2
- package/dist/default/utils/use-latest-ref.js.map +1 -1
- package/dist/default/utils/use-media-component.js +7 -6
- package/dist/default/utils/use-media-component.js.map +1 -1
- package/dist/default/utils/use-media-instance.js +8 -7
- package/dist/default/utils/use-media-instance.js.map +1 -1
- package/dist/default/utils/use-render.js +13 -15
- package/dist/default/utils/use-render.js.map +1 -1
- package/dist/default/utils/use-safe-id.js +3 -4
- package/dist/default/utils/use-safe-id.js.map +1 -1
- package/dist/default/utils/use-sync-props.js.map +1 -1
- package/dist/dev/i18n/context.d.ts +3 -1
- package/dist/dev/i18n/context.d.ts.map +1 -1
- package/dist/dev/i18n/context.js.map +1 -1
- package/dist/dev/i18n/create-i18n.d.ts +15 -16
- package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
- package/dist/dev/i18n/create-i18n.js +10 -5
- package/dist/dev/i18n/create-i18n.js.map +1 -1
- package/dist/dev/i18n/get-provider-root-props.js +4 -2
- package/dist/dev/i18n/get-provider-root-props.js.map +1 -1
- package/dist/dev/i18n/locales/all/register.js.map +1 -1
- package/dist/dev/i18n/locales/ar/register.js.map +1 -1
- package/dist/dev/i18n/locales/az/register.js.map +1 -1
- package/dist/dev/i18n/locales/bg/register.js.map +1 -1
- package/dist/dev/i18n/locales/bn/register.js.map +1 -1
- package/dist/dev/i18n/locales/bs/register.js.map +1 -1
- package/dist/dev/i18n/locales/ca/register.js.map +1 -1
- package/dist/dev/i18n/locales/cs/register.js.map +1 -1
- package/dist/dev/i18n/locales/cy/register.js.map +1 -1
- package/dist/dev/i18n/locales/da/register.js.map +1 -1
- package/dist/dev/i18n/locales/de/register.js.map +1 -1
- package/dist/dev/i18n/locales/el/register.js.map +1 -1
- package/dist/dev/i18n/locales/en/register.js.map +1 -1
- package/dist/dev/i18n/locales/es/register.js.map +1 -1
- package/dist/dev/i18n/locales/et/register.js.map +1 -1
- package/dist/dev/i18n/locales/eu/register.js.map +1 -1
- package/dist/dev/i18n/locales/fa/register.js.map +1 -1
- package/dist/dev/i18n/locales/fi/register.js.map +1 -1
- package/dist/dev/i18n/locales/fr/register.js.map +1 -1
- package/dist/dev/i18n/locales/gd/register.js.map +1 -1
- package/dist/dev/i18n/locales/gl/register.js.map +1 -1
- package/dist/dev/i18n/locales/he/register.js.map +1 -1
- package/dist/dev/i18n/locales/hi/register.js.map +1 -1
- package/dist/dev/i18n/locales/hr/register.js.map +1 -1
- package/dist/dev/i18n/locales/hu/register.js.map +1 -1
- package/dist/dev/i18n/locales/id/register.js.map +1 -1
- package/dist/dev/i18n/locales/it/register.js.map +1 -1
- package/dist/dev/i18n/locales/ja/register.js.map +1 -1
- package/dist/dev/i18n/locales/ko/register.js.map +1 -1
- package/dist/dev/i18n/locales/lt/register.js.map +1 -1
- package/dist/dev/i18n/locales/lv/register.js.map +1 -1
- package/dist/dev/i18n/locales/mr/register.js.map +1 -1
- package/dist/dev/i18n/locales/nb/register.js.map +1 -1
- package/dist/dev/i18n/locales/ne/register.js.map +1 -1
- package/dist/dev/i18n/locales/nl/register.js.map +1 -1
- package/dist/dev/i18n/locales/nn/register.js.map +1 -1
- package/dist/dev/i18n/locales/oc/register.js.map +1 -1
- package/dist/dev/i18n/locales/pl/register.js.map +1 -1
- package/dist/dev/i18n/locales/pt/register.js.map +1 -1
- package/dist/dev/i18n/locales/pt-BR/register.js.map +1 -1
- package/dist/dev/i18n/locales/pt-PT/register.js.map +1 -1
- package/dist/dev/i18n/locales/ro/register.js.map +1 -1
- package/dist/dev/i18n/locales/ru/register.js.map +1 -1
- package/dist/dev/i18n/locales/sk/register.js.map +1 -1
- package/dist/dev/i18n/locales/sl/register.js.map +1 -1
- package/dist/dev/i18n/locales/sr/register.js.map +1 -1
- package/dist/dev/i18n/locales/sv/register.js.map +1 -1
- package/dist/dev/i18n/locales/te/register.js.map +1 -1
- package/dist/dev/i18n/locales/th/register.js.map +1 -1
- package/dist/dev/i18n/locales/tr/register.js.map +1 -1
- package/dist/dev/i18n/locales/uk/register.js.map +1 -1
- package/dist/dev/i18n/locales/vi/register.js.map +1 -1
- package/dist/dev/i18n/locales/zh/register.js.map +1 -1
- package/dist/dev/i18n/locales/zh-CN/register.js.map +1 -1
- package/dist/dev/i18n/locales/zh-TW/register.js.map +1 -1
- package/dist/dev/i18n/text.d.ts.map +1 -1
- package/dist/dev/i18n/text.js.map +1 -1
- package/dist/dev/i18n/use-ambient-lang.js.map +1 -1
- package/dist/dev/i18n/use-lang-root-element.js.map +1 -1
- package/dist/dev/i18n/use-lazy-translations.js.map +1 -1
- package/dist/dev/i18n/use-locale-root-notifications.js.map +1 -1
- package/dist/dev/i18n/use-merged-translations.js +4 -2
- package/dist/dev/i18n/use-merged-translations.js.map +1 -1
- package/dist/dev/icons/dist/react/default/airplay-enter.js +5 -2
- package/dist/dev/icons/dist/react/default/airplay-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/airplay-exit.js +5 -2
- package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/captions-off.js +5 -2
- package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/default/captions-on.js +5 -2
- package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/react/default/cast-enter.js +5 -2
- package/dist/dev/icons/dist/react/default/cast-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/cast-exit.js +5 -2
- package/dist/dev/icons/dist/react/default/cast-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/check.js +5 -2
- package/dist/dev/icons/dist/react/default/check.js.map +1 -1
- package/dist/dev/icons/dist/react/default/chevron.js +5 -2
- package/dist/dev/icons/dist/react/default/chevron.js.map +1 -1
- package/dist/dev/icons/dist/react/default/fullscreen-enter.js +5 -2
- package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/fullscreen-exit.js +5 -2
- package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/gear.js +5 -2
- package/dist/dev/icons/dist/react/default/gear.js.map +1 -1
- package/dist/dev/icons/dist/react/default/index.d.ts +1 -1
- package/dist/dev/icons/dist/react/default/pause.js +5 -2
- package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
- package/dist/dev/icons/dist/react/default/pip-enter.js +5 -2
- package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/pip-exit.js +5 -2
- package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/play.js +5 -2
- package/dist/dev/icons/dist/react/default/play.js.map +1 -1
- package/dist/dev/icons/dist/react/default/quality.js +5 -2
- package/dist/dev/icons/dist/react/default/quality.js.map +1 -1
- package/dist/dev/icons/dist/react/default/restart.js +5 -2
- package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
- package/dist/dev/icons/dist/react/default/seek.js +5 -2
- package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
- package/dist/dev/icons/dist/react/default/speech.js +5 -2
- package/dist/dev/icons/dist/react/default/speech.js.map +1 -1
- package/dist/dev/icons/dist/react/default/speed.js +5 -2
- package/dist/dev/icons/dist/react/default/speed.js.map +1 -1
- package/dist/dev/icons/dist/react/default/spinner.js +5 -2
- package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
- package/dist/dev/icons/dist/react/default/switches.js +5 -2
- package/dist/dev/icons/dist/react/default/switches.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-high.js +5 -2
- package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-low.js +5 -2
- package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-off.js +5 -2
- package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/airplay-enter.js +5 -2
- package/dist/dev/icons/dist/react/minimal/airplay-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/airplay-exit.js +5 -2
- package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/captions-off.js +5 -2
- package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/captions-on.js +5 -2
- package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/cast-enter.js +5 -2
- package/dist/dev/icons/dist/react/minimal/cast-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/cast-exit.js +5 -2
- package/dist/dev/icons/dist/react/minimal/cast-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/check.js +5 -2
- package/dist/dev/icons/dist/react/minimal/check.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/chevron.js +5 -2
- package/dist/dev/icons/dist/react/minimal/chevron.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +5 -2
- package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +5 -2
- package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/gear.js +5 -2
- package/dist/dev/icons/dist/react/minimal/gear.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/index.d.ts +1 -1
- package/dist/dev/icons/dist/react/minimal/pause.js +5 -2
- package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/pip-enter.js +5 -2
- package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/pip-exit.js +5 -2
- package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/play.js +5 -2
- package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/quality.js +5 -2
- package/dist/dev/icons/dist/react/minimal/quality.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/restart.js +5 -2
- package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/seek.js +5 -2
- package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/speech.js +5 -2
- package/dist/dev/icons/dist/react/minimal/speech.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/speed.js +5 -2
- package/dist/dev/icons/dist/react/minimal/speed.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/spinner.js +5 -2
- package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/switches.js +5 -2
- package/dist/dev/icons/dist/react/minimal/switches.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-high.js +5 -2
- package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-low.js +5 -2
- package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-off.js +5 -2
- package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
- package/dist/dev/icons/index.js +26 -26
- package/dist/dev/icons/minimal/index.js +26 -26
- package/dist/dev/index.d.ts +19 -14
- package/dist/dev/index.js +15 -13
- package/dist/dev/media/audio.js +3 -1
- package/dist/dev/media/audio.js.map +1 -1
- package/dist/dev/media/background-video/media.js +5 -3
- package/dist/dev/media/background-video/media.js.map +1 -1
- package/dist/dev/media/cloudflare-video/media.d.ts.map +1 -1
- package/dist/dev/media/cloudflare-video/media.js +2 -1
- package/dist/dev/media/cloudflare-video/media.js.map +1 -1
- package/dist/dev/media/dash-video/media.d.ts.map +1 -1
- package/dist/dev/media/dash-video/media.js +5 -2
- package/dist/dev/media/dash-video/media.js.map +1 -1
- package/dist/dev/media/google-cast/google-cast.d.ts +8 -9
- package/dist/dev/media/google-cast/google-cast.d.ts.map +1 -1
- package/dist/dev/media/google-cast/google-cast.js +10 -10
- package/dist/dev/media/google-cast/google-cast.js.map +1 -1
- package/dist/dev/media/hls-audio/media.d.ts.map +1 -1
- package/dist/dev/media/hls-audio/media.js +5 -2
- package/dist/dev/media/hls-audio/media.js.map +1 -1
- package/dist/dev/media/hls-background-video/media.d.ts +13 -19
- package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
- package/dist/dev/media/hls-background-video/media.js +15 -20
- package/dist/dev/media/hls-background-video/media.js.map +1 -1
- package/dist/dev/media/hls-video/media.d.ts.map +1 -1
- package/dist/dev/media/hls-video/media.js +5 -2
- package/dist/dev/media/hls-video/media.js.map +1 -1
- package/dist/dev/media/hlsjs-video/media.d.ts.map +1 -1
- package/dist/dev/media/hlsjs-video/media.js +5 -2
- package/dist/dev/media/hlsjs-video/media.js.map +1 -1
- package/dist/dev/media/mux-audio/hls-js.d.ts.map +1 -1
- package/dist/dev/media/mux-audio/hls-js.js +5 -2
- package/dist/dev/media/mux-audio/hls-js.js.map +1 -1
- package/dist/dev/media/mux-audio/spf.d.ts.map +1 -1
- package/dist/dev/media/mux-audio/spf.js +5 -2
- package/dist/dev/media/mux-audio/spf.js.map +1 -1
- package/dist/dev/media/mux-data/mux-data.d.ts +13 -17
- package/dist/dev/media/mux-data/mux-data.d.ts.map +1 -1
- package/dist/dev/media/mux-data/mux-data.js +13 -17
- package/dist/dev/media/mux-data/mux-data.js.map +1 -1
- package/dist/dev/media/mux-video/hls-js.d.ts.map +1 -1
- package/dist/dev/media/mux-video/hls-js.js +5 -2
- package/dist/dev/media/mux-video/hls-js.js.map +1 -1
- package/dist/dev/media/mux-video/spf.d.ts.map +1 -1
- package/dist/dev/media/mux-video/spf.js +5 -2
- package/dist/dev/media/mux-video/spf.js.map +1 -1
- package/dist/dev/media/mux-video/storyboard.js +1 -4
- package/dist/dev/media/mux-video/storyboard.js.map +1 -1
- package/dist/dev/media/native-hls-video/media.d.ts.map +1 -1
- package/dist/dev/media/native-hls-video/media.js +5 -2
- package/dist/dev/media/native-hls-video/media.js.map +1 -1
- package/dist/dev/media/shaka-video/media.d.ts.map +1 -1
- package/dist/dev/media/shaka-video/media.js +5 -2
- package/dist/dev/media/shaka-video/media.js.map +1 -1
- package/dist/dev/media/spotify-audio/media.d.ts.map +1 -1
- package/dist/dev/media/spotify-audio/media.js +2 -1
- package/dist/dev/media/spotify-audio/media.js.map +1 -1
- package/dist/dev/media/tiktok-video/media.d.ts.map +1 -1
- package/dist/dev/media/tiktok-video/media.js +2 -1
- package/dist/dev/media/tiktok-video/media.js.map +1 -1
- package/dist/dev/media/twitch-video/media.d.ts.map +1 -1
- package/dist/dev/media/twitch-video/media.js +2 -1
- package/dist/dev/media/twitch-video/media.js.map +1 -1
- package/dist/dev/media/video.d.ts +7 -0
- package/dist/dev/media/video.d.ts.map +1 -1
- package/dist/dev/media/video.js +9 -1
- package/dist/dev/media/video.js.map +1 -1
- package/dist/dev/media/vimeo-video/media.d.ts.map +1 -1
- package/dist/dev/media/vimeo-video/media.js +2 -1
- package/dist/dev/media/vimeo-video/media.js.map +1 -1
- package/dist/dev/media/youtube-video/media.d.ts.map +1 -1
- package/dist/dev/media/youtube-video/media.js +2 -1
- package/dist/dev/media/youtube-video/media.js.map +1 -1
- package/dist/dev/player/container.d.ts.map +1 -1
- package/dist/dev/player/container.js +24 -9
- package/dist/dev/player/container.js.map +1 -1
- package/dist/dev/player/context.d.ts +14 -12
- package/dist/dev/player/context.d.ts.map +1 -1
- package/dist/dev/player/context.js +2 -1
- package/dist/dev/player/context.js.map +1 -1
- package/dist/dev/player/create-player.d.ts +19 -3
- package/dist/dev/player/create-player.d.ts.map +1 -1
- package/dist/dev/player/create-player.js +12 -11
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +347 -250
- package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.js +66 -38
- package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.js +65 -38
- package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/audio/player.d.ts.map +1 -1
- package/dist/dev/presets/audio/player.js.map +1 -1
- package/dist/dev/presets/audio/skin.css +328 -238
- package/dist/dev/presets/audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.js +48 -36
- package/dist/dev/presets/audio/skin.js.map +1 -1
- package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.tailwind.js +46 -35
- package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/background/player.d.ts.map +1 -1
- package/dist/dev/presets/background/player.js.map +1 -1
- package/dist/dev/presets/background/skin.d.ts.map +1 -1
- package/dist/dev/presets/background/skin.js.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.css +347 -250
- package/dist/dev/presets/live-audio/minimal-skin.d.ts +3 -5
- package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.js +42 -28
- package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +41 -25
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-audio/player.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/player.js.map +1 -1
- package/dist/dev/presets/live-audio/skin.css +328 -238
- package/dist/dev/presets/live-audio/skin.d.ts +3 -4
- package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/skin.js +24 -25
- package/dist/dev/presets/live-audio/skin.js.map +1 -1
- package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/skin.tailwind.js +22 -22
- package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.css +435 -365
- package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.js +103 -83
- package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js +104 -83
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-video/player.d.ts.map +1 -1
- package/dist/dev/presets/live-video/player.js.map +1 -1
- package/dist/dev/presets/live-video/skin.css +385 -320
- package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/skin.js +87 -81
- package/dist/dev/presets/live-video/skin.js.map +1 -1
- package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-video/skin.tailwind.js +87 -81
- package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/types.d.ts +13 -10
- package/dist/dev/presets/types.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.css +435 -365
- package/dist/dev/presets/video/minimal-skin.d.ts +9 -0
- package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.js +131 -91
- package/dist/dev/presets/video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.js +127 -96
- package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/player.d.ts.map +1 -1
- package/dist/dev/presets/video/player.js.map +1 -1
- package/dist/dev/presets/video/skin.css +385 -320
- package/dist/dev/presets/video/skin.d.ts +8 -0
- package/dist/dev/presets/video/skin.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.js +115 -91
- package/dist/dev/presets/video/skin.js.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.js +111 -95
- package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +10 -9
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/badge.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/badge.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js +6 -6
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/container.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/container.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls-backdrop.js +7 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/controls-backdrop.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/dialog.js +15 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/dialog.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator.js +3 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/menu.js +16 -11
- package/dist/dev/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +5 -4
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +13 -13
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/time.js +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +18 -17
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +10 -10
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +6 -6
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/container.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/container.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls-backdrop.js +7 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls-backdrop.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/dialog.js +15 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/dialog.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator.js +5 -4
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js +16 -11
- package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +5 -4
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +2 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +12 -12
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +2 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +3 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/volume-indicator.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/volume-indicator.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +20 -20
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -1
- package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts +4 -3
- package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-root.js +14 -45
- package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
- package/dist/dev/ui/alert-dialog/index.d.ts +1 -2
- package/dist/dev/ui/alert-dialog/index.js +1 -2
- package/dist/dev/ui/alert-dialog/index.parts.d.ts +8 -6
- package/dist/dev/ui/alert-dialog/index.parts.js +11 -9
- package/dist/dev/ui/alert-dialog/index.parts.js.map +1 -1
- package/dist/dev/ui/audio-track/use-audio-track-options.d.ts +2 -2
- package/dist/dev/ui/audio-track/use-audio-track-options.js +2 -2
- package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts +10 -10
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js +11 -11
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
- package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts +7 -7
- package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
- package/dist/dev/ui/buffering-indicator/buffering-indicator.js +7 -7
- package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
- package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
- package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts +10 -10
- package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group.js +11 -11
- package/dist/dev/ui/captions-radio-group/captions-radio-group.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts +2 -3
- package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -1
- package/dist/dev/ui/captions-radio-group/use-captions-options.js +2 -3
- package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -1
- package/dist/dev/ui/controls/context.js.map +1 -1
- package/dist/dev/ui/controls/controls-backdrop.d.ts +16 -0
- package/dist/dev/ui/controls/controls-backdrop.d.ts.map +1 -0
- package/dist/dev/ui/controls/controls-backdrop.js +28 -0
- package/dist/dev/ui/controls/controls-backdrop.js.map +1 -0
- package/dist/dev/ui/controls/controls-content.d.ts +16 -0
- package/dist/dev/ui/controls/controls-content.d.ts.map +1 -0
- package/dist/dev/ui/controls/controls-content.js +27 -0
- package/dist/dev/ui/controls/controls-content.js.map +1 -0
- package/dist/dev/ui/controls/controls-root.d.ts +3 -4
- package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
- package/dist/dev/ui/controls/controls-root.js +5 -20
- package/dist/dev/ui/controls/controls-root.js.map +1 -1
- package/dist/dev/ui/controls/index.parts.d.ts +4 -2
- package/dist/dev/ui/controls/index.parts.js +5 -1
- package/dist/dev/ui/controls/index.parts.js.map +1 -1
- package/dist/dev/ui/create-context-part.js.map +1 -1
- package/dist/dev/ui/create-media-button.js.map +1 -1
- package/dist/dev/ui/dialog/context.d.ts +15 -0
- package/dist/dev/ui/dialog/context.d.ts.map +1 -0
- package/dist/dev/ui/dialog/context.js +17 -0
- package/dist/dev/ui/dialog/context.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-backdrop.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-backdrop.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-backdrop.js +26 -0
- package/dist/dev/ui/dialog/dialog-backdrop.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-close.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-close.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-close.js +29 -0
- package/dist/dev/ui/dialog/dialog-close.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-description.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-description.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-description.js +14 -0
- package/dist/dev/ui/dialog/dialog-description.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-popup.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-popup.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-popup.js +28 -0
- package/dist/dev/ui/dialog/dialog-popup.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-root.d.ts +18 -0
- package/dist/dev/ui/dialog/dialog-root.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-root.js +23 -0
- package/dist/dev/ui/dialog/dialog-root.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-title.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-title.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-title.js +14 -0
- package/dist/dev/ui/dialog/dialog-title.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-trigger.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-trigger.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-trigger.js +30 -0
- package/dist/dev/ui/dialog/dialog-trigger.js.map +1 -0
- package/dist/dev/ui/dialog/index.d.ts +3 -0
- package/dist/dev/ui/dialog/index.js +3 -0
- package/dist/dev/ui/dialog/index.parts.d.ts +13 -0
- package/dist/dev/ui/dialog/index.parts.d.ts.map +1 -0
- package/dist/dev/ui/dialog/index.parts.js +22 -0
- package/dist/dev/ui/dialog/index.parts.js.map +1 -0
- package/dist/dev/ui/dialog/use-dialog-root.js +59 -0
- package/dist/dev/ui/dialog/use-dialog-root.js.map +1 -0
- package/dist/dev/ui/error-dialog/context.d.ts +1 -0
- package/dist/dev/ui/error-dialog/context.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/context.js +1 -0
- package/dist/dev/ui/error-dialog/context.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-close.d.ts +4 -3
- package/dist/dev/ui/error-dialog/error-dialog-close.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-close.js +3 -2
- package/dist/dev/ui/error-dialog/error-dialog-close.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +4 -3
- package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-description.js +3 -2
- package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-root.d.ts +1 -0
- package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-root.js +19 -34
- package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-title.d.ts +4 -3
- package/dist/dev/ui/error-dialog/error-dialog-title.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-title.js +3 -2
- package/dist/dev/ui/error-dialog/error-dialog-title.js.map +1 -1
- package/dist/dev/ui/error-dialog/index.parts.d.ts +5 -3
- package/dist/dev/ui/error-dialog/index.parts.js +5 -3
- package/dist/dev/ui/error-dialog/index.parts.js.map +1 -1
- package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
- package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
- package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +6 -0
- package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
- package/dist/dev/ui/gesture/use-doubletap-gesture.js +6 -0
- package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
- package/dist/dev/ui/gesture/use-tap-gesture.d.ts +6 -0
- package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
- package/dist/dev/ui/gesture/use-tap-gesture.js +6 -0
- package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
- package/dist/dev/ui/hooks/create-radio-options-hook.js.map +1 -1
- package/dist/dev/ui/hooks/use-button.d.ts +12 -12
- package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
- package/dist/dev/ui/hooks/use-button.js +15 -14
- package/dist/dev/ui/hooks/use-button.js.map +1 -1
- package/dist/dev/ui/hooks/use-slider.d.ts +2 -3
- package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
- package/dist/dev/ui/hooks/use-slider.js +6 -7
- package/dist/dev/ui/hooks/use-slider.js.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts +6 -0
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +6 -0
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey.d.ts +5 -0
- package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey.js +5 -0
- package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-input-indicator-root.js +2 -1
- package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
- package/dist/dev/ui/live-button/live-button.d.ts +7 -10
- package/dist/dev/ui/live-button/live-button.d.ts.map +1 -1
- package/dist/dev/ui/live-button/live-button.js +7 -10
- package/dist/dev/ui/live-button/live-button.js.map +1 -1
- package/dist/dev/ui/menu/context.d.ts +3 -2
- package/dist/dev/ui/menu/context.d.ts.map +1 -1
- package/dist/dev/ui/menu/context.js +10 -1
- package/dist/dev/ui/menu/context.js.map +1 -1
- package/dist/dev/ui/menu/index.parts.d.ts +3 -2
- package/dist/dev/ui/menu/index.parts.js +3 -1
- package/dist/dev/ui/menu/index.parts.js.map +1 -1
- package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-content.d.ts +1 -1
- package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-content.js +44 -106
- package/dist/dev/ui/menu/menu-content.js.map +1 -1
- package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
- package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-item.js +22 -20
- package/dist/dev/ui/menu/menu-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-keyboard.js.map +1 -1
- package/dist/dev/ui/menu/menu-popup.d.ts +13 -0
- package/dist/dev/ui/menu/menu-popup.d.ts.map +1 -0
- package/dist/dev/ui/menu/menu-popup.js +70 -0
- package/dist/dev/ui/menu/menu-popup.js.map +1 -0
- package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-root.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-root.js +28 -27
- package/dist/dev/ui/menu/menu-root.js.map +1 -1
- package/dist/dev/ui/menu/menu-trigger.d.ts +2 -3
- package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-trigger.js +2 -3
- package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
- package/dist/dev/ui/menu/use-menu-group.js +2 -1
- package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
- package/dist/dev/ui/play-button/play-button.d.ts +8 -8
- package/dist/dev/ui/play-button/play-button.js +8 -8
- package/dist/dev/ui/play-button/play-button.js.map +1 -1
- package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts +2 -2
- package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -1
- package/dist/dev/ui/playback-rate/use-playback-rate-options.js +2 -2
- package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts +8 -8
- package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button.js +8 -8
- package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts +10 -10
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js +11 -11
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
- package/dist/dev/ui/popover/context.d.ts +1 -0
- package/dist/dev/ui/popover/context.d.ts.map +1 -1
- package/dist/dev/ui/popover/context.js +1 -0
- package/dist/dev/ui/popover/context.js.map +1 -1
- package/dist/dev/ui/popover/popover-popup.d.ts +4 -1
- package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-popup.js +7 -3
- package/dist/dev/ui/popover/popover-popup.js.map +1 -1
- package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-root.js +1 -1
- package/dist/dev/ui/popover/popover-root.js.map +1 -1
- package/dist/dev/ui/popover/use-popup-position.js +2 -1
- package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
- package/dist/dev/ui/poster/poster.d.ts +11 -13
- package/dist/dev/ui/poster/poster.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster.js +11 -13
- package/dist/dev/ui/poster/poster.js.map +1 -1
- package/dist/dev/ui/quality/use-quality-options.d.ts +2 -3
- package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -1
- package/dist/dev/ui/quality/use-quality-options.js +2 -3
- package/dist/dev/ui/quality/use-quality-options.js.map +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts +11 -11
- package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group.js +12 -12
- package/dist/dev/ui/quality-radio-group/quality-radio-group.js.map +1 -1
- package/dist/dev/ui/seek-button/seek-button.d.ts +8 -8
- package/dist/dev/ui/seek-button/seek-button.js +8 -8
- package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
- package/dist/dev/ui/seek-indicator/context.js.map +1 -1
- package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -1
- package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -1
- package/dist/dev/ui/slider/context.js.map +1 -1
- package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-root.js.map +1 -1
- package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
- package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -1
- package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -1
- package/dist/dev/ui/status-indicator/context.js.map +1 -1
- package/dist/dev/ui/status-indicator/index.parts.js.map +1 -1
- package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -1
- package/dist/dev/ui/status-indicator/status-indicator-root.js +2 -1
- package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -1
- package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
- package/dist/dev/ui/thumbnail/thumbnail.js +5 -6
- package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
- package/dist/dev/ui/time/time-group.d.ts +7 -7
- package/dist/dev/ui/time/time-group.js +7 -7
- package/dist/dev/ui/time/time-group.js.map +1 -1
- package/dist/dev/ui/time/time-separator.d.ts +4 -4
- package/dist/dev/ui/time/time-separator.js +4 -4
- package/dist/dev/ui/time/time-separator.js.map +1 -1
- package/dist/dev/ui/time/time-value.d.ts +5 -5
- package/dist/dev/ui/time/time-value.d.ts.map +1 -1
- package/dist/dev/ui/time/time-value.js +5 -5
- package/dist/dev/ui/time/time-value.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js +1 -1
- package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/dev/ui/title/title.d.ts +5 -6
- package/dist/dev/ui/title/title.d.ts.map +1 -1
- package/dist/dev/ui/title/title.js +5 -6
- package/dist/dev/ui/title/title.js.map +1 -1
- package/dist/dev/ui/tooltip/context.d.ts +1 -0
- package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/context.js +1 -0
- package/dist/dev/ui/tooltip/context.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.d.ts +4 -1
- package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.js +7 -3
- package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-provider.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-root.d.ts +1 -1
- package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-root.js +4 -2
- package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -1
- package/dist/dev/ui/volume-indicator/context.js.map +1 -1
- package/dist/dev/ui/volume-indicator/index.parts.js.map +1 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +3 -2
- package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-root.js +2 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
- package/dist/dev/ui/volume-popover/context.js +13 -0
- package/dist/dev/ui/volume-popover/context.js.map +1 -0
- package/dist/dev/ui/volume-popover/index.d.ts +2 -0
- package/dist/dev/ui/volume-popover/index.js +2 -0
- package/dist/dev/ui/volume-popover/index.parts.d.ts +9 -0
- package/dist/dev/ui/volume-popover/index.parts.d.ts.map +1 -0
- package/dist/dev/ui/volume-popover/index.parts.js +14 -0
- package/dist/dev/ui/volume-popover/index.parts.js.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-popup.d.ts +11 -0
- package/dist/dev/ui/volume-popover/volume-popover-popup.d.ts.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-popup.js +21 -0
- package/dist/dev/ui/volume-popover/volume-popover-popup.js.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-root.d.ts +14 -0
- package/dist/dev/ui/volume-popover/volume-popover-root.d.ts.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-root.js +47 -0
- package/dist/dev/ui/volume-popover/volume-popover-root.js.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-trigger.d.ts +11 -0
- package/dist/dev/ui/volume-popover/volume-popover-trigger.d.ts.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-trigger.js +32 -0
- package/dist/dev/ui/volume-popover/volume-popover-trigger.js.map +1 -0
- package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
- package/dist/dev/utils/merge-props.d.ts +14 -12
- package/dist/dev/utils/merge-props.d.ts.map +1 -1
- package/dist/dev/utils/merge-props.js +20 -30
- package/dist/dev/utils/merge-props.js.map +1 -1
- package/dist/dev/utils/types.d.ts +2 -4
- package/dist/dev/utils/types.d.ts.map +1 -1
- package/dist/dev/utils/use-attach-iframe.js.map +1 -1
- package/dist/dev/utils/use-attach-media.d.ts +5 -0
- package/dist/dev/utils/use-attach-media.d.ts.map +1 -1
- package/dist/dev/utils/use-attach-media.js +5 -0
- package/dist/dev/utils/use-attach-media.js.map +1 -1
- package/dist/dev/utils/use-composed-refs.d.ts +10 -8
- package/dist/dev/utils/use-composed-refs.d.ts.map +1 -1
- package/dist/dev/utils/use-composed-refs.js +10 -8
- package/dist/dev/utils/use-composed-refs.js.map +1 -1
- package/dist/dev/utils/use-destroy.d.ts +7 -9
- package/dist/dev/utils/use-destroy.d.ts.map +1 -1
- package/dist/dev/utils/use-destroy.js +7 -9
- package/dist/dev/utils/use-destroy.js.map +1 -1
- package/dist/dev/utils/use-force-render.js.map +1 -1
- package/dist/dev/utils/use-latest-ref.d.ts +4 -2
- package/dist/dev/utils/use-latest-ref.d.ts.map +1 -1
- package/dist/dev/utils/use-latest-ref.js +4 -2
- package/dist/dev/utils/use-latest-ref.js.map +1 -1
- package/dist/dev/utils/use-media-component.d.ts +7 -6
- package/dist/dev/utils/use-media-component.d.ts.map +1 -1
- package/dist/dev/utils/use-media-component.js +7 -6
- package/dist/dev/utils/use-media-component.js.map +1 -1
- package/dist/dev/utils/use-media-instance.d.ts +8 -7
- package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
- package/dist/dev/utils/use-media-instance.js +8 -7
- package/dist/dev/utils/use-media-instance.js.map +1 -1
- package/dist/dev/utils/use-render.d.ts +11 -14
- package/dist/dev/utils/use-render.d.ts.map +1 -1
- package/dist/dev/utils/use-render.js +13 -15
- package/dist/dev/utils/use-render.js.map +1 -1
- package/dist/dev/utils/use-safe-id.js +3 -4
- package/dist/dev/utils/use-safe-id.js.map +1 -1
- package/dist/dev/utils/use-sync-props.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/browser-support.md +16 -8
- package/docs/concepts/bundlers.md +43 -0
- package/docs/concepts/media-sources.md +28 -4
- package/docs/concepts/mux-data.md +3 -3
- package/docs/concepts/overview.md +9 -25
- package/docs/concepts/presets.md +2 -1
- package/docs/concepts/skins.md +538 -465
- package/docs/concepts/typescript.md +34 -0
- package/docs/concepts/ui-components.md +12 -5
- package/docs/concepts/why-videojs.md +14 -8
- package/docs/how-to/add-a-background-video.md +210 -0
- package/docs/how-to/add-a-poster-and-loading-placeholder.md +187 -0
- package/docs/how-to/add-keyboard-shortcuts-and-gestures.md +97 -0
- package/docs/how-to/add-quality-selector.md +249 -0
- package/docs/how-to/autoplay.md +172 -0
- package/docs/how-to/build-with-ai.md +2 -2
- package/docs/how-to/build-your-own-component.md +131 -4
- package/docs/how-to/cast-to-airplay-and-chromecast.md +158 -0
- package/docs/how-to/customize-skins.md +10009 -1574
- package/docs/how-to/go-fullscreen-and-lock-orientation.md +153 -0
- package/docs/how-to/handle-playback-errors.md +92 -0
- package/docs/how-to/installation.md +57 -15
- package/docs/how-to/internationalize-the-player.md +358 -0
- package/docs/how-to/migrate-from-media-chrome.md +94 -63
- package/docs/how-to/migrate-from-mux-player.md +180 -54
- package/docs/how-to/migrate-from-plyr.md +52 -33
- package/docs/how-to/migrate-from-video-js-8.md +42 -34
- package/docs/how-to/play-live-streams.md +135 -0
- package/docs/how-to/remember-user-preferences.md +180 -0
- package/docs/how-to/show-and-hide-controls.md +174 -0
- package/docs/how-to/show-captions-and-subtitles.md +156 -0
- package/docs/how-to/show-timeline-thumbnail-previews.md +163 -0
- package/docs/how-to/use-picture-in-picture.md +150 -0
- package/docs/llms.txt +70 -17
- package/docs/reference/airplay-button.md +18 -18
- package/docs/reference/alert-dialog.md +649 -0
- package/docs/reference/audio-track-radio-group.md +32 -22
- package/docs/reference/audio.md +78 -0
- package/docs/reference/background-video.md +17 -45
- package/docs/reference/buffering-indicator.md +8 -0
- package/docs/reference/captions-button.md +24 -16
- package/docs/reference/captions-radio-group.md +32 -22
- package/docs/reference/cast-button.md +21 -19
- package/docs/reference/cloudflare-video.md +223 -0
- package/docs/reference/controls.md +252 -20
- package/docs/reference/create-i18n.md +7 -3
- package/docs/reference/create-player.md +81 -9
- package/docs/reference/create-selector.md +4 -6
- package/docs/reference/create-translator.md +15 -5
- package/docs/reference/dash-video.md +57 -2
- package/docs/reference/dialog.md +833 -0
- package/docs/reference/error-dialog.md +586 -0
- package/docs/reference/feature-buffer.md +10 -4
- package/docs/reference/feature-controls.md +1 -1
- package/docs/reference/feature-error.md +1 -1
- package/docs/reference/feature-live.md +62 -7
- package/docs/reference/feature-metadata.md +6 -4
- package/docs/reference/feature-orientation-lock.md +1 -1
- package/docs/reference/feature-quality.md +1 -1
- package/docs/reference/feature-remote-playback.md +1 -1
- package/docs/reference/feature-source.md +1 -1
- package/docs/reference/feature-stream-type.md +14 -5
- package/docs/reference/feature-text-tracks.md +5 -3
- package/docs/reference/feature-time.md +1 -1
- package/docs/reference/fullscreen-button.md +23 -23
- package/docs/reference/gesture.md +201 -0
- package/docs/reference/get-i18n-translations.md +5 -5
- package/docs/reference/google-cast.md +4 -4
- package/docs/reference/has-registered-locale.md +2 -2
- package/docs/reference/hls-audio.md +33 -1
- package/docs/reference/hls-background-video.md +75 -0
- package/docs/reference/hls-video.md +45 -1
- package/docs/reference/hlsjs-video.md +648 -3
- package/docs/reference/hotkey.md +188 -0
- package/docs/reference/i-18-n-context.md +92 -0
- package/docs/reference/i18n-provider.md +2 -2
- package/docs/reference/menu.md +476 -132
- package/docs/reference/merge-props.md +56 -0
- package/docs/reference/mute-button.md +26 -26
- package/docs/reference/mux-audio.md +711 -3
- package/docs/reference/mux-background-video.md +34 -0
- package/docs/reference/mux-video.md +759 -12
- package/docs/reference/native-hls-video.md +44 -3
- package/docs/reference/pip-button.md +23 -23
- package/docs/reference/play-button.md +11 -3
- package/docs/reference/playback-rate-button.md +14 -6
- package/docs/reference/playback-rate-radio-group.md +30 -20
- package/docs/reference/player-container.md +22 -31
- package/docs/reference/{player-provider.md → player.md} +11 -9
- package/docs/reference/popover.md +173 -25
- package/docs/reference/poster.md +8 -0
- package/docs/reference/quality-radio-group.md +36 -26
- package/docs/reference/register-i18n.md +2 -2
- package/docs/reference/render-element.md +14 -2
- package/docs/reference/seek-button.md +14 -6
- package/docs/reference/seek-indicator.md +448 -0
- package/docs/reference/shaka-video.md +395 -0
- package/docs/reference/slider.md +316 -6
- package/docs/reference/spotify-audio.md +188 -0
- package/docs/reference/status-announcer.md +341 -0
- package/docs/reference/status-indicator.md +535 -0
- package/docs/reference/thumbnail.md +30 -2
- package/docs/reference/tiktok-video.md +280 -0
- package/docs/reference/time-slider.md +354 -20
- package/docs/reference/time.md +83 -3
- package/docs/reference/title.md +10 -2
- package/docs/reference/tooltip.md +281 -75
- package/docs/reference/translation-phrases.md +1 -1
- package/docs/reference/twitch-video.md +211 -0
- package/docs/reference/use-attach-media.md +59 -0
- package/docs/reference/use-audio-track-options.md +44 -2
- package/docs/reference/use-button.md +6 -2
- package/docs/reference/use-captions-options.md +48 -2
- package/docs/reference/use-composed-refs.md +59 -0
- package/docs/reference/use-container.md +39 -0
- package/docs/reference/use-destroy.md +89 -0
- package/docs/reference/use-dialog-context.md +63 -0
- package/docs/reference/use-double-tap-gesture.md +75 -0
- package/docs/reference/use-error-dialog-context.md +41 -0
- package/docs/reference/use-hotkey-shortcut.md +79 -0
- package/docs/reference/use-hotkey.md +62 -0
- package/docs/reference/use-latest-ref.md +73 -0
- package/docs/reference/use-locale.md +3 -2
- package/docs/reference/use-media-component.md +62 -0
- package/docs/reference/use-media-instance.md +79 -0
- package/docs/reference/use-media.md +31 -2
- package/docs/reference/use-menu-context.md +101 -0
- package/docs/reference/use-optional-container.md +33 -0
- package/docs/reference/use-optional-menu-context.md +101 -0
- package/docs/reference/use-optional-player.md +77 -0
- package/docs/reference/use-playback-rate-options.md +58 -2
- package/docs/reference/use-player-context.md +2 -2
- package/docs/reference/use-player.md +1 -1
- package/docs/reference/use-popover-context.md +95 -0
- package/docs/reference/use-quality-options.md +44 -2
- package/docs/reference/use-selector.md +7 -3
- package/docs/reference/use-slider.md +133 -0
- package/docs/reference/use-snapshot.md +25 -7
- package/docs/reference/use-store.md +10 -6
- package/docs/reference/use-tap-gesture.md +75 -0
- package/docs/reference/use-tooltip-context.md +115 -0
- package/docs/reference/video.md +82 -0
- package/docs/reference/vimeo-video.md +734 -0
- package/docs/reference/volume-indicator.md +601 -0
- package/docs/reference/volume-popover.md +556 -0
- package/docs/reference/volume-slider.md +237 -35
- package/docs/reference/youtube-video.md +339 -0
- package/package.json +33 -38
- package/dist/default/__generated__/skins/default-video/styles/base.css +0 -25
- package/dist/default/__generated__/skins/default-video/styles/buttons.css +0 -266
- package/dist/default/__generated__/skins/default-video/styles/captions.css +0 -22
- package/dist/default/__generated__/skins/default-video/styles/container.css +0 -158
- package/dist/default/__generated__/skins/default-video/styles/controls.css +0 -460
- package/dist/default/__generated__/skins/default-video/styles/dialog.css +0 -169
- package/dist/default/__generated__/skins/default-video/styles/indicator.css +0 -459
- package/dist/default/__generated__/skins/default-video/styles/menus.css +0 -254
- package/dist/default/__generated__/skins/default-video/styles/overlays.css +0 -35
- package/dist/default/__generated__/skins/default-video/styles/popups.css +0 -371
- package/dist/default/__generated__/skins/default-video/styles/poster.css +0 -47
- package/dist/default/__generated__/skins/default-video/styles/sliders.css +0 -436
- package/dist/default/__generated__/skins/default-video/styles/styles.css +0 -2753
- package/dist/default/__generated__/skins/default-video/styles/theme.css +0 -7
- package/dist/default/__generated__/skins/default-video/styles/video.css +0 -29
- package/dist/default/__generated__/skins/minimal-video/styles/base.css +0 -25
- package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +0 -266
- package/dist/default/__generated__/skins/minimal-video/styles/captions.css +0 -22
- package/dist/default/__generated__/skins/minimal-video/styles/container.css +0 -158
- package/dist/default/__generated__/skins/minimal-video/styles/controls.css +0 -182
- package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +0 -77
- package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +0 -322
- package/dist/default/__generated__/skins/minimal-video/styles/menus.css +0 -254
- package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +0 -35
- package/dist/default/__generated__/skins/minimal-video/styles/popups.css +0 -371
- package/dist/default/__generated__/skins/minimal-video/styles/poster.css +0 -47
- package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +0 -436
- package/dist/default/__generated__/skins/minimal-video/styles/styles.css +0 -2246
- package/dist/default/__generated__/skins/minimal-video/styles/theme.css +0 -7
- package/dist/default/__generated__/skins/minimal-video/styles/video.css +0 -29
- package/dist/default/skins/dist/default/default/tailwind/components/error.js +0 -14
- package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +0 -1
- package/dist/default/skins/dist/default/default/tailwind/components/input-indicator-overlay.js +0 -7
- package/dist/default/skins/dist/default/default/tailwind/components/input-indicator-overlay.js.map +0 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +0 -7
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +0 -14
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js +0 -7
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js.map +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +0 -7
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +0 -1
- package/dist/default/ui/alert-dialog/alert-dialog-close.js +0 -28
- package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +0 -1
- package/dist/default/ui/alert-dialog/alert-dialog-description.js +0 -13
- package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +0 -1
- package/dist/default/ui/alert-dialog/alert-dialog-popup.js +0 -29
- package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +0 -1
- package/dist/default/ui/alert-dialog/alert-dialog-title.js +0 -13
- package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +0 -1
- package/dist/default/ui/alert-dialog/context.js +0 -13
- package/dist/default/ui/alert-dialog/context.js.map +0 -1
- package/dist/dev/__generated__/skins/default-video/styles/base.css +0 -25
- package/dist/dev/__generated__/skins/default-video/styles/buttons.css +0 -266
- package/dist/dev/__generated__/skins/default-video/styles/captions.css +0 -22
- package/dist/dev/__generated__/skins/default-video/styles/container.css +0 -158
- package/dist/dev/__generated__/skins/default-video/styles/controls.css +0 -460
- package/dist/dev/__generated__/skins/default-video/styles/dialog.css +0 -169
- package/dist/dev/__generated__/skins/default-video/styles/indicator.css +0 -459
- package/dist/dev/__generated__/skins/default-video/styles/menus.css +0 -254
- package/dist/dev/__generated__/skins/default-video/styles/overlays.css +0 -35
- package/dist/dev/__generated__/skins/default-video/styles/popups.css +0 -371
- package/dist/dev/__generated__/skins/default-video/styles/poster.css +0 -47
- package/dist/dev/__generated__/skins/default-video/styles/sliders.css +0 -436
- package/dist/dev/__generated__/skins/default-video/styles/styles.css +0 -2753
- package/dist/dev/__generated__/skins/default-video/styles/theme.css +0 -7
- package/dist/dev/__generated__/skins/default-video/styles/video.css +0 -29
- package/dist/dev/__generated__/skins/minimal-video/styles/base.css +0 -25
- package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +0 -266
- package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +0 -22
- package/dist/dev/__generated__/skins/minimal-video/styles/container.css +0 -158
- package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +0 -182
- package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +0 -77
- package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +0 -322
- package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +0 -254
- package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +0 -35
- package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +0 -371
- package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +0 -47
- package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +0 -436
- package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +0 -2246
- package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +0 -7
- package/dist/dev/__generated__/skins/minimal-video/styles/video.css +0 -29
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js +0 -14
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +0 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator-overlay.js +0 -7
- package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator-overlay.js.map +0 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +0 -7
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +0 -14
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js +0 -7
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js.map +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +0 -7
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts +0 -12
- package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-close.js +0 -28
- package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts +0 -12
- package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-description.js +0 -13
- package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts +0 -12
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +0 -29
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts +0 -12
- package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-title.js +0 -13
- package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +0 -1
- package/dist/dev/ui/alert-dialog/context.d.ts +0 -13
- package/dist/dev/ui/alert-dialog/context.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/context.js +0 -13
- package/dist/dev/ui/alert-dialog/context.js.map +0 -1
- package/docs/concepts/cast.md +0 -131
- package/docs/concepts/i18n.md +0 -317
- package/docs/how-to/add-a-poster-placeholder.md +0 -133
- package/docs/how-to/i18n-override-translations.md +0 -114
- package/docs/how-to/i18n-register-locale.md +0 -74
- package/docs/how-to/i18n-ssr.md +0 -104
- package/docs/how-to/i18n-switch-locale.md +0 -170
|
@@ -1 +1 @@
|
|
|
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
|
|
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 | '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 onDragStart: () => {\n releaseControlsLockRef.current ??= requestControlsLock?.() ?? null;\n optionsRef.current.onDragStart?.();\n },\n onDragEnd: () => {\n releaseControlsLock();\n optionsRef.current.onDragEnd?.();\n },\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 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":";;;;;;;;;;;;;;;AAwDA,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,mBAAmB;IACjB,uBAAuB,YAAY,sBAAsB,KAAK;IAC9D,WAAW,QAAQ,cAAc;GACnC;GACA,iBAAiB;IACf,oBAAoB;IACpB,WAAW,QAAQ,YAAY;GACjC;EACF;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,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"}
|
|
@@ -2,6 +2,12 @@ import { useContainer } from "../../player/context.js";
|
|
|
2
2
|
import { getHotkeyCoordinator } from "@videojs/core/dom";
|
|
3
3
|
import { useEffect, useState } from "react";
|
|
4
4
|
//#region src/ui/hotkey/use-hotkey-shortcut.ts
|
|
5
|
+
/**
|
|
6
|
+
* Returns display and ARIA metadata for a registered hotkey action in the current player.
|
|
7
|
+
*
|
|
8
|
+
* @param action - Hotkey action to look up. Returns empty details when absent.
|
|
9
|
+
* @param value - Optional action value used to match value-dependent shortcuts.
|
|
10
|
+
*/
|
|
5
11
|
function useHotkeyShortcut(action, value) {
|
|
6
12
|
const container = useContainer();
|
|
7
13
|
const [shortcut, setShortcut] = useState({});
|
|
@@ -1 +1 @@
|
|
|
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\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":"
|
|
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"}
|
|
@@ -3,6 +3,11 @@ import { useLatestRef } from "../../utils/use-latest-ref.js";
|
|
|
3
3
|
import { createHotkey } from "@videojs/core/dom";
|
|
4
4
|
import { useEffect } from "react";
|
|
5
5
|
//#region src/ui/hotkey/use-hotkey.ts
|
|
6
|
+
/**
|
|
7
|
+
* Registers a keyboard shortcut through the current player's hotkey coordinator.
|
|
8
|
+
*
|
|
9
|
+
* @param options - Shortcut keys, activation callback, scope, repeat behavior, and disabled state.
|
|
10
|
+
*/
|
|
6
11
|
function useHotkey(options) {
|
|
7
12
|
const { keys, target = "player", repeatable = true, disabled = false } = options;
|
|
8
13
|
const container = useContainer();
|
|
@@ -1 +1 @@
|
|
|
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\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":"
|
|
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 +1 @@
|
|
|
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 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;
|
|
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"}
|
|
@@ -12,7 +12,8 @@ function useInputIndicatorRoot(createCore, props, options) {
|
|
|
12
12
|
useInputActionSubscription((event, snapshot) => {
|
|
13
13
|
if (core.processEvent(event, snapshot)) showIndicator();
|
|
14
14
|
});
|
|
15
|
-
|
|
15
|
+
const currentState = useSyncExternalStore((callback) => core.state.subscribe(callback), () => core.state.current, () => core.state.current);
|
|
16
|
+
return useRenderedIndicatorState(currentState, options);
|
|
16
17
|
}
|
|
17
18
|
//#endregion
|
|
18
19
|
export { useInputIndicatorRoot };
|
|
@@ -1 +1 @@
|
|
|
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 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;
|
|
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 +1 @@
|
|
|
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 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 if (!transitionState.active || options.replayOnUpdate !== false) {\n void transition.open(elementRef.current);\n } else if (transitionState.status === 'ending') {\n transition.cancel();\n }\n return;\n }\n\n const { active, status } = transition.state.current;\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;
|
|
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"}
|
|
@@ -10,21 +10,18 @@ import { LiveButtonCore, LiveButtonDataAttrs } from "@videojs/core";
|
|
|
10
10
|
//#region src/ui/live-button/live-button.tsx
|
|
11
11
|
const DISPLAY_NAME = "LiveButton";
|
|
12
12
|
/**
|
|
13
|
-
* A button that indicates live status and seeks to the live edge when
|
|
14
|
-
*
|
|
15
|
-
* `data-live-edge` while playing at the live edge so skins can style a
|
|
16
|
-
* red-dot ↔ grey-dot treatment.
|
|
13
|
+
* A button that indicates live status and seeks to the live edge when pressed. Exposes `data-live` while the stream is
|
|
14
|
+
* live (or DVR) and `data-live-edge` while playing at the live edge so skins can style a red-dot ↔ grey-dot treatment.
|
|
17
15
|
*
|
|
18
|
-
* Selects from `live`, `time`, and `buffer` features and composes them
|
|
19
|
-
*
|
|
20
|
-
* needs three feature slices to detect the live edge and seek.
|
|
16
|
+
* Selects from `live`, `time`, and `buffer` features and composes them itself rather than going through
|
|
17
|
+
* `createMediaButton`, since the LiveButton needs three feature slices to detect the live edge and seek.
|
|
21
18
|
*
|
|
22
19
|
* Displays the translated live badge when no children are provided.
|
|
23
20
|
*
|
|
24
21
|
* @example
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <LiveButton />;
|
|
24
|
+
* ```;
|
|
28
25
|
*
|
|
29
26
|
* @see https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md
|
|
30
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-button.js","names":[],"sources":["../../../../src/ui/live-button/live-button.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
|
|
1
|
+
{"version":3,"file":"live-button.js","names":[],"sources":["../../../../src/ui/live-button/live-button.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"}
|
|
@@ -2,14 +2,23 @@ import { createContext, useContext } from "react";
|
|
|
2
2
|
//#region src/ui/menu/context.tsx
|
|
3
3
|
const MenuContext = createContext(null);
|
|
4
4
|
const MenuContextProvider = MenuContext.Provider;
|
|
5
|
+
/** Returns the current menu compound-component context. Throws outside `Menu.Root`. */
|
|
5
6
|
function useMenuContext() {
|
|
6
7
|
const ctx = useContext(MenuContext);
|
|
7
8
|
if (!ctx) throw new Error("Menu compound components must be used within a Menu.Root");
|
|
8
9
|
return ctx;
|
|
9
10
|
}
|
|
11
|
+
/** Returns the nearest menu context, or `null` outside `Menu.Root`. */
|
|
10
12
|
function useOptionalMenuContext() {
|
|
11
13
|
return useContext(MenuContext);
|
|
12
14
|
}
|
|
15
|
+
const MenuPopupContext = createContext(null);
|
|
16
|
+
const MenuPopupContextProvider = MenuPopupContext.Provider;
|
|
17
|
+
function useMenuPopupContext() {
|
|
18
|
+
const ctx = useContext(MenuPopupContext);
|
|
19
|
+
if (!ctx) throw new Error("Menu.Content must be used within a Menu.Popup");
|
|
20
|
+
return ctx;
|
|
21
|
+
}
|
|
13
22
|
const MenuGroupContext = createContext(null);
|
|
14
23
|
const MenuGroupContextProvider = MenuGroupContext.Provider;
|
|
15
24
|
function useMenuGroupContext() {
|
|
@@ -33,6 +42,6 @@ function useOptionalMenuTriggerChildContext() {
|
|
|
33
42
|
return useContext(MenuTriggerChildContext);
|
|
34
43
|
}
|
|
35
44
|
//#endregion
|
|
36
|
-
export { MenuContextProvider, MenuGroupContextProvider, MenuRadioGroupContextProvider, MenuRadioItemContextProvider, MenuTriggerChildContextProvider, useMenuContext, useMenuGroupContext, useMenuRadioGroupContext, useOptionalMenuContext, useOptionalMenuRadioItemContext, useOptionalMenuTriggerChildContext };
|
|
45
|
+
export { MenuContextProvider, MenuGroupContextProvider, MenuPopupContextProvider, MenuRadioGroupContextProvider, MenuRadioItemContextProvider, MenuTriggerChildContextProvider, useMenuContext, useMenuGroupContext, useMenuPopupContext, useMenuRadioGroupContext, useOptionalMenuContext, useOptionalMenuRadioItemContext, useOptionalMenuTriggerChildContext };
|
|
37
46
|
|
|
38
47
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/menu/context.tsx"],"sourcesContent":["import type { MenuCore, MenuState
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/menu/context.tsx"],"sourcesContent":["import type { MenuCore, MenuState } from '@videojs/core';\nimport type { MediaContainer, MenuApi, MenuPopupApi, PositioningBoundary } from '@videojs/core/dom';\nimport { createContext, useContext } 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}\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\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":";;AAiBA,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;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"}
|
|
@@ -6,6 +6,7 @@ import { MenuGroup } from "./menu-group.js";
|
|
|
6
6
|
import { MenuGroupLabel } from "./menu-group-label.js";
|
|
7
7
|
import { MenuItem } from "./menu-item.js";
|
|
8
8
|
import { MenuItemIndicator } from "./menu-item-indicator.js";
|
|
9
|
+
import { MenuPopup } from "./menu-popup.js";
|
|
9
10
|
import { MenuRadioItem } from "./menu-radio-item.js";
|
|
10
11
|
import { MenuRoot } from "./menu-root.js";
|
|
11
12
|
import { MenuSeparator } from "./menu-separator.js";
|
|
@@ -18,6 +19,7 @@ var index_parts_exports = /* @__PURE__ */ __exportAll({
|
|
|
18
19
|
GroupLabel: () => MenuGroupLabel,
|
|
19
20
|
Item: () => MenuItem,
|
|
20
21
|
ItemIndicator: () => MenuItemIndicator,
|
|
22
|
+
Popup: () => MenuPopup,
|
|
21
23
|
RadioGroup: () => MenuRadioGroup,
|
|
22
24
|
RadioItem: () => MenuRadioItem,
|
|
23
25
|
Root: () => MenuRoot,
|
|
@@ -25,6 +27,6 @@ var index_parts_exports = /* @__PURE__ */ __exportAll({
|
|
|
25
27
|
Trigger: () => MenuTrigger
|
|
26
28
|
});
|
|
27
29
|
//#endregion
|
|
28
|
-
export { MenuCheckboxItem as CheckboxItem, MenuContent as Content, MenuGroup as Group, MenuGroupLabel as GroupLabel, MenuItem as Item, MenuItemIndicator as ItemIndicator, MenuRadioGroup as RadioGroup, MenuRadioItem as RadioItem, MenuRoot as Root, MenuSeparator as Separator, MenuTrigger as Trigger, index_parts_exports };
|
|
30
|
+
export { MenuCheckboxItem as CheckboxItem, MenuContent as Content, MenuGroup as Group, MenuGroupLabel as GroupLabel, MenuItem as Item, MenuItemIndicator as ItemIndicator, MenuPopup as Popup, MenuRadioGroup as RadioGroup, MenuRadioItem as RadioItem, MenuRoot as Root, MenuSeparator as Separator, MenuTrigger as Trigger, index_parts_exports };
|
|
29
31
|
|
|
30
32
|
//# sourceMappingURL=index.parts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/menu/index.parts.ts"],"sourcesContent":["export {\n MenuCheckboxItem as CheckboxItem,\n type MenuCheckboxItemProps as CheckboxItemProps,\n} from './menu-checkbox-item';\nexport { MenuContent as Content, type MenuContentProps as ContentProps } from './menu-content';\nexport { MenuGroup as Group, type MenuGroupProps as GroupProps } from './menu-group';\nexport { MenuGroupLabel as GroupLabel, type MenuGroupLabelProps as GroupLabelProps } from './menu-group-label';\nexport { MenuItem as Item, type MenuItemProps as ItemProps } from './menu-item';\nexport {\n MenuItemIndicator as ItemIndicator,\n type MenuItemIndicatorProps as ItemIndicatorProps,\n} from './menu-item-indicator';\nexport { MenuRadioGroup as RadioGroup, type MenuRadioGroupProps as RadioGroupProps } from './menu-radio-group';\nexport { MenuRadioItem as RadioItem, type MenuRadioItemProps as RadioItemProps } from './menu-radio-item';\nexport { MenuRoot as Root, type MenuRootProps as RootProps } from './menu-root';\nexport { MenuSeparator as Separator, type MenuSeparatorProps as SeparatorProps } from './menu-separator';\nexport { MenuTrigger as Trigger, type MenuTriggerProps as TriggerProps } from './menu-trigger';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/menu/index.parts.ts"],"sourcesContent":["export {\n MenuCheckboxItem as CheckboxItem,\n type MenuCheckboxItemProps as CheckboxItemProps,\n} from './menu-checkbox-item';\nexport { MenuContent as Content, type MenuContentProps as ContentProps } from './menu-content';\nexport { MenuGroup as Group, type MenuGroupProps as GroupProps } from './menu-group';\nexport { MenuGroupLabel as GroupLabel, type MenuGroupLabelProps as GroupLabelProps } from './menu-group-label';\nexport { MenuItem as Item, type MenuItemProps as ItemProps } from './menu-item';\nexport {\n MenuItemIndicator as ItemIndicator,\n type MenuItemIndicatorProps as ItemIndicatorProps,\n} from './menu-item-indicator';\nexport { MenuPopup as Popup, type MenuPopupProps as PopupProps } from './menu-popup';\nexport { MenuRadioGroup as RadioGroup, type MenuRadioGroupProps as RadioGroupProps } from './menu-radio-group';\nexport { MenuRadioItem as RadioItem, type MenuRadioItemProps as RadioItemProps } from './menu-radio-item';\nexport { MenuRoot as Root, type MenuRootProps as RootProps } from './menu-root';\nexport { MenuSeparator as Separator, type MenuSeparatorProps as SeparatorProps } from './menu-separator';\nexport { MenuTrigger as Trigger, type MenuTriggerProps as TriggerProps } from './menu-trigger';\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-checkbox-item.js","names":[],"sources":["../../../../src/ui/menu/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 return menu.registerItem(element);\n }, [menu]);\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\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 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;
|
|
1
|
+
{"version":3,"file":"menu-checkbox-item.js","names":[],"sources":["../../../../src/ui/menu/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,18 +1,20 @@
|
|
|
1
1
|
import { useComposedRefs } from "../../utils/use-composed-refs.js";
|
|
2
2
|
import { renderElement } from "../../utils/use-render.js";
|
|
3
|
-
import { useMenuContext } from "./context.js";
|
|
4
|
-
import { usePopupPosition } from "../popover/use-popup-position.js";
|
|
3
|
+
import { useMenuContext, useMenuPopupContext } from "./context.js";
|
|
5
4
|
import { callKeyDownHandler, preventMenuKeyDefault } from "./menu-keyboard.js";
|
|
6
|
-
import {
|
|
7
|
-
import { forwardRef, useCallback, useLayoutEffect,
|
|
5
|
+
import { isMenuNavigationKey } from "@videojs/core/dom";
|
|
6
|
+
import { forwardRef, useCallback, useLayoutEffect, useRef } from "react";
|
|
7
|
+
import { MenuContentDataAttrs } from "@videojs/core";
|
|
8
8
|
import { createPortal } from "react-dom";
|
|
9
9
|
//#region src/ui/menu/menu-content.tsx
|
|
10
|
-
/**
|
|
10
|
+
/** Accessible item and focus scope for exactly one root or nested menu page. */
|
|
11
11
|
const MenuContent = forwardRef(function MenuContent({ render, className, style, onKeyDown, onBlur, ...elementProps }, forwardedRef) {
|
|
12
|
-
const { core, menu, parent, state,
|
|
13
|
-
const
|
|
12
|
+
const { core, menu, parent, state, contentId } = useMenuContext();
|
|
13
|
+
const { popup, element: popupElement } = useMenuPopupContext();
|
|
14
|
+
const isSubmenu = parent !== null;
|
|
14
15
|
const isActive = isSubmenu && state.open;
|
|
15
16
|
const wasActiveRef = useRef(false);
|
|
17
|
+
const cleanupRegistrationRef = useRef(null);
|
|
16
18
|
useLayoutEffect(() => {
|
|
17
19
|
if (!isSubmenu) return void 0;
|
|
18
20
|
const wasActive = wasActiveRef.current;
|
|
@@ -26,130 +28,66 @@ const MenuContent = forwardRef(function MenuContent({ render, className, style,
|
|
|
26
28
|
isSubmenu,
|
|
27
29
|
menu
|
|
28
30
|
]);
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (
|
|
31
|
+
const setContentElement = useCallback((element) => {
|
|
32
|
+
cleanupRegistrationRef.current?.();
|
|
33
|
+
cleanupRegistrationRef.current = null;
|
|
34
|
+
if (!element) {
|
|
35
|
+
if (isSubmenu) menu.setPopupElement(null);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (isSubmenu) menu.setPopupElement(element);
|
|
39
|
+
cleanupRegistrationRef.current = popup.registerContent({
|
|
40
|
+
menu,
|
|
41
|
+
parent: parent?.menu ?? null,
|
|
42
|
+
element
|
|
34
43
|
});
|
|
35
|
-
}, [
|
|
36
|
-
|
|
44
|
+
}, [
|
|
45
|
+
isSubmenu,
|
|
46
|
+
menu,
|
|
47
|
+
parent?.menu,
|
|
48
|
+
popup
|
|
49
|
+
]);
|
|
50
|
+
const composedRef = useComposedRefs(forwardedRef, setContentElement);
|
|
51
|
+
const handleKeyDown = useCallback((event) => {
|
|
37
52
|
const defaultPreventedByUser = callKeyDownHandler(onKeyDown, event);
|
|
38
53
|
const isNavigationKey = isMenuNavigationKey(event);
|
|
39
54
|
menu.contentProps.onKeyDown(event);
|
|
40
|
-
if ((event.key === "ArrowLeft" || event.key === "Escape") && !defaultPreventedByUser) {
|
|
55
|
+
if (isSubmenu && (event.key === "ArrowLeft" || event.key === "Escape") && !defaultPreventedByUser) {
|
|
41
56
|
event.preventDefault();
|
|
42
57
|
menu.close("escape");
|
|
43
58
|
}
|
|
44
|
-
if (isNavigationKey) event.stopPropagation();
|
|
45
|
-
}, [onKeyDown, menu]);
|
|
46
|
-
const handleRootMenuKeyDown = useCallback((event) => {
|
|
47
|
-
onKeyDown?.(event);
|
|
48
|
-
menu.contentProps.onKeyDown(event);
|
|
49
|
-
if (event.key === "Escape") return;
|
|
50
|
-
if (isMenuNavigationKey(event)) event.stopPropagation();
|
|
51
|
-
}, [onKeyDown, menu]);
|
|
52
|
-
const handleRootMenuBlur = useCallback((event) => {
|
|
53
|
-
onBlur?.(event);
|
|
54
|
-
menu.contentProps.onFocusOut(event);
|
|
55
|
-
}, [onBlur, menu]);
|
|
56
|
-
const handleSubMenuBlur = useCallback((event) => {
|
|
57
|
-
onBlur?.(event);
|
|
58
|
-
menu.contentProps.onFocusOut(event);
|
|
59
|
-
}, [onBlur, menu]);
|
|
60
|
-
const internalRef = useRef(null);
|
|
61
|
-
const rootComposedRef = useComposedRefs(forwardedRef, useCallback((element) => {
|
|
62
|
-
if (!isSubmenu) menu.setContentElement(element);
|
|
63
|
-
}, [isSubmenu, menu]), internalRef);
|
|
64
|
-
const submenuComposedRef = useComposedRefs(forwardedRef, setSubmenuContentElement);
|
|
65
|
-
const positionOptions = useMemo(() => getRootPositionOptions(preferredSide, state.align), [preferredSide, state.align]);
|
|
66
|
-
const positioningStyle = usePopupPosition({
|
|
67
|
-
open: state.open && !isSubmenu,
|
|
68
|
-
anchorName,
|
|
69
|
-
position: positionOptions,
|
|
70
|
-
triggerSource: menu,
|
|
71
|
-
popupRef: internalRef,
|
|
72
|
-
boundary,
|
|
73
|
-
container,
|
|
74
|
-
cssVars: MenuPositioningCSSVars,
|
|
75
|
-
onSideChange: setPositionedSide
|
|
76
|
-
});
|
|
77
|
-
useLayoutEffect(() => {
|
|
78
|
-
if (isSubmenu || !state.open) return;
|
|
79
|
-
const contentElement = internalRef.current;
|
|
80
|
-
if (!contentElement) return;
|
|
81
|
-
const sync = () => syncMenuSizeChain(contentElement);
|
|
82
|
-
sync();
|
|
83
|
-
const frame = requestAnimationFrame(sync);
|
|
84
|
-
const stopObserving = observeMenuSize(contentElement, sync);
|
|
85
|
-
return () => {
|
|
86
|
-
cancelAnimationFrame(frame);
|
|
87
|
-
stopObserving();
|
|
88
|
-
};
|
|
89
|
-
}, [isSubmenu, state.open]);
|
|
90
|
-
useLayoutEffect(() => {
|
|
91
|
-
if (!isSubmenu) return;
|
|
92
|
-
const isEnding = state.status === "ending";
|
|
93
|
-
const parentContentElement = parent?.menu.contentElement ?? null;
|
|
94
|
-
const sync = () => syncMenuSizeChain(parentContentElement);
|
|
95
|
-
sync();
|
|
96
|
-
const frame = requestAnimationFrame(sync);
|
|
97
|
-
const stopObserving = state.open && !isEnding && parentContentElement ? observeMenuSize(parentContentElement, sync) : null;
|
|
98
|
-
return () => {
|
|
99
|
-
cancelAnimationFrame(frame);
|
|
100
|
-
stopObserving?.();
|
|
101
|
-
};
|
|
59
|
+
if (event.key !== "Escape" && isNavigationKey) event.stopPropagation();
|
|
102
60
|
}, [
|
|
103
61
|
isSubmenu,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
state.status
|
|
62
|
+
menu,
|
|
63
|
+
onKeyDown
|
|
107
64
|
]);
|
|
108
|
-
if (isSubmenu)
|
|
109
|
-
|
|
110
|
-
const subMenuContent = renderElement("div", {
|
|
111
|
-
render,
|
|
112
|
-
className,
|
|
113
|
-
style
|
|
114
|
-
}, {
|
|
115
|
-
state,
|
|
116
|
-
stateAttrMap,
|
|
117
|
-
ref: submenuComposedRef,
|
|
118
|
-
props: [{
|
|
119
|
-
id: contentId,
|
|
120
|
-
role: "menu",
|
|
121
|
-
tabIndex: -1,
|
|
122
|
-
onKeyDownCapture: preventMenuKeyDefault,
|
|
123
|
-
onKeyDown: handleSubMenuKeyDown,
|
|
124
|
-
onBlur: handleSubMenuBlur
|
|
125
|
-
}, elementProps]
|
|
126
|
-
});
|
|
127
|
-
const parentContentElement = parent?.menu.contentElement ?? null;
|
|
128
|
-
return parentContentElement ? createPortal(subMenuContent, parentContentElement) : subMenuContent;
|
|
129
|
-
}
|
|
130
|
-
if (!state.open && state.status !== "ending") return null;
|
|
131
|
-
return renderElement("div", {
|
|
65
|
+
if (isSubmenu && !isActive && state.status !== "ending") return null;
|
|
66
|
+
const contentNode = renderElement("div", {
|
|
132
67
|
render,
|
|
133
68
|
className,
|
|
134
69
|
style
|
|
135
70
|
}, {
|
|
136
71
|
state,
|
|
137
|
-
stateAttrMap,
|
|
138
|
-
ref:
|
|
72
|
+
stateAttrMap: MenuContentDataAttrs,
|
|
73
|
+
ref: composedRef,
|
|
139
74
|
props: [
|
|
140
75
|
{
|
|
141
76
|
id: contentId,
|
|
142
|
-
|
|
143
|
-
...core.getContentAttrs(state)
|
|
77
|
+
...core.getContentAttrs()
|
|
144
78
|
},
|
|
145
79
|
{
|
|
146
80
|
onKeyDownCapture: preventMenuKeyDefault,
|
|
147
|
-
onKeyDown:
|
|
148
|
-
onBlur:
|
|
81
|
+
onKeyDown: handleKeyDown,
|
|
82
|
+
onBlur: (event) => {
|
|
83
|
+
onBlur?.(event);
|
|
84
|
+
if (isSubmenu) menu.contentProps.onFocusOut(event);
|
|
85
|
+
}
|
|
149
86
|
},
|
|
150
87
|
elementProps
|
|
151
88
|
]
|
|
152
89
|
});
|
|
90
|
+
return isSubmenu && popupElement ? createPortal(contentNode, popupElement) : contentNode;
|
|
153
91
|
});
|
|
154
92
|
//#endregion
|
|
155
93
|
export { MenuContent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-content.js","names":[],"sources":["../../../../src/ui/menu/menu-content.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport {\n getRootPositionOptions,\n isMenuNavigationKey,\n MenuPositioningCSSVars,\n observeMenuSize,\n syncMenuSizeChain,\n} from '@videojs/core/dom';\nimport { forwardRef, useCallback, useLayoutEffect, useMemo, 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 { usePopupPosition } from '../popover/use-popup-position';\nimport { useMenuContext } from './context';\nimport { callKeyDownHandler, preventMenuKeyDefault } from './menu-keyboard';\n\nexport interface MenuContentProps extends UIComponentProps<'div', MenuState> {}\n\n/** Container for menu items. Positioned relative to the trigger at root level; renders in-place as a submenu panel when nested. */\nexport const MenuContent = forwardRef<HTMLDivElement, MenuContentProps>(function MenuContent(\n { render, className, style, onKeyDown, onBlur, ...elementProps },\n forwardedRef\n) {\n const {\n core,\n menu,\n parent,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap,\n anchorName,\n contentId,\n boundary,\n container,\n } = useMenuContext();\n const isSubmenu = state.isSubmenu;\n const isActive = isSubmenu && state.open;\n const wasActiveRef = useRef(false);\n\n useLayoutEffect(() => {\n if (!isSubmenu) return undefined;\n\n const wasActive = wasActiveRef.current;\n wasActiveRef.current = isActive;\n\n if (isActive && !wasActive) {\n const frame = requestAnimationFrame(() => menu.highlightFirstItem({ preventScroll: true }));\n return () => cancelAnimationFrame(frame);\n }\n\n return undefined;\n }, [isActive, isSubmenu, menu]);\n\n const setSubmenuContentElement = useCallback(\n (element: HTMLDivElement | null) => {\n menu.setContentElement(element);\n if (!element) {\n requestAnimationFrame(() => {\n syncMenuSizeChain(parent?.menu.contentElement ?? null);\n if (!menu.input.current.active) menu.restoreFocus({ preventScroll: true });\n });\n }\n },\n [menu, parent]\n );\n\n const handleSubMenuKeyDown = 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 menu.contentProps.onKeyDown(event);\n const isBackNavigationKey = event.key === 'ArrowLeft' || event.key === 'Escape';\n\n if (isBackNavigationKey && !defaultPreventedByUser) {\n event.preventDefault();\n menu.close('escape');\n }\n\n if (isNavigationKey) event.stopPropagation();\n },\n [onKeyDown, menu]\n );\n\n const handleRootMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n (onKeyDown as React.KeyboardEventHandler<HTMLDivElement> | undefined)?.(event);\n menu.contentProps.onKeyDown(event);\n if (event.key === 'Escape') return;\n if (isMenuNavigationKey(event)) event.stopPropagation();\n },\n [onKeyDown, menu]\n );\n\n const handleRootMenuBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n (onBlur as React.FocusEventHandler<HTMLDivElement> | undefined)?.(event);\n menu.contentProps.onFocusOut(event);\n },\n [onBlur, menu]\n );\n\n const handleSubMenuBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n (onBlur as React.FocusEventHandler<HTMLDivElement> | undefined)?.(event);\n menu.contentProps.onFocusOut(event);\n },\n [onBlur, menu]\n );\n\n const internalRef = useRef<HTMLDivElement>(null);\n const contentRef = useCallback(\n (element: HTMLDivElement | null) => {\n if (!isSubmenu) menu.setContentElement(element);\n },\n [isSubmenu, menu]\n );\n const rootComposedRef = useComposedRefs(forwardedRef, contentRef, internalRef);\n const submenuComposedRef = useComposedRefs(forwardedRef, setSubmenuContentElement);\n const positionOptions = useMemo(\n () => getRootPositionOptions(preferredSide, state.align),\n [preferredSide, state.align]\n );\n const positioningStyle = usePopupPosition({\n open: state.open && !isSubmenu,\n anchorName,\n position: positionOptions,\n triggerSource: menu,\n popupRef: internalRef,\n boundary,\n container,\n cssVars: MenuPositioningCSSVars,\n onSideChange: setPositionedSide,\n });\n\n useLayoutEffect(() => {\n if (isSubmenu || !state.open) return;\n\n const contentElement = internalRef.current;\n if (!contentElement) return;\n\n const sync = () => syncMenuSizeChain(contentElement);\n sync();\n const frame = requestAnimationFrame(sync);\n const stopObserving = observeMenuSize(contentElement, sync);\n\n return () => {\n cancelAnimationFrame(frame);\n stopObserving();\n };\n }, [isSubmenu, state.open]);\n\n useLayoutEffect(() => {\n if (!isSubmenu) return;\n\n const isEnding = state.status === 'ending';\n const parentContentElement = parent?.menu.contentElement ?? null;\n const sync = () => syncMenuSizeChain(parentContentElement);\n sync();\n const frame = requestAnimationFrame(sync);\n const stopObserving =\n state.open && !isEnding && parentContentElement ? observeMenuSize(parentContentElement, sync) : null;\n\n return () => {\n cancelAnimationFrame(frame);\n stopObserving?.();\n };\n }, [isSubmenu, parent, state.open, state.status]);\n\n if (isSubmenu) {\n if (!isActive && state.status !== 'ending') return null;\n\n const subMenuContent = renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: submenuComposedRef,\n props: [\n {\n id: contentId,\n role: 'menu' as const,\n tabIndex: -1,\n onKeyDownCapture: preventMenuKeyDefault,\n onKeyDown: handleSubMenuKeyDown,\n onBlur: handleSubMenuBlur,\n },\n elementProps,\n ],\n }\n );\n\n const parentContentElement = parent?.menu.contentElement ?? null;\n return parentContentElement ? createPortal(subMenuContent, parentContentElement) : subMenuContent;\n }\n\n if (!state.open && state.status !== 'ending') return null;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: rootComposedRef,\n props: [\n {\n id: contentId,\n style: positioningStyle,\n ...core.getContentAttrs(state),\n },\n { onKeyDownCapture: preventMenuKeyDefault, onKeyDown: handleRootMenuKeyDown, onBlur: handleRootMenuBlur },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace MenuContent {\n export type Props = MenuContentProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;;;;;;AAqBA,MAAa,cAAc,WAA6C,SAAS,YAC/E,EAAE,QAAQ,WAAW,OAAO,WAAW,QAAQ,GAAG,gBAClD,cACA;CACA,MAAM,EACJ,MACA,MACA,QACA,OACA,eACA,mBACA,cACA,YACA,WACA,UACA,cACE,eAAe;CACnB,MAAM,YAAY,MAAM;CACxB,MAAM,WAAW,aAAa,MAAM;CACpC,MAAM,eAAe,OAAO,KAAK;CAEjC,sBAAsB;EACpB,IAAI,CAAC,WAAW,OAAO,KAAA;EAEvB,MAAM,YAAY,aAAa;EAC/B,aAAa,UAAU;EAEvB,IAAI,YAAY,CAAC,WAAW;GAC1B,MAAM,QAAQ,4BAA4B,KAAK,mBAAmB,EAAE,eAAe,KAAK,CAAC,CAAC;GAC1F,aAAa,qBAAqB,KAAK;EACzC;CAGF,GAAG;EAAC;EAAU;EAAW;CAAI,CAAC;CAE9B,MAAM,2BAA2B,aAC9B,YAAmC;EAClC,KAAK,kBAAkB,OAAO;EAC9B,IAAI,CAAC,SACH,4BAA4B;GAC1B,kBAAkB,QAAQ,KAAK,kBAAkB,IAAI;GACrD,IAAI,CAAC,KAAK,MAAM,QAAQ,QAAQ,KAAK,aAAa,EAAE,eAAe,KAAK,CAAC;EAC3E,CAAC;CAEL,GACA,CAAC,MAAM,MAAM,CACf;CAEA,MAAM,uBAAuB,aAC1B,UAA+C;EAC9C,MAAM,yBAAyB,mBAC7B,WACA,KACF;EACA,MAAM,kBAAkB,oBAAoB,KAAK;EACjD,KAAK,aAAa,UAAU,KAAK;EAGjC,KAF4B,MAAM,QAAQ,eAAe,MAAM,QAAQ,aAE5C,CAAC,wBAAwB;GAClD,MAAM,eAAe;GACrB,KAAK,MAAM,QAAQ;EACrB;EAEA,IAAI,iBAAiB,MAAM,gBAAgB;CAC7C,GACA,CAAC,WAAW,IAAI,CAClB;CAEA,MAAM,wBAAwB,aAC3B,UAA+C;EAC9C,YAAwE,KAAK;EAC7E,KAAK,aAAa,UAAU,KAAK;EACjC,IAAI,MAAM,QAAQ,UAAU;EAC5B,IAAI,oBAAoB,KAAK,GAAG,MAAM,gBAAgB;CACxD,GACA,CAAC,WAAW,IAAI,CAClB;CAEA,MAAM,qBAAqB,aACxB,UAA4C;EAC3C,SAAkE,KAAK;EACvE,KAAK,aAAa,WAAW,KAAK;CACpC,GACA,CAAC,QAAQ,IAAI,CACf;CAEA,MAAM,oBAAoB,aACvB,UAA4C;EAC3C,SAAkE,KAAK;EACvE,KAAK,aAAa,WAAW,KAAK;CACpC,GACA,CAAC,QAAQ,IAAI,CACf;CAEA,MAAM,cAAc,OAAuB,IAAI;CAO/C,MAAM,kBAAkB,gBAAgB,cANrB,aAChB,YAAmC;EAClC,IAAI,CAAC,WAAW,KAAK,kBAAkB,OAAO;CAChD,GACA,CAAC,WAAW,IAAI,CAE6C,GAAG,WAAW;CAC7E,MAAM,qBAAqB,gBAAgB,cAAc,wBAAwB;CACjF,MAAM,kBAAkB,cAChB,uBAAuB,eAAe,MAAM,KAAK,GACvD,CAAC,eAAe,MAAM,KAAK,CAC7B;CACA,MAAM,mBAAmB,iBAAiB;EACxC,MAAM,MAAM,QAAQ,CAAC;EACrB;EACA,UAAU;EACV,eAAe;EACf,UAAU;EACV;EACA;EACA,SAAS;EACT,cAAc;CAChB,CAAC;CAED,sBAAsB;EACpB,IAAI,aAAa,CAAC,MAAM,MAAM;EAE9B,MAAM,iBAAiB,YAAY;EACnC,IAAI,CAAC,gBAAgB;EAErB,MAAM,aAAa,kBAAkB,cAAc;EACnD,KAAK;EACL,MAAM,QAAQ,sBAAsB,IAAI;EACxC,MAAM,gBAAgB,gBAAgB,gBAAgB,IAAI;EAE1D,aAAa;GACX,qBAAqB,KAAK;GAC1B,cAAc;EAChB;CACF,GAAG,CAAC,WAAW,MAAM,IAAI,CAAC;CAE1B,sBAAsB;EACpB,IAAI,CAAC,WAAW;EAEhB,MAAM,WAAW,MAAM,WAAW;EAClC,MAAM,uBAAuB,QAAQ,KAAK,kBAAkB;EAC5D,MAAM,aAAa,kBAAkB,oBAAoB;EACzD,KAAK;EACL,MAAM,QAAQ,sBAAsB,IAAI;EACxC,MAAM,gBACJ,MAAM,QAAQ,CAAC,YAAY,uBAAuB,gBAAgB,sBAAsB,IAAI,IAAI;EAElG,aAAa;GACX,qBAAqB,KAAK;GAC1B,gBAAgB;EAClB;CACF,GAAG;EAAC;EAAW;EAAQ,MAAM;EAAM,MAAM;CAAM,CAAC;CAEhD,IAAI,WAAW;EACb,IAAI,CAAC,YAAY,MAAM,WAAW,UAAU,OAAO;EAEnD,MAAM,iBAAiB,cACrB,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA;GACA,KAAK;GACL,OAAO,CACL;IACE,IAAI;IACJ,MAAM;IACN,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,QAAQ;GACV,GACA,YACF;EACF,CACF;EAEA,MAAM,uBAAuB,QAAQ,KAAK,kBAAkB;EAC5D,OAAO,uBAAuB,aAAa,gBAAgB,oBAAoB,IAAI;CACrF;CAEA,IAAI,CAAC,MAAM,QAAQ,MAAM,WAAW,UAAU,OAAO;CAErD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,gBAAgB,KAAK;GAC/B;GACA;IAAE,kBAAkB;IAAuB,WAAW;IAAuB,QAAQ;GAAmB;GACxG;EACF;CACF,CACF;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"menu-content.js","names":[],"sources":["../../../../src/ui/menu/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 './menu-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 if (isSubmenu && !isActive && state.status !== 'ending') 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;CAEA,IAAI,aAAa,CAAC,YAAY,MAAM,WAAW,UAAU,OAAO;CAEhE,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item-indicator.js","names":[],"sources":["../../../../src/ui/menu/menu-item-indicator.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, useOptionalMenuRadioItemContext } from './context';\n\nexport interface MenuItemIndicatorProps extends UIComponentProps<'span', MenuState> {\n /** Whether the indicator is currently shown. Typically bound to the parent item's checked state. */\n checked?: boolean;\n /** When `true`, renders even when unchecked (useful for animating out). Defaults to `false`. */\n forceMount?: boolean;\n}\n\n/** Visual indicator for a checked state. Only renders when `checked` is `true` (or `forceMount` is set). */\nexport const MenuItemIndicator = forwardRef<HTMLSpanElement, MenuItemIndicatorProps>(function MenuItemIndicator(\n { render, className, style, checked, forceMount = false, ...elementProps },\n forwardedRef\n) {\n const { state } = useMenuContext();\n const itemChecked = useOptionalMenuRadioItemContext();\n const resolvedChecked = checked ?? itemChecked;\n
|
|
1
|
+
{"version":3,"file":"menu-item-indicator.js","names":[],"sources":["../../../../src/ui/menu/menu-item-indicator.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, useOptionalMenuRadioItemContext } from './context';\n\nexport interface MenuItemIndicatorProps extends UIComponentProps<'span', MenuState> {\n /** Whether the indicator is currently shown. Typically bound to the parent item's checked state. */\n checked?: boolean;\n /** When `true`, renders even when unchecked (useful for animating out). Defaults to `false`. */\n forceMount?: boolean;\n}\n\n/** Visual indicator for a checked state. Only renders when `checked` is `true` (or `forceMount` is set). */\nexport const MenuItemIndicator = forwardRef<HTMLSpanElement, MenuItemIndicatorProps>(function MenuItemIndicator(\n { render, className, style, checked, forceMount = false, ...elementProps },\n forwardedRef\n) {\n const { state } = useMenuContext();\n const itemChecked = useOptionalMenuRadioItemContext();\n const resolvedChecked = checked ?? itemChecked;\n if (!resolvedChecked && !forceMount) return null;\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ 'aria-hidden': true }, elementProps],\n }\n );\n});\n\nexport namespace MenuItemIndicator {\n export type Props = MenuItemIndicatorProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;AAeA,MAAa,oBAAoB,WAAoD,SAAS,kBAC5F,EAAE,QAAQ,WAAW,OAAO,SAAS,aAAa,OAAO,GAAG,gBAC5D,cACA;CACA,MAAM,EAAE,UAAU,eAAe;CACjC,MAAM,cAAc,gCAAgC;CAEpD,IAAI,EADoB,WAAW,gBACX,CAAC,YAAY,OAAO;CAE5C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,eAAe,KAAK,GAAG,YAAY;CAC/C,CACF;AACF,CAAC"}
|
|
@@ -13,29 +13,31 @@ const MenuItem = forwardRef(function MenuItem({ render, className, style, onSele
|
|
|
13
13
|
if (!element) return;
|
|
14
14
|
return menu.registerItem(element);
|
|
15
15
|
}, [menu]);
|
|
16
|
+
const handleClick = useCallback((event) => {
|
|
17
|
+
if (disabled) return;
|
|
18
|
+
onClick?.(event);
|
|
19
|
+
if (event.defaultPrevented) return;
|
|
20
|
+
onSelect?.();
|
|
21
|
+
completeMenuItemSelection(menu);
|
|
22
|
+
}, [
|
|
23
|
+
disabled,
|
|
24
|
+
onClick,
|
|
25
|
+
onSelect,
|
|
26
|
+
menu
|
|
27
|
+
]);
|
|
28
|
+
const handlePointerEnter = useCallback(() => {
|
|
29
|
+
const element = elementRef.current;
|
|
30
|
+
if (!element || disabled) return;
|
|
31
|
+
menu.highlight(element, {
|
|
32
|
+
focus: false,
|
|
33
|
+
pointer: true
|
|
34
|
+
});
|
|
35
|
+
}, [menu, disabled]);
|
|
16
36
|
return /* @__PURE__ */ jsx(MenuItemContent, {
|
|
17
37
|
disabled,
|
|
18
38
|
elementProps,
|
|
19
|
-
onClick:
|
|
20
|
-
|
|
21
|
-
onClick?.(event);
|
|
22
|
-
if (event.defaultPrevented) return;
|
|
23
|
-
onSelect?.();
|
|
24
|
-
completeMenuItemSelection(menu);
|
|
25
|
-
}, [
|
|
26
|
-
disabled,
|
|
27
|
-
onClick,
|
|
28
|
-
onSelect,
|
|
29
|
-
menu
|
|
30
|
-
]),
|
|
31
|
-
onPointerEnter: useCallback(() => {
|
|
32
|
-
const element = elementRef.current;
|
|
33
|
-
if (!element || disabled) return;
|
|
34
|
-
menu.highlight(element, {
|
|
35
|
-
focus: false,
|
|
36
|
-
pointer: true
|
|
37
|
-
});
|
|
38
|
-
}, [menu, disabled]),
|
|
39
|
+
onClick: handleClick,
|
|
40
|
+
onPointerEnter: handlePointerEnter,
|
|
39
41
|
render,
|
|
40
42
|
className,
|
|
41
43
|
style,
|