From 784a38389bf0c00f6a6fc470eb762c753929eca9 Mon Sep 17 00:00:00 2001 From: publish Date: Wed, 5 Aug 2026 18:57:47 +0200 Subject: [PATCH] build(react): build26 from 45504a2b --- README.md | 34 + dist/default/_virtual/_rolldown/runtime.js | 13 + dist/default/i18n/context.js | 36 + dist/default/i18n/context.js.map | 1 + dist/default/i18n/create-i18n.js | 76 + dist/default/i18n/create-i18n.js.map | 1 + dist/default/i18n/get-provider-root-props.js | 40 + .../i18n/get-provider-root-props.js.map | 1 + dist/default/i18n/index.js | 5 + dist/default/i18n/locales/all.js | 2 + dist/default/i18n/locales/all/register.js | 8 + dist/default/i18n/locales/all/register.js.map | 1 + dist/default/i18n/locales/ar.js | 2 + dist/default/i18n/locales/ar/register.js | 8 + dist/default/i18n/locales/ar/register.js.map | 1 + dist/default/i18n/locales/az.js | 2 + dist/default/i18n/locales/az/register.js | 8 + dist/default/i18n/locales/az/register.js.map | 1 + dist/default/i18n/locales/bg.js | 2 + dist/default/i18n/locales/bg/register.js | 8 + dist/default/i18n/locales/bg/register.js.map | 1 + dist/default/i18n/locales/bn.js | 2 + dist/default/i18n/locales/bn/register.js | 8 + dist/default/i18n/locales/bn/register.js.map | 1 + dist/default/i18n/locales/bs.js | 2 + dist/default/i18n/locales/bs/register.js | 8 + dist/default/i18n/locales/bs/register.js.map | 1 + dist/default/i18n/locales/ca.js | 2 + dist/default/i18n/locales/ca/register.js | 8 + dist/default/i18n/locales/ca/register.js.map | 1 + dist/default/i18n/locales/cs.js | 2 + dist/default/i18n/locales/cs/register.js | 8 + dist/default/i18n/locales/cs/register.js.map | 1 + dist/default/i18n/locales/cy.js | 2 + dist/default/i18n/locales/cy/register.js | 8 + dist/default/i18n/locales/cy/register.js.map | 1 + dist/default/i18n/locales/da.js | 2 + dist/default/i18n/locales/da/register.js | 8 + dist/default/i18n/locales/da/register.js.map | 1 + dist/default/i18n/locales/de.js | 2 + dist/default/i18n/locales/de/register.js | 8 + dist/default/i18n/locales/de/register.js.map | 1 + dist/default/i18n/locales/el.js | 2 + dist/default/i18n/locales/el/register.js | 8 + dist/default/i18n/locales/el/register.js.map | 1 + dist/default/i18n/locales/en.js | 2 + dist/default/i18n/locales/en/register.js | 8 + dist/default/i18n/locales/en/register.js.map | 1 + dist/default/i18n/locales/es.js | 2 + dist/default/i18n/locales/es/register.js | 8 + dist/default/i18n/locales/es/register.js.map | 1 + dist/default/i18n/locales/et.js | 2 + dist/default/i18n/locales/et/register.js | 8 + dist/default/i18n/locales/et/register.js.map | 1 + dist/default/i18n/locales/eu.js | 2 + dist/default/i18n/locales/eu/register.js | 8 + dist/default/i18n/locales/eu/register.js.map | 1 + dist/default/i18n/locales/fa.js | 2 + dist/default/i18n/locales/fa/register.js | 8 + dist/default/i18n/locales/fa/register.js.map | 1 + dist/default/i18n/locales/fi.js | 2 + dist/default/i18n/locales/fi/register.js | 8 + dist/default/i18n/locales/fi/register.js.map | 1 + dist/default/i18n/locales/fr.js | 2 + dist/default/i18n/locales/fr/register.js | 8 + dist/default/i18n/locales/fr/register.js.map | 1 + dist/default/i18n/locales/gd.js | 2 + dist/default/i18n/locales/gd/register.js | 8 + dist/default/i18n/locales/gd/register.js.map | 1 + dist/default/i18n/locales/gl.js | 2 + dist/default/i18n/locales/gl/register.js | 8 + dist/default/i18n/locales/gl/register.js.map | 1 + dist/default/i18n/locales/he.js | 2 + dist/default/i18n/locales/he/register.js | 8 + dist/default/i18n/locales/he/register.js.map | 1 + dist/default/i18n/locales/hi.js | 2 + dist/default/i18n/locales/hi/register.js | 8 + dist/default/i18n/locales/hi/register.js.map | 1 + dist/default/i18n/locales/hr.js | 2 + dist/default/i18n/locales/hr/register.js | 8 + dist/default/i18n/locales/hr/register.js.map | 1 + dist/default/i18n/locales/hu.js | 2 + dist/default/i18n/locales/hu/register.js | 8 + dist/default/i18n/locales/hu/register.js.map | 1 + dist/default/i18n/locales/it.js | 2 + dist/default/i18n/locales/it/register.js | 8 + dist/default/i18n/locales/it/register.js.map | 1 + dist/default/i18n/locales/ja.js | 2 + dist/default/i18n/locales/ja/register.js | 8 + dist/default/i18n/locales/ja/register.js.map | 1 + dist/default/i18n/locales/ko.js | 2 + dist/default/i18n/locales/ko/register.js | 8 + dist/default/i18n/locales/ko/register.js.map | 1 + dist/default/i18n/locales/lv.js | 2 + dist/default/i18n/locales/lv/register.js | 8 + dist/default/i18n/locales/lv/register.js.map | 1 + dist/default/i18n/locales/mr.js | 2 + dist/default/i18n/locales/mr/register.js | 8 + dist/default/i18n/locales/mr/register.js.map | 1 + dist/default/i18n/locales/nb.js | 2 + dist/default/i18n/locales/nb/register.js | 8 + dist/default/i18n/locales/nb/register.js.map | 1 + dist/default/i18n/locales/ne.js | 2 + dist/default/i18n/locales/ne/register.js | 8 + dist/default/i18n/locales/ne/register.js.map | 1 + dist/default/i18n/locales/nl.js | 2 + dist/default/i18n/locales/nl/register.js | 8 + dist/default/i18n/locales/nl/register.js.map | 1 + dist/default/i18n/locales/nn.js | 2 + dist/default/i18n/locales/nn/register.js | 8 + dist/default/i18n/locales/nn/register.js.map | 1 + dist/default/i18n/locales/oc.js | 2 + dist/default/i18n/locales/oc/register.js | 8 + dist/default/i18n/locales/oc/register.js.map | 1 + dist/default/i18n/locales/pl.js | 2 + dist/default/i18n/locales/pl/register.js | 8 + dist/default/i18n/locales/pl/register.js.map | 1 + dist/default/i18n/locales/pt-BR.js | 2 + dist/default/i18n/locales/pt-BR/register.js | 8 + .../i18n/locales/pt-BR/register.js.map | 1 + dist/default/i18n/locales/pt-PT.js | 2 + dist/default/i18n/locales/pt-PT/register.js | 8 + .../i18n/locales/pt-PT/register.js.map | 1 + dist/default/i18n/locales/pt.js | 2 + dist/default/i18n/locales/pt/register.js | 8 + dist/default/i18n/locales/pt/register.js.map | 1 + dist/default/i18n/locales/ro.js | 2 + dist/default/i18n/locales/ro/register.js | 8 + dist/default/i18n/locales/ro/register.js.map | 1 + dist/default/i18n/locales/ru.js | 2 + dist/default/i18n/locales/ru/register.js | 8 + dist/default/i18n/locales/ru/register.js.map | 1 + dist/default/i18n/locales/sk.js | 2 + dist/default/i18n/locales/sk/register.js | 8 + dist/default/i18n/locales/sk/register.js.map | 1 + dist/default/i18n/locales/sl.js | 2 + dist/default/i18n/locales/sl/register.js | 8 + dist/default/i18n/locales/sl/register.js.map | 1 + dist/default/i18n/locales/sr.js | 2 + dist/default/i18n/locales/sr/register.js | 8 + dist/default/i18n/locales/sr/register.js.map | 1 + dist/default/i18n/locales/sv.js | 2 + dist/default/i18n/locales/sv/register.js | 8 + dist/default/i18n/locales/sv/register.js.map | 1 + dist/default/i18n/locales/te.js | 2 + dist/default/i18n/locales/te/register.js | 8 + dist/default/i18n/locales/te/register.js.map | 1 + dist/default/i18n/locales/th.js | 2 + dist/default/i18n/locales/th/register.js | 8 + dist/default/i18n/locales/th/register.js.map | 1 + dist/default/i18n/locales/tr.js | 2 + dist/default/i18n/locales/tr/register.js | 8 + dist/default/i18n/locales/tr/register.js.map | 1 + dist/default/i18n/locales/uk.js | 2 + dist/default/i18n/locales/uk/register.js | 8 + dist/default/i18n/locales/uk/register.js.map | 1 + dist/default/i18n/locales/vi.js | 2 + dist/default/i18n/locales/vi/register.js | 8 + dist/default/i18n/locales/vi/register.js.map | 1 + dist/default/i18n/locales/zh-CN.js | 2 + dist/default/i18n/locales/zh-CN/register.js | 8 + .../i18n/locales/zh-CN/register.js.map | 1 + dist/default/i18n/locales/zh-TW.js | 2 + dist/default/i18n/locales/zh-TW/register.js | 8 + .../i18n/locales/zh-TW/register.js.map | 1 + dist/default/i18n/locales/zh.js | 2 + dist/default/i18n/locales/zh/register.js | 8 + dist/default/i18n/locales/zh/register.js.map | 1 + dist/default/i18n/use-ambient-lang.js | 15 + dist/default/i18n/use-ambient-lang.js.map | 1 + dist/default/i18n/use-lang-root-element.js | 28 + .../default/i18n/use-lang-root-element.js.map | 1 + dist/default/i18n/use-lazy-translations.js | 37 + .../default/i18n/use-lazy-translations.js.map | 1 + .../i18n/use-locale-root-notifications.js | 27 + .../i18n/use-locale-root-notifications.js.map | 1 + dist/default/i18n/use-merged-translations.js | 22 + .../i18n/use-merged-translations.js.map | 1 + dist/default/i18n/use-registry-epoch.js | 14 + dist/default/i18n/use-registry-epoch.js.map | 1 + .../icons/dist/react/default/airplay-enter.js | 16 + .../dist/react/default/airplay-enter.js.map | 1 + .../icons/dist/react/default/airplay-exit.js | 28 + .../dist/react/default/airplay-exit.js.map | 1 + .../icons/dist/react/default/captions-off.js | 71 + .../dist/react/default/captions-off.js.map | 1 + .../icons/dist/react/default/captions-on.js | 16 + .../dist/react/default/captions-on.js.map | 1 + .../icons/dist/react/default/cast-enter.js | 59 + .../dist/react/default/cast-enter.js.map | 1 + .../icons/dist/react/default/cast-exit.js | 77 + .../icons/dist/react/default/cast-exit.js.map | 1 + .../default/icons/dist/react/default/check.js | 22 + .../icons/dist/react/default/check.js.map | 1 + .../icons/dist/react/default/chevron.js | 21 + .../icons/dist/react/default/chevron.js.map | 1 + .../dist/react/default/fullscreen-enter.js | 16 + .../react/default/fullscreen-enter.js.map | 1 + .../dist/react/default/fullscreen-exit.js | 16 + .../dist/react/default/fullscreen-exit.js.map | 1 + dist/default/icons/dist/react/default/gear.js | 16 + .../icons/dist/react/default/gear.js.map | 1 + .../default/icons/dist/react/default/pause.js | 28 + .../icons/dist/react/default/pause.js.map | 1 + .../icons/dist/react/default/pip-enter.js | 26 + .../icons/dist/react/default/pip-enter.js.map | 1 + .../icons/dist/react/default/pip-exit.js | 26 + .../icons/dist/react/default/pip-exit.js.map | 1 + dist/default/icons/dist/react/default/play.js | 16 + .../icons/dist/react/default/play.js.map | 1 + .../icons/dist/react/default/quality.js | 16 + .../icons/dist/react/default/quality.js.map | 1 + .../icons/dist/react/default/restart.js | 16 + .../icons/dist/react/default/restart.js.map | 1 + dist/default/icons/dist/react/default/seek.js | 16 + .../icons/dist/react/default/seek.js.map | 1 + .../icons/dist/react/default/speech.js | 19 + .../icons/dist/react/default/speech.js.map | 1 + .../default/icons/dist/react/default/speed.js | 52 + .../icons/dist/react/default/speed.js.map | 1 + .../icons/dist/react/default/spinner.js | 69 + .../icons/dist/react/default/spinner.js.map | 1 + .../icons/dist/react/default/switches.js | 19 + .../icons/dist/react/default/switches.js.map | 1 + .../icons/dist/react/default/volume-high.js | 16 + .../dist/react/default/volume-high.js.map | 1 + .../icons/dist/react/default/volume-low.js | 16 + .../dist/react/default/volume-low.js.map | 1 + .../icons/dist/react/default/volume-off.js | 16 + .../dist/react/default/volume-off.js.map | 1 + .../icons/dist/react/minimal/airplay-enter.js | 16 + .../dist/react/minimal/airplay-enter.js.map | 1 + .../icons/dist/react/minimal/airplay-exit.js | 28 + .../dist/react/minimal/airplay-exit.js.map | 1 + .../icons/dist/react/minimal/captions-off.js | 71 + .../dist/react/minimal/captions-off.js.map | 1 + .../icons/dist/react/minimal/captions-on.js | 16 + .../dist/react/minimal/captions-on.js.map | 1 + .../icons/dist/react/minimal/cast-enter.js | 59 + .../dist/react/minimal/cast-enter.js.map | 1 + .../icons/dist/react/minimal/cast-exit.js | 77 + .../icons/dist/react/minimal/cast-exit.js.map | 1 + .../default/icons/dist/react/minimal/check.js | 22 + .../icons/dist/react/minimal/check.js.map | 1 + .../icons/dist/react/minimal/chevron.js | 21 + .../icons/dist/react/minimal/chevron.js.map | 1 + .../dist/react/minimal/fullscreen-enter.js | 20 + .../react/minimal/fullscreen-enter.js.map | 1 + .../dist/react/minimal/fullscreen-exit.js | 20 + .../dist/react/minimal/fullscreen-exit.js.map | 1 + dist/default/icons/dist/react/minimal/gear.js | 16 + .../icons/dist/react/minimal/gear.js.map | 1 + .../default/icons/dist/react/minimal/pause.js | 28 + .../icons/dist/react/minimal/pause.js.map | 1 + .../icons/dist/react/minimal/pip-enter.js | 27 + .../icons/dist/react/minimal/pip-enter.js.map | 1 + .../icons/dist/react/minimal/pip-exit.js | 27 + .../icons/dist/react/minimal/pip-exit.js.map | 1 + dist/default/icons/dist/react/minimal/play.js | 16 + .../icons/dist/react/minimal/play.js.map | 1 + .../icons/dist/react/minimal/quality.js | 16 + .../icons/dist/react/minimal/quality.js.map | 1 + .../icons/dist/react/minimal/restart.js | 16 + .../icons/dist/react/minimal/restart.js.map | 1 + dist/default/icons/dist/react/minimal/seek.js | 16 + .../icons/dist/react/minimal/seek.js.map | 1 + .../icons/dist/react/minimal/speech.js | 54 + .../icons/dist/react/minimal/speech.js.map | 1 + .../default/icons/dist/react/minimal/speed.js | 52 + .../icons/dist/react/minimal/speed.js.map | 1 + .../icons/dist/react/minimal/spinner.js | 69 + .../icons/dist/react/minimal/spinner.js.map | 1 + .../icons/dist/react/minimal/switches.js | 19 + .../icons/dist/react/minimal/switches.js.map | 1 + .../icons/dist/react/minimal/volume-high.js | 16 + .../dist/react/minimal/volume-high.js.map | 1 + .../icons/dist/react/minimal/volume-low.js | 16 + .../dist/react/minimal/volume-low.js.map | 1 + .../icons/dist/react/minimal/volume-off.js | 16 + .../dist/react/minimal/volume-off.js.map | 1 + dist/default/icons/index.js | 26 + dist/default/icons/minimal/index.js | 26 + dist/default/index.js | 65 + dist/default/media/audio.js | 17 + dist/default/media/audio.js.map | 1 + dist/default/media/background-video/index.js | 2 + dist/default/media/background-video/media.js | 26 + .../media/background-video/media.js.map | 1 + dist/default/media/dash-video/index.js | 2 + dist/default/media/dash-video/media.js | 21 + dist/default/media/dash-video/media.js.map | 1 + dist/default/media/google-cast/google-cast.js | 28 + .../media/google-cast/google-cast.js.map | 1 + dist/default/media/google-cast/index.js | 2 + dist/default/media/hlsjs-video/index.js | 2 + dist/default/media/hlsjs-video/media.js | 21 + dist/default/media/hlsjs-video/media.js.map | 1 + dist/default/media/mux-audio/index.js | 2 + dist/default/media/mux-audio/media.js | 26 + dist/default/media/mux-audio/media.js.map | 1 + dist/default/media/mux-data/index.js | 2 + dist/default/media/mux-data/mux-data.js | 37 + dist/default/media/mux-data/mux-data.js.map | 1 + dist/default/media/mux-video/index.js | 2 + dist/default/media/mux-video/media.js | 56 + dist/default/media/mux-video/media.js.map | 1 + dist/default/media/native-hls-video/index.js | 2 + dist/default/media/native-hls-video/media.js | 21 + .../media/native-hls-video/media.js.map | 1 + .../media/simple-hls-audio-only/index.js | 2 + .../media/simple-hls-audio-only/media.js | 22 + .../media/simple-hls-audio-only/media.js.map | 1 + dist/default/media/simple-hls-video/index.js | 2 + dist/default/media/simple-hls-video/media.js | 22 + .../media/simple-hls-video/media.js.map | 1 + dist/default/media/video.js | 17 + dist/default/media/video.js.map | 1 + dist/default/media/vimeo-video/index.js | 2 + dist/default/media/vimeo-video/media.js | 37 + dist/default/media/vimeo-video/media.js.map | 1 + dist/default/player/container.js | 41 + dist/default/player/container.js.map | 1 + dist/default/player/context.js | 62 + dist/default/player/context.js.map | 1 + dist/default/player/create-player.js | 64 + dist/default/player/create-player.js.map | 1 + dist/default/presets/audio/index.js | 7 + dist/default/presets/audio/minimal-skin.css | 1206 ++++++++++ dist/default/presets/audio/minimal-skin.js | 340 +++ .../default/presets/audio/minimal-skin.js.map | 1 + .../presets/audio/minimal-skin.tailwind.js | 318 +++ .../audio/minimal-skin.tailwind.js.map | 1 + dist/default/presets/audio/skin.css | 1216 ++++++++++ dist/default/presets/audio/skin.js | 335 +++ dist/default/presets/audio/skin.js.map | 1 + dist/default/presets/audio/skin.tailwind.js | 379 ++++ .../presets/audio/skin.tailwind.js.map | 1 + dist/default/presets/background/index.js | 4 + dist/default/presets/background/skin.css | 22 + dist/default/presets/background/skin.js | 15 + dist/default/presets/background/skin.js.map | 1 + dist/default/presets/live-audio/index.js | 7 + .../presets/live-audio/minimal-skin.css | 1206 ++++++++++ .../presets/live-audio/minimal-skin.js | 173 ++ .../presets/live-audio/minimal-skin.js.map | 1 + .../live-audio/minimal-skin.tailwind.js | 202 ++ .../live-audio/minimal-skin.tailwind.js.map | 1 + dist/default/presets/live-audio/skin.css | 1216 ++++++++++ dist/default/presets/live-audio/skin.js | 176 ++ dist/default/presets/live-audio/skin.js.map | 1 + .../presets/live-audio/skin.tailwind.js | 202 ++ .../presets/live-audio/skin.tailwind.js.map | 1 + dist/default/presets/live-video/index.js | 7 + .../presets/live-video/minimal-skin.css | 1932 ++++++++++++++++ .../presets/live-video/minimal-skin.js | 388 ++++ .../presets/live-video/minimal-skin.js.map | 1 + .../live-video/minimal-skin.tailwind.js | 423 ++++ .../live-video/minimal-skin.tailwind.js.map | 1 + dist/default/presets/live-video/skin.css | 1951 +++++++++++++++++ dist/default/presets/live-video/skin.js | 384 ++++ dist/default/presets/live-video/skin.js.map | 1 + .../presets/live-video/skin.tailwind.js | 505 +++++ .../presets/live-video/skin.tailwind.js.map | 1 + dist/default/presets/video/index.js | 7 + dist/default/presets/video/minimal-skin.css | 1932 ++++++++++++++++ dist/default/presets/video/minimal-skin.js | 673 ++++++ .../default/presets/video/minimal-skin.js.map | 1 + .../presets/video/minimal-skin.tailwind.js | 722 ++++++ .../video/minimal-skin.tailwind.js.map | 1 + dist/default/presets/video/skin.css | 1951 +++++++++++++++++ dist/default/presets/video/skin.js | 680 ++++++ dist/default/presets/video/skin.js.map | 1 + dist/default/presets/video/skin.tailwind.js | 714 ++++++ .../presets/video/skin.tailwind.js.map | 1 + .../default/tailwind/audio.tailwind.js | 49 + .../default/tailwind/audio.tailwind.js.map | 1 + .../default/tailwind/components/badge.js | 6 + .../default/tailwind/components/badge.js.map | 1 + .../default/tailwind/components/buffering.js | 6 + .../tailwind/components/buffering.js.map | 1 + .../tailwind/components/button-group.js | 6 + .../tailwind/components/button-group.js.map | 1 + .../default/tailwind/components/button.js | 18 + .../default/tailwind/components/button.js.map | 1 + .../default/tailwind/components/controls.js | 7 + .../tailwind/components/controls.js.map | 1 + .../default/tailwind/components/error.js | 14 + .../default/tailwind/components/error.js.map | 1 + .../default/tailwind/components/icon.js | 9 + .../default/tailwind/components/icon.js.map | 1 + .../tailwind/components/input-feedback.js | 40 + .../tailwind/components/input-feedback.js.map | 1 + .../default/tailwind/components/menu.js | 38 + .../default/tailwind/components/menu.js.map | 1 + .../default/tailwind/components/overlay.js | 7 + .../tailwind/components/overlay.js.map | 1 + .../tailwind/components/playback-rate.js | 6 + .../tailwind/components/playback-rate.js.map | 1 + .../default/tailwind/components/popup.js | 13 + .../default/tailwind/components/popup.js.map | 1 + .../default/tailwind/components/poster.js | 21 + .../default/tailwind/components/poster.js.map | 1 + .../default/tailwind/components/reset.js | 7 + .../default/tailwind/components/reset.js.map | 1 + .../default/tailwind/components/root.js | 8 + .../default/tailwind/components/root.js.map | 1 + .../default/tailwind/components/seek.js | 10 + .../default/tailwind/components/seek.js.map | 1 + .../default/tailwind/components/slider.js | 22 + .../default/tailwind/components/slider.js.map | 1 + .../default/tailwind/components/surface.js | 7 + .../tailwind/components/surface.js.map | 1 + .../default/tailwind/components/thumbnail.js | 12 + .../tailwind/components/thumbnail.js.map | 1 + .../default/tailwind/components/time.js | 10 + .../default/tailwind/components/time.js.map | 1 + .../default/tailwind/video.tailwind.js | 96 + .../default/tailwind/video.tailwind.js.map | 1 + .../minimal/tailwind/audio.tailwind.js | 43 + .../minimal/tailwind/audio.tailwind.js.map | 1 + .../minimal/tailwind/components/badge.js | 6 + .../minimal/tailwind/components/badge.js.map | 1 + .../minimal/tailwind/components/buffering.js | 6 + .../tailwind/components/buffering.js.map | 1 + .../tailwind/components/button-group.js | 6 + .../tailwind/components/button-group.js.map | 1 + .../minimal/tailwind/components/button.js | 23 + .../minimal/tailwind/components/button.js.map | 1 + .../minimal/tailwind/components/controls.js | 7 + .../tailwind/components/controls.js.map | 1 + .../minimal/tailwind/components/error.js | 14 + .../minimal/tailwind/components/error.js.map | 1 + .../minimal/tailwind/components/icon.js | 9 + .../minimal/tailwind/components/icon.js.map | 1 + .../tailwind/components/input-feedback.js | 41 + .../tailwind/components/input-feedback.js.map | 1 + .../minimal/tailwind/components/menu.js | 37 + .../minimal/tailwind/components/menu.js.map | 1 + .../minimal/tailwind/components/overlay.js | 7 + .../tailwind/components/overlay.js.map | 1 + .../tailwind/components/playback-rate.js | 6 + .../tailwind/components/playback-rate.js.map | 1 + .../minimal/tailwind/components/popup.js | 13 + .../minimal/tailwind/components/popup.js.map | 1 + .../minimal/tailwind/components/poster.js | 21 + .../minimal/tailwind/components/poster.js.map | 1 + .../minimal/tailwind/components/reset.js | 7 + .../minimal/tailwind/components/reset.js.map | 1 + .../minimal/tailwind/components/root.js | 8 + .../minimal/tailwind/components/root.js.map | 1 + .../minimal/tailwind/components/seek.js | 10 + .../minimal/tailwind/components/seek.js.map | 1 + .../minimal/tailwind/components/slider.js | 21 + .../minimal/tailwind/components/slider.js.map | 1 + .../minimal/tailwind/components/thumbnail.js | 13 + .../tailwind/components/thumbnail.js.map | 1 + .../minimal/tailwind/components/time.js | 13 + .../minimal/tailwind/components/time.js.map | 1 + .../minimal/tailwind/video.tailwind.js | 84 + .../minimal/tailwind/video.tailwind.js.map | 1 + .../default/shared/tailwind/icon-state.js | 54 + .../default/shared/tailwind/icon-state.js.map | 1 + dist/default/tailwind.css | 42 + .../ui/airplay-button/airplay-button.js | 18 + .../ui/airplay-button/airplay-button.js.map | 1 + dist/default/ui/airplay-button/index.js | 2 + .../ui/alert-dialog/alert-dialog-close.js | 29 + .../ui/alert-dialog/alert-dialog-close.js.map | 1 + .../alert-dialog/alert-dialog-description.js | 14 + .../alert-dialog-description.js.map | 1 + .../ui/alert-dialog/alert-dialog-popup.js | 30 + .../ui/alert-dialog/alert-dialog-popup.js.map | 1 + .../ui/alert-dialog/alert-dialog-root.js | 57 + .../ui/alert-dialog/alert-dialog-root.js.map | 1 + .../ui/alert-dialog/alert-dialog-title.js | 14 + .../ui/alert-dialog/alert-dialog-title.js.map | 1 + dist/default/ui/alert-dialog/context.js | 14 + dist/default/ui/alert-dialog/context.js.map | 1 + dist/default/ui/alert-dialog/index.js | 3 + dist/default/ui/alert-dialog/index.parts.js | 18 + .../ui/alert-dialog/index.parts.js.map | 1 + dist/default/ui/audio-track/index.js | 2 + .../ui/audio-track/use-audio-track-options.js | 40 + .../use-audio-track-options.js.map | 1 + .../buffering-indicator.js | 50 + .../buffering-indicator.js.map | 1 + dist/default/ui/buffering-indicator/index.js | 2 + .../ui/captions-button/captions-button.js | 19 + .../ui/captions-button/captions-button.js.map | 1 + dist/default/ui/captions-button/index.js | 2 + dist/default/ui/captions-radio-group/index.js | 2 + .../use-captions-options.js | 48 + .../use-captions-options.js.map | 1 + dist/default/ui/cast-button/cast-button.js | 18 + .../default/ui/cast-button/cast-button.js.map | 1 + dist/default/ui/cast-button/index.js | 2 + dist/default/ui/controls/context.js | 17 + dist/default/ui/controls/context.js.map | 1 + dist/default/ui/controls/controls-group.js | 28 + .../default/ui/controls/controls-group.js.map | 1 + dist/default/ui/controls/controls-root.js | 42 + dist/default/ui/controls/controls-root.js.map | 1 + dist/default/ui/controls/index.js | 2 + dist/default/ui/controls/index.parts.js | 12 + dist/default/ui/controls/index.parts.js.map | 1 + dist/default/ui/create-context-part.js | 32 + dist/default/ui/create-context-part.js.map | 1 + dist/default/ui/create-media-button.js | 90 + dist/default/ui/create-media-button.js.map | 1 + dist/default/ui/error-dialog/context.js | 14 + dist/default/ui/error-dialog/context.js.map | 1 + .../ui/error-dialog/error-dialog-close.js | 36 + .../ui/error-dialog/error-dialog-close.js.map | 1 + .../error-dialog/error-dialog-description.js | 33 + .../error-dialog-description.js.map | 1 + .../ui/error-dialog/error-dialog-root.js | 57 + .../ui/error-dialog/error-dialog-root.js.map | 1 + .../ui/error-dialog/error-dialog-title.js | 30 + .../ui/error-dialog/error-dialog-title.js.map | 1 + dist/default/ui/error-dialog/index.js | 3 + dist/default/ui/error-dialog/index.parts.js | 18 + .../ui/error-dialog/index.parts.js.map | 1 + .../ui/fullscreen-button/fullscreen-button.js | 19 + .../fullscreen-button.js.map | 1 + dist/default/ui/fullscreen-button/index.js | 2 + dist/default/ui/gesture/gesture.js | 45 + dist/default/ui/gesture/gesture.js.map | 1 + dist/default/ui/gesture/index.js | 2 + .../ui/gesture/use-doubletap-gesture.js | 28 + .../ui/gesture/use-doubletap-gesture.js.map | 1 + dist/default/ui/gesture/use-tap-gesture.js | 28 + .../default/ui/gesture/use-tap-gesture.js.map | 1 + dist/default/ui/hooks/use-button.js | 42 + dist/default/ui/hooks/use-button.js.map | 1 + dist/default/ui/hooks/use-positioned-state.js | 39 + .../ui/hooks/use-positioned-state.js.map | 1 + dist/default/ui/hooks/use-slider.js | 63 + dist/default/ui/hooks/use-slider.js.map | 1 + dist/default/ui/hotkey/hotkey.js | 44 + dist/default/ui/hotkey/hotkey.js.map | 1 + dist/default/ui/hotkey/index.js | 2 + dist/default/ui/hotkey/use-hotkey-shortcut.js | 28 + .../ui/hotkey/use-hotkey-shortcut.js.map | 1 + dist/default/ui/hotkey/use-hotkey.js | 31 + dist/default/ui/hotkey/use-hotkey.js.map | 1 + .../use-indicator-visibility.js | 25 + .../use-indicator-visibility.js.map | 1 + .../use-input-action-subscription.js | 22 + .../use-input-action-subscription.js.map | 1 + .../use-input-indicator-root.js | 21 + .../use-input-indicator-root.js.map | 1 + .../use-rendered-indicator-state.js | 43 + .../use-rendered-indicator-state.js.map | 1 + dist/default/ui/live-button/index.js | 2 + dist/default/ui/live-button/live-button.js | 93 + .../default/ui/live-button/live-button.js.map | 1 + dist/default/ui/menu/context.js | 44 + dist/default/ui/menu/context.js.map | 1 + dist/default/ui/menu/index.js | 3 + dist/default/ui/menu/index.parts.js | 36 + dist/default/ui/menu/index.parts.js.map | 1 + dist/default/ui/menu/menu-back.js | 34 + dist/default/ui/menu/menu-back.js.map | 1 + dist/default/ui/menu/menu-checkbox-item.js | 49 + .../default/ui/menu/menu-checkbox-item.js.map | 1 + dist/default/ui/menu/menu-content.js | 316 +++ dist/default/ui/menu/menu-content.js.map | 1 + dist/default/ui/menu/menu-group-label.js | 29 + dist/default/ui/menu/menu-group-label.js.map | 1 + dist/default/ui/menu/menu-group.js | 24 + dist/default/ui/menu/menu-group.js.map | 1 + dist/default/ui/menu/menu-item-indicator.js | 23 + .../ui/menu/menu-item-indicator.js.map | 1 + .../ui/menu/menu-item-setting-provider.js | 77 + .../ui/menu/menu-item-setting-provider.js.map | 1 + dist/default/ui/menu/menu-item-value.js | 28 + dist/default/ui/menu/menu-item-value.js.map | 1 + dist/default/ui/menu/menu-item.js | 74 + dist/default/ui/menu/menu-item.js.map | 1 + dist/default/ui/menu/menu-radio-group.js | 30 + dist/default/ui/menu/menu-radio-group.js.map | 1 + dist/default/ui/menu/menu-radio-item.js | 56 + dist/default/ui/menu/menu-radio-item.js.map | 1 + dist/default/ui/menu/menu-root.js | 141 ++ dist/default/ui/menu/menu-root.js.map | 1 + dist/default/ui/menu/menu-separator.js | 22 + dist/default/ui/menu/menu-separator.js.map | 1 + dist/default/ui/menu/menu-trigger.js | 180 ++ dist/default/ui/menu/menu-trigger.js.map | 1 + dist/default/ui/menu/menu-view.js | 23 + dist/default/ui/menu/menu-view.js.map | 1 + dist/default/ui/menu/use-menu-group.js | 31 + dist/default/ui/menu/use-menu-group.js.map | 1 + dist/default/ui/mute-button/index.js | 2 + dist/default/ui/mute-button/mute-button.js | 18 + .../default/ui/mute-button/mute-button.js.map | 1 + dist/default/ui/pip-button/index.js | 2 + dist/default/ui/pip-button/pip-button.js | 19 + dist/default/ui/pip-button/pip-button.js.map | 1 + dist/default/ui/play-button/index.js | 2 + dist/default/ui/play-button/play-button.js | 33 + .../default/ui/play-button/play-button.js.map | 1 + dist/default/ui/playback-rate-button/index.js | 2 + .../playback-rate-button.js | 33 + .../playback-rate-button.js.map | 1 + dist/default/ui/playback-rate/index.js | 2 + .../use-playback-rate-options.js | 40 + .../use-playback-rate-options.js.map | 1 + dist/default/ui/popover/context.js | 14 + dist/default/ui/popover/context.js.map | 1 + dist/default/ui/popover/index.js | 3 + dist/default/ui/popover/index.parts.js | 16 + dist/default/ui/popover/index.parts.js.map | 1 + dist/default/ui/popover/popover-arrow.js | 15 + dist/default/ui/popover/popover-arrow.js.map | 1 + dist/default/ui/popover/popover-popup.js | 126 ++ dist/default/ui/popover/popover-popup.js.map | 1 + dist/default/ui/popover/popover-root.js | 87 + dist/default/ui/popover/popover-root.js.map | 1 + dist/default/ui/popover/popover-trigger.js | 40 + .../default/ui/popover/popover-trigger.js.map | 1 + dist/default/ui/poster/index.js | 2 + dist/default/ui/poster/poster.js | 56 + dist/default/ui/poster/poster.js.map | 1 + dist/default/ui/quality/index.js | 2 + .../default/ui/quality/use-quality-options.js | 47 + .../ui/quality/use-quality-options.js.map | 1 + dist/default/ui/seek-button/index.js | 2 + dist/default/ui/seek-button/seek-button.js | 35 + .../default/ui/seek-button/seek-button.js.map | 1 + dist/default/ui/seek-indicator/context.js | 20 + dist/default/ui/seek-indicator/context.js.map | 1 + dist/default/ui/seek-indicator/index.js | 2 + dist/default/ui/seek-indicator/index.parts.js | 12 + .../ui/seek-indicator/index.parts.js.map | 1 + .../ui/seek-indicator/seek-indicator-root.js | 30 + .../seek-indicator/seek-indicator-root.js.map | 1 + .../ui/seek-indicator/seek-indicator-value.js | 23 + .../seek-indicator-value.js.map | 1 + dist/default/ui/slider/context.js | 20 + dist/default/ui/slider/context.js.map | 1 + dist/default/ui/slider/index.js | 2 + dist/default/ui/slider/index.parts.js | 24 + dist/default/ui/slider/index.parts.js.map | 1 + dist/default/ui/slider/slider-buffer.js | 14 + dist/default/ui/slider/slider-buffer.js.map | 1 + dist/default/ui/slider/slider-fill.js | 14 + dist/default/ui/slider/slider-fill.js.map | 1 + dist/default/ui/slider/slider-preview.js | 38 + dist/default/ui/slider/slider-preview.js.map | 1 + dist/default/ui/slider/slider-root.js | 81 + dist/default/ui/slider/slider-root.js.map | 1 + dist/default/ui/slider/slider-thumb.js | 30 + dist/default/ui/slider/slider-thumb.js.map | 1 + dist/default/ui/slider/slider-thumbnail.js | 18 + .../default/ui/slider/slider-thumbnail.js.map | 1 + dist/default/ui/slider/slider-track.js | 14 + dist/default/ui/slider/slider-track.js.map | 1 + dist/default/ui/slider/slider-value.js | 30 + dist/default/ui/slider/slider-value.js.map | 1 + dist/default/ui/status-announcer/index.js | 2 + .../ui/status-announcer/status-announcer.js | 45 + .../status-announcer/status-announcer.js.map | 1 + dist/default/ui/status-indicator/context.js | 20 + .../ui/status-indicator/context.js.map | 1 + dist/default/ui/status-indicator/index.js | 2 + .../ui/status-indicator/index.parts.js | 12 + .../ui/status-indicator/index.parts.js.map | 1 + .../status-indicator/status-indicator-root.js | 35 + .../status-indicator-root.js.map | 1 + .../status-indicator-value.js | 23 + .../status-indicator-value.js.map | 1 + dist/default/ui/thumbnail/index.js | 2 + dist/default/ui/thumbnail/thumbnail.js | 82 + dist/default/ui/thumbnail/thumbnail.js.map | 1 + dist/default/ui/time-slider/index.js | 2 + dist/default/ui/time-slider/index.parts.js | 22 + .../default/ui/time-slider/index.parts.js.map | 1 + .../ui/time-slider/time-slider-root.js | 122 ++ .../ui/time-slider/time-slider-root.js.map | 1 + dist/default/ui/time/index.js | 2 + dist/default/ui/time/index.parts.js | 14 + dist/default/ui/time/index.parts.js.map | 1 + dist/default/ui/time/time-group.js | 32 + dist/default/ui/time/time-group.js.map | 1 + dist/default/ui/time/time-separator.js | 32 + dist/default/ui/time/time-separator.js.map | 1 + dist/default/ui/time/time-value.js | 89 + dist/default/ui/time/time-value.js.map | 1 + dist/default/ui/tooltip/context.js | 17 + dist/default/ui/tooltip/context.js.map | 1 + dist/default/ui/tooltip/group-context.js | 13 + dist/default/ui/tooltip/group-context.js.map | 1 + dist/default/ui/tooltip/index.js | 3 + dist/default/ui/tooltip/index.parts.js | 22 + dist/default/ui/tooltip/index.parts.js.map | 1 + dist/default/ui/tooltip/tooltip-arrow.js | 15 + dist/default/ui/tooltip/tooltip-arrow.js.map | 1 + dist/default/ui/tooltip/tooltip-label.js | 24 + dist/default/ui/tooltip/tooltip-label.js.map | 1 + dist/default/ui/tooltip/tooltip-popup.js | 132 ++ dist/default/ui/tooltip/tooltip-popup.js.map | 1 + dist/default/ui/tooltip/tooltip-provider.js | 26 + .../ui/tooltip/tooltip-provider.js.map | 1 + dist/default/ui/tooltip/tooltip-root.js | 89 + dist/default/ui/tooltip/tooltip-root.js.map | 1 + dist/default/ui/tooltip/tooltip-shortcut.js | 25 + .../ui/tooltip/tooltip-shortcut.js.map | 1 + dist/default/ui/tooltip/tooltip-trigger.js | 37 + .../default/ui/tooltip/tooltip-trigger.js.map | 1 + dist/default/ui/volume-indicator/context.js | 20 + .../ui/volume-indicator/context.js.map | 1 + dist/default/ui/volume-indicator/index.js | 2 + .../ui/volume-indicator/index.parts.js | 14 + .../ui/volume-indicator/index.parts.js.map | 1 + .../volume-indicator/volume-indicator-fill.js | 36 + .../volume-indicator-fill.js.map | 1 + .../volume-indicator/volume-indicator-root.js | 34 + .../volume-indicator-root.js.map | 1 + .../volume-indicator-value.js | 23 + .../volume-indicator-value.js.map | 1 + dist/default/ui/volume-slider/index.js | 2 + dist/default/ui/volume-slider/index.parts.js | 20 + .../ui/volume-slider/index.parts.js.map | 1 + .../ui/volume-slider/volume-slider-root.js | 117 + .../volume-slider/volume-slider-root.js.map | 1 + dist/default/utils/merge-props.js | 84 + dist/default/utils/merge-props.js.map | 1 + dist/default/utils/use-attach-iframe.js | 14 + dist/default/utils/use-attach-iframe.js.map | 1 + dist/default/utils/use-attach-media.js | 14 + dist/default/utils/use-attach-media.js.map | 1 + dist/default/utils/use-composed-refs.js | 55 + dist/default/utils/use-composed-refs.js.map | 1 + dist/default/utils/use-destroy.js | 39 + dist/default/utils/use-destroy.js.map | 1 + dist/default/utils/use-force-render.js | 11 + dist/default/utils/use-force-render.js.map | 1 + dist/default/utils/use-latest-ref.js | 18 + dist/default/utils/use-latest-ref.js.map | 1 + dist/default/utils/use-media-component.js | 29 + dist/default/utils/use-media-component.js.map | 1 + dist/default/utils/use-media-instance.js | 30 + dist/default/utils/use-media-instance.js.map | 1 + dist/default/utils/use-render.js | 73 + dist/default/utils/use-render.js.map | 1 + dist/default/utils/use-safe-id.js | 20 + dist/default/utils/use-safe-id.js.map | 1 + dist/default/utils/use-sync-props.js | 23 + dist/default/utils/use-sync-props.js.map | 1 + dist/dev/_virtual/_rolldown/runtime.js | 13 + dist/dev/i18n/context.d.ts | 29 + dist/dev/i18n/context.d.ts.map | 1 + dist/dev/i18n/context.js | 36 + dist/dev/i18n/context.js.map | 1 + dist/dev/i18n/create-i18n.d.ts | 61 + dist/dev/i18n/create-i18n.d.ts.map | 1 + dist/dev/i18n/create-i18n.js | 76 + dist/dev/i18n/create-i18n.js.map | 1 + dist/dev/i18n/get-provider-root-props.js | 40 + dist/dev/i18n/get-provider-root-props.js.map | 1 + dist/dev/i18n/index.d.ts | 4 + dist/dev/i18n/index.js | 5 + dist/dev/i18n/locales/all.d.ts | 2 + dist/dev/i18n/locales/all.js | 2 + dist/dev/i18n/locales/all/register.d.ts | 1 + dist/dev/i18n/locales/all/register.js | 8 + dist/dev/i18n/locales/all/register.js.map | 1 + dist/dev/i18n/locales/ar.d.ts | 2 + dist/dev/i18n/locales/ar.js | 2 + dist/dev/i18n/locales/ar/register.d.ts | 1 + dist/dev/i18n/locales/ar/register.js | 8 + dist/dev/i18n/locales/ar/register.js.map | 1 + dist/dev/i18n/locales/az.d.ts | 2 + dist/dev/i18n/locales/az.js | 2 + dist/dev/i18n/locales/az/register.d.ts | 1 + dist/dev/i18n/locales/az/register.js | 8 + dist/dev/i18n/locales/az/register.js.map | 1 + dist/dev/i18n/locales/bg.d.ts | 2 + dist/dev/i18n/locales/bg.js | 2 + dist/dev/i18n/locales/bg/register.d.ts | 1 + dist/dev/i18n/locales/bg/register.js | 8 + dist/dev/i18n/locales/bg/register.js.map | 1 + dist/dev/i18n/locales/bn.d.ts | 2 + dist/dev/i18n/locales/bn.js | 2 + dist/dev/i18n/locales/bn/register.d.ts | 1 + dist/dev/i18n/locales/bn/register.js | 8 + dist/dev/i18n/locales/bn/register.js.map | 1 + dist/dev/i18n/locales/bs.d.ts | 2 + dist/dev/i18n/locales/bs.js | 2 + dist/dev/i18n/locales/bs/register.d.ts | 1 + dist/dev/i18n/locales/bs/register.js | 8 + dist/dev/i18n/locales/bs/register.js.map | 1 + dist/dev/i18n/locales/ca.d.ts | 2 + dist/dev/i18n/locales/ca.js | 2 + dist/dev/i18n/locales/ca/register.d.ts | 1 + dist/dev/i18n/locales/ca/register.js | 8 + dist/dev/i18n/locales/ca/register.js.map | 1 + dist/dev/i18n/locales/cs.d.ts | 2 + dist/dev/i18n/locales/cs.js | 2 + dist/dev/i18n/locales/cs/register.d.ts | 1 + dist/dev/i18n/locales/cs/register.js | 8 + dist/dev/i18n/locales/cs/register.js.map | 1 + dist/dev/i18n/locales/cy.d.ts | 2 + dist/dev/i18n/locales/cy.js | 2 + dist/dev/i18n/locales/cy/register.d.ts | 1 + dist/dev/i18n/locales/cy/register.js | 8 + dist/dev/i18n/locales/cy/register.js.map | 1 + dist/dev/i18n/locales/da.d.ts | 2 + dist/dev/i18n/locales/da.js | 2 + dist/dev/i18n/locales/da/register.d.ts | 1 + dist/dev/i18n/locales/da/register.js | 8 + dist/dev/i18n/locales/da/register.js.map | 1 + dist/dev/i18n/locales/de.d.ts | 2 + dist/dev/i18n/locales/de.js | 2 + dist/dev/i18n/locales/de/register.d.ts | 1 + dist/dev/i18n/locales/de/register.js | 8 + dist/dev/i18n/locales/de/register.js.map | 1 + dist/dev/i18n/locales/el.d.ts | 2 + dist/dev/i18n/locales/el.js | 2 + dist/dev/i18n/locales/el/register.d.ts | 1 + dist/dev/i18n/locales/el/register.js | 8 + dist/dev/i18n/locales/el/register.js.map | 1 + dist/dev/i18n/locales/en.d.ts | 2 + dist/dev/i18n/locales/en.js | 2 + dist/dev/i18n/locales/en/register.d.ts | 1 + dist/dev/i18n/locales/en/register.js | 8 + dist/dev/i18n/locales/en/register.js.map | 1 + dist/dev/i18n/locales/es.d.ts | 2 + dist/dev/i18n/locales/es.js | 2 + dist/dev/i18n/locales/es/register.d.ts | 1 + dist/dev/i18n/locales/es/register.js | 8 + dist/dev/i18n/locales/es/register.js.map | 1 + dist/dev/i18n/locales/et.d.ts | 2 + dist/dev/i18n/locales/et.js | 2 + dist/dev/i18n/locales/et/register.d.ts | 1 + dist/dev/i18n/locales/et/register.js | 8 + dist/dev/i18n/locales/et/register.js.map | 1 + dist/dev/i18n/locales/eu.d.ts | 2 + dist/dev/i18n/locales/eu.js | 2 + dist/dev/i18n/locales/eu/register.d.ts | 1 + dist/dev/i18n/locales/eu/register.js | 8 + dist/dev/i18n/locales/eu/register.js.map | 1 + dist/dev/i18n/locales/fa.d.ts | 2 + dist/dev/i18n/locales/fa.js | 2 + dist/dev/i18n/locales/fa/register.d.ts | 1 + dist/dev/i18n/locales/fa/register.js | 8 + dist/dev/i18n/locales/fa/register.js.map | 1 + dist/dev/i18n/locales/fi.d.ts | 2 + dist/dev/i18n/locales/fi.js | 2 + dist/dev/i18n/locales/fi/register.d.ts | 1 + dist/dev/i18n/locales/fi/register.js | 8 + dist/dev/i18n/locales/fi/register.js.map | 1 + dist/dev/i18n/locales/fr.d.ts | 2 + dist/dev/i18n/locales/fr.js | 2 + dist/dev/i18n/locales/fr/register.d.ts | 1 + dist/dev/i18n/locales/fr/register.js | 8 + dist/dev/i18n/locales/fr/register.js.map | 1 + dist/dev/i18n/locales/gd.d.ts | 2 + dist/dev/i18n/locales/gd.js | 2 + dist/dev/i18n/locales/gd/register.d.ts | 1 + dist/dev/i18n/locales/gd/register.js | 8 + dist/dev/i18n/locales/gd/register.js.map | 1 + dist/dev/i18n/locales/gl.d.ts | 2 + dist/dev/i18n/locales/gl.js | 2 + dist/dev/i18n/locales/gl/register.d.ts | 1 + dist/dev/i18n/locales/gl/register.js | 8 + dist/dev/i18n/locales/gl/register.js.map | 1 + dist/dev/i18n/locales/he.d.ts | 2 + dist/dev/i18n/locales/he.js | 2 + dist/dev/i18n/locales/he/register.d.ts | 1 + dist/dev/i18n/locales/he/register.js | 8 + dist/dev/i18n/locales/he/register.js.map | 1 + dist/dev/i18n/locales/hi.d.ts | 2 + dist/dev/i18n/locales/hi.js | 2 + dist/dev/i18n/locales/hi/register.d.ts | 1 + dist/dev/i18n/locales/hi/register.js | 8 + dist/dev/i18n/locales/hi/register.js.map | 1 + dist/dev/i18n/locales/hr.d.ts | 2 + dist/dev/i18n/locales/hr.js | 2 + dist/dev/i18n/locales/hr/register.d.ts | 1 + dist/dev/i18n/locales/hr/register.js | 8 + dist/dev/i18n/locales/hr/register.js.map | 1 + dist/dev/i18n/locales/hu.d.ts | 2 + dist/dev/i18n/locales/hu.js | 2 + dist/dev/i18n/locales/hu/register.d.ts | 1 + dist/dev/i18n/locales/hu/register.js | 8 + dist/dev/i18n/locales/hu/register.js.map | 1 + dist/dev/i18n/locales/it.d.ts | 2 + dist/dev/i18n/locales/it.js | 2 + dist/dev/i18n/locales/it/register.d.ts | 1 + dist/dev/i18n/locales/it/register.js | 8 + dist/dev/i18n/locales/it/register.js.map | 1 + dist/dev/i18n/locales/ja.d.ts | 2 + dist/dev/i18n/locales/ja.js | 2 + dist/dev/i18n/locales/ja/register.d.ts | 1 + dist/dev/i18n/locales/ja/register.js | 8 + dist/dev/i18n/locales/ja/register.js.map | 1 + dist/dev/i18n/locales/ko.d.ts | 2 + dist/dev/i18n/locales/ko.js | 2 + dist/dev/i18n/locales/ko/register.d.ts | 1 + dist/dev/i18n/locales/ko/register.js | 8 + dist/dev/i18n/locales/ko/register.js.map | 1 + dist/dev/i18n/locales/lv.d.ts | 2 + dist/dev/i18n/locales/lv.js | 2 + dist/dev/i18n/locales/lv/register.d.ts | 1 + dist/dev/i18n/locales/lv/register.js | 8 + dist/dev/i18n/locales/lv/register.js.map | 1 + dist/dev/i18n/locales/mr.d.ts | 2 + dist/dev/i18n/locales/mr.js | 2 + dist/dev/i18n/locales/mr/register.d.ts | 1 + dist/dev/i18n/locales/mr/register.js | 8 + dist/dev/i18n/locales/mr/register.js.map | 1 + dist/dev/i18n/locales/nb.d.ts | 2 + dist/dev/i18n/locales/nb.js | 2 + dist/dev/i18n/locales/nb/register.d.ts | 1 + dist/dev/i18n/locales/nb/register.js | 8 + dist/dev/i18n/locales/nb/register.js.map | 1 + dist/dev/i18n/locales/ne.d.ts | 2 + dist/dev/i18n/locales/ne.js | 2 + dist/dev/i18n/locales/ne/register.d.ts | 1 + dist/dev/i18n/locales/ne/register.js | 8 + dist/dev/i18n/locales/ne/register.js.map | 1 + dist/dev/i18n/locales/nl.d.ts | 2 + dist/dev/i18n/locales/nl.js | 2 + dist/dev/i18n/locales/nl/register.d.ts | 1 + dist/dev/i18n/locales/nl/register.js | 8 + dist/dev/i18n/locales/nl/register.js.map | 1 + dist/dev/i18n/locales/nn.d.ts | 2 + dist/dev/i18n/locales/nn.js | 2 + dist/dev/i18n/locales/nn/register.d.ts | 1 + dist/dev/i18n/locales/nn/register.js | 8 + dist/dev/i18n/locales/nn/register.js.map | 1 + dist/dev/i18n/locales/oc.d.ts | 2 + dist/dev/i18n/locales/oc.js | 2 + dist/dev/i18n/locales/oc/register.d.ts | 1 + dist/dev/i18n/locales/oc/register.js | 8 + dist/dev/i18n/locales/oc/register.js.map | 1 + dist/dev/i18n/locales/pl.d.ts | 2 + dist/dev/i18n/locales/pl.js | 2 + dist/dev/i18n/locales/pl/register.d.ts | 1 + dist/dev/i18n/locales/pl/register.js | 8 + dist/dev/i18n/locales/pl/register.js.map | 1 + dist/dev/i18n/locales/pt-BR.d.ts | 2 + dist/dev/i18n/locales/pt-BR.js | 2 + dist/dev/i18n/locales/pt-BR/register.d.ts | 1 + dist/dev/i18n/locales/pt-BR/register.js | 8 + dist/dev/i18n/locales/pt-BR/register.js.map | 1 + dist/dev/i18n/locales/pt-PT.d.ts | 2 + dist/dev/i18n/locales/pt-PT.js | 2 + dist/dev/i18n/locales/pt-PT/register.d.ts | 1 + dist/dev/i18n/locales/pt-PT/register.js | 8 + dist/dev/i18n/locales/pt-PT/register.js.map | 1 + dist/dev/i18n/locales/pt.d.ts | 2 + dist/dev/i18n/locales/pt.js | 2 + dist/dev/i18n/locales/pt/register.d.ts | 1 + dist/dev/i18n/locales/pt/register.js | 8 + dist/dev/i18n/locales/pt/register.js.map | 1 + dist/dev/i18n/locales/ro.d.ts | 2 + dist/dev/i18n/locales/ro.js | 2 + dist/dev/i18n/locales/ro/register.d.ts | 1 + dist/dev/i18n/locales/ro/register.js | 8 + dist/dev/i18n/locales/ro/register.js.map | 1 + dist/dev/i18n/locales/ru.d.ts | 2 + dist/dev/i18n/locales/ru.js | 2 + dist/dev/i18n/locales/ru/register.d.ts | 1 + dist/dev/i18n/locales/ru/register.js | 8 + dist/dev/i18n/locales/ru/register.js.map | 1 + dist/dev/i18n/locales/sk.d.ts | 2 + dist/dev/i18n/locales/sk.js | 2 + dist/dev/i18n/locales/sk/register.d.ts | 1 + dist/dev/i18n/locales/sk/register.js | 8 + dist/dev/i18n/locales/sk/register.js.map | 1 + dist/dev/i18n/locales/sl.d.ts | 2 + dist/dev/i18n/locales/sl.js | 2 + dist/dev/i18n/locales/sl/register.d.ts | 1 + dist/dev/i18n/locales/sl/register.js | 8 + dist/dev/i18n/locales/sl/register.js.map | 1 + dist/dev/i18n/locales/sr.d.ts | 2 + dist/dev/i18n/locales/sr.js | 2 + dist/dev/i18n/locales/sr/register.d.ts | 1 + dist/dev/i18n/locales/sr/register.js | 8 + dist/dev/i18n/locales/sr/register.js.map | 1 + dist/dev/i18n/locales/sv.d.ts | 2 + dist/dev/i18n/locales/sv.js | 2 + dist/dev/i18n/locales/sv/register.d.ts | 1 + dist/dev/i18n/locales/sv/register.js | 8 + dist/dev/i18n/locales/sv/register.js.map | 1 + dist/dev/i18n/locales/te.d.ts | 2 + dist/dev/i18n/locales/te.js | 2 + dist/dev/i18n/locales/te/register.d.ts | 1 + dist/dev/i18n/locales/te/register.js | 8 + dist/dev/i18n/locales/te/register.js.map | 1 + dist/dev/i18n/locales/th.d.ts | 2 + dist/dev/i18n/locales/th.js | 2 + dist/dev/i18n/locales/th/register.d.ts | 1 + dist/dev/i18n/locales/th/register.js | 8 + dist/dev/i18n/locales/th/register.js.map | 1 + dist/dev/i18n/locales/tr.d.ts | 2 + dist/dev/i18n/locales/tr.js | 2 + dist/dev/i18n/locales/tr/register.d.ts | 1 + dist/dev/i18n/locales/tr/register.js | 8 + dist/dev/i18n/locales/tr/register.js.map | 1 + dist/dev/i18n/locales/uk.d.ts | 2 + dist/dev/i18n/locales/uk.js | 2 + dist/dev/i18n/locales/uk/register.d.ts | 1 + dist/dev/i18n/locales/uk/register.js | 8 + dist/dev/i18n/locales/uk/register.js.map | 1 + dist/dev/i18n/locales/vi.d.ts | 2 + dist/dev/i18n/locales/vi.js | 2 + dist/dev/i18n/locales/vi/register.d.ts | 1 + dist/dev/i18n/locales/vi/register.js | 8 + dist/dev/i18n/locales/vi/register.js.map | 1 + dist/dev/i18n/locales/zh-CN.d.ts | 2 + dist/dev/i18n/locales/zh-CN.js | 2 + dist/dev/i18n/locales/zh-CN/register.d.ts | 1 + dist/dev/i18n/locales/zh-CN/register.js | 8 + dist/dev/i18n/locales/zh-CN/register.js.map | 1 + dist/dev/i18n/locales/zh-TW.d.ts | 2 + dist/dev/i18n/locales/zh-TW.js | 2 + dist/dev/i18n/locales/zh-TW/register.d.ts | 1 + dist/dev/i18n/locales/zh-TW/register.js | 8 + dist/dev/i18n/locales/zh-TW/register.js.map | 1 + dist/dev/i18n/locales/zh.d.ts | 2 + dist/dev/i18n/locales/zh.js | 2 + dist/dev/i18n/locales/zh/register.d.ts | 1 + dist/dev/i18n/locales/zh/register.js | 8 + dist/dev/i18n/locales/zh/register.js.map | 1 + dist/dev/i18n/use-ambient-lang.js | 15 + dist/dev/i18n/use-ambient-lang.js.map | 1 + dist/dev/i18n/use-lang-root-element.js | 28 + dist/dev/i18n/use-lang-root-element.js.map | 1 + dist/dev/i18n/use-lazy-translations.js | 37 + dist/dev/i18n/use-lazy-translations.js.map | 1 + .../dev/i18n/use-locale-root-notifications.js | 27 + .../i18n/use-locale-root-notifications.js.map | 1 + dist/dev/i18n/use-merged-translations.js | 22 + dist/dev/i18n/use-merged-translations.js.map | 1 + dist/dev/i18n/use-registry-epoch.js | 14 + dist/dev/i18n/use-registry-epoch.js.map | 1 + .../icons/dist/react/default/airplay-enter.js | 16 + .../dist/react/default/airplay-enter.js.map | 1 + .../icons/dist/react/default/airplay-exit.js | 28 + .../dist/react/default/airplay-exit.js.map | 1 + .../icons/dist/react/default/captions-off.js | 71 + .../dist/react/default/captions-off.js.map | 1 + .../icons/dist/react/default/captions-on.js | 16 + .../dist/react/default/captions-on.js.map | 1 + .../icons/dist/react/default/cast-enter.js | 59 + .../dist/react/default/cast-enter.js.map | 1 + .../dev/icons/dist/react/default/cast-exit.js | 77 + .../icons/dist/react/default/cast-exit.js.map | 1 + dist/dev/icons/dist/react/default/check.js | 22 + .../dev/icons/dist/react/default/check.js.map | 1 + dist/dev/icons/dist/react/default/chevron.js | 21 + .../icons/dist/react/default/chevron.js.map | 1 + .../dist/react/default/fullscreen-enter.js | 16 + .../react/default/fullscreen-enter.js.map | 1 + .../dist/react/default/fullscreen-exit.js | 16 + .../dist/react/default/fullscreen-exit.js.map | 1 + dist/dev/icons/dist/react/default/gear.js | 16 + dist/dev/icons/dist/react/default/gear.js.map | 1 + dist/dev/icons/dist/react/default/index.d.ts | 30 + .../icons/dist/react/default/index.d.ts.map | 1 + dist/dev/icons/dist/react/default/pause.js | 28 + .../dev/icons/dist/react/default/pause.js.map | 1 + .../dev/icons/dist/react/default/pip-enter.js | 26 + .../icons/dist/react/default/pip-enter.js.map | 1 + dist/dev/icons/dist/react/default/pip-exit.js | 26 + .../icons/dist/react/default/pip-exit.js.map | 1 + dist/dev/icons/dist/react/default/play.js | 16 + dist/dev/icons/dist/react/default/play.js.map | 1 + dist/dev/icons/dist/react/default/quality.js | 16 + .../icons/dist/react/default/quality.js.map | 1 + dist/dev/icons/dist/react/default/restart.js | 16 + .../icons/dist/react/default/restart.js.map | 1 + dist/dev/icons/dist/react/default/seek.js | 16 + dist/dev/icons/dist/react/default/seek.js.map | 1 + dist/dev/icons/dist/react/default/speech.js | 19 + .../icons/dist/react/default/speech.js.map | 1 + dist/dev/icons/dist/react/default/speed.js | 52 + .../dev/icons/dist/react/default/speed.js.map | 1 + dist/dev/icons/dist/react/default/spinner.js | 69 + .../icons/dist/react/default/spinner.js.map | 1 + dist/dev/icons/dist/react/default/switches.js | 19 + .../icons/dist/react/default/switches.js.map | 1 + .../icons/dist/react/default/volume-high.js | 16 + .../dist/react/default/volume-high.js.map | 1 + .../icons/dist/react/default/volume-low.js | 16 + .../dist/react/default/volume-low.js.map | 1 + .../icons/dist/react/default/volume-off.js | 16 + .../dist/react/default/volume-off.js.map | 1 + .../icons/dist/react/minimal/airplay-enter.js | 16 + .../dist/react/minimal/airplay-enter.js.map | 1 + .../icons/dist/react/minimal/airplay-exit.js | 28 + .../dist/react/minimal/airplay-exit.js.map | 1 + .../icons/dist/react/minimal/captions-off.js | 71 + .../dist/react/minimal/captions-off.js.map | 1 + .../icons/dist/react/minimal/captions-on.js | 16 + .../dist/react/minimal/captions-on.js.map | 1 + .../icons/dist/react/minimal/cast-enter.js | 59 + .../dist/react/minimal/cast-enter.js.map | 1 + .../dev/icons/dist/react/minimal/cast-exit.js | 77 + .../icons/dist/react/minimal/cast-exit.js.map | 1 + dist/dev/icons/dist/react/minimal/check.js | 22 + .../dev/icons/dist/react/minimal/check.js.map | 1 + dist/dev/icons/dist/react/minimal/chevron.js | 21 + .../icons/dist/react/minimal/chevron.js.map | 1 + .../dist/react/minimal/fullscreen-enter.js | 20 + .../react/minimal/fullscreen-enter.js.map | 1 + .../dist/react/minimal/fullscreen-exit.js | 20 + .../dist/react/minimal/fullscreen-exit.js.map | 1 + dist/dev/icons/dist/react/minimal/gear.js | 16 + dist/dev/icons/dist/react/minimal/gear.js.map | 1 + dist/dev/icons/dist/react/minimal/index.d.ts | 30 + .../icons/dist/react/minimal/index.d.ts.map | 1 + dist/dev/icons/dist/react/minimal/pause.js | 28 + .../dev/icons/dist/react/minimal/pause.js.map | 1 + .../dev/icons/dist/react/minimal/pip-enter.js | 27 + .../icons/dist/react/minimal/pip-enter.js.map | 1 + dist/dev/icons/dist/react/minimal/pip-exit.js | 27 + .../icons/dist/react/minimal/pip-exit.js.map | 1 + dist/dev/icons/dist/react/minimal/play.js | 16 + dist/dev/icons/dist/react/minimal/play.js.map | 1 + dist/dev/icons/dist/react/minimal/quality.js | 16 + .../icons/dist/react/minimal/quality.js.map | 1 + dist/dev/icons/dist/react/minimal/restart.js | 16 + .../icons/dist/react/minimal/restart.js.map | 1 + dist/dev/icons/dist/react/minimal/seek.js | 16 + dist/dev/icons/dist/react/minimal/seek.js.map | 1 + dist/dev/icons/dist/react/minimal/speech.js | 54 + .../icons/dist/react/minimal/speech.js.map | 1 + dist/dev/icons/dist/react/minimal/speed.js | 52 + .../dev/icons/dist/react/minimal/speed.js.map | 1 + dist/dev/icons/dist/react/minimal/spinner.js | 69 + .../icons/dist/react/minimal/spinner.js.map | 1 + dist/dev/icons/dist/react/minimal/switches.js | 19 + .../icons/dist/react/minimal/switches.js.map | 1 + .../icons/dist/react/minimal/volume-high.js | 16 + .../dist/react/minimal/volume-high.js.map | 1 + .../icons/dist/react/minimal/volume-low.js | 16 + .../dist/react/minimal/volume-low.js.map | 1 + .../icons/dist/react/minimal/volume-off.js | 16 + .../dist/react/minimal/volume-off.js.map | 1 + dist/dev/icons/index.d.ts | 2 + dist/dev/icons/index.js | 26 + dist/dev/icons/minimal/index.d.ts | 2 + dist/dev/icons/minimal/index.js | 26 + dist/dev/index.d.ts | 99 + dist/dev/index.js | 65 + dist/dev/media/audio.d.ts | 10 + dist/dev/media/audio.d.ts.map | 1 + dist/dev/media/audio.js | 17 + dist/dev/media/audio.js.map | 1 + dist/dev/media/background-video/index.d.ts | 2 + dist/dev/media/background-video/index.js | 2 + dist/dev/media/background-video/media.d.ts | 10 + .../dev/media/background-video/media.d.ts.map | 1 + dist/dev/media/background-video/media.js | 26 + dist/dev/media/background-video/media.js.map | 1 + dist/dev/media/dash-video/index.d.ts | 2 + dist/dev/media/dash-video/index.js | 2 + dist/dev/media/dash-video/media.d.ts | 13 + dist/dev/media/dash-video/media.d.ts.map | 1 + dist/dev/media/dash-video/media.js | 21 + dist/dev/media/dash-video/media.js.map | 1 + dist/dev/media/google-cast/google-cast.d.ts | 26 + .../media/google-cast/google-cast.d.ts.map | 1 + dist/dev/media/google-cast/google-cast.js | 28 + dist/dev/media/google-cast/google-cast.js.map | 1 + dist/dev/media/google-cast/index.d.ts | 2 + dist/dev/media/google-cast/index.js | 2 + dist/dev/media/hlsjs-video/index.d.ts | 2 + dist/dev/media/hlsjs-video/index.js | 2 + dist/dev/media/hlsjs-video/media.d.ts | 13 + dist/dev/media/hlsjs-video/media.d.ts.map | 1 + dist/dev/media/hlsjs-video/media.js | 21 + dist/dev/media/hlsjs-video/media.js.map | 1 + dist/dev/media/mux-audio/index.d.ts | 2 + dist/dev/media/mux-audio/index.js | 2 + dist/dev/media/mux-audio/media.d.ts | 14 + dist/dev/media/mux-audio/media.d.ts.map | 1 + dist/dev/media/mux-audio/media.js | 26 + dist/dev/media/mux-audio/media.js.map | 1 + dist/dev/media/mux-data/index.d.ts | 2 + dist/dev/media/mux-data/index.js | 2 + dist/dev/media/mux-data/mux-data.d.ts | 31 + dist/dev/media/mux-data/mux-data.d.ts.map | 1 + dist/dev/media/mux-data/mux-data.js | 37 + dist/dev/media/mux-data/mux-data.js.map | 1 + dist/dev/media/mux-video/index.d.ts | 2 + dist/dev/media/mux-video/index.js | 2 + dist/dev/media/mux-video/media.d.ts | 14 + dist/dev/media/mux-video/media.d.ts.map | 1 + dist/dev/media/mux-video/media.js | 56 + dist/dev/media/mux-video/media.js.map | 1 + dist/dev/media/native-hls-video/index.d.ts | 2 + dist/dev/media/native-hls-video/index.js | 2 + dist/dev/media/native-hls-video/media.d.ts | 13 + .../dev/media/native-hls-video/media.d.ts.map | 1 + dist/dev/media/native-hls-video/media.js | 21 + dist/dev/media/native-hls-video/media.js.map | 1 + .../media/simple-hls-audio-only/index.d.ts | 2 + dist/dev/media/simple-hls-audio-only/index.js | 2 + .../media/simple-hls-audio-only/media.d.ts | 13 + .../simple-hls-audio-only/media.d.ts.map | 1 + dist/dev/media/simple-hls-audio-only/media.js | 22 + .../media/simple-hls-audio-only/media.js.map | 1 + dist/dev/media/simple-hls-video/index.d.ts | 2 + dist/dev/media/simple-hls-video/index.js | 2 + dist/dev/media/simple-hls-video/media.d.ts | 13 + .../dev/media/simple-hls-video/media.d.ts.map | 1 + dist/dev/media/simple-hls-video/media.js | 22 + dist/dev/media/simple-hls-video/media.js.map | 1 + dist/dev/media/video.d.ts | 10 + dist/dev/media/video.d.ts.map | 1 + dist/dev/media/video.js | 17 + dist/dev/media/video.js.map | 1 + dist/dev/media/vimeo-video/index.d.ts | 2 + dist/dev/media/vimeo-video/index.js | 2 + dist/dev/media/vimeo-video/media.d.ts | 13 + dist/dev/media/vimeo-video/media.d.ts.map | 1 + dist/dev/media/vimeo-video/media.js | 37 + dist/dev/media/vimeo-video/media.js.map | 1 + dist/dev/player/container.d.ts | 12 + dist/dev/player/container.d.ts.map | 1 + dist/dev/player/container.js | 41 + dist/dev/player/container.js.map | 1 + dist/dev/player/context.d.ts | 59 + dist/dev/player/context.d.ts.map | 1 + dist/dev/player/context.js | 62 + dist/dev/player/context.js.map | 1 + dist/dev/player/create-player.d.ts | 47 + dist/dev/player/create-player.d.ts.map | 1 + dist/dev/player/create-player.js | 65 + dist/dev/player/create-player.js.map | 1 + dist/dev/presets/audio/index.d.ts | 7 + dist/dev/presets/audio/index.js | 7 + dist/dev/presets/audio/minimal-skin.css | 1206 ++++++++++ dist/dev/presets/audio/minimal-skin.d.ts | 8 + dist/dev/presets/audio/minimal-skin.d.ts.map | 1 + dist/dev/presets/audio/minimal-skin.js | 340 +++ dist/dev/presets/audio/minimal-skin.js.map | 1 + .../presets/audio/minimal-skin.tailwind.d.ts | 7 + .../audio/minimal-skin.tailwind.d.ts.map | 1 + .../presets/audio/minimal-skin.tailwind.js | 318 +++ .../audio/minimal-skin.tailwind.js.map | 1 + dist/dev/presets/audio/skin.css | 1216 ++++++++++ dist/dev/presets/audio/skin.d.ts | 8 + dist/dev/presets/audio/skin.d.ts.map | 1 + dist/dev/presets/audio/skin.js | 335 +++ dist/dev/presets/audio/skin.js.map | 1 + dist/dev/presets/audio/skin.tailwind.d.ts | 7 + dist/dev/presets/audio/skin.tailwind.d.ts.map | 1 + dist/dev/presets/audio/skin.tailwind.js | 379 ++++ dist/dev/presets/audio/skin.tailwind.js.map | 1 + dist/dev/presets/background/index.d.ts | 5 + dist/dev/presets/background/index.js | 4 + dist/dev/presets/background/skin.css | 22 + dist/dev/presets/background/skin.d.ts | 7 + dist/dev/presets/background/skin.d.ts.map | 1 + dist/dev/presets/background/skin.js | 15 + dist/dev/presets/background/skin.js.map | 1 + dist/dev/presets/live-audio/index.d.ts | 7 + dist/dev/presets/live-audio/index.js | 7 + dist/dev/presets/live-audio/minimal-skin.css | 1206 ++++++++++ dist/dev/presets/live-audio/minimal-skin.d.ts | 15 + .../presets/live-audio/minimal-skin.d.ts.map | 1 + dist/dev/presets/live-audio/minimal-skin.js | 173 ++ .../presets/live-audio/minimal-skin.js.map | 1 + .../live-audio/minimal-skin.tailwind.d.ts | 7 + .../live-audio/minimal-skin.tailwind.d.ts.map | 1 + .../live-audio/minimal-skin.tailwind.js | 202 ++ .../live-audio/minimal-skin.tailwind.js.map | 1 + dist/dev/presets/live-audio/skin.css | 1216 ++++++++++ dist/dev/presets/live-audio/skin.d.ts | 17 + dist/dev/presets/live-audio/skin.d.ts.map | 1 + dist/dev/presets/live-audio/skin.js | 176 ++ dist/dev/presets/live-audio/skin.js.map | 1 + .../dev/presets/live-audio/skin.tailwind.d.ts | 7 + .../presets/live-audio/skin.tailwind.d.ts.map | 1 + dist/dev/presets/live-audio/skin.tailwind.js | 202 ++ .../presets/live-audio/skin.tailwind.js.map | 1 + dist/dev/presets/live-video/index.d.ts | 7 + dist/dev/presets/live-video/index.js | 7 + dist/dev/presets/live-video/minimal-skin.css | 1932 ++++++++++++++++ dist/dev/presets/live-video/minimal-skin.d.ts | 8 + .../presets/live-video/minimal-skin.d.ts.map | 1 + dist/dev/presets/live-video/minimal-skin.js | 388 ++++ .../presets/live-video/minimal-skin.js.map | 1 + .../live-video/minimal-skin.tailwind.d.ts | 7 + .../live-video/minimal-skin.tailwind.d.ts.map | 1 + .../live-video/minimal-skin.tailwind.js | 423 ++++ .../live-video/minimal-skin.tailwind.js.map | 1 + dist/dev/presets/live-video/skin.css | 1951 +++++++++++++++++ dist/dev/presets/live-video/skin.d.ts | 8 + dist/dev/presets/live-video/skin.d.ts.map | 1 + dist/dev/presets/live-video/skin.js | 384 ++++ dist/dev/presets/live-video/skin.js.map | 1 + .../dev/presets/live-video/skin.tailwind.d.ts | 7 + .../presets/live-video/skin.tailwind.d.ts.map | 1 + dist/dev/presets/live-video/skin.tailwind.js | 505 +++++ .../presets/live-video/skin.tailwind.js.map | 1 + dist/dev/presets/types.d.ts | 17 + dist/dev/presets/types.d.ts.map | 1 + dist/dev/presets/video/index.d.ts | 7 + dist/dev/presets/video/index.js | 7 + dist/dev/presets/video/minimal-skin.css | 1932 ++++++++++++++++ dist/dev/presets/video/minimal-skin.d.ts | 8 + dist/dev/presets/video/minimal-skin.d.ts.map | 1 + dist/dev/presets/video/minimal-skin.js | 673 ++++++ dist/dev/presets/video/minimal-skin.js.map | 1 + .../presets/video/minimal-skin.tailwind.d.ts | 7 + .../video/minimal-skin.tailwind.d.ts.map | 1 + .../presets/video/minimal-skin.tailwind.js | 722 ++++++ .../video/minimal-skin.tailwind.js.map | 1 + dist/dev/presets/video/skin.css | 1951 +++++++++++++++++ dist/dev/presets/video/skin.d.ts | 8 + dist/dev/presets/video/skin.d.ts.map | 1 + dist/dev/presets/video/skin.js | 680 ++++++ dist/dev/presets/video/skin.js.map | 1 + dist/dev/presets/video/skin.tailwind.d.ts | 7 + dist/dev/presets/video/skin.tailwind.d.ts.map | 1 + dist/dev/presets/video/skin.tailwind.js | 714 ++++++ dist/dev/presets/video/skin.tailwind.js.map | 1 + .../default/tailwind/audio.tailwind.js | 49 + .../default/tailwind/audio.tailwind.js.map | 1 + .../default/tailwind/components/badge.js | 6 + .../default/tailwind/components/badge.js.map | 1 + .../default/tailwind/components/buffering.js | 6 + .../tailwind/components/buffering.js.map | 1 + .../tailwind/components/button-group.js | 6 + .../tailwind/components/button-group.js.map | 1 + .../default/tailwind/components/button.js | 18 + .../default/tailwind/components/button.js.map | 1 + .../default/tailwind/components/controls.js | 7 + .../tailwind/components/controls.js.map | 1 + .../default/tailwind/components/error.js | 14 + .../default/tailwind/components/error.js.map | 1 + .../default/tailwind/components/icon.js | 9 + .../default/tailwind/components/icon.js.map | 1 + .../tailwind/components/input-feedback.js | 40 + .../tailwind/components/input-feedback.js.map | 1 + .../default/tailwind/components/menu.js | 38 + .../default/tailwind/components/menu.js.map | 1 + .../default/tailwind/components/overlay.js | 7 + .../tailwind/components/overlay.js.map | 1 + .../tailwind/components/playback-rate.js | 6 + .../tailwind/components/playback-rate.js.map | 1 + .../default/tailwind/components/popup.js | 13 + .../default/tailwind/components/popup.js.map | 1 + .../default/tailwind/components/poster.js | 21 + .../default/tailwind/components/poster.js.map | 1 + .../default/tailwind/components/reset.js | 7 + .../default/tailwind/components/reset.js.map | 1 + .../default/tailwind/components/root.js | 8 + .../default/tailwind/components/root.js.map | 1 + .../default/tailwind/components/seek.js | 10 + .../default/tailwind/components/seek.js.map | 1 + .../default/tailwind/components/slider.js | 22 + .../default/tailwind/components/slider.js.map | 1 + .../default/tailwind/components/surface.js | 7 + .../tailwind/components/surface.js.map | 1 + .../default/tailwind/components/thumbnail.js | 12 + .../tailwind/components/thumbnail.js.map | 1 + .../default/tailwind/components/time.js | 10 + .../default/tailwind/components/time.js.map | 1 + .../default/tailwind/video.tailwind.js | 96 + .../default/tailwind/video.tailwind.js.map | 1 + .../minimal/tailwind/audio.tailwind.js | 43 + .../minimal/tailwind/audio.tailwind.js.map | 1 + .../minimal/tailwind/components/badge.js | 6 + .../minimal/tailwind/components/badge.js.map | 1 + .../minimal/tailwind/components/buffering.js | 6 + .../tailwind/components/buffering.js.map | 1 + .../tailwind/components/button-group.js | 6 + .../tailwind/components/button-group.js.map | 1 + .../minimal/tailwind/components/button.js | 23 + .../minimal/tailwind/components/button.js.map | 1 + .../minimal/tailwind/components/controls.js | 7 + .../tailwind/components/controls.js.map | 1 + .../minimal/tailwind/components/error.js | 14 + .../minimal/tailwind/components/error.js.map | 1 + .../minimal/tailwind/components/icon.js | 9 + .../minimal/tailwind/components/icon.js.map | 1 + .../tailwind/components/input-feedback.js | 41 + .../tailwind/components/input-feedback.js.map | 1 + .../minimal/tailwind/components/menu.js | 37 + .../minimal/tailwind/components/menu.js.map | 1 + .../minimal/tailwind/components/overlay.js | 7 + .../tailwind/components/overlay.js.map | 1 + .../tailwind/components/playback-rate.js | 6 + .../tailwind/components/playback-rate.js.map | 1 + .../minimal/tailwind/components/popup.js | 13 + .../minimal/tailwind/components/popup.js.map | 1 + .../minimal/tailwind/components/poster.js | 21 + .../minimal/tailwind/components/poster.js.map | 1 + .../minimal/tailwind/components/reset.js | 7 + .../minimal/tailwind/components/reset.js.map | 1 + .../minimal/tailwind/components/root.js | 8 + .../minimal/tailwind/components/root.js.map | 1 + .../minimal/tailwind/components/seek.js | 10 + .../minimal/tailwind/components/seek.js.map | 1 + .../minimal/tailwind/components/slider.js | 21 + .../minimal/tailwind/components/slider.js.map | 1 + .../minimal/tailwind/components/thumbnail.js | 13 + .../tailwind/components/thumbnail.js.map | 1 + .../minimal/tailwind/components/time.js | 13 + .../minimal/tailwind/components/time.js.map | 1 + .../minimal/tailwind/video.tailwind.js | 84 + .../minimal/tailwind/video.tailwind.js.map | 1 + .../default/shared/tailwind/icon-state.js | 54 + .../default/shared/tailwind/icon-state.js.map | 1 + dist/dev/tailwind.css | 42 + .../dev/ui/airplay-button/airplay-button.d.ts | 13 + .../ui/airplay-button/airplay-button.d.ts.map | 1 + dist/dev/ui/airplay-button/airplay-button.js | 18 + .../ui/airplay-button/airplay-button.js.map | 1 + dist/dev/ui/airplay-button/index.d.ts | 2 + dist/dev/ui/airplay-button/index.js | 2 + .../ui/alert-dialog/alert-dialog-close.d.ts | 12 + .../alert-dialog/alert-dialog-close.d.ts.map | 1 + .../dev/ui/alert-dialog/alert-dialog-close.js | 29 + .../ui/alert-dialog/alert-dialog-close.js.map | 1 + .../alert-dialog-description.d.ts | 12 + .../alert-dialog-description.d.ts.map | 1 + .../alert-dialog/alert-dialog-description.js | 14 + .../alert-dialog-description.js.map | 1 + .../ui/alert-dialog/alert-dialog-popup.d.ts | 12 + .../alert-dialog/alert-dialog-popup.d.ts.map | 1 + .../dev/ui/alert-dialog/alert-dialog-popup.js | 30 + .../ui/alert-dialog/alert-dialog-popup.js.map | 1 + .../ui/alert-dialog/alert-dialog-root.d.ts | 17 + .../alert-dialog/alert-dialog-root.d.ts.map | 1 + dist/dev/ui/alert-dialog/alert-dialog-root.js | 57 + .../ui/alert-dialog/alert-dialog-root.js.map | 1 + .../ui/alert-dialog/alert-dialog-title.d.ts | 12 + .../alert-dialog/alert-dialog-title.d.ts.map | 1 + .../dev/ui/alert-dialog/alert-dialog-title.js | 14 + .../ui/alert-dialog/alert-dialog-title.js.map | 1 + dist/dev/ui/alert-dialog/context.d.ts | 13 + dist/dev/ui/alert-dialog/context.d.ts.map | 1 + dist/dev/ui/alert-dialog/context.js | 14 + dist/dev/ui/alert-dialog/context.js.map | 1 + dist/dev/ui/alert-dialog/index.d.ts | 3 + dist/dev/ui/alert-dialog/index.js | 3 + dist/dev/ui/alert-dialog/index.parts.d.ts | 11 + dist/dev/ui/alert-dialog/index.parts.d.ts.map | 1 + dist/dev/ui/alert-dialog/index.parts.js | 18 + dist/dev/ui/alert-dialog/index.parts.js.map | 1 + dist/dev/ui/audio-track/index.d.ts | 2 + dist/dev/ui/audio-track/index.js | 2 + .../audio-track/use-audio-track-options.d.ts | 30 + .../use-audio-track-options.d.ts.map | 1 + .../ui/audio-track/use-audio-track-options.js | 43 + .../use-audio-track-options.js.map | 1 + .../buffering-indicator.d.ts | 30 + .../buffering-indicator.d.ts.map | 1 + .../buffering-indicator.js | 53 + .../buffering-indicator.js.map | 1 + dist/dev/ui/buffering-indicator/index.d.ts | 2 + dist/dev/ui/buffering-indicator/index.js | 2 + .../ui/captions-button/captions-button.d.ts | 13 + .../captions-button/captions-button.d.ts.map | 1 + .../dev/ui/captions-button/captions-button.js | 19 + .../ui/captions-button/captions-button.js.map | 1 + dist/dev/ui/captions-button/index.d.ts | 2 + dist/dev/ui/captions-button/index.js | 2 + dist/dev/ui/captions-radio-group/index.d.ts | 2 + dist/dev/ui/captions-radio-group/index.js | 2 + .../use-captions-options.d.ts | 32 + .../use-captions-options.d.ts.map | 1 + .../use-captions-options.js | 51 + .../use-captions-options.js.map | 1 + dist/dev/ui/cast-button/cast-button.d.ts | 13 + dist/dev/ui/cast-button/cast-button.d.ts.map | 1 + dist/dev/ui/cast-button/cast-button.js | 18 + dist/dev/ui/cast-button/cast-button.js.map | 1 + dist/dev/ui/cast-button/index.d.ts | 2 + dist/dev/ui/cast-button/index.js | 2 + dist/dev/ui/controls/context.js | 17 + dist/dev/ui/controls/context.js.map | 1 + dist/dev/ui/controls/controls-group.d.ts | 15 + dist/dev/ui/controls/controls-group.d.ts.map | 1 + dist/dev/ui/controls/controls-group.js | 28 + dist/dev/ui/controls/controls-group.js.map | 1 + dist/dev/ui/controls/controls-root.d.ts | 16 + dist/dev/ui/controls/controls-root.d.ts.map | 1 + dist/dev/ui/controls/controls-root.js | 45 + dist/dev/ui/controls/controls-root.js.map | 1 + dist/dev/ui/controls/index.d.ts | 2 + dist/dev/ui/controls/index.js | 2 + dist/dev/ui/controls/index.parts.d.ts | 8 + dist/dev/ui/controls/index.parts.d.ts.map | 1 + dist/dev/ui/controls/index.parts.js | 12 + dist/dev/ui/controls/index.parts.js.map | 1 + dist/dev/ui/create-context-part.js | 32 + dist/dev/ui/create-context-part.js.map | 1 + dist/dev/ui/create-media-button.js | 95 + dist/dev/ui/create-media-button.js.map | 1 + dist/dev/ui/error-dialog/context.d.ts | 9 + dist/dev/ui/error-dialog/context.d.ts.map | 1 + dist/dev/ui/error-dialog/context.js | 14 + dist/dev/ui/error-dialog/context.js.map | 1 + .../ui/error-dialog/error-dialog-close.d.ts | 12 + .../error-dialog/error-dialog-close.d.ts.map | 1 + .../dev/ui/error-dialog/error-dialog-close.js | 36 + .../ui/error-dialog/error-dialog-close.js.map | 1 + .../error-dialog-description.d.ts | 12 + .../error-dialog-description.d.ts.map | 1 + .../error-dialog/error-dialog-description.js | 33 + .../error-dialog-description.js.map | 1 + .../ui/error-dialog/error-dialog-root.d.ts | 12 + .../error-dialog/error-dialog-root.d.ts.map | 1 + dist/dev/ui/error-dialog/error-dialog-root.js | 57 + .../ui/error-dialog/error-dialog-root.js.map | 1 + .../ui/error-dialog/error-dialog-title.d.ts | 12 + .../error-dialog/error-dialog-title.d.ts.map | 1 + .../dev/ui/error-dialog/error-dialog-title.js | 30 + .../ui/error-dialog/error-dialog-title.js.map | 1 + dist/dev/ui/error-dialog/index.d.ts | 3 + dist/dev/ui/error-dialog/index.js | 3 + dist/dev/ui/error-dialog/index.parts.d.ts | 11 + dist/dev/ui/error-dialog/index.parts.d.ts.map | 1 + dist/dev/ui/error-dialog/index.parts.js | 18 + dist/dev/ui/error-dialog/index.parts.js.map | 1 + .../fullscreen-button/fullscreen-button.d.ts | 13 + .../fullscreen-button.d.ts.map | 1 + .../ui/fullscreen-button/fullscreen-button.js | 19 + .../fullscreen-button.js.map | 1 + dist/dev/ui/fullscreen-button/index.d.ts | 2 + dist/dev/ui/fullscreen-button/index.js | 2 + dist/dev/ui/gesture/gesture.d.ts | 22 + dist/dev/ui/gesture/gesture.d.ts.map | 1 + dist/dev/ui/gesture/gesture.js | 45 + dist/dev/ui/gesture/gesture.js.map | 1 + dist/dev/ui/gesture/index.d.ts | 2 + dist/dev/ui/gesture/index.js | 2 + .../dev/ui/gesture/use-doubletap-gesture.d.ts | 13 + .../ui/gesture/use-doubletap-gesture.d.ts.map | 1 + dist/dev/ui/gesture/use-doubletap-gesture.js | 28 + .../ui/gesture/use-doubletap-gesture.js.map | 1 + dist/dev/ui/gesture/use-tap-gesture.d.ts | 13 + dist/dev/ui/gesture/use-tap-gesture.d.ts.map | 1 + dist/dev/ui/gesture/use-tap-gesture.js | 28 + dist/dev/ui/gesture/use-tap-gesture.js.map | 1 + dist/dev/ui/hooks/use-button.d.ts | 40 + dist/dev/ui/hooks/use-button.d.ts.map | 1 + dist/dev/ui/hooks/use-button.js | 44 + dist/dev/ui/hooks/use-button.js.map | 1 + dist/dev/ui/hooks/use-positioned-state.js | 39 + dist/dev/ui/hooks/use-positioned-state.js.map | 1 + dist/dev/ui/hooks/use-slider.d.ts | 36 + dist/dev/ui/hooks/use-slider.d.ts.map | 1 + dist/dev/ui/hooks/use-slider.js | 63 + dist/dev/ui/hooks/use-slider.js.map | 1 + dist/dev/ui/hotkey/hotkey.d.ts | 21 + dist/dev/ui/hotkey/hotkey.d.ts.map | 1 + dist/dev/ui/hotkey/hotkey.js | 44 + dist/dev/ui/hotkey/hotkey.js.map | 1 + dist/dev/ui/hotkey/index.d.ts | 2 + dist/dev/ui/hotkey/index.js | 2 + dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts | 6 + .../ui/hotkey/use-hotkey-shortcut.d.ts.map | 1 + dist/dev/ui/hotkey/use-hotkey-shortcut.js | 28 + dist/dev/ui/hotkey/use-hotkey-shortcut.js.map | 1 + dist/dev/ui/hotkey/use-hotkey.d.ts | 12 + dist/dev/ui/hotkey/use-hotkey.d.ts.map | 1 + dist/dev/ui/hotkey/use-hotkey.js | 31 + dist/dev/ui/hotkey/use-hotkey.js.map | 1 + .../use-indicator-visibility.js | 25 + .../use-indicator-visibility.js.map | 1 + .../use-input-action-subscription.js | 22 + .../use-input-action-subscription.js.map | 1 + .../use-input-indicator-root.js | 21 + .../use-input-indicator-root.js.map | 1 + .../use-rendered-indicator-state.js | 43 + .../use-rendered-indicator-state.js.map | 1 + dist/dev/ui/live-button/index.d.ts | 2 + dist/dev/ui/live-button/index.js | 2 + dist/dev/ui/live-button/live-button.d.ts | 31 + dist/dev/ui/live-button/live-button.d.ts.map | 1 + dist/dev/ui/live-button/live-button.js | 96 + dist/dev/ui/live-button/live-button.js.map | 1 + dist/dev/ui/menu/context.d.ts | 30 + dist/dev/ui/menu/context.d.ts.map | 1 + dist/dev/ui/menu/context.js | 44 + dist/dev/ui/menu/context.js.map | 1 + dist/dev/ui/menu/index.d.ts | 3 + dist/dev/ui/menu/index.js | 3 + dist/dev/ui/menu/index.parts.d.ts | 20 + dist/dev/ui/menu/index.parts.d.ts.map | 1 + dist/dev/ui/menu/index.parts.js | 36 + dist/dev/ui/menu/index.parts.js.map | 1 + dist/dev/ui/menu/menu-back.d.ts | 17 + dist/dev/ui/menu/menu-back.d.ts.map | 1 + dist/dev/ui/menu/menu-back.js | 34 + dist/dev/ui/menu/menu-back.js.map | 1 + dist/dev/ui/menu/menu-checkbox-item.d.ts | 20 + dist/dev/ui/menu/menu-checkbox-item.d.ts.map | 1 + dist/dev/ui/menu/menu-checkbox-item.js | 49 + dist/dev/ui/menu/menu-checkbox-item.js.map | 1 + dist/dev/ui/menu/menu-content.d.ts | 13 + dist/dev/ui/menu/menu-content.d.ts.map | 1 + dist/dev/ui/menu/menu-content.js | 316 +++ dist/dev/ui/menu/menu-content.js.map | 1 + dist/dev/ui/menu/menu-group-label.d.ts | 13 + dist/dev/ui/menu/menu-group-label.d.ts.map | 1 + dist/dev/ui/menu/menu-group-label.js | 29 + dist/dev/ui/menu/menu-group-label.js.map | 1 + dist/dev/ui/menu/menu-group.d.ts | 13 + dist/dev/ui/menu/menu-group.d.ts.map | 1 + dist/dev/ui/menu/menu-group.js | 24 + dist/dev/ui/menu/menu-group.js.map | 1 + dist/dev/ui/menu/menu-item-indicator.d.ts | 18 + dist/dev/ui/menu/menu-item-indicator.d.ts.map | 1 + dist/dev/ui/menu/menu-item-indicator.js | 23 + dist/dev/ui/menu/menu-item-indicator.js.map | 1 + .../dev/ui/menu/menu-item-setting-provider.js | 77 + .../ui/menu/menu-item-setting-provider.js.map | 1 + dist/dev/ui/menu/menu-item-type.d.ts | 5 + dist/dev/ui/menu/menu-item-type.d.ts.map | 1 + dist/dev/ui/menu/menu-item-value.d.ts | 12 + dist/dev/ui/menu/menu-item-value.d.ts.map | 1 + dist/dev/ui/menu/menu-item-value.js | 28 + dist/dev/ui/menu/menu-item-value.js.map | 1 + dist/dev/ui/menu/menu-item.d.ts | 21 + dist/dev/ui/menu/menu-item.d.ts.map | 1 + dist/dev/ui/menu/menu-item.js | 74 + dist/dev/ui/menu/menu-item.js.map | 1 + dist/dev/ui/menu/menu-radio-group.d.ts | 18 + dist/dev/ui/menu/menu-radio-group.d.ts.map | 1 + dist/dev/ui/menu/menu-radio-group.js | 30 + dist/dev/ui/menu/menu-radio-group.js.map | 1 + dist/dev/ui/menu/menu-radio-item.d.ts | 18 + dist/dev/ui/menu/menu-radio-item.d.ts.map | 1 + dist/dev/ui/menu/menu-radio-item.js | 56 + dist/dev/ui/menu/menu-radio-item.js.map | 1 + dist/dev/ui/menu/menu-root.d.ts | 20 + dist/dev/ui/menu/menu-root.d.ts.map | 1 + dist/dev/ui/menu/menu-root.js | 141 ++ dist/dev/ui/menu/menu-root.js.map | 1 + dist/dev/ui/menu/menu-separator.d.ts | 13 + dist/dev/ui/menu/menu-separator.d.ts.map | 1 + dist/dev/ui/menu/menu-separator.js | 22 + dist/dev/ui/menu/menu-separator.js.map | 1 + dist/dev/ui/menu/menu-trigger.d.ts | 23 + dist/dev/ui/menu/menu-trigger.d.ts.map | 1 + dist/dev/ui/menu/menu-trigger.js | 180 ++ dist/dev/ui/menu/menu-trigger.js.map | 1 + dist/dev/ui/menu/menu-view.d.ts | 13 + dist/dev/ui/menu/menu-view.d.ts.map | 1 + dist/dev/ui/menu/menu-view.js | 23 + dist/dev/ui/menu/menu-view.js.map | 1 + dist/dev/ui/menu/use-menu-group.js | 31 + dist/dev/ui/menu/use-menu-group.js.map | 1 + dist/dev/ui/mute-button/index.d.ts | 2 + dist/dev/ui/mute-button/index.js | 2 + dist/dev/ui/mute-button/mute-button.d.ts | 13 + dist/dev/ui/mute-button/mute-button.d.ts.map | 1 + dist/dev/ui/mute-button/mute-button.js | 18 + dist/dev/ui/mute-button/mute-button.js.map | 1 + dist/dev/ui/pip-button/index.d.ts | 2 + dist/dev/ui/pip-button/index.js | 2 + dist/dev/ui/pip-button/pip-button.d.ts | 13 + dist/dev/ui/pip-button/pip-button.d.ts.map | 1 + dist/dev/ui/pip-button/pip-button.js | 19 + dist/dev/ui/pip-button/pip-button.js.map | 1 + dist/dev/ui/play-button/index.d.ts | 2 + dist/dev/ui/play-button/index.js | 2 + dist/dev/ui/play-button/play-button.d.ts | 28 + dist/dev/ui/play-button/play-button.d.ts.map | 1 + dist/dev/ui/play-button/play-button.js | 33 + dist/dev/ui/play-button/play-button.js.map | 1 + dist/dev/ui/playback-rate-button/index.d.ts | 2 + dist/dev/ui/playback-rate-button/index.js | 2 + .../playback-rate-button.d.ts | 28 + .../playback-rate-button.d.ts.map | 1 + .../playback-rate-button.js | 33 + .../playback-rate-button.js.map | 1 + dist/dev/ui/playback-rate/index.d.ts | 2 + dist/dev/ui/playback-rate/index.js | 2 + .../use-playback-rate-options.d.ts | 33 + .../use-playback-rate-options.d.ts.map | 1 + .../use-playback-rate-options.js | 43 + .../use-playback-rate-options.js.map | 1 + dist/dev/ui/popover/context.d.ts | 19 + dist/dev/ui/popover/context.d.ts.map | 1 + dist/dev/ui/popover/context.js | 14 + dist/dev/ui/popover/context.js.map | 1 + dist/dev/ui/popover/index.d.ts | 3 + dist/dev/ui/popover/index.js | 3 + dist/dev/ui/popover/index.parts.d.ts | 10 + dist/dev/ui/popover/index.parts.d.ts.map | 1 + dist/dev/ui/popover/index.parts.js | 16 + dist/dev/ui/popover/index.parts.js.map | 1 + dist/dev/ui/popover/popover-arrow.d.ts | 13 + dist/dev/ui/popover/popover-arrow.d.ts.map | 1 + dist/dev/ui/popover/popover-arrow.js | 15 + dist/dev/ui/popover/popover-arrow.js.map | 1 + dist/dev/ui/popover/popover-popup.d.ts | 13 + dist/dev/ui/popover/popover-popup.d.ts.map | 1 + dist/dev/ui/popover/popover-popup.js | 126 ++ dist/dev/ui/popover/popover-popup.js.map | 1 + dist/dev/ui/popover/popover-root.d.ts | 20 + dist/dev/ui/popover/popover-root.d.ts.map | 1 + dist/dev/ui/popover/popover-root.js | 87 + dist/dev/ui/popover/popover-root.js.map | 1 + dist/dev/ui/popover/popover-trigger.d.ts | 13 + dist/dev/ui/popover/popover-trigger.d.ts.map | 1 + dist/dev/ui/popover/popover-trigger.js | 40 + dist/dev/ui/popover/popover-trigger.js.map | 1 + dist/dev/ui/poster/index.d.ts | 2 + dist/dev/ui/poster/index.js | 2 + dist/dev/ui/poster/poster.d.ts | 26 + dist/dev/ui/poster/poster.d.ts.map | 1 + dist/dev/ui/poster/poster.js | 59 + dist/dev/ui/poster/poster.js.map | 1 + dist/dev/ui/quality/index.d.ts | 2 + dist/dev/ui/quality/index.js | 2 + dist/dev/ui/quality/use-quality-options.d.ts | 33 + .../ui/quality/use-quality-options.d.ts.map | 1 + dist/dev/ui/quality/use-quality-options.js | 50 + .../dev/ui/quality/use-quality-options.js.map | 1 + dist/dev/ui/seek-button/index.d.ts | 2 + dist/dev/ui/seek-button/index.js | 2 + dist/dev/ui/seek-button/seek-button.d.ts | 29 + dist/dev/ui/seek-button/seek-button.d.ts.map | 1 + dist/dev/ui/seek-button/seek-button.js | 35 + dist/dev/ui/seek-button/seek-button.js.map | 1 + dist/dev/ui/seek-indicator/context.js | 20 + dist/dev/ui/seek-indicator/context.js.map | 1 + dist/dev/ui/seek-indicator/index.d.ts | 2 + dist/dev/ui/seek-indicator/index.js | 2 + dist/dev/ui/seek-indicator/index.parts.d.ts | 8 + .../ui/seek-indicator/index.parts.d.ts.map | 1 + dist/dev/ui/seek-indicator/index.parts.js | 12 + dist/dev/ui/seek-indicator/index.parts.js.map | 1 + .../seek-indicator/seek-indicator-root.d.ts | 12 + .../seek-indicator-root.d.ts.map | 1 + .../ui/seek-indicator/seek-indicator-root.js | 30 + .../seek-indicator/seek-indicator-root.js.map | 1 + .../seek-indicator/seek-indicator-value.d.ts | 11 + .../seek-indicator-value.d.ts.map | 1 + .../ui/seek-indicator/seek-indicator-value.js | 23 + .../seek-indicator-value.js.map | 1 + dist/dev/ui/slider/context.js | 20 + dist/dev/ui/slider/context.js.map | 1 + dist/dev/ui/slider/index.d.ts | 2 + dist/dev/ui/slider/index.js | 2 + dist/dev/ui/slider/index.parts.d.ts | 14 + dist/dev/ui/slider/index.parts.d.ts.map | 1 + dist/dev/ui/slider/index.parts.js | 24 + dist/dev/ui/slider/index.parts.js.map | 1 + dist/dev/ui/slider/slider-buffer.d.ts | 12 + dist/dev/ui/slider/slider-buffer.d.ts.map | 1 + dist/dev/ui/slider/slider-buffer.js | 14 + dist/dev/ui/slider/slider-buffer.js.map | 1 + dist/dev/ui/slider/slider-fill.d.ts | 12 + dist/dev/ui/slider/slider-fill.d.ts.map | 1 + dist/dev/ui/slider/slider-fill.js | 14 + dist/dev/ui/slider/slider-fill.js.map | 1 + dist/dev/ui/slider/slider-preview.d.ts | 16 + dist/dev/ui/slider/slider-preview.d.ts.map | 1 + dist/dev/ui/slider/slider-preview.js | 38 + dist/dev/ui/slider/slider-preview.js.map | 1 + dist/dev/ui/slider/slider-root.d.ts | 17 + dist/dev/ui/slider/slider-root.d.ts.map | 1 + dist/dev/ui/slider/slider-root.js | 81 + dist/dev/ui/slider/slider-root.js.map | 1 + dist/dev/ui/slider/slider-thumb.d.ts | 12 + dist/dev/ui/slider/slider-thumb.d.ts.map | 1 + dist/dev/ui/slider/slider-thumb.js | 30 + dist/dev/ui/slider/slider-thumb.js.map | 1 + dist/dev/ui/slider/slider-thumbnail.d.ts | 12 + dist/dev/ui/slider/slider-thumbnail.d.ts.map | 1 + dist/dev/ui/slider/slider-thumbnail.js | 18 + dist/dev/ui/slider/slider-thumbnail.js.map | 1 + dist/dev/ui/slider/slider-track.d.ts | 12 + dist/dev/ui/slider/slider-track.d.ts.map | 1 + dist/dev/ui/slider/slider-track.js | 14 + dist/dev/ui/slider/slider-track.js.map | 1 + dist/dev/ui/slider/slider-value.d.ts | 17 + dist/dev/ui/slider/slider-value.d.ts.map | 1 + dist/dev/ui/slider/slider-value.js | 30 + dist/dev/ui/slider/slider-value.js.map | 1 + dist/dev/ui/status-announcer/index.d.ts | 2 + dist/dev/ui/status-announcer/index.js | 2 + .../ui/status-announcer/status-announcer.d.ts | 12 + .../status-announcer.d.ts.map | 1 + .../ui/status-announcer/status-announcer.js | 45 + .../status-announcer/status-announcer.js.map | 1 + dist/dev/ui/status-indicator/context.js | 20 + dist/dev/ui/status-indicator/context.js.map | 1 + dist/dev/ui/status-indicator/index.d.ts | 2 + dist/dev/ui/status-indicator/index.js | 2 + dist/dev/ui/status-indicator/index.parts.d.ts | 8 + .../ui/status-indicator/index.parts.d.ts.map | 1 + dist/dev/ui/status-indicator/index.parts.js | 12 + .../ui/status-indicator/index.parts.js.map | 1 + .../status-indicator-root.d.ts | 12 + .../status-indicator-root.d.ts.map | 1 + .../status-indicator/status-indicator-root.js | 35 + .../status-indicator-root.js.map | 1 + .../status-indicator-value.d.ts | 11 + .../status-indicator-value.d.ts.map | 1 + .../status-indicator-value.js | 23 + .../status-indicator-value.js.map | 1 + dist/dev/ui/thumbnail/index.d.ts | 2 + dist/dev/ui/thumbnail/index.js | 2 + dist/dev/ui/thumbnail/thumbnail.d.ts | 15 + dist/dev/ui/thumbnail/thumbnail.d.ts.map | 1 + dist/dev/ui/thumbnail/thumbnail.js | 82 + dist/dev/ui/thumbnail/thumbnail.js.map | 1 + dist/dev/ui/time-slider/index.d.ts | 2 + dist/dev/ui/time-slider/index.js | 2 + dist/dev/ui/time-slider/index.parts.d.ts | 14 + dist/dev/ui/time-slider/index.parts.d.ts.map | 1 + dist/dev/ui/time-slider/index.parts.js | 22 + dist/dev/ui/time-slider/index.parts.js.map | 1 + dist/dev/ui/time-slider/time-slider-root.d.ts | 15 + .../ui/time-slider/time-slider-root.d.ts.map | 1 + dist/dev/ui/time-slider/time-slider-root.js | 125 ++ .../ui/time-slider/time-slider-root.js.map | 1 + dist/dev/ui/time/index.d.ts | 2 + dist/dev/ui/time/index.js | 2 + dist/dev/ui/time/index.parts.d.ts | 9 + dist/dev/ui/time/index.parts.d.ts.map | 1 + dist/dev/ui/time/index.parts.js | 14 + dist/dev/ui/time/index.parts.js.map | 1 + dist/dev/ui/time/time-group.d.ts | 27 + dist/dev/ui/time/time-group.d.ts.map | 1 + dist/dev/ui/time/time-group.js | 32 + dist/dev/ui/time/time-group.js.map | 1 + dist/dev/ui/time/time-separator.d.ts | 24 + dist/dev/ui/time/time-separator.d.ts.map | 1 + dist/dev/ui/time/time-separator.js | 32 + dist/dev/ui/time/time-separator.js.map | 1 + dist/dev/ui/time/time-value.d.ts | 22 + dist/dev/ui/time/time-value.d.ts.map | 1 + dist/dev/ui/time/time-value.js | 92 + dist/dev/ui/time/time-value.js.map | 1 + dist/dev/ui/tooltip/context.d.ts | 26 + dist/dev/ui/tooltip/context.d.ts.map | 1 + dist/dev/ui/tooltip/context.js | 17 + dist/dev/ui/tooltip/context.js.map | 1 + dist/dev/ui/tooltip/group-context.js | 13 + dist/dev/ui/tooltip/group-context.js.map | 1 + dist/dev/ui/tooltip/index.d.ts | 3 + dist/dev/ui/tooltip/index.js | 3 + dist/dev/ui/tooltip/index.parts.d.ts | 13 + dist/dev/ui/tooltip/index.parts.d.ts.map | 1 + dist/dev/ui/tooltip/index.parts.js | 22 + dist/dev/ui/tooltip/index.parts.js.map | 1 + dist/dev/ui/tooltip/tooltip-arrow.d.ts | 13 + dist/dev/ui/tooltip/tooltip-arrow.d.ts.map | 1 + dist/dev/ui/tooltip/tooltip-arrow.js | 15 + dist/dev/ui/tooltip/tooltip-arrow.js.map | 1 + dist/dev/ui/tooltip/tooltip-label.d.ts | 13 + dist/dev/ui/tooltip/tooltip-label.d.ts.map | 1 + dist/dev/ui/tooltip/tooltip-label.js | 24 + dist/dev/ui/tooltip/tooltip-label.js.map | 1 + dist/dev/ui/tooltip/tooltip-popup.d.ts | 13 + dist/dev/ui/tooltip/tooltip-popup.d.ts.map | 1 + dist/dev/ui/tooltip/tooltip-popup.js | 132 ++ dist/dev/ui/tooltip/tooltip-popup.js.map | 1 + dist/dev/ui/tooltip/tooltip-provider.d.ts | 13 + dist/dev/ui/tooltip/tooltip-provider.d.ts.map | 1 + dist/dev/ui/tooltip/tooltip-provider.js | 26 + dist/dev/ui/tooltip/tooltip-provider.js.map | 1 + dist/dev/ui/tooltip/tooltip-root.d.ts | 20 + dist/dev/ui/tooltip/tooltip-root.d.ts.map | 1 + dist/dev/ui/tooltip/tooltip-root.js | 89 + dist/dev/ui/tooltip/tooltip-root.js.map | 1 + dist/dev/ui/tooltip/tooltip-shortcut.d.ts | 13 + dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map | 1 + dist/dev/ui/tooltip/tooltip-shortcut.js | 25 + dist/dev/ui/tooltip/tooltip-shortcut.js.map | 1 + dist/dev/ui/tooltip/tooltip-trigger.d.ts | 13 + dist/dev/ui/tooltip/tooltip-trigger.d.ts.map | 1 + dist/dev/ui/tooltip/tooltip-trigger.js | 37 + dist/dev/ui/tooltip/tooltip-trigger.js.map | 1 + dist/dev/ui/volume-indicator/context.js | 20 + dist/dev/ui/volume-indicator/context.js.map | 1 + dist/dev/ui/volume-indicator/index.d.ts | 2 + dist/dev/ui/volume-indicator/index.js | 2 + dist/dev/ui/volume-indicator/index.parts.d.ts | 9 + .../ui/volume-indicator/index.parts.d.ts.map | 1 + dist/dev/ui/volume-indicator/index.parts.js | 14 + .../ui/volume-indicator/index.parts.js.map | 1 + .../volume-indicator-fill.d.ts | 11 + .../volume-indicator-fill.d.ts.map | 1 + .../volume-indicator/volume-indicator-fill.js | 36 + .../volume-indicator-fill.js.map | 1 + .../volume-indicator-root.d.ts | 12 + .../volume-indicator-root.d.ts.map | 1 + .../volume-indicator/volume-indicator-root.js | 34 + .../volume-indicator-root.js.map | 1 + .../volume-indicator-value.d.ts | 11 + .../volume-indicator-value.d.ts.map | 1 + .../volume-indicator-value.js | 23 + .../volume-indicator-value.js.map | 1 + dist/dev/ui/volume-slider/index.d.ts | 2 + dist/dev/ui/volume-slider/index.js | 2 + dist/dev/ui/volume-slider/index.parts.d.ts | 13 + .../dev/ui/volume-slider/index.parts.d.ts.map | 1 + dist/dev/ui/volume-slider/index.parts.js | 20 + dist/dev/ui/volume-slider/index.parts.js.map | 1 + .../ui/volume-slider/volume-slider-root.d.ts | 15 + .../volume-slider/volume-slider-root.d.ts.map | 1 + .../ui/volume-slider/volume-slider-root.js | 120 + .../volume-slider/volume-slider-root.js.map | 1 + dist/dev/utils/merge-props.d.ts | 25 + dist/dev/utils/merge-props.d.ts.map | 1 + dist/dev/utils/merge-props.js | 84 + dist/dev/utils/merge-props.js.map | 1 + dist/dev/utils/types.d.ts | 29 + dist/dev/utils/types.d.ts.map | 1 + dist/dev/utils/use-attach-iframe.js | 14 + dist/dev/utils/use-attach-iframe.js.map | 1 + dist/dev/utils/use-attach-media.d.ts | 7 + dist/dev/utils/use-attach-media.d.ts.map | 1 + dist/dev/utils/use-attach-media.js | 14 + dist/dev/utils/use-attach-media.js.map | 1 + dist/dev/utils/use-composed-refs.d.ts | 28 + dist/dev/utils/use-composed-refs.d.ts.map | 1 + dist/dev/utils/use-composed-refs.js | 55 + dist/dev/utils/use-composed-refs.js.map | 1 + dist/dev/utils/use-destroy.d.ts | 22 + dist/dev/utils/use-destroy.d.ts.map | 1 + dist/dev/utils/use-destroy.js | 39 + dist/dev/utils/use-destroy.js.map | 1 + dist/dev/utils/use-force-render.js | 11 + dist/dev/utils/use-force-render.js.map | 1 + dist/dev/utils/use-latest-ref.d.ts | 18 + dist/dev/utils/use-latest-ref.d.ts.map | 1 + dist/dev/utils/use-latest-ref.js | 18 + dist/dev/utils/use-latest-ref.js.map | 1 + dist/dev/utils/use-media-component.d.ts | 17 + dist/dev/utils/use-media-component.d.ts.map | 1 + dist/dev/utils/use-media-component.js | 29 + dist/dev/utils/use-media-component.js.map | 1 + dist/dev/utils/use-media-instance.d.ts | 20 + dist/dev/utils/use-media-instance.d.ts.map | 1 + dist/dev/utils/use-media-instance.js | 30 + dist/dev/utils/use-media-instance.js.map | 1 + dist/dev/utils/use-render.d.ts | 44 + dist/dev/utils/use-render.d.ts.map | 1 + dist/dev/utils/use-render.js | 73 + dist/dev/utils/use-render.js.map | 1 + dist/dev/utils/use-safe-id.js | 20 + dist/dev/utils/use-safe-id.js.map | 1 + dist/dev/utils/use-sync-props.js | 23 + dist/dev/utils/use-sync-props.js.map | 1 + package.json | 131 ++ 1955 files changed, 60543 insertions(+) create mode 100644 README.md create mode 100644 dist/default/_virtual/_rolldown/runtime.js create mode 100644 dist/default/i18n/context.js create mode 100644 dist/default/i18n/context.js.map create mode 100644 dist/default/i18n/create-i18n.js create mode 100644 dist/default/i18n/create-i18n.js.map create mode 100644 dist/default/i18n/get-provider-root-props.js create mode 100644 dist/default/i18n/get-provider-root-props.js.map create mode 100644 dist/default/i18n/index.js create mode 100644 dist/default/i18n/locales/all.js create mode 100644 dist/default/i18n/locales/all/register.js create mode 100644 dist/default/i18n/locales/all/register.js.map create mode 100644 dist/default/i18n/locales/ar.js create mode 100644 dist/default/i18n/locales/ar/register.js create mode 100644 dist/default/i18n/locales/ar/register.js.map create mode 100644 dist/default/i18n/locales/az.js create mode 100644 dist/default/i18n/locales/az/register.js create mode 100644 dist/default/i18n/locales/az/register.js.map create mode 100644 dist/default/i18n/locales/bg.js create mode 100644 dist/default/i18n/locales/bg/register.js create mode 100644 dist/default/i18n/locales/bg/register.js.map create mode 100644 dist/default/i18n/locales/bn.js create mode 100644 dist/default/i18n/locales/bn/register.js create mode 100644 dist/default/i18n/locales/bn/register.js.map create mode 100644 dist/default/i18n/locales/bs.js create mode 100644 dist/default/i18n/locales/bs/register.js create mode 100644 dist/default/i18n/locales/bs/register.js.map create mode 100644 dist/default/i18n/locales/ca.js create mode 100644 dist/default/i18n/locales/ca/register.js create mode 100644 dist/default/i18n/locales/ca/register.js.map create mode 100644 dist/default/i18n/locales/cs.js create mode 100644 dist/default/i18n/locales/cs/register.js create mode 100644 dist/default/i18n/locales/cs/register.js.map create mode 100644 dist/default/i18n/locales/cy.js create mode 100644 dist/default/i18n/locales/cy/register.js create mode 100644 dist/default/i18n/locales/cy/register.js.map create mode 100644 dist/default/i18n/locales/da.js create mode 100644 dist/default/i18n/locales/da/register.js create mode 100644 dist/default/i18n/locales/da/register.js.map create mode 100644 dist/default/i18n/locales/de.js create mode 100644 dist/default/i18n/locales/de/register.js create mode 100644 dist/default/i18n/locales/de/register.js.map create mode 100644 dist/default/i18n/locales/el.js create mode 100644 dist/default/i18n/locales/el/register.js create mode 100644 dist/default/i18n/locales/el/register.js.map create mode 100644 dist/default/i18n/locales/en.js create mode 100644 dist/default/i18n/locales/en/register.js create mode 100644 dist/default/i18n/locales/en/register.js.map create mode 100644 dist/default/i18n/locales/es.js create mode 100644 dist/default/i18n/locales/es/register.js create mode 100644 dist/default/i18n/locales/es/register.js.map create mode 100644 dist/default/i18n/locales/et.js create mode 100644 dist/default/i18n/locales/et/register.js create mode 100644 dist/default/i18n/locales/et/register.js.map create mode 100644 dist/default/i18n/locales/eu.js create mode 100644 dist/default/i18n/locales/eu/register.js create mode 100644 dist/default/i18n/locales/eu/register.js.map create mode 100644 dist/default/i18n/locales/fa.js create mode 100644 dist/default/i18n/locales/fa/register.js create mode 100644 dist/default/i18n/locales/fa/register.js.map create mode 100644 dist/default/i18n/locales/fi.js create mode 100644 dist/default/i18n/locales/fi/register.js create mode 100644 dist/default/i18n/locales/fi/register.js.map create mode 100644 dist/default/i18n/locales/fr.js create mode 100644 dist/default/i18n/locales/fr/register.js create mode 100644 dist/default/i18n/locales/fr/register.js.map create mode 100644 dist/default/i18n/locales/gd.js create mode 100644 dist/default/i18n/locales/gd/register.js create mode 100644 dist/default/i18n/locales/gd/register.js.map create mode 100644 dist/default/i18n/locales/gl.js create mode 100644 dist/default/i18n/locales/gl/register.js create mode 100644 dist/default/i18n/locales/gl/register.js.map create mode 100644 dist/default/i18n/locales/he.js create mode 100644 dist/default/i18n/locales/he/register.js create mode 100644 dist/default/i18n/locales/he/register.js.map create mode 100644 dist/default/i18n/locales/hi.js create mode 100644 dist/default/i18n/locales/hi/register.js create mode 100644 dist/default/i18n/locales/hi/register.js.map create mode 100644 dist/default/i18n/locales/hr.js create mode 100644 dist/default/i18n/locales/hr/register.js create mode 100644 dist/default/i18n/locales/hr/register.js.map create mode 100644 dist/default/i18n/locales/hu.js create mode 100644 dist/default/i18n/locales/hu/register.js create mode 100644 dist/default/i18n/locales/hu/register.js.map create mode 100644 dist/default/i18n/locales/it.js create mode 100644 dist/default/i18n/locales/it/register.js create mode 100644 dist/default/i18n/locales/it/register.js.map create mode 100644 dist/default/i18n/locales/ja.js create mode 100644 dist/default/i18n/locales/ja/register.js create mode 100644 dist/default/i18n/locales/ja/register.js.map create mode 100644 dist/default/i18n/locales/ko.js create mode 100644 dist/default/i18n/locales/ko/register.js create mode 100644 dist/default/i18n/locales/ko/register.js.map create mode 100644 dist/default/i18n/locales/lv.js create mode 100644 dist/default/i18n/locales/lv/register.js create mode 100644 dist/default/i18n/locales/lv/register.js.map create mode 100644 dist/default/i18n/locales/mr.js create mode 100644 dist/default/i18n/locales/mr/register.js create mode 100644 dist/default/i18n/locales/mr/register.js.map create mode 100644 dist/default/i18n/locales/nb.js create mode 100644 dist/default/i18n/locales/nb/register.js create mode 100644 dist/default/i18n/locales/nb/register.js.map create mode 100644 dist/default/i18n/locales/ne.js create mode 100644 dist/default/i18n/locales/ne/register.js create mode 100644 dist/default/i18n/locales/ne/register.js.map create mode 100644 dist/default/i18n/locales/nl.js create mode 100644 dist/default/i18n/locales/nl/register.js create mode 100644 dist/default/i18n/locales/nl/register.js.map create mode 100644 dist/default/i18n/locales/nn.js create mode 100644 dist/default/i18n/locales/nn/register.js create mode 100644 dist/default/i18n/locales/nn/register.js.map create mode 100644 dist/default/i18n/locales/oc.js create mode 100644 dist/default/i18n/locales/oc/register.js create mode 100644 dist/default/i18n/locales/oc/register.js.map create mode 100644 dist/default/i18n/locales/pl.js create mode 100644 dist/default/i18n/locales/pl/register.js create mode 100644 dist/default/i18n/locales/pl/register.js.map create mode 100644 dist/default/i18n/locales/pt-BR.js create mode 100644 dist/default/i18n/locales/pt-BR/register.js create mode 100644 dist/default/i18n/locales/pt-BR/register.js.map create mode 100644 dist/default/i18n/locales/pt-PT.js create mode 100644 dist/default/i18n/locales/pt-PT/register.js create mode 100644 dist/default/i18n/locales/pt-PT/register.js.map create mode 100644 dist/default/i18n/locales/pt.js create mode 100644 dist/default/i18n/locales/pt/register.js create mode 100644 dist/default/i18n/locales/pt/register.js.map create mode 100644 dist/default/i18n/locales/ro.js create mode 100644 dist/default/i18n/locales/ro/register.js create mode 100644 dist/default/i18n/locales/ro/register.js.map create mode 100644 dist/default/i18n/locales/ru.js create mode 100644 dist/default/i18n/locales/ru/register.js create mode 100644 dist/default/i18n/locales/ru/register.js.map create mode 100644 dist/default/i18n/locales/sk.js create mode 100644 dist/default/i18n/locales/sk/register.js create mode 100644 dist/default/i18n/locales/sk/register.js.map create mode 100644 dist/default/i18n/locales/sl.js create mode 100644 dist/default/i18n/locales/sl/register.js create mode 100644 dist/default/i18n/locales/sl/register.js.map create mode 100644 dist/default/i18n/locales/sr.js create mode 100644 dist/default/i18n/locales/sr/register.js create mode 100644 dist/default/i18n/locales/sr/register.js.map create mode 100644 dist/default/i18n/locales/sv.js create mode 100644 dist/default/i18n/locales/sv/register.js create mode 100644 dist/default/i18n/locales/sv/register.js.map create mode 100644 dist/default/i18n/locales/te.js create mode 100644 dist/default/i18n/locales/te/register.js create mode 100644 dist/default/i18n/locales/te/register.js.map create mode 100644 dist/default/i18n/locales/th.js create mode 100644 dist/default/i18n/locales/th/register.js create mode 100644 dist/default/i18n/locales/th/register.js.map create mode 100644 dist/default/i18n/locales/tr.js create mode 100644 dist/default/i18n/locales/tr/register.js create mode 100644 dist/default/i18n/locales/tr/register.js.map create mode 100644 dist/default/i18n/locales/uk.js create mode 100644 dist/default/i18n/locales/uk/register.js create mode 100644 dist/default/i18n/locales/uk/register.js.map create mode 100644 dist/default/i18n/locales/vi.js create mode 100644 dist/default/i18n/locales/vi/register.js create mode 100644 dist/default/i18n/locales/vi/register.js.map create mode 100644 dist/default/i18n/locales/zh-CN.js create mode 100644 dist/default/i18n/locales/zh-CN/register.js create mode 100644 dist/default/i18n/locales/zh-CN/register.js.map create mode 100644 dist/default/i18n/locales/zh-TW.js create mode 100644 dist/default/i18n/locales/zh-TW/register.js create mode 100644 dist/default/i18n/locales/zh-TW/register.js.map create mode 100644 dist/default/i18n/locales/zh.js create mode 100644 dist/default/i18n/locales/zh/register.js create mode 100644 dist/default/i18n/locales/zh/register.js.map create mode 100644 dist/default/i18n/use-ambient-lang.js create mode 100644 dist/default/i18n/use-ambient-lang.js.map create mode 100644 dist/default/i18n/use-lang-root-element.js create mode 100644 dist/default/i18n/use-lang-root-element.js.map create mode 100644 dist/default/i18n/use-lazy-translations.js create mode 100644 dist/default/i18n/use-lazy-translations.js.map create mode 100644 dist/default/i18n/use-locale-root-notifications.js create mode 100644 dist/default/i18n/use-locale-root-notifications.js.map create mode 100644 dist/default/i18n/use-merged-translations.js create mode 100644 dist/default/i18n/use-merged-translations.js.map create mode 100644 dist/default/i18n/use-registry-epoch.js create mode 100644 dist/default/i18n/use-registry-epoch.js.map create mode 100644 dist/default/icons/dist/react/default/airplay-enter.js create mode 100644 dist/default/icons/dist/react/default/airplay-enter.js.map create mode 100644 dist/default/icons/dist/react/default/airplay-exit.js create mode 100644 dist/default/icons/dist/react/default/airplay-exit.js.map create mode 100644 dist/default/icons/dist/react/default/captions-off.js create mode 100644 dist/default/icons/dist/react/default/captions-off.js.map create mode 100644 dist/default/icons/dist/react/default/captions-on.js create mode 100644 dist/default/icons/dist/react/default/captions-on.js.map create mode 100644 dist/default/icons/dist/react/default/cast-enter.js create mode 100644 dist/default/icons/dist/react/default/cast-enter.js.map create mode 100644 dist/default/icons/dist/react/default/cast-exit.js create mode 100644 dist/default/icons/dist/react/default/cast-exit.js.map create mode 100644 dist/default/icons/dist/react/default/check.js create mode 100644 dist/default/icons/dist/react/default/check.js.map create mode 100644 dist/default/icons/dist/react/default/chevron.js create mode 100644 dist/default/icons/dist/react/default/chevron.js.map create mode 100644 dist/default/icons/dist/react/default/fullscreen-enter.js create mode 100644 dist/default/icons/dist/react/default/fullscreen-enter.js.map create mode 100644 dist/default/icons/dist/react/default/fullscreen-exit.js create mode 100644 dist/default/icons/dist/react/default/fullscreen-exit.js.map create mode 100644 dist/default/icons/dist/react/default/gear.js create mode 100644 dist/default/icons/dist/react/default/gear.js.map create mode 100644 dist/default/icons/dist/react/default/pause.js create mode 100644 dist/default/icons/dist/react/default/pause.js.map create mode 100644 dist/default/icons/dist/react/default/pip-enter.js create mode 100644 dist/default/icons/dist/react/default/pip-enter.js.map create mode 100644 dist/default/icons/dist/react/default/pip-exit.js create mode 100644 dist/default/icons/dist/react/default/pip-exit.js.map create mode 100644 dist/default/icons/dist/react/default/play.js create mode 100644 dist/default/icons/dist/react/default/play.js.map create mode 100644 dist/default/icons/dist/react/default/quality.js create mode 100644 dist/default/icons/dist/react/default/quality.js.map create mode 100644 dist/default/icons/dist/react/default/restart.js create mode 100644 dist/default/icons/dist/react/default/restart.js.map create mode 100644 dist/default/icons/dist/react/default/seek.js create mode 100644 dist/default/icons/dist/react/default/seek.js.map create mode 100644 dist/default/icons/dist/react/default/speech.js create mode 100644 dist/default/icons/dist/react/default/speech.js.map create mode 100644 dist/default/icons/dist/react/default/speed.js create mode 100644 dist/default/icons/dist/react/default/speed.js.map create mode 100644 dist/default/icons/dist/react/default/spinner.js create mode 100644 dist/default/icons/dist/react/default/spinner.js.map create mode 100644 dist/default/icons/dist/react/default/switches.js create mode 100644 dist/default/icons/dist/react/default/switches.js.map create mode 100644 dist/default/icons/dist/react/default/volume-high.js create mode 100644 dist/default/icons/dist/react/default/volume-high.js.map create mode 100644 dist/default/icons/dist/react/default/volume-low.js create mode 100644 dist/default/icons/dist/react/default/volume-low.js.map create mode 100644 dist/default/icons/dist/react/default/volume-off.js create mode 100644 dist/default/icons/dist/react/default/volume-off.js.map create mode 100644 dist/default/icons/dist/react/minimal/airplay-enter.js create mode 100644 dist/default/icons/dist/react/minimal/airplay-enter.js.map create mode 100644 dist/default/icons/dist/react/minimal/airplay-exit.js create mode 100644 dist/default/icons/dist/react/minimal/airplay-exit.js.map create mode 100644 dist/default/icons/dist/react/minimal/captions-off.js create mode 100644 dist/default/icons/dist/react/minimal/captions-off.js.map create mode 100644 dist/default/icons/dist/react/minimal/captions-on.js create mode 100644 dist/default/icons/dist/react/minimal/captions-on.js.map create mode 100644 dist/default/icons/dist/react/minimal/cast-enter.js create mode 100644 dist/default/icons/dist/react/minimal/cast-enter.js.map create mode 100644 dist/default/icons/dist/react/minimal/cast-exit.js create mode 100644 dist/default/icons/dist/react/minimal/cast-exit.js.map create mode 100644 dist/default/icons/dist/react/minimal/check.js create mode 100644 dist/default/icons/dist/react/minimal/check.js.map create mode 100644 dist/default/icons/dist/react/minimal/chevron.js create mode 100644 dist/default/icons/dist/react/minimal/chevron.js.map create mode 100644 dist/default/icons/dist/react/minimal/fullscreen-enter.js create mode 100644 dist/default/icons/dist/react/minimal/fullscreen-enter.js.map create mode 100644 dist/default/icons/dist/react/minimal/fullscreen-exit.js create mode 100644 dist/default/icons/dist/react/minimal/fullscreen-exit.js.map create mode 100644 dist/default/icons/dist/react/minimal/gear.js create mode 100644 dist/default/icons/dist/react/minimal/gear.js.map create mode 100644 dist/default/icons/dist/react/minimal/pause.js create mode 100644 dist/default/icons/dist/react/minimal/pause.js.map create mode 100644 dist/default/icons/dist/react/minimal/pip-enter.js create mode 100644 dist/default/icons/dist/react/minimal/pip-enter.js.map create mode 100644 dist/default/icons/dist/react/minimal/pip-exit.js create mode 100644 dist/default/icons/dist/react/minimal/pip-exit.js.map create mode 100644 dist/default/icons/dist/react/minimal/play.js create mode 100644 dist/default/icons/dist/react/minimal/play.js.map create mode 100644 dist/default/icons/dist/react/minimal/quality.js create mode 100644 dist/default/icons/dist/react/minimal/quality.js.map create mode 100644 dist/default/icons/dist/react/minimal/restart.js create mode 100644 dist/default/icons/dist/react/minimal/restart.js.map create mode 100644 dist/default/icons/dist/react/minimal/seek.js create mode 100644 dist/default/icons/dist/react/minimal/seek.js.map create mode 100644 dist/default/icons/dist/react/minimal/speech.js create mode 100644 dist/default/icons/dist/react/minimal/speech.js.map create mode 100644 dist/default/icons/dist/react/minimal/speed.js create mode 100644 dist/default/icons/dist/react/minimal/speed.js.map create mode 100644 dist/default/icons/dist/react/minimal/spinner.js create mode 100644 dist/default/icons/dist/react/minimal/spinner.js.map create mode 100644 dist/default/icons/dist/react/minimal/switches.js create mode 100644 dist/default/icons/dist/react/minimal/switches.js.map create mode 100644 dist/default/icons/dist/react/minimal/volume-high.js create mode 100644 dist/default/icons/dist/react/minimal/volume-high.js.map create mode 100644 dist/default/icons/dist/react/minimal/volume-low.js create mode 100644 dist/default/icons/dist/react/minimal/volume-low.js.map create mode 100644 dist/default/icons/dist/react/minimal/volume-off.js create mode 100644 dist/default/icons/dist/react/minimal/volume-off.js.map create mode 100644 dist/default/icons/index.js create mode 100644 dist/default/icons/minimal/index.js create mode 100644 dist/default/index.js create mode 100644 dist/default/media/audio.js create mode 100644 dist/default/media/audio.js.map create mode 100644 dist/default/media/background-video/index.js create mode 100644 dist/default/media/background-video/media.js create mode 100644 dist/default/media/background-video/media.js.map create mode 100644 dist/default/media/dash-video/index.js create mode 100644 dist/default/media/dash-video/media.js create mode 100644 dist/default/media/dash-video/media.js.map create mode 100644 dist/default/media/google-cast/google-cast.js create mode 100644 dist/default/media/google-cast/google-cast.js.map create mode 100644 dist/default/media/google-cast/index.js create mode 100644 dist/default/media/hlsjs-video/index.js create mode 100644 dist/default/media/hlsjs-video/media.js create mode 100644 dist/default/media/hlsjs-video/media.js.map create mode 100644 dist/default/media/mux-audio/index.js create mode 100644 dist/default/media/mux-audio/media.js create mode 100644 dist/default/media/mux-audio/media.js.map create mode 100644 dist/default/media/mux-data/index.js create mode 100644 dist/default/media/mux-data/mux-data.js create mode 100644 dist/default/media/mux-data/mux-data.js.map create mode 100644 dist/default/media/mux-video/index.js create mode 100644 dist/default/media/mux-video/media.js create mode 100644 dist/default/media/mux-video/media.js.map create mode 100644 dist/default/media/native-hls-video/index.js create mode 100644 dist/default/media/native-hls-video/media.js create mode 100644 dist/default/media/native-hls-video/media.js.map create mode 100644 dist/default/media/simple-hls-audio-only/index.js create mode 100644 dist/default/media/simple-hls-audio-only/media.js create mode 100644 dist/default/media/simple-hls-audio-only/media.js.map create mode 100644 dist/default/media/simple-hls-video/index.js create mode 100644 dist/default/media/simple-hls-video/media.js create mode 100644 dist/default/media/simple-hls-video/media.js.map create mode 100644 dist/default/media/video.js create mode 100644 dist/default/media/video.js.map create mode 100644 dist/default/media/vimeo-video/index.js create mode 100644 dist/default/media/vimeo-video/media.js create mode 100644 dist/default/media/vimeo-video/media.js.map create mode 100644 dist/default/player/container.js create mode 100644 dist/default/player/container.js.map create mode 100644 dist/default/player/context.js create mode 100644 dist/default/player/context.js.map create mode 100644 dist/default/player/create-player.js create mode 100644 dist/default/player/create-player.js.map create mode 100644 dist/default/presets/audio/index.js create mode 100644 dist/default/presets/audio/minimal-skin.css create mode 100644 dist/default/presets/audio/minimal-skin.js create mode 100644 dist/default/presets/audio/minimal-skin.js.map create mode 100644 dist/default/presets/audio/minimal-skin.tailwind.js create mode 100644 dist/default/presets/audio/minimal-skin.tailwind.js.map create mode 100644 dist/default/presets/audio/skin.css create mode 100644 dist/default/presets/audio/skin.js create mode 100644 dist/default/presets/audio/skin.js.map create mode 100644 dist/default/presets/audio/skin.tailwind.js create mode 100644 dist/default/presets/audio/skin.tailwind.js.map create mode 100644 dist/default/presets/background/index.js create mode 100644 dist/default/presets/background/skin.css create mode 100644 dist/default/presets/background/skin.js create mode 100644 dist/default/presets/background/skin.js.map create mode 100644 dist/default/presets/live-audio/index.js create mode 100644 dist/default/presets/live-audio/minimal-skin.css create mode 100644 dist/default/presets/live-audio/minimal-skin.js create mode 100644 dist/default/presets/live-audio/minimal-skin.js.map create mode 100644 dist/default/presets/live-audio/minimal-skin.tailwind.js create mode 100644 dist/default/presets/live-audio/minimal-skin.tailwind.js.map create mode 100644 dist/default/presets/live-audio/skin.css create mode 100644 dist/default/presets/live-audio/skin.js create mode 100644 dist/default/presets/live-audio/skin.js.map create mode 100644 dist/default/presets/live-audio/skin.tailwind.js create mode 100644 dist/default/presets/live-audio/skin.tailwind.js.map create mode 100644 dist/default/presets/live-video/index.js create mode 100644 dist/default/presets/live-video/minimal-skin.css create mode 100644 dist/default/presets/live-video/minimal-skin.js create mode 100644 dist/default/presets/live-video/minimal-skin.js.map create mode 100644 dist/default/presets/live-video/minimal-skin.tailwind.js create mode 100644 dist/default/presets/live-video/minimal-skin.tailwind.js.map create mode 100644 dist/default/presets/live-video/skin.css create mode 100644 dist/default/presets/live-video/skin.js create mode 100644 dist/default/presets/live-video/skin.js.map create mode 100644 dist/default/presets/live-video/skin.tailwind.js create mode 100644 dist/default/presets/live-video/skin.tailwind.js.map create mode 100644 dist/default/presets/video/index.js create mode 100644 dist/default/presets/video/minimal-skin.css create mode 100644 dist/default/presets/video/minimal-skin.js create mode 100644 dist/default/presets/video/minimal-skin.js.map create mode 100644 dist/default/presets/video/minimal-skin.tailwind.js create mode 100644 dist/default/presets/video/minimal-skin.tailwind.js.map create mode 100644 dist/default/presets/video/skin.css create mode 100644 dist/default/presets/video/skin.js create mode 100644 dist/default/presets/video/skin.js.map create mode 100644 dist/default/presets/video/skin.tailwind.js create mode 100644 dist/default/presets/video/skin.tailwind.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/audio.tailwind.js create mode 100644 dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/badge.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/badge.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/buffering.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/buffering.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/button-group.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/button-group.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/button.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/button.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/controls.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/controls.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/error.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/error.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/icon.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/icon.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/input-feedback.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/input-feedback.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/menu.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/menu.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/overlay.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/overlay.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/playback-rate.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/popup.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/popup.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/poster.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/poster.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/reset.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/reset.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/root.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/root.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/seek.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/seek.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/slider.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/slider.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/surface.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/surface.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/thumbnail.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/components/time.js create mode 100644 dist/default/skins/dist/default/default/tailwind/components/time.js.map create mode 100644 dist/default/skins/dist/default/default/tailwind/video.tailwind.js create mode 100644 dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/badge.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/badge.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/buffering.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/button-group.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/button.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/button.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/controls.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/error.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/error.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/icon.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/menu.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/overlay.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/popup.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/poster.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/reset.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/reset.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/root.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/root.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/seek.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/slider.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/time.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/components/time.js.map create mode 100644 dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js create mode 100644 dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map create mode 100644 dist/default/skins/dist/default/shared/tailwind/icon-state.js create mode 100644 dist/default/skins/dist/default/shared/tailwind/icon-state.js.map create mode 100644 dist/default/tailwind.css create mode 100644 dist/default/ui/airplay-button/airplay-button.js create mode 100644 dist/default/ui/airplay-button/airplay-button.js.map create mode 100644 dist/default/ui/airplay-button/index.js create mode 100644 dist/default/ui/alert-dialog/alert-dialog-close.js create mode 100644 dist/default/ui/alert-dialog/alert-dialog-close.js.map create mode 100644 dist/default/ui/alert-dialog/alert-dialog-description.js create mode 100644 dist/default/ui/alert-dialog/alert-dialog-description.js.map create mode 100644 dist/default/ui/alert-dialog/alert-dialog-popup.js create mode 100644 dist/default/ui/alert-dialog/alert-dialog-popup.js.map create mode 100644 dist/default/ui/alert-dialog/alert-dialog-root.js create mode 100644 dist/default/ui/alert-dialog/alert-dialog-root.js.map create mode 100644 dist/default/ui/alert-dialog/alert-dialog-title.js create mode 100644 dist/default/ui/alert-dialog/alert-dialog-title.js.map create mode 100644 dist/default/ui/alert-dialog/context.js create mode 100644 dist/default/ui/alert-dialog/context.js.map create mode 100644 dist/default/ui/alert-dialog/index.js create mode 100644 dist/default/ui/alert-dialog/index.parts.js create mode 100644 dist/default/ui/alert-dialog/index.parts.js.map create mode 100644 dist/default/ui/audio-track/index.js create mode 100644 dist/default/ui/audio-track/use-audio-track-options.js create mode 100644 dist/default/ui/audio-track/use-audio-track-options.js.map create mode 100644 dist/default/ui/buffering-indicator/buffering-indicator.js create mode 100644 dist/default/ui/buffering-indicator/buffering-indicator.js.map create mode 100644 dist/default/ui/buffering-indicator/index.js create mode 100644 dist/default/ui/captions-button/captions-button.js create mode 100644 dist/default/ui/captions-button/captions-button.js.map create mode 100644 dist/default/ui/captions-button/index.js create mode 100644 dist/default/ui/captions-radio-group/index.js create mode 100644 dist/default/ui/captions-radio-group/use-captions-options.js create mode 100644 dist/default/ui/captions-radio-group/use-captions-options.js.map create mode 100644 dist/default/ui/cast-button/cast-button.js create mode 100644 dist/default/ui/cast-button/cast-button.js.map create mode 100644 dist/default/ui/cast-button/index.js create mode 100644 dist/default/ui/controls/context.js create mode 100644 dist/default/ui/controls/context.js.map create mode 100644 dist/default/ui/controls/controls-group.js create mode 100644 dist/default/ui/controls/controls-group.js.map create mode 100644 dist/default/ui/controls/controls-root.js create mode 100644 dist/default/ui/controls/controls-root.js.map create mode 100644 dist/default/ui/controls/index.js create mode 100644 dist/default/ui/controls/index.parts.js create mode 100644 dist/default/ui/controls/index.parts.js.map create mode 100644 dist/default/ui/create-context-part.js create mode 100644 dist/default/ui/create-context-part.js.map create mode 100644 dist/default/ui/create-media-button.js create mode 100644 dist/default/ui/create-media-button.js.map create mode 100644 dist/default/ui/error-dialog/context.js create mode 100644 dist/default/ui/error-dialog/context.js.map create mode 100644 dist/default/ui/error-dialog/error-dialog-close.js create mode 100644 dist/default/ui/error-dialog/error-dialog-close.js.map create mode 100644 dist/default/ui/error-dialog/error-dialog-description.js create mode 100644 dist/default/ui/error-dialog/error-dialog-description.js.map create mode 100644 dist/default/ui/error-dialog/error-dialog-root.js create mode 100644 dist/default/ui/error-dialog/error-dialog-root.js.map create mode 100644 dist/default/ui/error-dialog/error-dialog-title.js create mode 100644 dist/default/ui/error-dialog/error-dialog-title.js.map create mode 100644 dist/default/ui/error-dialog/index.js create mode 100644 dist/default/ui/error-dialog/index.parts.js create mode 100644 dist/default/ui/error-dialog/index.parts.js.map create mode 100644 dist/default/ui/fullscreen-button/fullscreen-button.js create mode 100644 dist/default/ui/fullscreen-button/fullscreen-button.js.map create mode 100644 dist/default/ui/fullscreen-button/index.js create mode 100644 dist/default/ui/gesture/gesture.js create mode 100644 dist/default/ui/gesture/gesture.js.map create mode 100644 dist/default/ui/gesture/index.js create mode 100644 dist/default/ui/gesture/use-doubletap-gesture.js create mode 100644 dist/default/ui/gesture/use-doubletap-gesture.js.map create mode 100644 dist/default/ui/gesture/use-tap-gesture.js create mode 100644 dist/default/ui/gesture/use-tap-gesture.js.map create mode 100644 dist/default/ui/hooks/use-button.js create mode 100644 dist/default/ui/hooks/use-button.js.map create mode 100644 dist/default/ui/hooks/use-positioned-state.js create mode 100644 dist/default/ui/hooks/use-positioned-state.js.map create mode 100644 dist/default/ui/hooks/use-slider.js create mode 100644 dist/default/ui/hooks/use-slider.js.map create mode 100644 dist/default/ui/hotkey/hotkey.js create mode 100644 dist/default/ui/hotkey/hotkey.js.map create mode 100644 dist/default/ui/hotkey/index.js create mode 100644 dist/default/ui/hotkey/use-hotkey-shortcut.js create mode 100644 dist/default/ui/hotkey/use-hotkey-shortcut.js.map create mode 100644 dist/default/ui/hotkey/use-hotkey.js create mode 100644 dist/default/ui/hotkey/use-hotkey.js.map create mode 100644 dist/default/ui/input-indicators/use-indicator-visibility.js create mode 100644 dist/default/ui/input-indicators/use-indicator-visibility.js.map create mode 100644 dist/default/ui/input-indicators/use-input-action-subscription.js create mode 100644 dist/default/ui/input-indicators/use-input-action-subscription.js.map create mode 100644 dist/default/ui/input-indicators/use-input-indicator-root.js create mode 100644 dist/default/ui/input-indicators/use-input-indicator-root.js.map create mode 100644 dist/default/ui/input-indicators/use-rendered-indicator-state.js create mode 100644 dist/default/ui/input-indicators/use-rendered-indicator-state.js.map create mode 100644 dist/default/ui/live-button/index.js create mode 100644 dist/default/ui/live-button/live-button.js create mode 100644 dist/default/ui/live-button/live-button.js.map create mode 100644 dist/default/ui/menu/context.js create mode 100644 dist/default/ui/menu/context.js.map create mode 100644 dist/default/ui/menu/index.js create mode 100644 dist/default/ui/menu/index.parts.js create mode 100644 dist/default/ui/menu/index.parts.js.map create mode 100644 dist/default/ui/menu/menu-back.js create mode 100644 dist/default/ui/menu/menu-back.js.map create mode 100644 dist/default/ui/menu/menu-checkbox-item.js create mode 100644 dist/default/ui/menu/menu-checkbox-item.js.map create mode 100644 dist/default/ui/menu/menu-content.js create mode 100644 dist/default/ui/menu/menu-content.js.map create mode 100644 dist/default/ui/menu/menu-group-label.js create mode 100644 dist/default/ui/menu/menu-group-label.js.map create mode 100644 dist/default/ui/menu/menu-group.js create mode 100644 dist/default/ui/menu/menu-group.js.map create mode 100644 dist/default/ui/menu/menu-item-indicator.js create mode 100644 dist/default/ui/menu/menu-item-indicator.js.map create mode 100644 dist/default/ui/menu/menu-item-setting-provider.js create mode 100644 dist/default/ui/menu/menu-item-setting-provider.js.map create mode 100644 dist/default/ui/menu/menu-item-value.js create mode 100644 dist/default/ui/menu/menu-item-value.js.map create mode 100644 dist/default/ui/menu/menu-item.js create mode 100644 dist/default/ui/menu/menu-item.js.map create mode 100644 dist/default/ui/menu/menu-radio-group.js create mode 100644 dist/default/ui/menu/menu-radio-group.js.map create mode 100644 dist/default/ui/menu/menu-radio-item.js create mode 100644 dist/default/ui/menu/menu-radio-item.js.map create mode 100644 dist/default/ui/menu/menu-root.js create mode 100644 dist/default/ui/menu/menu-root.js.map create mode 100644 dist/default/ui/menu/menu-separator.js create mode 100644 dist/default/ui/menu/menu-separator.js.map create mode 100644 dist/default/ui/menu/menu-trigger.js create mode 100644 dist/default/ui/menu/menu-trigger.js.map create mode 100644 dist/default/ui/menu/menu-view.js create mode 100644 dist/default/ui/menu/menu-view.js.map create mode 100644 dist/default/ui/menu/use-menu-group.js create mode 100644 dist/default/ui/menu/use-menu-group.js.map create mode 100644 dist/default/ui/mute-button/index.js create mode 100644 dist/default/ui/mute-button/mute-button.js create mode 100644 dist/default/ui/mute-button/mute-button.js.map create mode 100644 dist/default/ui/pip-button/index.js create mode 100644 dist/default/ui/pip-button/pip-button.js create mode 100644 dist/default/ui/pip-button/pip-button.js.map create mode 100644 dist/default/ui/play-button/index.js create mode 100644 dist/default/ui/play-button/play-button.js create mode 100644 dist/default/ui/play-button/play-button.js.map create mode 100644 dist/default/ui/playback-rate-button/index.js create mode 100644 dist/default/ui/playback-rate-button/playback-rate-button.js create mode 100644 dist/default/ui/playback-rate-button/playback-rate-button.js.map create mode 100644 dist/default/ui/playback-rate/index.js create mode 100644 dist/default/ui/playback-rate/use-playback-rate-options.js create mode 100644 dist/default/ui/playback-rate/use-playback-rate-options.js.map create mode 100644 dist/default/ui/popover/context.js create mode 100644 dist/default/ui/popover/context.js.map create mode 100644 dist/default/ui/popover/index.js create mode 100644 dist/default/ui/popover/index.parts.js create mode 100644 dist/default/ui/popover/index.parts.js.map create mode 100644 dist/default/ui/popover/popover-arrow.js create mode 100644 dist/default/ui/popover/popover-arrow.js.map create mode 100644 dist/default/ui/popover/popover-popup.js create mode 100644 dist/default/ui/popover/popover-popup.js.map create mode 100644 dist/default/ui/popover/popover-root.js create mode 100644 dist/default/ui/popover/popover-root.js.map create mode 100644 dist/default/ui/popover/popover-trigger.js create mode 100644 dist/default/ui/popover/popover-trigger.js.map create mode 100644 dist/default/ui/poster/index.js create mode 100644 dist/default/ui/poster/poster.js create mode 100644 dist/default/ui/poster/poster.js.map create mode 100644 dist/default/ui/quality/index.js create mode 100644 dist/default/ui/quality/use-quality-options.js create mode 100644 dist/default/ui/quality/use-quality-options.js.map create mode 100644 dist/default/ui/seek-button/index.js create mode 100644 dist/default/ui/seek-button/seek-button.js create mode 100644 dist/default/ui/seek-button/seek-button.js.map create mode 100644 dist/default/ui/seek-indicator/context.js create mode 100644 dist/default/ui/seek-indicator/context.js.map create mode 100644 dist/default/ui/seek-indicator/index.js create mode 100644 dist/default/ui/seek-indicator/index.parts.js create mode 100644 dist/default/ui/seek-indicator/index.parts.js.map create mode 100644 dist/default/ui/seek-indicator/seek-indicator-root.js create mode 100644 dist/default/ui/seek-indicator/seek-indicator-root.js.map create mode 100644 dist/default/ui/seek-indicator/seek-indicator-value.js create mode 100644 dist/default/ui/seek-indicator/seek-indicator-value.js.map create mode 100644 dist/default/ui/slider/context.js create mode 100644 dist/default/ui/slider/context.js.map create mode 100644 dist/default/ui/slider/index.js create mode 100644 dist/default/ui/slider/index.parts.js create mode 100644 dist/default/ui/slider/index.parts.js.map create mode 100644 dist/default/ui/slider/slider-buffer.js create mode 100644 dist/default/ui/slider/slider-buffer.js.map create mode 100644 dist/default/ui/slider/slider-fill.js create mode 100644 dist/default/ui/slider/slider-fill.js.map create mode 100644 dist/default/ui/slider/slider-preview.js create mode 100644 dist/default/ui/slider/slider-preview.js.map create mode 100644 dist/default/ui/slider/slider-root.js create mode 100644 dist/default/ui/slider/slider-root.js.map create mode 100644 dist/default/ui/slider/slider-thumb.js create mode 100644 dist/default/ui/slider/slider-thumb.js.map create mode 100644 dist/default/ui/slider/slider-thumbnail.js create mode 100644 dist/default/ui/slider/slider-thumbnail.js.map create mode 100644 dist/default/ui/slider/slider-track.js create mode 100644 dist/default/ui/slider/slider-track.js.map create mode 100644 dist/default/ui/slider/slider-value.js create mode 100644 dist/default/ui/slider/slider-value.js.map create mode 100644 dist/default/ui/status-announcer/index.js create mode 100644 dist/default/ui/status-announcer/status-announcer.js create mode 100644 dist/default/ui/status-announcer/status-announcer.js.map create mode 100644 dist/default/ui/status-indicator/context.js create mode 100644 dist/default/ui/status-indicator/context.js.map create mode 100644 dist/default/ui/status-indicator/index.js create mode 100644 dist/default/ui/status-indicator/index.parts.js create mode 100644 dist/default/ui/status-indicator/index.parts.js.map create mode 100644 dist/default/ui/status-indicator/status-indicator-root.js create mode 100644 dist/default/ui/status-indicator/status-indicator-root.js.map create mode 100644 dist/default/ui/status-indicator/status-indicator-value.js create mode 100644 dist/default/ui/status-indicator/status-indicator-value.js.map create mode 100644 dist/default/ui/thumbnail/index.js create mode 100644 dist/default/ui/thumbnail/thumbnail.js create mode 100644 dist/default/ui/thumbnail/thumbnail.js.map create mode 100644 dist/default/ui/time-slider/index.js create mode 100644 dist/default/ui/time-slider/index.parts.js create mode 100644 dist/default/ui/time-slider/index.parts.js.map create mode 100644 dist/default/ui/time-slider/time-slider-root.js create mode 100644 dist/default/ui/time-slider/time-slider-root.js.map create mode 100644 dist/default/ui/time/index.js create mode 100644 dist/default/ui/time/index.parts.js create mode 100644 dist/default/ui/time/index.parts.js.map create mode 100644 dist/default/ui/time/time-group.js create mode 100644 dist/default/ui/time/time-group.js.map create mode 100644 dist/default/ui/time/time-separator.js create mode 100644 dist/default/ui/time/time-separator.js.map create mode 100644 dist/default/ui/time/time-value.js create mode 100644 dist/default/ui/time/time-value.js.map create mode 100644 dist/default/ui/tooltip/context.js create mode 100644 dist/default/ui/tooltip/context.js.map create mode 100644 dist/default/ui/tooltip/group-context.js create mode 100644 dist/default/ui/tooltip/group-context.js.map create mode 100644 dist/default/ui/tooltip/index.js create mode 100644 dist/default/ui/tooltip/index.parts.js create mode 100644 dist/default/ui/tooltip/index.parts.js.map create mode 100644 dist/default/ui/tooltip/tooltip-arrow.js create mode 100644 dist/default/ui/tooltip/tooltip-arrow.js.map create mode 100644 dist/default/ui/tooltip/tooltip-label.js create mode 100644 dist/default/ui/tooltip/tooltip-label.js.map create mode 100644 dist/default/ui/tooltip/tooltip-popup.js create mode 100644 dist/default/ui/tooltip/tooltip-popup.js.map create mode 100644 dist/default/ui/tooltip/tooltip-provider.js create mode 100644 dist/default/ui/tooltip/tooltip-provider.js.map create mode 100644 dist/default/ui/tooltip/tooltip-root.js create mode 100644 dist/default/ui/tooltip/tooltip-root.js.map create mode 100644 dist/default/ui/tooltip/tooltip-shortcut.js create mode 100644 dist/default/ui/tooltip/tooltip-shortcut.js.map create mode 100644 dist/default/ui/tooltip/tooltip-trigger.js create mode 100644 dist/default/ui/tooltip/tooltip-trigger.js.map create mode 100644 dist/default/ui/volume-indicator/context.js create mode 100644 dist/default/ui/volume-indicator/context.js.map create mode 100644 dist/default/ui/volume-indicator/index.js create mode 100644 dist/default/ui/volume-indicator/index.parts.js create mode 100644 dist/default/ui/volume-indicator/index.parts.js.map create mode 100644 dist/default/ui/volume-indicator/volume-indicator-fill.js create mode 100644 dist/default/ui/volume-indicator/volume-indicator-fill.js.map create mode 100644 dist/default/ui/volume-indicator/volume-indicator-root.js create mode 100644 dist/default/ui/volume-indicator/volume-indicator-root.js.map create mode 100644 dist/default/ui/volume-indicator/volume-indicator-value.js create mode 100644 dist/default/ui/volume-indicator/volume-indicator-value.js.map create mode 100644 dist/default/ui/volume-slider/index.js create mode 100644 dist/default/ui/volume-slider/index.parts.js create mode 100644 dist/default/ui/volume-slider/index.parts.js.map create mode 100644 dist/default/ui/volume-slider/volume-slider-root.js create mode 100644 dist/default/ui/volume-slider/volume-slider-root.js.map create mode 100644 dist/default/utils/merge-props.js create mode 100644 dist/default/utils/merge-props.js.map create mode 100644 dist/default/utils/use-attach-iframe.js create mode 100644 dist/default/utils/use-attach-iframe.js.map create mode 100644 dist/default/utils/use-attach-media.js create mode 100644 dist/default/utils/use-attach-media.js.map create mode 100644 dist/default/utils/use-composed-refs.js create mode 100644 dist/default/utils/use-composed-refs.js.map create mode 100644 dist/default/utils/use-destroy.js create mode 100644 dist/default/utils/use-destroy.js.map create mode 100644 dist/default/utils/use-force-render.js create mode 100644 dist/default/utils/use-force-render.js.map create mode 100644 dist/default/utils/use-latest-ref.js create mode 100644 dist/default/utils/use-latest-ref.js.map create mode 100644 dist/default/utils/use-media-component.js create mode 100644 dist/default/utils/use-media-component.js.map create mode 100644 dist/default/utils/use-media-instance.js create mode 100644 dist/default/utils/use-media-instance.js.map create mode 100644 dist/default/utils/use-render.js create mode 100644 dist/default/utils/use-render.js.map create mode 100644 dist/default/utils/use-safe-id.js create mode 100644 dist/default/utils/use-safe-id.js.map create mode 100644 dist/default/utils/use-sync-props.js create mode 100644 dist/default/utils/use-sync-props.js.map create mode 100644 dist/dev/_virtual/_rolldown/runtime.js create mode 100644 dist/dev/i18n/context.d.ts create mode 100644 dist/dev/i18n/context.d.ts.map create mode 100644 dist/dev/i18n/context.js create mode 100644 dist/dev/i18n/context.js.map create mode 100644 dist/dev/i18n/create-i18n.d.ts create mode 100644 dist/dev/i18n/create-i18n.d.ts.map create mode 100644 dist/dev/i18n/create-i18n.js create mode 100644 dist/dev/i18n/create-i18n.js.map create mode 100644 dist/dev/i18n/get-provider-root-props.js create mode 100644 dist/dev/i18n/get-provider-root-props.js.map create mode 100644 dist/dev/i18n/index.d.ts create mode 100644 dist/dev/i18n/index.js create mode 100644 dist/dev/i18n/locales/all.d.ts create mode 100644 dist/dev/i18n/locales/all.js create mode 100644 dist/dev/i18n/locales/all/register.d.ts create mode 100644 dist/dev/i18n/locales/all/register.js create mode 100644 dist/dev/i18n/locales/all/register.js.map create mode 100644 dist/dev/i18n/locales/ar.d.ts create mode 100644 dist/dev/i18n/locales/ar.js create mode 100644 dist/dev/i18n/locales/ar/register.d.ts create mode 100644 dist/dev/i18n/locales/ar/register.js create mode 100644 dist/dev/i18n/locales/ar/register.js.map create mode 100644 dist/dev/i18n/locales/az.d.ts create mode 100644 dist/dev/i18n/locales/az.js create mode 100644 dist/dev/i18n/locales/az/register.d.ts create mode 100644 dist/dev/i18n/locales/az/register.js create mode 100644 dist/dev/i18n/locales/az/register.js.map create mode 100644 dist/dev/i18n/locales/bg.d.ts create mode 100644 dist/dev/i18n/locales/bg.js create mode 100644 dist/dev/i18n/locales/bg/register.d.ts create mode 100644 dist/dev/i18n/locales/bg/register.js create mode 100644 dist/dev/i18n/locales/bg/register.js.map create mode 100644 dist/dev/i18n/locales/bn.d.ts create mode 100644 dist/dev/i18n/locales/bn.js create mode 100644 dist/dev/i18n/locales/bn/register.d.ts create mode 100644 dist/dev/i18n/locales/bn/register.js create mode 100644 dist/dev/i18n/locales/bn/register.js.map create mode 100644 dist/dev/i18n/locales/bs.d.ts create mode 100644 dist/dev/i18n/locales/bs.js create mode 100644 dist/dev/i18n/locales/bs/register.d.ts create mode 100644 dist/dev/i18n/locales/bs/register.js create mode 100644 dist/dev/i18n/locales/bs/register.js.map create mode 100644 dist/dev/i18n/locales/ca.d.ts create mode 100644 dist/dev/i18n/locales/ca.js create mode 100644 dist/dev/i18n/locales/ca/register.d.ts create mode 100644 dist/dev/i18n/locales/ca/register.js create mode 100644 dist/dev/i18n/locales/ca/register.js.map create mode 100644 dist/dev/i18n/locales/cs.d.ts create mode 100644 dist/dev/i18n/locales/cs.js create mode 100644 dist/dev/i18n/locales/cs/register.d.ts create mode 100644 dist/dev/i18n/locales/cs/register.js create mode 100644 dist/dev/i18n/locales/cs/register.js.map create mode 100644 dist/dev/i18n/locales/cy.d.ts create mode 100644 dist/dev/i18n/locales/cy.js create mode 100644 dist/dev/i18n/locales/cy/register.d.ts create mode 100644 dist/dev/i18n/locales/cy/register.js create mode 100644 dist/dev/i18n/locales/cy/register.js.map create mode 100644 dist/dev/i18n/locales/da.d.ts create mode 100644 dist/dev/i18n/locales/da.js create mode 100644 dist/dev/i18n/locales/da/register.d.ts create mode 100644 dist/dev/i18n/locales/da/register.js create mode 100644 dist/dev/i18n/locales/da/register.js.map create mode 100644 dist/dev/i18n/locales/de.d.ts create mode 100644 dist/dev/i18n/locales/de.js create mode 100644 dist/dev/i18n/locales/de/register.d.ts create mode 100644 dist/dev/i18n/locales/de/register.js create mode 100644 dist/dev/i18n/locales/de/register.js.map create mode 100644 dist/dev/i18n/locales/el.d.ts create mode 100644 dist/dev/i18n/locales/el.js create mode 100644 dist/dev/i18n/locales/el/register.d.ts create mode 100644 dist/dev/i18n/locales/el/register.js create mode 100644 dist/dev/i18n/locales/el/register.js.map create mode 100644 dist/dev/i18n/locales/en.d.ts create mode 100644 dist/dev/i18n/locales/en.js create mode 100644 dist/dev/i18n/locales/en/register.d.ts create mode 100644 dist/dev/i18n/locales/en/register.js create mode 100644 dist/dev/i18n/locales/en/register.js.map create mode 100644 dist/dev/i18n/locales/es.d.ts create mode 100644 dist/dev/i18n/locales/es.js create mode 100644 dist/dev/i18n/locales/es/register.d.ts create mode 100644 dist/dev/i18n/locales/es/register.js create mode 100644 dist/dev/i18n/locales/es/register.js.map create mode 100644 dist/dev/i18n/locales/et.d.ts create mode 100644 dist/dev/i18n/locales/et.js create mode 100644 dist/dev/i18n/locales/et/register.d.ts create mode 100644 dist/dev/i18n/locales/et/register.js create mode 100644 dist/dev/i18n/locales/et/register.js.map create mode 100644 dist/dev/i18n/locales/eu.d.ts create mode 100644 dist/dev/i18n/locales/eu.js create mode 100644 dist/dev/i18n/locales/eu/register.d.ts create mode 100644 dist/dev/i18n/locales/eu/register.js create mode 100644 dist/dev/i18n/locales/eu/register.js.map create mode 100644 dist/dev/i18n/locales/fa.d.ts create mode 100644 dist/dev/i18n/locales/fa.js create mode 100644 dist/dev/i18n/locales/fa/register.d.ts create mode 100644 dist/dev/i18n/locales/fa/register.js create mode 100644 dist/dev/i18n/locales/fa/register.js.map create mode 100644 dist/dev/i18n/locales/fi.d.ts create mode 100644 dist/dev/i18n/locales/fi.js create mode 100644 dist/dev/i18n/locales/fi/register.d.ts create mode 100644 dist/dev/i18n/locales/fi/register.js create mode 100644 dist/dev/i18n/locales/fi/register.js.map create mode 100644 dist/dev/i18n/locales/fr.d.ts create mode 100644 dist/dev/i18n/locales/fr.js create mode 100644 dist/dev/i18n/locales/fr/register.d.ts create mode 100644 dist/dev/i18n/locales/fr/register.js create mode 100644 dist/dev/i18n/locales/fr/register.js.map create mode 100644 dist/dev/i18n/locales/gd.d.ts create mode 100644 dist/dev/i18n/locales/gd.js create mode 100644 dist/dev/i18n/locales/gd/register.d.ts create mode 100644 dist/dev/i18n/locales/gd/register.js create mode 100644 dist/dev/i18n/locales/gd/register.js.map create mode 100644 dist/dev/i18n/locales/gl.d.ts create mode 100644 dist/dev/i18n/locales/gl.js create mode 100644 dist/dev/i18n/locales/gl/register.d.ts create mode 100644 dist/dev/i18n/locales/gl/register.js create mode 100644 dist/dev/i18n/locales/gl/register.js.map create mode 100644 dist/dev/i18n/locales/he.d.ts create mode 100644 dist/dev/i18n/locales/he.js create mode 100644 dist/dev/i18n/locales/he/register.d.ts create mode 100644 dist/dev/i18n/locales/he/register.js create mode 100644 dist/dev/i18n/locales/he/register.js.map create mode 100644 dist/dev/i18n/locales/hi.d.ts create mode 100644 dist/dev/i18n/locales/hi.js create mode 100644 dist/dev/i18n/locales/hi/register.d.ts create mode 100644 dist/dev/i18n/locales/hi/register.js create mode 100644 dist/dev/i18n/locales/hi/register.js.map create mode 100644 dist/dev/i18n/locales/hr.d.ts create mode 100644 dist/dev/i18n/locales/hr.js create mode 100644 dist/dev/i18n/locales/hr/register.d.ts create mode 100644 dist/dev/i18n/locales/hr/register.js create mode 100644 dist/dev/i18n/locales/hr/register.js.map create mode 100644 dist/dev/i18n/locales/hu.d.ts create mode 100644 dist/dev/i18n/locales/hu.js create mode 100644 dist/dev/i18n/locales/hu/register.d.ts create mode 100644 dist/dev/i18n/locales/hu/register.js create mode 100644 dist/dev/i18n/locales/hu/register.js.map create mode 100644 dist/dev/i18n/locales/it.d.ts create mode 100644 dist/dev/i18n/locales/it.js create mode 100644 dist/dev/i18n/locales/it/register.d.ts create mode 100644 dist/dev/i18n/locales/it/register.js create mode 100644 dist/dev/i18n/locales/it/register.js.map create mode 100644 dist/dev/i18n/locales/ja.d.ts create mode 100644 dist/dev/i18n/locales/ja.js create mode 100644 dist/dev/i18n/locales/ja/register.d.ts create mode 100644 dist/dev/i18n/locales/ja/register.js create mode 100644 dist/dev/i18n/locales/ja/register.js.map create mode 100644 dist/dev/i18n/locales/ko.d.ts create mode 100644 dist/dev/i18n/locales/ko.js create mode 100644 dist/dev/i18n/locales/ko/register.d.ts create mode 100644 dist/dev/i18n/locales/ko/register.js create mode 100644 dist/dev/i18n/locales/ko/register.js.map create mode 100644 dist/dev/i18n/locales/lv.d.ts create mode 100644 dist/dev/i18n/locales/lv.js create mode 100644 dist/dev/i18n/locales/lv/register.d.ts create mode 100644 dist/dev/i18n/locales/lv/register.js create mode 100644 dist/dev/i18n/locales/lv/register.js.map create mode 100644 dist/dev/i18n/locales/mr.d.ts create mode 100644 dist/dev/i18n/locales/mr.js create mode 100644 dist/dev/i18n/locales/mr/register.d.ts create mode 100644 dist/dev/i18n/locales/mr/register.js create mode 100644 dist/dev/i18n/locales/mr/register.js.map create mode 100644 dist/dev/i18n/locales/nb.d.ts create mode 100644 dist/dev/i18n/locales/nb.js create mode 100644 dist/dev/i18n/locales/nb/register.d.ts create mode 100644 dist/dev/i18n/locales/nb/register.js create mode 100644 dist/dev/i18n/locales/nb/register.js.map create mode 100644 dist/dev/i18n/locales/ne.d.ts create mode 100644 dist/dev/i18n/locales/ne.js create mode 100644 dist/dev/i18n/locales/ne/register.d.ts create mode 100644 dist/dev/i18n/locales/ne/register.js create mode 100644 dist/dev/i18n/locales/ne/register.js.map create mode 100644 dist/dev/i18n/locales/nl.d.ts create mode 100644 dist/dev/i18n/locales/nl.js create mode 100644 dist/dev/i18n/locales/nl/register.d.ts create mode 100644 dist/dev/i18n/locales/nl/register.js create mode 100644 dist/dev/i18n/locales/nl/register.js.map create mode 100644 dist/dev/i18n/locales/nn.d.ts create mode 100644 dist/dev/i18n/locales/nn.js create mode 100644 dist/dev/i18n/locales/nn/register.d.ts create mode 100644 dist/dev/i18n/locales/nn/register.js create mode 100644 dist/dev/i18n/locales/nn/register.js.map create mode 100644 dist/dev/i18n/locales/oc.d.ts create mode 100644 dist/dev/i18n/locales/oc.js create mode 100644 dist/dev/i18n/locales/oc/register.d.ts create mode 100644 dist/dev/i18n/locales/oc/register.js create mode 100644 dist/dev/i18n/locales/oc/register.js.map create mode 100644 dist/dev/i18n/locales/pl.d.ts create mode 100644 dist/dev/i18n/locales/pl.js create mode 100644 dist/dev/i18n/locales/pl/register.d.ts create mode 100644 dist/dev/i18n/locales/pl/register.js create mode 100644 dist/dev/i18n/locales/pl/register.js.map create mode 100644 dist/dev/i18n/locales/pt-BR.d.ts create mode 100644 dist/dev/i18n/locales/pt-BR.js create mode 100644 dist/dev/i18n/locales/pt-BR/register.d.ts create mode 100644 dist/dev/i18n/locales/pt-BR/register.js create mode 100644 dist/dev/i18n/locales/pt-BR/register.js.map create mode 100644 dist/dev/i18n/locales/pt-PT.d.ts create mode 100644 dist/dev/i18n/locales/pt-PT.js create mode 100644 dist/dev/i18n/locales/pt-PT/register.d.ts create mode 100644 dist/dev/i18n/locales/pt-PT/register.js create mode 100644 dist/dev/i18n/locales/pt-PT/register.js.map create mode 100644 dist/dev/i18n/locales/pt.d.ts create mode 100644 dist/dev/i18n/locales/pt.js create mode 100644 dist/dev/i18n/locales/pt/register.d.ts create mode 100644 dist/dev/i18n/locales/pt/register.js create mode 100644 dist/dev/i18n/locales/pt/register.js.map create mode 100644 dist/dev/i18n/locales/ro.d.ts create mode 100644 dist/dev/i18n/locales/ro.js create mode 100644 dist/dev/i18n/locales/ro/register.d.ts create mode 100644 dist/dev/i18n/locales/ro/register.js create mode 100644 dist/dev/i18n/locales/ro/register.js.map create mode 100644 dist/dev/i18n/locales/ru.d.ts create mode 100644 dist/dev/i18n/locales/ru.js create mode 100644 dist/dev/i18n/locales/ru/register.d.ts create mode 100644 dist/dev/i18n/locales/ru/register.js create mode 100644 dist/dev/i18n/locales/ru/register.js.map create mode 100644 dist/dev/i18n/locales/sk.d.ts create mode 100644 dist/dev/i18n/locales/sk.js create mode 100644 dist/dev/i18n/locales/sk/register.d.ts create mode 100644 dist/dev/i18n/locales/sk/register.js create mode 100644 dist/dev/i18n/locales/sk/register.js.map create mode 100644 dist/dev/i18n/locales/sl.d.ts create mode 100644 dist/dev/i18n/locales/sl.js create mode 100644 dist/dev/i18n/locales/sl/register.d.ts create mode 100644 dist/dev/i18n/locales/sl/register.js create mode 100644 dist/dev/i18n/locales/sl/register.js.map create mode 100644 dist/dev/i18n/locales/sr.d.ts create mode 100644 dist/dev/i18n/locales/sr.js create mode 100644 dist/dev/i18n/locales/sr/register.d.ts create mode 100644 dist/dev/i18n/locales/sr/register.js create mode 100644 dist/dev/i18n/locales/sr/register.js.map create mode 100644 dist/dev/i18n/locales/sv.d.ts create mode 100644 dist/dev/i18n/locales/sv.js create mode 100644 dist/dev/i18n/locales/sv/register.d.ts create mode 100644 dist/dev/i18n/locales/sv/register.js create mode 100644 dist/dev/i18n/locales/sv/register.js.map create mode 100644 dist/dev/i18n/locales/te.d.ts create mode 100644 dist/dev/i18n/locales/te.js create mode 100644 dist/dev/i18n/locales/te/register.d.ts create mode 100644 dist/dev/i18n/locales/te/register.js create mode 100644 dist/dev/i18n/locales/te/register.js.map create mode 100644 dist/dev/i18n/locales/th.d.ts create mode 100644 dist/dev/i18n/locales/th.js create mode 100644 dist/dev/i18n/locales/th/register.d.ts create mode 100644 dist/dev/i18n/locales/th/register.js create mode 100644 dist/dev/i18n/locales/th/register.js.map create mode 100644 dist/dev/i18n/locales/tr.d.ts create mode 100644 dist/dev/i18n/locales/tr.js create mode 100644 dist/dev/i18n/locales/tr/register.d.ts create mode 100644 dist/dev/i18n/locales/tr/register.js create mode 100644 dist/dev/i18n/locales/tr/register.js.map create mode 100644 dist/dev/i18n/locales/uk.d.ts create mode 100644 dist/dev/i18n/locales/uk.js create mode 100644 dist/dev/i18n/locales/uk/register.d.ts create mode 100644 dist/dev/i18n/locales/uk/register.js create mode 100644 dist/dev/i18n/locales/uk/register.js.map create mode 100644 dist/dev/i18n/locales/vi.d.ts create mode 100644 dist/dev/i18n/locales/vi.js create mode 100644 dist/dev/i18n/locales/vi/register.d.ts create mode 100644 dist/dev/i18n/locales/vi/register.js create mode 100644 dist/dev/i18n/locales/vi/register.js.map create mode 100644 dist/dev/i18n/locales/zh-CN.d.ts create mode 100644 dist/dev/i18n/locales/zh-CN.js create mode 100644 dist/dev/i18n/locales/zh-CN/register.d.ts create mode 100644 dist/dev/i18n/locales/zh-CN/register.js create mode 100644 dist/dev/i18n/locales/zh-CN/register.js.map create mode 100644 dist/dev/i18n/locales/zh-TW.d.ts create mode 100644 dist/dev/i18n/locales/zh-TW.js create mode 100644 dist/dev/i18n/locales/zh-TW/register.d.ts create mode 100644 dist/dev/i18n/locales/zh-TW/register.js create mode 100644 dist/dev/i18n/locales/zh-TW/register.js.map create mode 100644 dist/dev/i18n/locales/zh.d.ts create mode 100644 dist/dev/i18n/locales/zh.js create mode 100644 dist/dev/i18n/locales/zh/register.d.ts create mode 100644 dist/dev/i18n/locales/zh/register.js create mode 100644 dist/dev/i18n/locales/zh/register.js.map create mode 100644 dist/dev/i18n/use-ambient-lang.js create mode 100644 dist/dev/i18n/use-ambient-lang.js.map create mode 100644 dist/dev/i18n/use-lang-root-element.js create mode 100644 dist/dev/i18n/use-lang-root-element.js.map create mode 100644 dist/dev/i18n/use-lazy-translations.js create mode 100644 dist/dev/i18n/use-lazy-translations.js.map create mode 100644 dist/dev/i18n/use-locale-root-notifications.js create mode 100644 dist/dev/i18n/use-locale-root-notifications.js.map create mode 100644 dist/dev/i18n/use-merged-translations.js create mode 100644 dist/dev/i18n/use-merged-translations.js.map create mode 100644 dist/dev/i18n/use-registry-epoch.js create mode 100644 dist/dev/i18n/use-registry-epoch.js.map create mode 100644 dist/dev/icons/dist/react/default/airplay-enter.js create mode 100644 dist/dev/icons/dist/react/default/airplay-enter.js.map create mode 100644 dist/dev/icons/dist/react/default/airplay-exit.js create mode 100644 dist/dev/icons/dist/react/default/airplay-exit.js.map create mode 100644 dist/dev/icons/dist/react/default/captions-off.js create mode 100644 dist/dev/icons/dist/react/default/captions-off.js.map create mode 100644 dist/dev/icons/dist/react/default/captions-on.js create mode 100644 dist/dev/icons/dist/react/default/captions-on.js.map create mode 100644 dist/dev/icons/dist/react/default/cast-enter.js create mode 100644 dist/dev/icons/dist/react/default/cast-enter.js.map create mode 100644 dist/dev/icons/dist/react/default/cast-exit.js create mode 100644 dist/dev/icons/dist/react/default/cast-exit.js.map create mode 100644 dist/dev/icons/dist/react/default/check.js create mode 100644 dist/dev/icons/dist/react/default/check.js.map create mode 100644 dist/dev/icons/dist/react/default/chevron.js create mode 100644 dist/dev/icons/dist/react/default/chevron.js.map create mode 100644 dist/dev/icons/dist/react/default/fullscreen-enter.js create mode 100644 dist/dev/icons/dist/react/default/fullscreen-enter.js.map create mode 100644 dist/dev/icons/dist/react/default/fullscreen-exit.js create mode 100644 dist/dev/icons/dist/react/default/fullscreen-exit.js.map create mode 100644 dist/dev/icons/dist/react/default/gear.js create mode 100644 dist/dev/icons/dist/react/default/gear.js.map create mode 100644 dist/dev/icons/dist/react/default/index.d.ts create mode 100644 dist/dev/icons/dist/react/default/index.d.ts.map create mode 100644 dist/dev/icons/dist/react/default/pause.js create mode 100644 dist/dev/icons/dist/react/default/pause.js.map create mode 100644 dist/dev/icons/dist/react/default/pip-enter.js create mode 100644 dist/dev/icons/dist/react/default/pip-enter.js.map create mode 100644 dist/dev/icons/dist/react/default/pip-exit.js create mode 100644 dist/dev/icons/dist/react/default/pip-exit.js.map create mode 100644 dist/dev/icons/dist/react/default/play.js create mode 100644 dist/dev/icons/dist/react/default/play.js.map create mode 100644 dist/dev/icons/dist/react/default/quality.js create mode 100644 dist/dev/icons/dist/react/default/quality.js.map create mode 100644 dist/dev/icons/dist/react/default/restart.js create mode 100644 dist/dev/icons/dist/react/default/restart.js.map create mode 100644 dist/dev/icons/dist/react/default/seek.js create mode 100644 dist/dev/icons/dist/react/default/seek.js.map create mode 100644 dist/dev/icons/dist/react/default/speech.js create mode 100644 dist/dev/icons/dist/react/default/speech.js.map create mode 100644 dist/dev/icons/dist/react/default/speed.js create mode 100644 dist/dev/icons/dist/react/default/speed.js.map create mode 100644 dist/dev/icons/dist/react/default/spinner.js create mode 100644 dist/dev/icons/dist/react/default/spinner.js.map create mode 100644 dist/dev/icons/dist/react/default/switches.js create mode 100644 dist/dev/icons/dist/react/default/switches.js.map create mode 100644 dist/dev/icons/dist/react/default/volume-high.js create mode 100644 dist/dev/icons/dist/react/default/volume-high.js.map create mode 100644 dist/dev/icons/dist/react/default/volume-low.js create mode 100644 dist/dev/icons/dist/react/default/volume-low.js.map create mode 100644 dist/dev/icons/dist/react/default/volume-off.js create mode 100644 dist/dev/icons/dist/react/default/volume-off.js.map create mode 100644 dist/dev/icons/dist/react/minimal/airplay-enter.js create mode 100644 dist/dev/icons/dist/react/minimal/airplay-enter.js.map create mode 100644 dist/dev/icons/dist/react/minimal/airplay-exit.js create mode 100644 dist/dev/icons/dist/react/minimal/airplay-exit.js.map create mode 100644 dist/dev/icons/dist/react/minimal/captions-off.js create mode 100644 dist/dev/icons/dist/react/minimal/captions-off.js.map create mode 100644 dist/dev/icons/dist/react/minimal/captions-on.js create mode 100644 dist/dev/icons/dist/react/minimal/captions-on.js.map create mode 100644 dist/dev/icons/dist/react/minimal/cast-enter.js create mode 100644 dist/dev/icons/dist/react/minimal/cast-enter.js.map create mode 100644 dist/dev/icons/dist/react/minimal/cast-exit.js create mode 100644 dist/dev/icons/dist/react/minimal/cast-exit.js.map create mode 100644 dist/dev/icons/dist/react/minimal/check.js create mode 100644 dist/dev/icons/dist/react/minimal/check.js.map create mode 100644 dist/dev/icons/dist/react/minimal/chevron.js create mode 100644 dist/dev/icons/dist/react/minimal/chevron.js.map create mode 100644 dist/dev/icons/dist/react/minimal/fullscreen-enter.js create mode 100644 dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map create mode 100644 dist/dev/icons/dist/react/minimal/fullscreen-exit.js create mode 100644 dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map create mode 100644 dist/dev/icons/dist/react/minimal/gear.js create mode 100644 dist/dev/icons/dist/react/minimal/gear.js.map create mode 100644 dist/dev/icons/dist/react/minimal/index.d.ts create mode 100644 dist/dev/icons/dist/react/minimal/index.d.ts.map create mode 100644 dist/dev/icons/dist/react/minimal/pause.js create mode 100644 dist/dev/icons/dist/react/minimal/pause.js.map create mode 100644 dist/dev/icons/dist/react/minimal/pip-enter.js create mode 100644 dist/dev/icons/dist/react/minimal/pip-enter.js.map create mode 100644 dist/dev/icons/dist/react/minimal/pip-exit.js create mode 100644 dist/dev/icons/dist/react/minimal/pip-exit.js.map create mode 100644 dist/dev/icons/dist/react/minimal/play.js create mode 100644 dist/dev/icons/dist/react/minimal/play.js.map create mode 100644 dist/dev/icons/dist/react/minimal/quality.js create mode 100644 dist/dev/icons/dist/react/minimal/quality.js.map create mode 100644 dist/dev/icons/dist/react/minimal/restart.js create mode 100644 dist/dev/icons/dist/react/minimal/restart.js.map create mode 100644 dist/dev/icons/dist/react/minimal/seek.js create mode 100644 dist/dev/icons/dist/react/minimal/seek.js.map create mode 100644 dist/dev/icons/dist/react/minimal/speech.js create mode 100644 dist/dev/icons/dist/react/minimal/speech.js.map create mode 100644 dist/dev/icons/dist/react/minimal/speed.js create mode 100644 dist/dev/icons/dist/react/minimal/speed.js.map create mode 100644 dist/dev/icons/dist/react/minimal/spinner.js create mode 100644 dist/dev/icons/dist/react/minimal/spinner.js.map create mode 100644 dist/dev/icons/dist/react/minimal/switches.js create mode 100644 dist/dev/icons/dist/react/minimal/switches.js.map create mode 100644 dist/dev/icons/dist/react/minimal/volume-high.js create mode 100644 dist/dev/icons/dist/react/minimal/volume-high.js.map create mode 100644 dist/dev/icons/dist/react/minimal/volume-low.js create mode 100644 dist/dev/icons/dist/react/minimal/volume-low.js.map create mode 100644 dist/dev/icons/dist/react/minimal/volume-off.js create mode 100644 dist/dev/icons/dist/react/minimal/volume-off.js.map create mode 100644 dist/dev/icons/index.d.ts create mode 100644 dist/dev/icons/index.js create mode 100644 dist/dev/icons/minimal/index.d.ts create mode 100644 dist/dev/icons/minimal/index.js create mode 100644 dist/dev/index.d.ts create mode 100644 dist/dev/index.js create mode 100644 dist/dev/media/audio.d.ts create mode 100644 dist/dev/media/audio.d.ts.map create mode 100644 dist/dev/media/audio.js create mode 100644 dist/dev/media/audio.js.map create mode 100644 dist/dev/media/background-video/index.d.ts create mode 100644 dist/dev/media/background-video/index.js create mode 100644 dist/dev/media/background-video/media.d.ts create mode 100644 dist/dev/media/background-video/media.d.ts.map create mode 100644 dist/dev/media/background-video/media.js create mode 100644 dist/dev/media/background-video/media.js.map create mode 100644 dist/dev/media/dash-video/index.d.ts create mode 100644 dist/dev/media/dash-video/index.js create mode 100644 dist/dev/media/dash-video/media.d.ts create mode 100644 dist/dev/media/dash-video/media.d.ts.map create mode 100644 dist/dev/media/dash-video/media.js create mode 100644 dist/dev/media/dash-video/media.js.map create mode 100644 dist/dev/media/google-cast/google-cast.d.ts create mode 100644 dist/dev/media/google-cast/google-cast.d.ts.map create mode 100644 dist/dev/media/google-cast/google-cast.js create mode 100644 dist/dev/media/google-cast/google-cast.js.map create mode 100644 dist/dev/media/google-cast/index.d.ts create mode 100644 dist/dev/media/google-cast/index.js create mode 100644 dist/dev/media/hlsjs-video/index.d.ts create mode 100644 dist/dev/media/hlsjs-video/index.js create mode 100644 dist/dev/media/hlsjs-video/media.d.ts create mode 100644 dist/dev/media/hlsjs-video/media.d.ts.map create mode 100644 dist/dev/media/hlsjs-video/media.js create mode 100644 dist/dev/media/hlsjs-video/media.js.map create mode 100644 dist/dev/media/mux-audio/index.d.ts create mode 100644 dist/dev/media/mux-audio/index.js create mode 100644 dist/dev/media/mux-audio/media.d.ts create mode 100644 dist/dev/media/mux-audio/media.d.ts.map create mode 100644 dist/dev/media/mux-audio/media.js create mode 100644 dist/dev/media/mux-audio/media.js.map create mode 100644 dist/dev/media/mux-data/index.d.ts create mode 100644 dist/dev/media/mux-data/index.js create mode 100644 dist/dev/media/mux-data/mux-data.d.ts create mode 100644 dist/dev/media/mux-data/mux-data.d.ts.map create mode 100644 dist/dev/media/mux-data/mux-data.js create mode 100644 dist/dev/media/mux-data/mux-data.js.map create mode 100644 dist/dev/media/mux-video/index.d.ts create mode 100644 dist/dev/media/mux-video/index.js create mode 100644 dist/dev/media/mux-video/media.d.ts create mode 100644 dist/dev/media/mux-video/media.d.ts.map create mode 100644 dist/dev/media/mux-video/media.js create mode 100644 dist/dev/media/mux-video/media.js.map create mode 100644 dist/dev/media/native-hls-video/index.d.ts create mode 100644 dist/dev/media/native-hls-video/index.js create mode 100644 dist/dev/media/native-hls-video/media.d.ts create mode 100644 dist/dev/media/native-hls-video/media.d.ts.map create mode 100644 dist/dev/media/native-hls-video/media.js create mode 100644 dist/dev/media/native-hls-video/media.js.map create mode 100644 dist/dev/media/simple-hls-audio-only/index.d.ts create mode 100644 dist/dev/media/simple-hls-audio-only/index.js create mode 100644 dist/dev/media/simple-hls-audio-only/media.d.ts create mode 100644 dist/dev/media/simple-hls-audio-only/media.d.ts.map create mode 100644 dist/dev/media/simple-hls-audio-only/media.js create mode 100644 dist/dev/media/simple-hls-audio-only/media.js.map create mode 100644 dist/dev/media/simple-hls-video/index.d.ts create mode 100644 dist/dev/media/simple-hls-video/index.js create mode 100644 dist/dev/media/simple-hls-video/media.d.ts create mode 100644 dist/dev/media/simple-hls-video/media.d.ts.map create mode 100644 dist/dev/media/simple-hls-video/media.js create mode 100644 dist/dev/media/simple-hls-video/media.js.map create mode 100644 dist/dev/media/video.d.ts create mode 100644 dist/dev/media/video.d.ts.map create mode 100644 dist/dev/media/video.js create mode 100644 dist/dev/media/video.js.map create mode 100644 dist/dev/media/vimeo-video/index.d.ts create mode 100644 dist/dev/media/vimeo-video/index.js create mode 100644 dist/dev/media/vimeo-video/media.d.ts create mode 100644 dist/dev/media/vimeo-video/media.d.ts.map create mode 100644 dist/dev/media/vimeo-video/media.js create mode 100644 dist/dev/media/vimeo-video/media.js.map create mode 100644 dist/dev/player/container.d.ts create mode 100644 dist/dev/player/container.d.ts.map create mode 100644 dist/dev/player/container.js create mode 100644 dist/dev/player/container.js.map create mode 100644 dist/dev/player/context.d.ts create mode 100644 dist/dev/player/context.d.ts.map create mode 100644 dist/dev/player/context.js create mode 100644 dist/dev/player/context.js.map create mode 100644 dist/dev/player/create-player.d.ts create mode 100644 dist/dev/player/create-player.d.ts.map create mode 100644 dist/dev/player/create-player.js create mode 100644 dist/dev/player/create-player.js.map create mode 100644 dist/dev/presets/audio/index.d.ts create mode 100644 dist/dev/presets/audio/index.js create mode 100644 dist/dev/presets/audio/minimal-skin.css create mode 100644 dist/dev/presets/audio/minimal-skin.d.ts create mode 100644 dist/dev/presets/audio/minimal-skin.d.ts.map create mode 100644 dist/dev/presets/audio/minimal-skin.js create mode 100644 dist/dev/presets/audio/minimal-skin.js.map create mode 100644 dist/dev/presets/audio/minimal-skin.tailwind.d.ts create mode 100644 dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map create mode 100644 dist/dev/presets/audio/minimal-skin.tailwind.js create mode 100644 dist/dev/presets/audio/minimal-skin.tailwind.js.map create mode 100644 dist/dev/presets/audio/skin.css create mode 100644 dist/dev/presets/audio/skin.d.ts create mode 100644 dist/dev/presets/audio/skin.d.ts.map create mode 100644 dist/dev/presets/audio/skin.js create mode 100644 dist/dev/presets/audio/skin.js.map create mode 100644 dist/dev/presets/audio/skin.tailwind.d.ts create mode 100644 dist/dev/presets/audio/skin.tailwind.d.ts.map create mode 100644 dist/dev/presets/audio/skin.tailwind.js create mode 100644 dist/dev/presets/audio/skin.tailwind.js.map create mode 100644 dist/dev/presets/background/index.d.ts create mode 100644 dist/dev/presets/background/index.js create mode 100644 dist/dev/presets/background/skin.css create mode 100644 dist/dev/presets/background/skin.d.ts create mode 100644 dist/dev/presets/background/skin.d.ts.map create mode 100644 dist/dev/presets/background/skin.js create mode 100644 dist/dev/presets/background/skin.js.map create mode 100644 dist/dev/presets/live-audio/index.d.ts create mode 100644 dist/dev/presets/live-audio/index.js create mode 100644 dist/dev/presets/live-audio/minimal-skin.css create mode 100644 dist/dev/presets/live-audio/minimal-skin.d.ts create mode 100644 dist/dev/presets/live-audio/minimal-skin.d.ts.map create mode 100644 dist/dev/presets/live-audio/minimal-skin.js create mode 100644 dist/dev/presets/live-audio/minimal-skin.js.map create mode 100644 dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts create mode 100644 dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map create mode 100644 dist/dev/presets/live-audio/minimal-skin.tailwind.js create mode 100644 dist/dev/presets/live-audio/minimal-skin.tailwind.js.map create mode 100644 dist/dev/presets/live-audio/skin.css create mode 100644 dist/dev/presets/live-audio/skin.d.ts create mode 100644 dist/dev/presets/live-audio/skin.d.ts.map create mode 100644 dist/dev/presets/live-audio/skin.js create mode 100644 dist/dev/presets/live-audio/skin.js.map create mode 100644 dist/dev/presets/live-audio/skin.tailwind.d.ts create mode 100644 dist/dev/presets/live-audio/skin.tailwind.d.ts.map create mode 100644 dist/dev/presets/live-audio/skin.tailwind.js create mode 100644 dist/dev/presets/live-audio/skin.tailwind.js.map create mode 100644 dist/dev/presets/live-video/index.d.ts create mode 100644 dist/dev/presets/live-video/index.js create mode 100644 dist/dev/presets/live-video/minimal-skin.css create mode 100644 dist/dev/presets/live-video/minimal-skin.d.ts create mode 100644 dist/dev/presets/live-video/minimal-skin.d.ts.map create mode 100644 dist/dev/presets/live-video/minimal-skin.js create mode 100644 dist/dev/presets/live-video/minimal-skin.js.map create mode 100644 dist/dev/presets/live-video/minimal-skin.tailwind.d.ts create mode 100644 dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map create mode 100644 dist/dev/presets/live-video/minimal-skin.tailwind.js create mode 100644 dist/dev/presets/live-video/minimal-skin.tailwind.js.map create mode 100644 dist/dev/presets/live-video/skin.css create mode 100644 dist/dev/presets/live-video/skin.d.ts create mode 100644 dist/dev/presets/live-video/skin.d.ts.map create mode 100644 dist/dev/presets/live-video/skin.js create mode 100644 dist/dev/presets/live-video/skin.js.map create mode 100644 dist/dev/presets/live-video/skin.tailwind.d.ts create mode 100644 dist/dev/presets/live-video/skin.tailwind.d.ts.map create mode 100644 dist/dev/presets/live-video/skin.tailwind.js create mode 100644 dist/dev/presets/live-video/skin.tailwind.js.map create mode 100644 dist/dev/presets/types.d.ts create mode 100644 dist/dev/presets/types.d.ts.map create mode 100644 dist/dev/presets/video/index.d.ts create mode 100644 dist/dev/presets/video/index.js create mode 100644 dist/dev/presets/video/minimal-skin.css create mode 100644 dist/dev/presets/video/minimal-skin.d.ts create mode 100644 dist/dev/presets/video/minimal-skin.d.ts.map create mode 100644 dist/dev/presets/video/minimal-skin.js create mode 100644 dist/dev/presets/video/minimal-skin.js.map create mode 100644 dist/dev/presets/video/minimal-skin.tailwind.d.ts create mode 100644 dist/dev/presets/video/minimal-skin.tailwind.d.ts.map create mode 100644 dist/dev/presets/video/minimal-skin.tailwind.js create mode 100644 dist/dev/presets/video/minimal-skin.tailwind.js.map create mode 100644 dist/dev/presets/video/skin.css create mode 100644 dist/dev/presets/video/skin.d.ts create mode 100644 dist/dev/presets/video/skin.d.ts.map create mode 100644 dist/dev/presets/video/skin.js create mode 100644 dist/dev/presets/video/skin.js.map create mode 100644 dist/dev/presets/video/skin.tailwind.d.ts create mode 100644 dist/dev/presets/video/skin.tailwind.d.ts.map create mode 100644 dist/dev/presets/video/skin.tailwind.js create mode 100644 dist/dev/presets/video/skin.tailwind.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/badge.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/badge.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/buffering.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/button-group.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/button.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/button.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/controls.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/controls.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/error.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/error.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/icon.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/icon.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/menu.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/menu.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/overlay.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/popup.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/popup.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/poster.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/poster.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/reset.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/reset.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/root.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/root.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/seek.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/seek.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/slider.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/slider.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/surface.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/surface.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/time.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/components/time.js.map create mode 100644 dist/dev/skins/dist/default/default/tailwind/video.tailwind.js create mode 100644 dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/badge.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/badge.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/button.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/controls.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/error.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/icon.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/menu.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/popup.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/poster.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/reset.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/reset.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/root.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/seek.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/slider.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/time.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js create mode 100644 dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map create mode 100644 dist/dev/skins/dist/default/shared/tailwind/icon-state.js create mode 100644 dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map create mode 100644 dist/dev/tailwind.css create mode 100644 dist/dev/ui/airplay-button/airplay-button.d.ts create mode 100644 dist/dev/ui/airplay-button/airplay-button.d.ts.map create mode 100644 dist/dev/ui/airplay-button/airplay-button.js create mode 100644 dist/dev/ui/airplay-button/airplay-button.js.map create mode 100644 dist/dev/ui/airplay-button/index.d.ts create mode 100644 dist/dev/ui/airplay-button/index.js create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-close.d.ts create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-close.js create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-close.js.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-description.d.ts create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-description.js create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-description.js.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-popup.js create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-popup.js.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-root.d.ts create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-root.js create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-root.js.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-title.d.ts create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-title.js create mode 100644 dist/dev/ui/alert-dialog/alert-dialog-title.js.map create mode 100644 dist/dev/ui/alert-dialog/context.d.ts create mode 100644 dist/dev/ui/alert-dialog/context.d.ts.map create mode 100644 dist/dev/ui/alert-dialog/context.js create mode 100644 dist/dev/ui/alert-dialog/context.js.map create mode 100644 dist/dev/ui/alert-dialog/index.d.ts create mode 100644 dist/dev/ui/alert-dialog/index.js create mode 100644 dist/dev/ui/alert-dialog/index.parts.d.ts create mode 100644 dist/dev/ui/alert-dialog/index.parts.d.ts.map create mode 100644 dist/dev/ui/alert-dialog/index.parts.js create mode 100644 dist/dev/ui/alert-dialog/index.parts.js.map create mode 100644 dist/dev/ui/audio-track/index.d.ts create mode 100644 dist/dev/ui/audio-track/index.js create mode 100644 dist/dev/ui/audio-track/use-audio-track-options.d.ts create mode 100644 dist/dev/ui/audio-track/use-audio-track-options.d.ts.map create mode 100644 dist/dev/ui/audio-track/use-audio-track-options.js create mode 100644 dist/dev/ui/audio-track/use-audio-track-options.js.map create mode 100644 dist/dev/ui/buffering-indicator/buffering-indicator.d.ts create mode 100644 dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map create mode 100644 dist/dev/ui/buffering-indicator/buffering-indicator.js create mode 100644 dist/dev/ui/buffering-indicator/buffering-indicator.js.map create mode 100644 dist/dev/ui/buffering-indicator/index.d.ts create mode 100644 dist/dev/ui/buffering-indicator/index.js create mode 100644 dist/dev/ui/captions-button/captions-button.d.ts create mode 100644 dist/dev/ui/captions-button/captions-button.d.ts.map create mode 100644 dist/dev/ui/captions-button/captions-button.js create mode 100644 dist/dev/ui/captions-button/captions-button.js.map create mode 100644 dist/dev/ui/captions-button/index.d.ts create mode 100644 dist/dev/ui/captions-button/index.js create mode 100644 dist/dev/ui/captions-radio-group/index.d.ts create mode 100644 dist/dev/ui/captions-radio-group/index.js create mode 100644 dist/dev/ui/captions-radio-group/use-captions-options.d.ts create mode 100644 dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map create mode 100644 dist/dev/ui/captions-radio-group/use-captions-options.js create mode 100644 dist/dev/ui/captions-radio-group/use-captions-options.js.map create mode 100644 dist/dev/ui/cast-button/cast-button.d.ts create mode 100644 dist/dev/ui/cast-button/cast-button.d.ts.map create mode 100644 dist/dev/ui/cast-button/cast-button.js create mode 100644 dist/dev/ui/cast-button/cast-button.js.map create mode 100644 dist/dev/ui/cast-button/index.d.ts create mode 100644 dist/dev/ui/cast-button/index.js create mode 100644 dist/dev/ui/controls/context.js create mode 100644 dist/dev/ui/controls/context.js.map create mode 100644 dist/dev/ui/controls/controls-group.d.ts create mode 100644 dist/dev/ui/controls/controls-group.d.ts.map create mode 100644 dist/dev/ui/controls/controls-group.js create mode 100644 dist/dev/ui/controls/controls-group.js.map create mode 100644 dist/dev/ui/controls/controls-root.d.ts create mode 100644 dist/dev/ui/controls/controls-root.d.ts.map create mode 100644 dist/dev/ui/controls/controls-root.js create mode 100644 dist/dev/ui/controls/controls-root.js.map create mode 100644 dist/dev/ui/controls/index.d.ts create mode 100644 dist/dev/ui/controls/index.js create mode 100644 dist/dev/ui/controls/index.parts.d.ts create mode 100644 dist/dev/ui/controls/index.parts.d.ts.map create mode 100644 dist/dev/ui/controls/index.parts.js create mode 100644 dist/dev/ui/controls/index.parts.js.map create mode 100644 dist/dev/ui/create-context-part.js create mode 100644 dist/dev/ui/create-context-part.js.map create mode 100644 dist/dev/ui/create-media-button.js create mode 100644 dist/dev/ui/create-media-button.js.map create mode 100644 dist/dev/ui/error-dialog/context.d.ts create mode 100644 dist/dev/ui/error-dialog/context.d.ts.map create mode 100644 dist/dev/ui/error-dialog/context.js create mode 100644 dist/dev/ui/error-dialog/context.js.map create mode 100644 dist/dev/ui/error-dialog/error-dialog-close.d.ts create mode 100644 dist/dev/ui/error-dialog/error-dialog-close.d.ts.map create mode 100644 dist/dev/ui/error-dialog/error-dialog-close.js create mode 100644 dist/dev/ui/error-dialog/error-dialog-close.js.map create mode 100644 dist/dev/ui/error-dialog/error-dialog-description.d.ts create mode 100644 dist/dev/ui/error-dialog/error-dialog-description.d.ts.map create mode 100644 dist/dev/ui/error-dialog/error-dialog-description.js create mode 100644 dist/dev/ui/error-dialog/error-dialog-description.js.map create mode 100644 dist/dev/ui/error-dialog/error-dialog-root.d.ts create mode 100644 dist/dev/ui/error-dialog/error-dialog-root.d.ts.map create mode 100644 dist/dev/ui/error-dialog/error-dialog-root.js create mode 100644 dist/dev/ui/error-dialog/error-dialog-root.js.map create mode 100644 dist/dev/ui/error-dialog/error-dialog-title.d.ts create mode 100644 dist/dev/ui/error-dialog/error-dialog-title.d.ts.map create mode 100644 dist/dev/ui/error-dialog/error-dialog-title.js create mode 100644 dist/dev/ui/error-dialog/error-dialog-title.js.map create mode 100644 dist/dev/ui/error-dialog/index.d.ts create mode 100644 dist/dev/ui/error-dialog/index.js create mode 100644 dist/dev/ui/error-dialog/index.parts.d.ts create mode 100644 dist/dev/ui/error-dialog/index.parts.d.ts.map create mode 100644 dist/dev/ui/error-dialog/index.parts.js create mode 100644 dist/dev/ui/error-dialog/index.parts.js.map create mode 100644 dist/dev/ui/fullscreen-button/fullscreen-button.d.ts create mode 100644 dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map create mode 100644 dist/dev/ui/fullscreen-button/fullscreen-button.js create mode 100644 dist/dev/ui/fullscreen-button/fullscreen-button.js.map create mode 100644 dist/dev/ui/fullscreen-button/index.d.ts create mode 100644 dist/dev/ui/fullscreen-button/index.js create mode 100644 dist/dev/ui/gesture/gesture.d.ts create mode 100644 dist/dev/ui/gesture/gesture.d.ts.map create mode 100644 dist/dev/ui/gesture/gesture.js create mode 100644 dist/dev/ui/gesture/gesture.js.map create mode 100644 dist/dev/ui/gesture/index.d.ts create mode 100644 dist/dev/ui/gesture/index.js create mode 100644 dist/dev/ui/gesture/use-doubletap-gesture.d.ts create mode 100644 dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map create mode 100644 dist/dev/ui/gesture/use-doubletap-gesture.js create mode 100644 dist/dev/ui/gesture/use-doubletap-gesture.js.map create mode 100644 dist/dev/ui/gesture/use-tap-gesture.d.ts create mode 100644 dist/dev/ui/gesture/use-tap-gesture.d.ts.map create mode 100644 dist/dev/ui/gesture/use-tap-gesture.js create mode 100644 dist/dev/ui/gesture/use-tap-gesture.js.map create mode 100644 dist/dev/ui/hooks/use-button.d.ts create mode 100644 dist/dev/ui/hooks/use-button.d.ts.map create mode 100644 dist/dev/ui/hooks/use-button.js create mode 100644 dist/dev/ui/hooks/use-button.js.map create mode 100644 dist/dev/ui/hooks/use-positioned-state.js create mode 100644 dist/dev/ui/hooks/use-positioned-state.js.map create mode 100644 dist/dev/ui/hooks/use-slider.d.ts create mode 100644 dist/dev/ui/hooks/use-slider.d.ts.map create mode 100644 dist/dev/ui/hooks/use-slider.js create mode 100644 dist/dev/ui/hooks/use-slider.js.map create mode 100644 dist/dev/ui/hotkey/hotkey.d.ts create mode 100644 dist/dev/ui/hotkey/hotkey.d.ts.map create mode 100644 dist/dev/ui/hotkey/hotkey.js create mode 100644 dist/dev/ui/hotkey/hotkey.js.map create mode 100644 dist/dev/ui/hotkey/index.d.ts create mode 100644 dist/dev/ui/hotkey/index.js create mode 100644 dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts create mode 100644 dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map create mode 100644 dist/dev/ui/hotkey/use-hotkey-shortcut.js create mode 100644 dist/dev/ui/hotkey/use-hotkey-shortcut.js.map create mode 100644 dist/dev/ui/hotkey/use-hotkey.d.ts create mode 100644 dist/dev/ui/hotkey/use-hotkey.d.ts.map create mode 100644 dist/dev/ui/hotkey/use-hotkey.js create mode 100644 dist/dev/ui/hotkey/use-hotkey.js.map create mode 100644 dist/dev/ui/input-indicators/use-indicator-visibility.js create mode 100644 dist/dev/ui/input-indicators/use-indicator-visibility.js.map create mode 100644 dist/dev/ui/input-indicators/use-input-action-subscription.js create mode 100644 dist/dev/ui/input-indicators/use-input-action-subscription.js.map create mode 100644 dist/dev/ui/input-indicators/use-input-indicator-root.js create mode 100644 dist/dev/ui/input-indicators/use-input-indicator-root.js.map create mode 100644 dist/dev/ui/input-indicators/use-rendered-indicator-state.js create mode 100644 dist/dev/ui/input-indicators/use-rendered-indicator-state.js.map create mode 100644 dist/dev/ui/live-button/index.d.ts create mode 100644 dist/dev/ui/live-button/index.js create mode 100644 dist/dev/ui/live-button/live-button.d.ts create mode 100644 dist/dev/ui/live-button/live-button.d.ts.map create mode 100644 dist/dev/ui/live-button/live-button.js create mode 100644 dist/dev/ui/live-button/live-button.js.map create mode 100644 dist/dev/ui/menu/context.d.ts create mode 100644 dist/dev/ui/menu/context.d.ts.map create mode 100644 dist/dev/ui/menu/context.js create mode 100644 dist/dev/ui/menu/context.js.map create mode 100644 dist/dev/ui/menu/index.d.ts create mode 100644 dist/dev/ui/menu/index.js create mode 100644 dist/dev/ui/menu/index.parts.d.ts create mode 100644 dist/dev/ui/menu/index.parts.d.ts.map create mode 100644 dist/dev/ui/menu/index.parts.js create mode 100644 dist/dev/ui/menu/index.parts.js.map create mode 100644 dist/dev/ui/menu/menu-back.d.ts create mode 100644 dist/dev/ui/menu/menu-back.d.ts.map create mode 100644 dist/dev/ui/menu/menu-back.js create mode 100644 dist/dev/ui/menu/menu-back.js.map create mode 100644 dist/dev/ui/menu/menu-checkbox-item.d.ts create mode 100644 dist/dev/ui/menu/menu-checkbox-item.d.ts.map create mode 100644 dist/dev/ui/menu/menu-checkbox-item.js create mode 100644 dist/dev/ui/menu/menu-checkbox-item.js.map create mode 100644 dist/dev/ui/menu/menu-content.d.ts create mode 100644 dist/dev/ui/menu/menu-content.d.ts.map create mode 100644 dist/dev/ui/menu/menu-content.js create mode 100644 dist/dev/ui/menu/menu-content.js.map create mode 100644 dist/dev/ui/menu/menu-group-label.d.ts create mode 100644 dist/dev/ui/menu/menu-group-label.d.ts.map create mode 100644 dist/dev/ui/menu/menu-group-label.js create mode 100644 dist/dev/ui/menu/menu-group-label.js.map create mode 100644 dist/dev/ui/menu/menu-group.d.ts create mode 100644 dist/dev/ui/menu/menu-group.d.ts.map create mode 100644 dist/dev/ui/menu/menu-group.js create mode 100644 dist/dev/ui/menu/menu-group.js.map create mode 100644 dist/dev/ui/menu/menu-item-indicator.d.ts create mode 100644 dist/dev/ui/menu/menu-item-indicator.d.ts.map create mode 100644 dist/dev/ui/menu/menu-item-indicator.js create mode 100644 dist/dev/ui/menu/menu-item-indicator.js.map create mode 100644 dist/dev/ui/menu/menu-item-setting-provider.js create mode 100644 dist/dev/ui/menu/menu-item-setting-provider.js.map create mode 100644 dist/dev/ui/menu/menu-item-type.d.ts create mode 100644 dist/dev/ui/menu/menu-item-type.d.ts.map create mode 100644 dist/dev/ui/menu/menu-item-value.d.ts create mode 100644 dist/dev/ui/menu/menu-item-value.d.ts.map create mode 100644 dist/dev/ui/menu/menu-item-value.js create mode 100644 dist/dev/ui/menu/menu-item-value.js.map create mode 100644 dist/dev/ui/menu/menu-item.d.ts create mode 100644 dist/dev/ui/menu/menu-item.d.ts.map create mode 100644 dist/dev/ui/menu/menu-item.js create mode 100644 dist/dev/ui/menu/menu-item.js.map create mode 100644 dist/dev/ui/menu/menu-radio-group.d.ts create mode 100644 dist/dev/ui/menu/menu-radio-group.d.ts.map create mode 100644 dist/dev/ui/menu/menu-radio-group.js create mode 100644 dist/dev/ui/menu/menu-radio-group.js.map create mode 100644 dist/dev/ui/menu/menu-radio-item.d.ts create mode 100644 dist/dev/ui/menu/menu-radio-item.d.ts.map create mode 100644 dist/dev/ui/menu/menu-radio-item.js create mode 100644 dist/dev/ui/menu/menu-radio-item.js.map create mode 100644 dist/dev/ui/menu/menu-root.d.ts create mode 100644 dist/dev/ui/menu/menu-root.d.ts.map create mode 100644 dist/dev/ui/menu/menu-root.js create mode 100644 dist/dev/ui/menu/menu-root.js.map create mode 100644 dist/dev/ui/menu/menu-separator.d.ts create mode 100644 dist/dev/ui/menu/menu-separator.d.ts.map create mode 100644 dist/dev/ui/menu/menu-separator.js create mode 100644 dist/dev/ui/menu/menu-separator.js.map create mode 100644 dist/dev/ui/menu/menu-trigger.d.ts create mode 100644 dist/dev/ui/menu/menu-trigger.d.ts.map create mode 100644 dist/dev/ui/menu/menu-trigger.js create mode 100644 dist/dev/ui/menu/menu-trigger.js.map create mode 100644 dist/dev/ui/menu/menu-view.d.ts create mode 100644 dist/dev/ui/menu/menu-view.d.ts.map create mode 100644 dist/dev/ui/menu/menu-view.js create mode 100644 dist/dev/ui/menu/menu-view.js.map create mode 100644 dist/dev/ui/menu/use-menu-group.js create mode 100644 dist/dev/ui/menu/use-menu-group.js.map create mode 100644 dist/dev/ui/mute-button/index.d.ts create mode 100644 dist/dev/ui/mute-button/index.js create mode 100644 dist/dev/ui/mute-button/mute-button.d.ts create mode 100644 dist/dev/ui/mute-button/mute-button.d.ts.map create mode 100644 dist/dev/ui/mute-button/mute-button.js create mode 100644 dist/dev/ui/mute-button/mute-button.js.map create mode 100644 dist/dev/ui/pip-button/index.d.ts create mode 100644 dist/dev/ui/pip-button/index.js create mode 100644 dist/dev/ui/pip-button/pip-button.d.ts create mode 100644 dist/dev/ui/pip-button/pip-button.d.ts.map create mode 100644 dist/dev/ui/pip-button/pip-button.js create mode 100644 dist/dev/ui/pip-button/pip-button.js.map create mode 100644 dist/dev/ui/play-button/index.d.ts create mode 100644 dist/dev/ui/play-button/index.js create mode 100644 dist/dev/ui/play-button/play-button.d.ts create mode 100644 dist/dev/ui/play-button/play-button.d.ts.map create mode 100644 dist/dev/ui/play-button/play-button.js create mode 100644 dist/dev/ui/play-button/play-button.js.map create mode 100644 dist/dev/ui/playback-rate-button/index.d.ts create mode 100644 dist/dev/ui/playback-rate-button/index.js create mode 100644 dist/dev/ui/playback-rate-button/playback-rate-button.d.ts create mode 100644 dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map create mode 100644 dist/dev/ui/playback-rate-button/playback-rate-button.js create mode 100644 dist/dev/ui/playback-rate-button/playback-rate-button.js.map create mode 100644 dist/dev/ui/playback-rate/index.d.ts create mode 100644 dist/dev/ui/playback-rate/index.js create mode 100644 dist/dev/ui/playback-rate/use-playback-rate-options.d.ts create mode 100644 dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map create mode 100644 dist/dev/ui/playback-rate/use-playback-rate-options.js create mode 100644 dist/dev/ui/playback-rate/use-playback-rate-options.js.map create mode 100644 dist/dev/ui/popover/context.d.ts create mode 100644 dist/dev/ui/popover/context.d.ts.map create mode 100644 dist/dev/ui/popover/context.js create mode 100644 dist/dev/ui/popover/context.js.map create mode 100644 dist/dev/ui/popover/index.d.ts create mode 100644 dist/dev/ui/popover/index.js create mode 100644 dist/dev/ui/popover/index.parts.d.ts create mode 100644 dist/dev/ui/popover/index.parts.d.ts.map create mode 100644 dist/dev/ui/popover/index.parts.js create mode 100644 dist/dev/ui/popover/index.parts.js.map create mode 100644 dist/dev/ui/popover/popover-arrow.d.ts create mode 100644 dist/dev/ui/popover/popover-arrow.d.ts.map create mode 100644 dist/dev/ui/popover/popover-arrow.js create mode 100644 dist/dev/ui/popover/popover-arrow.js.map create mode 100644 dist/dev/ui/popover/popover-popup.d.ts create mode 100644 dist/dev/ui/popover/popover-popup.d.ts.map create mode 100644 dist/dev/ui/popover/popover-popup.js create mode 100644 dist/dev/ui/popover/popover-popup.js.map create mode 100644 dist/dev/ui/popover/popover-root.d.ts create mode 100644 dist/dev/ui/popover/popover-root.d.ts.map create mode 100644 dist/dev/ui/popover/popover-root.js create mode 100644 dist/dev/ui/popover/popover-root.js.map create mode 100644 dist/dev/ui/popover/popover-trigger.d.ts create mode 100644 dist/dev/ui/popover/popover-trigger.d.ts.map create mode 100644 dist/dev/ui/popover/popover-trigger.js create mode 100644 dist/dev/ui/popover/popover-trigger.js.map create mode 100644 dist/dev/ui/poster/index.d.ts create mode 100644 dist/dev/ui/poster/index.js create mode 100644 dist/dev/ui/poster/poster.d.ts create mode 100644 dist/dev/ui/poster/poster.d.ts.map create mode 100644 dist/dev/ui/poster/poster.js create mode 100644 dist/dev/ui/poster/poster.js.map create mode 100644 dist/dev/ui/quality/index.d.ts create mode 100644 dist/dev/ui/quality/index.js create mode 100644 dist/dev/ui/quality/use-quality-options.d.ts create mode 100644 dist/dev/ui/quality/use-quality-options.d.ts.map create mode 100644 dist/dev/ui/quality/use-quality-options.js create mode 100644 dist/dev/ui/quality/use-quality-options.js.map create mode 100644 dist/dev/ui/seek-button/index.d.ts create mode 100644 dist/dev/ui/seek-button/index.js create mode 100644 dist/dev/ui/seek-button/seek-button.d.ts create mode 100644 dist/dev/ui/seek-button/seek-button.d.ts.map create mode 100644 dist/dev/ui/seek-button/seek-button.js create mode 100644 dist/dev/ui/seek-button/seek-button.js.map create mode 100644 dist/dev/ui/seek-indicator/context.js create mode 100644 dist/dev/ui/seek-indicator/context.js.map create mode 100644 dist/dev/ui/seek-indicator/index.d.ts create mode 100644 dist/dev/ui/seek-indicator/index.js create mode 100644 dist/dev/ui/seek-indicator/index.parts.d.ts create mode 100644 dist/dev/ui/seek-indicator/index.parts.d.ts.map create mode 100644 dist/dev/ui/seek-indicator/index.parts.js create mode 100644 dist/dev/ui/seek-indicator/index.parts.js.map create mode 100644 dist/dev/ui/seek-indicator/seek-indicator-root.d.ts create mode 100644 dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map create mode 100644 dist/dev/ui/seek-indicator/seek-indicator-root.js create mode 100644 dist/dev/ui/seek-indicator/seek-indicator-root.js.map create mode 100644 dist/dev/ui/seek-indicator/seek-indicator-value.d.ts create mode 100644 dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map create mode 100644 dist/dev/ui/seek-indicator/seek-indicator-value.js create mode 100644 dist/dev/ui/seek-indicator/seek-indicator-value.js.map create mode 100644 dist/dev/ui/slider/context.js create mode 100644 dist/dev/ui/slider/context.js.map create mode 100644 dist/dev/ui/slider/index.d.ts create mode 100644 dist/dev/ui/slider/index.js create mode 100644 dist/dev/ui/slider/index.parts.d.ts create mode 100644 dist/dev/ui/slider/index.parts.d.ts.map create mode 100644 dist/dev/ui/slider/index.parts.js create mode 100644 dist/dev/ui/slider/index.parts.js.map create mode 100644 dist/dev/ui/slider/slider-buffer.d.ts create mode 100644 dist/dev/ui/slider/slider-buffer.d.ts.map create mode 100644 dist/dev/ui/slider/slider-buffer.js create mode 100644 dist/dev/ui/slider/slider-buffer.js.map create mode 100644 dist/dev/ui/slider/slider-fill.d.ts create mode 100644 dist/dev/ui/slider/slider-fill.d.ts.map create mode 100644 dist/dev/ui/slider/slider-fill.js create mode 100644 dist/dev/ui/slider/slider-fill.js.map create mode 100644 dist/dev/ui/slider/slider-preview.d.ts create mode 100644 dist/dev/ui/slider/slider-preview.d.ts.map create mode 100644 dist/dev/ui/slider/slider-preview.js create mode 100644 dist/dev/ui/slider/slider-preview.js.map create mode 100644 dist/dev/ui/slider/slider-root.d.ts create mode 100644 dist/dev/ui/slider/slider-root.d.ts.map create mode 100644 dist/dev/ui/slider/slider-root.js create mode 100644 dist/dev/ui/slider/slider-root.js.map create mode 100644 dist/dev/ui/slider/slider-thumb.d.ts create mode 100644 dist/dev/ui/slider/slider-thumb.d.ts.map create mode 100644 dist/dev/ui/slider/slider-thumb.js create mode 100644 dist/dev/ui/slider/slider-thumb.js.map create mode 100644 dist/dev/ui/slider/slider-thumbnail.d.ts create mode 100644 dist/dev/ui/slider/slider-thumbnail.d.ts.map create mode 100644 dist/dev/ui/slider/slider-thumbnail.js create mode 100644 dist/dev/ui/slider/slider-thumbnail.js.map create mode 100644 dist/dev/ui/slider/slider-track.d.ts create mode 100644 dist/dev/ui/slider/slider-track.d.ts.map create mode 100644 dist/dev/ui/slider/slider-track.js create mode 100644 dist/dev/ui/slider/slider-track.js.map create mode 100644 dist/dev/ui/slider/slider-value.d.ts create mode 100644 dist/dev/ui/slider/slider-value.d.ts.map create mode 100644 dist/dev/ui/slider/slider-value.js create mode 100644 dist/dev/ui/slider/slider-value.js.map create mode 100644 dist/dev/ui/status-announcer/index.d.ts create mode 100644 dist/dev/ui/status-announcer/index.js create mode 100644 dist/dev/ui/status-announcer/status-announcer.d.ts create mode 100644 dist/dev/ui/status-announcer/status-announcer.d.ts.map create mode 100644 dist/dev/ui/status-announcer/status-announcer.js create mode 100644 dist/dev/ui/status-announcer/status-announcer.js.map create mode 100644 dist/dev/ui/status-indicator/context.js create mode 100644 dist/dev/ui/status-indicator/context.js.map create mode 100644 dist/dev/ui/status-indicator/index.d.ts create mode 100644 dist/dev/ui/status-indicator/index.js create mode 100644 dist/dev/ui/status-indicator/index.parts.d.ts create mode 100644 dist/dev/ui/status-indicator/index.parts.d.ts.map create mode 100644 dist/dev/ui/status-indicator/index.parts.js create mode 100644 dist/dev/ui/status-indicator/index.parts.js.map create mode 100644 dist/dev/ui/status-indicator/status-indicator-root.d.ts create mode 100644 dist/dev/ui/status-indicator/status-indicator-root.d.ts.map create mode 100644 dist/dev/ui/status-indicator/status-indicator-root.js create mode 100644 dist/dev/ui/status-indicator/status-indicator-root.js.map create mode 100644 dist/dev/ui/status-indicator/status-indicator-value.d.ts create mode 100644 dist/dev/ui/status-indicator/status-indicator-value.d.ts.map create mode 100644 dist/dev/ui/status-indicator/status-indicator-value.js create mode 100644 dist/dev/ui/status-indicator/status-indicator-value.js.map create mode 100644 dist/dev/ui/thumbnail/index.d.ts create mode 100644 dist/dev/ui/thumbnail/index.js create mode 100644 dist/dev/ui/thumbnail/thumbnail.d.ts create mode 100644 dist/dev/ui/thumbnail/thumbnail.d.ts.map create mode 100644 dist/dev/ui/thumbnail/thumbnail.js create mode 100644 dist/dev/ui/thumbnail/thumbnail.js.map create mode 100644 dist/dev/ui/time-slider/index.d.ts create mode 100644 dist/dev/ui/time-slider/index.js create mode 100644 dist/dev/ui/time-slider/index.parts.d.ts create mode 100644 dist/dev/ui/time-slider/index.parts.d.ts.map create mode 100644 dist/dev/ui/time-slider/index.parts.js create mode 100644 dist/dev/ui/time-slider/index.parts.js.map create mode 100644 dist/dev/ui/time-slider/time-slider-root.d.ts create mode 100644 dist/dev/ui/time-slider/time-slider-root.d.ts.map create mode 100644 dist/dev/ui/time-slider/time-slider-root.js create mode 100644 dist/dev/ui/time-slider/time-slider-root.js.map create mode 100644 dist/dev/ui/time/index.d.ts create mode 100644 dist/dev/ui/time/index.js create mode 100644 dist/dev/ui/time/index.parts.d.ts create mode 100644 dist/dev/ui/time/index.parts.d.ts.map create mode 100644 dist/dev/ui/time/index.parts.js create mode 100644 dist/dev/ui/time/index.parts.js.map create mode 100644 dist/dev/ui/time/time-group.d.ts create mode 100644 dist/dev/ui/time/time-group.d.ts.map create mode 100644 dist/dev/ui/time/time-group.js create mode 100644 dist/dev/ui/time/time-group.js.map create mode 100644 dist/dev/ui/time/time-separator.d.ts create mode 100644 dist/dev/ui/time/time-separator.d.ts.map create mode 100644 dist/dev/ui/time/time-separator.js create mode 100644 dist/dev/ui/time/time-separator.js.map create mode 100644 dist/dev/ui/time/time-value.d.ts create mode 100644 dist/dev/ui/time/time-value.d.ts.map create mode 100644 dist/dev/ui/time/time-value.js create mode 100644 dist/dev/ui/time/time-value.js.map create mode 100644 dist/dev/ui/tooltip/context.d.ts create mode 100644 dist/dev/ui/tooltip/context.d.ts.map create mode 100644 dist/dev/ui/tooltip/context.js create mode 100644 dist/dev/ui/tooltip/context.js.map create mode 100644 dist/dev/ui/tooltip/group-context.js create mode 100644 dist/dev/ui/tooltip/group-context.js.map create mode 100644 dist/dev/ui/tooltip/index.d.ts create mode 100644 dist/dev/ui/tooltip/index.js create mode 100644 dist/dev/ui/tooltip/index.parts.d.ts create mode 100644 dist/dev/ui/tooltip/index.parts.d.ts.map create mode 100644 dist/dev/ui/tooltip/index.parts.js create mode 100644 dist/dev/ui/tooltip/index.parts.js.map create mode 100644 dist/dev/ui/tooltip/tooltip-arrow.d.ts create mode 100644 dist/dev/ui/tooltip/tooltip-arrow.d.ts.map create mode 100644 dist/dev/ui/tooltip/tooltip-arrow.js create mode 100644 dist/dev/ui/tooltip/tooltip-arrow.js.map create mode 100644 dist/dev/ui/tooltip/tooltip-label.d.ts create mode 100644 dist/dev/ui/tooltip/tooltip-label.d.ts.map create mode 100644 dist/dev/ui/tooltip/tooltip-label.js create mode 100644 dist/dev/ui/tooltip/tooltip-label.js.map create mode 100644 dist/dev/ui/tooltip/tooltip-popup.d.ts create mode 100644 dist/dev/ui/tooltip/tooltip-popup.d.ts.map create mode 100644 dist/dev/ui/tooltip/tooltip-popup.js create mode 100644 dist/dev/ui/tooltip/tooltip-popup.js.map create mode 100644 dist/dev/ui/tooltip/tooltip-provider.d.ts create mode 100644 dist/dev/ui/tooltip/tooltip-provider.d.ts.map create mode 100644 dist/dev/ui/tooltip/tooltip-provider.js create mode 100644 dist/dev/ui/tooltip/tooltip-provider.js.map create mode 100644 dist/dev/ui/tooltip/tooltip-root.d.ts create mode 100644 dist/dev/ui/tooltip/tooltip-root.d.ts.map create mode 100644 dist/dev/ui/tooltip/tooltip-root.js create mode 100644 dist/dev/ui/tooltip/tooltip-root.js.map create mode 100644 dist/dev/ui/tooltip/tooltip-shortcut.d.ts create mode 100644 dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map create mode 100644 dist/dev/ui/tooltip/tooltip-shortcut.js create mode 100644 dist/dev/ui/tooltip/tooltip-shortcut.js.map create mode 100644 dist/dev/ui/tooltip/tooltip-trigger.d.ts create mode 100644 dist/dev/ui/tooltip/tooltip-trigger.d.ts.map create mode 100644 dist/dev/ui/tooltip/tooltip-trigger.js create mode 100644 dist/dev/ui/tooltip/tooltip-trigger.js.map create mode 100644 dist/dev/ui/volume-indicator/context.js create mode 100644 dist/dev/ui/volume-indicator/context.js.map create mode 100644 dist/dev/ui/volume-indicator/index.d.ts create mode 100644 dist/dev/ui/volume-indicator/index.js create mode 100644 dist/dev/ui/volume-indicator/index.parts.d.ts create mode 100644 dist/dev/ui/volume-indicator/index.parts.d.ts.map create mode 100644 dist/dev/ui/volume-indicator/index.parts.js create mode 100644 dist/dev/ui/volume-indicator/index.parts.js.map create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts.map create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-fill.js create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-fill.js.map create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-root.d.ts create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-root.js create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-root.js.map create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-value.d.ts create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-value.d.ts.map create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-value.js create mode 100644 dist/dev/ui/volume-indicator/volume-indicator-value.js.map create mode 100644 dist/dev/ui/volume-slider/index.d.ts create mode 100644 dist/dev/ui/volume-slider/index.js create mode 100644 dist/dev/ui/volume-slider/index.parts.d.ts create mode 100644 dist/dev/ui/volume-slider/index.parts.d.ts.map create mode 100644 dist/dev/ui/volume-slider/index.parts.js create mode 100644 dist/dev/ui/volume-slider/index.parts.js.map create mode 100644 dist/dev/ui/volume-slider/volume-slider-root.d.ts create mode 100644 dist/dev/ui/volume-slider/volume-slider-root.d.ts.map create mode 100644 dist/dev/ui/volume-slider/volume-slider-root.js create mode 100644 dist/dev/ui/volume-slider/volume-slider-root.js.map create mode 100644 dist/dev/utils/merge-props.d.ts create mode 100644 dist/dev/utils/merge-props.d.ts.map create mode 100644 dist/dev/utils/merge-props.js create mode 100644 dist/dev/utils/merge-props.js.map create mode 100644 dist/dev/utils/types.d.ts create mode 100644 dist/dev/utils/types.d.ts.map create mode 100644 dist/dev/utils/use-attach-iframe.js create mode 100644 dist/dev/utils/use-attach-iframe.js.map create mode 100644 dist/dev/utils/use-attach-media.d.ts create mode 100644 dist/dev/utils/use-attach-media.d.ts.map create mode 100644 dist/dev/utils/use-attach-media.js create mode 100644 dist/dev/utils/use-attach-media.js.map create mode 100644 dist/dev/utils/use-composed-refs.d.ts create mode 100644 dist/dev/utils/use-composed-refs.d.ts.map create mode 100644 dist/dev/utils/use-composed-refs.js create mode 100644 dist/dev/utils/use-composed-refs.js.map create mode 100644 dist/dev/utils/use-destroy.d.ts create mode 100644 dist/dev/utils/use-destroy.d.ts.map create mode 100644 dist/dev/utils/use-destroy.js create mode 100644 dist/dev/utils/use-destroy.js.map create mode 100644 dist/dev/utils/use-force-render.js create mode 100644 dist/dev/utils/use-force-render.js.map create mode 100644 dist/dev/utils/use-latest-ref.d.ts create mode 100644 dist/dev/utils/use-latest-ref.d.ts.map create mode 100644 dist/dev/utils/use-latest-ref.js create mode 100644 dist/dev/utils/use-latest-ref.js.map create mode 100644 dist/dev/utils/use-media-component.d.ts create mode 100644 dist/dev/utils/use-media-component.d.ts.map create mode 100644 dist/dev/utils/use-media-component.js create mode 100644 dist/dev/utils/use-media-component.js.map create mode 100644 dist/dev/utils/use-media-instance.d.ts create mode 100644 dist/dev/utils/use-media-instance.d.ts.map create mode 100644 dist/dev/utils/use-media-instance.js create mode 100644 dist/dev/utils/use-media-instance.js.map create mode 100644 dist/dev/utils/use-render.d.ts create mode 100644 dist/dev/utils/use-render.d.ts.map create mode 100644 dist/dev/utils/use-render.js create mode 100644 dist/dev/utils/use-render.js.map create mode 100644 dist/dev/utils/use-safe-id.js create mode 100644 dist/dev/utils/use-safe-id.js.map create mode 100644 dist/dev/utils/use-sync-props.js create mode 100644 dist/dev/utils/use-sync-props.js.map create mode 100644 package.json diff --git a/README.md b/README.md new file mode 100644 index 00000000..fedb15c0 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# @videojs/react + +[![package-badge]][package] + +> **⚠️ Beta** Close to stable. Experimental adoption in real projects. + +## Overview + +`@videojs/react` is a comprehensive library for building media players in React applications. It +provides a complete set of components, hooks, and utilities for creating feature-rich, accessible +video and audio players with React. + +## Documentation + +Read the docs at [videojs.org](https://videojs.org/docs/framework/react), or after installing, +browse the bundled markdown at `node_modules/@videojs/react/docs/` (start with `llms.txt` for the +structured index). + +## Community + +If you need help with anything related to Video.js 10, or if you'd like to casually chat with other +members: + +- [Join Discord Server][discord] +- [See GitHub Discussions][gh-discussions] + +## License + +[Apache-2.0](./LICENSE) + +[package]: https://www.npmjs.com/package/@videojs/react +[package-badge]: https://img.shields.io/npm/v/@videojs/react?label=@videojs/react +[discord]: https://discord.gg/JBqHh485uF +[gh-discussions]: https://github.com/videojs/v10/discussions diff --git a/dist/default/_virtual/_rolldown/runtime.js b/dist/default/_virtual/_rolldown/runtime.js new file mode 100644 index 00000000..d326bb2a --- /dev/null +++ b/dist/default/_virtual/_rolldown/runtime.js @@ -0,0 +1,13 @@ +//#region \0rolldown/runtime.js +var __defProp = Object.defineProperty; +var __exportAll = (all, no_symbols) => { + let target = {}; + for (var name in all) __defProp(target, name, { + get: all[name], + enumerable: true + }); + if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" }); + return target; +}; +//#endregion +export { __exportAll }; diff --git a/dist/default/i18n/context.js b/dist/default/i18n/context.js new file mode 100644 index 00000000..e183d16c --- /dev/null +++ b/dist/default/i18n/context.js @@ -0,0 +1,36 @@ +"use client"; +import { createTranslator, getI18nTranslations, onI18nRegistryChange } from "@videojs/core/i18n"; +import { createContext, useContext, useEffect, useMemo, useReducer } from "react"; +//#region src/i18n/context.tsx +/** React context carrying the active translator and locale. @public */ +const I18nContext = createContext(null); +const LocaleRootContext = createContext(void 0); +/** +* Returns the translator for the nearest `I18nProvider`, or English defaults when none is mounted. +* +* @public +*/ +function useTranslator() { + const ctx = useContext(I18nContext); + const [registryEpoch, invalidateRegistry] = useReducer((epoch) => epoch + 1, 0); + useEffect(() => { + return onI18nRegistryChange(() => invalidateRegistry()); + }, []); + const fallback = useMemo(() => { + return createTranslator(getI18nTranslations("en"), "en"); + }, [registryEpoch]); + if (!ctx) return fallback; + return ctx.translator; +} +/** +* Returns the active BCP 47 locale tag from the nearest `I18nProvider`, or `'en'` when none is mounted. +* +* @public +*/ +function useLocale() { + return useContext(I18nContext)?.locale ?? "en"; +} +//#endregion +export { I18nContext, LocaleRootContext, useLocale, useTranslator }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/default/i18n/context.js.map b/dist/default/i18n/context.js.map new file mode 100644 index 00000000..5fbfba6e --- /dev/null +++ b/dist/default/i18n/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../src/i18n/context.tsx"],"sourcesContent":["'use client';\n\nimport {\n createTranslator,\n getI18nTranslations,\n type Locale,\n onI18nRegistryChange,\n type Translations,\n type Translator,\n} from '@videojs/core/i18n';\nimport { createContext, useContext, useEffect, useMemo, useReducer } from 'react';\n\nexport type AddLocaleRoot = () => () => void;\n\nexport interface I18nContextValue {\n translator: Translator;\n locale: Locale;\n /** True when a provider received an explicit locale prop. */\n localeFromProp: boolean;\n /** Overrides passed to this provider. */\n translations?: Partial;\n /** Callback inherited by nested locale roots. */\n onActiveLocaleChange?: (locale: Locale) => void;\n}\n\n/** React context carrying the active translator and locale. @public */\nexport const I18nContext = createContext(null);\n\nexport const LocaleRootContext = createContext(undefined);\n\n/**\n * Returns the translator for the nearest `I18nProvider`, or English defaults when none is mounted.\n *\n * @public\n */\nexport function useTranslator(): Translator {\n const ctx = useContext(I18nContext);\n const [registryEpoch, invalidateRegistry] = useReducer((epoch: number) => epoch + 1, 0);\n\n useEffect(() => {\n return onI18nRegistryChange(() => invalidateRegistry());\n }, []);\n\n const fallback = useMemo(() => {\n void registryEpoch;\n return createTranslator(getI18nTranslations('en'), 'en');\n }, [registryEpoch]);\n\n if (!ctx) {\n return fallback;\n }\n return ctx.translator;\n}\n\n/**\n * Returns the active BCP 47 locale tag from the nearest `I18nProvider`, or `'en'` when none is mounted.\n *\n * @public\n */\nexport function useLocale(): Locale {\n const ctx = useContext(I18nContext);\n return ctx?.locale ?? 'en';\n}\n"],"mappings":";;;;;AA0BA,MAAa,cAAc,cAAuC,IAAI;AAEtE,MAAa,oBAAoB,cAAyC,KAAA,CAAS;;;;;;AAOnF,SAAgB,gBAA4B;CAC1C,MAAM,MAAM,WAAW,WAAW;CAClC,MAAM,CAAC,eAAe,sBAAsB,YAAY,UAAkB,QAAQ,GAAG,CAAC;CAEtF,gBAAgB;EACd,OAAO,2BAA2B,mBAAmB,CAAC;CACxD,GAAG,CAAC,CAAC;CAEL,MAAM,WAAW,cAAc;EAE7B,OAAO,iBAAiB,oBAAoB,IAAI,GAAG,IAAI;CACzD,GAAG,CAAC,aAAa,CAAC;CAElB,IAAI,CAAC,KACH,OAAO;CAET,OAAO,IAAI;AACb;;;;;;AAOA,SAAgB,YAAoB;CAElC,OADY,WAAW,WACd,CAAC,EAAE,UAAU;AACxB"} \ No newline at end of file diff --git a/dist/default/i18n/create-i18n.js b/dist/default/i18n/create-i18n.js new file mode 100644 index 00000000..0be6103f --- /dev/null +++ b/dist/default/i18n/create-i18n.js @@ -0,0 +1,76 @@ +"use client"; +import { I18nContext, LocaleRootContext, useLocale, useTranslator } from "./context.js"; +import { getProviderRootProps } from "./get-provider-root-props.js"; +import { useAmbientLang } from "./use-ambient-lang.js"; +import { useLangRootElement } from "./use-lang-root-element.js"; +import { useLazyTranslations } from "./use-lazy-translations.js"; +import { useLocaleRootNotifications } from "./use-locale-root-notifications.js"; +import { useMergedTranslations } from "./use-merged-translations.js"; +import { createTranslator, loadLocale } from "@videojs/core/i18n"; +import { useContext, useMemo } from "react"; +import { effectiveLocale } from "@videojs/utils/dom"; +import { jsx } from "react/jsx-runtime"; +//#region src/i18n/create-i18n.tsx +/** +* Creates an i18n provider and hooks for the shared React i18n context. +* +* @param options - Optional hooks such as custom built-in locale loading. +* @public +*/ +function createI18n(options) { + const loader = options?.loader ?? loadLocale; + function I18nProviderRoot({ locale: localeProp, langRootRef, parentLocale, localeFromProp = localeProp !== void 0, translations: translationsProp, children, onActiveLocaleChange, parentAddLocaleRoot }) { + const langRootElement = useLangRootElement(langRootRef, parentAddLocaleRoot); + const ambientLang = useAmbientLang(langRootRef !== void 0, langRootElement); + const resolvedLocale = useMemo(() => effectiveLocale(localeProp, ambientLang ?? parentLocale), [ + localeProp, + ambientLang, + parentLocale + ]); + const addLocaleRoot = useLocaleRootNotifications(resolvedLocale, onActiveLocaleChange); + const translations = useMergedTranslations(resolvedLocale, useLazyTranslations(resolvedLocale, loader), translationsProp); + const translator = useMemo(() => createTranslator(translations, resolvedLocale), [translations, resolvedLocale]); + const value = useMemo(() => ({ + translator, + locale: resolvedLocale, + localeFromProp, + ...translationsProp !== void 0 ? { translations: translationsProp } : {}, + ...onActiveLocaleChange !== void 0 ? { onActiveLocaleChange } : {} + }), [ + translator, + resolvedLocale, + localeFromProp, + translationsProp, + onActiveLocaleChange + ]); + return /* @__PURE__ */ jsx(LocaleRootContext.Provider, { + value: addLocaleRoot, + children: /* @__PURE__ */ jsx(I18nContext.Provider, { + value, + children + }) + }); + } + function I18nProvider(props) { + const rootProps = getProviderRootProps(props, useContext(I18nContext), useContext(LocaleRootContext)); + if (!rootProps) return props.children; + return /* @__PURE__ */ jsx(I18nProviderRoot, { ...rootProps }); + } + return { + I18nContext, + I18nProvider, + useTranslator, + useLocale + }; +} +/** +* Resolves locale and supplies a typed translator to descendants. Mount this explicitly for +* translated controls, forced locales, SSR copy, or locale-aware player roots. +* +* @public +*/ +const I18nProvider = createI18n().I18nProvider; +//#endregion +export { I18nProvider, createI18n }; + +//# sourceMappingURL=create-i18n.js.map \ No newline at end of file diff --git a/dist/default/i18n/create-i18n.js.map b/dist/default/i18n/create-i18n.js.map new file mode 100644 index 00000000..66df42d5 --- /dev/null +++ b/dist/default/i18n/create-i18n.js.map @@ -0,0 +1 @@ +{"version":3,"file":"create-i18n.js","names":["defaultLoader"],"sources":["../../../src/i18n/create-i18n.tsx"],"sourcesContent":["'use client';\n\nimport {\n createTranslator,\n loadLocale as defaultLoader,\n type FlatTranslations,\n type Locale,\n type Translations,\n} from '@videojs/core/i18n';\nimport { effectiveLocale } from '@videojs/utils/dom';\nimport { type Context, type ReactNode, type RefObject, useContext, useMemo } from 'react';\n\nimport { I18nContext, type I18nContextValue, LocaleRootContext, useLocale, useTranslator } from './context';\nimport { getProviderRootProps, type I18nProviderRootProps } from './get-provider-root-props';\nimport { useAmbientLang } from './use-ambient-lang';\nimport { useLangRootElement } from './use-lang-root-element';\nimport { useLazyTranslations } from './use-lazy-translations';\nimport { useLocaleRootNotifications } from './use-locale-root-notifications';\nimport { useMergedTranslations } from './use-merged-translations';\n\nexport interface CreateI18nOptions {\n /** Override lazy loading of shipped locale packs (tests or custom loaders). */\n loader?: (tag: string) => Promise | undefined>;\n}\n\nexport interface I18nProviderProps {\n /**\n * Forces the active locale. Omit to inherit the nearest non-empty `lang` by walking DOM\n * ancestors from {@link langRootRef} when set, otherwise from `document.documentElement`\n * (typically ``). Updates when any `lang` attribute changes anywhere under ``,\n * or when subtree moves alter which ancestor supplies `lang`. For SSR, pass `locale` explicitly.\n */\n locale?: Locale;\n /**\n * Element whose ancestor chain is searched for a non-empty `lang` when {@link locale} is\n * omitted—for example a ref to your player shell `HTMLElement`.\n */\n langRootRef?: RefObject;\n /**\n * Per-locale string overrides merged on top of the global registry and any lazy built-in\n * packs for {@link locale}. Applies to translated\n * `aria-label` values and tooltip copy for skin controls wired through `useTranslator`.\n *\n * @example\n * ```tsx\n * \n * \n * \n * ```\n */\n translations?: Partial;\n children: ReactNode;\n /** Fires when the resolved locale changes (caption selection hooks may use this later). */\n onActiveLocaleChange?: (locale: Locale) => void;\n}\n\nexport type { I18nContextValue } from './context';\n\nexport interface CreateI18nResult {\n I18nContext: Context;\n I18nProvider: (props: I18nProviderProps) => ReactNode;\n useTranslator: typeof useTranslator;\n useLocale: typeof useLocale;\n}\n\n/**\n * Creates an i18n provider and hooks for the shared React i18n context.\n *\n * @param options - Optional hooks such as custom built-in locale loading.\n * @public\n */\nexport function createI18n(options?: CreateI18nOptions): CreateI18nResult {\n const loader = options?.loader ?? defaultLoader;\n\n function I18nProviderRoot({\n locale: localeProp,\n langRootRef,\n parentLocale,\n localeFromProp = localeProp !== undefined,\n translations: translationsProp,\n children,\n onActiveLocaleChange,\n parentAddLocaleRoot,\n }: I18nProviderRootProps): ReactNode {\n const langRootElement = useLangRootElement(langRootRef, parentAddLocaleRoot);\n const ambientLang = useAmbientLang(langRootRef !== undefined, langRootElement);\n const resolvedLocale = useMemo(\n () => effectiveLocale(localeProp, ambientLang ?? parentLocale),\n [localeProp, ambientLang, parentLocale]\n );\n\n const addLocaleRoot = useLocaleRootNotifications(resolvedLocale, onActiveLocaleChange);\n const lazyLayer = useLazyTranslations(resolvedLocale, loader);\n const translations = useMergedTranslations(resolvedLocale, lazyLayer, translationsProp);\n\n const translator = useMemo(() => createTranslator(translations, resolvedLocale), [translations, resolvedLocale]);\n\n const value = useMemo(\n () => ({\n translator,\n locale: resolvedLocale,\n localeFromProp,\n ...(translationsProp !== undefined ? { translations: translationsProp } : {}),\n ...(onActiveLocaleChange !== undefined ? { onActiveLocaleChange } : {}),\n }),\n [translator, resolvedLocale, localeFromProp, translationsProp, onActiveLocaleChange]\n );\n\n return (\n \n {children}\n \n );\n }\n\n function I18nProvider(props: I18nProviderProps): ReactNode {\n const parent = useContext(I18nContext);\n const parentAddLocaleRoot = useContext(LocaleRootContext);\n\n const rootProps = getProviderRootProps(props, parent, parentAddLocaleRoot);\n if (!rootProps) return props.children;\n\n return ;\n }\n\n return { I18nContext, I18nProvider, useTranslator, useLocale };\n}\n\nconst defaultI18n = createI18n();\n\n/**\n * Resolves locale and supplies a typed translator to descendants. Mount this explicitly for\n * translated controls, forced locales, SSR copy, or locale-aware player roots.\n *\n * @public\n */\nexport const I18nProvider = defaultI18n.I18nProvider;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAuEA,SAAgB,WAAW,SAA+C;CACxE,MAAM,SAAS,SAAS,UAAUA;CAElC,SAAS,iBAAiB,EACxB,QAAQ,YACR,aACA,cACA,iBAAiB,eAAe,KAAA,GAChC,cAAc,kBACd,UACA,sBACA,uBACmC;EACnC,MAAM,kBAAkB,mBAAmB,aAAa,mBAAmB;EAC3E,MAAM,cAAc,eAAe,gBAAgB,KAAA,GAAW,eAAe;EAC7E,MAAM,iBAAiB,cACf,gBAAwB,YAAY,eAAe,YAAY,GACrE;GAAC;GAAY;GAAa;EAAY,CACxC;EAEA,MAAM,gBAAgB,2BAA2B,gBAAgB,oBAAoB;EAErF,MAAM,eAAe,sBAAsB,gBADzB,oBAAoB,gBAAgB,MACa,GAAG,gBAAgB;EAEtF,MAAM,aAAa,cAAc,iBAAiB,cAAc,cAAc,GAAG,CAAC,cAAc,cAAc,CAAC;EAE/G,MAAM,QAAQ,eACL;GACL;GACA,QAAQ;GACR;GACA,GAAI,qBAAqB,KAAA,IAAY,EAAE,cAAc,iBAAiB,IAAI,CAAC;GAC3E,GAAI,yBAAyB,KAAA,IAAY,EAAE,qBAAqB,IAAI,CAAC;EACvE,IACA;GAAC;GAAY;GAAgB;GAAgB;GAAkB;EAAoB,CACrF;EAEA,OACE,oBAAC,kBAAkB,UAAnB;GAA4B,OAAO;GACjC,UAAA,oBAAC,YAAY,UAAb;IAA6B;IAAQ;GAA+B,CAAA;EAC1C,CAAA;CAEhC;CAEA,SAAS,aAAa,OAAqC;EAIzD,MAAM,YAAY,qBAAqB,OAHxB,WAAW,WAGyB,GAFvB,WAAW,iBAEiC,CAAC;EACzE,IAAI,CAAC,WAAW,OAAO,MAAM;EAE7B,OAAO,oBAAC,kBAAD,EAAkB,GAAI,UAAY,CAAA;CAC3C;CAEA,OAAO;EAAE;EAAa;EAAc;EAAe;CAAU;AAC/D;;;;;;;AAUA,MAAa,eARO,WAQQ,CAAA,CAAY"} \ No newline at end of file diff --git a/dist/default/i18n/get-provider-root-props.js b/dist/default/i18n/get-provider-root-props.js new file mode 100644 index 00000000..a681a314 --- /dev/null +++ b/dist/default/i18n/get-provider-root-props.js @@ -0,0 +1,40 @@ +//#region src/i18n/get-provider-root-props.ts +function isRecord(value) { + return value !== null && typeof value === "object" && !Array.isArray(value); +} +function mergeTranslations(parent, child) { + return { + ...parent, + ...child, + ...parent && child ? Object.fromEntries(Object.keys(parent).filter((key) => isRecord(parent[key]) && isRecord(child[key])).map((key) => { + const parentValue = parent[key]; + const childValue = child[key]; + return [key, isRecord(parentValue) && isRecord(childValue) ? { + ...parentValue, + ...childValue + } : childValue]; + })) : {} + }; +} +function getProviderRootProps(props, parent, parentAddLocaleRoot) { + const hasOverrides = props.locale !== void 0 || props.translations !== void 0 || props.onActiveLocaleChange !== void 0; + const langRootOnly = props.langRootRef !== void 0 && !hasOverrides; + if (parent && !hasOverrides && (!langRootOnly || parent.localeFromProp)) return; + const inheritedLocale = props.locale ?? (props.langRootRef === void 0 ? parent?.locale : void 0); + const parentLocale = props.langRootRef !== void 0 ? parent?.locale : void 0; + const inheritedTranslations = props.translations !== void 0 && parent?.translations !== void 0 ? mergeTranslations(parent.translations, props.translations) : props.translations ?? (langRootOnly ? parent?.translations : void 0); + const onActiveLocaleChange = props.onActiveLocaleChange ?? parent?.onActiveLocaleChange; + return { + ...props, + ...inheritedLocale !== void 0 ? { locale: inheritedLocale } : {}, + localeFromProp: props.locale !== void 0, + ...parentLocale !== void 0 ? { parentLocale } : {}, + ...inheritedTranslations !== void 0 ? { translations: inheritedTranslations } : {}, + ...onActiveLocaleChange !== void 0 ? { onActiveLocaleChange } : {}, + ...parentAddLocaleRoot !== void 0 ? { parentAddLocaleRoot } : {} + }; +} +//#endregion +export { getProviderRootProps }; + +//# sourceMappingURL=get-provider-root-props.js.map \ No newline at end of file diff --git a/dist/default/i18n/get-provider-root-props.js.map b/dist/default/i18n/get-provider-root-props.js.map new file mode 100644 index 00000000..c2e553f7 --- /dev/null +++ b/dist/default/i18n/get-provider-root-props.js.map @@ -0,0 +1 @@ +{"version":3,"file":"get-provider-root-props.js","names":[],"sources":["../../../src/i18n/get-provider-root-props.ts"],"sourcesContent":["import type { AddLocaleRoot, I18nContextValue } from './context';\nimport type { I18nProviderProps } from './create-i18n';\n\nfunction isRecord(value: unknown): value is Record {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction mergeTranslations(\n parent: I18nProviderProps['translations'],\n child: I18nProviderProps['translations']\n): I18nProviderProps['translations'] {\n return {\n ...parent,\n ...child,\n ...(parent && child\n ? Object.fromEntries(\n Object.keys(parent)\n .filter((key) => isRecord(parent[key]) && isRecord(child[key]))\n .map((key) => {\n const parentValue = parent[key];\n const childValue = child[key];\n return [\n key,\n isRecord(parentValue) && isRecord(childValue) ? { ...parentValue, ...childValue } : childValue,\n ];\n })\n )\n : {}),\n } as I18nProviderProps['translations'];\n}\n\nexport interface I18nProviderRootProps extends I18nProviderProps {\n parentLocale?: I18nContextValue['locale'];\n localeFromProp?: boolean;\n parentAddLocaleRoot?: AddLocaleRoot;\n}\n\nexport function getProviderRootProps(\n props: I18nProviderProps,\n parent: I18nContextValue | null,\n parentAddLocaleRoot?: AddLocaleRoot\n): I18nProviderRootProps | undefined {\n const hasOverrides =\n props.locale !== undefined || props.translations !== undefined || props.onActiveLocaleChange !== undefined;\n const langRootOnly = props.langRootRef !== undefined && !hasOverrides;\n\n // Nested providers without their own locale root or overrides can use the\n // existing parent context instead of mounting another root.\n if (parent && !hasOverrides && (!langRootOnly || parent.localeFromProp)) {\n return undefined;\n }\n\n const inheritedLocale = props.locale ?? (props.langRootRef === undefined ? parent?.locale : undefined);\n const parentLocale = props.langRootRef !== undefined ? parent?.locale : undefined;\n const inheritedTranslations =\n props.translations !== undefined && parent?.translations !== undefined\n ? mergeTranslations(parent.translations, props.translations)\n : (props.translations ?? (langRootOnly ? parent?.translations : undefined));\n const onActiveLocaleChange = props.onActiveLocaleChange ?? parent?.onActiveLocaleChange;\n\n return {\n ...props,\n ...(inheritedLocale !== undefined ? { locale: inheritedLocale } : {}),\n localeFromProp: props.locale !== undefined,\n ...(parentLocale !== undefined ? { parentLocale } : {}),\n ...(inheritedTranslations !== undefined ? { translations: inheritedTranslations } : {}),\n ...(onActiveLocaleChange !== undefined ? { onActiveLocaleChange } : {}),\n ...(parentAddLocaleRoot !== undefined ? { parentAddLocaleRoot } : {}),\n };\n}\n"],"mappings":";AAGA,SAAS,SAAS,OAAkD;CAClE,OAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,kBACP,QACA,OACmC;CACnC,OAAO;EACL,GAAG;EACH,GAAG;EACH,GAAI,UAAU,QACV,OAAO,YACL,OAAO,KAAK,MAAM,CAAC,CAChB,QAAQ,QAAQ,SAAS,OAAO,IAAI,KAAK,SAAS,MAAM,IAAI,CAAC,CAAC,CAC9D,KAAK,QAAQ;GACZ,MAAM,cAAc,OAAO;GAC3B,MAAM,aAAa,MAAM;GACzB,OAAO,CACL,KACA,SAAS,WAAW,KAAK,SAAS,UAAU,IAAI;IAAE,GAAG;IAAa,GAAG;GAAW,IAAI,UACtF;EACF,CAAC,CACL,IACA,CAAC;CACP;AACF;AAQA,SAAgB,qBACd,OACA,QACA,qBACmC;CACnC,MAAM,eACJ,MAAM,WAAW,KAAA,KAAa,MAAM,iBAAiB,KAAA,KAAa,MAAM,yBAAyB,KAAA;CACnG,MAAM,eAAe,MAAM,gBAAgB,KAAA,KAAa,CAAC;CAIzD,IAAI,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,OAAO,iBACtD;CAGF,MAAM,kBAAkB,MAAM,WAAW,MAAM,gBAAgB,KAAA,IAAY,QAAQ,SAAS,KAAA;CAC5F,MAAM,eAAe,MAAM,gBAAgB,KAAA,IAAY,QAAQ,SAAS,KAAA;CACxE,MAAM,wBACJ,MAAM,iBAAiB,KAAA,KAAa,QAAQ,iBAAiB,KAAA,IACzD,kBAAkB,OAAO,cAAc,MAAM,YAAY,IACxD,MAAM,iBAAiB,eAAe,QAAQ,eAAe,KAAA;CACpE,MAAM,uBAAuB,MAAM,wBAAwB,QAAQ;CAEnE,OAAO;EACL,GAAG;EACH,GAAI,oBAAoB,KAAA,IAAY,EAAE,QAAQ,gBAAgB,IAAI,CAAC;EACnE,gBAAgB,MAAM,WAAW,KAAA;EACjC,GAAI,iBAAiB,KAAA,IAAY,EAAE,aAAa,IAAI,CAAC;EACrD,GAAI,0BAA0B,KAAA,IAAY,EAAE,cAAc,sBAAsB,IAAI,CAAC;EACrF,GAAI,yBAAyB,KAAA,IAAY,EAAE,qBAAqB,IAAI,CAAC;EACrE,GAAI,wBAAwB,KAAA,IAAY,EAAE,oBAAoB,IAAI,CAAC;CACrE;AACF"} \ No newline at end of file diff --git a/dist/default/i18n/index.js b/dist/default/i18n/index.js new file mode 100644 index 00000000..5eb42205 --- /dev/null +++ b/dist/default/i18n/index.js @@ -0,0 +1,5 @@ +"use client"; +import { I18nContext, useLocale, useTranslator } from "./context.js"; +import { I18nProvider, createI18n } from "./create-i18n.js"; +import { LOCALES, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, isText, onI18nRegistryChange, registerI18n } from "@videojs/core/i18n"; +export { I18nContext, I18nProvider, LOCALES, createI18n, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, isText, onI18nRegistryChange, registerI18n, useLocale, useTranslator }; diff --git a/dist/default/i18n/locales/all.js b/dist/default/i18n/locales/all.js new file mode 100644 index 00000000..2461f207 --- /dev/null +++ b/dist/default/i18n/locales/all.js @@ -0,0 +1,2 @@ +import { all, localeTags } from "@videojs/core/i18n/locales/all"; +export { all, localeTags }; diff --git a/dist/default/i18n/locales/all/register.js b/dist/default/i18n/locales/all/register.js new file mode 100644 index 00000000..46ad740f --- /dev/null +++ b/dist/default/i18n/locales/all/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import { all } from "@videojs/core/i18n/locales/all"; +//#region src/i18n/locales/all/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +for (const [tag, translations] of Object.entries(all)) registerI18n(tag, translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/all/register.js.map b/dist/default/i18n/locales/all/register.js.map new file mode 100644 index 00000000..53876a7e --- /dev/null +++ b/dist/default/i18n/locales/all/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/all/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport { all } from '@videojs/core/i18n/locales/all';\n\nfor (const [tag, translations] of Object.entries(all)) {\n registerI18n(tag, translations);\n}\n"],"mappings":";;;;AAIA,KAAK,MAAM,CAAC,KAAK,iBAAiB,OAAO,QAAQ,GAAG,GAClD,aAAa,KAAK,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/ar.js b/dist/default/i18n/locales/ar.js new file mode 100644 index 00000000..7eb65e24 --- /dev/null +++ b/dist/default/i18n/locales/ar.js @@ -0,0 +1,2 @@ +import ar_default from "@videojs/core/i18n/locales/ar"; +export { ar_default as default }; diff --git a/dist/default/i18n/locales/ar/register.js b/dist/default/i18n/locales/ar/register.js new file mode 100644 index 00000000..07ce969d --- /dev/null +++ b/dist/default/i18n/locales/ar/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/ar"; +//#region src/i18n/locales/ar/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("ar", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/ar/register.js.map b/dist/default/i18n/locales/ar/register.js.map new file mode 100644 index 00000000..dba3cd00 --- /dev/null +++ b/dist/default/i18n/locales/ar/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/ar/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/ar';\n\nregisterI18n('ar', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/az.js b/dist/default/i18n/locales/az.js new file mode 100644 index 00000000..4136449a --- /dev/null +++ b/dist/default/i18n/locales/az.js @@ -0,0 +1,2 @@ +import az_default from "@videojs/core/i18n/locales/az"; +export { az_default as default }; diff --git a/dist/default/i18n/locales/az/register.js b/dist/default/i18n/locales/az/register.js new file mode 100644 index 00000000..24d5be46 --- /dev/null +++ b/dist/default/i18n/locales/az/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/az"; +//#region src/i18n/locales/az/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("az", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/az/register.js.map b/dist/default/i18n/locales/az/register.js.map new file mode 100644 index 00000000..5f1111d4 --- /dev/null +++ b/dist/default/i18n/locales/az/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/az/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/az';\n\nregisterI18n('az', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/bg.js b/dist/default/i18n/locales/bg.js new file mode 100644 index 00000000..f31349f0 --- /dev/null +++ b/dist/default/i18n/locales/bg.js @@ -0,0 +1,2 @@ +import bg_default from "@videojs/core/i18n/locales/bg"; +export { bg_default as default }; diff --git a/dist/default/i18n/locales/bg/register.js b/dist/default/i18n/locales/bg/register.js new file mode 100644 index 00000000..27340779 --- /dev/null +++ b/dist/default/i18n/locales/bg/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/bg"; +//#region src/i18n/locales/bg/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("bg", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/bg/register.js.map b/dist/default/i18n/locales/bg/register.js.map new file mode 100644 index 00000000..447ff082 --- /dev/null +++ b/dist/default/i18n/locales/bg/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/bg/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/bg';\n\nregisterI18n('bg', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/bn.js b/dist/default/i18n/locales/bn.js new file mode 100644 index 00000000..ed2dee7f --- /dev/null +++ b/dist/default/i18n/locales/bn.js @@ -0,0 +1,2 @@ +import bn_default from "@videojs/core/i18n/locales/bn"; +export { bn_default as default }; diff --git a/dist/default/i18n/locales/bn/register.js b/dist/default/i18n/locales/bn/register.js new file mode 100644 index 00000000..e5a9267e --- /dev/null +++ b/dist/default/i18n/locales/bn/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/bn"; +//#region src/i18n/locales/bn/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("bn", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/bn/register.js.map b/dist/default/i18n/locales/bn/register.js.map new file mode 100644 index 00000000..628d04cd --- /dev/null +++ b/dist/default/i18n/locales/bn/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/bn/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/bn';\n\nregisterI18n('bn', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/bs.js b/dist/default/i18n/locales/bs.js new file mode 100644 index 00000000..1dafe573 --- /dev/null +++ b/dist/default/i18n/locales/bs.js @@ -0,0 +1,2 @@ +import bs_default from "@videojs/core/i18n/locales/bs"; +export { bs_default as default }; diff --git a/dist/default/i18n/locales/bs/register.js b/dist/default/i18n/locales/bs/register.js new file mode 100644 index 00000000..8b2466f0 --- /dev/null +++ b/dist/default/i18n/locales/bs/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/bs"; +//#region src/i18n/locales/bs/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("bs", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/bs/register.js.map b/dist/default/i18n/locales/bs/register.js.map new file mode 100644 index 00000000..ef2ceab8 --- /dev/null +++ b/dist/default/i18n/locales/bs/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/bs/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/bs';\n\nregisterI18n('bs', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/ca.js b/dist/default/i18n/locales/ca.js new file mode 100644 index 00000000..05c47420 --- /dev/null +++ b/dist/default/i18n/locales/ca.js @@ -0,0 +1,2 @@ +import ca_default from "@videojs/core/i18n/locales/ca"; +export { ca_default as default }; diff --git a/dist/default/i18n/locales/ca/register.js b/dist/default/i18n/locales/ca/register.js new file mode 100644 index 00000000..dd2e7b07 --- /dev/null +++ b/dist/default/i18n/locales/ca/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/ca"; +//#region src/i18n/locales/ca/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("ca", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/ca/register.js.map b/dist/default/i18n/locales/ca/register.js.map new file mode 100644 index 00000000..7777d136 --- /dev/null +++ b/dist/default/i18n/locales/ca/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/ca/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/ca';\n\nregisterI18n('ca', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/cs.js b/dist/default/i18n/locales/cs.js new file mode 100644 index 00000000..55fe8647 --- /dev/null +++ b/dist/default/i18n/locales/cs.js @@ -0,0 +1,2 @@ +import cs_default from "@videojs/core/i18n/locales/cs"; +export { cs_default as default }; diff --git a/dist/default/i18n/locales/cs/register.js b/dist/default/i18n/locales/cs/register.js new file mode 100644 index 00000000..c21139a1 --- /dev/null +++ b/dist/default/i18n/locales/cs/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/cs"; +//#region src/i18n/locales/cs/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("cs", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/cs/register.js.map b/dist/default/i18n/locales/cs/register.js.map new file mode 100644 index 00000000..fd584c19 --- /dev/null +++ b/dist/default/i18n/locales/cs/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/cs/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/cs';\n\nregisterI18n('cs', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/cy.js b/dist/default/i18n/locales/cy.js new file mode 100644 index 00000000..b1a0a948 --- /dev/null +++ b/dist/default/i18n/locales/cy.js @@ -0,0 +1,2 @@ +import cy_default from "@videojs/core/i18n/locales/cy"; +export { cy_default as default }; diff --git a/dist/default/i18n/locales/cy/register.js b/dist/default/i18n/locales/cy/register.js new file mode 100644 index 00000000..4c758c58 --- /dev/null +++ b/dist/default/i18n/locales/cy/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/cy"; +//#region src/i18n/locales/cy/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("cy", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/cy/register.js.map b/dist/default/i18n/locales/cy/register.js.map new file mode 100644 index 00000000..812b4335 --- /dev/null +++ b/dist/default/i18n/locales/cy/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/cy/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/cy';\n\nregisterI18n('cy', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/da.js b/dist/default/i18n/locales/da.js new file mode 100644 index 00000000..6ae459c5 --- /dev/null +++ b/dist/default/i18n/locales/da.js @@ -0,0 +1,2 @@ +import da_default from "@videojs/core/i18n/locales/da"; +export { da_default as default }; diff --git a/dist/default/i18n/locales/da/register.js b/dist/default/i18n/locales/da/register.js new file mode 100644 index 00000000..ec36d0aa --- /dev/null +++ b/dist/default/i18n/locales/da/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/da"; +//#region src/i18n/locales/da/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("da", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/da/register.js.map b/dist/default/i18n/locales/da/register.js.map new file mode 100644 index 00000000..a51ded48 --- /dev/null +++ b/dist/default/i18n/locales/da/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/da/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/da';\n\nregisterI18n('da', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/de.js b/dist/default/i18n/locales/de.js new file mode 100644 index 00000000..e60c2cc3 --- /dev/null +++ b/dist/default/i18n/locales/de.js @@ -0,0 +1,2 @@ +import de_default from "@videojs/core/i18n/locales/de"; +export { de_default as default }; diff --git a/dist/default/i18n/locales/de/register.js b/dist/default/i18n/locales/de/register.js new file mode 100644 index 00000000..c62eb487 --- /dev/null +++ b/dist/default/i18n/locales/de/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/de"; +//#region src/i18n/locales/de/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("de", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/de/register.js.map b/dist/default/i18n/locales/de/register.js.map new file mode 100644 index 00000000..d5d3fb87 --- /dev/null +++ b/dist/default/i18n/locales/de/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/de/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/de';\n\nregisterI18n('de', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/el.js b/dist/default/i18n/locales/el.js new file mode 100644 index 00000000..301b36df --- /dev/null +++ b/dist/default/i18n/locales/el.js @@ -0,0 +1,2 @@ +import el_default from "@videojs/core/i18n/locales/el"; +export { el_default as default }; diff --git a/dist/default/i18n/locales/el/register.js b/dist/default/i18n/locales/el/register.js new file mode 100644 index 00000000..a29420cd --- /dev/null +++ b/dist/default/i18n/locales/el/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/el"; +//#region src/i18n/locales/el/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("el", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/el/register.js.map b/dist/default/i18n/locales/el/register.js.map new file mode 100644 index 00000000..ce2f1a60 --- /dev/null +++ b/dist/default/i18n/locales/el/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/el/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/el';\n\nregisterI18n('el', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/en.js b/dist/default/i18n/locales/en.js new file mode 100644 index 00000000..83366fe7 --- /dev/null +++ b/dist/default/i18n/locales/en.js @@ -0,0 +1,2 @@ +import en_default from "@videojs/core/i18n/locales/en"; +export { en_default as default }; diff --git a/dist/default/i18n/locales/en/register.js b/dist/default/i18n/locales/en/register.js new file mode 100644 index 00000000..93557d07 --- /dev/null +++ b/dist/default/i18n/locales/en/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/en"; +//#region src/i18n/locales/en/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("en", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/en/register.js.map b/dist/default/i18n/locales/en/register.js.map new file mode 100644 index 00000000..9636fea6 --- /dev/null +++ b/dist/default/i18n/locales/en/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/en/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/en';\n\nregisterI18n('en', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/es.js b/dist/default/i18n/locales/es.js new file mode 100644 index 00000000..4fe9cf87 --- /dev/null +++ b/dist/default/i18n/locales/es.js @@ -0,0 +1,2 @@ +import es_default from "@videojs/core/i18n/locales/es"; +export { es_default as default }; diff --git a/dist/default/i18n/locales/es/register.js b/dist/default/i18n/locales/es/register.js new file mode 100644 index 00000000..abbf3e5f --- /dev/null +++ b/dist/default/i18n/locales/es/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/es"; +//#region src/i18n/locales/es/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("es", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/es/register.js.map b/dist/default/i18n/locales/es/register.js.map new file mode 100644 index 00000000..3843ccf5 --- /dev/null +++ b/dist/default/i18n/locales/es/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/es/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/es';\n\nregisterI18n('es', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/et.js b/dist/default/i18n/locales/et.js new file mode 100644 index 00000000..66d26acc --- /dev/null +++ b/dist/default/i18n/locales/et.js @@ -0,0 +1,2 @@ +import et_default from "@videojs/core/i18n/locales/et"; +export { et_default as default }; diff --git a/dist/default/i18n/locales/et/register.js b/dist/default/i18n/locales/et/register.js new file mode 100644 index 00000000..ed7130b3 --- /dev/null +++ b/dist/default/i18n/locales/et/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/et"; +//#region src/i18n/locales/et/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("et", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/et/register.js.map b/dist/default/i18n/locales/et/register.js.map new file mode 100644 index 00000000..fa3c0523 --- /dev/null +++ b/dist/default/i18n/locales/et/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/et/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/et';\n\nregisterI18n('et', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/eu.js b/dist/default/i18n/locales/eu.js new file mode 100644 index 00000000..104dedee --- /dev/null +++ b/dist/default/i18n/locales/eu.js @@ -0,0 +1,2 @@ +import eu_default from "@videojs/core/i18n/locales/eu"; +export { eu_default as default }; diff --git a/dist/default/i18n/locales/eu/register.js b/dist/default/i18n/locales/eu/register.js new file mode 100644 index 00000000..efc51437 --- /dev/null +++ b/dist/default/i18n/locales/eu/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/eu"; +//#region src/i18n/locales/eu/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("eu", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/eu/register.js.map b/dist/default/i18n/locales/eu/register.js.map new file mode 100644 index 00000000..308e7fb7 --- /dev/null +++ b/dist/default/i18n/locales/eu/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/eu/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/eu';\n\nregisterI18n('eu', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/fa.js b/dist/default/i18n/locales/fa.js new file mode 100644 index 00000000..a2269b81 --- /dev/null +++ b/dist/default/i18n/locales/fa.js @@ -0,0 +1,2 @@ +import fa_default from "@videojs/core/i18n/locales/fa"; +export { fa_default as default }; diff --git a/dist/default/i18n/locales/fa/register.js b/dist/default/i18n/locales/fa/register.js new file mode 100644 index 00000000..ac45d3e4 --- /dev/null +++ b/dist/default/i18n/locales/fa/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/fa"; +//#region src/i18n/locales/fa/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("fa", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/fa/register.js.map b/dist/default/i18n/locales/fa/register.js.map new file mode 100644 index 00000000..449a28a2 --- /dev/null +++ b/dist/default/i18n/locales/fa/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/fa/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/fa';\n\nregisterI18n('fa', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/fi.js b/dist/default/i18n/locales/fi.js new file mode 100644 index 00000000..4f60bef1 --- /dev/null +++ b/dist/default/i18n/locales/fi.js @@ -0,0 +1,2 @@ +import fi_default from "@videojs/core/i18n/locales/fi"; +export { fi_default as default }; diff --git a/dist/default/i18n/locales/fi/register.js b/dist/default/i18n/locales/fi/register.js new file mode 100644 index 00000000..13507dad --- /dev/null +++ b/dist/default/i18n/locales/fi/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/fi"; +//#region src/i18n/locales/fi/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("fi", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/fi/register.js.map b/dist/default/i18n/locales/fi/register.js.map new file mode 100644 index 00000000..925683db --- /dev/null +++ b/dist/default/i18n/locales/fi/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/fi/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/fi';\n\nregisterI18n('fi', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/fr.js b/dist/default/i18n/locales/fr.js new file mode 100644 index 00000000..966fa2fd --- /dev/null +++ b/dist/default/i18n/locales/fr.js @@ -0,0 +1,2 @@ +import fr_default from "@videojs/core/i18n/locales/fr"; +export { fr_default as default }; diff --git a/dist/default/i18n/locales/fr/register.js b/dist/default/i18n/locales/fr/register.js new file mode 100644 index 00000000..cc726c04 --- /dev/null +++ b/dist/default/i18n/locales/fr/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/fr"; +//#region src/i18n/locales/fr/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("fr", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/fr/register.js.map b/dist/default/i18n/locales/fr/register.js.map new file mode 100644 index 00000000..9d806ac1 --- /dev/null +++ b/dist/default/i18n/locales/fr/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/fr/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/fr';\n\nregisterI18n('fr', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/gd.js b/dist/default/i18n/locales/gd.js new file mode 100644 index 00000000..58a83245 --- /dev/null +++ b/dist/default/i18n/locales/gd.js @@ -0,0 +1,2 @@ +import gd_default from "@videojs/core/i18n/locales/gd"; +export { gd_default as default }; diff --git a/dist/default/i18n/locales/gd/register.js b/dist/default/i18n/locales/gd/register.js new file mode 100644 index 00000000..8702c627 --- /dev/null +++ b/dist/default/i18n/locales/gd/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/gd"; +//#region src/i18n/locales/gd/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("gd", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/gd/register.js.map b/dist/default/i18n/locales/gd/register.js.map new file mode 100644 index 00000000..9163496c --- /dev/null +++ b/dist/default/i18n/locales/gd/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/gd/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/gd';\n\nregisterI18n('gd', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/gl.js b/dist/default/i18n/locales/gl.js new file mode 100644 index 00000000..cd2d237e --- /dev/null +++ b/dist/default/i18n/locales/gl.js @@ -0,0 +1,2 @@ +import gl_default from "@videojs/core/i18n/locales/gl"; +export { gl_default as default }; diff --git a/dist/default/i18n/locales/gl/register.js b/dist/default/i18n/locales/gl/register.js new file mode 100644 index 00000000..115a25e3 --- /dev/null +++ b/dist/default/i18n/locales/gl/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/gl"; +//#region src/i18n/locales/gl/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("gl", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/gl/register.js.map b/dist/default/i18n/locales/gl/register.js.map new file mode 100644 index 00000000..48f97a81 --- /dev/null +++ b/dist/default/i18n/locales/gl/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/gl/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/gl';\n\nregisterI18n('gl', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/he.js b/dist/default/i18n/locales/he.js new file mode 100644 index 00000000..38c65105 --- /dev/null +++ b/dist/default/i18n/locales/he.js @@ -0,0 +1,2 @@ +import he_default from "@videojs/core/i18n/locales/he"; +export { he_default as default }; diff --git a/dist/default/i18n/locales/he/register.js b/dist/default/i18n/locales/he/register.js new file mode 100644 index 00000000..c1758913 --- /dev/null +++ b/dist/default/i18n/locales/he/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/he"; +//#region src/i18n/locales/he/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("he", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/he/register.js.map b/dist/default/i18n/locales/he/register.js.map new file mode 100644 index 00000000..0a0c47f1 --- /dev/null +++ b/dist/default/i18n/locales/he/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/he/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/he';\n\nregisterI18n('he', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/hi.js b/dist/default/i18n/locales/hi.js new file mode 100644 index 00000000..ab1045c5 --- /dev/null +++ b/dist/default/i18n/locales/hi.js @@ -0,0 +1,2 @@ +import hi_default from "@videojs/core/i18n/locales/hi"; +export { hi_default as default }; diff --git a/dist/default/i18n/locales/hi/register.js b/dist/default/i18n/locales/hi/register.js new file mode 100644 index 00000000..dce1a48d --- /dev/null +++ b/dist/default/i18n/locales/hi/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/hi"; +//#region src/i18n/locales/hi/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("hi", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/hi/register.js.map b/dist/default/i18n/locales/hi/register.js.map new file mode 100644 index 00000000..d535d439 --- /dev/null +++ b/dist/default/i18n/locales/hi/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/hi/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/hi';\n\nregisterI18n('hi', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/hr.js b/dist/default/i18n/locales/hr.js new file mode 100644 index 00000000..ce2e561d --- /dev/null +++ b/dist/default/i18n/locales/hr.js @@ -0,0 +1,2 @@ +import hr_default from "@videojs/core/i18n/locales/hr"; +export { hr_default as default }; diff --git a/dist/default/i18n/locales/hr/register.js b/dist/default/i18n/locales/hr/register.js new file mode 100644 index 00000000..19747568 --- /dev/null +++ b/dist/default/i18n/locales/hr/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/hr"; +//#region src/i18n/locales/hr/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("hr", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/hr/register.js.map b/dist/default/i18n/locales/hr/register.js.map new file mode 100644 index 00000000..0f1c48b3 --- /dev/null +++ b/dist/default/i18n/locales/hr/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/hr/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/hr';\n\nregisterI18n('hr', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/hu.js b/dist/default/i18n/locales/hu.js new file mode 100644 index 00000000..a32e41c3 --- /dev/null +++ b/dist/default/i18n/locales/hu.js @@ -0,0 +1,2 @@ +import hu_default from "@videojs/core/i18n/locales/hu"; +export { hu_default as default }; diff --git a/dist/default/i18n/locales/hu/register.js b/dist/default/i18n/locales/hu/register.js new file mode 100644 index 00000000..72ee6a80 --- /dev/null +++ b/dist/default/i18n/locales/hu/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/hu"; +//#region src/i18n/locales/hu/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("hu", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/hu/register.js.map b/dist/default/i18n/locales/hu/register.js.map new file mode 100644 index 00000000..00c65012 --- /dev/null +++ b/dist/default/i18n/locales/hu/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/hu/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/hu';\n\nregisterI18n('hu', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/it.js b/dist/default/i18n/locales/it.js new file mode 100644 index 00000000..c5cfc341 --- /dev/null +++ b/dist/default/i18n/locales/it.js @@ -0,0 +1,2 @@ +import it_default from "@videojs/core/i18n/locales/it"; +export { it_default as default }; diff --git a/dist/default/i18n/locales/it/register.js b/dist/default/i18n/locales/it/register.js new file mode 100644 index 00000000..f3a28e4c --- /dev/null +++ b/dist/default/i18n/locales/it/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/it"; +//#region src/i18n/locales/it/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("it", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/it/register.js.map b/dist/default/i18n/locales/it/register.js.map new file mode 100644 index 00000000..ba1dedb3 --- /dev/null +++ b/dist/default/i18n/locales/it/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/it/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/it';\n\nregisterI18n('it', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/ja.js b/dist/default/i18n/locales/ja.js new file mode 100644 index 00000000..572adb70 --- /dev/null +++ b/dist/default/i18n/locales/ja.js @@ -0,0 +1,2 @@ +import ja_default from "@videojs/core/i18n/locales/ja"; +export { ja_default as default }; diff --git a/dist/default/i18n/locales/ja/register.js b/dist/default/i18n/locales/ja/register.js new file mode 100644 index 00000000..a5a7d327 --- /dev/null +++ b/dist/default/i18n/locales/ja/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/ja"; +//#region src/i18n/locales/ja/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("ja", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/ja/register.js.map b/dist/default/i18n/locales/ja/register.js.map new file mode 100644 index 00000000..39e9c4c2 --- /dev/null +++ b/dist/default/i18n/locales/ja/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/ja/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/ja';\n\nregisterI18n('ja', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/ko.js b/dist/default/i18n/locales/ko.js new file mode 100644 index 00000000..55a31062 --- /dev/null +++ b/dist/default/i18n/locales/ko.js @@ -0,0 +1,2 @@ +import ko_default from "@videojs/core/i18n/locales/ko"; +export { ko_default as default }; diff --git a/dist/default/i18n/locales/ko/register.js b/dist/default/i18n/locales/ko/register.js new file mode 100644 index 00000000..b214c07d --- /dev/null +++ b/dist/default/i18n/locales/ko/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/ko"; +//#region src/i18n/locales/ko/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("ko", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/ko/register.js.map b/dist/default/i18n/locales/ko/register.js.map new file mode 100644 index 00000000..d42342bd --- /dev/null +++ b/dist/default/i18n/locales/ko/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/ko/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/ko';\n\nregisterI18n('ko', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/lv.js b/dist/default/i18n/locales/lv.js new file mode 100644 index 00000000..c6b80e1a --- /dev/null +++ b/dist/default/i18n/locales/lv.js @@ -0,0 +1,2 @@ +import lv_default from "@videojs/core/i18n/locales/lv"; +export { lv_default as default }; diff --git a/dist/default/i18n/locales/lv/register.js b/dist/default/i18n/locales/lv/register.js new file mode 100644 index 00000000..7b9196d1 --- /dev/null +++ b/dist/default/i18n/locales/lv/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/lv"; +//#region src/i18n/locales/lv/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("lv", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/lv/register.js.map b/dist/default/i18n/locales/lv/register.js.map new file mode 100644 index 00000000..34ecd6a6 --- /dev/null +++ b/dist/default/i18n/locales/lv/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/lv/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/lv';\n\nregisterI18n('lv', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/mr.js b/dist/default/i18n/locales/mr.js new file mode 100644 index 00000000..ce4f8f60 --- /dev/null +++ b/dist/default/i18n/locales/mr.js @@ -0,0 +1,2 @@ +import mr_default from "@videojs/core/i18n/locales/mr"; +export { mr_default as default }; diff --git a/dist/default/i18n/locales/mr/register.js b/dist/default/i18n/locales/mr/register.js new file mode 100644 index 00000000..12d7c98a --- /dev/null +++ b/dist/default/i18n/locales/mr/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/mr"; +//#region src/i18n/locales/mr/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("mr", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/mr/register.js.map b/dist/default/i18n/locales/mr/register.js.map new file mode 100644 index 00000000..bf6a865a --- /dev/null +++ b/dist/default/i18n/locales/mr/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/mr/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/mr';\n\nregisterI18n('mr', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/nb.js b/dist/default/i18n/locales/nb.js new file mode 100644 index 00000000..54317160 --- /dev/null +++ b/dist/default/i18n/locales/nb.js @@ -0,0 +1,2 @@ +import nb_default from "@videojs/core/i18n/locales/nb"; +export { nb_default as default }; diff --git a/dist/default/i18n/locales/nb/register.js b/dist/default/i18n/locales/nb/register.js new file mode 100644 index 00000000..b4b30f4f --- /dev/null +++ b/dist/default/i18n/locales/nb/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/nb"; +//#region src/i18n/locales/nb/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("nb", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/nb/register.js.map b/dist/default/i18n/locales/nb/register.js.map new file mode 100644 index 00000000..330498b5 --- /dev/null +++ b/dist/default/i18n/locales/nb/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/nb/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/nb';\n\nregisterI18n('nb', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/ne.js b/dist/default/i18n/locales/ne.js new file mode 100644 index 00000000..fd91868c --- /dev/null +++ b/dist/default/i18n/locales/ne.js @@ -0,0 +1,2 @@ +import ne_default from "@videojs/core/i18n/locales/ne"; +export { ne_default as default }; diff --git a/dist/default/i18n/locales/ne/register.js b/dist/default/i18n/locales/ne/register.js new file mode 100644 index 00000000..84ee76fc --- /dev/null +++ b/dist/default/i18n/locales/ne/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/ne"; +//#region src/i18n/locales/ne/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("ne", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/ne/register.js.map b/dist/default/i18n/locales/ne/register.js.map new file mode 100644 index 00000000..4086bbb6 --- /dev/null +++ b/dist/default/i18n/locales/ne/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/ne/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/ne';\n\nregisterI18n('ne', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/nl.js b/dist/default/i18n/locales/nl.js new file mode 100644 index 00000000..d73b6a97 --- /dev/null +++ b/dist/default/i18n/locales/nl.js @@ -0,0 +1,2 @@ +import nl_default from "@videojs/core/i18n/locales/nl"; +export { nl_default as default }; diff --git a/dist/default/i18n/locales/nl/register.js b/dist/default/i18n/locales/nl/register.js new file mode 100644 index 00000000..a1a86b04 --- /dev/null +++ b/dist/default/i18n/locales/nl/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/nl"; +//#region src/i18n/locales/nl/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("nl", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/nl/register.js.map b/dist/default/i18n/locales/nl/register.js.map new file mode 100644 index 00000000..83f48595 --- /dev/null +++ b/dist/default/i18n/locales/nl/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/nl/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/nl';\n\nregisterI18n('nl', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/nn.js b/dist/default/i18n/locales/nn.js new file mode 100644 index 00000000..43ed803a --- /dev/null +++ b/dist/default/i18n/locales/nn.js @@ -0,0 +1,2 @@ +import nn_default from "@videojs/core/i18n/locales/nn"; +export { nn_default as default }; diff --git a/dist/default/i18n/locales/nn/register.js b/dist/default/i18n/locales/nn/register.js new file mode 100644 index 00000000..14834567 --- /dev/null +++ b/dist/default/i18n/locales/nn/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/nn"; +//#region src/i18n/locales/nn/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("nn", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/nn/register.js.map b/dist/default/i18n/locales/nn/register.js.map new file mode 100644 index 00000000..2232f1f7 --- /dev/null +++ b/dist/default/i18n/locales/nn/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/nn/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/nn';\n\nregisterI18n('nn', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/oc.js b/dist/default/i18n/locales/oc.js new file mode 100644 index 00000000..d85ba4cf --- /dev/null +++ b/dist/default/i18n/locales/oc.js @@ -0,0 +1,2 @@ +import oc_default from "@videojs/core/i18n/locales/oc"; +export { oc_default as default }; diff --git a/dist/default/i18n/locales/oc/register.js b/dist/default/i18n/locales/oc/register.js new file mode 100644 index 00000000..ac209fbc --- /dev/null +++ b/dist/default/i18n/locales/oc/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/oc"; +//#region src/i18n/locales/oc/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("oc", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/oc/register.js.map b/dist/default/i18n/locales/oc/register.js.map new file mode 100644 index 00000000..29023567 --- /dev/null +++ b/dist/default/i18n/locales/oc/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/oc/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/oc';\n\nregisterI18n('oc', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/pl.js b/dist/default/i18n/locales/pl.js new file mode 100644 index 00000000..dbab4be1 --- /dev/null +++ b/dist/default/i18n/locales/pl.js @@ -0,0 +1,2 @@ +import pl_default from "@videojs/core/i18n/locales/pl"; +export { pl_default as default }; diff --git a/dist/default/i18n/locales/pl/register.js b/dist/default/i18n/locales/pl/register.js new file mode 100644 index 00000000..8a67f5fa --- /dev/null +++ b/dist/default/i18n/locales/pl/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/pl"; +//#region src/i18n/locales/pl/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("pl", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/pl/register.js.map b/dist/default/i18n/locales/pl/register.js.map new file mode 100644 index 00000000..156363aa --- /dev/null +++ b/dist/default/i18n/locales/pl/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/pl/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/pl';\n\nregisterI18n('pl', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/pt-BR.js b/dist/default/i18n/locales/pt-BR.js new file mode 100644 index 00000000..6212b86c --- /dev/null +++ b/dist/default/i18n/locales/pt-BR.js @@ -0,0 +1,2 @@ +import pt_BR_default from "@videojs/core/i18n/locales/pt-BR"; +export { pt_BR_default as default }; diff --git a/dist/default/i18n/locales/pt-BR/register.js b/dist/default/i18n/locales/pt-BR/register.js new file mode 100644 index 00000000..23a40927 --- /dev/null +++ b/dist/default/i18n/locales/pt-BR/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/pt-BR"; +//#region src/i18n/locales/pt-BR/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("pt-BR", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/pt-BR/register.js.map b/dist/default/i18n/locales/pt-BR/register.js.map new file mode 100644 index 00000000..b47b3b74 --- /dev/null +++ b/dist/default/i18n/locales/pt-BR/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/pt-BR/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/pt-BR';\n\nregisterI18n('pt-BR', translations);\n"],"mappings":";;;;AAIA,aAAa,SAAS,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/pt-PT.js b/dist/default/i18n/locales/pt-PT.js new file mode 100644 index 00000000..2e3d041c --- /dev/null +++ b/dist/default/i18n/locales/pt-PT.js @@ -0,0 +1,2 @@ +import pt_PT_default from "@videojs/core/i18n/locales/pt-PT"; +export { pt_PT_default as default }; diff --git a/dist/default/i18n/locales/pt-PT/register.js b/dist/default/i18n/locales/pt-PT/register.js new file mode 100644 index 00000000..6b87cf1b --- /dev/null +++ b/dist/default/i18n/locales/pt-PT/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/pt-PT"; +//#region src/i18n/locales/pt-PT/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("pt-PT", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/pt-PT/register.js.map b/dist/default/i18n/locales/pt-PT/register.js.map new file mode 100644 index 00000000..353d1b54 --- /dev/null +++ b/dist/default/i18n/locales/pt-PT/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/pt-PT/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/pt-PT';\n\nregisterI18n('pt-PT', translations);\n"],"mappings":";;;;AAIA,aAAa,SAAS,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/pt.js b/dist/default/i18n/locales/pt.js new file mode 100644 index 00000000..e0fb73d6 --- /dev/null +++ b/dist/default/i18n/locales/pt.js @@ -0,0 +1,2 @@ +import pt_default from "@videojs/core/i18n/locales/pt"; +export { pt_default as default }; diff --git a/dist/default/i18n/locales/pt/register.js b/dist/default/i18n/locales/pt/register.js new file mode 100644 index 00000000..2fde252d --- /dev/null +++ b/dist/default/i18n/locales/pt/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/pt"; +//#region src/i18n/locales/pt/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("pt", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/pt/register.js.map b/dist/default/i18n/locales/pt/register.js.map new file mode 100644 index 00000000..efdd2c9a --- /dev/null +++ b/dist/default/i18n/locales/pt/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/pt/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/pt';\n\nregisterI18n('pt', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/ro.js b/dist/default/i18n/locales/ro.js new file mode 100644 index 00000000..9eeee215 --- /dev/null +++ b/dist/default/i18n/locales/ro.js @@ -0,0 +1,2 @@ +import ro_default from "@videojs/core/i18n/locales/ro"; +export { ro_default as default }; diff --git a/dist/default/i18n/locales/ro/register.js b/dist/default/i18n/locales/ro/register.js new file mode 100644 index 00000000..04611612 --- /dev/null +++ b/dist/default/i18n/locales/ro/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/ro"; +//#region src/i18n/locales/ro/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("ro", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/ro/register.js.map b/dist/default/i18n/locales/ro/register.js.map new file mode 100644 index 00000000..e6c40e0a --- /dev/null +++ b/dist/default/i18n/locales/ro/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/ro/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/ro';\n\nregisterI18n('ro', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/ru.js b/dist/default/i18n/locales/ru.js new file mode 100644 index 00000000..169293e8 --- /dev/null +++ b/dist/default/i18n/locales/ru.js @@ -0,0 +1,2 @@ +import ru_default from "@videojs/core/i18n/locales/ru"; +export { ru_default as default }; diff --git a/dist/default/i18n/locales/ru/register.js b/dist/default/i18n/locales/ru/register.js new file mode 100644 index 00000000..8fee6ced --- /dev/null +++ b/dist/default/i18n/locales/ru/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/ru"; +//#region src/i18n/locales/ru/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("ru", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/ru/register.js.map b/dist/default/i18n/locales/ru/register.js.map new file mode 100644 index 00000000..16c251b3 --- /dev/null +++ b/dist/default/i18n/locales/ru/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/ru/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/ru';\n\nregisterI18n('ru', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/sk.js b/dist/default/i18n/locales/sk.js new file mode 100644 index 00000000..f371b309 --- /dev/null +++ b/dist/default/i18n/locales/sk.js @@ -0,0 +1,2 @@ +import sk_default from "@videojs/core/i18n/locales/sk"; +export { sk_default as default }; diff --git a/dist/default/i18n/locales/sk/register.js b/dist/default/i18n/locales/sk/register.js new file mode 100644 index 00000000..f3b864fc --- /dev/null +++ b/dist/default/i18n/locales/sk/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/sk"; +//#region src/i18n/locales/sk/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("sk", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/sk/register.js.map b/dist/default/i18n/locales/sk/register.js.map new file mode 100644 index 00000000..3e605b0d --- /dev/null +++ b/dist/default/i18n/locales/sk/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/sk/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/sk';\n\nregisterI18n('sk', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/sl.js b/dist/default/i18n/locales/sl.js new file mode 100644 index 00000000..5d92642d --- /dev/null +++ b/dist/default/i18n/locales/sl.js @@ -0,0 +1,2 @@ +import sl_default from "@videojs/core/i18n/locales/sl"; +export { sl_default as default }; diff --git a/dist/default/i18n/locales/sl/register.js b/dist/default/i18n/locales/sl/register.js new file mode 100644 index 00000000..3b6f2720 --- /dev/null +++ b/dist/default/i18n/locales/sl/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/sl"; +//#region src/i18n/locales/sl/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("sl", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/sl/register.js.map b/dist/default/i18n/locales/sl/register.js.map new file mode 100644 index 00000000..82428d60 --- /dev/null +++ b/dist/default/i18n/locales/sl/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/sl/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/sl';\n\nregisterI18n('sl', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/sr.js b/dist/default/i18n/locales/sr.js new file mode 100644 index 00000000..a3fabc65 --- /dev/null +++ b/dist/default/i18n/locales/sr.js @@ -0,0 +1,2 @@ +import sr_default from "@videojs/core/i18n/locales/sr"; +export { sr_default as default }; diff --git a/dist/default/i18n/locales/sr/register.js b/dist/default/i18n/locales/sr/register.js new file mode 100644 index 00000000..70f348eb --- /dev/null +++ b/dist/default/i18n/locales/sr/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/sr"; +//#region src/i18n/locales/sr/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("sr", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/sr/register.js.map b/dist/default/i18n/locales/sr/register.js.map new file mode 100644 index 00000000..79f3a35d --- /dev/null +++ b/dist/default/i18n/locales/sr/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/sr/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/sr';\n\nregisterI18n('sr', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/sv.js b/dist/default/i18n/locales/sv.js new file mode 100644 index 00000000..5046045c --- /dev/null +++ b/dist/default/i18n/locales/sv.js @@ -0,0 +1,2 @@ +import sv_default from "@videojs/core/i18n/locales/sv"; +export { sv_default as default }; diff --git a/dist/default/i18n/locales/sv/register.js b/dist/default/i18n/locales/sv/register.js new file mode 100644 index 00000000..570f4653 --- /dev/null +++ b/dist/default/i18n/locales/sv/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/sv"; +//#region src/i18n/locales/sv/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("sv", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/sv/register.js.map b/dist/default/i18n/locales/sv/register.js.map new file mode 100644 index 00000000..fbbda33e --- /dev/null +++ b/dist/default/i18n/locales/sv/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/sv/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/sv';\n\nregisterI18n('sv', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/te.js b/dist/default/i18n/locales/te.js new file mode 100644 index 00000000..e5f96ac3 --- /dev/null +++ b/dist/default/i18n/locales/te.js @@ -0,0 +1,2 @@ +import te_default from "@videojs/core/i18n/locales/te"; +export { te_default as default }; diff --git a/dist/default/i18n/locales/te/register.js b/dist/default/i18n/locales/te/register.js new file mode 100644 index 00000000..ebc0bd96 --- /dev/null +++ b/dist/default/i18n/locales/te/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/te"; +//#region src/i18n/locales/te/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("te", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/te/register.js.map b/dist/default/i18n/locales/te/register.js.map new file mode 100644 index 00000000..0c4327e9 --- /dev/null +++ b/dist/default/i18n/locales/te/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/te/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/te';\n\nregisterI18n('te', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/th.js b/dist/default/i18n/locales/th.js new file mode 100644 index 00000000..1f49f5f7 --- /dev/null +++ b/dist/default/i18n/locales/th.js @@ -0,0 +1,2 @@ +import th_default from "@videojs/core/i18n/locales/th"; +export { th_default as default }; diff --git a/dist/default/i18n/locales/th/register.js b/dist/default/i18n/locales/th/register.js new file mode 100644 index 00000000..98c068bc --- /dev/null +++ b/dist/default/i18n/locales/th/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/th"; +//#region src/i18n/locales/th/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("th", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/th/register.js.map b/dist/default/i18n/locales/th/register.js.map new file mode 100644 index 00000000..05eb2a07 --- /dev/null +++ b/dist/default/i18n/locales/th/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/th/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/th';\n\nregisterI18n('th', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/tr.js b/dist/default/i18n/locales/tr.js new file mode 100644 index 00000000..3fd73c9e --- /dev/null +++ b/dist/default/i18n/locales/tr.js @@ -0,0 +1,2 @@ +import tr_default from "@videojs/core/i18n/locales/tr"; +export { tr_default as default }; diff --git a/dist/default/i18n/locales/tr/register.js b/dist/default/i18n/locales/tr/register.js new file mode 100644 index 00000000..53540464 --- /dev/null +++ b/dist/default/i18n/locales/tr/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/tr"; +//#region src/i18n/locales/tr/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("tr", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/tr/register.js.map b/dist/default/i18n/locales/tr/register.js.map new file mode 100644 index 00000000..da1cd3e9 --- /dev/null +++ b/dist/default/i18n/locales/tr/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/tr/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/tr';\n\nregisterI18n('tr', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/uk.js b/dist/default/i18n/locales/uk.js new file mode 100644 index 00000000..28403f62 --- /dev/null +++ b/dist/default/i18n/locales/uk.js @@ -0,0 +1,2 @@ +import uk_default from "@videojs/core/i18n/locales/uk"; +export { uk_default as default }; diff --git a/dist/default/i18n/locales/uk/register.js b/dist/default/i18n/locales/uk/register.js new file mode 100644 index 00000000..c3d92d84 --- /dev/null +++ b/dist/default/i18n/locales/uk/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/uk"; +//#region src/i18n/locales/uk/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("uk", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/uk/register.js.map b/dist/default/i18n/locales/uk/register.js.map new file mode 100644 index 00000000..bba672e8 --- /dev/null +++ b/dist/default/i18n/locales/uk/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/uk/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/uk';\n\nregisterI18n('uk', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/vi.js b/dist/default/i18n/locales/vi.js new file mode 100644 index 00000000..c03f2b9c --- /dev/null +++ b/dist/default/i18n/locales/vi.js @@ -0,0 +1,2 @@ +import vi_default from "@videojs/core/i18n/locales/vi"; +export { vi_default as default }; diff --git a/dist/default/i18n/locales/vi/register.js b/dist/default/i18n/locales/vi/register.js new file mode 100644 index 00000000..7ee08fcc --- /dev/null +++ b/dist/default/i18n/locales/vi/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/vi"; +//#region src/i18n/locales/vi/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("vi", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/vi/register.js.map b/dist/default/i18n/locales/vi/register.js.map new file mode 100644 index 00000000..5a5a0f21 --- /dev/null +++ b/dist/default/i18n/locales/vi/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/vi/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/vi';\n\nregisterI18n('vi', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/zh-CN.js b/dist/default/i18n/locales/zh-CN.js new file mode 100644 index 00000000..df75a4bc --- /dev/null +++ b/dist/default/i18n/locales/zh-CN.js @@ -0,0 +1,2 @@ +import zh_CN_default from "@videojs/core/i18n/locales/zh-CN"; +export { zh_CN_default as default }; diff --git a/dist/default/i18n/locales/zh-CN/register.js b/dist/default/i18n/locales/zh-CN/register.js new file mode 100644 index 00000000..7a6e4bfe --- /dev/null +++ b/dist/default/i18n/locales/zh-CN/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/zh-CN"; +//#region src/i18n/locales/zh-CN/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("zh-CN", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/zh-CN/register.js.map b/dist/default/i18n/locales/zh-CN/register.js.map new file mode 100644 index 00000000..10720cd8 --- /dev/null +++ b/dist/default/i18n/locales/zh-CN/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/zh-CN/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/zh-CN';\n\nregisterI18n('zh-CN', translations);\n"],"mappings":";;;;AAIA,aAAa,SAAS,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/zh-TW.js b/dist/default/i18n/locales/zh-TW.js new file mode 100644 index 00000000..859d916d --- /dev/null +++ b/dist/default/i18n/locales/zh-TW.js @@ -0,0 +1,2 @@ +import zh_TW_default from "@videojs/core/i18n/locales/zh-TW"; +export { zh_TW_default as default }; diff --git a/dist/default/i18n/locales/zh-TW/register.js b/dist/default/i18n/locales/zh-TW/register.js new file mode 100644 index 00000000..cd148f5b --- /dev/null +++ b/dist/default/i18n/locales/zh-TW/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/zh-TW"; +//#region src/i18n/locales/zh-TW/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("zh-TW", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/zh-TW/register.js.map b/dist/default/i18n/locales/zh-TW/register.js.map new file mode 100644 index 00000000..b525e58d --- /dev/null +++ b/dist/default/i18n/locales/zh-TW/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/zh-TW/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/zh-TW';\n\nregisterI18n('zh-TW', translations);\n"],"mappings":";;;;AAIA,aAAa,SAAS,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/locales/zh.js b/dist/default/i18n/locales/zh.js new file mode 100644 index 00000000..37ea9d38 --- /dev/null +++ b/dist/default/i18n/locales/zh.js @@ -0,0 +1,2 @@ +import zh_default from "@videojs/core/i18n/locales/zh"; +export { zh_default as default }; diff --git a/dist/default/i18n/locales/zh/register.js b/dist/default/i18n/locales/zh/register.js new file mode 100644 index 00000000..d6bfc6d4 --- /dev/null +++ b/dist/default/i18n/locales/zh/register.js @@ -0,0 +1,8 @@ +import { registerI18n } from "@videojs/core/i18n"; +import translations from "@videojs/core/i18n/locales/zh"; +//#region src/i18n/locales/zh/register.ts +/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */ +registerI18n("zh", translations); +//#endregion + +//# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/dist/default/i18n/locales/zh/register.js.map b/dist/default/i18n/locales/zh/register.js.map new file mode 100644 index 00000000..bb364b9c --- /dev/null +++ b/dist/default/i18n/locales/zh/register.js.map @@ -0,0 +1 @@ +{"version":3,"file":"register.js","names":[],"sources":["../../../../../src/i18n/locales/zh/register.ts"],"sourcesContent":["/** Generated by packages/core/scripts/generate-i18n-locales.ts — do not edit. */\nimport { registerI18n } from '@videojs/core/i18n';\nimport translations from '@videojs/core/i18n/locales/zh';\n\nregisterI18n('zh', translations);\n"],"mappings":";;;;AAIA,aAAa,MAAM,YAAY"} \ No newline at end of file diff --git a/dist/default/i18n/use-ambient-lang.js b/dist/default/i18n/use-ambient-lang.js new file mode 100644 index 00000000..fc72f83f --- /dev/null +++ b/dist/default/i18n/use-ambient-lang.js @@ -0,0 +1,15 @@ +import { useSyncExternalStore } from "react"; +import { nearestLang, resolveLangAttr, subscribeAmbientLang } from "@videojs/utils/dom"; +//#region src/i18n/use-ambient-lang.ts +function ambientLangServerSnapshot() {} +function useAmbientLang(hasLangRoot, langRootElement) { + return useSyncExternalStore(subscribeAmbientLang, () => { + const root = hasLangRoot || typeof document === "undefined" ? langRootElement : document.documentElement; + if (!root) return void 0; + return resolveLangAttr(nearestLang(root)); + }, ambientLangServerSnapshot); +} +//#endregion +export { useAmbientLang }; + +//# sourceMappingURL=use-ambient-lang.js.map \ No newline at end of file diff --git a/dist/default/i18n/use-ambient-lang.js.map b/dist/default/i18n/use-ambient-lang.js.map new file mode 100644 index 00000000..80db37d5 --- /dev/null +++ b/dist/default/i18n/use-ambient-lang.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-ambient-lang.js","names":[],"sources":["../../../src/i18n/use-ambient-lang.ts"],"sourcesContent":["import type { Locale } from '@videojs/core/i18n';\nimport { nearestLang, resolveLangAttr, subscribeAmbientLang } from '@videojs/utils/dom';\nimport { useSyncExternalStore } from 'react';\n\nfunction ambientLangServerSnapshot(): string | undefined {\n return undefined;\n}\n\nexport function useAmbientLang(hasLangRoot: boolean, langRootElement: Element | null): Locale | undefined {\n return useSyncExternalStore(\n subscribeAmbientLang,\n () => {\n const root = hasLangRoot || typeof document === 'undefined' ? langRootElement : document.documentElement;\n if (!root) return undefined;\n return resolveLangAttr(nearestLang(root));\n },\n ambientLangServerSnapshot\n );\n}\n"],"mappings":";;;AAIA,SAAS,4BAAgD,CAEzD;AAEA,SAAgB,eAAe,aAAsB,iBAAqD;CACxG,OAAO,qBACL,4BACM;EACJ,MAAM,OAAO,eAAe,OAAO,aAAa,cAAc,kBAAkB,SAAS;EACzF,IAAI,CAAC,MAAM,OAAO,KAAA;EAClB,OAAO,gBAAwB,YAAY,IAAI,CAAC;CAClD,GACA,yBACF;AACF"} \ No newline at end of file diff --git a/dist/default/i18n/use-lang-root-element.js b/dist/default/i18n/use-lang-root-element.js new file mode 100644 index 00000000..b682404c --- /dev/null +++ b/dist/default/i18n/use-lang-root-element.js @@ -0,0 +1,28 @@ +import { useLayoutEffect, useReducer, useRef } from "react"; +//#region src/i18n/use-lang-root-element.ts +function useLangRootElement(langRootRef, parentAddLocaleRoot) { + const [, invalidateLangRoot] = useReducer((epoch) => epoch + 1, 0); + const langRootElementRef = useRef(null); + useLayoutEffect(() => { + if (!langRootRef) return; + return parentAddLocaleRoot?.(); + }, [langRootRef, parentAddLocaleRoot]); + useLayoutEffect(() => { + if (!langRootRef) { + if (langRootElementRef.current !== null) { + langRootElementRef.current = null; + invalidateLangRoot(); + } + return; + } + const node = langRootRef.current; + if (node === langRootElementRef.current) return; + langRootElementRef.current = node; + invalidateLangRoot(); + }); + return langRootElementRef.current ?? langRootRef?.current ?? null; +} +//#endregion +export { useLangRootElement }; + +//# sourceMappingURL=use-lang-root-element.js.map \ No newline at end of file diff --git a/dist/default/i18n/use-lang-root-element.js.map b/dist/default/i18n/use-lang-root-element.js.map new file mode 100644 index 00000000..83e41359 --- /dev/null +++ b/dist/default/i18n/use-lang-root-element.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-lang-root-element.js","names":[],"sources":["../../../src/i18n/use-lang-root-element.ts"],"sourcesContent":["import { type RefObject, useLayoutEffect, useReducer, useRef } from 'react';\n\nimport type { AddLocaleRoot } from './context';\n\nexport function useLangRootElement(\n langRootRef: RefObject | undefined,\n parentAddLocaleRoot?: AddLocaleRoot\n) {\n const [, invalidateLangRoot] = useReducer((epoch: number) => epoch + 1, 0);\n const langRootElementRef = useRef(null);\n\n useLayoutEffect(() => {\n if (!langRootRef) return;\n return parentAddLocaleRoot?.();\n }, [langRootRef, parentAddLocaleRoot]);\n\n useLayoutEffect(() => {\n if (!langRootRef) {\n if (langRootElementRef.current !== null) {\n langRootElementRef.current = null;\n invalidateLangRoot();\n }\n return;\n }\n\n const node = langRootRef.current;\n if (node === langRootElementRef.current) return;\n langRootElementRef.current = node;\n invalidateLangRoot();\n });\n\n return langRootElementRef.current ?? langRootRef?.current ?? null;\n}\n"],"mappings":";;AAIA,SAAgB,mBACd,aACA,qBACA;CACA,MAAM,GAAG,sBAAsB,YAAY,UAAkB,QAAQ,GAAG,CAAC;CACzE,MAAM,qBAAqB,OAAuB,IAAI;CAEtD,sBAAsB;EACpB,IAAI,CAAC,aAAa;EAClB,OAAO,sBAAsB;CAC/B,GAAG,CAAC,aAAa,mBAAmB,CAAC;CAErC,sBAAsB;EACpB,IAAI,CAAC,aAAa;GAChB,IAAI,mBAAmB,YAAY,MAAM;IACvC,mBAAmB,UAAU;IAC7B,mBAAmB;GACrB;GACA;EACF;EAEA,MAAM,OAAO,YAAY;EACzB,IAAI,SAAS,mBAAmB,SAAS;EACzC,mBAAmB,UAAU;EAC7B,mBAAmB;CACrB,CAAC;CAED,OAAO,mBAAmB,WAAW,aAAa,WAAW;AAC/D"} \ No newline at end of file diff --git a/dist/default/i18n/use-lazy-translations.js b/dist/default/i18n/use-lazy-translations.js new file mode 100644 index 00000000..368c6242 --- /dev/null +++ b/dist/default/i18n/use-lazy-translations.js @@ -0,0 +1,37 @@ +import { findLocaleKeys, getBrowserTranslations, registerI18n, shouldAttemptBrowserTranslation } from "@videojs/core/i18n"; +import { useEffect, useLayoutEffect, useRef, useState } from "react"; +import { mergeLocaleOverlays } from "@videojs/utils/dom"; +//#region src/i18n/use-lazy-translations.ts +function useLazyTranslations(resolvedLocale, loader) { + const [lazyLayer, setLazyLayer] = useState({}); + const lazySeqRef = useRef(0); + useLayoutEffect(() => { + lazySeqRef.current += 1; + setLazyLayer({}); + }, [resolvedLocale]); + useEffect(() => { + const seq = lazySeqRef.current; + const locale = resolvedLocale; + (async () => { + try { + const { merged, loadedTags } = await mergeLocaleOverlays(locale, loader, findLocaleKeys); + if (seq !== lazySeqRef.current) return; + if (shouldAttemptBrowserTranslation(locale, loadedTags, merged)) { + const browser = await getBrowserTranslations(locale); + if (seq !== lazySeqRef.current) return; + if (Object.keys(browser).length) registerI18n(locale, browser); + } + if (seq !== lazySeqRef.current) return; + setLazyLayer(merged); + } catch {} + })(); + return () => { + if (lazySeqRef.current === seq) lazySeqRef.current += 1; + }; + }, [resolvedLocale, loader]); + return lazyLayer; +} +//#endregion +export { useLazyTranslations }; + +//# sourceMappingURL=use-lazy-translations.js.map \ No newline at end of file diff --git a/dist/default/i18n/use-lazy-translations.js.map b/dist/default/i18n/use-lazy-translations.js.map new file mode 100644 index 00000000..e96bbeb6 --- /dev/null +++ b/dist/default/i18n/use-lazy-translations.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-lazy-translations.js","names":[],"sources":["../../../src/i18n/use-lazy-translations.ts"],"sourcesContent":["import {\n type FlatTranslations,\n findLocaleKeys,\n getBrowserTranslations,\n type Locale,\n registerI18n,\n shouldAttemptBrowserTranslation,\n} from '@videojs/core/i18n';\nimport { mergeLocaleOverlays } from '@videojs/utils/dom';\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nexport type LocaleLoader = (tag: string) => Promise | undefined>;\n\nexport function useLazyTranslations(resolvedLocale: Locale, loader: LocaleLoader): Partial {\n const [lazyLayer, setLazyLayer] = useState>({});\n const lazySeqRef = useRef(0);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: rerun when `resolvedLocale` changes even though the reset callback does not reference it.\n useLayoutEffect(() => {\n lazySeqRef.current += 1;\n setLazyLayer({});\n }, [resolvedLocale]);\n\n useEffect(() => {\n const seq = lazySeqRef.current;\n const locale = resolvedLocale;\n\n // Locale loading and browser translation are async; ignore stale results\n // after locale changes or unmount.\n void (async () => {\n try {\n const { merged, loadedTags } = await mergeLocaleOverlays(locale, loader, findLocaleKeys);\n if (seq !== lazySeqRef.current) return;\n\n if (shouldAttemptBrowserTranslation(locale, loadedTags, merged)) {\n const browser = await getBrowserTranslations(locale);\n if (seq !== lazySeqRef.current) return;\n if (Object.keys(browser).length) registerI18n(locale, browser);\n }\n\n if (seq !== lazySeqRef.current) return;\n setLazyLayer(merged);\n } catch {\n // Registry and prop translations still work if lazy loading fails.\n }\n })();\n\n return () => {\n if (lazySeqRef.current === seq) {\n lazySeqRef.current += 1;\n }\n };\n }, [resolvedLocale, loader]);\n\n return lazyLayer;\n}\n"],"mappings":";;;;AAaA,SAAgB,oBAAoB,gBAAwB,QAAiD;CAC3G,MAAM,CAAC,WAAW,gBAAgB,SAAoC,CAAC,CAAC;CACxE,MAAM,aAAa,OAAO,CAAC;CAG3B,sBAAsB;EACpB,WAAW,WAAW;EACtB,aAAa,CAAC,CAAC;CACjB,GAAG,CAAC,cAAc,CAAC;CAEnB,gBAAgB;EACd,MAAM,MAAM,WAAW;EACvB,MAAM,SAAS;EAIf,CAAM,YAAY;GAChB,IAAI;IACF,MAAM,EAAE,QAAQ,eAAe,MAAM,oBAAoB,QAAQ,QAAQ,cAAc;IACvF,IAAI,QAAQ,WAAW,SAAS;IAEhC,IAAI,gCAAgC,QAAQ,YAAY,MAAM,GAAG;KAC/D,MAAM,UAAU,MAAM,uBAAuB,MAAM;KACnD,IAAI,QAAQ,WAAW,SAAS;KAChC,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,QAAQ,aAAa,QAAQ,OAAO;IAC/D;IAEA,IAAI,QAAQ,WAAW,SAAS;IAChC,aAAa,MAAM;GACrB,QAAQ,CAER;EACF,EAAA,CAAG;EAEH,aAAa;GACX,IAAI,WAAW,YAAY,KACzB,WAAW,WAAW;EAE1B;CACF,GAAG,CAAC,gBAAgB,MAAM,CAAC;CAE3B,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/i18n/use-locale-root-notifications.js b/dist/default/i18n/use-locale-root-notifications.js new file mode 100644 index 00000000..ad651f3c --- /dev/null +++ b/dist/default/i18n/use-locale-root-notifications.js @@ -0,0 +1,27 @@ +import { useCallback, useEffect, useReducer, useRef } from "react"; +//#region src/i18n/use-locale-root-notifications.ts +function useLocaleRootNotifications(resolvedLocale, onActiveLocaleChange) { + const onActiveLocaleChangeRef = useRef(onActiveLocaleChange); + onActiveLocaleChangeRef.current = onActiveLocaleChange; + const childLocaleRootCountRef = useRef(0); + const [localeRootEpoch, invalidateLocaleRoots] = useReducer((epoch) => epoch + 1, 0); + const addLocaleRoot = useCallback(() => { + childLocaleRootCountRef.current += 1; + return () => { + childLocaleRootCountRef.current = Math.max(0, childLocaleRootCountRef.current - 1); + if (childLocaleRootCountRef.current === 0) invalidateLocaleRoots(); + }; + }, []); + useEffect(() => { + const id = setTimeout(() => { + if (childLocaleRootCountRef.current > 0) return; + onActiveLocaleChangeRef.current?.(resolvedLocale); + }, 0); + return () => clearTimeout(id); + }, [resolvedLocale, localeRootEpoch]); + return addLocaleRoot; +} +//#endregion +export { useLocaleRootNotifications }; + +//# sourceMappingURL=use-locale-root-notifications.js.map \ No newline at end of file diff --git a/dist/default/i18n/use-locale-root-notifications.js.map b/dist/default/i18n/use-locale-root-notifications.js.map new file mode 100644 index 00000000..ae502b10 --- /dev/null +++ b/dist/default/i18n/use-locale-root-notifications.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-locale-root-notifications.js","names":[],"sources":["../../../src/i18n/use-locale-root-notifications.ts"],"sourcesContent":["import type { Locale } from '@videojs/core/i18n';\nimport { useCallback, useEffect, useReducer, useRef } from 'react';\n\nexport function useLocaleRootNotifications(resolvedLocale: Locale, onActiveLocaleChange?: (locale: Locale) => void) {\n const onActiveLocaleChangeRef = useRef(onActiveLocaleChange);\n onActiveLocaleChangeRef.current = onActiveLocaleChange;\n\n const childLocaleRootCountRef = useRef(0);\n const [localeRootEpoch, invalidateLocaleRoots] = useReducer((epoch: number) => epoch + 1, 0);\n\n const addLocaleRoot = useCallback(() => {\n childLocaleRootCountRef.current += 1;\n return () => {\n childLocaleRootCountRef.current = Math.max(0, childLocaleRootCountRef.current - 1);\n if (childLocaleRootCountRef.current === 0) {\n invalidateLocaleRoots();\n }\n };\n }, []);\n\n // Nested lang roots report their own active locale while mounted. When the\n // last one unmounts, notify the ancestor again with its now-effective locale.\n // biome-ignore lint/correctness/useExhaustiveDependencies: rerun when nested locale roots unmount even though notification reads refs.\n useEffect(() => {\n const id = setTimeout(() => {\n if (childLocaleRootCountRef.current > 0) return;\n onActiveLocaleChangeRef.current?.(resolvedLocale);\n }, 0);\n return () => clearTimeout(id);\n }, [resolvedLocale, localeRootEpoch]);\n\n return addLocaleRoot;\n}\n"],"mappings":";;AAGA,SAAgB,2BAA2B,gBAAwB,sBAAiD;CAClH,MAAM,0BAA0B,OAAO,oBAAoB;CAC3D,wBAAwB,UAAU;CAElC,MAAM,0BAA0B,OAAO,CAAC;CACxC,MAAM,CAAC,iBAAiB,yBAAyB,YAAY,UAAkB,QAAQ,GAAG,CAAC;CAE3F,MAAM,gBAAgB,kBAAkB;EACtC,wBAAwB,WAAW;EACnC,aAAa;GACX,wBAAwB,UAAU,KAAK,IAAI,GAAG,wBAAwB,UAAU,CAAC;GACjF,IAAI,wBAAwB,YAAY,GACtC,sBAAsB;EAE1B;CACF,GAAG,CAAC,CAAC;CAKL,gBAAgB;EACd,MAAM,KAAK,iBAAiB;GAC1B,IAAI,wBAAwB,UAAU,GAAG;GACzC,wBAAwB,UAAU,cAAc;EAClD,GAAG,CAAC;EACJ,aAAa,aAAa,EAAE;CAC9B,GAAG,CAAC,gBAAgB,eAAe,CAAC;CAEpC,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/i18n/use-merged-translations.js b/dist/default/i18n/use-merged-translations.js new file mode 100644 index 00000000..80737d33 --- /dev/null +++ b/dist/default/i18n/use-merged-translations.js @@ -0,0 +1,22 @@ +import { useRegistryEpoch } from "./use-registry-epoch.js"; +import { flattenTranslations, getI18nTranslations } from "@videojs/core/i18n"; +import { useMemo } from "react"; +//#region src/i18n/use-merged-translations.ts +function useMergedTranslations(resolvedLocale, lazyLayer, translationsProp) { + return useMemo(() => { + return { + ...getI18nTranslations(resolvedLocale), + ...lazyLayer, + ...flattenTranslations(translationsProp ?? {}) + }; + }, [ + resolvedLocale, + lazyLayer, + translationsProp, + useRegistryEpoch() + ]); +} +//#endregion +export { useMergedTranslations }; + +//# sourceMappingURL=use-merged-translations.js.map \ No newline at end of file diff --git a/dist/default/i18n/use-merged-translations.js.map b/dist/default/i18n/use-merged-translations.js.map new file mode 100644 index 00000000..2a50f8ac --- /dev/null +++ b/dist/default/i18n/use-merged-translations.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-merged-translations.js","names":[],"sources":["../../../src/i18n/use-merged-translations.ts"],"sourcesContent":["import {\n type FlatTranslations,\n flattenTranslations,\n getI18nTranslations,\n type Locale,\n type Translations,\n} from '@videojs/core/i18n';\nimport { useMemo } from 'react';\n\nimport { useRegistryEpoch } from './use-registry-epoch';\n\nexport function useMergedTranslations(\n resolvedLocale: Locale,\n lazyLayer: Partial,\n translationsProp?: Partial\n): FlatTranslations {\n const registryEpoch = useRegistryEpoch();\n\n return useMemo(() => {\n void registryEpoch;\n const registryLayer = getI18nTranslations(resolvedLocale);\n return {\n ...registryLayer,\n ...lazyLayer,\n ...flattenTranslations(translationsProp ?? {}),\n } as FlatTranslations;\n }, [resolvedLocale, lazyLayer, translationsProp, registryEpoch]);\n}\n"],"mappings":";;;;AAWA,SAAgB,sBACd,gBACA,WACA,kBACkB;CAGlB,OAAO,cAAc;EAGnB,OAAO;GACL,GAFoB,oBAAoB,cAEzB;GACf,GAAG;GACH,GAAG,oBAAoB,oBAAoB,CAAC,CAAC;EAC/C;CACF,GAAG;EAAC;EAAgB;EAAW;EAVT,iBAUuC;CAAC,CAAC;AACjE"} \ No newline at end of file diff --git a/dist/default/i18n/use-registry-epoch.js b/dist/default/i18n/use-registry-epoch.js new file mode 100644 index 00000000..1f54419c --- /dev/null +++ b/dist/default/i18n/use-registry-epoch.js @@ -0,0 +1,14 @@ +import { onI18nRegistryChange } from "@videojs/core/i18n"; +import { useEffect, useReducer } from "react"; +//#region src/i18n/use-registry-epoch.ts +function useRegistryEpoch() { + const [epoch, invalidate] = useReducer((value) => value + 1, 0); + useEffect(() => { + return onI18nRegistryChange(() => invalidate()); + }, []); + return epoch; +} +//#endregion +export { useRegistryEpoch }; + +//# sourceMappingURL=use-registry-epoch.js.map \ No newline at end of file diff --git a/dist/default/i18n/use-registry-epoch.js.map b/dist/default/i18n/use-registry-epoch.js.map new file mode 100644 index 00000000..27190130 --- /dev/null +++ b/dist/default/i18n/use-registry-epoch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-registry-epoch.js","names":[],"sources":["../../../src/i18n/use-registry-epoch.ts"],"sourcesContent":["import { onI18nRegistryChange } from '@videojs/core/i18n';\nimport { useEffect, useReducer } from 'react';\n\nexport function useRegistryEpoch(): number {\n const [epoch, invalidate] = useReducer((value: number) => value + 1, 0);\n\n useEffect(() => {\n return onI18nRegistryChange(() => invalidate());\n }, []);\n\n return epoch;\n}\n"],"mappings":";;;AAGA,SAAgB,mBAA2B;CACzC,MAAM,CAAC,OAAO,cAAc,YAAY,UAAkB,QAAQ,GAAG,CAAC;CAEtE,gBAAgB;EACd,OAAO,2BAA2B,WAAW,CAAC;CAChD,GAAG,CAAC,CAAC;CAEL,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/airplay-enter.js b/dist/default/icons/dist/react/default/airplay-enter.js new file mode 100644 index 00000000..58bcd416 --- /dev/null +++ b/dist/default/icons/dist/react/default/airplay-enter.js @@ -0,0 +1,16 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/airplay-enter.js +const AirPlayEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13 12h1.5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 14.5 4h-11A1.5 1.5 0 0 0 2 5.5v5A1.5 1.5 0 0 0 3.5 12H5l-1.968 1.967A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z" }), /* @__PURE__ */ jsx("path", { d: "M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z" })] +}); +//#endregion +export { AirPlayEnterIcon as default }; + +//# sourceMappingURL=airplay-enter.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/airplay-enter.js.map b/dist/default/icons/dist/react/default/airplay-enter.js.map new file mode 100644 index 00000000..7cc8032e --- /dev/null +++ b/dist/default/icons/dist/react/default/airplay-enter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"airplay-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/default/airplay-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst AirPlayEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13 12h1.5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 14.5 4h-11A1.5 1.5 0 0 0 2 5.5v5A1.5 1.5 0 0 0 3.5 12H5l-1.968 1.967A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z\" })\n] });\nexport default AirPlayEnterIcon;\n"],"mappings":";;AACA,MAAM,oBAAoB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CACnM,oBAAI,QAAQ,EAAE,GAAG,uOAAuO,CAAC,GACzP,oBAAI,QAAQ,EAAE,GAAG,6FAA6F,CAAC,CACjI;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/airplay-exit.js b/dist/default/icons/dist/react/default/airplay-exit.js new file mode 100644 index 00000000..913cb2d8 --- /dev/null +++ b/dist/default/icons/dist/react/default/airplay-exit.js @@ -0,0 +1,28 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/airplay-exit.js +const AirPlayExitIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("style", { children: "@keyframes media-icon--airplay__triangle{0%{translate:0 0}to{translate:0-2px}}@keyframes media-icon--airplay__fill{0%{fill-opacity:0}to{fill-opacity:.2}}" }), + /* @__PURE__ */ jsx("path", { + fillOpacity: .2, + d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5a3.5 3.5 0 0 1-3.032 3.468L9.354 8.354a.5.5 0 0 0-.708 0l-5.615 5.614A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z", + style: { animation: "var(--media-icon--airplay__fill-animation, media-icon--airplay__fill 1s ease-in-out infinite alternate)" } + }), + /* @__PURE__ */ jsx("path", { d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13 12h1.5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 14.5 4h-11A1.5 1.5 0 0 0 2 5.5v5A1.5 1.5 0 0 0 3.5 12H5l-1.968 1.967A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z" }), + /* @__PURE__ */ jsx("path", { + d: "M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z", + style: { animation: "var(--media-icon--airplay__triangle-animation, media-icon--airplay__triangle 1s ease-in-out infinite alternate)" } + }) + ] +}); +//#endregion +export { AirPlayExitIcon as default }; + +//# sourceMappingURL=airplay-exit.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/airplay-exit.js.map b/dist/default/icons/dist/react/default/airplay-exit.js.map new file mode 100644 index 00000000..2edb375f --- /dev/null +++ b/dist/default/icons/dist/react/default/airplay-exit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"airplay-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/default/airplay-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst AirPlayExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"style\", { children: \"@keyframes media-icon--airplay__triangle{0%{translate:0 0}to{translate:0-2px}}@keyframes media-icon--airplay__fill{0%{fill-opacity:0}to{fill-opacity:.2}}\" }),\n /* @__PURE__ */ jsx(\"path\", { fillOpacity: 0.2, d: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5a3.5 3.5 0 0 1-3.032 3.468L9.354 8.354a.5.5 0 0 0-.708 0l-5.615 5.614A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\", style: {\n animation: \"var(--media-icon--airplay__fill-animation, media-icon--airplay__fill 1s ease-in-out infinite alternate)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13 12h1.5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 14.5 4h-11A1.5 1.5 0 0 0 2 5.5v5A1.5 1.5 0 0 0 3.5 12H5l-1.968 1.967A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z\", style: {\n animation: \"var(--media-icon--airplay__triangle-animation, media-icon--airplay__triangle 1s ease-in-out infinite alternate)\"\n } })\n] });\nexport default AirPlayExitIcon;\n"],"mappings":";;AACA,MAAM,mBAAmB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAClM,oBAAI,SAAS,EAAE,UAAU,4JAA4J,CAAC;EACtL,oBAAI,QAAQ;GAAE,aAAa;GAAK,GAAG;GAAoJ,OAAO,EAC5M,WAAW,0GACb;EAAE,CAAC;EACa,oBAAI,QAAQ,EAAE,GAAG,uOAAuO,CAAC;EACzP,oBAAI,QAAQ;GAAE,GAAG;GAA8F,OAAO,EACpI,WAAW,kHACb;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/captions-off.js b/dist/default/icons/dist/react/default/captions-off.js new file mode 100644 index 00000000..d7d9be2c --- /dev/null +++ b/dist/default/icons/dist/react/default/captions-off.js @@ -0,0 +1,71 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/captions-off.js +const CaptionsOffIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("rect", { + width: 16, + height: 12, + x: 1, + y: 3, + stroke: "currentColor", + strokeWidth: 2, + rx: 3 + }), + /* @__PURE__ */ jsx("rect", { + width: 3, + height: 2, + x: 3, + y: 8, + fill: "currentColor", + fillOpacity: .5, + rx: 1 + }), + /* @__PURE__ */ jsx("rect", { + width: 2, + height: 2, + x: 13, + y: 8, + fill: "currentColor", + fillOpacity: .5, + rx: 1 + }), + /* @__PURE__ */ jsx("rect", { + width: 4, + height: 2, + x: 11, + y: 11, + fill: "currentColor", + fillOpacity: .5, + rx: 1 + }), + /* @__PURE__ */ jsx("rect", { + width: 5, + height: 2, + x: 7, + y: 8, + fill: "currentColor", + fillOpacity: .5, + rx: 1 + }), + /* @__PURE__ */ jsx("rect", { + width: 7, + height: 2, + x: 3, + y: 11, + fill: "currentColor", + fillOpacity: .5, + rx: 1 + }) + ] +}); +//#endregion +export { CaptionsOffIcon as default }; + +//# sourceMappingURL=captions-off.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/captions-off.js.map b/dist/default/icons/dist/react/default/captions-off.js.map new file mode 100644 index 00000000..27809312 --- /dev/null +++ b/dist/default/icons/dist/react/default/captions-off.js.map @@ -0,0 +1 @@ +{"version":3,"file":"captions-off.js","names":[],"sources":["../../../../../../../icons/dist/react/default/captions-off.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CaptionsOffIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"rect\", { width: 16, height: 12, x: 1, y: 3, stroke: \"currentColor\", strokeWidth: 2, rx: 3 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 3, height: 2, x: 3, y: 8, fill: \"currentColor\", fillOpacity: 0.5, rx: 1 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 2, height: 2, x: 13, y: 8, fill: \"currentColor\", fillOpacity: 0.5, rx: 1 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 4, height: 2, x: 11, y: 11, fill: \"currentColor\", fillOpacity: 0.5, rx: 1 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 5, height: 2, x: 7, y: 8, fill: \"currentColor\", fillOpacity: 0.5, rx: 1 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 7, height: 2, x: 3, y: 11, fill: \"currentColor\", fillOpacity: 0.5, rx: 1 })\n] });\nexport default CaptionsOffIcon;\n"],"mappings":";;AACA,MAAM,mBAAmB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAC1L,oBAAI,QAAQ;GAAE,OAAO;GAAI,QAAQ;GAAI,GAAG;GAAG,GAAG;GAAG,QAAQ;GAAgB,aAAa;GAAG,IAAI;EAAE,CAAC;EAChG,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAG,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAE,CAAC;EAC9F,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAI,GAAG;GAAG,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAE,CAAC;EAC/F,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAI,GAAG;GAAI,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAE,CAAC;EAChG,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAG,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAE,CAAC;EAC9F,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAI,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAE,CAAC;CACjH;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/captions-on.js b/dist/default/icons/dist/react/default/captions-on.js new file mode 100644 index 00000000..d1edea61 --- /dev/null +++ b/dist/default/icons/dist/react/default/captions-on.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/captions-on.js +const CaptionsOnIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M15 2a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3zM4 11a1 1 0 1 0 0 2h5a1 1 0 1 0 0-2zm8 0a1 1 0 1 0 0 2h2a1 1 0 1 0 0-2zM4 8a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2zm4 0a1 1 0 0 0 0 2h3a1 1 0 1 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2" }) +}); +//#endregion +export { CaptionsOnIcon as default }; + +//# sourceMappingURL=captions-on.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/captions-on.js.map b/dist/default/icons/dist/react/default/captions-on.js.map new file mode 100644 index 00000000..dcf006eb --- /dev/null +++ b/dist/default/icons/dist/react/default/captions-on.js.map @@ -0,0 +1 @@ +{"version":3,"file":"captions-on.js","names":[],"sources":["../../../../../../../icons/dist/react/default/captions-on.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst CaptionsOnIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M15 2a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3zM4 11a1 1 0 1 0 0 2h5a1 1 0 1 0 0-2zm8 0a1 1 0 1 0 0 2h2a1 1 0 1 0 0-2zM4 8a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2zm4 0a1 1 0 0 0 0 2h3a1 1 0 1 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2\" }) });\nexport default CaptionsOnIcon;\n"],"mappings":";;AACA,MAAM,kBAAkB,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,oPAAoP,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/cast-enter.js b/dist/default/icons/dist/react/default/cast-enter.js new file mode 100644 index 00000000..471083ef --- /dev/null +++ b/dist/default/icons/dist/react/default/cast-enter.js @@ -0,0 +1,59 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/cast-enter.js +const CastEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { + fill: "currentColor", + d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v7l-.005.18a3.5 3.5 0 0 1-3.315 3.315L14.5 16h-7c0-.693-.096-1.363-.271-2H14.5a1.5 1.5 0 0 0 1.5-1.5v-7A1.5 1.5 0 0 0 14.5 4h-11A1.5 1.5 0 0 0 2 5.5v3.271A7.5 7.5 0 0 0 0 8.5v-3A3.5 3.5 0 0 1 3.5 2z" + }), + /* @__PURE__ */ jsx("mask", { + id: "a", + width: 8, + height: 8, + x: 0, + y: 8, + maskUnits: "userSpaceOnUse", + style: { maskType: "alpha" }, + children: /* @__PURE__ */ jsx("rect", { + width: 8, + height: 8, + y: 8, + fill: "#fff", + rx: .5 + }) + }), + /* @__PURE__ */ jsxs("g", { + mask: "url(#a)", + children: [ + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 3.25, + stroke: "currentColor", + strokeWidth: 1.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 5.75, + stroke: "currentColor", + strokeWidth: 1.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 1.5, + fill: "currentColor" + }) + ] + }) + ] +}); +//#endregion +export { CastEnterIcon as default }; + +//# sourceMappingURL=cast-enter.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/cast-enter.js.map b/dist/default/icons/dist/react/default/cast-enter.js.map new file mode 100644 index 00000000..7bcba35d --- /dev/null +++ b/dist/default/icons/dist/react/default/cast-enter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cast-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/default/cast-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CastEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v7l-.005.18a3.5 3.5 0 0 1-3.315 3.315L14.5 16h-7c0-.693-.096-1.363-.271-2H14.5a1.5 1.5 0 0 0 1.5-1.5v-7A1.5 1.5 0 0 0 14.5 4h-11A1.5 1.5 0 0 0 2 5.5v3.271A7.5 7.5 0 0 0 0 8.5v-3A3.5 3.5 0 0 1 3.5 2z\" }),\n /* @__PURE__ */ jsx(\"mask\", { id: \"a\", width: 8, height: 8, x: 0, y: 8, maskUnits: \"userSpaceOnUse\", style: {\n maskType: \"alpha\"\n }, children: /* @__PURE__ */ jsx(\"rect\", { width: 8, height: 8, y: 8, fill: \"#fff\", rx: 0.5 }) }),\n /* @__PURE__ */ jsxs(\"g\", { mask: \"url(#a)\", children: [\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 3.25, stroke: \"currentColor\", strokeWidth: 1.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 5.75, stroke: \"currentColor\", strokeWidth: 1.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 1.5, fill: \"currentColor\" })\n ] })\n] });\nexport default CastEnterIcon;\n"],"mappings":";;AACA,MAAM,iBAAiB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACxL,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;EAAqO,CAAC;EAC7Q,oBAAI,QAAQ;GAAE,IAAI;GAAK,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAG,WAAW;GAAkB,OAAO,EAC1G,UAAU,QACZ;GAAG,UAA0B,oBAAI,QAAQ;IAAE,OAAO;IAAG,QAAQ;IAAG,GAAG;IAAG,MAAM;IAAQ,IAAI;GAAI,CAAC;EAAE,CAAC;EAChF,qBAAK,KAAK;GAAE,MAAM;GAAW,UAAU;IACrC,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAM,QAAQ;KAAgB,aAAa;IAAI,CAAC;IAC3E,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAM,QAAQ;KAAgB,aAAa;IAAI,CAAC;IAC3E,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAK,MAAM;IAAe,CAAC;GACxE;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/cast-exit.js b/dist/default/icons/dist/react/default/cast-exit.js new file mode 100644 index 00000000..9ccae542 --- /dev/null +++ b/dist/default/icons/dist/react/default/cast-exit.js @@ -0,0 +1,77 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/cast-exit.js +const CastExitIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("rect", { + width: 11, + height: 7, + x: 3.5, + y: 5.5, + fill: "currentColor", + rx: 1 + }), + /* @__PURE__ */ jsx("rect", { + width: 16, + height: 12, + x: 1, + y: 3, + stroke: "currentColor", + strokeWidth: 2, + rx: 2.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 7.5, + fill: "#fff" + }), + /* @__PURE__ */ jsx("mask", { + id: "a", + width: 8, + height: 8, + x: 0, + y: 8, + maskUnits: "userSpaceOnUse", + style: { maskType: "alpha" }, + children: /* @__PURE__ */ jsx("rect", { + width: 8, + height: 8, + y: 8, + fill: "#fff", + rx: .5 + }) + }), + /* @__PURE__ */ jsxs("g", { + mask: "url(#a)", + children: [ + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 3.25, + stroke: "currentColor", + strokeWidth: 1.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 5.75, + stroke: "currentColor", + strokeWidth: 1.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 1.5, + fill: "currentColor" + }) + ] + }) + ] +}); +//#endregion +export { CastExitIcon as default }; + +//# sourceMappingURL=cast-exit.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/cast-exit.js.map b/dist/default/icons/dist/react/default/cast-exit.js.map new file mode 100644 index 00000000..6c9101ff --- /dev/null +++ b/dist/default/icons/dist/react/default/cast-exit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cast-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/default/cast-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CastExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"rect\", { width: 11, height: 7, x: 3.5, y: 5.5, fill: \"currentColor\", rx: 1 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 16, height: 12, x: 1, y: 3, stroke: \"currentColor\", strokeWidth: 2, rx: 2.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 7.5, fill: \"#fff\" }),\n /* @__PURE__ */ jsx(\"mask\", { id: \"a\", width: 8, height: 8, x: 0, y: 8, maskUnits: \"userSpaceOnUse\", style: {\n maskType: \"alpha\"\n }, children: /* @__PURE__ */ jsx(\"rect\", { width: 8, height: 8, y: 8, fill: \"#fff\", rx: 0.5 }) }),\n /* @__PURE__ */ jsxs(\"g\", { mask: \"url(#a)\", children: [\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 3.25, stroke: \"currentColor\", strokeWidth: 1.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 5.75, stroke: \"currentColor\", strokeWidth: 1.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 1.5, fill: \"currentColor\" })\n ] })\n] });\nexport default CastExitIcon;\n"],"mappings":";;AACA,MAAM,gBAAgB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACvL,oBAAI,QAAQ;GAAE,OAAO;GAAI,QAAQ;GAAG,GAAG;GAAK,GAAG;GAAK,MAAM;GAAgB,IAAI;EAAE,CAAC;EACjF,oBAAI,QAAQ;GAAE,OAAO;GAAI,QAAQ;GAAI,GAAG;GAAG,GAAG;GAAG,QAAQ;GAAgB,aAAa;GAAG,IAAI;EAAI,CAAC;EAClG,oBAAI,UAAU;GAAE,IAAI;GAAI,GAAG;GAAK,MAAM;EAAO,CAAC;EAC9C,oBAAI,QAAQ;GAAE,IAAI;GAAK,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAG,WAAW;GAAkB,OAAO,EAC1G,UAAU,QACZ;GAAG,UAA0B,oBAAI,QAAQ;IAAE,OAAO;IAAG,QAAQ;IAAG,GAAG;IAAG,MAAM;IAAQ,IAAI;GAAI,CAAC;EAAE,CAAC;EAChF,qBAAK,KAAK;GAAE,MAAM;GAAW,UAAU;IACrC,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAM,QAAQ;KAAgB,aAAa;IAAI,CAAC;IAC3E,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAM,QAAQ;KAAgB,aAAa;IAAI,CAAC;IAC3E,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAK,MAAM;IAAe,CAAC;GACxE;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/check.js b/dist/default/icons/dist/react/default/check.js new file mode 100644 index 00000000..d9561071 --- /dev/null +++ b/dist/default/icons/dist/react/default/check.js @@ -0,0 +1,22 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/check.js +const CheckIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { + stroke: "currentColor", + strokeLinecap: "round", + strokeLinejoin: "round", + strokeWidth: 2, + d: "M4 10.455 6.5 13 14 5" + }) +}); +//#endregion +export { CheckIcon as default }; + +//# sourceMappingURL=check.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/check.js.map b/dist/default/icons/dist/react/default/check.js.map new file mode 100644 index 00000000..d86283df --- /dev/null +++ b/dist/default/icons/dist/react/default/check.js.map @@ -0,0 +1 @@ +{"version":3,"file":"check.js","names":[],"sources":["../../../../../../../icons/dist/react/default/check.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst CheckIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 2, d: \"M4 10.455 6.5 13 14 5\" }) });\nexport default CheckIcon;\n"],"mappings":";;AACA,MAAM,aAAa,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ;EAAE,QAAQ;EAAgB,eAAe;EAAS,gBAAgB;EAAS,aAAa;EAAG,GAAG;CAAwB,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/chevron.js b/dist/default/icons/dist/react/default/chevron.js new file mode 100644 index 00000000..c6383956 --- /dev/null +++ b/dist/default/icons/dist/react/default/chevron.js @@ -0,0 +1,21 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/chevron.js +const ChevronIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { + stroke: "currentColor", + strokeLinecap: "round", + strokeWidth: 2, + d: "m11.964 9.014-4.95-4.95m0 9.9 4.95-4.95" + }) +}); +//#endregion +export { ChevronIcon as default }; + +//# sourceMappingURL=chevron.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/chevron.js.map b/dist/default/icons/dist/react/default/chevron.js.map new file mode 100644 index 00000000..58d93a48 --- /dev/null +++ b/dist/default/icons/dist/react/default/chevron.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chevron.js","names":[],"sources":["../../../../../../../icons/dist/react/default/chevron.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst ChevronIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { stroke: \"currentColor\", strokeLinecap: \"round\", strokeWidth: 2, d: \"m11.964 9.014-4.95-4.95m0 9.9 4.95-4.95\" }) });\nexport default ChevronIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ;EAAE,QAAQ;EAAgB,eAAe;EAAS,aAAa;EAAG,GAAG;CAA0C,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/fullscreen-enter.js b/dist/default/icons/dist/react/default/fullscreen-enter.js new file mode 100644 index 00000000..b01751be --- /dev/null +++ b/dist/default/icons/dist/react/default/fullscreen-enter.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/fullscreen-enter.js +const FullscreenEnterIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M9.57 3.617A1 1 0 0 0 8.646 3H4c-.552 0-1 .449-1 1v4.646a.996.996 0 0 0 1.001 1 1 1 0 0 0 .706-.293l4.647-4.647a1 1 0 0 0 .216-1.089m4.812 4.812a1 1 0 0 0-1.089.217l-4.647 4.647a.998.998 0 0 0 .708 1.706H14c.552 0 1-.449 1-1V9.353a1 1 0 0 0-.618-.924" }) +}); +//#endregion +export { FullscreenEnterIcon as default }; + +//# sourceMappingURL=fullscreen-enter.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/fullscreen-enter.js.map b/dist/default/icons/dist/react/default/fullscreen-enter.js.map new file mode 100644 index 00000000..68051867 --- /dev/null +++ b/dist/default/icons/dist/react/default/fullscreen-enter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fullscreen-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/default/fullscreen-enter.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst FullscreenEnterIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M9.57 3.617A1 1 0 0 0 8.646 3H4c-.552 0-1 .449-1 1v4.646a.996.996 0 0 0 1.001 1 1 1 0 0 0 .706-.293l4.647-4.647a1 1 0 0 0 .216-1.089m4.812 4.812a1 1 0 0 0-1.089.217l-4.647 4.647a.998.998 0 0 0 .708 1.706H14c.552 0 1-.449 1-1V9.353a1 1 0 0 0-.618-.924\" }) });\nexport default FullscreenEnterIcon;\n"],"mappings":";;AACA,MAAM,uBAAuB,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,6PAA6P,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/fullscreen-exit.js b/dist/default/icons/dist/react/default/fullscreen-exit.js new file mode 100644 index 00000000..2706dcd8 --- /dev/null +++ b/dist/default/icons/dist/react/default/fullscreen-exit.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/fullscreen-exit.js +const FullscreenExitIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M7.883 1.93a.99.99 0 0 0-1.09.217L2.146 6.793A.998.998 0 0 0 2.853 8.5H7.5c.551 0 1-.449 1-1V2.854a1 1 0 0 0-.617-.924m7.263 7.57H10.5c-.551 0-1 .449-1 1v4.646a.996.996 0 0 0 1.001 1.001 1 1 0 0 0 .706-.293l4.646-4.646a.998.998 0 0 0-.707-1.707z" }) +}); +//#endregion +export { FullscreenExitIcon as default }; + +//# sourceMappingURL=fullscreen-exit.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/fullscreen-exit.js.map b/dist/default/icons/dist/react/default/fullscreen-exit.js.map new file mode 100644 index 00000000..07cb5f40 --- /dev/null +++ b/dist/default/icons/dist/react/default/fullscreen-exit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fullscreen-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/default/fullscreen-exit.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst FullscreenExitIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M7.883 1.93a.99.99 0 0 0-1.09.217L2.146 6.793A.998.998 0 0 0 2.853 8.5H7.5c.551 0 1-.449 1-1V2.854a1 1 0 0 0-.617-.924m7.263 7.57H10.5c-.551 0-1 .449-1 1v4.646a.996.996 0 0 0 1.001 1.001 1 1 0 0 0 .706-.293l4.646-4.646a.998.998 0 0 0-.707-1.707z\" }) });\nexport default FullscreenExitIcon;\n"],"mappings":";;AACA,MAAM,sBAAsB,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,wPAAwP,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/gear.js b/dist/default/icons/dist/react/default/gear.js new file mode 100644 index 00000000..63bcc8c8 --- /dev/null +++ b/dist/default/icons/dist/react/default/gear.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/gear.js +const GearIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M7.519 2.184c.357-1.578 2.605-1.579 2.962 0a1.518 1.518 0 0 0 2.292.949c1.368-.864 2.957.727 2.094 2.096-.56.886-.074 2.06.949 2.292 1.579.356 1.578 2.606 0 2.962a1.52 1.52 0 0 0-.95 2.293c.864 1.369-.725 2.96-2.093 2.095a1.52 1.52 0 0 0-2.292.95c-.357 1.578-2.606 1.578-2.962 0a1.52 1.52 0 0 0-2.292-.95c-1.368.864-2.957-.726-2.094-2.095a1.52 1.52 0 0 0-.949-2.293c-1.579-.356-1.579-2.606 0-2.962a1.52 1.52 0 0 0 .95-2.292c-.864-1.369.725-2.96 2.093-2.096.887.56 2.061.074 2.292-.95m1.48 3.474a3.343 3.343 0 1 0 .002 6.687 3.343 3.343 0 0 0-.002-6.687" }) +}); +//#endregion +export { GearIcon as default }; + +//# sourceMappingURL=gear.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/gear.js.map b/dist/default/icons/dist/react/default/gear.js.map new file mode 100644 index 00000000..f9c5d660 --- /dev/null +++ b/dist/default/icons/dist/react/default/gear.js.map @@ -0,0 +1 @@ +{"version":3,"file":"gear.js","names":[],"sources":["../../../../../../../icons/dist/react/default/gear.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst GearIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M7.519 2.184c.357-1.578 2.605-1.579 2.962 0a1.518 1.518 0 0 0 2.292.949c1.368-.864 2.957.727 2.094 2.096-.56.886-.074 2.06.949 2.292 1.579.356 1.578 2.606 0 2.962a1.52 1.52 0 0 0-.95 2.293c.864 1.369-.725 2.96-2.093 2.095a1.52 1.52 0 0 0-2.292.95c-.357 1.578-2.606 1.578-2.962 0a1.52 1.52 0 0 0-2.292-.95c-1.368.864-2.957-.726-2.094-2.095a1.52 1.52 0 0 0-.949-2.293c-1.579-.356-1.579-2.606 0-2.962a1.52 1.52 0 0 0 .95-2.292c-.864-1.369.725-2.96 2.093-2.096.887.56 2.061.074 2.292-.95m1.48 3.474a3.343 3.343 0 1 0 .002 6.687 3.343 3.343 0 0 0-.002-6.687\" }) });\nexport default GearIcon;\n"],"mappings":";;AACA,MAAM,YAAY,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,2iBAA2iB,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/pause.js b/dist/default/icons/dist/react/default/pause.js new file mode 100644 index 00000000..482cd08c --- /dev/null +++ b/dist/default/icons/dist/react/default/pause.js @@ -0,0 +1,28 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/pause.js +const PauseIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("rect", { + width: 5, + height: 14, + x: 2, + y: 2, + rx: 1.75 + }), /* @__PURE__ */ jsx("rect", { + width: 5, + height: 14, + x: 11, + y: 2, + rx: 1.75 + })] +}); +//#endregion +export { PauseIcon as default }; + +//# sourceMappingURL=pause.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/pause.js.map b/dist/default/icons/dist/react/default/pause.js.map new file mode 100644 index 00000000..13fdd53d --- /dev/null +++ b/dist/default/icons/dist/react/default/pause.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pause.js","names":[],"sources":["../../../../../../../icons/dist/react/default/pause.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PauseIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"rect\", { width: 5, height: 14, x: 2, y: 2, rx: 1.75 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 5, height: 14, x: 11, y: 2, rx: 1.75 })\n] });\nexport default PauseIcon;\n"],"mappings":";;AACA,MAAM,aAAa,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAC5L,oBAAI,QAAQ;EAAE,OAAO;EAAG,QAAQ;EAAI,GAAG;EAAG,GAAG;EAAG,IAAI;CAAK,CAAC,GAC1D,oBAAI,QAAQ;EAAE,OAAO;EAAG,QAAQ;EAAI,GAAG;EAAI,GAAG;EAAG,IAAI;CAAK,CAAC,CAC7E;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/pip-enter.js b/dist/default/icons/dist/react/default/pip-enter.js new file mode 100644 index 00000000..eb1b30e9 --- /dev/null +++ b/dist/default/icons/dist/react/default/pip-enter.js @@ -0,0 +1,26 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/pip-enter.js +const PipEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { d: "M13 2a4 4 0 0 1 4 4v2.036A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.036.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z" }), + /* @__PURE__ */ jsx("rect", { + width: 10, + height: 7, + x: 8, + y: 10, + rx: 2 + }), + /* @__PURE__ */ jsx("path", { d: "M7.129 5.547a.6.6 0 0 0-.656.13L3.677 8.473A.6.6 0 0 0 4.102 9.5h2.796c.332 0 .602-.27.602-.602V6.103a.6.6 0 0 0-.371-.556" }) + ] +}); +//#endregion +export { PipEnterIcon as default }; + +//# sourceMappingURL=pip-enter.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/pip-enter.js.map b/dist/default/icons/dist/react/default/pip-enter.js.map new file mode 100644 index 00000000..8d8e8727 --- /dev/null +++ b/dist/default/icons/dist/react/default/pip-enter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pip-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/default/pip-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M13 2a4 4 0 0 1 4 4v2.036A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.036.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, rx: 2 }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M7.129 5.547a.6.6 0 0 0-.656.13L3.677 8.473A.6.6 0 0 0 4.102 9.5h2.796c.332 0 .602-.27.602-.602V6.103a.6.6 0 0 0-.371-.556\" })\n] });\nexport default PipEnterIcon;\n"],"mappings":";;AACA,MAAM,gBAAgB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAC/L,oBAAI,QAAQ,EAAE,GAAG,oMAAoM,CAAC;EACtN,oBAAI,QAAQ;GAAE,OAAO;GAAI,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAI,IAAI;EAAE,CAAC;EACxD,oBAAI,QAAQ,EAAE,GAAG,6HAA6H,CAAC;CACjK;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/pip-exit.js b/dist/default/icons/dist/react/default/pip-exit.js new file mode 100644 index 00000000..5486b01e --- /dev/null +++ b/dist/default/icons/dist/react/default/pip-exit.js @@ -0,0 +1,26 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/pip-exit.js +const PipExitIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { d: "M13 2a4 4 0 0 1 4 4v2.036A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.036.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z" }), + /* @__PURE__ */ jsx("rect", { + width: 10, + height: 7, + x: 8, + y: 10, + rx: 2 + }), + /* @__PURE__ */ jsx("path", { d: "M4.871 10.454a.6.6 0 0 0 .656-.131l2.796-2.796A.6.6 0 0 0 7.898 6.5H5.102a.603.603 0 0 0-.602.602v2.795a.6.6 0 0 0 .371.556" }) + ] +}); +//#endregion +export { PipExitIcon as default }; + +//# sourceMappingURL=pip-exit.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/pip-exit.js.map b/dist/default/icons/dist/react/default/pip-exit.js.map new file mode 100644 index 00000000..502cb589 --- /dev/null +++ b/dist/default/icons/dist/react/default/pip-exit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pip-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/default/pip-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M13 2a4 4 0 0 1 4 4v2.036A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.036.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, rx: 2 }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M4.871 10.454a.6.6 0 0 0 .656-.131l2.796-2.796A.6.6 0 0 0 7.898 6.5H5.102a.603.603 0 0 0-.602.602v2.795a.6.6 0 0 0 .371.556\" })\n] });\nexport default PipExitIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAC9L,oBAAI,QAAQ,EAAE,GAAG,oMAAoM,CAAC;EACtN,oBAAI,QAAQ;GAAE,OAAO;GAAI,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAI,IAAI;EAAE,CAAC;EACxD,oBAAI,QAAQ,EAAE,GAAG,8HAA8H,CAAC;CAClK;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/play.js b/dist/default/icons/dist/react/default/play.js new file mode 100644 index 00000000..739d4750 --- /dev/null +++ b/dist/default/icons/dist/react/default/play.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/play.js +const PlayIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "m14.051 10.723-7.985 4.964a1.98 1.98 0 0 1-2.758-.638A2.06 2.06 0 0 1 3 13.964V4.036C3 2.91 3.895 2 5 2c.377 0 .747.109 1.066.313l7.985 4.964a2.057 2.057 0 0 1 .627 2.808c-.16.257-.373.475-.627.637" }) +}); +//#endregion +export { PlayIcon as default }; + +//# sourceMappingURL=play.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/play.js.map b/dist/default/icons/dist/react/default/play.js.map new file mode 100644 index 00000000..797b2e53 --- /dev/null +++ b/dist/default/icons/dist/react/default/play.js.map @@ -0,0 +1 @@ +{"version":3,"file":"play.js","names":[],"sources":["../../../../../../../icons/dist/react/default/play.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst PlayIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"m14.051 10.723-7.985 4.964a1.98 1.98 0 0 1-2.758-.638A2.06 2.06 0 0 1 3 13.964V4.036C3 2.91 3.895 2 5 2c.377 0 .747.109 1.066.313l7.985 4.964a2.057 2.057 0 0 1 .627 2.808c-.16.257-.373.475-.627.637\" }) });\nexport default PlayIcon;\n"],"mappings":";;AACA,MAAM,YAAY,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,wMAAwM,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/quality.js b/dist/default/icons/dist/react/default/quality.js new file mode 100644 index 00000000..198b572d --- /dev/null +++ b/dist/default/icons/dist/react/default/quality.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/quality.js +const QualityIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M11 3c2.829 0 4.243 0 5.122.878C17 4.757 17 6.172 17 9s0 4.243-.878 5.121c-.879.879-2.293.88-5.121.88H7c-2.829 0-4.244 0-5.123-.88C1 13.243 1 11.828 1 9.001c0-2.83 0-4.244.878-5.123C2.758 3 4.172 3 7 3zM5.818 5.43 3.27 9.858v.936h2.997v1.296h1.179v-1.296h.936v-1.08h-.936V5.43zM9.372 12h1.277V9.21h.343c.17 0 .315.045.423.198L13.197 12h1.584l-2.286-3.32 2.195-3.222h-1.512l-1.746 2.565c-.144.216-.26.243-.431.243h-.352V5.457H9.372zM6.267 9.714H4.665l1.602-3.06z" }) +}); +//#endregion +export { QualityIcon as default }; + +//# sourceMappingURL=quality.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/quality.js.map b/dist/default/icons/dist/react/default/quality.js.map new file mode 100644 index 00000000..99af3aa5 --- /dev/null +++ b/dist/default/icons/dist/react/default/quality.js.map @@ -0,0 +1 @@ +{"version":3,"file":"quality.js","names":[],"sources":["../../../../../../../icons/dist/react/default/quality.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst QualityIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M11 3c2.829 0 4.243 0 5.122.878C17 4.757 17 6.172 17 9s0 4.243-.878 5.121c-.879.879-2.293.88-5.121.88H7c-2.829 0-4.244 0-5.123-.88C1 13.243 1 11.828 1 9.001c0-2.83 0-4.244.878-5.123C2.758 3 4.172 3 7 3zM5.818 5.43 3.27 9.858v.936h2.997v1.296h1.179v-1.296h.936v-1.08h-.936V5.43zM9.372 12h1.277V9.21h.343c.17 0 .315.045.423.198L13.197 12h1.584l-2.286-3.32 2.195-3.222h-1.512l-1.746 2.565c-.144.216-.26.243-.431.243h-.352V5.457H9.372zM6.267 9.714H4.665l1.602-3.06z\" }) });\nexport default QualityIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,gdAAgd,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/restart.js b/dist/default/icons/dist/react/default/restart.js new file mode 100644 index 00000000..10cc9d67 --- /dev/null +++ b/dist/default/icons/dist/react/default/restart.js @@ -0,0 +1,16 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/restart.js +const RestartIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M9 1a7.98 7.98 0 0 0-6.132 2.867l-1.441-1.44A.25.25 0 0 0 1 2.604V6.75c0 .138.112.25.25.25h4.146a.25.25 0 0 0 .177-.427L4.29 5.29A5.99 5.99 0 0 1 9 3a6 6 0 1 1-6 6H1a8 8 0 1 0 8-8" }), /* @__PURE__ */ jsx("path", { d: "m11.61 9.639-3.331 2.07a.826.826 0 0 1-1.15-.266.86.86 0 0 1-.129-.452V6.849C7 6.38 7.374 6 7.834 6c.158 0 .312.045.445.13l3.331 2.071a.858.858 0 0 1 0 1.438" })] +}); +//#endregion +export { RestartIcon as default }; + +//# sourceMappingURL=restart.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/restart.js.map b/dist/default/icons/dist/react/default/restart.js.map new file mode 100644 index 00000000..e14abcf4 --- /dev/null +++ b/dist/default/icons/dist/react/default/restart.js.map @@ -0,0 +1 @@ +{"version":3,"file":"restart.js","names":[],"sources":["../../../../../../../icons/dist/react/default/restart.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst RestartIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M9 1a7.98 7.98 0 0 0-6.132 2.867l-1.441-1.44A.25.25 0 0 0 1 2.604V6.75c0 .138.112.25.25.25h4.146a.25.25 0 0 0 .177-.427L4.29 5.29A5.99 5.99 0 0 1 9 3a6 6 0 1 1-6 6H1a8 8 0 1 0 8-8\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m11.61 9.639-3.331 2.07a.826.826 0 0 1-1.15-.266.86.86 0 0 1-.129-.452V6.849C7 6.38 7.374 6 7.834 6c.158 0 .312.045.445.13l3.331 2.071a.858.858 0 0 1 0 1.438\" })\n] });\nexport default RestartIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAC9L,oBAAI,QAAQ,EAAE,GAAG,sLAAsL,CAAC,GACxM,oBAAI,QAAQ,EAAE,GAAG,gKAAgK,CAAC,CACpM;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/seek.js b/dist/default/icons/dist/react/default/seek.js new file mode 100644 index 00000000..c06ca6b1 --- /dev/null +++ b/dist/default/icons/dist/react/default/seek.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/seek.js +const SeekIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M9 1a7.98 7.98 0 0 1 6.132 2.867l1.441-1.44a.25.25 0 0 1 .427.177V6.75a.25.25 0 0 1-.25.25h-4.146a.25.25 0 0 1-.177-.427L13.71 5.29A5.99 5.99 0 0 0 9 3a6 6 0 0 0-4.242 10.242l-1.415 1.415A8 8 0 0 1 9 1" }) +}); +//#endregion +export { SeekIcon as default }; + +//# sourceMappingURL=seek.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/seek.js.map b/dist/default/icons/dist/react/default/seek.js.map new file mode 100644 index 00000000..ee3beea5 --- /dev/null +++ b/dist/default/icons/dist/react/default/seek.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seek.js","names":[],"sources":["../../../../../../../icons/dist/react/default/seek.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst SeekIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M9 1a7.98 7.98 0 0 1 6.132 2.867l1.441-1.44a.25.25 0 0 1 .427.177V6.75a.25.25 0 0 1-.25.25h-4.146a.25.25 0 0 1-.177-.427L13.71 5.29A5.99 5.99 0 0 0 9 3a6 6 0 0 0-4.242 10.242l-1.415 1.415A8 8 0 0 1 9 1\" }) });\nexport default SeekIcon;\n"],"mappings":";;AACA,MAAM,YAAY,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,4MAA4M,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/speech.js b/dist/default/icons/dist/react/default/speech.js new file mode 100644 index 00000000..e23196c7 --- /dev/null +++ b/dist/default/icons/dist/react/default/speech.js @@ -0,0 +1,19 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/speech.js +const SpeechIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M6 12a5 5 0 0 1 4.511 2.843c.273.57-.203 1.157-.835 1.157H2.325c-.633 0-1.109-.587-.836-1.157A5 5 0 0 1 6.001 12M8.5 8.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0" }), /* @__PURE__ */ jsx("path", { + fillOpacity: .5, + d: "M14.5 2A1.5 1.5 0 0 1 16 3.5v2A1.5 1.5 0 0 1 14.5 7H12l-1.146 1.146A.5.5 0 0 1 10 7.793v-.88A1.5 1.5 0 0 1 9 5.5v-2A1.5 1.5 0 0 1 10.5 2z" + })] +}); +//#endregion +export { SpeechIcon as default }; + +//# sourceMappingURL=speech.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/speech.js.map b/dist/default/icons/dist/react/default/speech.js.map new file mode 100644 index 00000000..6fe0e394 --- /dev/null +++ b/dist/default/icons/dist/react/default/speech.js.map @@ -0,0 +1 @@ +{"version":3,"file":"speech.js","names":[],"sources":["../../../../../../../icons/dist/react/default/speech.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst SpeechIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M6 12a5 5 0 0 1 4.511 2.843c.273.57-.203 1.157-.835 1.157H2.325c-.633 0-1.109-.587-.836-1.157A5 5 0 0 1 6.001 12M8.5 8.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0\" }),\n /* @__PURE__ */ jsx(\"path\", { fillOpacity: 0.5, d: \"M14.5 2A1.5 1.5 0 0 1 16 3.5v2A1.5 1.5 0 0 1 14.5 7H12l-1.146 1.146A.5.5 0 0 1 10 7.793v-.88A1.5 1.5 0 0 1 9 5.5v-2A1.5 1.5 0 0 1 10.5 2z\" })\n] });\nexport default SpeechIcon;\n"],"mappings":";;AACA,MAAM,cAAc,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAC7L,oBAAI,QAAQ,EAAE,GAAG,+JAA+J,CAAC,GACjL,oBAAI,QAAQ;EAAE,aAAa;EAAK,GAAG;CAA4I,CAAC,CAClM;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/speed.js b/dist/default/icons/dist/react/default/speed.js new file mode 100644 index 00000000..6231d4c7 --- /dev/null +++ b/dist/default/icons/dist/react/default/speed.js @@ -0,0 +1,52 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/speed.js +const SpeedIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { d: "M9 18q-.213 0-.424-.012h.85Q9.214 18 9 18M9 2a8 8 0 0 1 8 8c0 1.975-.719 3.78-1.905 5.175a.75.75 0 0 1-1.204.018l-1.509-1.971a.75.75 0 0 1 .596-1.206h1.674a6 6 0 1 0-11.304 0h1.68a.75.75 0 0 1 .596 1.206l-1.507 1.971a.75.75 0 0 1-1.133.07l-.003.004A8 8 0 0 1 9 2" }), + /* @__PURE__ */ jsx("rect", { + width: 6, + height: 2, + x: 6, + y: 14, + fillOpacity: .5, + rx: 1 + }), + /* @__PURE__ */ jsx("path", { d: "M8.3 6.318c.246-.64 1.154-.64 1.4 0L10.732 9h-.002a2 2 0 1 1-3.46 0h-.001z" }), + /* @__PURE__ */ jsxs("g", { + fillOpacity: .5, + children: [ + /* @__PURE__ */ jsx("circle", { + cx: 5, + cy: 10.25, + r: .75 + }), + /* @__PURE__ */ jsx("circle", { + cx: 13, + cy: 10.25, + r: .75 + }), + /* @__PURE__ */ jsx("circle", { + cx: 6, + cy: 7.25, + r: .75 + }), + /* @__PURE__ */ jsx("circle", { + cx: 12, + cy: 7.25, + r: .75 + }) + ] + }) + ] +}); +//#endregion +export { SpeedIcon as default }; + +//# sourceMappingURL=speed.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/speed.js.map b/dist/default/icons/dist/react/default/speed.js.map new file mode 100644 index 00000000..90987e64 --- /dev/null +++ b/dist/default/icons/dist/react/default/speed.js.map @@ -0,0 +1 @@ +{"version":3,"file":"speed.js","names":[],"sources":["../../../../../../../icons/dist/react/default/speed.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst SpeedIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M9 18q-.213 0-.424-.012h.85Q9.214 18 9 18M9 2a8 8 0 0 1 8 8c0 1.975-.719 3.78-1.905 5.175a.75.75 0 0 1-1.204.018l-1.509-1.971a.75.75 0 0 1 .596-1.206h1.674a6 6 0 1 0-11.304 0h1.68a.75.75 0 0 1 .596 1.206l-1.507 1.971a.75.75 0 0 1-1.133.07l-.003.004A8 8 0 0 1 9 2\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 6, height: 2, x: 6, y: 14, fillOpacity: 0.5, rx: 1 }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M8.3 6.318c.246-.64 1.154-.64 1.4 0L10.732 9h-.002a2 2 0 1 1-3.46 0h-.001z\" }),\n /* @__PURE__ */ jsxs(\"g\", { fillOpacity: 0.5, children: [\n /* @__PURE__ */ jsx(\"circle\", { cx: 5, cy: 10.25, r: 0.75 }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 13, cy: 10.25, r: 0.75 }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 6, cy: 7.25, r: 0.75 }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 12, cy: 7.25, r: 0.75 })\n ] })\n] });\nexport default SpeedIcon;\n"],"mappings":";;AACA,MAAM,aAAa,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAC5L,oBAAI,QAAQ,EAAE,GAAG,yQAAyQ,CAAC;EAC3R,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAI,aAAa;GAAK,IAAI;EAAE,CAAC;EACzE,oBAAI,QAAQ,EAAE,GAAG,6EAA6E,CAAC;EAC/F,qBAAK,KAAK;GAAE,aAAa;GAAK,UAAU;IACtC,oBAAI,UAAU;KAAE,IAAI;KAAG,IAAI;KAAO,GAAG;IAAK,CAAC;IAC3C,oBAAI,UAAU;KAAE,IAAI;KAAI,IAAI;KAAO,GAAG;IAAK,CAAC;IAC5C,oBAAI,UAAU;KAAE,IAAI;KAAG,IAAI;KAAM,GAAG;IAAK,CAAC;IAC1C,oBAAI,UAAU;KAAE,IAAI;KAAI,IAAI;KAAM,GAAG;IAAK,CAAC;GAC7D;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/spinner.js b/dist/default/icons/dist/react/default/spinner.js new file mode 100644 index 00000000..30ed4132 --- /dev/null +++ b/dist/default/icons/dist/react/default/spinner.js @@ -0,0 +1,69 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/spinner.js +const SpinnerIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + stroke: "currentColor", + strokeLinecap: "round", + strokeWidth: 2, + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("style", { children: "@keyframes media-spinner-fade{0%{opacity:1}to{opacity:0}}.media-spinner__segment{animation:var(--media-spinner-animation, media-spinner-fade 1s linear infinite);animation-delay:var(--media-spinner-delay)}" }), + /* @__PURE__ */ jsx("path", { + d: "M9 1.5v3", + className: "media-spinner__segment", + opacity: .5, + style: { "--media-spinner-delay": "0s" } + }), + /* @__PURE__ */ jsx("path", { + d: "m14.5 3.5-2 2", + className: "media-spinner__segment", + opacity: .45, + style: { "--media-spinner-delay": "0.125s" } + }), + /* @__PURE__ */ jsx("path", { + d: "M16.5 9h-3", + className: "media-spinner__segment", + opacity: .4, + style: { "--media-spinner-delay": "0.25s" } + }), + /* @__PURE__ */ jsx("path", { + d: "m14.5 14.5-2-2", + className: "media-spinner__segment", + opacity: .35, + style: { "--media-spinner-delay": "0.375s" } + }), + /* @__PURE__ */ jsx("path", { + d: "M9 16.5v-3", + className: "media-spinner__segment", + opacity: .3, + style: { "--media-spinner-delay": "0.5s" } + }), + /* @__PURE__ */ jsx("path", { + d: "m3.5 14.5 2-2", + className: "media-spinner__segment", + opacity: .25, + style: { "--media-spinner-delay": "0.625s" } + }), + /* @__PURE__ */ jsx("path", { + d: "M1.5 9h3", + className: "media-spinner__segment", + opacity: .15, + style: { "--media-spinner-delay": "0.75s" } + }), + /* @__PURE__ */ jsx("path", { + d: "m3.5 3.5 2 2", + className: "media-spinner__segment", + opacity: .1, + style: { "--media-spinner-delay": "0.875s" } + }) + ] +}); +//#endregion +export { SpinnerIcon as default }; + +//# sourceMappingURL=spinner.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/spinner.js.map b/dist/default/icons/dist/react/default/spinner.js.map new file mode 100644 index 00000000..b28d16f3 --- /dev/null +++ b/dist/default/icons/dist/react/default/spinner.js.map @@ -0,0 +1 @@ +{"version":3,"file":"spinner.js","names":[],"sources":["../../../../../../../icons/dist/react/default/spinner.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst SpinnerIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeWidth: 2, \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"style\", { children: \"@keyframes media-spinner-fade{0%{opacity:1}to{opacity:0}}.media-spinner__segment{animation:var(--media-spinner-animation, media-spinner-fade 1s linear infinite);animation-delay:var(--media-spinner-delay)}\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M9 1.5v3\", className: \"media-spinner__segment\", opacity: 0.5, style: {\n \"--media-spinner-delay\": \"0s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m14.5 3.5-2 2\", className: \"media-spinner__segment\", opacity: 0.45, style: {\n \"--media-spinner-delay\": \"0.125s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M16.5 9h-3\", className: \"media-spinner__segment\", opacity: 0.4, style: {\n \"--media-spinner-delay\": \"0.25s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m14.5 14.5-2-2\", className: \"media-spinner__segment\", opacity: 0.35, style: {\n \"--media-spinner-delay\": \"0.375s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M9 16.5v-3\", className: \"media-spinner__segment\", opacity: 0.3, style: {\n \"--media-spinner-delay\": \"0.5s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m3.5 14.5 2-2\", className: \"media-spinner__segment\", opacity: 0.25, style: {\n \"--media-spinner-delay\": \"0.625s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M1.5 9h3\", className: \"media-spinner__segment\", opacity: 0.15, style: {\n \"--media-spinner-delay\": \"0.75s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m3.5 3.5 2 2\", className: \"media-spinner__segment\", opacity: 0.1, style: {\n \"--media-spinner-delay\": \"0.875s\"\n } })\n] });\nexport default SpinnerIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,QAAQ;CAAgB,eAAe;CAAS,aAAa;CAAG,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACtP,oBAAI,SAAS,EAAE,UAAU,+MAA+M,CAAC;EACzO,oBAAI,QAAQ;GAAE,GAAG;GAAY,WAAW;GAA0B,SAAS;GAAK,OAAO,EACrG,yBAAyB,KAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAiB,WAAW;GAA0B,SAAS;GAAM,OAAO,EAC3G,yBAAyB,SAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAc,WAAW;GAA0B,SAAS;GAAK,OAAO,EACvG,yBAAyB,QAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAkB,WAAW;GAA0B,SAAS;GAAM,OAAO,EAC5G,yBAAyB,SAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAc,WAAW;GAA0B,SAAS;GAAK,OAAO,EACvG,yBAAyB,OAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAiB,WAAW;GAA0B,SAAS;GAAM,OAAO,EAC3G,yBAAyB,SAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAY,WAAW;GAA0B,SAAS;GAAM,OAAO,EACtG,yBAAyB,QAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAgB,WAAW;GAA0B,SAAS;GAAK,OAAO,EACzG,yBAAyB,SAC3B;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/switches.js b/dist/default/icons/dist/react/default/switches.js new file mode 100644 index 00000000..12daa87f --- /dev/null +++ b/dist/default/icons/dist/react/default/switches.js @@ -0,0 +1,19 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/switches.js +const SwitchesIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M12.5 9.5a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7zm-2 1.5a2 2 0 1 0 0 4h2a2 2 0 1 0 0-4z" }), /* @__PURE__ */ jsx("path", { + fillOpacity: .5, + d: "M12.5 1.5a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7zM5.5 3a2 2 0 1 0 0 4h2a2 2 0 1 0 0-4z" + })] +}); +//#endregion +export { SwitchesIcon as default }; + +//# sourceMappingURL=switches.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/switches.js.map b/dist/default/icons/dist/react/default/switches.js.map new file mode 100644 index 00000000..b3e9f063 --- /dev/null +++ b/dist/default/icons/dist/react/default/switches.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switches.js","names":[],"sources":["../../../../../../../icons/dist/react/default/switches.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst SwitchesIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M12.5 9.5a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7zm-2 1.5a2 2 0 1 0 0 4h2a2 2 0 1 0 0-4z\" }),\n /* @__PURE__ */ jsx(\"path\", { fillOpacity: 0.5, d: \"M12.5 1.5a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7zM5.5 3a2 2 0 1 0 0 4h2a2 2 0 1 0 0-4z\" })\n] });\nexport default SwitchesIcon;\n"],"mappings":";;AACA,MAAM,gBAAgB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAC/L,oBAAI,QAAQ,EAAE,GAAG,0FAA0F,CAAC,GAC5G,oBAAI,QAAQ;EAAE,aAAa;EAAK,GAAG;CAAyF,CAAC,CAC/I;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/volume-high.js b/dist/default/icons/dist/react/default/volume-high.js new file mode 100644 index 00000000..56502162 --- /dev/null +++ b/dist/default/icons/dist/react/default/volume-high.js @@ -0,0 +1,16 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/volume-high.js +const VolumeHighIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M15.6 3.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4C15.4 5.9 16 7.4 16 9s-.6 3.1-1.8 4.3c-.4.4-.4 1 0 1.4.2.2.5.3.7.3.3 0 .5-.1.7-.3C17.1 13.2 18 11.2 18 9s-.9-4.2-2.4-5.7" }), /* @__PURE__ */ jsx("path", { d: "M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752m10.568.59a.91.91 0 0 1 0-1.316.91.91 0 0 1 1.316 0c1.203 1.203 1.47 2.216 1.522 3.208q.012.255.011.51c0 1.16-.358 2.733-1.533 3.803a.7.7 0 0 1-.298.156c-.382.106-.873-.011-1.018-.156a.91.91 0 0 1 0-1.316c.57-.57.995-1.551.995-2.487 0-.944-.26-1.667-.995-2.402" })] +}); +//#endregion +export { VolumeHighIcon as default }; + +//# sourceMappingURL=volume-high.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/volume-high.js.map b/dist/default/icons/dist/react/default/volume-high.js.map new file mode 100644 index 00000000..01336ed3 --- /dev/null +++ b/dist/default/icons/dist/react/default/volume-high.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-high.js","names":[],"sources":["../../../../../../../icons/dist/react/default/volume-high.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst VolumeHighIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M15.6 3.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4C15.4 5.9 16 7.4 16 9s-.6 3.1-1.8 4.3c-.4.4-.4 1 0 1.4.2.2.5.3.7.3.3 0 .5-.1.7-.3C17.1 13.2 18 11.2 18 9s-.9-4.2-2.4-5.7\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752m10.568.59a.91.91 0 0 1 0-1.316.91.91 0 0 1 1.316 0c1.203 1.203 1.47 2.216 1.522 3.208q.012.255.011.51c0 1.16-.358 2.733-1.533 3.803a.7.7 0 0 1-.298.156c-.382.106-.873-.011-1.018-.156a.91.91 0 0 1 0-1.316c.57-.57.995-1.551.995-2.487 0-.944-.26-1.667-.995-2.402\" })\n] });\nexport default VolumeHighIcon;\n"],"mappings":";;AACA,MAAM,kBAAkB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CACjM,oBAAI,QAAQ,EAAE,GAAG,kKAAkK,CAAC,GACpL,oBAAI,QAAQ,EAAE,GAAG,waAAwa,CAAC,CAC5c;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/volume-low.js b/dist/default/icons/dist/react/default/volume-low.js new file mode 100644 index 00000000..5c3999f0 --- /dev/null +++ b/dist/default/icons/dist/react/default/volume-low.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/volume-low.js +const VolumeLowIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752m10.568.59a.91.91 0 0 1 0-1.316.91.91 0 0 1 1.316 0c1.203 1.203 1.47 2.216 1.522 3.208q.012.255.011.51c0 1.16-.358 2.733-1.533 3.803a.7.7 0 0 1-.298.156c-.382.106-.873-.011-1.018-.156a.91.91 0 0 1 0-1.316c.57-.57.995-1.551.995-2.487 0-.944-.26-1.667-.995-2.402" }) +}); +//#endregion +export { VolumeLowIcon as default }; + +//# sourceMappingURL=volume-low.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/volume-low.js.map b/dist/default/icons/dist/react/default/volume-low.js.map new file mode 100644 index 00000000..b8550acf --- /dev/null +++ b/dist/default/icons/dist/react/default/volume-low.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-low.js","names":[],"sources":["../../../../../../../icons/dist/react/default/volume-low.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst VolumeLowIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752m10.568.59a.91.91 0 0 1 0-1.316.91.91 0 0 1 1.316 0c1.203 1.203 1.47 2.216 1.522 3.208q.012.255.011.51c0 1.16-.358 2.733-1.533 3.803a.7.7 0 0 1-.298.156c-.382.106-.873-.011-1.018-.156a.91.91 0 0 1 0-1.316c.57-.57.995-1.551.995-2.487 0-.944-.26-1.667-.995-2.402\" }) });\nexport default VolumeLowIcon;\n"],"mappings":";;AACA,MAAM,iBAAiB,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,waAAwa,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/volume-off.js b/dist/default/icons/dist/react/default/volume-off.js new file mode 100644 index 00000000..93df9ae3 --- /dev/null +++ b/dist/default/icons/dist/react/default/volume-off.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/default/volume-off.js +const VolumeOffIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752M14.5 7.586l-1.768-1.768a1 1 0 1 0-1.414 1.414L13.085 9l-1.767 1.768a1 1 0 0 0 1.414 1.414l1.768-1.768 1.768 1.768a1 1 0 0 0 1.414-1.414L15.914 9l1.768-1.768a1 1 0 0 0-1.414-1.414z" }) +}); +//#endregion +export { VolumeOffIcon as default }; + +//# sourceMappingURL=volume-off.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/default/volume-off.js.map b/dist/default/icons/dist/react/default/volume-off.js.map new file mode 100644 index 00000000..80bdd3e5 --- /dev/null +++ b/dist/default/icons/dist/react/default/volume-off.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-off.js","names":[],"sources":["../../../../../../../icons/dist/react/default/volume-off.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst VolumeOffIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752M14.5 7.586l-1.768-1.768a1 1 0 1 0-1.414 1.414L13.085 9l-1.767 1.768a1 1 0 0 0 1.414 1.414l1.768-1.768 1.768 1.768a1 1 0 0 0 1.414-1.414L15.914 9l1.768-1.768a1 1 0 0 0-1.414-1.414z\" }) });\nexport default VolumeOffIcon;\n"],"mappings":";;AACA,MAAM,iBAAiB,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,wVAAwV,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/airplay-enter.js b/dist/default/icons/dist/react/minimal/airplay-enter.js new file mode 100644 index 00000000..f7496f8f --- /dev/null +++ b/dist/default/icons/dist/react/minimal/airplay-enter.js @@ -0,0 +1,16 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/airplay-enter.js +const AirPlayEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M15.154 2.004A3 3 0 0 1 18 5v6a3 3 0 0 1-2.846 2.996L15 14l-1.5-1.5H15a1.5 1.5 0 0 0 1.5-1.5V5A1.5 1.5 0 0 0 15 3.5H3A1.5 1.5 0 0 0 1.5 5v6A1.5 1.5 0 0 0 3 12.5h1.5L3 14a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3h12z" }), /* @__PURE__ */ jsx("path", { d: "M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z" })] +}); +//#endregion +export { AirPlayEnterIcon as default }; + +//# sourceMappingURL=airplay-enter.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/airplay-enter.js.map b/dist/default/icons/dist/react/minimal/airplay-enter.js.map new file mode 100644 index 00000000..66fa96e2 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/airplay-enter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"airplay-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/airplay-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst AirPlayEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M15.154 2.004A3 3 0 0 1 18 5v6a3 3 0 0 1-2.846 2.996L15 14l-1.5-1.5H15a1.5 1.5 0 0 0 1.5-1.5V5A1.5 1.5 0 0 0 15 3.5H3A1.5 1.5 0 0 0 1.5 5v6A1.5 1.5 0 0 0 3 12.5h1.5L3 14a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3h12z\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z\" })\n] });\nexport default AirPlayEnterIcon;\n"],"mappings":";;AACA,MAAM,oBAAoB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CACnM,oBAAI,QAAQ,EAAE,GAAG,8MAA8M,CAAC,GAChO,oBAAI,QAAQ,EAAE,GAAG,6FAA6F,CAAC,CACjI;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/airplay-exit.js b/dist/default/icons/dist/react/minimal/airplay-exit.js new file mode 100644 index 00000000..2e26f565 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/airplay-exit.js @@ -0,0 +1,28 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/airplay-exit.js +const AirPlayExitIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("style", { children: "@keyframes media-icon--airplay__triangle{0%{translate:0 0}to{translate:0-2px}}@keyframes media-icon--airplay__fill{0%{fill-opacity:0}to{fill-opacity:.2}}" }), + /* @__PURE__ */ jsx("path", { + fillOpacity: .2, + d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5a3.5 3.5 0 0 1-3.032 3.468L9.354 8.354a.5.5 0 0 0-.708 0l-5.615 5.614A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z", + style: { animation: "var(--media-icon--airplay__fill-animation, media-icon--airplay__fill 1s ease-in-out infinite alternate)" } + }), + /* @__PURE__ */ jsx("path", { d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13.5 12.5h1a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2h-11a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h1l-1.468 1.467A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z" }), + /* @__PURE__ */ jsx("path", { + d: "M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z", + style: { animation: "var(--media-icon--airplay__triangle-animation, media-icon--airplay__triangle 1s ease-in-out infinite alternate)" } + }) + ] +}); +//#endregion +export { AirPlayExitIcon as default }; + +//# sourceMappingURL=airplay-exit.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/airplay-exit.js.map b/dist/default/icons/dist/react/minimal/airplay-exit.js.map new file mode 100644 index 00000000..17317532 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/airplay-exit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"airplay-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/airplay-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst AirPlayExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"style\", { children: \"@keyframes media-icon--airplay__triangle{0%{translate:0 0}to{translate:0-2px}}@keyframes media-icon--airplay__fill{0%{fill-opacity:0}to{fill-opacity:.2}}\" }),\n /* @__PURE__ */ jsx(\"path\", { fillOpacity: 0.2, d: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5a3.5 3.5 0 0 1-3.032 3.468L9.354 8.354a.5.5 0 0 0-.708 0l-5.615 5.614A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\", style: {\n animation: \"var(--media-icon--airplay__fill-animation, media-icon--airplay__fill 1s ease-in-out infinite alternate)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13.5 12.5h1a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2h-11a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h1l-1.468 1.467A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z\", style: {\n animation: \"var(--media-icon--airplay__triangle-animation, media-icon--airplay__triangle 1s ease-in-out infinite alternate)\"\n } })\n] });\nexport default AirPlayExitIcon;\n"],"mappings":";;AACA,MAAM,mBAAmB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAClM,oBAAI,SAAS,EAAE,UAAU,4JAA4J,CAAC;EACtL,oBAAI,QAAQ;GAAE,aAAa;GAAK,GAAG;GAAoJ,OAAO,EAC5M,WAAW,0GACb;EAAE,CAAC;EACa,oBAAI,QAAQ,EAAE,GAAG,6MAA6M,CAAC;EAC/N,oBAAI,QAAQ;GAAE,GAAG;GAA8F,OAAO,EACpI,WAAW,kHACb;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/captions-off.js b/dist/default/icons/dist/react/minimal/captions-off.js new file mode 100644 index 00000000..43b3e750 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/captions-off.js @@ -0,0 +1,71 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/captions-off.js +const CaptionsOffIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("rect", { + width: 16.5, + height: 12.5, + x: .75, + y: 2.75, + stroke: "currentColor", + strokeWidth: 1.5, + rx: 3 + }), + /* @__PURE__ */ jsx("rect", { + width: 3, + height: 1.5, + x: 3, + y: 8.5, + fill: "currentColor", + fillOpacity: .5, + rx: .75 + }), + /* @__PURE__ */ jsx("rect", { + width: 2, + height: 1.5, + x: 13, + y: 8.5, + fill: "currentColor", + fillOpacity: .5, + rx: .75 + }), + /* @__PURE__ */ jsx("rect", { + width: 4, + height: 1.5, + x: 11, + y: 11.5, + fill: "currentColor", + fillOpacity: .5, + rx: .75 + }), + /* @__PURE__ */ jsx("rect", { + width: 5, + height: 1.5, + x: 7, + y: 8.5, + fill: "currentColor", + fillOpacity: .5, + rx: .75 + }), + /* @__PURE__ */ jsx("rect", { + width: 7, + height: 1.5, + x: 3, + y: 11.5, + fill: "currentColor", + fillOpacity: .5, + rx: .75 + }) + ] +}); +//#endregion +export { CaptionsOffIcon as default }; + +//# sourceMappingURL=captions-off.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/captions-off.js.map b/dist/default/icons/dist/react/minimal/captions-off.js.map new file mode 100644 index 00000000..feeed328 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/captions-off.js.map @@ -0,0 +1 @@ +{"version":3,"file":"captions-off.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/captions-off.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CaptionsOffIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"rect\", { width: 16.5, height: 12.5, x: 0.75, y: 2.75, stroke: \"currentColor\", strokeWidth: 1.5, rx: 3 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 3, height: 1.5, x: 3, y: 8.5, fill: \"currentColor\", fillOpacity: 0.5, rx: 0.75 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 2, height: 1.5, x: 13, y: 8.5, fill: \"currentColor\", fillOpacity: 0.5, rx: 0.75 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 4, height: 1.5, x: 11, y: 11.5, fill: \"currentColor\", fillOpacity: 0.5, rx: 0.75 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 5, height: 1.5, x: 7, y: 8.5, fill: \"currentColor\", fillOpacity: 0.5, rx: 0.75 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 7, height: 1.5, x: 3, y: 11.5, fill: \"currentColor\", fillOpacity: 0.5, rx: 0.75 })\n] });\nexport default CaptionsOffIcon;\n"],"mappings":";;AACA,MAAM,mBAAmB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAC1L,oBAAI,QAAQ;GAAE,OAAO;GAAM,QAAQ;GAAM,GAAG;GAAM,GAAG;GAAM,QAAQ;GAAgB,aAAa;GAAK,IAAI;EAAE,CAAC;EAC5G,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAK,GAAG;GAAG,GAAG;GAAK,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAK,CAAC;EACrG,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAK,GAAG;GAAI,GAAG;GAAK,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAK,CAAC;EACtG,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAK,GAAG;GAAI,GAAG;GAAM,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAK,CAAC;EACvG,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAK,GAAG;GAAG,GAAG;GAAK,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAK,CAAC;EACrG,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAK,GAAG;GAAG,GAAG;GAAM,MAAM;GAAgB,aAAa;GAAK,IAAI;EAAK,CAAC;CACxH;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/captions-on.js b/dist/default/icons/dist/react/minimal/captions-on.js new file mode 100644 index 00000000..8f4bb24d --- /dev/null +++ b/dist/default/icons/dist/react/minimal/captions-on.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/captions-on.js +const CaptionsOnIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M15 2a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3zM3.75 11.5a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm8 0a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5zm-8-3a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5zm4 0a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5zm6 0a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5z" }) +}); +//#endregion +export { CaptionsOnIcon as default }; + +//# sourceMappingURL=captions-on.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/captions-on.js.map b/dist/default/icons/dist/react/minimal/captions-on.js.map new file mode 100644 index 00000000..82ba0b75 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/captions-on.js.map @@ -0,0 +1 @@ +{"version":3,"file":"captions-on.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/captions-on.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst CaptionsOnIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M15 2a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3zM3.75 11.5a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm8 0a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5zm-8-3a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5zm4 0a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5zm6 0a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5z\" }) });\nexport default CaptionsOnIcon;\n"],"mappings":";;AACA,MAAM,kBAAkB,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,wTAAwT,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/cast-enter.js b/dist/default/icons/dist/react/minimal/cast-enter.js new file mode 100644 index 00000000..286520ed --- /dev/null +++ b/dist/default/icons/dist/react/minimal/cast-enter.js @@ -0,0 +1,59 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/cast-enter.js +const CastEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { + fill: "currentColor", + d: "M15.154 2.004A3 3 0 0 1 18 5v8l-.004.154a3 3 0 0 1-2.842 2.842L15 16H7.5q-.002-.772-.15-1.5H15a1.5 1.5 0 0 0 1.5-1.5V5A1.5 1.5 0 0 0 15 3.5H3A1.5 1.5 0 0 0 1.5 5v3.65A7.5 7.5 0 0 0 0 8.5V5a3 3 0 0 1 3-3h12z" + }), + /* @__PURE__ */ jsx("mask", { + id: "a", + width: 8, + height: 8, + x: 0, + y: 8, + maskUnits: "userSpaceOnUse", + style: { maskType: "alpha" }, + children: /* @__PURE__ */ jsx("rect", { + width: 8, + height: 8, + y: 8, + fill: "#fff", + rx: .5 + }) + }), + /* @__PURE__ */ jsxs("g", { + mask: "url(#a)", + children: [ + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 3.25, + stroke: "currentColor", + strokeWidth: 1.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 5.75, + stroke: "currentColor", + strokeWidth: 1.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 1.5, + fill: "currentColor" + }) + ] + }) + ] +}); +//#endregion +export { CastEnterIcon as default }; + +//# sourceMappingURL=cast-enter.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/cast-enter.js.map b/dist/default/icons/dist/react/minimal/cast-enter.js.map new file mode 100644 index 00000000..4fa6323c --- /dev/null +++ b/dist/default/icons/dist/react/minimal/cast-enter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cast-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/cast-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CastEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M15.154 2.004A3 3 0 0 1 18 5v8l-.004.154a3 3 0 0 1-2.842 2.842L15 16H7.5q-.002-.772-.15-1.5H15a1.5 1.5 0 0 0 1.5-1.5V5A1.5 1.5 0 0 0 15 3.5H3A1.5 1.5 0 0 0 1.5 5v3.65A7.5 7.5 0 0 0 0 8.5V5a3 3 0 0 1 3-3h12z\" }),\n /* @__PURE__ */ jsx(\"mask\", { id: \"a\", width: 8, height: 8, x: 0, y: 8, maskUnits: \"userSpaceOnUse\", style: {\n maskType: \"alpha\"\n }, children: /* @__PURE__ */ jsx(\"rect\", { width: 8, height: 8, y: 8, fill: \"#fff\", rx: 0.5 }) }),\n /* @__PURE__ */ jsxs(\"g\", { mask: \"url(#a)\", children: [\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 3.25, stroke: \"currentColor\", strokeWidth: 1.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 5.75, stroke: \"currentColor\", strokeWidth: 1.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 1.5, fill: \"currentColor\" })\n ] })\n] });\nexport default CastEnterIcon;\n"],"mappings":";;AACA,MAAM,iBAAiB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACxL,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;EAAiN,CAAC;EACzP,oBAAI,QAAQ;GAAE,IAAI;GAAK,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAG,WAAW;GAAkB,OAAO,EAC1G,UAAU,QACZ;GAAG,UAA0B,oBAAI,QAAQ;IAAE,OAAO;IAAG,QAAQ;IAAG,GAAG;IAAG,MAAM;IAAQ,IAAI;GAAI,CAAC;EAAE,CAAC;EAChF,qBAAK,KAAK;GAAE,MAAM;GAAW,UAAU;IACrC,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAM,QAAQ;KAAgB,aAAa;IAAI,CAAC;IAC3E,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAM,QAAQ;KAAgB,aAAa;IAAI,CAAC;IAC3E,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAK,MAAM;IAAe,CAAC;GACxE;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/cast-exit.js b/dist/default/icons/dist/react/minimal/cast-exit.js new file mode 100644 index 00000000..65f00aa7 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/cast-exit.js @@ -0,0 +1,77 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/cast-exit.js +const CastExitIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("rect", { + width: 12, + height: 8, + x: 3, + y: 5, + fill: "currentColor", + rx: 1 + }), + /* @__PURE__ */ jsx("rect", { + width: 16.5, + height: 12.5, + x: .75, + y: 2.75, + stroke: "currentColor", + strokeWidth: 1.5, + rx: 2.25 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 7.5, + fill: "#fff" + }), + /* @__PURE__ */ jsx("mask", { + id: "a", + width: 8, + height: 8, + x: 0, + y: 8, + maskUnits: "userSpaceOnUse", + style: { maskType: "alpha" }, + children: /* @__PURE__ */ jsx("rect", { + width: 8, + height: 8, + y: 8, + fill: "#fff", + rx: .5 + }) + }), + /* @__PURE__ */ jsxs("g", { + mask: "url(#a)", + children: [ + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 3.25, + stroke: "currentColor", + strokeWidth: 1.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 5.75, + stroke: "currentColor", + strokeWidth: 1.5 + }), + /* @__PURE__ */ jsx("circle", { + cy: 16, + r: 1.5, + fill: "currentColor" + }) + ] + }) + ] +}); +//#endregion +export { CastExitIcon as default }; + +//# sourceMappingURL=cast-exit.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/cast-exit.js.map b/dist/default/icons/dist/react/minimal/cast-exit.js.map new file mode 100644 index 00000000..511b91fa --- /dev/null +++ b/dist/default/icons/dist/react/minimal/cast-exit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cast-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/cast-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CastExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"rect\", { width: 12, height: 8, x: 3, y: 5, fill: \"currentColor\", rx: 1 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 16.5, height: 12.5, x: 0.75, y: 2.75, stroke: \"currentColor\", strokeWidth: 1.5, rx: 2.25 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 7.5, fill: \"#fff\" }),\n /* @__PURE__ */ jsx(\"mask\", { id: \"a\", width: 8, height: 8, x: 0, y: 8, maskUnits: \"userSpaceOnUse\", style: {\n maskType: \"alpha\"\n }, children: /* @__PURE__ */ jsx(\"rect\", { width: 8, height: 8, y: 8, fill: \"#fff\", rx: 0.5 }) }),\n /* @__PURE__ */ jsxs(\"g\", { mask: \"url(#a)\", children: [\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 3.25, stroke: \"currentColor\", strokeWidth: 1.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 5.75, stroke: \"currentColor\", strokeWidth: 1.5 }),\n /* @__PURE__ */ jsx(\"circle\", { cy: 16, r: 1.5, fill: \"currentColor\" })\n ] })\n] });\nexport default CastExitIcon;\n"],"mappings":";;AACA,MAAM,gBAAgB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACvL,oBAAI,QAAQ;GAAE,OAAO;GAAI,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAG,MAAM;GAAgB,IAAI;EAAE,CAAC;EAC7E,oBAAI,QAAQ;GAAE,OAAO;GAAM,QAAQ;GAAM,GAAG;GAAM,GAAG;GAAM,QAAQ;GAAgB,aAAa;GAAK,IAAI;EAAK,CAAC;EAC/G,oBAAI,UAAU;GAAE,IAAI;GAAI,GAAG;GAAK,MAAM;EAAO,CAAC;EAC9C,oBAAI,QAAQ;GAAE,IAAI;GAAK,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAG,WAAW;GAAkB,OAAO,EAC1G,UAAU,QACZ;GAAG,UAA0B,oBAAI,QAAQ;IAAE,OAAO;IAAG,QAAQ;IAAG,GAAG;IAAG,MAAM;IAAQ,IAAI;GAAI,CAAC;EAAE,CAAC;EAChF,qBAAK,KAAK;GAAE,MAAM;GAAW,UAAU;IACrC,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAM,QAAQ;KAAgB,aAAa;IAAI,CAAC;IAC3E,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAM,QAAQ;KAAgB,aAAa;IAAI,CAAC;IAC3E,oBAAI,UAAU;KAAE,IAAI;KAAI,GAAG;KAAK,MAAM;IAAe,CAAC;GACxE;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/check.js b/dist/default/icons/dist/react/minimal/check.js new file mode 100644 index 00000000..a7f1ff57 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/check.js @@ -0,0 +1,22 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/check.js +const CheckIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { + stroke: "currentColor", + strokeLinecap: "round", + strokeLinejoin: "round", + strokeWidth: 2, + d: "M4 10.455 6.5 13 14 5" + }) +}); +//#endregion +export { CheckIcon as default }; + +//# sourceMappingURL=check.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/check.js.map b/dist/default/icons/dist/react/minimal/check.js.map new file mode 100644 index 00000000..52d2c1d2 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/check.js.map @@ -0,0 +1 @@ +{"version":3,"file":"check.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/check.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst CheckIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 2, d: \"M4 10.455 6.5 13 14 5\" }) });\nexport default CheckIcon;\n"],"mappings":";;AACA,MAAM,aAAa,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ;EAAE,QAAQ;EAAgB,eAAe;EAAS,gBAAgB;EAAS,aAAa;EAAG,GAAG;CAAwB,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/chevron.js b/dist/default/icons/dist/react/minimal/chevron.js new file mode 100644 index 00000000..f8b64613 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/chevron.js @@ -0,0 +1,21 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/chevron.js +const ChevronIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { + stroke: "currentColor", + strokeLinecap: "round", + strokeWidth: 1.5, + d: "M11.667 9.014 6.364 3.711m0 10.606 5.303-5.303" + }) +}); +//#endregion +export { ChevronIcon as default }; + +//# sourceMappingURL=chevron.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/chevron.js.map b/dist/default/icons/dist/react/minimal/chevron.js.map new file mode 100644 index 00000000..db066358 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/chevron.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chevron.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/chevron.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst ChevronIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { stroke: \"currentColor\", strokeLinecap: \"round\", strokeWidth: 1.5, d: \"M11.667 9.014 6.364 3.711m0 10.606 5.303-5.303\" }) });\nexport default ChevronIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ;EAAE,QAAQ;EAAgB,eAAe;EAAS,aAAa;EAAK,GAAG;CAAiD,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/fullscreen-enter.js b/dist/default/icons/dist/react/minimal/fullscreen-enter.js new file mode 100644 index 00000000..77cede3b --- /dev/null +++ b/dist/default/icons/dist/react/minimal/fullscreen-enter.js @@ -0,0 +1,20 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/fullscreen-enter.js +const FullscreenEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { d: "M15.25 2a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V3.5h-3.75a.75.75 0 0 1-.743-.648L10 2.75a.75.75 0 0 1 .75-.75z" }), + /* @__PURE__ */ jsx("path", { d: "M14.72 2.22a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 1 1-1.06-1.06zM2.75 10a.75.75 0 0 1 .75.75v3.75h3.75a.75.75 0 0 1 .743.648L8 15.25a.75.75 0 0 1-.75.75h-4.5a.75.75 0 0 1-.75-.75v-4.5a.75.75 0 0 1 .75-.75" }), + /* @__PURE__ */ jsx("path", { d: "M6.72 10.22a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 0 1-1.06-1.06z" }) + ] +}); +//#endregion +export { FullscreenEnterIcon as default }; + +//# sourceMappingURL=fullscreen-enter.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map b/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map new file mode 100644 index 00000000..a340e6f1 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fullscreen-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/fullscreen-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst FullscreenEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M15.25 2a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V3.5h-3.75a.75.75 0 0 1-.743-.648L10 2.75a.75.75 0 0 1 .75-.75z\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M14.72 2.22a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 1 1-1.06-1.06zM2.75 10a.75.75 0 0 1 .75.75v3.75h3.75a.75.75 0 0 1 .743.648L8 15.25a.75.75 0 0 1-.75.75h-4.5a.75.75 0 0 1-.75-.75v-4.5a.75.75 0 0 1 .75-.75\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M6.72 10.22a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 0 1-1.06-1.06z\" })\n] });\nexport default FullscreenEnterIcon;\n"],"mappings":";;AACA,MAAM,uBAAuB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACtM,oBAAI,QAAQ,EAAE,GAAG,qHAAqH,CAAC;EACvI,oBAAI,QAAQ,EAAE,GAAG,kNAAkN,CAAC;EACpO,oBAAI,QAAQ,EAAE,GAAG,sEAAsE,CAAC;CAC1G;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/fullscreen-exit.js b/dist/default/icons/dist/react/minimal/fullscreen-exit.js new file mode 100644 index 00000000..05c397ae --- /dev/null +++ b/dist/default/icons/dist/react/minimal/fullscreen-exit.js @@ -0,0 +1,20 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/fullscreen-exit.js +const FullscreenExitIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { d: "M10.75 2a.75.75 0 0 1 .75.75V6.5h3.75a.75.75 0 0 1 .743.648L16 7.25a.75.75 0 0 1-.75.75h-4.5a.75.75 0 0 1-.75-.75v-4.5a.75.75 0 0 1 .75-.75" }), + /* @__PURE__ */ jsx("path", { d: "M14.72 2.22a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 1 1-1.06-1.06zM7.25 10a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V11.5H2.75a.75.75 0 0 1-.743-.648L2 10.75a.75.75 0 0 1 .75-.75z" }), + /* @__PURE__ */ jsx("path", { d: "M6.72 10.22a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 0 1-1.06-1.06z" }) + ] +}); +//#endregion +export { FullscreenExitIcon as default }; + +//# sourceMappingURL=fullscreen-exit.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map b/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map new file mode 100644 index 00000000..c55e090c --- /dev/null +++ b/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fullscreen-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/fullscreen-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst FullscreenExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M10.75 2a.75.75 0 0 1 .75.75V6.5h3.75a.75.75 0 0 1 .743.648L16 7.25a.75.75 0 0 1-.75.75h-4.5a.75.75 0 0 1-.75-.75v-4.5a.75.75 0 0 1 .75-.75\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M14.72 2.22a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 1 1-1.06-1.06zM7.25 10a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V11.5H2.75a.75.75 0 0 1-.743-.648L2 10.75a.75.75 0 0 1 .75-.75z\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M6.72 10.22a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 0 1-1.06-1.06z\" })\n] });\nexport default FullscreenExitIcon;\n"],"mappings":";;AACA,MAAM,sBAAsB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACrM,oBAAI,QAAQ,EAAE,GAAG,8IAA8I,CAAC;EAChK,oBAAI,QAAQ,EAAE,GAAG,wLAAwL,CAAC;EAC1M,oBAAI,QAAQ,EAAE,GAAG,sEAAsE,CAAC;CAC1G;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/gear.js b/dist/default/icons/dist/react/minimal/gear.js new file mode 100644 index 00000000..717d889b --- /dev/null +++ b/dist/default/icons/dist/react/minimal/gear.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/gear.js +const GearIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M7.519 2.184c.356-1.579 2.605-1.579 2.962 0a1.52 1.52 0 0 0 2.292.949c1.368-.864 2.958.727 2.094 2.095-.56.886-.073 2.06.95 2.29 1.578.357 1.578 2.607 0 2.964a1.518 1.518 0 0 0-.95 2.29c.864 1.369-.726 2.96-2.094 2.095a1.52 1.52 0 0 0-2.292.95c-.357 1.578-2.606 1.578-2.962 0a1.518 1.518 0 0 0-2.291-.95c-1.368.864-2.959-.726-2.095-2.094.56-.887.074-2.06-.95-2.291-1.578-.357-1.578-2.607 0-2.963a1.518 1.518 0 0 0 .95-2.291c-.864-1.368.727-2.959 2.095-2.095.886.56 2.06.074 2.29-.95M9 5.1a3.9 3.9 0 1 0 0 7.8 3.9 3.9 0 0 0 0-7.8" }) +}); +//#endregion +export { GearIcon as default }; + +//# sourceMappingURL=gear.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/gear.js.map b/dist/default/icons/dist/react/minimal/gear.js.map new file mode 100644 index 00000000..9291ce6a --- /dev/null +++ b/dist/default/icons/dist/react/minimal/gear.js.map @@ -0,0 +1 @@ +{"version":3,"file":"gear.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/gear.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst GearIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M7.519 2.184c.356-1.579 2.605-1.579 2.962 0a1.52 1.52 0 0 0 2.292.949c1.368-.864 2.958.727 2.094 2.095-.56.886-.073 2.06.95 2.29 1.578.357 1.578 2.607 0 2.964a1.518 1.518 0 0 0-.95 2.29c.864 1.369-.726 2.96-2.094 2.095a1.52 1.52 0 0 0-2.292.95c-.357 1.578-2.606 1.578-2.962 0a1.518 1.518 0 0 0-2.291-.95c-1.368.864-2.959-.726-2.095-2.094.56-.887.074-2.06-.95-2.291-1.578-.357-1.578-2.607 0-2.963a1.518 1.518 0 0 0 .95-2.291c-.864-1.368.727-2.959 2.095-2.095.886.56 2.06.074 2.29-.95M9 5.1a3.9 3.9 0 1 0 0 7.8 3.9 3.9 0 0 0 0-7.8\" }) });\nexport default GearIcon;\n"],"mappings":";;AACA,MAAM,YAAY,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,mhBAAmhB,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/pause.js b/dist/default/icons/dist/react/minimal/pause.js new file mode 100644 index 00000000..888deaed --- /dev/null +++ b/dist/default/icons/dist/react/minimal/pause.js @@ -0,0 +1,28 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/pause.js +const PauseIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("rect", { + width: 4, + height: 12, + x: 3, + y: 3, + rx: 1.75 + }), /* @__PURE__ */ jsx("rect", { + width: 4, + height: 12, + x: 11, + y: 3, + rx: 1.75 + })] +}); +//#endregion +export { PauseIcon as default }; + +//# sourceMappingURL=pause.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/pause.js.map b/dist/default/icons/dist/react/minimal/pause.js.map new file mode 100644 index 00000000..bc79367f --- /dev/null +++ b/dist/default/icons/dist/react/minimal/pause.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pause.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/pause.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PauseIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"rect\", { width: 4, height: 12, x: 3, y: 3, rx: 1.75 }),\n /* @__PURE__ */ jsx(\"rect\", { width: 4, height: 12, x: 11, y: 3, rx: 1.75 })\n] });\nexport default PauseIcon;\n"],"mappings":";;AACA,MAAM,aAAa,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAC5L,oBAAI,QAAQ;EAAE,OAAO;EAAG,QAAQ;EAAI,GAAG;EAAG,GAAG;EAAG,IAAI;CAAK,CAAC,GAC1D,oBAAI,QAAQ;EAAE,OAAO;EAAG,QAAQ;EAAI,GAAG;EAAI,GAAG;EAAG,IAAI;CAAK,CAAC,CAC7E;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/pip-enter.js b/dist/default/icons/dist/react/minimal/pip-enter.js new file mode 100644 index 00000000..a2282d5b --- /dev/null +++ b/dist/default/icons/dist/react/minimal/pip-enter.js @@ -0,0 +1,27 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/pip-enter.js +const PipEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { d: "M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z" }), + /* @__PURE__ */ jsx("rect", { + width: 10, + height: 7, + x: 8, + y: 10, + rx: 2 + }), + /* @__PURE__ */ jsx("path", { d: "M7.25 10A.75.75 0 0 0 8 9.25v-3.5a.75.75 0 0 0-1.5 0V8.5H3.75a.75.75 0 0 0-.743.648L3 9.25c0 .414.336.75.75.75z" }), + /* @__PURE__ */ jsx("path", { d: "M6.72 9.78a.75.75 0 0 0 1.06-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06z" }) + ] +}); +//#endregion +export { PipEnterIcon as default }; + +//# sourceMappingURL=pip-enter.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/pip-enter.js.map b/dist/default/icons/dist/react/minimal/pip-enter.js.map new file mode 100644 index 00000000..22a1da12 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/pip-enter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pip-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/pip-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, rx: 2 }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M7.25 10A.75.75 0 0 0 8 9.25v-3.5a.75.75 0 0 0-1.5 0V8.5H3.75a.75.75 0 0 0-.743.648L3 9.25c0 .414.336.75.75.75z\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M6.72 9.78a.75.75 0 0 0 1.06-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06z\" })\n] });\nexport default PipEnterIcon;\n"],"mappings":";;AACA,MAAM,gBAAgB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAC/L,oBAAI,QAAQ,EAAE,GAAG,qLAAqL,CAAC;EACvM,oBAAI,QAAQ;GAAE,OAAO;GAAI,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAI,IAAI;EAAE,CAAC;EACxD,oBAAI,QAAQ,EAAE,GAAG,kHAAkH,CAAC;EACpI,oBAAI,QAAQ,EAAE,GAAG,qEAAqE,CAAC;CACzG;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/pip-exit.js b/dist/default/icons/dist/react/minimal/pip-exit.js new file mode 100644 index 00000000..3f48a36b --- /dev/null +++ b/dist/default/icons/dist/react/minimal/pip-exit.js @@ -0,0 +1,27 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/pip-exit.js +const PipExitIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { d: "M13 2a4 4 0 0 1 4 4v2.646a3.5 3.5 0 0 0-1-.146h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5q.002.523.146 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z" }), + /* @__PURE__ */ jsx("rect", { + width: 10, + height: 7, + x: 8, + y: 10, + rx: 2 + }), + /* @__PURE__ */ jsx("path", { d: "M3.75 5a.75.75 0 0 0-.75.75v3.5a.75.75 0 0 0 1.5 0V6.5h2.75a.75.75 0 0 0 .743-.648L8 5.75A.75.75 0 0 0 7.25 5z" }), + /* @__PURE__ */ jsx("path", { d: "M4.28 5.22a.75.75 0 0 0-1.06 1.06l3.5 3.5a.75.75 0 0 0 1.06-1.06z" }) + ] +}); +//#endregion +export { PipExitIcon as default }; + +//# sourceMappingURL=pip-exit.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/pip-exit.js.map b/dist/default/icons/dist/react/minimal/pip-exit.js.map new file mode 100644 index 00000000..d5d8b67e --- /dev/null +++ b/dist/default/icons/dist/react/minimal/pip-exit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pip-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/pip-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M13 2a4 4 0 0 1 4 4v2.646a3.5 3.5 0 0 0-1-.146h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5q.002.523.146 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, rx: 2 }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M3.75 5a.75.75 0 0 0-.75.75v3.5a.75.75 0 0 0 1.5 0V6.5h2.75a.75.75 0 0 0 .743-.648L8 5.75A.75.75 0 0 0 7.25 5z\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M4.28 5.22a.75.75 0 0 0-1.06 1.06l3.5 3.5a.75.75 0 0 0 1.06-1.06z\" })\n] });\nexport default PipExitIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAC9L,oBAAI,QAAQ,EAAE,GAAG,gLAAgL,CAAC;EAClM,oBAAI,QAAQ;GAAE,OAAO;GAAI,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAI,IAAI;EAAE,CAAC;EACxD,oBAAI,QAAQ,EAAE,GAAG,iHAAiH,CAAC;EACnI,oBAAI,QAAQ,EAAE,GAAG,oEAAoE,CAAC;CACxG;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/play.js b/dist/default/icons/dist/react/minimal/play.js new file mode 100644 index 00000000..1fb1a497 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/play.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/play.js +const PlayIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "m13.473 10.476-6.845 4.256a1.697 1.697 0 0 1-2.364-.547 1.77 1.77 0 0 1-.264-.93v-8.51C4 3.78 4.768 3 5.714 3c.324 0 .64.093.914.268l6.845 4.255a1.763 1.763 0 0 1 0 2.953" }) +}); +//#endregion +export { PlayIcon as default }; + +//# sourceMappingURL=play.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/play.js.map b/dist/default/icons/dist/react/minimal/play.js.map new file mode 100644 index 00000000..34d1a841 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/play.js.map @@ -0,0 +1 @@ +{"version":3,"file":"play.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/play.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst PlayIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"m13.473 10.476-6.845 4.256a1.697 1.697 0 0 1-2.364-.547 1.77 1.77 0 0 1-.264-.93v-8.51C4 3.78 4.768 3 5.714 3c.324 0 .64.093.914.268l6.845 4.255a1.763 1.763 0 0 1 0 2.953\" }) });\nexport default PlayIcon;\n"],"mappings":";;AACA,MAAM,YAAY,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,6KAA6K,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/quality.js b/dist/default/icons/dist/react/minimal/quality.js new file mode 100644 index 00000000..b031f241 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/quality.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/quality.js +const QualityIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M11 3c2.829 0 4.243 0 5.122.878C17 4.757 17 6.172 17 9s0 4.243-.878 5.121c-.879.879-2.293.88-5.121.88H7c-2.829 0-4.244 0-5.123-.88C1 13.243 1 11.828 1 9.001c0-2.83 0-4.244.878-5.123C2.758 3 4.172 3 7 3zM5.818 5.43 3.27 9.858v.936h2.997v1.296h1.179v-1.296h.936v-1.08h-.936V5.43zM9.372 12h1.277V9.21h.343c.17 0 .315.045.423.198L13.197 12h1.584l-2.286-3.32 2.195-3.222h-1.512l-1.746 2.565c-.144.216-.26.243-.431.243h-.352V5.457H9.372zM6.267 9.714H4.665l1.602-3.06z" }) +}); +//#endregion +export { QualityIcon as default }; + +//# sourceMappingURL=quality.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/quality.js.map b/dist/default/icons/dist/react/minimal/quality.js.map new file mode 100644 index 00000000..c52e14bc --- /dev/null +++ b/dist/default/icons/dist/react/minimal/quality.js.map @@ -0,0 +1 @@ +{"version":3,"file":"quality.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/quality.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst QualityIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M11 3c2.829 0 4.243 0 5.122.878C17 4.757 17 6.172 17 9s0 4.243-.878 5.121c-.879.879-2.293.88-5.121.88H7c-2.829 0-4.244 0-5.123-.88C1 13.243 1 11.828 1 9.001c0-2.83 0-4.244.878-5.123C2.758 3 4.172 3 7 3zM5.818 5.43 3.27 9.858v.936h2.997v1.296h1.179v-1.296h.936v-1.08h-.936V5.43zM9.372 12h1.277V9.21h.343c.17 0 .315.045.423.198L13.197 12h1.584l-2.286-3.32 2.195-3.222h-1.512l-1.746 2.565c-.144.216-.26.243-.431.243h-.352V5.457H9.372zM6.267 9.714H4.665l1.602-3.06z\" }) });\nexport default QualityIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,gdAAgd,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/restart.js b/dist/default/icons/dist/react/minimal/restart.js new file mode 100644 index 00000000..22d95ce0 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/restart.js @@ -0,0 +1,16 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/restart.js +const RestartIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M9 17a8 8 0 0 1-8-8h1.5a6.5 6.5 0 1 0 1.43-4.07l1.643 1.643A.25.25 0 0 1 5.396 7H1.25A.25.25 0 0 1 1 6.75V2.604a.25.25 0 0 1 .427-.177l1.438 1.438A8 8 0 1 1 9 17" }), /* @__PURE__ */ jsx("path", { d: "m11.61 9.639-3.331 2.07a.826.826 0 0 1-1.15-.266.86.86 0 0 1-.129-.452V6.849C7 6.38 7.374 6 7.834 6c.158 0 .312.045.445.13l3.331 2.071a.858.858 0 0 1 0 1.438" })] +}); +//#endregion +export { RestartIcon as default }; + +//# sourceMappingURL=restart.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/restart.js.map b/dist/default/icons/dist/react/minimal/restart.js.map new file mode 100644 index 00000000..df0a7128 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/restart.js.map @@ -0,0 +1 @@ +{"version":3,"file":"restart.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/restart.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst RestartIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M9 17a8 8 0 0 1-8-8h1.5a6.5 6.5 0 1 0 1.43-4.07l1.643 1.643A.25.25 0 0 1 5.396 7H1.25A.25.25 0 0 1 1 6.75V2.604a.25.25 0 0 1 .427-.177l1.438 1.438A8 8 0 1 1 9 17\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m11.61 9.639-3.331 2.07a.826.826 0 0 1-1.15-.266.86.86 0 0 1-.129-.452V6.849C7 6.38 7.374 6 7.834 6c.158 0 .312.045.445.13l3.331 2.071a.858.858 0 0 1 0 1.438\" })\n] });\nexport default RestartIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAC9L,oBAAI,QAAQ,EAAE,GAAG,oKAAoK,CAAC,GACtL,oBAAI,QAAQ,EAAE,GAAG,gKAAgK,CAAC,CACpM;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/seek.js b/dist/default/icons/dist/react/minimal/seek.js new file mode 100644 index 00000000..0e81302f --- /dev/null +++ b/dist/default/icons/dist/react/minimal/seek.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/seek.js +const SeekIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M1 9c0 2.21.895 4.21 2.343 5.657l1.06-1.06a6.5 6.5 0 1 1 9.665-8.665l-1.641 1.641a.25.25 0 0 0 .177.427h4.146a.25.25 0 0 0 .25-.25V2.604a.25.25 0 0 0-.427-.177l-1.438 1.438A8 8 0 0 0 1 9" }) +}); +//#endregion +export { SeekIcon as default }; + +//# sourceMappingURL=seek.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/seek.js.map b/dist/default/icons/dist/react/minimal/seek.js.map new file mode 100644 index 00000000..cf6636a3 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/seek.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seek.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/seek.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst SeekIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M1 9c0 2.21.895 4.21 2.343 5.657l1.06-1.06a6.5 6.5 0 1 1 9.665-8.665l-1.641 1.641a.25.25 0 0 0 .177.427h4.146a.25.25 0 0 0 .25-.25V2.604a.25.25 0 0 0-.427-.177l-1.438 1.438A8 8 0 0 0 1 9\" }) });\nexport default SeekIcon;\n"],"mappings":";;AACA,MAAM,YAAY,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,6LAA6L,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/speech.js b/dist/default/icons/dist/react/minimal/speech.js new file mode 100644 index 00000000..545e6dd2 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/speech.js @@ -0,0 +1,54 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/speech.js +const SpeechIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("mask", { + id: "a", + fill: "#fff", + children: /* @__PURE__ */ jsx("path", { d: "M6 12a5 5 0 0 1 4.511 2.843c.274.57-.203 1.157-.835 1.157H2.324c-.632 0-1.109-.587-.836-1.157A5 5 0 0 1 6 12" }) + }), + /* @__PURE__ */ jsx("path", { + fill: "currentColor", + fillOpacity: .2, + d: "M6 12a5 5 0 0 1 4.511 2.843c.274.57-.203 1.157-.835 1.157H2.324c-.632 0-1.109-.587-.836-1.157A5 5 0 0 1 6 12" + }), + /* @__PURE__ */ jsx("path", { + fill: "currentColor", + d: "M6 12v-1.5zm-4.512 2.843 1.353.648zm9.023 0-1.352.648zM6 12v1.5a3.5 3.5 0 0 1 3.159 1.99l1.352-.647 1.353-.648A6.5 6.5 0 0 0 6 10.5zm3.676 4v-1.5H2.324v3h7.352zm-8.188-1.157 1.353.648A3.5 3.5 0 0 1 6 13.5v-3a6.5 6.5 0 0 0-5.864 3.695zM2.324 16v-1.5c.147 0 .317.068.442.234a.73.73 0 0 1 .138.352.74.74 0 0 1-.063.405l-1.353-.648-1.352-.648c-.398.83-.24 1.714.232 2.342a2.44 2.44 0 0 0 1.956.963zm8.187-1.157-1.352.648a.74.74 0 0 1-.063-.405.73.73 0 0 1 .138-.352.56.56 0 0 1 .442-.234v3c.78 0 1.504-.362 1.956-.963.472-.628.63-1.511.232-2.342z", + mask: "url(#a)" + }), + /* @__PURE__ */ jsx("path", { + fill: "currentColor", + fillOpacity: .2, + stroke: "currentColor", + strokeWidth: 1.5, + d: "M6 6.75a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5Z" + }), + /* @__PURE__ */ jsxs("g", { + fill: "currentColor", + children: [ + /* @__PURE__ */ jsx("path", { d: "M14 2a2 2 0 0 1 2 2v1a2 2 0 0 1-2 2h-3a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm-2.75 1.5a.75.75 0 0 0-.75.75v.5c0 .414.336.75.75.75h2.5a.75.75 0 0 0 .75-.75v-.5a.75.75 0 0 0-.75-.75z" }), + /* @__PURE__ */ jsx("rect", { + width: 4, + height: 2, + x: 10.5, + y: 3.5, + fillOpacity: .2, + rx: .75 + }), + /* @__PURE__ */ jsx("path", { d: "M10 6h4l-3.2 2.4A.5.5 0 0 1 10 8z" }) + ] + }) + ] +}); +//#endregion +export { SpeechIcon as default }; + +//# sourceMappingURL=speech.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/speech.js.map b/dist/default/icons/dist/react/minimal/speech.js.map new file mode 100644 index 00000000..f1fc3086 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/speech.js.map @@ -0,0 +1 @@ +{"version":3,"file":"speech.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/speech.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst SpeechIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"mask\", { id: \"a\", fill: \"#fff\", children: /* @__PURE__ */ jsx(\"path\", { d: \"M6 12a5 5 0 0 1 4.511 2.843c.274.57-.203 1.157-.835 1.157H2.324c-.632 0-1.109-.587-.836-1.157A5 5 0 0 1 6 12\" }) }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", fillOpacity: 0.2, d: \"M6 12a5 5 0 0 1 4.511 2.843c.274.57-.203 1.157-.835 1.157H2.324c-.632 0-1.109-.587-.836-1.157A5 5 0 0 1 6 12\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M6 12v-1.5zm-4.512 2.843 1.353.648zm9.023 0-1.352.648zM6 12v1.5a3.5 3.5 0 0 1 3.159 1.99l1.352-.647 1.353-.648A6.5 6.5 0 0 0 6 10.5zm3.676 4v-1.5H2.324v3h7.352zm-8.188-1.157 1.353.648A3.5 3.5 0 0 1 6 13.5v-3a6.5 6.5 0 0 0-5.864 3.695zM2.324 16v-1.5c.147 0 .317.068.442.234a.73.73 0 0 1 .138.352.74.74 0 0 1-.063.405l-1.353-.648-1.352-.648c-.398.83-.24 1.714.232 2.342a2.44 2.44 0 0 0 1.956.963zm8.187-1.157-1.352.648a.74.74 0 0 1-.063-.405.73.73 0 0 1 .138-.352.56.56 0 0 1 .442-.234v3c.78 0 1.504-.362 1.956-.963.472-.628.63-1.511.232-2.342z\", mask: \"url(#a)\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", fillOpacity: 0.2, stroke: \"currentColor\", strokeWidth: 1.5, d: \"M6 6.75a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5Z\" }),\n /* @__PURE__ */ jsxs(\"g\", { fill: \"currentColor\", children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M14 2a2 2 0 0 1 2 2v1a2 2 0 0 1-2 2h-3a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm-2.75 1.5a.75.75 0 0 0-.75.75v.5c0 .414.336.75.75.75h2.5a.75.75 0 0 0 .75-.75v-.5a.75.75 0 0 0-.75-.75z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 4, height: 2, x: 10.5, y: 3.5, fillOpacity: 0.2, rx: 0.75 }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M10 6h4l-3.2 2.4A.5.5 0 0 1 10 8z\" })\n ] })\n] });\nexport default SpeechIcon;\n"],"mappings":";;AACA,MAAM,cAAc,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACrL,oBAAI,QAAQ;GAAE,IAAI;GAAK,MAAM;GAAQ,UAA0B,oBAAI,QAAQ,EAAE,GAAG,+GAA+G,CAAC;EAAE,CAAC;EACnM,oBAAI,QAAQ;GAAE,MAAM;GAAgB,aAAa;GAAK,GAAG;EAA+G,CAAC;EACzK,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAkiB,MAAM;EAAU,CAAC;EAC1lB,oBAAI,QAAQ;GAAE,MAAM;GAAgB,aAAa;GAAK,QAAQ;GAAgB,aAAa;GAAK,GAAG;EAAuD,CAAC;EAC3J,qBAAK,KAAK;GAAE,MAAM;GAAgB,UAAU;IAC1C,oBAAI,QAAQ,EAAE,GAAG,gLAAgL,CAAC;IAClM,oBAAI,QAAQ;KAAE,OAAO;KAAG,QAAQ;KAAG,GAAG;KAAM,GAAG;KAAK,aAAa;KAAK,IAAI;IAAK,CAAC;IAChF,oBAAI,QAAQ,EAAE,GAAG,oCAAoC,CAAC;GACxE;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/speed.js b/dist/default/icons/dist/react/minimal/speed.js new file mode 100644 index 00000000..c7c3b0f9 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/speed.js @@ -0,0 +1,52 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/speed.js +const SpeedIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("path", { d: "M9 18q-.213 0-.424-.012h.85Q9.214 18 9 18M9 2a8 8 0 0 1 8 8c0 1.975-.719 3.78-1.905 5.175a.75.75 0 0 1-1.204.018l-1.509-1.971a.75.75 0 0 1 .596-1.206h2.202a6.5 6.5 0 1 0-12.36 0h2.209a.75.75 0 0 1 .595 1.206l-1.507 1.971a.75.75 0 0 1-1.133.07l-.003.004A8 8 0 0 1 9 2" }), + /* @__PURE__ */ jsx("rect", { + width: 6, + height: 1.5, + x: 6, + y: 14, + fillOpacity: .5, + rx: .75 + }), + /* @__PURE__ */ jsx("path", { d: "M8.504 5.217c.077-.578.915-.578.992 0l.399 2.996A1.998 1.998 0 0 1 9 12a2 2 0 0 1-.896-3.787z" }), + /* @__PURE__ */ jsxs("g", { + fillOpacity: .5, + children: [ + /* @__PURE__ */ jsx("circle", { + cx: 4.75, + cy: 9.75, + r: .75 + }), + /* @__PURE__ */ jsx("circle", { + cx: 13.25, + cy: 9.75, + r: .75 + }), + /* @__PURE__ */ jsx("circle", { + cx: 6, + cy: 6.75, + r: .75 + }), + /* @__PURE__ */ jsx("circle", { + cx: 12, + cy: 6.75, + r: .75 + }) + ] + }) + ] +}); +//#endregion +export { SpeedIcon as default }; + +//# sourceMappingURL=speed.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/speed.js.map b/dist/default/icons/dist/react/minimal/speed.js.map new file mode 100644 index 00000000..468c81b6 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/speed.js.map @@ -0,0 +1 @@ +{"version":3,"file":"speed.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/speed.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst SpeedIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M9 18q-.213 0-.424-.012h.85Q9.214 18 9 18M9 2a8 8 0 0 1 8 8c0 1.975-.719 3.78-1.905 5.175a.75.75 0 0 1-1.204.018l-1.509-1.971a.75.75 0 0 1 .596-1.206h2.202a6.5 6.5 0 1 0-12.36 0h2.209a.75.75 0 0 1 .595 1.206l-1.507 1.971a.75.75 0 0 1-1.133.07l-.003.004A8 8 0 0 1 9 2\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 6, height: 1.5, x: 6, y: 14, fillOpacity: 0.5, rx: 0.75 }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M8.504 5.217c.077-.578.915-.578.992 0l.399 2.996A1.998 1.998 0 0 1 9 12a2 2 0 0 1-.896-3.787z\" }),\n /* @__PURE__ */ jsxs(\"g\", { fillOpacity: 0.5, children: [\n /* @__PURE__ */ jsx(\"circle\", { cx: 4.75, cy: 9.75, r: 0.75 }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 13.25, cy: 9.75, r: 0.75 }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 6, cy: 6.75, r: 0.75 }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 12, cy: 6.75, r: 0.75 })\n ] })\n] });\nexport default SpeedIcon;\n"],"mappings":";;AACA,MAAM,aAAa,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EAC5L,oBAAI,QAAQ,EAAE,GAAG,6QAA6Q,CAAC;EAC/R,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAK,GAAG;GAAG,GAAG;GAAI,aAAa;GAAK,IAAI;EAAK,CAAC;EAC9E,oBAAI,QAAQ,EAAE,GAAG,gGAAgG,CAAC;EAClH,qBAAK,KAAK;GAAE,aAAa;GAAK,UAAU;IACtC,oBAAI,UAAU;KAAE,IAAI;KAAM,IAAI;KAAM,GAAG;IAAK,CAAC;IAC7C,oBAAI,UAAU;KAAE,IAAI;KAAO,IAAI;KAAM,GAAG;IAAK,CAAC;IAC9C,oBAAI,UAAU;KAAE,IAAI;KAAG,IAAI;KAAM,GAAG;IAAK,CAAC;IAC1C,oBAAI,UAAU;KAAE,IAAI;KAAI,IAAI;KAAM,GAAG;IAAK,CAAC;GAC7D;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/spinner.js b/dist/default/icons/dist/react/minimal/spinner.js new file mode 100644 index 00000000..9bbfc504 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/spinner.js @@ -0,0 +1,69 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/spinner.js +const SpinnerIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "none", + stroke: "currentColor", + strokeLinecap: "round", + strokeWidth: 2, + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [ + /* @__PURE__ */ jsx("style", { children: "@keyframes media-spinner-fade{0%{opacity:1}to{opacity:0}}.media-spinner__segment{animation:var(--media-spinner-animation, media-spinner-fade 1s linear infinite);animation-delay:var(--media-spinner-delay)}" }), + /* @__PURE__ */ jsx("path", { + d: "M9 1.5v3", + className: "media-spinner__segment", + opacity: .5, + style: { "--media-spinner-delay": "0s" } + }), + /* @__PURE__ */ jsx("path", { + d: "m14.5 3.5-2 2", + className: "media-spinner__segment", + opacity: .45, + style: { "--media-spinner-delay": "0.125s" } + }), + /* @__PURE__ */ jsx("path", { + d: "M16.5 9h-3", + className: "media-spinner__segment", + opacity: .4, + style: { "--media-spinner-delay": "0.25s" } + }), + /* @__PURE__ */ jsx("path", { + d: "m14.5 14.5-2-2", + className: "media-spinner__segment", + opacity: .35, + style: { "--media-spinner-delay": "0.375s" } + }), + /* @__PURE__ */ jsx("path", { + d: "M9 16.5v-3", + className: "media-spinner__segment", + opacity: .3, + style: { "--media-spinner-delay": "0.5s" } + }), + /* @__PURE__ */ jsx("path", { + d: "m3.5 14.5 2-2", + className: "media-spinner__segment", + opacity: .25, + style: { "--media-spinner-delay": "0.625s" } + }), + /* @__PURE__ */ jsx("path", { + d: "M1.5 9h3", + className: "media-spinner__segment", + opacity: .15, + style: { "--media-spinner-delay": "0.75s" } + }), + /* @__PURE__ */ jsx("path", { + d: "m3.5 3.5 2 2", + className: "media-spinner__segment", + opacity: .1, + style: { "--media-spinner-delay": "0.875s" } + }) + ] +}); +//#endregion +export { SpinnerIcon as default }; + +//# sourceMappingURL=spinner.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/spinner.js.map b/dist/default/icons/dist/react/minimal/spinner.js.map new file mode 100644 index 00000000..846875b8 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/spinner.js.map @@ -0,0 +1 @@ +{"version":3,"file":"spinner.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/spinner.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst SpinnerIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeWidth: 2, \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"style\", { children: \"@keyframes media-spinner-fade{0%{opacity:1}to{opacity:0}}.media-spinner__segment{animation:var(--media-spinner-animation, media-spinner-fade 1s linear infinite);animation-delay:var(--media-spinner-delay)}\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M9 1.5v3\", className: \"media-spinner__segment\", opacity: 0.5, style: {\n \"--media-spinner-delay\": \"0s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m14.5 3.5-2 2\", className: \"media-spinner__segment\", opacity: 0.45, style: {\n \"--media-spinner-delay\": \"0.125s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M16.5 9h-3\", className: \"media-spinner__segment\", opacity: 0.4, style: {\n \"--media-spinner-delay\": \"0.25s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m14.5 14.5-2-2\", className: \"media-spinner__segment\", opacity: 0.35, style: {\n \"--media-spinner-delay\": \"0.375s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M9 16.5v-3\", className: \"media-spinner__segment\", opacity: 0.3, style: {\n \"--media-spinner-delay\": \"0.5s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m3.5 14.5 2-2\", className: \"media-spinner__segment\", opacity: 0.25, style: {\n \"--media-spinner-delay\": \"0.625s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M1.5 9h3\", className: \"media-spinner__segment\", opacity: 0.15, style: {\n \"--media-spinner-delay\": \"0.75s\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m3.5 3.5 2 2\", className: \"media-spinner__segment\", opacity: 0.1, style: {\n \"--media-spinner-delay\": \"0.875s\"\n } })\n] });\nexport default SpinnerIcon;\n"],"mappings":";;AACA,MAAM,eAAe,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,QAAQ;CAAgB,eAAe;CAAS,aAAa;CAAG,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU;EACtP,oBAAI,SAAS,EAAE,UAAU,+MAA+M,CAAC;EACzO,oBAAI,QAAQ;GAAE,GAAG;GAAY,WAAW;GAA0B,SAAS;GAAK,OAAO,EACrG,yBAAyB,KAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAiB,WAAW;GAA0B,SAAS;GAAM,OAAO,EAC3G,yBAAyB,SAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAc,WAAW;GAA0B,SAAS;GAAK,OAAO,EACvG,yBAAyB,QAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAkB,WAAW;GAA0B,SAAS;GAAM,OAAO,EAC5G,yBAAyB,SAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAc,WAAW;GAA0B,SAAS;GAAK,OAAO,EACvG,yBAAyB,OAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAiB,WAAW;GAA0B,SAAS;GAAM,OAAO,EAC3G,yBAAyB,SAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAY,WAAW;GAA0B,SAAS;GAAM,OAAO,EACtG,yBAAyB,QAC3B;EAAE,CAAC;EACa,oBAAI,QAAQ;GAAE,GAAG;GAAgB,WAAW;GAA0B,SAAS;GAAK,OAAO,EACzG,yBAAyB,SAC3B;EAAE,CAAC;CACL;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/switches.js b/dist/default/icons/dist/react/minimal/switches.js new file mode 100644 index 00000000..1144e7a2 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/switches.js @@ -0,0 +1,19 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/switches.js +const SwitchesIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M12.5 9.5a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7zm-2 1.5a2 2 0 1 0 0 4h2a2 2 0 1 0 0-4z" }), /* @__PURE__ */ jsx("path", { + fillOpacity: .5, + d: "M12.5 1.5a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7zM5.5 3a2 2 0 1 0 0 4h2a2 2 0 1 0 0-4z" + })] +}); +//#endregion +export { SwitchesIcon as default }; + +//# sourceMappingURL=switches.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/switches.js.map b/dist/default/icons/dist/react/minimal/switches.js.map new file mode 100644 index 00000000..cb301d41 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/switches.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switches.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/switches.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst SwitchesIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M12.5 9.5a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7zm-2 1.5a2 2 0 1 0 0 4h2a2 2 0 1 0 0-4z\" }),\n /* @__PURE__ */ jsx(\"path\", { fillOpacity: 0.5, d: \"M12.5 1.5a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7zM5.5 3a2 2 0 1 0 0 4h2a2 2 0 1 0 0-4z\" })\n] });\nexport default SwitchesIcon;\n"],"mappings":";;AACA,MAAM,gBAAgB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAC/L,oBAAI,QAAQ,EAAE,GAAG,0FAA0F,CAAC,GAC5G,oBAAI,QAAQ;EAAE,aAAa;EAAK,GAAG;CAAyF,CAAC,CAC/I;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/volume-high.js b/dist/default/icons/dist/react/minimal/volume-high.js new file mode 100644 index 00000000..9708580d --- /dev/null +++ b/dist/default/icons/dist/react/minimal/volume-high.js @@ -0,0 +1,16 @@ +import { jsx, jsxs } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/volume-high.js +const VolumeHighIcon = (props) => /* @__PURE__ */ jsxs("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: [/* @__PURE__ */ jsx("path", { d: "M15.6 3.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4C15.4 5.9 16 7.4 16 9s-.6 3.1-1.8 4.3c-.4.4-.4 1 0 1.4.2.2.5.3.7.3.3 0 .5-.1.7-.3C17.1 13.2 18 11.2 18 9s-.9-4.2-2.4-5.7" }), /* @__PURE__ */ jsx("path", { d: "M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752m10.568.59a.91.91 0 0 1 0-1.316.91.91 0 0 1 1.316 0c1.203 1.203 1.47 2.216 1.522 3.208q.012.255.011.51c0 1.16-.358 2.733-1.533 3.803a.7.7 0 0 1-.298.156c-.382.106-.873-.011-1.018-.156a.91.91 0 0 1 0-1.316c.57-.57.995-1.551.995-2.487 0-.944-.26-1.667-.995-2.402" })] +}); +//#endregion +export { VolumeHighIcon as default }; + +//# sourceMappingURL=volume-high.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/volume-high.js.map b/dist/default/icons/dist/react/minimal/volume-high.js.map new file mode 100644 index 00000000..f5e61463 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/volume-high.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-high.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/volume-high.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst VolumeHighIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M15.6 3.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4C15.4 5.9 16 7.4 16 9s-.6 3.1-1.8 4.3c-.4.4-.4 1 0 1.4.2.2.5.3.7.3.3 0 .5-.1.7-.3C17.1 13.2 18 11.2 18 9s-.9-4.2-2.4-5.7\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752m10.568.59a.91.91 0 0 1 0-1.316.91.91 0 0 1 1.316 0c1.203 1.203 1.47 2.216 1.522 3.208q.012.255.011.51c0 1.16-.358 2.733-1.533 3.803a.7.7 0 0 1-.298.156c-.382.106-.873-.011-1.018-.156a.91.91 0 0 1 0-1.316c.57-.57.995-1.551.995-2.487 0-.944-.26-1.667-.995-2.402\" })\n] });\nexport default VolumeHighIcon;\n"],"mappings":";;AACA,MAAM,kBAAkB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CACjM,oBAAI,QAAQ,EAAE,GAAG,kKAAkK,CAAC,GACpL,oBAAI,QAAQ,EAAE,GAAG,waAAwa,CAAC,CAC5c;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/volume-low.js b/dist/default/icons/dist/react/minimal/volume-low.js new file mode 100644 index 00000000..aefa1ea9 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/volume-low.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/volume-low.js +const VolumeLowIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752m10.568.59a.91.91 0 0 1 0-1.316.91.91 0 0 1 1.316 0c1.203 1.203 1.47 2.216 1.522 3.208q.012.255.011.51c0 1.16-.358 2.733-1.533 3.803a.7.7 0 0 1-.298.156c-.382.106-.873-.011-1.018-.156a.91.91 0 0 1 0-1.316c.57-.57.995-1.551.995-2.487 0-.944-.26-1.667-.995-2.402" }) +}); +//#endregion +export { VolumeLowIcon as default }; + +//# sourceMappingURL=volume-low.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/volume-low.js.map b/dist/default/icons/dist/react/minimal/volume-low.js.map new file mode 100644 index 00000000..e0343e06 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/volume-low.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-low.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/volume-low.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst VolumeLowIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752m10.568.59a.91.91 0 0 1 0-1.316.91.91 0 0 1 1.316 0c1.203 1.203 1.47 2.216 1.522 3.208q.012.255.011.51c0 1.16-.358 2.733-1.533 3.803a.7.7 0 0 1-.298.156c-.382.106-.873-.011-1.018-.156a.91.91 0 0 1 0-1.316c.57-.57.995-1.551.995-2.487 0-.944-.26-1.667-.995-2.402\" }) });\nexport default VolumeLowIcon;\n"],"mappings":";;AACA,MAAM,iBAAiB,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,waAAwa,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/volume-off.js b/dist/default/icons/dist/react/minimal/volume-off.js new file mode 100644 index 00000000..40cbde6d --- /dev/null +++ b/dist/default/icons/dist/react/minimal/volume-off.js @@ -0,0 +1,16 @@ +import { jsx } from "react/jsx-runtime"; +//#region ../icons/dist/react/minimal/volume-off.js +const VolumeOffIcon = (props) => /* @__PURE__ */ jsx("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: 18, + height: 18, + fill: "currentColor", + "aria-hidden": "true", + viewBox: "0 0 18 18", + ...props, + children: /* @__PURE__ */ jsx("path", { d: "M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752M14.5 7.586l-1.768-1.768a1 1 0 1 0-1.414 1.414L13.085 9l-1.767 1.768a1 1 0 0 0 1.414 1.414l1.768-1.768 1.768 1.768a1 1 0 0 0 1.414-1.414L15.914 9l1.768-1.768a1 1 0 0 0-1.414-1.414z" }) +}); +//#endregion +export { VolumeOffIcon as default }; + +//# sourceMappingURL=volume-off.js.map \ No newline at end of file diff --git a/dist/default/icons/dist/react/minimal/volume-off.js.map b/dist/default/icons/dist/react/minimal/volume-off.js.map new file mode 100644 index 00000000..cdca1934 --- /dev/null +++ b/dist/default/icons/dist/react/minimal/volume-off.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-off.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/volume-off.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst VolumeOffIcon = (props) => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"currentColor\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: /* @__PURE__ */ jsx(\"path\", { d: \"M.714 6.008h3.072l4.071-3.857c.5-.376 1.143 0 1.143.601V15.28c0 .602-.643.903-1.143.602l-4.071-3.858H.714c-.428 0-.714-.3-.714-.752V6.76c0-.451.286-.752.714-.752M14.5 7.586l-1.768-1.768a1 1 0 1 0-1.414 1.414L13.085 9l-1.767 1.768a1 1 0 0 0 1.414 1.414l1.768-1.768 1.768 1.768a1 1 0 0 0 1.414-1.414L15.914 9l1.768-1.768a1 1 0 0 0-1.414-1.414z\" }) });\nexport default VolumeOffIcon;\n"],"mappings":";;AACA,MAAM,iBAAiB,UAA0B,oBAAI,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAA0B,oBAAI,QAAQ,EAAE,GAAG,wVAAwV,CAAC;AAAE,CAAC"} \ No newline at end of file diff --git a/dist/default/icons/index.js b/dist/default/icons/index.js new file mode 100644 index 00000000..309bdf45 --- /dev/null +++ b/dist/default/icons/index.js @@ -0,0 +1,26 @@ +import AirPlayEnterIcon from "./dist/react/default/airplay-enter.js"; +import AirPlayExitIcon from "./dist/react/default/airplay-exit.js"; +import CaptionsOffIcon from "./dist/react/default/captions-off.js"; +import CaptionsOnIcon from "./dist/react/default/captions-on.js"; +import CastEnterIcon from "./dist/react/default/cast-enter.js"; +import CastExitIcon from "./dist/react/default/cast-exit.js"; +import CheckIcon from "./dist/react/default/check.js"; +import ChevronIcon from "./dist/react/default/chevron.js"; +import FullscreenEnterIcon from "./dist/react/default/fullscreen-enter.js"; +import FullscreenExitIcon from "./dist/react/default/fullscreen-exit.js"; +import GearIcon from "./dist/react/default/gear.js"; +import PauseIcon from "./dist/react/default/pause.js"; +import PipEnterIcon from "./dist/react/default/pip-enter.js"; +import PipExitIcon from "./dist/react/default/pip-exit.js"; +import PlayIcon from "./dist/react/default/play.js"; +import QualityIcon from "./dist/react/default/quality.js"; +import RestartIcon from "./dist/react/default/restart.js"; +import SeekIcon from "./dist/react/default/seek.js"; +import SpeechIcon from "./dist/react/default/speech.js"; +import SpeedIcon from "./dist/react/default/speed.js"; +import SpinnerIcon from "./dist/react/default/spinner.js"; +import SwitchesIcon from "./dist/react/default/switches.js"; +import VolumeHighIcon from "./dist/react/default/volume-high.js"; +import VolumeLowIcon from "./dist/react/default/volume-low.js"; +import VolumeOffIcon from "./dist/react/default/volume-off.js"; +export { AirPlayEnterIcon, AirPlayExitIcon, CaptionsOffIcon, CaptionsOnIcon, CastEnterIcon, CastExitIcon, CheckIcon, ChevronIcon, FullscreenEnterIcon, FullscreenExitIcon, GearIcon, PauseIcon, PipEnterIcon, PipExitIcon, PlayIcon, QualityIcon, RestartIcon, SeekIcon, SpeechIcon, SpeedIcon, SpinnerIcon, SwitchesIcon, VolumeHighIcon, VolumeLowIcon, VolumeOffIcon }; diff --git a/dist/default/icons/minimal/index.js b/dist/default/icons/minimal/index.js new file mode 100644 index 00000000..8fa26ae6 --- /dev/null +++ b/dist/default/icons/minimal/index.js @@ -0,0 +1,26 @@ +import AirPlayEnterIcon from "../dist/react/minimal/airplay-enter.js"; +import AirPlayExitIcon from "../dist/react/minimal/airplay-exit.js"; +import CaptionsOffIcon from "../dist/react/minimal/captions-off.js"; +import CaptionsOnIcon from "../dist/react/minimal/captions-on.js"; +import CastEnterIcon from "../dist/react/minimal/cast-enter.js"; +import CastExitIcon from "../dist/react/minimal/cast-exit.js"; +import CheckIcon from "../dist/react/minimal/check.js"; +import ChevronIcon from "../dist/react/minimal/chevron.js"; +import FullscreenEnterIcon from "../dist/react/minimal/fullscreen-enter.js"; +import FullscreenExitIcon from "../dist/react/minimal/fullscreen-exit.js"; +import GearIcon from "../dist/react/minimal/gear.js"; +import PauseIcon from "../dist/react/minimal/pause.js"; +import PipEnterIcon from "../dist/react/minimal/pip-enter.js"; +import PipExitIcon from "../dist/react/minimal/pip-exit.js"; +import PlayIcon from "../dist/react/minimal/play.js"; +import QualityIcon from "../dist/react/minimal/quality.js"; +import RestartIcon from "../dist/react/minimal/restart.js"; +import SeekIcon from "../dist/react/minimal/seek.js"; +import SpeechIcon from "../dist/react/minimal/speech.js"; +import SpeedIcon from "../dist/react/minimal/speed.js"; +import SpinnerIcon from "../dist/react/minimal/spinner.js"; +import SwitchesIcon from "../dist/react/minimal/switches.js"; +import VolumeHighIcon from "../dist/react/minimal/volume-high.js"; +import VolumeLowIcon from "../dist/react/minimal/volume-low.js"; +import VolumeOffIcon from "../dist/react/minimal/volume-off.js"; +export { AirPlayEnterIcon, AirPlayExitIcon, CaptionsOffIcon, CaptionsOnIcon, CastEnterIcon, CastExitIcon, CheckIcon, ChevronIcon, FullscreenEnterIcon, FullscreenExitIcon, GearIcon, PauseIcon, PipEnterIcon, PipExitIcon, PlayIcon, QualityIcon, RestartIcon, SeekIcon, SpeechIcon, SpeedIcon, SpinnerIcon, SwitchesIcon, VolumeHighIcon, VolumeLowIcon, VolumeOffIcon }; diff --git a/dist/default/index.js b/dist/default/index.js new file mode 100644 index 00000000..52e5e019 --- /dev/null +++ b/dist/default/index.js @@ -0,0 +1,65 @@ +"use client"; +import { I18nContext, useLocale, useTranslator } from "./i18n/context.js"; +import { I18nProvider, createI18n } from "./i18n/create-i18n.js"; +import { createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, onI18nRegistryChange, registerI18n } from "./i18n/index.js"; +import { composeRefs, useComposedRefs } from "./utils/use-composed-refs.js"; +import { useContainer, useContainerAttach, useMedia, useMediaAttach, useOptionalContainer, useOptionalPlayer, usePlayer, usePlayerContext } from "./player/context.js"; +import { Container } from "./player/container.js"; +import { useLatestRef } from "./utils/use-latest-ref.js"; +import { useDestroy } from "./utils/use-destroy.js"; +import { createPlayer } from "./player/create-player.js"; +import { mergeProps } from "./utils/merge-props.js"; +import { renderElement } from "./utils/use-render.js"; +import { useButton } from "./ui/hooks/use-button.js"; +import { useHotkeyShortcut } from "./ui/hotkey/use-hotkey-shortcut.js"; +import { useMenuContext, useOptionalMenuContext } from "./ui/menu/context.js"; +import { useTooltipContext } from "./ui/tooltip/context.js"; +import { AirPlayButton } from "./ui/airplay-button/airplay-button.js"; +import { useAlertDialogContext } from "./ui/alert-dialog/context.js"; +import { index_parts_exports } from "./ui/alert-dialog/index.parts.js"; +import { useAudioTrackOptions } from "./ui/audio-track/use-audio-track-options.js"; +import { BufferingIndicator } from "./ui/buffering-indicator/buffering-indicator.js"; +import { CaptionsButton } from "./ui/captions-button/captions-button.js"; +import { useCaptionsOptions } from "./ui/captions-radio-group/use-captions-options.js"; +import { CastButton } from "./ui/cast-button/cast-button.js"; +import { index_parts_exports as index_parts_exports$1 } from "./ui/controls/index.parts.js"; +import { useErrorDialogContext } from "./ui/error-dialog/context.js"; +import { index_parts_exports as index_parts_exports$2 } from "./ui/error-dialog/index.parts.js"; +import { FullscreenButton } from "./ui/fullscreen-button/fullscreen-button.js"; +import { Gesture, MediaGesture } from "./ui/gesture/gesture.js"; +import { useDoubleTapGesture } from "./ui/gesture/use-doubletap-gesture.js"; +import { useTapGesture } from "./ui/gesture/use-tap-gesture.js"; +import { useSlider } from "./ui/hooks/use-slider.js"; +import { Hotkey, MediaHotkey } from "./ui/hotkey/hotkey.js"; +import { useHotkey } from "./ui/hotkey/use-hotkey.js"; +import { LiveButton } from "./ui/live-button/live-button.js"; +import { usePlaybackRateOptions } from "./ui/playback-rate/use-playback-rate-options.js"; +import { useQualityOptions } from "./ui/quality/use-quality-options.js"; +import { index_parts_exports as index_parts_exports$3 } from "./ui/menu/index.parts.js"; +import { MuteButton } from "./ui/mute-button/mute-button.js"; +import { PiPButton } from "./ui/pip-button/pip-button.js"; +import { PlayButton } from "./ui/play-button/play-button.js"; +import { PlaybackRateButton } from "./ui/playback-rate-button/playback-rate-button.js"; +import { usePopoverContext } from "./ui/popover/context.js"; +import { index_parts_exports as index_parts_exports$4 } from "./ui/popover/index.parts.js"; +import { Poster } from "./ui/poster/poster.js"; +import { SeekButton } from "./ui/seek-button/seek-button.js"; +import { index_parts_exports as index_parts_exports$5 } from "./ui/seek-indicator/index.parts.js"; +import { Thumbnail } from "./ui/thumbnail/thumbnail.js"; +import { index_parts_exports as index_parts_exports$6 } from "./ui/slider/index.parts.js"; +import { StatusAnnouncer } from "./ui/status-announcer/status-announcer.js"; +import { index_parts_exports as index_parts_exports$7 } from "./ui/status-indicator/index.parts.js"; +import { index_parts_exports as index_parts_exports$8 } from "./ui/time/index.parts.js"; +import { index_parts_exports as index_parts_exports$9 } from "./ui/time-slider/index.parts.js"; +import { index_parts_exports as index_parts_exports$10 } from "./ui/tooltip/index.parts.js"; +import { index_parts_exports as index_parts_exports$11 } from "./ui/volume-indicator/index.parts.js"; +import { index_parts_exports as index_parts_exports$12 } from "./ui/volume-slider/index.parts.js"; +import { useAttachMedia } from "./utils/use-attach-media.js"; +import { useMediaComponent } from "./utils/use-media-component.js"; +import { useMediaInstance } from "./utils/use-media-instance.js"; +import { hasMetadata, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable } from "@videojs/media"; +import { createSelector, shallowEqual } from "@videojs/store"; +import { useSelector, useStore } from "@videojs/store/react"; +export * from "@videojs/core/dom"; +export * from "@videojs/media/dom"; +export { AirPlayButton, index_parts_exports as AlertDialog, BufferingIndicator, CaptionsButton, CastButton, Container, index_parts_exports$1 as Controls, index_parts_exports$2 as ErrorDialog, FullscreenButton, Gesture, Hotkey, I18nContext, I18nProvider, LiveButton, MediaGesture, MediaHotkey, index_parts_exports$3 as Menu, MuteButton, PiPButton, PlayButton, PlaybackRateButton, index_parts_exports$4 as Popover, Poster, SeekButton, index_parts_exports$5 as SeekIndicator, index_parts_exports$6 as Slider, StatusAnnouncer, index_parts_exports$7 as StatusIndicator, Thumbnail, index_parts_exports$8 as Time, index_parts_exports$9 as TimeSlider, index_parts_exports$10 as Tooltip, index_parts_exports$11 as VolumeIndicator, index_parts_exports$12 as VolumeSlider, composeRefs, createI18n, createPlayer, createSelector, createTranslator, findLocaleKeys, getI18nTranslations, hasMetadata, hasRegisteredLocale, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable, mergeProps, onI18nRegistryChange, registerI18n, renderElement, shallowEqual, useAlertDialogContext, useAttachMedia, useAudioTrackOptions, useButton, useCaptionsOptions, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useHotkeyShortcut, useLatestRef, useLocale, useMedia, useMediaAttach, useMediaComponent, useMediaInstance, useMenuContext, useOptionalContainer, useOptionalMenuContext, useOptionalPlayer, usePlaybackRateOptions, usePlayer, usePlayerContext, usePopoverContext, useQualityOptions, useSelector, useSlider, useStore, useTapGesture, useTooltipContext, useTranslator }; diff --git a/dist/default/media/audio.js b/dist/default/media/audio.js new file mode 100644 index 00000000..a8458bdb --- /dev/null +++ b/dist/default/media/audio.js @@ -0,0 +1,17 @@ +"use client"; +import { useComposedRefs } from "../utils/use-composed-refs.js"; +import { useMediaAttach } from "../player/context.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/media/audio.tsx +const Audio = forwardRef(function Audio({ children, ...props }, ref) { + return /* @__PURE__ */ jsx("audio", { + ref: useComposedRefs(ref, useMediaAttach()), + ...props, + children + }); +}); +//#endregion +export { Audio }; + +//# sourceMappingURL=audio.js.map \ No newline at end of file diff --git a/dist/default/media/audio.js.map b/dist/default/media/audio.js.map new file mode 100644 index 00000000..61d9b28c --- /dev/null +++ b/dist/default/media/audio.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audio.js","names":[],"sources":["../../../src/media/audio.tsx"],"sourcesContent":["'use client';\n\nimport type { AudioHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useMediaAttach } from '../player/context';\nimport { useComposedRefs } from '../utils/use-composed-refs';\n\nexport interface AudioProps extends AudioHTMLAttributes {}\n\nexport const Audio = forwardRef(function Audio({ children, ...props }, ref) {\n const setMedia = useMediaAttach();\n const composedRef = useComposedRefs(ref, setMedia);\n\n return (\n \n );\n});\n\nexport namespace Audio {\n export type Props = AudioProps;\n}\n"],"mappings":";;;;;;AAUA,MAAa,QAAQ,WAAyC,SAAS,MAAM,EAAE,UAAU,GAAG,SAAS,KAAK;CAIxG,OACE,oBAAC,SAAD;EAAO,KAHW,gBAAgB,KADnB,eAC+B,CAGxB;EAAG,GAAI;EAC1B;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/background-video/index.js b/dist/default/media/background-video/index.js new file mode 100644 index 00000000..6ddd2b6c --- /dev/null +++ b/dist/default/media/background-video/index.js @@ -0,0 +1,2 @@ +import { BackgroundVideo } from "./media.js"; +export { BackgroundVideo }; diff --git a/dist/default/media/background-video/media.js b/dist/default/media/background-video/media.js new file mode 100644 index 00000000..3e651a01 --- /dev/null +++ b/dist/default/media/background-video/media.js @@ -0,0 +1,26 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useMediaAttach } from "../../player/context.js"; +import { forwardRef, useCallback } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/media/background-video/media.tsx +const BackgroundVideo = forwardRef(function BackgroundVideo({ children, ...props }, ref) { + const setMedia = useMediaAttach(); + return /* @__PURE__ */ jsx("video", { + ref: useComposedRefs(ref, useCallback((el) => { + setMedia?.(el); + }, [setMedia])), + muted: true, + autoPlay: true, + loop: true, + playsInline: true, + disableRemotePlayback: true, + disablePictureInPicture: true, + ...props, + children + }); +}); +//#endregion +export { BackgroundVideo }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/background-video/media.js.map b/dist/default/media/background-video/media.js.map new file mode 100644 index 00000000..ead76ab7 --- /dev/null +++ b/dist/default/media/background-video/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/background-video/media.tsx"],"sourcesContent":["'use client';\n\nimport type { VideoHTMLAttributes } from 'react';\nimport { forwardRef, useCallback } from 'react';\n\nimport { useMediaAttach } from '../../player/context';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\n\nexport interface BackgroundVideoProps extends VideoHTMLAttributes {}\n\nexport const BackgroundVideo = forwardRef(function BackgroundVideo(\n { children, ...props },\n ref\n) {\n const setMedia = useMediaAttach();\n\n const mediaRef = useCallback(\n (el: HTMLVideoElement | null) => {\n setMedia?.(el);\n },\n [setMedia]\n );\n\n const composedRef = useComposedRefs(ref, mediaRef);\n\n return (\n \n );\n});\n\nexport namespace BackgroundVideo {\n export type Props = BackgroundVideoProps;\n}\n"],"mappings":";;;;;;AAUA,MAAa,kBAAkB,WAAmD,SAAS,gBACzF,EAAE,UAAU,GAAG,SACf,KACA;CACA,MAAM,WAAW,eAAe;CAWhC,OACE,oBAAC,SAAD;EAAO,KAHW,gBAAgB,KAPnB,aACd,OAAgC;GAC/B,WAAW,EAAE;EACf,GACA,CAAC,QAAQ,CAGqC,CAGxB;EAAG,OAAA;EAAM,UAAA;EAAS,MAAA;EAAK,aAAA;EAAY,uBAAA;EAAsB,yBAAA;EAAwB,GAAI;EACxG;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/dash-video/index.js b/dist/default/media/dash-video/index.js new file mode 100644 index 00000000..75b91f81 --- /dev/null +++ b/dist/default/media/dash-video/index.js @@ -0,0 +1,2 @@ +import { DashVideo } from "./media.js"; +export { DashVideo }; diff --git a/dist/default/media/dash-video/media.js b/dist/default/media/dash-video/media.js new file mode 100644 index 00000000..fef16c3f --- /dev/null +++ b/dist/default/media/dash-video/media.js @@ -0,0 +1,21 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useAttachMedia } from "../../utils/use-attach-media.js"; +import { useMediaInstance } from "../../utils/use-media-instance.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { DashMedia, dashMediaDefaultProps } from "@videojs/media/dom/dash"; +//#region src/media/dash-video/media.tsx +const DashVideo = forwardRef(function DashVideo({ children, ...props }, ref) { + const media = useMediaInstance(DashMedia); + return /* @__PURE__ */ jsx("video", { + ref: useComposedRefs(useAttachMedia(media), ref), + ...useSyncProps(media, props, dashMediaDefaultProps), + children + }); +}); +//#endregion +export { DashVideo }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/dash-video/media.js.map b/dist/default/media/dash-video/media.js.map new file mode 100644 index 00000000..d8bcb216 --- /dev/null +++ b/dist/default/media/dash-video/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/dash-video/media.tsx"],"sourcesContent":["'use client';\n\nimport type { DashMediaProps } from '@videojs/media/dom/dash';\nimport { DashMedia, dashMediaDefaultProps } from '@videojs/media/dom/dash';\nimport type { ReactNode, VideoHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface DashVideoProps\n extends Omit, keyof DashMediaProps>,\n Partial {\n children?: ReactNode;\n}\n\nexport const DashVideo = forwardRef(function DashVideo({ children, ...props }, ref) {\n const media = useMediaInstance(DashMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, dashMediaDefaultProps);\n\n return (\n \n );\n});\n\nexport namespace DashVideo {\n export type Props = DashVideoProps;\n}\n"],"mappings":";;;;;;;;;AAiBA,MAAa,YAAY,WAA6C,SAAS,UAAU,EAAE,UAAU,GAAG,SAAS,KAAK;CACpH,MAAM,QAAQ,iBAAiB,SAAS;CAKxC,OACE,oBAAC,SAAD;EAAO,KAJW,gBADF,eAAe,KACW,GAAG,GAIvB;EAAG,GAHT,aAAa,OAAO,OAAO,qBAGN;EAClC;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/google-cast/google-cast.js b/dist/default/media/google-cast/google-cast.js new file mode 100644 index 00000000..be784a53 --- /dev/null +++ b/dist/default/media/google-cast/google-cast.js @@ -0,0 +1,28 @@ +"use client"; +import { useMediaComponent } from "../../utils/use-media-component.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { GoogleCast, googleCastDefaultProps } from "@videojs/media/dom/google-cast"; +//#region src/media/google-cast/google-cast.tsx +/** +* Adds Google Cast support to the surrounding player's media. +* +* Renders nothing — place it inside the player provider as a sibling of the +* media component (e.g. ``) and it registers a `GoogleCast` +* media component with the active media. +* +* @example +* ```tsx +* +* +* +* +* ``` +*/ +function GoogleCast$1(props) { + useSyncProps(useMediaComponent(GoogleCast), props, googleCastDefaultProps); + return null; +} +//#endregion +export { GoogleCast$1 as GoogleCast }; + +//# sourceMappingURL=google-cast.js.map \ No newline at end of file diff --git a/dist/default/media/google-cast/google-cast.js.map b/dist/default/media/google-cast/google-cast.js.map new file mode 100644 index 00000000..b88fac61 --- /dev/null +++ b/dist/default/media/google-cast/google-cast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"google-cast.js","names":["GoogleCast","GoogleCastComponent"],"sources":["../../../../src/media/google-cast/google-cast.tsx"],"sourcesContent":["'use client';\n\nimport type { GoogleCastProps as GoogleCastComponentProps } from '@videojs/media/dom/google-cast';\nimport { GoogleCast as GoogleCastComponent, googleCastDefaultProps } from '@videojs/media/dom/google-cast';\nimport type { ReactNode } from 'react';\n\nimport { useMediaComponent } from '../../utils/use-media-component';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport type GoogleCastProps = Partial;\n\n/**\n * Adds Google Cast support to the surrounding player's media.\n *\n * Renders nothing — place it inside the player provider as a sibling of the\n * media component (e.g. ``) and it registers a `GoogleCast`\n * media component with the active media.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * ```\n */\nexport function GoogleCast(props: GoogleCastProps): ReactNode {\n const component = useMediaComponent(GoogleCastComponent);\n\n useSyncProps(component, props, googleCastDefaultProps);\n\n return null;\n}\n\nexport namespace GoogleCast {\n export type Props = GoogleCastProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA0BA,SAAgBA,aAAW,OAAmC;CAG5D,aAFkB,kBAAkBC,UAEf,GAAG,OAAO,sBAAsB;CAErD,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/media/google-cast/index.js b/dist/default/media/google-cast/index.js new file mode 100644 index 00000000..821a4203 --- /dev/null +++ b/dist/default/media/google-cast/index.js @@ -0,0 +1,2 @@ +import { GoogleCast } from "./google-cast.js"; +export { GoogleCast }; diff --git a/dist/default/media/hlsjs-video/index.js b/dist/default/media/hlsjs-video/index.js new file mode 100644 index 00000000..eec19d83 --- /dev/null +++ b/dist/default/media/hlsjs-video/index.js @@ -0,0 +1,2 @@ +import { HlsJsVideo } from "./media.js"; +export { HlsJsVideo }; diff --git a/dist/default/media/hlsjs-video/media.js b/dist/default/media/hlsjs-video/media.js new file mode 100644 index 00000000..af45c69c --- /dev/null +++ b/dist/default/media/hlsjs-video/media.js @@ -0,0 +1,21 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useAttachMedia } from "../../utils/use-attach-media.js"; +import { useMediaInstance } from "../../utils/use-media-instance.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { HlsJsMedia, hlsMediaDefaultProps } from "@videojs/media/dom/hls-js"; +//#region src/media/hlsjs-video/media.tsx +const HlsJsVideo = forwardRef(function HlsJsVideo({ children, ...props }, ref) { + const media = useMediaInstance(HlsJsMedia); + return /* @__PURE__ */ jsx("video", { + ref: useComposedRefs(useAttachMedia(media), ref), + ...useSyncProps(media, props, hlsMediaDefaultProps), + children + }); +}); +//#endregion +export { HlsJsVideo }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/hlsjs-video/media.js.map b/dist/default/media/hlsjs-video/media.js.map new file mode 100644 index 00000000..a7e9786e --- /dev/null +++ b/dist/default/media/hlsjs-video/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/hlsjs-video/media.tsx"],"sourcesContent":["'use client';\n\nimport type { HlsMediaProps } from '@videojs/media/dom/hls-js';\nimport { HlsJsMedia, hlsMediaDefaultProps } from '@videojs/media/dom/hls-js';\nimport type { ReactNode, VideoHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface HlsJsVideoProps\n extends Omit, keyof HlsMediaProps>,\n Partial {\n children?: ReactNode;\n}\n\nexport const HlsJsVideo = forwardRef(function HlsJsVideo(\n { children, ...props },\n ref\n) {\n const media = useMediaInstance(HlsJsMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, hlsMediaDefaultProps);\n\n return (\n \n );\n});\n\nexport namespace HlsJsVideo {\n export type Props = HlsJsVideoProps;\n}\n"],"mappings":";;;;;;;;;AAiBA,MAAa,aAAa,WAA8C,SAAS,WAC/E,EAAE,UAAU,GAAG,SACf,KACA;CACA,MAAM,QAAQ,iBAAiB,UAAU;CAKzC,OACE,oBAAC,SAAD;EAAO,KAJW,gBADF,eAAe,KACW,GAAG,GAIvB;EAAG,GAHT,aAAa,OAAO,OAAO,oBAGN;EAClC;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/mux-audio/index.js b/dist/default/media/mux-audio/index.js new file mode 100644 index 00000000..f69942ab --- /dev/null +++ b/dist/default/media/mux-audio/index.js @@ -0,0 +1,2 @@ +import { MuxAudio } from "./media.js"; +export { MuxAudio }; diff --git a/dist/default/media/mux-audio/media.js b/dist/default/media/mux-audio/media.js new file mode 100644 index 00000000..6f154b11 --- /dev/null +++ b/dist/default/media/mux-audio/media.js @@ -0,0 +1,26 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useAttachMedia } from "../../utils/use-attach-media.js"; +import { useMediaInstance } from "../../utils/use-media-instance.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { hlsMediaDefaultProps } from "@videojs/media/dom/hls-js"; +import { MuxMedia, muxMediaDefaultProps } from "@videojs/media/dom/mux"; +//#region src/media/mux-audio/media.tsx +const muxAudioDefaultProps = { + ...hlsMediaDefaultProps, + ...muxMediaDefaultProps +}; +const MuxAudio = forwardRef(function MuxAudio({ children, ...props }, ref) { + const media = useMediaInstance(MuxMedia); + return /* @__PURE__ */ jsx("audio", { + ref: useComposedRefs(useAttachMedia(media), ref), + ...useSyncProps(media, props, muxAudioDefaultProps), + children + }); +}); +//#endregion +export { MuxAudio }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/mux-audio/media.js.map b/dist/default/media/mux-audio/media.js.map new file mode 100644 index 00000000..fe1cc68d --- /dev/null +++ b/dist/default/media/mux-audio/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/mux-audio/media.tsx"],"sourcesContent":["'use client';\n\nimport type { HlsMediaProps } from '@videojs/media/dom/hls-js';\nimport { hlsMediaDefaultProps } from '@videojs/media/dom/hls-js';\nimport type { MuxMediaProps } from '@videojs/media/dom/mux';\nimport { MuxMedia, muxMediaDefaultProps } from '@videojs/media/dom/mux';\nimport type { AudioHTMLAttributes, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface MuxAudioProps\n extends Omit, keyof HlsMediaProps | keyof MuxMediaProps>,\n Partial,\n Partial {\n children?: ReactNode;\n}\n\nconst muxAudioDefaultProps: HlsMediaProps & MuxMediaProps = { ...hlsMediaDefaultProps, ...muxMediaDefaultProps };\n\nexport const MuxAudio = forwardRef(function MuxAudio({ children, ...props }, ref) {\n const media = useMediaInstance(MuxMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, muxAudioDefaultProps);\n\n return (\n \n );\n});\n\nexport namespace MuxAudio {\n export type Props = MuxAudioProps;\n}\n"],"mappings":";;;;;;;;;;AAoBA,MAAM,uBAAsD;CAAE,GAAG;CAAsB,GAAG;AAAqB;AAE/G,MAAa,WAAW,WAA4C,SAAS,SAAS,EAAE,UAAU,GAAG,SAAS,KAAK;CACjH,MAAM,QAAQ,iBAAiB,QAAQ;CAKvC,OACE,oBAAC,SAAD;EAAO,KAJW,gBADF,eAAe,KACW,GAAG,GAIvB;EAAG,GAHT,aAAa,OAAO,OAAO,oBAGN;EAClC;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/mux-data/index.js b/dist/default/media/mux-data/index.js new file mode 100644 index 00000000..6122b2d0 --- /dev/null +++ b/dist/default/media/mux-data/index.js @@ -0,0 +1,2 @@ +import { MuxData } from "./mux-data.js"; +export { MuxData }; diff --git a/dist/default/media/mux-data/mux-data.js b/dist/default/media/mux-data/mux-data.js new file mode 100644 index 00000000..38bfd7e7 --- /dev/null +++ b/dist/default/media/mux-data/mux-data.js @@ -0,0 +1,37 @@ +"use client"; +import { useMediaComponent } from "../../utils/use-media-component.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { MuxData, muxDataDefaultProps } from "@videojs/media/dom/mux"; +//#region src/media/mux-data/mux-data.tsx +/** +* Adds [Mux Data](https://www.mux.com/data) monitoring to the surrounding +* player's media. +* +* Renders nothing — place it inside the player provider as a sibling of the +* media component (e.g. ``) and it registers a `MuxData` media +* component with the active media. +* +* Mux-hosted playback needs no `envKey`: the view reports the Mux playback ID +* as its `video_id`, which Mux attributes to the owning environment. Set +* `envKey` to monitor sources Mux doesn't host. +* +* @example +* ```tsx +* +* +* +* +* ``` +*/ +function MuxData$1(props) { + const component = useMediaComponent(MuxData); + const { MuxDataSdk, ...rest } = props; + const sdk = "MuxDataSdk" in props ? MuxDataSdk : muxDataDefaultProps.MuxDataSdk; + if (component.MuxDataSdk !== sdk) component.MuxDataSdk = sdk; + useSyncProps(component, rest, muxDataDefaultProps); + return null; +} +//#endregion +export { MuxData$1 as MuxData }; + +//# sourceMappingURL=mux-data.js.map \ No newline at end of file diff --git a/dist/default/media/mux-data/mux-data.js.map b/dist/default/media/mux-data/mux-data.js.map new file mode 100644 index 00000000..58186747 --- /dev/null +++ b/dist/default/media/mux-data/mux-data.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mux-data.js","names":["MuxData","MuxDataComponent"],"sources":["../../../../src/media/mux-data/mux-data.tsx"],"sourcesContent":["'use client';\n\nimport type { MuxDataProps as MuxDataComponentProps } from '@videojs/media/dom/mux';\nimport { MuxData as MuxDataComponent, muxDataDefaultProps } from '@videojs/media/dom/mux';\nimport type { ReactNode } from 'react';\n\nimport { useMediaComponent } from '../../utils/use-media-component';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport type MuxDataProps = Partial;\n\n/**\n * Adds [Mux Data](https://www.mux.com/data) monitoring to the surrounding\n * player's media.\n *\n * Renders nothing — place it inside the player provider as a sibling of the\n * media component (e.g. ``) and it registers a `MuxData` media\n * component with the active media.\n *\n * Mux-hosted playback needs no `envKey`: the view reports the Mux playback ID\n * as its `video_id`, which Mux attributes to the owning environment. Set\n * `envKey` to monitor sources Mux doesn't host.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * ```\n */\nexport function MuxData(props: MuxDataProps): ReactNode {\n const component = useMediaComponent(MuxDataComponent);\n const { MuxDataSdk, ...rest } = props;\n\n // `useSyncProps` treats an `undefined` prop as \"reset to the default\", but\n // `MuxDataSdk={undefined}` is how consumers disable monitoring. Sync it here\n // instead: passing the prop wins even when its value is `undefined`, and only\n // omitting it falls back to the default SDK.\n const sdk = 'MuxDataSdk' in props ? MuxDataSdk : muxDataDefaultProps.MuxDataSdk;\n if (component.MuxDataSdk !== sdk) component.MuxDataSdk = sdk;\n\n useSyncProps(component, rest, muxDataDefaultProps);\n\n return null;\n}\n\nexport namespace MuxData {\n export type Props = MuxDataProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,SAAgBA,UAAQ,OAAgC;CACtD,MAAM,YAAY,kBAAkBC,OAAgB;CACpD,MAAM,EAAE,YAAY,GAAG,SAAS;CAMhC,MAAM,MAAM,gBAAgB,QAAQ,aAAa,oBAAoB;CACrE,IAAI,UAAU,eAAe,KAAK,UAAU,aAAa;CAEzD,aAAa,WAAW,MAAM,mBAAmB;CAEjD,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/media/mux-video/index.js b/dist/default/media/mux-video/index.js new file mode 100644 index 00000000..f1d6a081 --- /dev/null +++ b/dist/default/media/mux-video/index.js @@ -0,0 +1,2 @@ +import { MuxVideo } from "./media.js"; +export { MuxVideo }; diff --git a/dist/default/media/mux-video/media.js b/dist/default/media/mux-video/media.js new file mode 100644 index 00000000..341bdd6f --- /dev/null +++ b/dist/default/media/mux-video/media.js @@ -0,0 +1,56 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useAttachMedia } from "../../utils/use-attach-media.js"; +import { useMediaInstance } from "../../utils/use-media-instance.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { forwardRef, useCallback, useSyncExternalStore } from "react"; +import { jsx, jsxs } from "react/jsx-runtime"; +import { StreamTypes, hlsMediaDefaultProps } from "@videojs/media/dom/hls-js"; +import { MuxMedia, muxMediaDefaultProps } from "@videojs/media/dom/mux"; +//#region src/media/mux-video/media.tsx +const muxVideoDefaultProps = { + ...hlsMediaDefaultProps, + ...muxMediaDefaultProps +}; +const MuxVideo = forwardRef(function MuxVideo({ children, ...props }, ref) { + const media = useMediaInstance(MuxMedia); + return /* @__PURE__ */ jsxs("video", { + ref: useComposedRefs(useAttachMedia(media), ref), + ...useSyncProps(media, props, muxVideoDefaultProps), + children: [/* @__PURE__ */ jsx(MuxStoryboard, { media }), children] + }); +}); +function MuxStoryboard({ media }) { + const subscribe = useCallback((onChange) => { + let cancelled = false; + let scheduled = false; + const notify = () => { + if (scheduled) return; + scheduled = true; + queueMicrotask(() => { + scheduled = false; + if (!cancelled) onChange(); + }); + }; + media.addEventListener("streamtypechange", notify); + media.addEventListener("sourcechange", notify); + return () => { + cancelled = true; + media.removeEventListener("streamtypechange", notify); + media.removeEventListener("sourcechange", notify); + }; + }, [media]); + const getSnapshot = () => media.streamType === StreamTypes.LIVE ? "" : media.storyboard; + const src = useSyncExternalStore(subscribe, getSnapshot, getSnapshot); + if (!src) return null; + return /* @__PURE__ */ jsx("track", { + kind: "metadata", + label: "thumbnails", + src, + default: true + }); +} +//#endregion +export { MuxVideo }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/mux-video/media.js.map b/dist/default/media/mux-video/media.js.map new file mode 100644 index 00000000..a892671b --- /dev/null +++ b/dist/default/media/mux-video/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/mux-video/media.tsx"],"sourcesContent":["'use client';\n\nimport type { HlsMediaProps } from '@videojs/media/dom/hls-js';\nimport { hlsMediaDefaultProps, StreamTypes } from '@videojs/media/dom/hls-js';\nimport type { MuxMediaProps } from '@videojs/media/dom/mux';\nimport { MuxMedia, muxMediaDefaultProps } from '@videojs/media/dom/mux';\nimport type { ReactNode, VideoHTMLAttributes } from 'react';\nimport { forwardRef, useCallback, useSyncExternalStore } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface MuxVideoProps\n extends Omit, keyof HlsMediaProps | keyof MuxMediaProps>,\n Partial,\n Partial {\n children?: ReactNode;\n}\n\nconst muxVideoDefaultProps: HlsMediaProps & MuxMediaProps = { ...hlsMediaDefaultProps, ...muxMediaDefaultProps };\n\nexport const MuxVideo = forwardRef(function MuxVideo({ children, ...props }, ref) {\n const media = useMediaInstance(MuxMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, muxVideoDefaultProps);\n\n return (\n \n );\n});\n\nexport namespace MuxVideo {\n export type Props = MuxVideoProps;\n}\n\n// Renders the storyboard track in its own component so media changes don't re-render the whole media component.\nfunction MuxStoryboard({ media }: { media: MuxMedia }) {\n const subscribe = useCallback(\n (onChange: () => void) => {\n // `useSyncProps` writes `src` / `source` during render and those setters\n // dispatch `sourcechange` synchronously. Defer (and coalesce) notifications\n // so we never schedule an update while another component is rendering.\n let cancelled = false;\n let scheduled = false;\n const notify = () => {\n if (scheduled) return;\n scheduled = true;\n queueMicrotask(() => {\n scheduled = false;\n if (!cancelled) onChange();\n });\n };\n media.addEventListener('streamtypechange', notify);\n media.addEventListener('sourcechange', notify);\n return () => {\n cancelled = true;\n media.removeEventListener('streamtypechange', notify);\n media.removeEventListener('sourcechange', notify);\n };\n },\n [media]\n );\n\n // The stream type is detected at runtime and live streams have no storyboard.\n const getSnapshot = () => (media.streamType === StreamTypes.LIVE ? '' : media.storyboard);\n const src = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n if (!src) return null;\n return ;\n}\n"],"mappings":";;;;;;;;;;AAoBA,MAAM,uBAAsD;CAAE,GAAG;CAAsB,GAAG;AAAqB;AAE/G,MAAa,WAAW,WAA4C,SAAS,SAAS,EAAE,UAAU,GAAG,SAAS,KAAK;CACjH,MAAM,QAAQ,iBAAiB,QAAQ;CAKvC,OACE,qBAAC,SAAD;EAAO,KAJW,gBADF,eAAe,KACW,GAAG,GAIvB;EAAG,GAHT,aAAa,OAAO,OAAO,oBAGN;EAArC,UAAA,CACE,oBAAC,eAAD,EAAsB,MAAQ,CAAA,GAC7B,QACI;;AAEX,CAAC;AAOD,SAAS,cAAc,EAAE,SAA8B;CACrD,MAAM,YAAY,aACf,aAAyB;EAIxB,IAAI,YAAY;EAChB,IAAI,YAAY;EAChB,MAAM,eAAe;GACnB,IAAI,WAAW;GACf,YAAY;GACZ,qBAAqB;IACnB,YAAY;IACZ,IAAI,CAAC,WAAW,SAAS;GAC3B,CAAC;EACH;EACA,MAAM,iBAAiB,oBAAoB,MAAM;EACjD,MAAM,iBAAiB,gBAAgB,MAAM;EAC7C,aAAa;GACX,YAAY;GACZ,MAAM,oBAAoB,oBAAoB,MAAM;GACpD,MAAM,oBAAoB,gBAAgB,MAAM;EAClD;CACF,GACA,CAAC,KAAK,CACR;CAGA,MAAM,oBAAqB,MAAM,eAAe,YAAY,OAAO,KAAK,MAAM;CAC9E,MAAM,MAAM,qBAAqB,WAAW,aAAa,WAAW;CAEpE,IAAI,CAAC,KAAK,OAAO;CACjB,OAAO,oBAAC,SAAD;EAAO,MAAK;EAAW,OAAM;EAAkB;EAAK,SAAA;CAAS,CAAA;AACtE"} \ No newline at end of file diff --git a/dist/default/media/native-hls-video/index.js b/dist/default/media/native-hls-video/index.js new file mode 100644 index 00000000..b7d4d54e --- /dev/null +++ b/dist/default/media/native-hls-video/index.js @@ -0,0 +1,2 @@ +import { NativeHlsVideo } from "./media.js"; +export { NativeHlsVideo }; diff --git a/dist/default/media/native-hls-video/media.js b/dist/default/media/native-hls-video/media.js new file mode 100644 index 00000000..369d84b6 --- /dev/null +++ b/dist/default/media/native-hls-video/media.js @@ -0,0 +1,21 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useAttachMedia } from "../../utils/use-attach-media.js"; +import { useMediaInstance } from "../../utils/use-media-instance.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { NativeHlsMedia, nativeHlsMediaDefaultProps } from "@videojs/media/dom/native-hls"; +//#region src/media/native-hls-video/media.tsx +const NativeHlsVideo = forwardRef(function NativeHlsVideo({ children, ...props }, ref) { + const media = useMediaInstance(NativeHlsMedia); + return /* @__PURE__ */ jsx("video", { + ref: useComposedRefs(useAttachMedia(media), ref), + ...useSyncProps(media, props, nativeHlsMediaDefaultProps), + children + }); +}); +//#endregion +export { NativeHlsVideo }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/native-hls-video/media.js.map b/dist/default/media/native-hls-video/media.js.map new file mode 100644 index 00000000..e09adc7b --- /dev/null +++ b/dist/default/media/native-hls-video/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/native-hls-video/media.tsx"],"sourcesContent":["'use client';\n\nimport type { NativeHlsMediaProps } from '@videojs/media/dom/native-hls';\nimport { NativeHlsMedia, nativeHlsMediaDefaultProps } from '@videojs/media/dom/native-hls';\nimport type { ReactNode, VideoHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface NativeHlsVideoProps\n extends Omit, keyof NativeHlsMediaProps>,\n Partial {\n children?: ReactNode;\n}\n\nexport const NativeHlsVideo = forwardRef(function NativeHlsVideo(\n { children, ...props },\n ref\n) {\n const media = useMediaInstance(NativeHlsMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, nativeHlsMediaDefaultProps);\n\n return (\n \n );\n});\n\nexport namespace NativeHlsVideo {\n export type Props = NativeHlsVideoProps;\n}\n"],"mappings":";;;;;;;;;AAiBA,MAAa,iBAAiB,WAAkD,SAAS,eACvF,EAAE,UAAU,GAAG,SACf,KACA;CACA,MAAM,QAAQ,iBAAiB,cAAc;CAK7C,OACE,oBAAC,SAAD;EAAO,KAJW,gBADF,eAAe,KACW,GAAG,GAIvB;EAAG,GAHT,aAAa,OAAO,OAAO,0BAGN;EAClC;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/simple-hls-audio-only/index.js b/dist/default/media/simple-hls-audio-only/index.js new file mode 100644 index 00000000..f33277a7 --- /dev/null +++ b/dist/default/media/simple-hls-audio-only/index.js @@ -0,0 +1,2 @@ +import { SimpleHlsAudioOnly } from "./media.js"; +export { SimpleHlsAudioOnly }; diff --git a/dist/default/media/simple-hls-audio-only/media.js b/dist/default/media/simple-hls-audio-only/media.js new file mode 100644 index 00000000..7c7160a0 --- /dev/null +++ b/dist/default/media/simple-hls-audio-only/media.js @@ -0,0 +1,22 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useAttachMedia } from "../../utils/use-attach-media.js"; +import { useMediaInstance } from "../../utils/use-media-instance.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { SimpleHlsAudioOnlyMedia } from "@videojs/media/dom/simple-hls-audio-only"; +import { simpleHlsAudioOnlyMediaDefaultProps } from "@videojs/spf/hls"; +//#region src/media/simple-hls-audio-only/media.tsx +const SimpleHlsAudioOnly = forwardRef(function SimpleHlsAudioOnly({ children, ...props }, ref) { + const media = useMediaInstance(SimpleHlsAudioOnlyMedia); + return /* @__PURE__ */ jsx("audio", { + ref: useComposedRefs(useAttachMedia(media), ref), + ...useSyncProps(media, props, simpleHlsAudioOnlyMediaDefaultProps), + children + }); +}); +//#endregion +export { SimpleHlsAudioOnly }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/simple-hls-audio-only/media.js.map b/dist/default/media/simple-hls-audio-only/media.js.map new file mode 100644 index 00000000..cc869372 --- /dev/null +++ b/dist/default/media/simple-hls-audio-only/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/simple-hls-audio-only/media.tsx"],"sourcesContent":["'use client';\n\nimport { SimpleHlsAudioOnlyMedia } from '@videojs/media/dom/simple-hls-audio-only';\nimport type { SimpleHlsAudioOnlyMediaProps } from '@videojs/spf/hls';\nimport { simpleHlsAudioOnlyMediaDefaultProps } from '@videojs/spf/hls';\nimport type { AudioHTMLAttributes, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface SimpleHlsAudioOnlyProps\n extends Omit, keyof SimpleHlsAudioOnlyMediaProps>,\n Partial {\n children?: ReactNode;\n}\n\nexport const SimpleHlsAudioOnly = forwardRef(function SimpleHlsAudioOnly(\n { children, ...props },\n ref\n) {\n const media = useMediaInstance(SimpleHlsAudioOnlyMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, simpleHlsAudioOnlyMediaDefaultProps);\n\n return (\n \n );\n});\n\nexport namespace SimpleHlsAudioOnly {\n export type Props = SimpleHlsAudioOnlyProps;\n}\n"],"mappings":";;;;;;;;;;AAkBA,MAAa,qBAAqB,WAAsD,SAAS,mBAC/F,EAAE,UAAU,GAAG,SACf,KACA;CACA,MAAM,QAAQ,iBAAiB,uBAAuB;CAKtD,OACE,oBAAC,SAAD;EAAO,KAJW,gBADF,eAAe,KACW,GAAG,GAIvB;EAAG,GAHT,aAAa,OAAO,OAAO,mCAGN;EAClC;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/simple-hls-video/index.js b/dist/default/media/simple-hls-video/index.js new file mode 100644 index 00000000..dad89a5b --- /dev/null +++ b/dist/default/media/simple-hls-video/index.js @@ -0,0 +1,2 @@ +import { SimpleHlsVideo } from "./media.js"; +export { SimpleHlsVideo }; diff --git a/dist/default/media/simple-hls-video/media.js b/dist/default/media/simple-hls-video/media.js new file mode 100644 index 00000000..475f7baf --- /dev/null +++ b/dist/default/media/simple-hls-video/media.js @@ -0,0 +1,22 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useAttachMedia } from "../../utils/use-attach-media.js"; +import { useMediaInstance } from "../../utils/use-media-instance.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { simpleHlsMediaDefaultProps } from "@videojs/spf/hls"; +import { SimpleHlsMedia } from "@videojs/media/dom/simple-hls"; +//#region src/media/simple-hls-video/media.tsx +const SimpleHlsVideo = forwardRef(function SimpleHlsVideo({ children, ...props }, ref) { + const media = useMediaInstance(SimpleHlsMedia); + return /* @__PURE__ */ jsx("video", { + ref: useComposedRefs(useAttachMedia(media), ref), + ...useSyncProps(media, props, simpleHlsMediaDefaultProps), + children + }); +}); +//#endregion +export { SimpleHlsVideo }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/simple-hls-video/media.js.map b/dist/default/media/simple-hls-video/media.js.map new file mode 100644 index 00000000..9b8a3cdf --- /dev/null +++ b/dist/default/media/simple-hls-video/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/simple-hls-video/media.tsx"],"sourcesContent":["'use client';\n\nimport { SimpleHlsMedia } from '@videojs/media/dom/simple-hls';\nimport type { SimpleHlsMediaProps } from '@videojs/spf/hls';\nimport { simpleHlsMediaDefaultProps } from '@videojs/spf/hls';\nimport type { ReactNode, VideoHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface SimpleHlsVideoProps\n extends Omit, keyof SimpleHlsMediaProps>,\n Partial {\n children?: ReactNode;\n}\n\nexport const SimpleHlsVideo = forwardRef(function SimpleHlsVideo(\n { children, ...props },\n ref\n) {\n const media = useMediaInstance(SimpleHlsMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, simpleHlsMediaDefaultProps);\n\n return (\n \n );\n});\n\nexport namespace SimpleHlsVideo {\n export type Props = SimpleHlsVideoProps;\n}\n"],"mappings":";;;;;;;;;;AAkBA,MAAa,iBAAiB,WAAkD,SAAS,eACvF,EAAE,UAAU,GAAG,SACf,KACA;CACA,MAAM,QAAQ,iBAAiB,cAAc;CAK7C,OACE,oBAAC,SAAD;EAAO,KAJW,gBADF,eAAe,KACW,GAAG,GAIvB;EAAG,GAHT,aAAa,OAAO,OAAO,0BAGN;EAClC;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/video.js b/dist/default/media/video.js new file mode 100644 index 00000000..12443e7a --- /dev/null +++ b/dist/default/media/video.js @@ -0,0 +1,17 @@ +"use client"; +import { useComposedRefs } from "../utils/use-composed-refs.js"; +import { useMediaAttach } from "../player/context.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/media/video.tsx +const Video = forwardRef(function Video({ children, ...props }, ref) { + return /* @__PURE__ */ jsx("video", { + ref: useComposedRefs(ref, useMediaAttach()), + ...props, + children + }); +}); +//#endregion +export { Video }; + +//# sourceMappingURL=video.js.map \ No newline at end of file diff --git a/dist/default/media/video.js.map b/dist/default/media/video.js.map new file mode 100644 index 00000000..cf805f3f --- /dev/null +++ b/dist/default/media/video.js.map @@ -0,0 +1 @@ +{"version":3,"file":"video.js","names":[],"sources":["../../../src/media/video.tsx"],"sourcesContent":["'use client';\n\nimport type { VideoHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useMediaAttach } from '../player/context';\nimport { useComposedRefs } from '../utils/use-composed-refs';\n\nexport interface VideoProps extends VideoHTMLAttributes {}\n\nexport const Video = forwardRef(function Video({ children, ...props }, ref) {\n const setMedia = useMediaAttach();\n const composedRef = useComposedRefs(ref, setMedia);\n\n return (\n \n );\n});\n\nexport namespace Video {\n export type Props = VideoProps;\n}\n"],"mappings":";;;;;;AAUA,MAAa,QAAQ,WAAyC,SAAS,MAAM,EAAE,UAAU,GAAG,SAAS,KAAK;CAIxG,OACE,oBAAC,SAAD;EAAO,KAHW,gBAAgB,KADnB,eAC+B,CAGxB;EAAG,GAAI;EAC1B;CACI,CAAA;AAEX,CAAC"} \ No newline at end of file diff --git a/dist/default/media/vimeo-video/index.js b/dist/default/media/vimeo-video/index.js new file mode 100644 index 00000000..63c89e4f --- /dev/null +++ b/dist/default/media/vimeo-video/index.js @@ -0,0 +1,2 @@ +import { VimeoVideo } from "./media.js"; +export { VimeoVideo }; diff --git a/dist/default/media/vimeo-video/media.js b/dist/default/media/vimeo-video/media.js new file mode 100644 index 00000000..37994e1c --- /dev/null +++ b/dist/default/media/vimeo-video/media.js @@ -0,0 +1,37 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { useMediaInstance } from "../../utils/use-media-instance.js"; +import { useSyncProps } from "../../utils/use-sync-props.js"; +import { useAttachIframe } from "../../utils/use-attach-iframe.js"; +import { forwardRef, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { VimeoMedia, buildVimeoIframeSrc, vimeoMediaDefaultProps } from "@videojs/media/dom/vimeo"; +//#region src/media/vimeo-video/media.tsx +const VimeoVideo = forwardRef(function VimeoVideo({ children, ...rawProps }, ref) { + const media = useMediaInstance(VimeoMedia); + const props = { ...rawProps }; + const composedRef = useComposedRefs(useAttachIframe(media), ref); + const [initialSrc] = useState(() => buildVimeoIframeSrc(props.src ?? "", { + ...vimeoMediaDefaultProps, + ...props + })); + const iframeProps = useSyncProps(media, props, vimeoMediaDefaultProps); + return /* @__PURE__ */ jsx("iframe", { + title: "Vimeo video player", + src: initialSrc, + "data-cross-origin-frame": true, + allow: "accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture", + allowFullScreen: true, + frameBorder: 0, + width: "100%", + height: "100%", + referrerPolicy: props.config?.referrerPolicy, + ...iframeProps, + ref: composedRef, + children + }); +}); +//#endregion +export { VimeoVideo }; + +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/default/media/vimeo-video/media.js.map b/dist/default/media/vimeo-video/media.js.map new file mode 100644 index 00000000..77aec5dd --- /dev/null +++ b/dist/default/media/vimeo-video/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/vimeo-video/media.tsx"],"sourcesContent":["'use client';\n\nimport type { VimeoMediaProps } from '@videojs/media/dom/vimeo';\nimport { buildVimeoIframeSrc, VimeoMedia, vimeoMediaDefaultProps } from '@videojs/media/dom/vimeo';\nimport type { ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\nimport { useAttachIframe } from '../../utils/use-attach-iframe';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface VimeoVideoProps extends Partial {\n children?: ReactNode;\n}\n\nexport const VimeoVideo = forwardRef(function VimeoVideo(\n { children, ...rawProps },\n ref\n) {\n const media = useMediaInstance(VimeoMedia);\n const props: Partial & Record = { ...rawProps };\n const attachRef = useAttachIframe(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const [initialSrc] = useState(() => buildVimeoIframeSrc(props.src ?? '', { ...vimeoMediaDefaultProps, ...props }));\n const iframeProps = useSyncProps>(media, props, vimeoMediaDefaultProps);\n\n return (\n \n {children}\n \n );\n});\n\nexport namespace VimeoVideo {\n export type Props = VimeoVideoProps;\n}\n"],"mappings":";;;;;;;;;AAeA,MAAa,aAAa,WAA+C,SAAS,WAChF,EAAE,UAAU,GAAG,YACf,KACA;CACA,MAAM,QAAQ,iBAAiB,UAAU;CACzC,MAAM,QAA4D,EAAE,GAAG,SAAS;CAEhF,MAAM,cAAc,gBADF,gBAAgB,KACU,GAAG,GAAG;CAClD,MAAM,CAAC,cAAc,eAAe,oBAAoB,MAAM,OAAO,IAAI;EAAE,GAAG;EAAwB,GAAG;CAAM,CAAC,CAAC;CACjH,MAAM,cAAc,aAAuD,OAAO,OAAO,sBAAsB;CAE/G,OACE,oBAAC,UAAD;EACE,OAAM;EACN,KAAK;EACL,2BAAA;EACA,OAAM;EACN,iBAAA;EACA,aAAa;EACb,OAAM;EACN,QAAO;EACP,gBAAgB,MAAM,QAAQ;EAC9B,GAAI;EACJ,KAAK;EAEJ;CACK,CAAA;AAEZ,CAAC"} \ No newline at end of file diff --git a/dist/default/player/container.js b/dist/default/player/container.js new file mode 100644 index 00000000..4f15b140 --- /dev/null +++ b/dist/default/player/container.js @@ -0,0 +1,41 @@ +"use client"; +import { useTranslator } from "../i18n/context.js"; +import { useComposedRefs } from "../utils/use-composed-refs.js"; +import { useContainerAttach } from "./context.js"; +import { DEFAULT_CONTAINER_ROLE, DEFAULT_CONTAINER_TAB_INDEX, focusContainer } from "@videojs/core/dom"; +import { forwardRef, useEffect, useRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { labelText } from "@videojs/core/i18n/text/container"; +//#region src/player/container.tsx +const Container = forwardRef(function Container({ children, tabIndex = DEFAULT_CONTAINER_TAB_INDEX, role = DEFAULT_CONTAINER_ROLE, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }, ref) { + const setContainer = useContainerAttach(); + const translator = useTranslator(); + const internalRef = useRef(null); + const composedRef = useComposedRefs(ref, internalRef); + useEffect(() => { + setContainer?.(internalRef.current); + return () => setContainer?.(null); + }, [setContainer]); + const handlePointerUp = (event) => { + props.onPointerUp?.(event); + const el = internalRef.current; + if (!el) return; + focusContainer(el); + }; + return /* @__PURE__ */ jsx("div", { + ref: composedRef, + role, + tabIndex, + ...ariaLabel !== void 0 || ariaLabelledBy !== void 0 ? { + "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy + } : { "aria-label": translator(labelText) }, + ...props, + onPointerUp: handlePointerUp, + children + }); +}); +//#endregion +export { Container }; + +//# sourceMappingURL=container.js.map \ No newline at end of file diff --git a/dist/default/player/container.js.map b/dist/default/player/container.js.map new file mode 100644 index 00000000..5ca1c49f --- /dev/null +++ b/dist/default/player/container.js.map @@ -0,0 +1 @@ +{"version":3,"file":"container.js","names":[],"sources":["../../../src/player/container.tsx"],"sourcesContent":["'use client';\n\nimport { DEFAULT_CONTAINER_ROLE, DEFAULT_CONTAINER_TAB_INDEX, focusContainer } from '@videojs/core/dom';\nimport { labelText } from '@videojs/core/i18n/text/container';\nimport { forwardRef, type HTMLAttributes, type PointerEventHandler, type ReactNode, useEffect, useRef } from 'react';\nimport { useTranslator } from '../i18n/context';\nimport { useComposedRefs } from '../utils/use-composed-refs';\nimport { useContainerAttach } from './context';\n\nexport interface ContainerProps extends HTMLAttributes {\n children?: ReactNode;\n}\n\nexport const Container = forwardRef(function Container(\n {\n children,\n tabIndex = DEFAULT_CONTAINER_TAB_INDEX,\n role = DEFAULT_CONTAINER_ROLE,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...props\n },\n ref\n) {\n const setContainer = useContainerAttach();\n const translator = useTranslator();\n const internalRef = useRef(null);\n const composedRef = useComposedRefs(ref, internalRef);\n\n useEffect(() => {\n setContainer?.(internalRef.current);\n return () => setContainer?.(null);\n }, [setContainer]);\n\n const handlePointerUp: PointerEventHandler = (event) => {\n props.onPointerUp?.(event);\n const el = internalRef.current;\n if (!el) return;\n focusContainer(el);\n };\n\n const accessibleNameProps =\n ariaLabel !== undefined || ariaLabelledBy !== undefined\n ? { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy }\n : { 'aria-label': translator(labelText) };\n\n return (\n \n {children}\n \n );\n});\n\nexport namespace Container {\n export type Props = ContainerProps;\n}\n"],"mappings":";;;;;;;;;AAaA,MAAa,YAAY,WAA2C,SAAS,UAC3E,EACE,UACA,WAAW,6BACX,OAAO,wBACP,cAAc,WACd,mBAAmB,gBACnB,GAAG,SAEL,KACA;CACA,MAAM,eAAe,mBAAmB;CACxC,MAAM,aAAa,cAAc;CACjC,MAAM,cAAc,OAAuB,IAAI;CAC/C,MAAM,cAAc,gBAAgB,KAAK,WAAW;CAEpD,gBAAgB;EACd,eAAe,YAAY,OAAO;EAClC,aAAa,eAAe,IAAI;CAClC,GAAG,CAAC,YAAY,CAAC;CAEjB,MAAM,mBAAwD,UAAU;EACtE,MAAM,cAAc,KAAK;EACzB,MAAM,KAAK,YAAY;EACvB,IAAI,CAAC,IAAI;EACT,eAAe,EAAE;CACnB;CAOA,OACE,oBAAC,OAAD;EACE,KAAK;EACC;EACI;EACV,GATF,cAAc,KAAA,KAAa,mBAAmB,KAAA,IAC1C;GAAE,cAAc;GAAW,mBAAmB;EAAe,IAC7D,EAAE,cAAc,WAAW,SAAS,EAAE;EAQxC,GAAI;EACJ,aAAa;EAEZ;CACE,CAAA;AAET,CAAC"} \ No newline at end of file diff --git a/dist/default/player/context.js b/dist/default/player/context.js new file mode 100644 index 00000000..7ab22064 --- /dev/null +++ b/dist/default/player/context.js @@ -0,0 +1,62 @@ +"use client"; +import { useStore } from "@videojs/store/react"; +import { createContext, useContext } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/player/context.tsx +const PlayerContext = createContext(null); +const EMPTY_UNSUBSCRIBE = () => {}; +const EMPTY_STORE = { + state: {}, + subscribe: () => EMPTY_UNSUBSCRIBE +}; +function PlayerContextProvider({ value, children }) { + return /* @__PURE__ */ jsx(PlayerContext.Provider, { + value, + children + }); +} +/** Access the full player context value. Throws if used outside a Player Provider. */ +function usePlayerContext() { + const ctx = useContext(PlayerContext); + if (!ctx) throw new Error("usePlayerContext must be used within a Player Provider"); + return ctx; +} +function usePlayer(selector) { + const { store } = usePlayerContext(); + return useStore(store, selector); +} +function useOptionalPlayer(selector) { + const ctx = useContext(PlayerContext); + const value = useStore(ctx?.store ?? EMPTY_STORE, ctx ? selector : void 0); + return ctx ? value : void 0; +} +/** Access the media element from within a Player Provider. */ +function useMedia() { + const { media } = usePlayerContext(); + return media; +} +/** Access the container element from within a Player Provider. */ +function useContainer() { + const { container } = usePlayerContext(); + return container; +} +/** Access the container element when a Player Provider is available. */ +function useOptionalContainer() { + return useContext(PlayerContext)?.container ?? null; +} +/** Access the interactive popup group when a Player Provider is available. */ +function useOptionalPopupGroup() { + return useContext(PlayerContext)?.popupGroup; +} +/** Access the media attach setter for connecting a media element to the player. */ +function useMediaAttach() { + return useContext(PlayerContext)?.setMedia; +} +/** Access the container attach setter for connecting a container element to the player. */ +function useContainerAttach() { + return useContext(PlayerContext)?.setContainer; +} +//#endregion +export { PlayerContextProvider, useContainer, useContainerAttach, useMedia, useMediaAttach, useOptionalContainer, useOptionalPlayer, useOptionalPopupGroup, usePlayer, usePlayerContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/default/player/context.js.map b/dist/default/player/context.js.map new file mode 100644 index 00000000..78937495 --- /dev/null +++ b/dist/default/player/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../src/player/context.tsx"],"sourcesContent":["'use client';\n\nimport type { MediaContainer, PopupGroup } from '@videojs/core/dom';\nimport type { Media } from '@videojs/media';\nimport type { UnknownState, UnknownStore } from '@videojs/store';\nimport { useStore } from '@videojs/store/react';\nimport type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport { createContext, useContext } from 'react';\n\nexport interface PlayerContextValue {\n store: UnknownStore;\n media: Media | null;\n setMedia: Dispatch>;\n container: MediaContainer | null;\n setContainer: Dispatch>;\n popupGroup?: PopupGroup;\n}\n\nconst PlayerContext = createContext(null);\nconst EMPTY_UNSUBSCRIBE = () => {};\nconst EMPTY_STORE = {\n state: {} as UnknownState,\n subscribe: () => EMPTY_UNSUBSCRIBE,\n} as Pick;\n\nexport function PlayerContextProvider({\n value,\n children,\n}: {\n value: PlayerContextValue;\n children: ReactNode;\n}): ReactNode {\n return {children};\n}\n\n/** Access the full player context value. Throws if used outside a Player Provider. */\nexport function usePlayerContext(): PlayerContextValue {\n const ctx = useContext(PlayerContext);\n if (!ctx) throw new Error('usePlayerContext must be used within a Player Provider');\n return ctx;\n}\n\n/**\n * Access the player store from within a Player Provider.\n *\n * This standalone hook has no knowledge of your configured features, so it\n * returns an untyped `UnknownStore` whose state properties are typed as\n * `unknown`. For typed access, use the `usePlayer` returned by `createPlayer()`,\n * or pass a premade selector to recover the type from its return value.\n *\n * @label Without Selector\n */\nexport function usePlayer(): UnknownStore;\n/**\n * Select a value from the player store. Re-renders when the selected value changes.\n *\n * The selector receives `UnknownState`, so an inline selector returns `unknown`.\n * Pass a premade selector (e.g. `selectPlayback`) to get a typed result.\n *\n * @label With Selector\n * @param selector - Derives a value from the player store state.\n */\nexport function usePlayer(selector: (state: UnknownState) => R): R;\nexport function usePlayer(selector?: (state: UnknownState) => R) {\n const { store } = usePlayerContext();\n return useStore(store, selector as any);\n}\n\n/**\n * Access player state when available, but return `undefined` outside Provider.\n *\n * This is useful for components that can operate without player context\n * (e.g. they accept fully explicit props as a fallback).\n */\n/** @label Without Selector */\nexport function useOptionalPlayer(): UnknownStore | undefined;\n/** @label With Selector */\nexport function useOptionalPlayer(selector: (state: UnknownState) => R): R | undefined;\nexport function useOptionalPlayer(selector?: (state: UnknownState) => R) {\n const ctx = useContext(PlayerContext);\n const store = (ctx?.store ?? (EMPTY_STORE as unknown as UnknownStore)) as UnknownStore;\n const value = useStore(store, (ctx ? selector : undefined) as any);\n return ctx ? value : undefined;\n}\n\n/** Access the media element from within a Player Provider. */\nexport function useMedia(): Media | null {\n const { media } = usePlayerContext();\n return media;\n}\n\n/** Access the container element from within a Player Provider. */\nexport function useContainer(): MediaContainer | null {\n const { container } = usePlayerContext();\n return container;\n}\n\n/** Access the container element when a Player Provider is available. */\nexport function useOptionalContainer(): MediaContainer | null {\n const ctx = useContext(PlayerContext);\n return ctx?.container ?? null;\n}\n\n/** Access the interactive popup group when a Player Provider is available. */\nexport function useOptionalPopupGroup(): PopupGroup | undefined {\n const ctx = useContext(PlayerContext);\n return ctx?.popupGroup;\n}\n\n/** Access the media attach setter for connecting a media element to the player. */\nexport function useMediaAttach(): Dispatch> | undefined {\n const ctx = useContext(PlayerContext);\n return ctx?.setMedia;\n}\n\n/** Access the container attach setter for connecting a container element to the player. */\nexport function useContainerAttach(): Dispatch> | undefined {\n const ctx = useContext(PlayerContext);\n return ctx?.setContainer;\n}\n"],"mappings":";;;;;AAkBA,MAAM,gBAAgB,cAAyC,IAAI;AACnE,MAAM,0BAA0B,CAAC;AACjC,MAAM,cAAc;CAClB,OAAO,CAAC;CACR,iBAAiB;AACnB;AAEA,SAAgB,sBAAsB,EACpC,OACA,YAIY;CACZ,OAAO,oBAAC,cAAc,UAAf;EAA+B;EAAQ;CAAiC,CAAA;AACjF;;AAGA,SAAgB,mBAAuC;CACrD,MAAM,MAAM,WAAW,aAAa;CACpC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,wDAAwD;CAClF,OAAO;AACT;AAuBA,SAAgB,UAAa,UAAuC;CAClE,MAAM,EAAE,UAAU,iBAAiB;CACnC,OAAO,SAAS,OAAO,QAAe;AACxC;AAYA,SAAgB,kBAAqB,UAAuC;CAC1E,MAAM,MAAM,WAAW,aAAa;CAEpC,MAAM,QAAQ,SADC,KAAK,SAAU,aACC,MAAM,WAAW,KAAA,CAAiB;CACjE,OAAO,MAAM,QAAQ,KAAA;AACvB;;AAGA,SAAgB,WAAyB;CACvC,MAAM,EAAE,UAAU,iBAAiB;CACnC,OAAO;AACT;;AAGA,SAAgB,eAAsC;CACpD,MAAM,EAAE,cAAc,iBAAiB;CACvC,OAAO;AACT;;AAGA,SAAgB,uBAA8C;CAE5D,OADY,WAAW,aACd,CAAC,EAAE,aAAa;AAC3B;;AAGA,SAAgB,wBAAgD;CAE9D,OADY,WAAW,aACd,CAAC,EAAE;AACd;;AAGA,SAAgB,iBAAqE;CAEnF,OADY,WAAW,aACd,CAAC,EAAE;AACd;;AAGA,SAAgB,qBAA+E;CAE7F,OADY,WAAW,aACd,CAAC,EAAE;AACd"} \ No newline at end of file diff --git a/dist/default/player/create-player.js b/dist/default/player/create-player.js new file mode 100644 index 00000000..60980b3b --- /dev/null +++ b/dist/default/player/create-player.js @@ -0,0 +1,64 @@ +"use client"; +import { PlayerContextProvider, useMedia, usePlayerContext } from "./context.js"; +import { Container } from "./container.js"; +import { useDestroy } from "../utils/use-destroy.js"; +import { createPopupGroup } from "@videojs/core/dom"; +import { combine, createStore } from "@videojs/store"; +import { useStore } from "@videojs/store/react"; +import { useEffect, useMemo, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/player/create-player.tsx +function createPlayer(config) { + function Provider({ children }) { + const [store, setStore] = useState(() => createStore()(combine(...config.features))); + const [popupGroup] = useState(() => createPopupGroup()); + const [media, setMedia] = useState(null); + const [container, setContainer] = useState(null); + useDestroy(store); + useEffect(() => { + if (!media) return; + if (store.destroyed) { + setStore(createStore()(combine(...config.features))); + return; + } + return store.attach({ + media, + container + }); + }, [ + media, + container, + store + ]); + return /* @__PURE__ */ jsx(PlayerContextProvider, { + value: useMemo(() => ({ + store, + media, + setMedia, + container, + setContainer, + popupGroup + }), [ + store, + media, + container, + popupGroup + ]), + children + }); + } + function usePlayer(selector) { + const { store } = usePlayerContext(); + return useStore(store, selector); + } + return { + Provider, + Container, + usePlayer, + useMedia + }; +} +//#endregion +export { createPlayer }; + +//# sourceMappingURL=create-player.js.map \ No newline at end of file diff --git a/dist/default/player/create-player.js.map b/dist/default/player/create-player.js.map new file mode 100644 index 00000000..9e4a3da3 --- /dev/null +++ b/dist/default/player/create-player.js.map @@ -0,0 +1 @@ +{"version":3,"file":"create-player.js","names":[],"sources":["../../../src/player/create-player.tsx"],"sourcesContent":["'use client';\n\nimport {\n type AnyPlayerFeature,\n type AnyPlayerStore,\n type AudioFeatures,\n type AudioPlayerStore,\n createPopupGroup,\n type PlayerStore,\n type PlayerTarget,\n type VideoFeatures,\n type VideoPlayerStore,\n} from '@videojs/core/dom';\nimport type { Media } from '@videojs/media/dom';\nimport type { InferStoreState } from '@videojs/store';\nimport { combine, createStore } from '@videojs/store';\nimport { useStore } from '@videojs/store/react';\nimport type { FC, ReactNode } from 'react';\nimport { useEffect, useMemo, useState } from 'react';\n\nimport { useDestroy } from '../utils/use-destroy';\nimport { Container } from './container';\nimport { PlayerContextProvider, useMedia, usePlayerContext } from './context';\n\nexport interface CreatePlayerConfig {\n features: Features;\n displayName?: string;\n}\n\nexport interface ProviderProps {\n children: ReactNode;\n}\n\nexport interface CreatePlayerResult {\n Provider: FC;\n Container: typeof Container;\n usePlayer: UsePlayerHook;\n useMedia: () => Media | null;\n}\n\nexport type UsePlayerHook = {\n (): Store;\n (selector: (state: InferStoreState) => R): R;\n};\n\n/**\n * Create a player instance with typed store, Provider component, Container, and hooks.\n *\n * @label Video\n * @param config - Player configuration with features and optional display name.\n */\nexport function createPlayer(config: CreatePlayerConfig): CreatePlayerResult;\n\n/**\n * Create a player for audio media.\n *\n * @label Audio\n * @param config - Player configuration with features and optional display name.\n */\nexport function createPlayer(config: CreatePlayerConfig): CreatePlayerResult;\n\n/**\n * Create a player with custom features.\n *\n * @label Generic\n * @param config - Player configuration with features and optional display name.\n */\nexport function createPlayer(\n config: CreatePlayerConfig\n): CreatePlayerResult>;\n\nexport function createPlayer(config: CreatePlayerConfig): CreatePlayerResult {\n function Provider({ children }: ProviderProps): ReactNode {\n const [store, setStore] = useState(() => createStore()(combine(...config.features)));\n const [popupGroup] = useState(() => createPopupGroup());\n const [media, setMedia] = useState(null);\n const [container, setContainer] = useState(null);\n\n useDestroy(store);\n\n useEffect(() => {\n if (!media) return;\n\n // The store may have been destroyed during an asynchronous gap between React\n // effect cleanup and re-setup (e.g., React hide → reveal). The\n // useState initializer does not re-run in this case.\n if (store.destroyed) {\n setStore(createStore()(combine(...config.features)));\n return;\n }\n\n return store.attach({ media, container });\n }, [media, container, store]);\n\n const value = useMemo(\n () => ({ store, media, setMedia, container, setContainer, popupGroup }),\n [store, media, container, popupGroup]\n );\n\n return {children};\n }\n\n if (__DEV__ && config.displayName) {\n Provider.displayName = `${config.displayName}.Provider`;\n }\n\n function usePlayer(selector?: (state: object) => R): AnyPlayerStore | R {\n const { store } = usePlayerContext();\n return useStore(store, selector as any);\n }\n\n return {\n Provider,\n Container,\n usePlayer,\n useMedia,\n };\n}\n"],"mappings":";;;;;;;;;;AAuEA,SAAgB,aAAa,QAAoF;CAC/G,SAAS,SAAS,EAAE,YAAsC;EACxD,MAAM,CAAC,OAAO,YAAY,eAAe,YAA0B,CAAC,CAAC,QAAQ,GAAG,OAAO,QAAQ,CAAC,CAAC;EACjG,MAAM,CAAC,cAAc,eAAe,iBAAiB,CAAC;EACtD,MAAM,CAAC,OAAO,YAAY,SAAuB,IAAI;EACrD,MAAM,CAAC,WAAW,gBAAgB,SAA6B,IAAI;EAEnE,WAAW,KAAK;EAEhB,gBAAgB;GACd,IAAI,CAAC,OAAO;GAKZ,IAAI,MAAM,WAAW;IACnB,SAAS,YAA0B,CAAC,CAAC,QAAQ,GAAG,OAAO,QAAQ,CAAC,CAAC;IACjE;GACF;GAEA,OAAO,MAAM,OAAO;IAAE;IAAO;GAAU,CAAC;EAC1C,GAAG;GAAC;GAAO;GAAW;EAAK,CAAC;EAO5B,OAAO,oBAAC,uBAAD;GAAuB,OALhB,eACL;IAAE;IAAO;IAAO;IAAU;IAAW;IAAc;GAAW,IACrE;IAAC;IAAO;IAAO;IAAW;GAAU,CAGG;GAAI;EAAgC,CAAA;CAC/E;CAMA,SAAS,UAAa,UAAqD;EACzE,MAAM,EAAE,UAAU,iBAAiB;EACnC,OAAO,SAAS,OAAO,QAAe;CACxC;CAEA,OAAO;EACL;EACA;EACA;EACA;CACF;AACF"} \ No newline at end of file diff --git a/dist/default/presets/audio/index.js b/dist/default/presets/audio/index.js new file mode 100644 index 00000000..7f8cf219 --- /dev/null +++ b/dist/default/presets/audio/index.js @@ -0,0 +1,7 @@ +import { Audio } from "../../media/audio.js"; +import { MinimalAudioSkin } from "./minimal-skin.js"; +import { MinimalAudioSkinTailwind } from "./minimal-skin.tailwind.js"; +import { AudioSkin } from "./skin.js"; +import { AudioSkinTailwind } from "./skin.tailwind.js"; +import { audioFeatures } from "@videojs/core/dom"; +export { Audio, AudioSkin, AudioSkinTailwind, MinimalAudioSkin, MinimalAudioSkinTailwind, audioFeatures }; diff --git a/dist/default/presets/audio/minimal-skin.css b/dist/default/presets/audio/minimal-skin.css new file mode 100644 index 00000000..169982cc --- /dev/null +++ b/dist/default/presets/audio/minimal-skin.css @@ -0,0 +1,1206 @@ +.media-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + white-space: nowrap; + border: 0; + clip: rect(0, 0, 0, 0); +} + + +/* ========================================================================== + Reset + ========================================================================== */ + +.media-minimal-skin *, +.media-minimal-skin *::before, +.media-minimal-skin *::after { + box-sizing: border-box; +} +.media-minimal-skin img, +.media-minimal-skin video, +.media-minimal-skin svg { + display: block; + max-width: 100%; +} +.media-minimal-skin button { + font: inherit; +} +.media-minimal-skin [hidden][hidden] { + /* Keep authored templates hidden even when component classes set display. */ + display: none; +} +@media (prefers-reduced-motion: no-preference) { + .media-minimal-skin { + interpolate-size: allow-keywords; + } +} + +/* ========================================================================== + Root Container + ========================================================================== */ + +.media-minimal-skin { + /* Colors */ + --media-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15)); + --media-current-shadow-color-subtle: oklch(from var(--media-current-shadow-color) l c h / calc(alpha * 0.4)); + --scrollbar-thumb-color: oklch(from currentColor l c h / 0.3); + /* Scaling (used in video fullscreen) */ + --scale: 1; + /* What value and unit to use - 1rem assumes the document font size remains at the default 16px */ + --base-size: 1rem; + --size: calc(var(--base-size) * var(--scale)); + /* Create a Tailwind-like spacing unit. */ + --spacing: calc(var(--size) / 4); + --font-size-medium: calc(0.9375 * var(--size)); /* 15px */ + --font-size-base: calc(0.8125 * var(--size)); /* 13px */ + --font-size-small: calc(0.6875 * var(--size)); /* 11px */ + --font-size-tiny: calc(0.5625 * var(--size)); /* 9px */ + --media-icon-size: calc(1.125 * var(--size)); /* 18px */ + + position: relative; + display: block; + width: 100%; + height: 100%; + container: media-root / inline-size; + font-family: + Inter Variable, + Inter, + ui-sans-serif, + system-ui, + sans-serif; + font-size: var(--font-size-base); + -webkit-font-smoothing: auto; + -moz-osx-font-smoothing: auto; + line-height: 1.5; + letter-spacing: normal; + outline: 2px solid transparent; + outline-offset: -4px; + scrollbar-color: var(--scrollbar-thumb-color) transparent; + scrollbar-width: thin; + border-radius: var(--media-border-radius, 0.75rem); + isolation: isolate; + transition-timing-function: ease-out; + transition-duration: 100ms; + transition-property: outline-offset, outline-color; + + &:focus-visible { + outline-color: currentColor; + outline-offset: 2px; + } + + &::-webkit-scrollbar-thumb { + background: var(--scrollbar-thumb-color); + border-radius: 9999px; + } + + @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) { + --scrollbar-thumb-color: oklch(from currentColor l c h / 0.8); + scrollbar-width: auto; + } +} + +/* ========================================================================== + Buffering Indicator + ========================================================================== */ + +.media-minimal-skin .media-buffering-indicator { + position: absolute; + inset: 0; + z-index: 10; + display: none; + place-content: center; + color: oklch(1 0 0); + pointer-events: none; + + &:not([data-visible]) { + --media-spinner-animation: none; + } + + &[data-visible] { + display: grid; + } +} + +/* ========================================================================== + Error Dialog + ========================================================================== */ + +.media-minimal-skin .media-error:not([data-open]) { + display: none; +} + +.media-minimal-skin .media-error__title { + font-weight: 600; + line-height: 1.25; +} + +.media-minimal-skin .media-error__description { + overflow-wrap: anywhere; + opacity: 0.7; +} + +.media-minimal-skin .media-error__actions { + display: flex; + gap: calc(var(--spacing) * 2); + + & > * { + flex: 1; + } +} + +.media-minimal-skin .media-error[data-open] ~ .media-controls * { + visibility: hidden; +} + +/* ========================================================================== + Controls + ========================================================================== */ + +.media-minimal-skin .media-controls { + --media-popover-side-offset: calc(var(--spacing) * (var(--base-side-offset, 2) + 1)); + --media-tooltip-side-offset: var(--media-popover-side-offset); + --media-popover-boundary-offset: calc(var(--spacing) * (var(--base-boundary-offset, 0) + 1)); + --media-tooltip-boundary-offset: var(--media-popover-boundary-offset); + + display: flex; + align-items: center; + padding: calc(var(--spacing) * 1); + container: media-controls / inline-size; + text-shadow: 0 1px 0 var(--media-current-shadow-color); + background-color: var(--media-controls-background-color); + backdrop-filter: var(--media-controls-backdrop-filter); +} + +/* ========================================================================== + Time Controls & Display + ========================================================================== */ + +.media-minimal-skin .media-time-controls { + display: flex; + flex: 1; + flex-direction: row-reverse; + gap: calc(var(--spacing) * 3); + align-items: center; + container: media-time-controls / inline-size; +} + +.media-minimal-skin .media-time-group { + display: flex; + gap: calc(var(--spacing) * 1); + align-items: center; +} + +.media-minimal-skin .media-time { + font-variant-numeric: tabular-nums; +} + +.media-minimal-skin .media-time[role="button"] { + cursor: pointer; + outline: 2px solid transparent; + outline-offset: -2px; + border-radius: calc(var(--spacing) * 1); + transition-timing-function: ease-out; + transition-duration: 100ms; + transition-property: outline-color, outline-offset; + + @supports (corner-shape: squircle) { + border-radius: calc(var(--spacing) * 4); + corner-shape: squircle; + } + + &:focus-visible { + outline-color: currentColor; + outline-offset: 2px; + } +} + +.media-minimal-skin .media-time--current, +.media-minimal-skin .media-time-separator { + display: none; +} + +@container media-root (width > 42rem) { + .media-minimal-skin .media-time-controls { + flex-direction: row; + } + + .media-minimal-skin .media-time--duration, + .media-minimal-skin .media-time-separator { + color: oklch(from currentColor l c h / 0.6); + } + + .media-minimal-skin .media-time--current, + .media-minimal-skin .media-time-separator { + display: inline; + } +} + +/* ========================================================================== + Buttons + ========================================================================== */ + +/* Base button */ +.media-minimal-skin .media-button { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: center; + height: calc(var(--spacing) * 9.5); + min-height: 0; + padding: calc(var(--spacing) * 2) calc(var(--spacing) * 4); + text-align: center; + touch-action: manipulation; + cursor: pointer; + user-select: none; + outline: 2px solid transparent; + outline-offset: -2px; + border: none; + border-radius: calc(var(--spacing) * 2); + transition-timing-function: ease-out; + transition-duration: 150ms; + transition-property: background-color, outline-offset, scale; + /* Fix weird jumping when clicking on the buttons in Safari. */ + will-change: scale; + + &:focus-visible { + outline-color: currentColor; + outline-offset: 2px; + } + + &:active:not([aria-disabled="true"]) { + scale: 0.98; + } + + &[aria-disabled="true"] { + cursor: not-allowed; + opacity: 0.5; + filter: grayscale(1); + } +} + +@supports (corner-shape: squircle) { + .media-minimal-skin .media-button { + border-radius: calc(var(--spacing) * 4); + corner-shape: squircle; + } +} + +/* Primary button variant */ +.media-minimal-skin .media-button--primary { + font-weight: 500; + color: oklch(0 0 0); + text-shadow: none; + background: oklch(1 0 0); +} + +/* Subtle button variant */ +.media-minimal-skin .media-button--subtle { + color: inherit; + text-shadow: inherit; + background: transparent; + + &:hover, + &:focus-visible, + &[aria-expanded="true"] { + background: oklch(from currentColor l c h / 0.1); + } +} + +/* Icon button variant */ +.media-minimal-skin .media-button--icon { + display: grid; + aspect-ratio: 1; + padding: 0; + + &:active:not([aria-disabled="true"]) { + scale: 0.9; + } + + & .media-icon__container { + display: grid; + } + + & .media-icon { + grid-area: 1 / 1; + transition-behavior: allow-discrete; + transition-property: display, opacity; + transition-duration: 150ms; + transition-timing-function: ease-out; + filter: drop-shadow(0 1px 0 var(--media-current-shadow-color)); + } +} + +/* Seek button */ +.media-minimal-skin .media-button--seek { + & .media-icon__label { + position: absolute; + right: -1px; + bottom: -3px; + font-size: 0.715em; /* 10px */ + font-weight: 500; + font-variant-numeric: tabular-nums; + letter-spacing: -0.05em; + } + + &:has(.media-icon--flipped) .media-icon__label { + right: unset; + left: -1px; + } +} + +/* Playback rate button */ +.media-minimal-skin .media-button--playback-rate { + padding: 0; + font-variant-numeric: tabular-nums; + + &::after { + width: 4ch; + content: attr(data-rate) "\00D7"; + } + + &[data-inline-rate-label]::after { + content: none; + } +} + +/* Settings button */ +.media-minimal-skin .media-button--settings { + & .media-icon--settings { + transition: transform 150ms ease-in-out; + + @media (prefers-reduced-motion: reduce) { + transition-duration: 0ms; + } + } + + &[aria-expanded="true"] .media-icon--settings { + transform: rotate(90deg); + } +} + +/* Live button — wide pill button with a status dot (gray → red at the live + edge) rendered via ::before, and "LIVE" text rendered as the button's own + text content. */ +.media-minimal-skin .media-button--live { + display: inline-flex; + gap: calc(var(--spacing) * 1.5); + align-items: center; + width: auto; + aspect-ratio: auto; + padding: calc(var(--spacing) * 2) calc(var(--spacing) * 3); + font-size: var(--font-size-small); + font-weight: 600; + line-height: 1; + text-transform: uppercase; + letter-spacing: 0.05em; + + &::before { + display: inline-block; + flex-shrink: 0; + width: calc(var(--spacing) * 2); + height: calc(var(--spacing) * 2); + content: ""; + background-color: oklch(from currentColor l c h / 0.4); + border-radius: 50%; + transition: background-color 150ms ease-out; + } + + &[data-live-edge]::before { + background-color: oklch(0.65 0.22 27); + } +} + +/* ========================================================================== + Button Groups + ========================================================================== */ + +.media-minimal-skin .media-button-group { + display: flex; + gap: 1px; + align-items: center; +} + +/* ========================================================================== + Badge + ========================================================================== */ + +.media-minimal-skin .media-badge { + padding: calc(var(--spacing) * 1) calc(var(--spacing) * 1.5); + font-size: var(--font-size-small); + font-weight: 500; + line-height: 1; + color: oklch(from currentColor l c h / 0.85); + white-space: nowrap; + background-color: oklch(from currentColor l c h / 0.1); + border-radius: calc(var(--spacing) * 1); +} + +/* ========================================================================== + Icons + ========================================================================== */ + +.media-minimal-skin .media-icon__container { + position: relative; +} + +.media-minimal-skin .media-icon { + flex-shrink: 0; + width: var(--media-icon-size); + height: var(--media-icon-size); +} +.media-minimal-skin .media-icon--flipped { + scale: -1 1; +} + +/* ========================================================================== + Slider + ========================================================================== */ + +.media-minimal-skin .media-slider { + position: relative; + display: flex; + flex: 1; + align-items: center; + justify-content: center; + cursor: pointer; + outline: none; + border-radius: calc(Infinity * 1px); + + &[data-orientation="horizontal"] { + width: var(--slider-width, 100%); + min-width: calc(var(--spacing) * 20); + height: var(--slider-height, calc(var(--spacing) * 8)); + } + &[data-orientation="vertical"] { + width: var(--slider-width, calc(var(--spacing) * 8)); + height: var(--slider-height, calc(var(--spacing) * 20)); + } + + /* Track */ + & .media-slider__track { + position: relative; + overflow: hidden; + user-select: none; + background-color: oklch(from currentColor l c h / 0.2); + border-radius: inherit; + isolation: isolate; + + &[data-orientation="horizontal"] { + width: 100%; + height: calc(var(--spacing) * 0.75); + } + &[data-orientation="vertical"] { + width: calc(var(--spacing) * 0.75); + height: 100%; + } + } + + /* Thumb */ + & .media-slider__thumb { + position: absolute; + z-index: 10; + width: calc(var(--spacing) * 3); + height: calc(var(--spacing) * 3); + user-select: none; + outline: 2px solid transparent; + outline-offset: -2px; + background-color: currentColor; + border-radius: calc(Infinity * 1px); + box-shadow: + 0 0 0 1px var(--media-current-shadow-color, oklch(0 0 0 / 0.15)), + 0 1px 3px 0 oklch(0 0 0 / 0.15), + 0 1px 2px -1px oklch(0 0 0 / 0.15); + opacity: 0; + transform-origin: center; + scale: 0.7; + translate: -50% -50%; + transition-timing-function: ease-out; + transition-duration: 150ms; + transition-property: opacity, scale, outline-offset; + + &[data-orientation="horizontal"] { + top: 50%; + left: var(--media-slider-fill); + } + &[data-orientation="vertical"] { + top: calc(100% - var(--media-slider-fill)); + left: 50%; + } + + &:focus-visible { + outline-color: currentColor; + outline-offset: 2px; + } + } + + &:hover .media-slider__thumb, + &:focus-within .media-slider__thumb, + & .media-slider__thumb--persistent { + opacity: 1; + scale: 1; + } + + /* Preview */ + & .media-slider__preview { + & .media-slider__value, + &::before { + opacity: 0; + scale: 0.5; + transition-timing-function: ease-out; + transition-duration: 200ms; + transition-property: opacity, scale; + } + + & .media-slider__value { + position: absolute; + bottom: calc(var(--spacing) * 6); + text-shadow: 0 1px 0 var(--media-current-shadow-color); + filter: blur(8px); + translate: -50% calc(var(--spacing) * 2); + transition-property: filter, opacity, scale, translate; + } + + &::before { + display: block; + content: ""; + background-color: oklch(from currentColor l c h / 0.35); + } + + &[data-pointing] .media-slider__value, + &[data-pointing]:not([data-dragging])::before { + opacity: 1; + scale: 1; + } + &[data-pointing] .media-slider__value { + filter: blur(0); + translate: -50% 0; + } + + &[data-orientation="horizontal"]::before { + min-width: 1px; + height: calc(var(--spacing) * 5); + } + &[data-orientation="vertical"]::before { + width: calc(var(--spacing) * 5); + min-height: 1px; + } + } + + /* Shared track fills */ + & .media-slider__buffer, + & .media-slider__fill { + position: absolute; + pointer-events: none; + border-radius: inherit; + + &[data-orientation="horizontal"] { + inset-block: 0; + left: 0; + } + &[data-orientation="vertical"] { + inset-inline: 0; + bottom: 0; + } + } + + /* Buffer */ + & .media-slider__buffer { + background-color: oklch(from currentColor l c h / 0.2); + transition-timing-function: ease-out; + transition-duration: 0.25s; + + &[data-orientation="horizontal"] { + width: var(--media-slider-buffer); + transition-property: width; + } + &[data-orientation="vertical"] { + height: var(--media-slider-buffer); + transition-property: height; + } + } + + /* Fill */ + & .media-slider__fill { + background-color: currentColor; + + &[data-orientation="horizontal"] { + width: var(--media-slider-fill); + } + &[data-orientation="vertical"] { + height: var(--media-slider-fill); + } + } + + /* Dragging — thumb and fill follow the pointer position */ + &[data-dragging] { + & .media-slider__thumb[data-orientation="horizontal"] { + left: var(--media-slider-pointer); + } + & .media-slider__thumb[data-orientation="vertical"] { + top: calc(100% - var(--media-slider-pointer)); + } + & .media-slider__fill[data-orientation="horizontal"] { + width: var(--media-slider-pointer); + } + & .media-slider__fill[data-orientation="vertical"] { + height: var(--media-slider-pointer); + } + } +} + +/* ========================================================================== + Popups & Animations + ========================================================================== */ + +.media-minimal-skin { + --media-popup-transition: + opacity var(--media-popup-transition-timing-function) var(--media-popup-transition-duration), + filter var(--media-popup-transition-timing-function) var(--media-popup-transition-duration), + transform var(--media-popup-transition-timing-function) var(--media-popup-transition-duration), + scale var(--media-popup-transition-timing-function) var(--media-popup-transition-duration); +} + +.media-minimal-skin .media-popover, +.media-minimal-skin .media-tooltip { + --popup-translate-distance: calc(var(--spacing) * 2); + margin: 0; + overflow: visible; + color: inherit; + border: 0; + transition: var(--media-popup-transition); + + &[data-starting-style], + &[data-ending-style] { + opacity: 0; + /* We have to use transform here for translate as the translate property is used for positioning by core. */ + transform: translate(var(--popup-translate-x-distance, 0), var(--popup-translate-y-distance, 0)); + scale: 0.95; + } + + &[data-ending-style] { + filter: blur(4px); + transform: none; + /* Speed up the exit transition. */ + transition-duration: max(0ms, calc(var(--media-popup-transition-duration) - 50ms)); + } + + &[data-side="top"] { + --popup-translate-y-distance: var(--popup-translate-distance); + transform-origin: bottom; + } + &[data-side="bottom"] { + --popup-translate-y-distance: calc(var(--popup-translate-distance) * -1); + transform-origin: top; + } + &[data-side="left"] { + --popup-translate-x-distance: var(--popup-translate-distance); + transform-origin: right; + } + &[data-side="right"] { + --popup-translate-x-distance: calc(var(--popup-translate-distance) * -1); + transform-origin: left; + } + + /* Safe area between trigger and popup */ + &::before { + position: absolute; + pointer-events: inherit; + content: ""; + } + + &[data-side="top"]::before, + &[data-side="bottom"]::before { + inset-inline: 0; + width: 100%; + } + &[data-side="top"]::before { + top: 100%; + } + &[data-side="bottom"]::before { + bottom: 100%; + } + + &[data-side="left"]::before, + &[data-side="right"]::before { + inset-block: 0; + height: 100%; + } + &[data-side="left"]::before { + left: 100%; + } + &[data-side="right"]::before { + right: 100%; + } +} + +.media-minimal-skin .media-popover { + &[data-side="top"]::before, + &[data-side="bottom"]::before { + height: var(--media-popover-side-offset); + } + &[data-side="left"]::before, + &[data-side="right"]::before { + width: var(--media-popover-side-offset); + } +} + +.media-minimal-skin .media-tooltip { + padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2); + font-size: var(--font-size-base); + color: var(--media-tooltip-text-color); + white-space: nowrap; + background-color: var(--media-tooltip-background-color); + border-radius: calc(var(--spacing) * 2); + box-shadow: + 0 0 0 1px var(--media-tooltip-border-color), + 0 4px 6px -1px oklch(0 0 0 / 0.2), + 0 2px 4px -2px oklch(0 0 0 / 0.2); + backdrop-filter: var(--media-tooltip-backdrop-filter); + + /* `display: flex` must not apply while closed — it overrides UA `[popover]` hiding. */ + &[data-open] { + display: flex; + column-gap: calc(var(--spacing) * 1); + align-items: center; + } + + &[data-side="top"]::before, + &[data-side="bottom"]::before { + height: var(--media-tooltip-side-offset); + } + &[data-side="left"]::before, + &[data-side="right"]::before { + width: var(--media-tooltip-side-offset); + } + + & .media-tooltip__kbd { + min-width: 1.5em; + padding: 0.1em; + margin-right: calc(var(--spacing) * -1); + font-family: inherit; + font-size: var(--font-size-small); + font-weight: 600; + line-height: 1.25; + text-align: center; + background-color: oklch(from currentColor l c h / 0.15); + border-radius: calc(var(--spacing) * 1); + } +} + +.media-minimal-skin .media-popover--volume:has(media-volume-slider[data-availability="unsupported"]) { + display: none; +} + +/* ========================================================================== + Menus + Note: Menus use `.media-popover` styles for positioning and transitions. + ========================================================================== */ + +.media-minimal-skin .media-menu { + --menu-transition-duration: 250ms; + --menu-max-height: calc(var(--spacing) * 56); + --menu-padding: calc(var(--spacing) * 1); + --menu-border-radius: calc(var(--spacing) * 2.5); + --menu-item-border-radius: calc(var(--menu-border-radius) - var(--menu-padding)); + box-sizing: border-box; + min-width: max-content; + max-width: var(--media-popover-available-width, none); + max-height: min(var(--media-popover-available-height, var(--menu-max-height)), var(--menu-max-height)); + padding: var(--menu-padding); + overflow: auto; + overscroll-behavior: none; + background-color: var(--media-popover-background-color); + border-radius: var(--menu-border-radius); + box-shadow: + 0 0 0 1px var(--media-popover-border-color), + 0 4px 6px -1px oklch(0 0 0 / 0.1), + 0 2px 4px -2px oklch(0 0 0 / 0.1); + backdrop-filter: var(--media-popover-backdrop-filter); + + @media (prefers-reduced-motion: reduce) { + --menu-transition-duration: 0ms; + } + + & .media-menu__panel { + position: absolute; + inset: 0; + padding: var(--menu-padding); + overflow: auto; + overscroll-behavior: none; + outline: none; + translate: 0 0; + transition-timing-function: ease-in-out; + transition-duration: var(--menu-transition-duration); + transition-property: translate, filter; + will-change: translate, filter; + + &[data-starting-style], + &[data-ending-style] { + overflow: hidden; + } + + /* Root settings view — slides out when a submenu is active */ + &[data-menu-root-view][data-menu-view-state="inactive"] { + filter: blur(8px); + translate: -100% 0; + + /* Hide the indicator while transitioning */ + & .media-menu__group::before { + display: none; + } + } + + /* Submenu panels — slide in/out alongside the root view */ + &[data-submenu] { + z-index: 10; + + &:not([data-open], [data-ending-style]) { + translate: -100% 0; + transition-property: none; + } + + &[data-starting-style], + &[data-ending-style] { + pointer-events: none; + filter: blur(8px); + } + + &[data-starting-style][data-direction="forward"], + &[data-ending-style][data-direction="back"] { + translate: 100% 0; + } + + &[data-ending-style][data-direction="forward"], + &[data-starting-style][data-direction="back"] { + translate: -100% 0; + } + } + } + + & .media-menu__separator { + margin: calc(var(--spacing) * 1) 0; + border-bottom: 1px solid oklch(1 0 0 / 0.1); + } + + & .media-menu__group { + anchor-scope: --media-menu-item-highlight-anchor; + display: flex; + flex-direction: column; + gap: calc(var(--spacing) * 0.5); + + @supports (top: anchor(top)) { + &::before { + position: absolute; + position-anchor: --media-menu-item-highlight-anchor; + inset: anchor(inside); + pointer-events: none; + content: ""; + background-color: oklch(from currentColor l c h / 0.1); + border-radius: var(--menu-item-border-radius); + transition: inset ease-in-out 100ms; + } + } + } + + & .media-menu__item, + & .media-menu__back { + display: flex; + gap: calc(var(--spacing) * 1.5); + align-items: center; + padding: calc(var(--spacing) * 1.5) calc(var(--spacing) * 2); + text-align: left; + text-shadow: 0 1px 0 var(--media-current-shadow-color); + cursor: pointer; + user-select: none; + outline: 2px solid transparent; + outline-offset: -2px; + border-radius: var(--menu-item-border-radius); + transition: background-color, color; + transition-timing-function: ease-out; + transition-duration: 100ms; + + &:focus-visible { + outline-color: currentColor; + outline-offset: 2px; + } + + &:hover, + &[data-highlighted] { + background-color: oklch(from currentColor l c h / 0.1); + } + + & .media-icon { + flex-shrink: 0; + color: oklch(from currentColor l c h / 0.5); + filter: drop-shadow(0 1px 0 var(--media-current-shadow-color)); + } + } + + & .media-menu__indicator { + flex-shrink: 0; + margin-right: calc(var(--spacing) * -1); + margin-left: auto; + opacity: 0; + } + + & .media-menu__item { + justify-content: space-between; + font-variant-numeric: tabular-nums; + color: inherit; + + &[aria-disabled="true"] { + pointer-events: none; + cursor: not-allowed; + opacity: 0.5; + } + + &[aria-checked="true"] .media-menu__indicator { + opacity: 1; + } + + &[data-availability="unavailable"], + &[data-availability="unsupported"] { + display: none; + } + + &:hover, + &[data-highlighted] { + @supports (top: anchor(top)) { + anchor-name: --media-menu-item-highlight-anchor; + background-color: transparent; + } + } + } + + & .media-menu__tier { + padding-top: 1px; + padding-left: calc(var(--spacing) * 0.5); + font-size: var(--font-size-tiny); + font-weight: 600; + line-height: 1; + color: oklch(from currentColor l c h / 0.7); + } + + & .media-menu__back { + width: 100%; + margin-bottom: calc(var(--spacing) * 0.5); + } + + & .media-menu__hint { + display: inline-flex; + gap: calc(var(--spacing) * 1); + align-items: center; + min-width: 0; + padding-left: calc(var(--spacing) * 2); + margin-left: auto; + color: oklch(from currentColor l c h / 0.65); + } + + & .media-menu__hint-label { + max-width: calc(var(--spacing) * 24); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + & .media-menu__chevron { + width: calc(var(--spacing) * 3.5); + height: calc(var(--spacing) * 3.5); + } + + /* Settings menu */ + &.media-menu--settings { + width: var(--media-menu-width); + min-width: calc(var(--spacing) * 48); + height: var(--media-menu-height); + overflow: hidden; + /* Add height and width transitions. */ + transition: + var(--media-popup-transition), + height var(--media-popup-transition-timing-function) var(--menu-transition-duration), + width var(--media-popup-transition-timing-function) var(--menu-transition-duration); + + /* Don't transition width and height on open/close. */ + &[data-starting-style], + &[data-ending-style] { + transition: var(--media-popup-transition); + } + } +} + +/* ========================================================================== + Icon State Visibility for Audio Skins + + Data-attribute-driven visibility rules for multi-state icon buttons. + Uses :is() with both element selectors (for HTML custom element wrappers) + and class selectors (for React rendered SVG elements). + ========================================================================== */ + +/* --- All icons hidden by default --- */ + +.media-button--play .media-icon--restart, +.media-button--play .media-icon--play, +.media-button--play .media-icon--pause, +.media-button--mute .media-icon--volume-off, +.media-button--mute .media-icon--volume-low, +.media-button--mute .media-icon--volume-high { + display: none; + opacity: 0; +} + +/* --- Active icon per state --- */ + +/* Play: ended → restart */ +.media-button--play[data-ended] .media-icon--restart, +/* Play: paused or not yet started (not ended) → play */ +.media-button--play:not([data-ended])[data-paused] .media-icon--play, +.media-button--play:not([data-ended]):not([data-started]) .media-icon--play, +/* Play: started and not paused/ended → pause */ +.media-button--play[data-started]:not([data-paused]):not([data-ended]) .media-icon--pause, +/* Mute: muted → volume off */ +.media-button--mute[data-muted] .media-icon--volume-off, +/* Mute: volume low (not muted) → volume low */ +.media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low, +/* Mute: volume high (not muted, not low) → volume high */ +.media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high { + display: block; + opacity: 1; +} + + +/* ========================================================================== + Root + ========================================================================== */ + +.media-minimal-skin--audio { + --media-controls-background-color: oklch(1 0 0); + --media-controls-backdrop-filter: blur(16px) saturate(1.5); + --media-controls-border-color: oklch(0 0 0 / 0.1); + --media-controls-text-color: var(--media-color-primary, oklch(0 0 0)); + + --media-error-dialog-transition-duration: 250ms; + --media-error-dialog-transition-delay: 100ms; + + --media-popup-transition-duration: 100ms; + --media-popup-transition-timing-function: ease-out; + + --media-popover-backdrop-filter: blur(16px) saturate(1.5); + --media-popover-background-color: oklch(1 0 0); + --media-popover-border-color: oklch(0 0 0 / 0.1); + + --media-tooltip-backdrop-filter: var(--media-popover-backdrop-filter); + --media-tooltip-background-color: var(--media-popover-background-color); + --media-tooltip-border-color: var(--media-popover-border-color); + + --media-tooltip-text-color: currentColor; + + @media (prefers-reduced-motion: reduce) { + --media-error-dialog-transition-duration: 50ms; + --media-error-dialog-transition-delay: 0ms; + --media-popup-transition-duration: 0ms; + } + + @media (prefers-color-scheme: dark) { + --media-controls-background-color: oklch(0 0 0); + --media-controls-border-color: oklch(1 0 0 / 0.1); + --media-controls-text-color: var(--media-color-primary, oklch(1 0 0)); + } + + @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) { + --media-tooltip-background-color: oklch(1 0 0); + } + + @media (prefers-color-scheme: dark) and ((prefers-reduced-transparency: reduce) or (prefers-contrast: more)) { + --media-tooltip-background-color: oklch(0 0 0); + } +} + +/* ========================================================================== + Error Dialog + ========================================================================== */ + +.media-minimal-skin--audio .media-error__dialog { + position: absolute; + inset: 0; + z-index: 20; + display: flex; + gap: calc(var(--spacing) * 4); + align-items: center; + padding-inline: calc(var(--spacing) * 5) calc(var(--spacing) * 2); + background-color: oklch(from var(--media-controls-background-color) l c h / 1); + border-radius: calc(Infinity * 1px); + transition-delay: var(--media-error-dialog-transition-delay); + transition-timing-function: ease-out; + transition-duration: var(--media-error-dialog-transition-duration); + transition-property: opacity, filter, scale; +} + +.media-minimal-skin--audio .media-error[data-starting-style] .media-error__dialog, +.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog { + opacity: 0; + filter: blur(4px); + scale: 0.95; +} +.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog { + transition-delay: 0ms; +} + +.media-minimal-skin--audio .media-error__content { + display: flex; + flex: 1; + gap: calc(var(--spacing) * 2); + align-items: center; +} + +/* ========================================================================== + Controls + ========================================================================== */ + +.media-minimal-skin--audio .media-controls { + --base-side-offset: 2; + --base-boundary-offset: 2; + + gap: calc(var(--spacing) * 2); + color: var(--media-controls-text-color); + border-radius: var(--media-border-radius, calc(var(--spacing) * 3.5)); + box-shadow: 0 0 0 1px var(--media-controls-border-color); +} + +/* ========================================================================== + Buffering (spinner over play button — overlay only, no layout change) + ========================================================================== */ + +.media-minimal-skin--audio .media-button--play__wrapper { + position: relative; + display: inline-flex; +} + +.media-minimal-skin--audio .media-button--play__wrapper .media-buffering-indicator { + color: inherit; +} + +.media-minimal-skin--audio + .media-button--play__wrapper:has(.media-buffering-indicator[data-visible]) + .media-button--play + .media-icon { + opacity: 0; +} + +/* ========================================================================== + Popups & Animations + ========================================================================== */ + +.media-minimal-skin--audio .media-popover--volume { + --media-popover-side-offset: 0rem; + padding: 0 calc(var(--spacing) * 2) 0 calc(var(--spacing) * 16); + background: linear-gradient(to left, var(--media-controls-background-color) 80%, transparent 100%); +} + +.media-minimal-skin--audio .media-slider .media-slider__preview .media-slider__value { + bottom: calc(var(--spacing) * 10); +} + diff --git a/dist/default/presets/audio/minimal-skin.js b/dist/default/presets/audio/minimal-skin.js new file mode 100644 index 00000000..78149120 --- /dev/null +++ b/dist/default/presets/audio/minimal-skin.js @@ -0,0 +1,340 @@ +import { useTranslator } from "../../i18n/context.js"; +import { usePlayer } from "../../player/context.js"; +import { Container } from "../../player/container.js"; +import { AlertDialogPopup } from "../../ui/alert-dialog/alert-dialog-popup.js"; +import { BufferingIndicator } from "../../ui/buffering-indicator/buffering-indicator.js"; +import { ErrorDialogClose } from "../../ui/error-dialog/error-dialog-close.js"; +import { ErrorDialogDescription } from "../../ui/error-dialog/error-dialog-description.js"; +import { ErrorDialogRoot } from "../../ui/error-dialog/error-dialog-root.js"; +import { ErrorDialogTitle } from "../../ui/error-dialog/error-dialog-title.js"; +import { Hotkey } from "../../ui/hotkey/hotkey.js"; +import { MenuContent } from "../../ui/menu/menu-content.js"; +import { usePlaybackRateOptions } from "../../ui/playback-rate/use-playback-rate-options.js"; +import { MenuItemIndicator } from "../../ui/menu/menu-item-indicator.js"; +import { MenuRadioGroup } from "../../ui/menu/menu-radio-group.js"; +import { MenuRadioItem } from "../../ui/menu/menu-radio-item.js"; +import { MenuRoot } from "../../ui/menu/menu-root.js"; +import { MenuTrigger } from "../../ui/menu/menu-trigger.js"; +import { MuteButton } from "../../ui/mute-button/mute-button.js"; +import { PlayButton } from "../../ui/play-button/play-button.js"; +import { PlaybackRateButton } from "../../ui/playback-rate-button/playback-rate-button.js"; +import { PopoverPopup } from "../../ui/popover/popover-popup.js"; +import { PopoverRoot } from "../../ui/popover/popover-root.js"; +import { PopoverTrigger } from "../../ui/popover/popover-trigger.js"; +import { SeekButton } from "../../ui/seek-button/seek-button.js"; +import { SliderBuffer } from "../../ui/slider/slider-buffer.js"; +import { SliderFill } from "../../ui/slider/slider-fill.js"; +import { SliderPreview } from "../../ui/slider/slider-preview.js"; +import { SliderThumb } from "../../ui/slider/slider-thumb.js"; +import { SliderTrack } from "../../ui/slider/slider-track.js"; +import { SliderValue } from "../../ui/slider/slider-value.js"; +import { StatusAnnouncer } from "../../ui/status-announcer/status-announcer.js"; +import { Group } from "../../ui/time/time-group.js"; +import { Separator } from "../../ui/time/time-separator.js"; +import { Value } from "../../ui/time/time-value.js"; +import { TimeSliderRoot } from "../../ui/time-slider/time-slider-root.js"; +import { TooltipLabel } from "../../ui/tooltip/tooltip-label.js"; +import { TooltipShortcut } from "../../ui/tooltip/tooltip-shortcut.js"; +import { TooltipPopup } from "../../ui/tooltip/tooltip-popup.js"; +import { TooltipProvider } from "../../ui/tooltip/tooltip-provider.js"; +import { TooltipRoot } from "../../ui/tooltip/tooltip-root.js"; +import { TooltipTrigger } from "../../ui/tooltip/tooltip-trigger.js"; +import { VolumeSliderRoot } from "../../ui/volume-slider/volume-slider-root.js"; +import CheckIcon from "../../icons/dist/react/minimal/check.js"; +import PauseIcon from "../../icons/dist/react/minimal/pause.js"; +import PlayIcon from "../../icons/dist/react/minimal/play.js"; +import RestartIcon from "../../icons/dist/react/minimal/restart.js"; +import SeekIcon from "../../icons/dist/react/minimal/seek.js"; +import SpinnerIcon from "../../icons/dist/react/minimal/spinner.js"; +import VolumeHighIcon from "../../icons/dist/react/minimal/volume-high.js"; +import VolumeLowIcon from "../../icons/dist/react/minimal/volume-low.js"; +import VolumeOffIcon from "../../icons/dist/react/minimal/volume-off.js"; +import { forwardRef } from "react"; +import { jsx, jsxs } from "react/jsx-runtime"; +import { playbackRateText } from "@videojs/core/i18n/text/menu"; +import { cn } from "@videojs/utils/style"; +//#region src/presets/audio/minimal-skin.tsx +const SEEK_TIME = 10; +const Button = forwardRef(function Button({ className, ...props }, ref) { + return /* @__PURE__ */ jsx("button", { + ref, + type: "button", + className: cn("media-button media-button--subtle media-button--icon", className), + ...props + }); +}); +function VolumePopover() { + const volumeUnsupported = usePlayer((s) => s.volumeAvailability === "unsupported"); + const muteButton = /* @__PURE__ */ jsxs(MuteButton, { + className: "media-button--mute", + render: /* @__PURE__ */ jsx(Button, {}), + children: [ + /* @__PURE__ */ jsx(VolumeOffIcon, { className: "media-icon media-icon--volume-off" }), + /* @__PURE__ */ jsx(VolumeLowIcon, { className: "media-icon media-icon--volume-low" }), + /* @__PURE__ */ jsx(VolumeHighIcon, { className: "media-icon media-icon--volume-high" }) + ] + }); + if (volumeUnsupported) return muteButton; + return /* @__PURE__ */ jsxs(PopoverRoot, { + openOnHover: true, + delay: 200, + closeDelay: 100, + side: "left", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(PopoverTrigger, { render: muteButton }), /* @__PURE__ */ jsx(PopoverPopup, { + className: "media-popover media-popover--volume", + children: /* @__PURE__ */ jsxs(VolumeSliderRoot, { + className: "media-slider", + orientation: "horizontal", + thumbAlignment: "edge", + children: [/* @__PURE__ */ jsx(SliderTrack, { + className: "media-slider__track", + children: /* @__PURE__ */ jsx(SliderFill, { className: "media-slider__fill" }) + }), /* @__PURE__ */ jsx(SliderThumb, { className: "media-slider__thumb media-slider__thumb--persistent" })] + }) + })] + }); +} +function PlaybackRateRadioGroup() { + const t = useTranslator(); + const state = usePlaybackRateOptions(); + if (!state) return null; + const { options, setValue, value } = state; + return /* @__PURE__ */ jsx(MenuRadioGroup, { + className: "media-menu__group", + value, + onValueChange: setValue, + "aria-label": t(playbackRateText), + children: options.map((option) => /* @__PURE__ */ jsxs(MenuRadioItem, { + className: "media-menu__item", + value: option.value, + disabled: option.disabled, + children: [/* @__PURE__ */ jsx("span", { children: option.label }), /* @__PURE__ */ jsx(MenuItemIndicator, { + checked: option.value === value, + forceMount: true, + className: "media-menu__indicator", + children: /* @__PURE__ */ jsx(CheckIcon, { className: "media-icon" }) + })] + }, option.value)) + }); +} +function PlaybackRateTrigger() { + const state = usePlaybackRateOptions(); + if (!state) return null; + return /* @__PURE__ */ jsx(MenuTrigger, { + disabled: state.disabled, + render: /* @__PURE__ */ jsx(PlaybackRateButton, { + className: "media-button--playback-rate", + render: /* @__PURE__ */ jsx(Button, {}) + }) + }); +} +function MinimalAudioSkin(props) { + const { children, className, ...rest } = props; + return /* @__PURE__ */ jsxs(Container, { + className: cn("media-minimal-skin media-minimal-skin--audio", className), + ...rest, + children: [ + children, + /* @__PURE__ */ jsx(ErrorDialogRoot, { children: /* @__PURE__ */ jsx(AlertDialogPopup, { + className: "media-error", + children: /* @__PURE__ */ jsxs("div", { + className: "media-error__dialog", + children: [/* @__PURE__ */ jsxs("div", { + className: "media-error__content", + children: [/* @__PURE__ */ jsx(ErrorDialogTitle, { className: "media-error__title" }), /* @__PURE__ */ jsx(ErrorDialogDescription, { className: "media-error__description" })] + }), /* @__PURE__ */ jsx("div", { + className: "media-error__actions", + children: /* @__PURE__ */ jsx(ErrorDialogClose, { className: "media-button media-button--subtle" }) + })] + }) + }) }), + /* @__PURE__ */ jsx("div", { + className: "media-controls", + children: /* @__PURE__ */ jsxs(TooltipProvider, { children: [ + /* @__PURE__ */ jsxs("div", { + className: "media-button-group", + children: [ + /* @__PURE__ */ jsxs("span", { + className: "media-button--play__wrapper", + children: [/* @__PURE__ */ jsx(BufferingIndicator, { render: (props) => /* @__PURE__ */ jsx("div", { + ...props, + className: "media-buffering-indicator", + children: /* @__PURE__ */ jsx(SpinnerIcon, { className: "media-icon" }) + }) }), /* @__PURE__ */ jsxs(TooltipRoot, { + side: "top", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(PlayButton, { + className: "media-button--play", + render: /* @__PURE__ */ jsx(Button, {}), + children: [ + /* @__PURE__ */ jsx(RestartIcon, { className: "media-icon media-icon--restart" }), + /* @__PURE__ */ jsx(PlayIcon, { className: "media-icon media-icon--play" }), + /* @__PURE__ */ jsx(PauseIcon, { className: "media-icon media-icon--pause" }) + ] + }) }), /* @__PURE__ */ jsxs(TooltipPopup, { + className: "media-tooltip", + children: [/* @__PURE__ */ jsx(TooltipLabel, {}), /* @__PURE__ */ jsx(TooltipShortcut, { className: "media-tooltip__kbd" })] + })] + })] + }), + /* @__PURE__ */ jsxs(TooltipRoot, { + side: "top", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(SeekButton, { + seconds: -10, + className: "media-button--seek", + render: /* @__PURE__ */ jsx(Button, {}), + children: /* @__PURE__ */ jsxs("span", { + className: "media-icon__container", + children: [/* @__PURE__ */ jsx(SeekIcon, { className: "media-icon media-icon--seek media-icon--flipped" }), /* @__PURE__ */ jsx("span", { + className: "media-icon__label", + children: SEEK_TIME + })] + }) + }) }), /* @__PURE__ */ jsxs(TooltipPopup, { + className: "media-tooltip", + children: [/* @__PURE__ */ jsx(TooltipLabel, {}), /* @__PURE__ */ jsx(TooltipShortcut, { className: "media-tooltip__kbd" })] + })] + }), + /* @__PURE__ */ jsxs(TooltipRoot, { + side: "top", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(SeekButton, { + seconds: SEEK_TIME, + className: "media-button--seek", + render: /* @__PURE__ */ jsx(Button, {}), + children: /* @__PURE__ */ jsxs("span", { + className: "media-icon__container", + children: [/* @__PURE__ */ jsx(SeekIcon, { className: "media-icon media-icon--seek" }), /* @__PURE__ */ jsx("span", { + className: "media-icon__label", + children: SEEK_TIME + })] + }) + }) }), /* @__PURE__ */ jsxs(TooltipPopup, { + className: "media-tooltip", + children: [/* @__PURE__ */ jsx(TooltipLabel, {}), /* @__PURE__ */ jsx(TooltipShortcut, { className: "media-tooltip__kbd" })] + })] + }) + ] + }), + /* @__PURE__ */ jsxs("div", { + className: "media-time-controls", + children: [/* @__PURE__ */ jsxs(Group, { + className: "media-time-group", + children: [ + /* @__PURE__ */ jsx(Value, { + toggle: true, + type: "current", + className: "media-time media-time--current" + }), + /* @__PURE__ */ jsx(Separator, { className: "media-time-separator" }), + /* @__PURE__ */ jsx(Value, { + type: "duration", + className: "media-time media-time--duration" + }) + ] + }), /* @__PURE__ */ jsxs(TimeSliderRoot, { + className: "media-slider", + children: [ + /* @__PURE__ */ jsxs(SliderTrack, { + className: "media-slider__track", + children: [/* @__PURE__ */ jsx(SliderFill, { className: "media-slider__fill" }), /* @__PURE__ */ jsx(SliderBuffer, { className: "media-slider__buffer" })] + }), + /* @__PURE__ */ jsx(SliderThumb, { className: "media-slider__thumb" }), + /* @__PURE__ */ jsx(SliderPreview, { + className: "media-slider__preview", + children: /* @__PURE__ */ jsx(SliderValue, { + type: "pointer", + className: "media-slider__value media-time" + }) + }) + ] + })] + }), + /* @__PURE__ */ jsxs("div", { + className: "media-button-group", + children: [/* @__PURE__ */ jsx(VolumePopover, {}), /* @__PURE__ */ jsxs(MenuRoot, { + side: "top", + align: "center", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(PlaybackRateTrigger, {}), /* @__PURE__ */ jsx(MenuContent, { + className: "media-popover media-menu media-menu--playback-rate", + children: /* @__PURE__ */ jsx(PlaybackRateRadioGroup, {}) + })] + })] + }) + ] }) + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "Space", + action: "togglePaused" + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "k", + action: "togglePaused" + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "m", + action: "toggleMuted" + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "ArrowRight", + action: "seekStep", + value: 5 + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "ArrowLeft", + action: "seekStep", + value: -5 + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "l", + action: "seekStep", + value: 10 + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "j", + action: "seekStep", + value: -10 + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "ArrowUp", + action: "volumeStep", + value: .05 + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "ArrowDown", + action: "volumeStep", + value: -.05 + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "0-9", + action: "seekToPercent" + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "Home", + action: "seekToPercent", + value: 0 + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "End", + action: "seekToPercent", + value: 100 + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: ">", + action: "speedUp" + }), + /* @__PURE__ */ jsx(Hotkey, { + keys: "<", + action: "speedDown" + }), + /* @__PURE__ */ jsx(StatusAnnouncer, { className: "media-sr-only" }) + ] + }); +} +//#endregion +export { MinimalAudioSkin }; + +//# sourceMappingURL=minimal-skin.js.map \ No newline at end of file diff --git a/dist/default/presets/audio/minimal-skin.js.map b/dist/default/presets/audio/minimal-skin.js.map new file mode 100644 index 00000000..9ffd495d --- /dev/null +++ b/dist/default/presets/audio/minimal-skin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"minimal-skin.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","Menu.RadioGroup","Menu.RadioItem","Menu.ItemIndicator","Menu.Trigger","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Tooltip.Provider","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Tooltip.Label","Tooltip.Shortcut","Time.Group","Time.Value","Time.Separator","TimeSlider.Root","TimeSlider.Track","TimeSlider.Fill","TimeSlider.Buffer","TimeSlider.Thumb","TimeSlider.Preview","TimeSlider.Value","Menu.Root","Menu.Content"],"sources":["../../../../src/presets/audio/minimal-skin.tsx"],"sourcesContent":["import { playbackRateText } from '@videojs/core/i18n/text/menu';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '@/i18n/context';\nimport {\n CheckIcon,\n PauseIcon,\n PlayIcon,\n RestartIcon,\n SeekIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@/icons/minimal';\nimport { Container } from '@/player/container';\nimport { usePlayer } from '@/player/context';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { Hotkey } from '@/ui/hotkey';\nimport { Menu } from '@/ui/menu';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { usePlaybackRateOptions } from '@/ui/playback-rate';\nimport { PlaybackRateButton } from '@/ui/playback-rate-button';\nimport { Popover } from '@/ui/popover';\nimport { SeekButton } from '@/ui/seek-button';\nimport { StatusAnnouncer } from '@/ui/status-announcer';\nimport { Time } from '@/ui/time';\nimport { TimeSlider } from '@/ui/time-slider';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport type { BaseSkinProps } from '../types';\n\nexport type MinimalAudioSkinProps = BaseSkinProps;\n\nconst SEEK_TIME = 10;\n\nconst Button = forwardRef>(function Button({ className, ...props }, ref) {\n return (\n \n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnsupported = usePlayer((s) => s.volumeAvailability === 'unsupported');\n\n const muteButton = (\n }>\n \n \n \n \n );\n\n if (volumeUnsupported) return muteButton;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nfunction PlaybackRateRadioGroup(): ReactNode {\n const t = useTranslator();\n const state = usePlaybackRateOptions();\n if (!state) return null;\n\n const { options, setValue, value } = state;\n\n return (\n \n {options.map((option) => (\n \n {option.label}\n \n \n \n \n ))}\n \n );\n}\n\nfunction PlaybackRateTrigger(): ReactNode {\n const state = usePlaybackRateOptions();\n if (!state) return null;\n\n return (\n } />}\n />\n );\n}\n\nexport function MinimalAudioSkin(props: MinimalAudioSkinProps): ReactNode {\n const { children, className, ...rest } = props;\n\n return (\n \n {children}\n\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n \n (\n
\n \n
\n )}\n />\n \n }>\n \n \n \n \n }\n />\n \n \n \n \n \n
\n\n \n }>\n \n \n {SEEK_TIME}\n \n \n }\n />\n \n \n \n \n \n\n \n }>\n \n \n {SEEK_TIME}\n \n \n }\n />\n \n \n \n \n \n
\n\n
\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n\n
\n \n\n \n \n \n \n \n \n
\n
\n
\n\n {/* Hotkeys */}\n \n \n \n \n \n \n \n \n \n \n \n \n \" action=\"speedUp\" />\n \n\n {/* Input Feedback */}\n \n
\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAM,YAAY;AAElB,MAAM,SAAS,WAAwD,SAAS,OAAO,EAAE,WAAW,GAAG,SAAS,KAAK;CACnH,OACE,oBAAC,UAAD;EACO;EACL,MAAK;EACL,WAAW,GAAG,wDAAwD,SAAS;EAC/E,GAAI;CACL,CAAA;AAEL,CAAC;AAED,SAAS,gBAA2B;CAClC,MAAM,oBAAoB,WAAW,MAAM,EAAE,uBAAuB,aAAa;CAEjF,MAAM,aACJ,qBAAC,YAAD;EAAY,WAAU;EAAqB,QAAQ,oBAAC,QAAD,CAAS,CAAA;EAA5D,UAAA;GACE,oBAAC,eAAD,EAAe,WAAU,oCAAqC,CAAA;GAC9D,oBAAC,eAAD,EAAe,WAAU,oCAAqC,CAAA;GAC9D,oBAAC,gBAAD,EAAgB,WAAU,qCAAsC,CAAA;EACtD;;CAGd,IAAI,mBAAmB,OAAO;CAE9B,OACE,qBAACA,aAAD;EAAc,aAAA;EAAY,OAAO;EAAK,YAAY;EAAK,MAAK;EAAO,UAAS;EAA5E,UAAA,CACE,oBAACC,gBAAD,EAAiB,QAAQ,WAAa,CAAA,GACtC,oBAACC,cAAD;GAAe,WAAU;GACvB,UAAA,qBAACC,kBAAD;IAAmB,WAAU;IAAe,aAAY;IAAa,gBAAe;IAApF,UAAA,CACE,oBAACC,aAAD;KAAoB,WAAU;KAC5B,UAAA,oBAACC,YAAD,EAAmB,WAAU,qBAAsB,CAAA;IACjC,CAAA,GACpB,oBAACC,aAAD,EAAoB,WAAU,sDAAuD,CAAA,CACpE;;EACN,CAAA,CACH;;AAElB;AAEA,SAAS,yBAAoC;CAC3C,MAAM,IAAI,cAAc;CACxB,MAAM,QAAQ,uBAAuB;CACrC,IAAI,CAAC,OAAO,OAAO;CAEnB,MAAM,EAAE,SAAS,UAAU,UAAU;CAErC,OACE,oBAACC,gBAAD;EACE,WAAU;EACH;EACP,eAAe;EACf,cAAY,EAAE,gBAAgB;EAE7B,UAAA,QAAQ,KAAK,WACZ,qBAACC,eAAD;GAAmC,WAAU;GAAmB,OAAO,OAAO;GAAO,UAAU,OAAO;GAAtG,UAAA,CACE,oBAAC,QAAD,EAAA,UAAO,OAAO,MAAY,CAAA,GAC1B,oBAACC,mBAAD;IAAoB,SAAS,OAAO,UAAU;IAAO,YAAA;IAAW,WAAU;IACxE,UAAA,oBAAC,WAAD,EAAW,WAAU,aAAc,CAAA;GACjB,CAAA,CACN;EALK,GAAA,OAAO,KAKZ,CACjB;CACc,CAAA;AAErB;AAEA,SAAS,sBAAiC;CACxC,MAAM,QAAQ,uBAAuB;CACrC,IAAI,CAAC,OAAO,OAAO;CAEnB,OACE,oBAACC,aAAD;EACE,UAAU,MAAM;EAChB,QAAQ,oBAAC,oBAAD;GAAoB,WAAU;GAA8B,QAAQ,oBAAC,QAAD,CAAS,CAAA;EAAI,CAAA;CAC1F,CAAA;AAEL;AAEA,SAAgB,iBAAiB,OAAyC;CACxE,MAAM,EAAE,UAAU,WAAW,GAAG,SAAS;CAEzC,OACE,qBAAC,WAAD;EAAW,WAAW,GAAG,gDAAgD,SAAS;EAAG,GAAI;EAAzF,UAAA;GACG;GAED,oBAACC,iBAAD,EAAA,UACE,oBAACC,kBAAD;IAAmB,WAAU;IAC3B,UAAA,qBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,qBAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACE,oBAACC,kBAAD,EAAmB,WAAU,qBAAwC,CAAA,GACrE,oBAACC,wBAAD,EAAyB,WAAU,2BAA4B,CAAA,CAC5D;KACL,CAAA,GAAA,oBAAC,OAAD;MAAK,WAAU;MACb,UAAA,oBAACC,kBAAD,EAAmB,WAAU,oCAAuD,CAAA;KACjF,CAAA,CACF;;GACY,CAAA,EACH,CAAA;GAElB,oBAAC,OAAD;IAAK,WAAU;IACb,UAAA,qBAACC,iBAAD,EAAA,UAAA;KACE,qBAAC,OAAD;MAAK,WAAU;MAAf,UAAA;OACE,qBAAC,QAAD;QAAM,WAAU;QAAhB,UAAA,CACE,oBAAC,oBAAD,EACE,SAAS,UACP,oBAAC,OAAD;SAAK,GAAI;SAAO,WAAU;SACxB,UAAA,oBAAC,aAAD,EAAa,WAAU,aAAc,CAAA;QAClC,CAAA,EAER,CAAA,GACD,qBAACC,aAAD;SAAc,MAAK;SAAM,UAAS;SAAlC,UAAA,CACE,oBAACC,gBAAD,EACE,QACE,qBAAC,YAAD;UAAY,WAAU;UAAqB,QAAQ,oBAAC,QAAD,CAAS,CAAA;UAA5D,UAAA;WACE,oBAAC,aAAD,EAAa,WAAU,iCAAkC,CAAA;WACzD,oBAAC,UAAD,EAAU,WAAU,8BAA+B,CAAA;WACnD,oBAAC,WAAD,EAAW,WAAU,+BAAgC,CAAA;UAC3C;SAEf,CAAA,EAAA,CAAA,GACD,qBAACC,cAAD;UAAe,WAAU;UAAzB,UAAA,CACE,oBAACC,cAAD,CAAgB,CAAA,GAChB,oBAACC,iBAAD,EAAkB,WAAU,qBAAsB,CAAA,CACrC;SACH,CAAA,CAAA;QACV,CAAA,CAAA;;OAEN,qBAACJ,aAAD;QAAc,MAAK;QAAM,UAAS;QAAlC,UAAA,CACE,oBAACC,gBAAD,EACE,QACE,oBAAC,YAAD;SAAY,SAAS;SAAY,WAAU;SAAqB,QAAQ,oBAAC,QAAD,CAAS,CAAA;SAC/E,UAAA,qBAAC,QAAD;UAAM,WAAU;UAAhB,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,kDAAmD,CAAA,GACvE,oBAAC,QAAD;WAAM,WAAU;WAAqB,UAAA;UAAgB,CAAA,CACjD;;QACI,CAAA,EAEf,CAAA,GACD,qBAACC,cAAD;SAAe,WAAU;SAAzB,UAAA,CACE,oBAACC,cAAD,CAAgB,CAAA,GAChB,oBAACC,iBAAD,EAAkB,WAAU,qBAAsB,CAAA,CACrC;QACH,CAAA,CAAA;;OAEd,qBAACJ,aAAD;QAAc,MAAK;QAAM,UAAS;QAAlC,UAAA,CACE,oBAACC,gBAAD,EACE,QACE,oBAAC,YAAD;SAAY,SAAS;SAAW,WAAU;SAAqB,QAAQ,oBAAC,QAAD,CAAS,CAAA;SAC9E,UAAA,qBAAC,QAAD;UAAM,WAAU;UAAhB,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,8BAA+B,CAAA,GACnD,oBAAC,QAAD;WAAM,WAAU;WAAqB,UAAA;UAAgB,CAAA,CACjD;;QACI,CAAA,EAEf,CAAA,GACD,qBAACC,cAAD;SAAe,WAAU;SAAzB,UAAA,CACE,oBAACC,cAAD,CAAgB,CAAA,GAChB,oBAACC,iBAAD,EAAkB,WAAU,qBAAsB,CAAA,CACrC;QACH,CAAA,CAAA;;MACX;;KAEL,qBAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACE,qBAACC,OAAD;OAAY,WAAU;OAAtB,UAAA;QACE,oBAACC,OAAD;SAAY,QAAA;SAAO,MAAK;SAAU,WAAU;QAAkC,CAAA;QAC9E,oBAACC,WAAD,EAAgB,WAAU,uBAAwB,CAAA;QAClD,oBAACD,OAAD;SAAY,MAAK;SAAW,WAAU;QAAmC,CAAA;OAC/D;MAEZ,CAAA,GAAA,qBAACE,gBAAD;OAAiB,WAAU;OAA3B,UAAA;QACE,qBAACC,aAAD;SAAkB,WAAU;SAA5B,UAAA,CACE,oBAACC,YAAD,EAAiB,WAAU,qBAAsB,CAAA,GACjD,oBAACC,cAAD,EAAmB,WAAU,uBAAwB,CAAA,CACrC;;QAClB,oBAACC,aAAD,EAAkB,WAAU,sBAAuB,CAAA;QACnD,oBAACC,eAAD;SAAoB,WAAU;SAC5B,UAAA,oBAACC,aAAD;UAAkB,MAAK;UAAU,WAAU;SAAkC,CAAA;QAC3D,CAAA;OACL;MACd,CAAA,CAAA;;KAEL,qBAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACE,oBAAC,eAAD,CAAgB,CAAA,GAEhB,qBAACC,UAAD;OAAW,MAAK;OAAM,OAAM;OAAS,UAAS;OAA9C,UAAA,CACE,oBAAC,qBAAD,CAAsB,CAAA,GACtB,oBAACC,aAAD;QAAc,WAAU;QACtB,UAAA,oBAAC,wBAAD,CAAyB,CAAA;OACb,CAAA,CACL;MACR,CAAA,CAAA;;IACW,EAAA,CAAA;GACf,CAAA;GAGL,oBAAC,QAAD;IAAQ,MAAK;IAAQ,QAAO;GAAgB,CAAA;GAC5C,oBAAC,QAAD;IAAQ,MAAK;IAAI,QAAO;GAAgB,CAAA;GACxC,oBAAC,QAAD;IAAQ,MAAK;IAAI,QAAO;GAAe,CAAA;GACvC,oBAAC,QAAD;IAAQ,MAAK;IAAa,QAAO;IAAW,OAAO;GAAI,CAAA;GACvD,oBAAC,QAAD;IAAQ,MAAK;IAAY,QAAO;IAAW,OAAO;GAAK,CAAA;GACvD,oBAAC,QAAD;IAAQ,MAAK;IAAI,QAAO;IAAW,OAAO;GAAK,CAAA;GAC/C,oBAAC,QAAD;IAAQ,MAAK;IAAI,QAAO;IAAW,OAAO;GAAM,CAAA;GAChD,oBAAC,QAAD;IAAQ,MAAK;IAAU,QAAO;IAAa,OAAO;GAAO,CAAA;GACzD,oBAAC,QAAD;IAAQ,MAAK;IAAY,QAAO;IAAa,OAAO;GAAQ,CAAA;GAC5D,oBAAC,QAAD;IAAQ,MAAK;IAAM,QAAO;GAAiB,CAAA;GAC3C,oBAAC,QAAD;IAAQ,MAAK;IAAO,QAAO;IAAgB,OAAO;GAAI,CAAA;GACtD,oBAAC,QAAD;IAAQ,MAAK;IAAM,QAAO;IAAgB,OAAO;GAAM,CAAA;GACvD,oBAAC,QAAD;IAAQ,MAAK;IAAI,QAAO;GAAW,CAAA;GACnC,oBAAC,QAAD;IAAQ,MAAK;IAAI,QAAO;GAAa,CAAA;GAGrC,oBAAC,iBAAD,EAAiB,WAAU,gBAAiB,CAAA;EACnC;;AAEf"} \ No newline at end of file diff --git a/dist/default/presets/audio/minimal-skin.tailwind.js b/dist/default/presets/audio/minimal-skin.tailwind.js new file mode 100644 index 00000000..6ea8a0cc --- /dev/null +++ b/dist/default/presets/audio/minimal-skin.tailwind.js @@ -0,0 +1,318 @@ +import { useTranslator } from "../../i18n/context.js"; +import { usePlayer } from "../../player/context.js"; +import { Container } from "../../player/container.js"; +import { AlertDialogPopup } from "../../ui/alert-dialog/alert-dialog-popup.js"; +import { BufferingIndicator } from "../../ui/buffering-indicator/buffering-indicator.js"; +import { ErrorDialogClose } from "../../ui/error-dialog/error-dialog-close.js"; +import { ErrorDialogDescription } from "../../ui/error-dialog/error-dialog-description.js"; +import { ErrorDialogRoot } from "../../ui/error-dialog/error-dialog-root.js"; +import { ErrorDialogTitle } from "../../ui/error-dialog/error-dialog-title.js"; +import { MenuContent } from "../../ui/menu/menu-content.js"; +import { usePlaybackRateOptions } from "../../ui/playback-rate/use-playback-rate-options.js"; +import { MenuItemIndicator } from "../../ui/menu/menu-item-indicator.js"; +import { MenuRadioGroup } from "../../ui/menu/menu-radio-group.js"; +import { MenuRadioItem } from "../../ui/menu/menu-radio-item.js"; +import { MenuRoot } from "../../ui/menu/menu-root.js"; +import { MenuTrigger } from "../../ui/menu/menu-trigger.js"; +import { MuteButton } from "../../ui/mute-button/mute-button.js"; +import { PlayButton } from "../../ui/play-button/play-button.js"; +import { PlaybackRateButton } from "../../ui/playback-rate-button/playback-rate-button.js"; +import { PopoverPopup } from "../../ui/popover/popover-popup.js"; +import { PopoverRoot } from "../../ui/popover/popover-root.js"; +import { PopoverTrigger } from "../../ui/popover/popover-trigger.js"; +import { SeekButton } from "../../ui/seek-button/seek-button.js"; +import { SliderBuffer as SliderBuffer$1 } from "../../ui/slider/slider-buffer.js"; +import { SliderFill as SliderFill$1 } from "../../ui/slider/slider-fill.js"; +import { SliderPreview } from "../../ui/slider/slider-preview.js"; +import { SliderThumb as SliderThumb$1 } from "../../ui/slider/slider-thumb.js"; +import { SliderTrack as SliderTrack$1 } from "../../ui/slider/slider-track.js"; +import { SliderValue } from "../../ui/slider/slider-value.js"; +import { Group } from "../../ui/time/time-group.js"; +import { Separator } from "../../ui/time/time-separator.js"; +import { Value } from "../../ui/time/time-value.js"; +import { TimeSliderRoot } from "../../ui/time-slider/time-slider-root.js"; +import { TooltipLabel } from "../../ui/tooltip/tooltip-label.js"; +import { TooltipShortcut } from "../../ui/tooltip/tooltip-shortcut.js"; +import { TooltipPopup } from "../../ui/tooltip/tooltip-popup.js"; +import { TooltipProvider } from "../../ui/tooltip/tooltip-provider.js"; +import { TooltipRoot } from "../../ui/tooltip/tooltip-root.js"; +import { TooltipTrigger } from "../../ui/tooltip/tooltip-trigger.js"; +import { VolumeSliderRoot } from "../../ui/volume-slider/volume-slider-root.js"; +import CheckIcon from "../../icons/dist/react/minimal/check.js"; +import PauseIcon from "../../icons/dist/react/minimal/pause.js"; +import PlayIcon from "../../icons/dist/react/minimal/play.js"; +import RestartIcon from "../../icons/dist/react/minimal/restart.js"; +import SeekIcon from "../../icons/dist/react/minimal/seek.js"; +import SpinnerIcon from "../../icons/dist/react/minimal/spinner.js"; +import VolumeHighIcon from "../../icons/dist/react/minimal/volume-high.js"; +import VolumeLowIcon from "../../icons/dist/react/minimal/volume-low.js"; +import VolumeOffIcon from "../../icons/dist/react/minimal/volume-off.js"; +import { iconState } from "../../skins/dist/default/shared/tailwind/icon-state.js"; +import { button } from "../../skins/dist/default/minimal/tailwind/components/button.js"; +import { buttonGroup } from "../../skins/dist/default/minimal/tailwind/components/button-group.js"; +import { icon, iconContainer, iconFlipped } from "../../skins/dist/default/minimal/tailwind/components/icon.js"; +import { menu } from "../../skins/dist/default/minimal/tailwind/components/menu.js"; +import { playbackRate } from "../../skins/dist/default/minimal/tailwind/components/playback-rate.js"; +import { seek } from "../../skins/dist/default/minimal/tailwind/components/seek.js"; +import { time } from "../../skins/dist/default/minimal/tailwind/components/time.js"; +import { controls, error, playButton, popup, root, slider } from "../../skins/dist/default/minimal/tailwind/audio.tailwind.js"; +import { forwardRef } from "react"; +import { jsx, jsxs } from "react/jsx-runtime"; +import { playbackRateText } from "@videojs/core/i18n/text/menu"; +import { cn } from "@videojs/utils/style"; +//#region src/presets/audio/minimal-skin.tailwind.tsx +const SEEK_TIME = 10; +const Button = forwardRef(function Button({ className, ...props }, ref) { + return /* @__PURE__ */ jsx("button", { + ref, + type: "button", + className: cn(button.base, button.subtle, button.icon, className), + ...props + }); +}); +const SliderRoot = forwardRef(function SliderRoot({ className, ...props }, ref) { + return /* @__PURE__ */ jsx("div", { + ref, + className: cn(slider.root, className), + ...props + }); +}); +const SliderTrack = forwardRef(function SliderTrack({ className, ...props }, ref) { + return /* @__PURE__ */ jsx("div", { + ref, + className: cn(slider.track, className), + ...props + }); +}); +const SliderFill = forwardRef(function SliderFill({ type = "fill", className, ...props }, ref) { + return /* @__PURE__ */ jsx("div", { + ref, + className: cn(slider.fill.base, type === "fill" ? slider.fill.fill : slider.fill.buffer, className), + ...props + }); +}); +const SliderBuffer = forwardRef(function SliderBuffer(props, ref) { + return /* @__PURE__ */ jsx(SliderFill, { + type: "buffer", + ref, + ...props + }); +}); +const SliderThumb = forwardRef(function SliderThumb({ persistent, className, ...props }, ref) { + return /* @__PURE__ */ jsx("div", { + ref, + className: cn(slider.thumb.base, persistent ? void 0 : slider.thumb.interactive, className), + ...props + }); +}); +function VolumePopover() { + const volumeUnsupported = usePlayer((s) => s.volumeAvailability === "unsupported"); + const muteButton = /* @__PURE__ */ jsxs(MuteButton, { + className: iconState.mute.button, + render: /* @__PURE__ */ jsx(Button, {}), + children: [ + /* @__PURE__ */ jsx(VolumeOffIcon, { className: cn(icon, iconState.mute.volumeOff) }), + /* @__PURE__ */ jsx(VolumeLowIcon, { className: cn(icon, iconState.mute.volumeLow) }), + /* @__PURE__ */ jsx(VolumeHighIcon, { className: cn(icon, iconState.mute.volumeHigh) }) + ] + }); + if (volumeUnsupported) return muteButton; + return /* @__PURE__ */ jsxs(PopoverRoot, { + openOnHover: true, + delay: 200, + closeDelay: 100, + side: "left", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(PopoverTrigger, { render: muteButton }), /* @__PURE__ */ jsx(PopoverPopup, { + className: cn(popup.volume), + children: /* @__PURE__ */ jsxs(VolumeSliderRoot, { + orientation: "horizontal", + thumbAlignment: "edge", + render: /* @__PURE__ */ jsx(SliderRoot, {}), + children: [/* @__PURE__ */ jsx(SliderTrack$1, { + render: /* @__PURE__ */ jsx(SliderTrack, {}), + children: /* @__PURE__ */ jsx(SliderFill$1, { render: /* @__PURE__ */ jsx(SliderFill, {}) }) + }), /* @__PURE__ */ jsx(SliderThumb$1, { render: (props) => /* @__PURE__ */ jsx(SliderThumb, { + persistent: true, + ...props + }) })] + }) + })] + }); +} +function PlaybackRateRadioGroup() { + const t = useTranslator(); + const state = usePlaybackRateOptions(); + if (!state) return null; + const { options, setValue, value } = state; + return /* @__PURE__ */ jsx(MenuRadioGroup, { + className: menu.group, + value, + onValueChange: setValue, + "aria-label": t(playbackRateText), + children: options.map((option) => /* @__PURE__ */ jsxs(MenuRadioItem, { + className: menu.item, + value: option.value, + disabled: option.disabled, + children: [/* @__PURE__ */ jsx("span", { children: option.label }), /* @__PURE__ */ jsx(MenuItemIndicator, { + checked: option.value === value, + forceMount: true, + className: menu.indicator, + children: /* @__PURE__ */ jsx(CheckIcon, { className: cn(icon, menu.icon) }) + })] + }, option.value)) + }); +} +function PlaybackRateTrigger() { + const state = usePlaybackRateOptions(); + if (!state) return null; + return /* @__PURE__ */ jsx(MenuTrigger, { + disabled: state.disabled, + render: /* @__PURE__ */ jsx(PlaybackRateButton, { + className: playbackRate.button, + render: /* @__PURE__ */ jsx(Button, {}) + }) + }); +} +function MinimalAudioSkinTailwind(props) { + const { children, className, ...rest } = props; + return /* @__PURE__ */ jsxs(Container, { + className: cn(root, className), + ...rest, + children: [ + children, + /* @__PURE__ */ jsx(ErrorDialogRoot, { children: /* @__PURE__ */ jsx(AlertDialogPopup, { + className: error.root, + children: /* @__PURE__ */ jsxs("div", { + className: error.dialog, + children: [/* @__PURE__ */ jsxs("div", { + className: error.content, + children: [/* @__PURE__ */ jsx(ErrorDialogTitle, { className: error.title }), /* @__PURE__ */ jsx(ErrorDialogDescription, { className: error.description })] + }), /* @__PURE__ */ jsx("div", { + className: error.actions, + children: /* @__PURE__ */ jsx(ErrorDialogClose, { className: cn(button.base, button.subtle) }) + })] + }) + }) }), + /* @__PURE__ */ jsx("div", { + className: controls, + children: /* @__PURE__ */ jsxs(TooltipProvider, { children: [ + /* @__PURE__ */ jsxs("div", { + className: buttonGroup, + children: [ + /* @__PURE__ */ jsxs("span", { + className: playButton.wrapper, + children: [/* @__PURE__ */ jsx(BufferingIndicator, { render: (props) => /* @__PURE__ */ jsx("div", { + ...props, + className: cn(playButton.bufferingRoot, props.className), + children: /* @__PURE__ */ jsx(SpinnerIcon, { className: icon }) + }) }), /* @__PURE__ */ jsxs(TooltipRoot, { + side: "top", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(PlayButton, { + className: cn(iconState.play.button, playButton.control), + render: /* @__PURE__ */ jsx(Button, {}), + children: [ + /* @__PURE__ */ jsx(RestartIcon, { className: cn(icon, iconState.play.restart) }), + /* @__PURE__ */ jsx(PlayIcon, { className: cn(icon, iconState.play.play) }), + /* @__PURE__ */ jsx(PauseIcon, { className: cn(icon, iconState.play.pause) }) + ] + }) }), /* @__PURE__ */ jsxs(TooltipPopup, { + className: cn(popup.tooltip), + children: [/* @__PURE__ */ jsx(TooltipLabel, {}), /* @__PURE__ */ jsx(TooltipShortcut, { className: popup.tooltipShortcut })] + })] + })] + }), + /* @__PURE__ */ jsxs(TooltipRoot, { + side: "top", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(SeekButton, { + seconds: -10, + render: /* @__PURE__ */ jsx(Button, {}), + children: /* @__PURE__ */ jsxs("span", { + className: iconContainer, + children: [/* @__PURE__ */ jsx(SeekIcon, { className: cn(icon, iconFlipped) }), /* @__PURE__ */ jsx("span", { + className: cn(seek.label, seek.labelBackward), + children: SEEK_TIME + })] + }) + }) }), /* @__PURE__ */ jsxs(TooltipPopup, { + className: cn(popup.tooltip), + children: [/* @__PURE__ */ jsx(TooltipLabel, {}), /* @__PURE__ */ jsx(TooltipShortcut, { className: popup.tooltipShortcut })] + })] + }), + /* @__PURE__ */ jsxs(TooltipRoot, { + side: "top", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(SeekButton, { + seconds: SEEK_TIME, + render: /* @__PURE__ */ jsx(Button, {}), + children: /* @__PURE__ */ jsxs("span", { + className: iconContainer, + children: [/* @__PURE__ */ jsx(SeekIcon, { className: icon }), /* @__PURE__ */ jsx("span", { + className: cn(seek.label, seek.labelForward), + children: SEEK_TIME + })] + }) + }) }), /* @__PURE__ */ jsxs(TooltipPopup, { + className: cn(popup.tooltip), + children: [/* @__PURE__ */ jsx(TooltipLabel, {}), /* @__PURE__ */ jsx(TooltipShortcut, { className: popup.tooltipShortcut })] + })] + }) + ] + }), + /* @__PURE__ */ jsxs("div", { + className: time.controls, + children: [/* @__PURE__ */ jsxs(Group, { + className: time.group, + children: [ + /* @__PURE__ */ jsx(Value, { + toggle: true, + type: "current", + className: time.current + }), + /* @__PURE__ */ jsx(Separator, { className: time.separator }), + /* @__PURE__ */ jsx(Value, { + type: "duration", + className: time.duration + }) + ] + }), /* @__PURE__ */ jsxs(TimeSliderRoot, { + render: /* @__PURE__ */ jsx(SliderRoot, {}), + children: [ + /* @__PURE__ */ jsxs(SliderTrack$1, { + render: /* @__PURE__ */ jsx(SliderTrack, {}), + children: [/* @__PURE__ */ jsx(SliderFill$1, { render: /* @__PURE__ */ jsx(SliderFill, {}) }), /* @__PURE__ */ jsx(SliderBuffer$1, { render: /* @__PURE__ */ jsx(SliderBuffer, {}) })] + }), + /* @__PURE__ */ jsx(SliderThumb$1, { render: /* @__PURE__ */ jsx(SliderThumb, {}) }), + /* @__PURE__ */ jsx(SliderPreview, { + className: slider.preview, + children: /* @__PURE__ */ jsx(SliderValue, { + type: "pointer", + className: slider.value + }) + }) + ] + })] + }), + /* @__PURE__ */ jsxs("div", { + className: buttonGroup, + children: [/* @__PURE__ */ jsx(VolumePopover, {}), /* @__PURE__ */ jsxs(MenuRoot, { + side: "top", + align: "center", + boundary: "viewport", + children: [/* @__PURE__ */ jsx(PlaybackRateTrigger, {}), /* @__PURE__ */ jsx(MenuContent, { + className: cn(popup.popover, menu.root), + children: /* @__PURE__ */ jsx(PlaybackRateRadioGroup, {}) + })] + })] + }) + ] }) + }) + ] + }); +} +//#endregion +export { MinimalAudioSkinTailwind }; + +//# sourceMappingURL=minimal-skin.tailwind.js.map \ No newline at end of file diff --git a/dist/default/presets/audio/minimal-skin.tailwind.js.map b/dist/default/presets/audio/minimal-skin.tailwind.js.map new file mode 100644 index 00000000..0ba95eab --- /dev/null +++ b/dist/default/presets/audio/minimal-skin.tailwind.js.map @@ -0,0 +1 @@ +{"version":3,"file":"minimal-skin.tailwind.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","Menu.RadioGroup","Menu.RadioItem","Menu.ItemIndicator","Menu.Trigger","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Tooltip.Provider","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Tooltip.Label","Tooltip.Shortcut","Time.Group","Time.Value","Time.Separator","TimeSlider.Root","TimeSlider.Track","TimeSlider.Fill","TimeSlider.Buffer","TimeSlider.Thumb","TimeSlider.Preview","TimeSlider.Value","Menu.Root","Menu.Content"],"sources":["../../../../src/presets/audio/minimal-skin.tailwind.tsx"],"sourcesContent":["import { playbackRateText } from '@videojs/core/i18n/text/menu';\nimport {\n button,\n buttonGroup,\n controls,\n error,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n menu,\n playButton,\n playbackRate,\n popup,\n root,\n seek,\n slider,\n time,\n} from '@videojs/skins/minimal/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '@/i18n/context';\nimport {\n CheckIcon,\n PauseIcon,\n PlayIcon,\n RestartIcon,\n SeekIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@/icons/minimal';\nimport { Container } from '@/player/container';\nimport { usePlayer } from '@/player/context';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { Menu } from '@/ui/menu';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { usePlaybackRateOptions } from '@/ui/playback-rate';\nimport { PlaybackRateButton } from '@/ui/playback-rate-button';\nimport { Popover } from '@/ui/popover';\nimport { SeekButton } from '@/ui/seek-button';\nimport { Time } from '@/ui/time';\nimport { TimeSlider } from '@/ui/time-slider';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport type { MinimalAudioSkinProps } from './minimal-skin';\n\nconst SEEK_TIME = 10;\n\n/* --------------------------------------- Components ---------------------------------------- */\n\nconst Button = forwardRef>(function Button({ className, ...props }, ref) {\n return (\n +* )} +* /> +* ``` +*/ +const PlayButton = createMediaButton({ + displayName: "PlayButton", + core: PlayButtonCore, + stateAttrMap: PlayButtonDataAttrs, + selector: selectPlayback, + action: (core, state) => core.toggle(state), + hotkeyAction: "togglePaused" +}); +//#endregion +export { PlayButton }; + +//# sourceMappingURL=play-button.js.map \ No newline at end of file diff --git a/dist/default/ui/play-button/play-button.js.map b/dist/default/ui/play-button/play-button.js.map new file mode 100644 index 00000000..0a37fa15 --- /dev/null +++ b/dist/default/ui/play-button/play-button.js.map @@ -0,0 +1 @@ +{"version":3,"file":"play-button.js","names":[],"sources":["../../../../src/ui/play-button/play-button.tsx"],"sourcesContent":["'use client';\n\nimport { PlayButtonCore, PlayButtonDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PlayButtonProps extends UIComponentProps<'button', PlayButtonCore.State>, PlayButtonCore.Props {}\n\n/**\n * A button that toggles playback.\n *\n * @example\n * ```tsx\n * \n *\n * (\n * \n * )}\n * />\n * ```\n */\nexport const PlayButton = createMediaButton({\n displayName: 'PlayButton',\n core: PlayButtonCore,\n stateAttrMap: PlayButtonDataAttrs,\n selector: selectPlayback,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'togglePaused',\n});\n\nexport namespace PlayButton {\n export type Props = PlayButtonProps;\n export type State = PlayButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0BA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;AAChB,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/playback-rate-button/index.js b/dist/default/ui/playback-rate-button/index.js new file mode 100644 index 00000000..e90520b5 --- /dev/null +++ b/dist/default/ui/playback-rate-button/index.js @@ -0,0 +1,2 @@ +import { PlaybackRateButton } from "./playback-rate-button.js"; +export { PlaybackRateButton }; diff --git a/dist/default/ui/playback-rate-button/playback-rate-button.js b/dist/default/ui/playback-rate-button/playback-rate-button.js new file mode 100644 index 00000000..d2b84a6f --- /dev/null +++ b/dist/default/ui/playback-rate-button/playback-rate-button.js @@ -0,0 +1,33 @@ +"use client"; +import { createMediaButton } from "../create-media-button.js"; +import { selectPlaybackRate } from "@videojs/core/dom"; +import { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from "@videojs/core"; +//#region src/ui/playback-rate-button/playback-rate-button.tsx +/** +* A button that cycles through playback rates. +* +* @example +* ```tsx +* +* +* ( +* +* )} +* /> +* ``` +*/ +const PlaybackRateButton = createMediaButton({ + displayName: "PlaybackRateButton", + core: PlaybackRateButtonCore, + stateAttrMap: PlaybackRateButtonDataAttrs, + selector: selectPlaybackRate, + action: (core, state) => core.cycle(state), + hotkeyAction: "speedUp" +}); +//#endregion +export { PlaybackRateButton }; + +//# sourceMappingURL=playback-rate-button.js.map \ No newline at end of file diff --git a/dist/default/ui/playback-rate-button/playback-rate-button.js.map b/dist/default/ui/playback-rate-button/playback-rate-button.js.map new file mode 100644 index 00000000..1d33ad03 --- /dev/null +++ b/dist/default/ui/playback-rate-button/playback-rate-button.js.map @@ -0,0 +1 @@ +{"version":3,"file":"playback-rate-button.js","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button.tsx"],"sourcesContent":["'use client';\n\nimport { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PlaybackRateButtonProps\n extends UIComponentProps<'button', PlaybackRateButtonCore.State>,\n PlaybackRateButtonCore.Props {}\n\n/**\n * A button that cycles through playback rates.\n *\n * @example\n * ```tsx\n * \n *\n * (\n * \n * )}\n * />\n * ```\n */\nexport const PlaybackRateButton = createMediaButton({\n displayName: 'PlaybackRateButton',\n core: PlaybackRateButtonCore,\n stateAttrMap: PlaybackRateButtonDataAttrs,\n selector: selectPlaybackRate,\n action: (core, state) => core.cycle(state),\n hotkeyAction: 'speedUp',\n});\n\nexport namespace PlaybackRateButton {\n export type Props = PlaybackRateButtonProps;\n export type State = PlaybackRateButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,qBAAqB,kBAAmE;CACnG,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,MAAM,KAAK;CACzC,cAAc;AAChB,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/playback-rate/index.js b/dist/default/ui/playback-rate/index.js new file mode 100644 index 00000000..542517cd --- /dev/null +++ b/dist/default/ui/playback-rate/index.js @@ -0,0 +1,2 @@ +import { usePlaybackRateOptions } from "./use-playback-rate-options.js"; +export { usePlaybackRateOptions }; diff --git a/dist/default/ui/playback-rate/use-playback-rate-options.js b/dist/default/ui/playback-rate/use-playback-rate-options.js new file mode 100644 index 00000000..931aad29 --- /dev/null +++ b/dist/default/ui/playback-rate/use-playback-rate-options.js @@ -0,0 +1,40 @@ +"use client"; +import { usePlayer } from "../../player/context.js"; +import { selectPlaybackRate } from "@videojs/core/dom"; +import { useCallback, useState } from "react"; +import { PlaybackRateRadioGroupCore } from "@videojs/core"; +//#region src/ui/playback-rate/use-playback-rate-options.ts +/** +* Create playback rate menu options from the player playback rate state. +* Returns `null` when the playback rate feature is not configured. +* +* @param props - Optional `label`, `formatRate`, and `disabled` overrides. +*/ +function usePlaybackRateOptions(props) { + const media = usePlayer(selectPlaybackRate); + const [core] = useState(() => new PlaybackRateRadioGroupCore()); + core.setProps(props ?? {}); + const setRate = useCallback((rate) => core.select(media, rate), [core, media]); + const setValue = useCallback((value) => core.selectValue(media, value), [core, media]); + if (!media) return null; + core.setMedia(media); + const state = core.getState(); + return { + state, + rate: state.rate, + value: core.getRateValue(state.rate), + options: state.rates.map((rate) => ({ + rate, + value: core.getRateValue(rate), + label: core.getRateLabel(rate), + disabled: state.disabled + })), + disabled: state.disabled, + setRate, + setValue + }; +} +//#endregion +export { usePlaybackRateOptions }; + +//# sourceMappingURL=use-playback-rate-options.js.map \ No newline at end of file diff --git a/dist/default/ui/playback-rate/use-playback-rate-options.js.map b/dist/default/ui/playback-rate/use-playback-rate-options.js.map new file mode 100644 index 00000000..9403accc --- /dev/null +++ b/dist/default/ui/playback-rate/use-playback-rate-options.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-playback-rate-options.js","names":["PlaybackRateRadioGroupCoreClass"],"sources":["../../../../src/ui/playback-rate/use-playback-rate-options.ts"],"sourcesContent":["'use client';\n\nimport {\n type PlaybackRateRadioGroupCore,\n PlaybackRateRadioGroupCore as PlaybackRateRadioGroupCoreClass,\n} from '@videojs/core';\nimport { logMissingFeature, selectPlaybackRate } from '@videojs/core/dom';\nimport { useCallback, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\n\nexport interface PlaybackRateOptionsProps extends PlaybackRateRadioGroupCore.Props {}\n\nexport interface PlaybackRateOption {\n rate: number;\n value: string;\n label: string;\n disabled: boolean;\n}\n\nexport interface PlaybackRateOptionsResult {\n state: PlaybackRateRadioGroupCore.State;\n rate: number;\n value: string;\n options: PlaybackRateOption[];\n disabled: boolean;\n setRate: (rate: number) => void;\n setValue: (value: string) => void;\n}\n\n/**\n * Create playback rate menu options from the player playback rate state.\n * Returns `null` when the playback rate feature is not configured.\n *\n * @param props - Optional `label`, `formatRate`, and `disabled` overrides.\n */\nexport function usePlaybackRateOptions(props?: PlaybackRateOptionsProps): PlaybackRateOptionsResult | null {\n const media = usePlayer(selectPlaybackRate);\n const [core] = useState(() => new PlaybackRateRadioGroupCoreClass());\n\n core.setProps(props ?? {});\n\n const setRate = useCallback((rate: number) => core.select(media!, rate), [core, media]);\n const setValue = useCallback((value: string) => core.selectValue(media!, value), [core, media]);\n\n if (!media) {\n if (__DEV__) logMissingFeature('usePlaybackRateOptions', selectPlaybackRate.displayName ?? 'playbackRate');\n return null;\n }\n\n core.setMedia(media);\n const state = core.getState();\n\n return {\n state,\n rate: state.rate,\n value: core.getRateValue(state.rate),\n options: state.rates.map((rate) => ({\n rate,\n value: core.getRateValue(rate),\n label: core.getRateLabel(rate),\n disabled: state.disabled,\n })),\n disabled: state.disabled,\n setRate,\n setValue,\n };\n}\n\nexport namespace usePlaybackRateOptions {\n export type Props = PlaybackRateOptionsProps;\n export type Result = PlaybackRateOptionsResult;\n export type Option = PlaybackRateOption;\n}\n"],"mappings":";;;;;;;;;;;;AAoCA,SAAgB,uBAAuB,OAAoE;CACzG,MAAM,QAAQ,UAAU,kBAAkB;CAC1C,MAAM,CAAC,QAAQ,eAAe,IAAIA,2BAAgC,CAAC;CAEnE,KAAK,SAAS,SAAS,CAAC,CAAC;CAEzB,MAAM,UAAU,aAAa,SAAiB,KAAK,OAAO,OAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;CACtF,MAAM,WAAW,aAAa,UAAkB,KAAK,YAAY,OAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC;CAE9F,IAAI,CAAC,OAEH,OAAO;CAGT,KAAK,SAAS,KAAK;CACnB,MAAM,QAAQ,KAAK,SAAS;CAE5B,OAAO;EACL;EACA,MAAM,MAAM;EACZ,OAAO,KAAK,aAAa,MAAM,IAAI;EACnC,SAAS,MAAM,MAAM,KAAK,UAAU;GAClC;GACA,OAAO,KAAK,aAAa,IAAI;GAC7B,OAAO,KAAK,aAAa,IAAI;GAC7B,UAAU,MAAM;EAClB,EAAE;EACF,UAAU,MAAM;EAChB;EACA;CACF;AACF"} \ No newline at end of file diff --git a/dist/default/ui/popover/context.js b/dist/default/ui/popover/context.js new file mode 100644 index 00000000..f85f6652 --- /dev/null +++ b/dist/default/ui/popover/context.js @@ -0,0 +1,14 @@ +"use client"; +import { createContext, useContext } from "react"; +//#region src/ui/popover/context.tsx +const PopoverContext = createContext(null); +const PopoverContextProvider = PopoverContext.Provider; +function usePopoverContext() { + const ctx = useContext(PopoverContext); + if (!ctx) throw new Error("Popover compound components must be used within a Popover.Root"); + return ctx; +} +//#endregion +export { PopoverContextProvider, usePopoverContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/default/ui/popover/context.js.map b/dist/default/ui/popover/context.js.map new file mode 100644 index 00000000..e0152369 --- /dev/null +++ b/dist/default/ui/popover/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/popover/context.tsx"],"sourcesContent":["'use client';\n\nimport type { PopoverCore, StateAttrMap } from '@videojs/core';\nimport type { MediaContainer, PopoverApi, PositioningBoundary } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface PopoverContextValue {\n core: PopoverCore;\n popover: PopoverApi;\n state: PopoverCore.State;\n preferredSide: PopoverCore.State['side'];\n setPositionedSide: (side: PopoverCore.State['side']) => void;\n stateAttrMap: StateAttrMap;\n anchorName: string;\n popupId: string;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst PopoverContext = createContext(null);\n\nexport const PopoverContextProvider = PopoverContext.Provider;\n\nexport function usePopoverContext(): PopoverContextValue {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error('Popover compound components must be used within a Popover.Root');\n return ctx;\n}\n"],"mappings":";;;AAmBA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,cAAc;CACrC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,gEAAgE;CAC1F,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/ui/popover/index.js b/dist/default/ui/popover/index.js new file mode 100644 index 00000000..3d82bd1a --- /dev/null +++ b/dist/default/ui/popover/index.js @@ -0,0 +1,3 @@ +import { usePopoverContext } from "./context.js"; +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as Popover, usePopoverContext }; diff --git a/dist/default/ui/popover/index.parts.js b/dist/default/ui/popover/index.parts.js new file mode 100644 index 00000000..92fb9924 --- /dev/null +++ b/dist/default/ui/popover/index.parts.js @@ -0,0 +1,16 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { PopoverArrow } from "./popover-arrow.js"; +import { PopoverPopup } from "./popover-popup.js"; +import { PopoverRoot } from "./popover-root.js"; +import { PopoverTrigger } from "./popover-trigger.js"; +//#region src/ui/popover/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Arrow: () => PopoverArrow, + Popup: () => PopoverPopup, + Root: () => PopoverRoot, + Trigger: () => PopoverTrigger +}); +//#endregion +export { PopoverArrow as Arrow, PopoverPopup as Popup, PopoverRoot as Root, PopoverTrigger as Trigger, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/default/ui/popover/index.parts.js.map b/dist/default/ui/popover/index.parts.js.map new file mode 100644 index 00000000..612d7e70 --- /dev/null +++ b/dist/default/ui/popover/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/popover/index.parts.ts"],"sourcesContent":["export { PopoverArrow as Arrow, type PopoverArrowProps as ArrowProps } from './popover-arrow';\nexport { PopoverPopup as Popup, type PopoverPopupProps as PopupProps } from './popover-popup';\nexport { PopoverRoot as Root, type PopoverRootProps as RootProps } from './popover-root';\nexport { PopoverTrigger as Trigger, type PopoverTriggerProps as TriggerProps } from './popover-trigger';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/default/ui/popover/popover-arrow.js b/dist/default/ui/popover/popover-arrow.js new file mode 100644 index 00000000..9d67f572 --- /dev/null +++ b/dist/default/ui/popover/popover-arrow.js @@ -0,0 +1,15 @@ +"use client"; +import { createContextPart } from "../create-context-part.js"; +import { usePopoverContext } from "./context.js"; +//#region src/ui/popover/popover-arrow.tsx +/** Decorative arrow pointing from the popup toward the trigger. Hidden from assistive technology. */ +const PopoverArrow = createContextPart({ + displayName: "PopoverArrow", + tag: "div", + useContext: usePopoverContext, + staticProps: { "aria-hidden": "true" } +}); +//#endregion +export { PopoverArrow }; + +//# sourceMappingURL=popover-arrow.js.map \ No newline at end of file diff --git a/dist/default/ui/popover/popover-arrow.js.map b/dist/default/ui/popover/popover-arrow.js.map new file mode 100644 index 00000000..9a0f1ec0 --- /dev/null +++ b/dist/default/ui/popover/popover-arrow.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-arrow.js","names":[],"sources":["../../../../src/ui/popover/popover-arrow.tsx"],"sourcesContent":["'use client';\n\nimport type { PopoverState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { usePopoverContext } from './context';\n\nexport interface PopoverArrowProps extends UIComponentProps<'div', PopoverState> {}\n\n/** Decorative arrow pointing from the popup toward the trigger. Hidden from assistive technology. */\nexport const PopoverArrow = createContextPart({\n displayName: 'PopoverArrow',\n tag: 'div',\n useContext: usePopoverContext,\n staticProps: { 'aria-hidden': 'true' as const },\n});\n\nexport namespace PopoverArrow {\n export type Props = PopoverArrowProps;\n export type State = PopoverState;\n}\n"],"mappings":";;;;;AAWA,MAAa,eAAe,kBAAmD;CAC7E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,aAAa,EAAE,eAAe,OAAgB;AAChD,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/popover/popover-popup.js b/dist/default/ui/popover/popover-popup.js new file mode 100644 index 00000000..631549ef --- /dev/null +++ b/dist/default/ui/popover/popover-popup.js @@ -0,0 +1,126 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { renderElement } from "../../utils/use-render.js"; +import { usePopoverContext } from "./context.js"; +import { getAnchorPositionStyle, getPopupPositionRect, getPositionedSide, getPositioningBoundaryRect, isEventWithinElement, resolveOffsets, resolvePositioningBoundary } from "@videojs/core/dom"; +import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from "react"; +import { supportsAnchorPositioning } from "@videojs/utils/dom"; +//#region src/ui/popover/popover-popup.tsx +const POPOVER_RESET = { + position: "fixed", + inset: "auto", + margin: 0 +}; +/** Container for the popover content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */ +const PopoverPopup = forwardRef(function PopoverPopup({ render, className, style, ...elementProps }, forwardedRef) { + const { core, popover, state, preferredSide, setPositionedSide, stateAttrMap, anchorName, popupId, boundary, container } = usePopoverContext(); + const internalRef = useRef(null); + const composedRef = useComposedRefs(forwardedRef, useCallback((el) => { + popover.setPopupElement(el); + if (el && supportsAnchorPositioning()) el.style.setProperty("position-anchor", `--${anchorName}`); + }, [popover, anchorName]), internalRef); + const posOpts = useMemo(() => ({ + side: preferredSide, + align: state.align + }), [preferredSide, state.align]); + const anchorStyle = useMemo(() => { + if (!supportsAnchorPositioning()) return null; + const { positionAnchor: _, ...rest } = getAnchorPositionStyle(anchorName, posOpts); + return rest; + }, [anchorName, posOpts]); + const [position, setPosition] = useState(null); + useLayoutEffect(() => { + if (!state.open) { + setPosition(null); + return; + } + function measure() { + const triggerEl = popover.triggerElement; + const popupEl = internalRef.current; + if (!triggerEl || !popupEl) return; + const triggerRect = triggerEl.getBoundingClientRect(); + const root = popupEl.getRootNode(); + const boundaryElement = resolvePositioningBoundary(boundary, { + container, + root + }); + const popupRect = getPopupPositionRect(popupEl, posOpts.side); + const boundaryRect = getPositioningBoundaryRect(boundaryElement); + const offsets = resolveOffsets(popupEl); + const side = getPositionedSide(triggerRect, popupRect, boundaryRect, posOpts, offsets); + const { positionAnchor: _, ...nextStyle } = getAnchorPositionStyle(anchorName, { + ...posOpts, + side + }, triggerRect, supportsAnchorPositioning() ? void 0 : popupRect, boundaryRect, offsets); + setPosition(nextStyle); + setPositionedSide(side); + } + measure(); + const triggerEl = popover.triggerElement; + const popupEl = internalRef.current; + const boundaryElement = popupEl ? resolvePositioningBoundary(boundary, { + container, + root: popupEl.getRootNode() + }) : null; + let rafId = 0; + function reposition(event) { + if (event && isEventWithinElement(event, internalRef.current)) return; + cancelAnimationFrame(rafId); + rafId = requestAnimationFrame(measure); + } + reposition(); + const resizeObserver = typeof ResizeObserver === "function" ? new ResizeObserver(() => { + reposition(); + }) : null; + if (triggerEl && resizeObserver) resizeObserver.observe(triggerEl); + if (popupEl && resizeObserver) resizeObserver.observe(popupEl); + if (boundaryElement && resizeObserver) resizeObserver.observe(boundaryElement); + window.addEventListener("scroll", reposition, { + capture: true, + passive: true + }); + window.addEventListener("resize", reposition); + return () => { + cancelAnimationFrame(rafId); + resizeObserver?.disconnect(); + window.removeEventListener("scroll", reposition, true); + window.removeEventListener("resize", reposition); + }; + }, [ + state.open, + anchorName, + posOpts, + popover, + boundary, + container, + setPositionedSide + ]); + const positioningStyle = position ?? anchorStyle ?? POPOVER_RESET; + if (!state.open) return null; + const { onFocusOut, ...restPopupProps } = popover.popupProps; + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap, + ref: composedRef, + props: [ + { + id: popupId, + style: positioningStyle, + ...core.getPopupAttrs(state) + }, + { + ...restPopupProps, + onBlur: onFocusOut + }, + elementProps + ] + }); +}); +//#endregion +export { PopoverPopup }; + +//# sourceMappingURL=popover-popup.js.map \ No newline at end of file diff --git a/dist/default/ui/popover/popover-popup.js.map b/dist/default/ui/popover/popover-popup.js.map new file mode 100644 index 00000000..b0277b7c --- /dev/null +++ b/dist/default/ui/popover/popover-popup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-popup.js","names":[],"sources":["../../../../src/ui/popover/popover-popup.tsx"],"sourcesContent":["'use client';\n\nimport type { PopoverState } from '@videojs/core';\nimport {\n getAnchorPositionStyle,\n getPopupPositionRect,\n getPositionedSide,\n getPositioningBoundaryRect,\n isEventWithinElement,\n resolveOffsets,\n resolvePositioningBoundary,\n} from '@videojs/core/dom';\nimport { supportsAnchorPositioning } from '@videojs/utils/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { usePopoverContext } from './context';\n\nexport interface PopoverPopupProps extends UIComponentProps<'div', PopoverState> {}\n\nconst POPOVER_RESET: CSSProperties = { position: 'fixed', inset: 'auto', margin: 0 };\n\n/** Container for the popover content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */\nexport const PopoverPopup = forwardRef(function PopoverPopup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const {\n core,\n popover,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap,\n anchorName,\n popupId,\n boundary,\n container,\n } = usePopoverContext();\n const internalRef = useRef(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n popover.setPopupElement(el);\n if (el && supportsAnchorPositioning()) {\n el.style.setProperty('position-anchor', `--${anchorName}`);\n }\n },\n [popover, anchorName]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: preferredSide, align: state.align }), [preferredSide, state.align]);\n\n // CSS Anchor Positioning — computed from state, no measurement needed.\n // `position-anchor` is set imperatively in the ref callback above\n // because React's style prop silently drops unrecognised CSS properties.\n const anchorStyle = useMemo(() => {\n if (!supportsAnchorPositioning()) return null;\n const { positionAnchor: _, ...rest } = getAnchorPositionStyle(anchorName, posOpts);\n return rest as CSSProperties;\n }, [anchorName, posOpts]);\n\n // Measure rects after layout, before paint.\n const [position, setPosition] = useState(null);\n\n useLayoutEffect(() => {\n if (!state.open) {\n setPosition(null);\n return;\n }\n\n function measure(): void {\n const triggerEl = popover.triggerElement;\n const popupEl = internalRef.current;\n if (!triggerEl || !popupEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const root = popupEl.getRootNode() as Document | ShadowRoot;\n const boundaryElement = resolvePositioningBoundary(boundary, { container, root });\n const popupRect = getPopupPositionRect(popupEl, posOpts.side);\n const boundaryRect = getPositioningBoundaryRect(boundaryElement);\n const offsets = resolveOffsets(popupEl);\n const side = getPositionedSide(triggerRect, popupRect, boundaryRect, posOpts, offsets);\n\n const { positionAnchor: _, ...nextStyle } = getAnchorPositionStyle(\n anchorName,\n { ...posOpts, side },\n triggerRect,\n supportsAnchorPositioning() ? undefined : popupRect,\n boundaryRect,\n offsets\n );\n\n setPosition(nextStyle as CSSProperties);\n setPositionedSide(side);\n }\n\n measure();\n const triggerEl = popover.triggerElement;\n const popupEl = internalRef.current;\n const boundaryElement = popupEl\n ? resolvePositioningBoundary(boundary, {\n container,\n root: popupEl.getRootNode() as Document | ShadowRoot,\n })\n : null;\n\n let rafId = 0;\n function reposition(event?: Event): void {\n if (event && isEventWithinElement(event, internalRef.current)) return;\n\n cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(measure);\n }\n\n // Re-measure after the popover has entered the top layer and whenever\n // its own size or the trigger size changes.\n reposition();\n\n const resizeObserver =\n typeof ResizeObserver === 'function'\n ? new ResizeObserver(() => {\n reposition();\n })\n : null;\n\n if (triggerEl && resizeObserver) {\n resizeObserver.observe(triggerEl);\n }\n\n if (popupEl && resizeObserver) {\n resizeObserver.observe(popupEl);\n }\n if (boundaryElement && resizeObserver) {\n resizeObserver.observe(boundaryElement);\n }\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true });\n window.addEventListener('resize', reposition);\n\n return () => {\n cancelAnimationFrame(rafId);\n resizeObserver?.disconnect();\n window.removeEventListener('scroll', reposition, true);\n window.removeEventListener('resize', reposition);\n };\n }, [state.open, anchorName, posOpts, popover, boundary, container, setPositionedSide]);\n\n // Use measured styles once available; reset UA [popover] defaults until then.\n const positioningStyle = position ?? anchorStyle ?? POPOVER_RESET;\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n // Remap DOM focus events to React synthetic event names.\n const { onFocusOut, ...restPopupProps } = popover.popupProps;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [\n {\n id: popupId,\n style: positioningStyle,\n ...core.getPopupAttrs(state),\n },\n { ...restPopupProps, onBlur: onFocusOut },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace PopoverPopup {\n export type Props = PopoverPopupProps;\n export type State = PopoverState;\n}\n"],"mappings":";;;;;;;;AAuBA,MAAM,gBAA+B;CAAE,UAAU;CAAS,OAAO;CAAQ,QAAQ;AAAE;;AAGnF,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EACJ,MACA,SACA,OACA,eACA,mBACA,cACA,YACA,SACA,UACA,cACE,kBAAkB;CACtB,MAAM,cAAc,OAAuB,IAAI;CAY/C,MAAM,cAAc,gBAAgB,cAVnB,aACd,OAA8B;EAC7B,QAAQ,gBAAgB,EAAE;EAC1B,IAAI,MAAM,0BAA0B,GAClC,GAAG,MAAM,YAAY,mBAAmB,KAAK,YAAY;CAE7D,GACA,CAAC,SAAS,UAAU,CAGmC,GAAG,WAAW;CAIvE,MAAM,UAAU,eAAe;EAAE,MAAM;EAAe,OAAO,MAAM;CAAM,IAAI,CAAC,eAAe,MAAM,KAAK,CAAC;CAKzG,MAAM,cAAc,cAAc;EAChC,IAAI,CAAC,0BAA0B,GAAG,OAAO;EACzC,MAAM,EAAE,gBAAgB,GAAG,GAAG,SAAS,uBAAuB,YAAY,OAAO;EACjF,OAAO;CACT,GAAG,CAAC,YAAY,OAAO,CAAC;CAGxB,MAAM,CAAC,UAAU,eAAe,SAA+B,IAAI;CAEnE,sBAAsB;EACpB,IAAI,CAAC,MAAM,MAAM;GACf,YAAY,IAAI;GAChB;EACF;EAEA,SAAS,UAAgB;GACvB,MAAM,YAAY,QAAQ;GAC1B,MAAM,UAAU,YAAY;GAC5B,IAAI,CAAC,aAAa,CAAC,SAAS;GAE5B,MAAM,cAAc,UAAU,sBAAsB;GACpD,MAAM,OAAO,QAAQ,YAAY;GACjC,MAAM,kBAAkB,2BAA2B,UAAU;IAAE;IAAW;GAAK,CAAC;GAChF,MAAM,YAAY,qBAAqB,SAAS,QAAQ,IAAI;GAC5D,MAAM,eAAe,2BAA2B,eAAe;GAC/D,MAAM,UAAU,eAAe,OAAO;GACtC,MAAM,OAAO,kBAAkB,aAAa,WAAW,cAAc,SAAS,OAAO;GAErF,MAAM,EAAE,gBAAgB,GAAG,GAAG,cAAc,uBAC1C,YACA;IAAE,GAAG;IAAS;GAAK,GACnB,aACA,0BAA0B,IAAI,KAAA,IAAY,WAC1C,cACA,OACF;GAEA,YAAY,SAA0B;GACtC,kBAAkB,IAAI;EACxB;EAEA,QAAQ;EACR,MAAM,YAAY,QAAQ;EAC1B,MAAM,UAAU,YAAY;EAC5B,MAAM,kBAAkB,UACpB,2BAA2B,UAAU;GACnC;GACA,MAAM,QAAQ,YAAY;EAC5B,CAAC,IACD;EAEJ,IAAI,QAAQ;EACZ,SAAS,WAAW,OAAqB;GACvC,IAAI,SAAS,qBAAqB,OAAO,YAAY,OAAO,GAAG;GAE/D,qBAAqB,KAAK;GAC1B,QAAQ,sBAAsB,OAAO;EACvC;EAIA,WAAW;EAEX,MAAM,iBACJ,OAAO,mBAAmB,aACtB,IAAI,qBAAqB;GACvB,WAAW;EACb,CAAC,IACD;EAEN,IAAI,aAAa,gBACf,eAAe,QAAQ,SAAS;EAGlC,IAAI,WAAW,gBACb,eAAe,QAAQ,OAAO;EAEhC,IAAI,mBAAmB,gBACrB,eAAe,QAAQ,eAAe;EAGxC,OAAO,iBAAiB,UAAU,YAAY;GAAE,SAAS;GAAM,SAAS;EAAK,CAAC;EAC9E,OAAO,iBAAiB,UAAU,UAAU;EAE5C,aAAa;GACX,qBAAqB,KAAK;GAC1B,gBAAgB,WAAW;GAC3B,OAAO,oBAAoB,UAAU,YAAY,IAAI;GACrD,OAAO,oBAAoB,UAAU,UAAU;EACjD;CACF,GAAG;EAAC,MAAM;EAAM;EAAY;EAAS;EAAS;EAAU;EAAW;CAAiB,CAAC;CAGrF,MAAM,mBAAmB,YAAY,eAAe;CAIpD,IAAI,CAAC,MAAM,MACT,OAAO;CAIT,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;CAElD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,KAAK;GAC7B;GACA;IAAE,GAAG;IAAgB,QAAQ;GAAW;GACxC;EACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/popover/popover-root.js b/dist/default/ui/popover/popover-root.js new file mode 100644 index 00000000..5a328c8a --- /dev/null +++ b/dist/default/ui/popover/popover-root.js @@ -0,0 +1,87 @@ +"use client"; +import { useOptionalContainer, useOptionalPopupGroup } from "../../player/context.js"; +import { useLatestRef } from "../../utils/use-latest-ref.js"; +import { useDestroy } from "../../utils/use-destroy.js"; +import { useSafeId } from "../../utils/use-safe-id.js"; +import { useOptionalControlsContext } from "../controls/context.js"; +import { usePositionedState } from "../hooks/use-positioned-state.js"; +import { PopoverContextProvider } from "./context.js"; +import { createPopover, createTransition } from "@videojs/core/dom"; +import { useSnapshot } from "@videojs/store/react"; +import { useEffect, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { isUndefined } from "@videojs/utils/predicate"; +import { PopoverCore, PopoverDataAttrs } from "@videojs/core"; +//#region src/ui/popover/popover-root.tsx +function PopoverRoot({ open: controlledOpen, defaultOpen = PopoverCore.defaultProps.defaultOpen, onOpenChange: onOpenChangeProp, onOpenChangeComplete: onOpenChangeCompleteProp, openOnHover = PopoverCore.defaultProps.openOnHover, delay = PopoverCore.defaultProps.delay, closeDelay = PopoverCore.defaultProps.closeDelay, boundary = "container", children, ...coreProps }) { + const container = useOptionalContainer(); + const popupGroup = useOptionalPopupGroup(); + const controls = useOptionalControlsContext(); + const [core] = useState(() => new PopoverCore(coreProps)); + core.setProps(coreProps); + const isControlled = !isUndefined(controlledOpen); + const onOpenChangeRef = useLatestRef(onOpenChangeProp); + const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp); + const closeOnEscapeRef = useLatestRef(coreProps.closeOnEscape); + const closeOnOutsideClickRef = useLatestRef(coreProps.closeOnOutsideClick); + const openOnHoverRef = useLatestRef(openOnHover); + const delayRef = useLatestRef(delay); + const closeDelayRef = useLatestRef(closeDelay); + const popupGroupRef = useLatestRef(popupGroup); + const [popover] = useState(() => { + const instance = createPopover({ + transition: createTransition(), + onOpenChange: (nextOpen, details) => { + onOpenChangeRef.current?.(nextOpen, details); + }, + onOpenChangeComplete: (nextOpen) => { + onOpenChangeCompleteRef.current?.(nextOpen); + }, + closeOnEscape: () => closeOnEscapeRef.current ?? PopoverCore.defaultProps.closeOnEscape, + closeOnOutsideClick: () => closeOnOutsideClickRef.current ?? PopoverCore.defaultProps.closeOnOutsideClick, + openOnHover: () => openOnHoverRef.current, + delay: () => delayRef.current, + closeDelay: () => closeDelayRef.current, + group: () => popupGroupRef.current + }); + if (!isControlled && defaultOpen) instance.open("click"); + return instance; + }); + const anchorName = useSafeId(); + const popupId = useSafeId("popup"); + useEffect(() => { + if (isUndefined(controlledOpen)) return; + const { active: inputOpen } = popover.input.current; + if (controlledOpen === inputOpen) return; + if (controlledOpen) popover.open("click"); + else popover.close("click"); + }, [controlledOpen, popover]); + useEffect(() => { + if (isUndefined(controls?.state.visible)) return; + if (controls.state.visible) return; + popover.close("imperative-action"); + }, [controls?.state.visible, popover]); + useDestroy(popover); + const input = useSnapshot(popover.input); + core.setInput(input); + const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState()); + return /* @__PURE__ */ jsx(PopoverContextProvider, { + value: { + core, + popover, + state, + preferredSide, + setPositionedSide, + stateAttrMap: PopoverDataAttrs, + anchorName, + popupId, + boundary, + container + }, + children + }); +} +//#endregion +export { PopoverRoot }; + +//# sourceMappingURL=popover-root.js.map \ No newline at end of file diff --git a/dist/default/ui/popover/popover-root.js.map b/dist/default/ui/popover/popover-root.js.map new file mode 100644 index 00000000..edf03548 --- /dev/null +++ b/dist/default/ui/popover/popover-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-root.js","names":[],"sources":["../../../../src/ui/popover/popover-root.tsx"],"sourcesContent":["'use client';\n\nimport { type PopoverProps as CorePopoverProps, PopoverCore, PopoverDataAttrs } from '@videojs/core';\nimport {\n createPopover,\n createTransition,\n type PopoverChangeDetails,\n type PositioningBoundary,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\nimport { useOptionalContainer, useOptionalPopupGroup } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { useOptionalControlsContext } from '../controls/context';\nimport { usePositionedState } from '../hooks/use-positioned-state';\nimport { PopoverContextProvider } from './context';\n\nexport interface PopoverRootProps extends CorePopoverProps {\n /** Boundary used to constrain the popup size. */\n boundary?: PositioningBoundary;\n /** Called when the popover open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: PopoverChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function PopoverRoot({\n open: controlledOpen,\n defaultOpen = PopoverCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n openOnHover = PopoverCore.defaultProps.openOnHover,\n delay = PopoverCore.defaultProps.delay,\n closeDelay = PopoverCore.defaultProps.closeDelay,\n boundary = 'container',\n children,\n ...coreProps\n}: PopoverRootProps): ReactNode {\n const container = useOptionalContainer();\n const popupGroup = useOptionalPopupGroup();\n const controls = useOptionalControlsContext();\n const [core] = useState(() => new PopoverCore(coreProps));\n core.setProps(coreProps);\n\n const isControlled = !isUndefined(controlledOpen);\n\n // Keep refs that always point to the latest values so the\n // createPopover closure never reads stale props.\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n const closeOnEscapeRef = useLatestRef(coreProps.closeOnEscape);\n const closeOnOutsideClickRef = useLatestRef(coreProps.closeOnOutsideClick);\n const openOnHoverRef = useLatestRef(openOnHover);\n const delayRef = useLatestRef(delay);\n const closeDelayRef = useLatestRef(closeDelay);\n const popupGroupRef = useLatestRef(popupGroup);\n\n const [popover] = useState(() => {\n const instance = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n closeOnEscape: () => closeOnEscapeRef.current ?? PopoverCore.defaultProps.closeOnEscape,\n closeOnOutsideClick: () => closeOnOutsideClickRef.current ?? PopoverCore.defaultProps.closeOnOutsideClick,\n openOnHover: () => openOnHoverRef.current,\n delay: () => delayRef.current,\n closeDelay: () => closeDelayRef.current,\n group: () => popupGroupRef.current,\n });\n\n // Apply defaultOpen on creation (uncontrolled only)\n if (!isControlled && defaultOpen) {\n instance.open('click');\n }\n\n return instance;\n });\n\n const anchorName = useSafeId();\n const popupId = useSafeId('popup');\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (isUndefined(controlledOpen)) return;\n\n const { active: inputOpen } = popover.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n popover.open('click');\n } else {\n popover.close('click');\n }\n }, [controlledOpen, popover]);\n\n useEffect(() => {\n if (isUndefined(controls?.state.visible)) return;\n if (controls.state.visible) return;\n\n popover.close('imperative-action');\n }, [controls?.state.visible, popover]);\n\n useDestroy(popover);\n\n const input = useSnapshot(popover.input);\n core.setInput(input);\n const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState());\n\n return (\n \n {children}\n \n );\n}\n\nexport namespace PopoverRoot {\n export type Props = PopoverRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA+BA,SAAgB,YAAY,EAC1B,MAAM,gBACN,cAAc,YAAY,aAAa,aACvC,cAAc,kBACd,sBAAsB,0BACtB,cAAc,YAAY,aAAa,aACvC,QAAQ,YAAY,aAAa,OACjC,aAAa,YAAY,aAAa,YACtC,WAAW,aACX,UACA,GAAG,aAC2B;CAC9B,MAAM,YAAY,qBAAqB;CACvC,MAAM,aAAa,sBAAsB;CACzC,MAAM,WAAW,2BAA2B;CAC5C,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,SAAS,CAAC;CACxD,KAAK,SAAS,SAAS;CAEvB,MAAM,eAAe,CAAC,YAAY,cAAc;CAIhD,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CACrE,MAAM,mBAAmB,aAAa,UAAU,aAAa;CAC7D,MAAM,yBAAyB,aAAa,UAAU,mBAAmB;CACzE,MAAM,iBAAiB,aAAa,WAAW;CAC/C,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,gBAAgB,aAAa,UAAU;CAC7C,MAAM,gBAAgB,aAAa,UAAU;CAE7C,MAAM,CAAC,WAAW,eAAe;EAC/B,MAAM,WAAW,cAAc;GAC7B,YAAY,iBAAiB;GAC7B,eAAe,UAAmB,YAAkC;IAClE,gBAAgB,UAAU,UAAU,OAAO;GAC7C;GACA,uBAAuB,aAAsB;IAC3C,wBAAwB,UAAU,QAAQ;GAC5C;GACA,qBAAqB,iBAAiB,WAAW,YAAY,aAAa;GAC1E,2BAA2B,uBAAuB,WAAW,YAAY,aAAa;GACtF,mBAAmB,eAAe;GAClC,aAAa,SAAS;GACtB,kBAAkB,cAAc;GAChC,aAAa,cAAc;EAC7B,CAAC;EAGD,IAAI,CAAC,gBAAgB,aACnB,SAAS,KAAK,OAAO;EAGvB,OAAO;CACT,CAAC;CAED,MAAM,aAAa,UAAU;CAC7B,MAAM,UAAU,UAAU,OAAO;CAGjC,gBAAgB;EACd,IAAI,YAAY,cAAc,GAAG;EAEjC,MAAM,EAAE,QAAQ,cAAc,QAAQ,MAAM;EAC5C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBACF,QAAQ,KAAK,OAAO;OAEpB,QAAQ,MAAM,OAAO;CAEzB,GAAG,CAAC,gBAAgB,OAAO,CAAC;CAE5B,gBAAgB;EACd,IAAI,YAAY,UAAU,MAAM,OAAO,GAAG;EAC1C,IAAI,SAAS,MAAM,SAAS;EAE5B,QAAQ,MAAM,mBAAmB;CACnC,GAAG,CAAC,UAAU,MAAM,SAAS,OAAO,CAAC;CAErC,WAAW,OAAO;CAElB,MAAM,QAAQ,YAAY,QAAQ,KAAK;CACvC,KAAK,SAAS,KAAK;CACnB,MAAM,EAAE,OAAO,eAAe,sBAAsB,mBAAmB,KAAK,SAAS,CAAC;CAEtF,OACE,oBAAC,wBAAD;EACE,OAAO;GACL;GACA;GACA;GACA;GACA;GACA,cAAc;GACd;GACA;GACA;GACA;EACF;EAEC;CACqB,CAAA;AAE5B"} \ No newline at end of file diff --git a/dist/default/ui/popover/popover-trigger.js b/dist/default/ui/popover/popover-trigger.js new file mode 100644 index 00000000..fd093564 --- /dev/null +++ b/dist/default/ui/popover/popover-trigger.js @@ -0,0 +1,40 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { usePopoverContext } from "./context.js"; +import { forwardRef, useCallback } from "react"; +import { supportsAnchorPositioning } from "@videojs/utils/dom"; +//#region src/ui/popover/popover-trigger.tsx +/** Button that toggles the popover visibility. Renders a ` +* )} +* /> +* ``` +*/ +const SeekButton = createMediaButton({ + displayName: "SeekButton", + core: SeekButtonCore, + stateAttrMap: SeekButtonDataAttrs, + selector: selectTime, + action: (core, state) => core.seek(state), + hotkeyAction: "seekStep", + hotkeyValue: (props) => typeof props.seconds === "number" ? props.seconds : SeekButtonCore.defaultProps.seconds +}); +//#endregion +export { SeekButton }; + +//# sourceMappingURL=seek-button.js.map \ No newline at end of file diff --git a/dist/default/ui/seek-button/seek-button.js.map b/dist/default/ui/seek-button/seek-button.js.map new file mode 100644 index 00000000..c521ef78 --- /dev/null +++ b/dist/default/ui/seek-button/seek-button.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-button.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"sourcesContent":["'use client';\n\nimport { SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface SeekButtonProps extends UIComponentProps<'button', SeekButtonCore.State>, SeekButtonCore.Props {}\n\n/**\n * A button that seeks forward or backward by a configurable number of seconds.\n *\n * @example\n * ```tsx\n * \n *\n * (\n * \n * )}\n * />\n * ```\n */\nexport const SeekButton = createMediaButton({\n displayName: 'SeekButton',\n core: SeekButtonCore,\n stateAttrMap: SeekButtonDataAttrs,\n selector: selectTime,\n action: (core, state) => core.seek(state),\n hotkeyAction: 'seekStep',\n hotkeyValue: (props) => (typeof props.seconds === 'number' ? props.seconds : SeekButtonCore.defaultProps.seconds),\n});\n\nexport namespace SeekButton {\n export type Props = SeekButtonProps;\n export type State = SeekButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,KAAK,KAAK;CACxC,cAAc;CACd,cAAc,UAAW,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU,eAAe,aAAa;AAC3G,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/seek-indicator/context.js b/dist/default/ui/seek-indicator/context.js new file mode 100644 index 00000000..8acbe4e1 --- /dev/null +++ b/dist/default/ui/seek-indicator/context.js @@ -0,0 +1,20 @@ +"use client"; +import { createContext, useContext } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/ui/seek-indicator/context.tsx +const SeekIndicatorContext = createContext(null); +function SeekIndicatorProvider({ value, children }) { + return /* @__PURE__ */ jsx(SeekIndicatorContext.Provider, { + value, + children + }); +} +function useSeekIndicatorContext() { + const ctx = useContext(SeekIndicatorContext); + if (!ctx) throw new Error("SeekIndicator child compounds must be used within a SeekIndicator.Root"); + return ctx; +} +//#endregion +export { SeekIndicatorProvider, useSeekIndicatorContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/default/ui/seek-indicator/context.js.map b/dist/default/ui/seek-indicator/context.js.map new file mode 100644 index 00000000..ea347fd5 --- /dev/null +++ b/dist/default/ui/seek-indicator/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/seek-indicator/context.tsx"],"sourcesContent":["'use client';\n\nimport type { SeekIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface SeekIndicatorContextValue {\n state: SeekIndicatorCore.State;\n}\n\nconst SeekIndicatorContext = createContext(null);\n\nexport function SeekIndicatorProvider({ value, children }: ProviderProps) {\n return {children};\n}\n\nexport function useSeekIndicatorContext(): SeekIndicatorContextValue {\n const ctx = useContext(SeekIndicatorContext);\n if (!ctx) throw new Error('SeekIndicator child compounds must be used within a SeekIndicator.Root');\n return ctx;\n}\n"],"mappings":";;;;AASA,MAAM,uBAAuB,cAAgD,IAAI;AAEjF,SAAgB,sBAAsB,EAAE,OAAO,YAAsD;CACnG,OAAO,oBAAC,qBAAqB,UAAtB;EAAsC;EAAQ;CAAwC,CAAA;AAC/F;AAEA,SAAgB,0BAAqD;CACnE,MAAM,MAAM,WAAW,oBAAoB;CAC3C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,wEAAwE;CAClG,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/ui/seek-indicator/index.js b/dist/default/ui/seek-indicator/index.js new file mode 100644 index 00000000..651cf136 --- /dev/null +++ b/dist/default/ui/seek-indicator/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as SeekIndicator }; diff --git a/dist/default/ui/seek-indicator/index.parts.js b/dist/default/ui/seek-indicator/index.parts.js new file mode 100644 index 00000000..603b3455 --- /dev/null +++ b/dist/default/ui/seek-indicator/index.parts.js @@ -0,0 +1,12 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { SeekIndicatorRoot } from "./seek-indicator-root.js"; +import { SeekIndicatorValue } from "./seek-indicator-value.js"; +//#region src/ui/seek-indicator/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Root: () => SeekIndicatorRoot, + Value: () => SeekIndicatorValue +}); +//#endregion +export { SeekIndicatorRoot as Root, SeekIndicatorValue as Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/default/ui/seek-indicator/index.parts.js.map b/dist/default/ui/seek-indicator/index.parts.js.map new file mode 100644 index 00000000..d845cc46 --- /dev/null +++ b/dist/default/ui/seek-indicator/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/seek-indicator/index.parts.ts"],"sourcesContent":["export { SeekIndicatorRoot as Root, type SeekIndicatorRootProps as RootProps } from './seek-indicator-root';\nexport { SeekIndicatorValue as Value, type SeekIndicatorValueProps as ValueProps } from './seek-indicator-value';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/default/ui/seek-indicator/seek-indicator-root.js b/dist/default/ui/seek-indicator/seek-indicator-root.js new file mode 100644 index 00000000..657f7577 --- /dev/null +++ b/dist/default/ui/seek-indicator/seek-indicator-root.js @@ -0,0 +1,30 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useInputIndicatorRoot } from "../input-indicators/use-input-indicator-root.js"; +import { SeekIndicatorProvider } from "./context.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { SeekIndicatorCore, SeekIndicatorDataAttrs } from "@videojs/core"; +//#region src/ui/seek-indicator/seek-indicator-root.tsx +const SeekIndicatorRoot = forwardRef(function SeekIndicatorRoot(componentProps, forwardedRef) { + const { render, className, style, closeDelay, ...elementProps } = componentProps; + const { elementRef, present, state } = useInputIndicatorRoot(() => new SeekIndicatorCore(), { closeDelay }); + if (!present) return null; + return /* @__PURE__ */ jsx(SeekIndicatorProvider, { + value: { state }, + children: renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: SeekIndicatorDataAttrs, + ref: [forwardedRef, elementRef], + props: [elementProps] + }) + }); +}); +//#endregion +export { SeekIndicatorRoot }; + +//# sourceMappingURL=seek-indicator-root.js.map \ No newline at end of file diff --git a/dist/default/ui/seek-indicator/seek-indicator-root.js.map b/dist/default/ui/seek-indicator/seek-indicator-root.js.map new file mode 100644 index 00000000..8da8ec98 --- /dev/null +++ b/dist/default/ui/seek-indicator/seek-indicator-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-indicator-root.js","names":[],"sources":["../../../../src/ui/seek-indicator/seek-indicator-root.tsx"],"sourcesContent":["'use client';\n\nimport { SeekIndicatorCore, SeekIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicators/use-input-indicator-root';\nimport { SeekIndicatorProvider } from './context';\n\nexport interface SeekIndicatorRootProps\n extends UIComponentProps<'div', SeekIndicatorCore.State>,\n SeekIndicatorCore.Props {}\n\nexport const SeekIndicatorRoot = forwardRef(function SeekIndicatorRoot(\n componentProps: SeekIndicatorRootProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, closeDelay, ...elementProps } = componentProps;\n const { elementRef, present, state } = useInputIndicatorRoot(() => new SeekIndicatorCore(), { closeDelay });\n\n if (!present) return null;\n\n return (\n \n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SeekIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n \n );\n});\n\nexport namespace SeekIndicatorRoot {\n export type Props = SeekIndicatorRootProps;\n export type State = SeekIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;AAeA,MAAa,oBAAoB,WAAW,SAAS,kBACnD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,GAAG,iBAAiB;CAClE,MAAM,EAAE,YAAY,SAAS,UAAU,4BAA4B,IAAI,kBAAkB,GAAG,EAAE,WAAW,CAAC;CAE1G,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,uBAAD;EAAuB,OAAO,EAAE,MAAM;EACnC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACqB,CAAA;AAE3B,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/seek-indicator/seek-indicator-value.js b/dist/default/ui/seek-indicator/seek-indicator-value.js new file mode 100644 index 00000000..2ad810ba --- /dev/null +++ b/dist/default/ui/seek-indicator/seek-indicator-value.js @@ -0,0 +1,23 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useSeekIndicatorContext } from "./context.js"; +import { forwardRef } from "react"; +import { getSeekIndicatorDisplayValue } from "@videojs/core"; +//#region src/ui/seek-indicator/seek-indicator-value.tsx +const SeekIndicatorValue = forwardRef(function SeekIndicatorValue(componentProps, forwardedRef) { + const { render, className, style, ...elementProps } = componentProps; + const { state } = useSeekIndicatorContext(); + return renderElement("div", { + render, + className, + style + }, { + state, + ref: forwardedRef, + props: [{ children: getSeekIndicatorDisplayValue(state) }, elementProps] + }); +}); +//#endregion +export { SeekIndicatorValue }; + +//# sourceMappingURL=seek-indicator-value.js.map \ No newline at end of file diff --git a/dist/default/ui/seek-indicator/seek-indicator-value.js.map b/dist/default/ui/seek-indicator/seek-indicator-value.js.map new file mode 100644 index 00000000..f33fafb9 --- /dev/null +++ b/dist/default/ui/seek-indicator/seek-indicator-value.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-indicator-value.js","names":[],"sources":["../../../../src/ui/seek-indicator/seek-indicator-value.tsx"],"sourcesContent":["'use client';\n\nimport { getSeekIndicatorDisplayValue, type SeekIndicatorCore } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSeekIndicatorContext } from './context';\n\nexport interface SeekIndicatorValueProps extends UIComponentProps<'div', SeekIndicatorCore.State> {}\n\nexport const SeekIndicatorValue = forwardRef(function SeekIndicatorValue(\n componentProps: SeekIndicatorValueProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state } = useSeekIndicatorContext();\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [{ children: getSeekIndicatorDisplayValue(state) }, elementProps],\n }\n );\n});\n\nexport namespace SeekIndicatorValue {\n export type Props = SeekIndicatorValueProps;\n}\n"],"mappings":";;;;;;AAYA,MAAa,qBAAqB,WAAW,SAAS,mBACpD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,UAAU,wBAAwB;CAE1C,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CAAC,EAAE,UAAU,6BAA6B,KAAK,EAAE,GAAG,YAAY;CACzE,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/slider/context.js b/dist/default/ui/slider/context.js new file mode 100644 index 00000000..af81b560 --- /dev/null +++ b/dist/default/ui/slider/context.js @@ -0,0 +1,20 @@ +"use client"; +import { createContext, useContext } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/ui/slider/context.tsx +const SliderContext = createContext(null); +function SliderProvider({ value, children }) { + return /* @__PURE__ */ jsx(SliderContext.Provider, { + value, + children + }); +} +function useSliderContext() { + const ctx = useContext(SliderContext); + if (!ctx) throw new Error("Slider compound components must be used within a Slider.Root"); + return ctx; +} +//#endregion +export { SliderProvider, useSliderContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/context.js.map b/dist/default/ui/slider/context.js.map new file mode 100644 index 00000000..b2c53e45 --- /dev/null +++ b/dist/default/ui/slider/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport type { ProviderProps, RefCallback } from 'react';\nimport { createContext, useContext } from 'react';\n\nexport interface SliderContextValue {\n state: SliderState;\n /** Pointer position converted to the value domain (not 0–100 percent). */\n pointerValue: number;\n thumbRef: RefCallback;\n thumbProps: SliderThumbProps;\n stateAttrMap: StateAttrMap;\n getAttrs: (state: SliderState) => object;\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SliderContext = createContext(null);\n\ntype SliderProviderProps = ProviderProps;\n\nexport function SliderProvider({ value, children }: SliderProviderProps) {\n return {children};\n}\n\nexport function useSliderContext(): SliderContextValue {\n const ctx = useContext(SliderContext);\n if (!ctx) throw new Error('Slider compound components must be used within a Slider.Root');\n return ctx;\n}\n"],"mappings":";;;;AAkBA,MAAM,gBAAgB,cAAyC,IAAI;AAInE,SAAgB,eAAe,EAAE,OAAO,YAAiC;CACvE,OAAO,oBAAC,cAAc,UAAf;EAA+B;EAAQ;CAAiC,CAAA;AACjF;AAEA,SAAgB,mBAAuC;CACrD,MAAM,MAAM,WAAW,aAAa;CACpC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,8DAA8D;CACxF,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/ui/slider/index.js b/dist/default/ui/slider/index.js new file mode 100644 index 00000000..dc7b8d6c --- /dev/null +++ b/dist/default/ui/slider/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as Slider }; diff --git a/dist/default/ui/slider/index.parts.js b/dist/default/ui/slider/index.parts.js new file mode 100644 index 00000000..be20cba7 --- /dev/null +++ b/dist/default/ui/slider/index.parts.js @@ -0,0 +1,24 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { SliderBuffer } from "./slider-buffer.js"; +import { SliderFill } from "./slider-fill.js"; +import { SliderPreview } from "./slider-preview.js"; +import { SliderRoot } from "./slider-root.js"; +import { SliderThumb } from "./slider-thumb.js"; +import { SliderThumbnail } from "./slider-thumbnail.js"; +import { SliderTrack } from "./slider-track.js"; +import { SliderValue } from "./slider-value.js"; +//#region src/ui/slider/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Buffer: () => SliderBuffer, + Fill: () => SliderFill, + Preview: () => SliderPreview, + Root: () => SliderRoot, + Thumb: () => SliderThumb, + Thumbnail: () => SliderThumbnail, + Track: () => SliderTrack, + Value: () => SliderValue +}); +//#endregion +export { SliderBuffer as Buffer, SliderFill as Fill, SliderPreview as Preview, SliderRoot as Root, SliderThumb as Thumb, SliderThumbnail as Thumbnail, SliderTrack as Track, SliderValue as Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/index.parts.js.map b/dist/default/ui/slider/index.parts.js.map new file mode 100644 index 00000000..6186cf3b --- /dev/null +++ b/dist/default/ui/slider/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/slider/index.parts.ts"],"sourcesContent":["export { SliderBuffer as Buffer, type SliderBufferProps as BufferProps } from './slider-buffer';\nexport { SliderFill as Fill, type SliderFillProps as FillProps } from './slider-fill';\nexport { SliderPreview as Preview, type SliderPreviewProps as PreviewProps } from './slider-preview';\nexport { SliderRoot as Root, type SliderRootProps as RootProps } from './slider-root';\nexport { SliderThumb as Thumb, type SliderThumbProps as ThumbProps } from './slider-thumb';\nexport { SliderThumbnail as Thumbnail, type SliderThumbnailProps as ThumbnailProps } from './slider-thumbnail';\nexport { SliderTrack as Track, type SliderTrackProps as TrackProps } from './slider-track';\nexport { SliderValue as Value, type SliderValueProps as ValueProps } from './slider-value';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/default/ui/slider/slider-buffer.js b/dist/default/ui/slider/slider-buffer.js new file mode 100644 index 00000000..e7b9f165 --- /dev/null +++ b/dist/default/ui/slider/slider-buffer.js @@ -0,0 +1,14 @@ +"use client"; +import { createContextPart } from "../create-context-part.js"; +import { useSliderContext } from "./context.js"; +//#region src/ui/slider/slider-buffer.tsx +/** Displays the buffered range on the slider track. */ +const SliderBuffer = createContextPart({ + displayName: "SliderBuffer", + tag: "div", + useContext: useSliderContext +}); +//#endregion +export { SliderBuffer }; + +//# sourceMappingURL=slider-buffer.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/slider-buffer.js.map b/dist/default/ui/slider/slider-buffer.js.map new file mode 100644 index 00000000..ed3c808c --- /dev/null +++ b/dist/default/ui/slider/slider-buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-buffer.js","names":[],"sources":["../../../../src/ui/slider/slider-buffer.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderBufferProps extends UIComponentProps<'div', SliderState> {}\n\n/** Displays the buffered range on the slider track. */\nexport const SliderBuffer = createContextPart({\n displayName: 'SliderBuffer',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderBuffer {\n export type Props = SliderBufferProps;\n}\n"],"mappings":";;;;;AAWA,MAAa,eAAe,kBAAkD;CAC5E,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/slider/slider-fill.js b/dist/default/ui/slider/slider-fill.js new file mode 100644 index 00000000..03540e8e --- /dev/null +++ b/dist/default/ui/slider/slider-fill.js @@ -0,0 +1,14 @@ +"use client"; +import { createContextPart } from "../create-context-part.js"; +import { useSliderContext } from "./context.js"; +//#region src/ui/slider/slider-fill.tsx +/** Displays the filled portion from start to the current value. */ +const SliderFill = createContextPart({ + displayName: "SliderFill", + tag: "div", + useContext: useSliderContext +}); +//#endregion +export { SliderFill }; + +//# sourceMappingURL=slider-fill.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/slider-fill.js.map b/dist/default/ui/slider/slider-fill.js.map new file mode 100644 index 00000000..8f0fd5ae --- /dev/null +++ b/dist/default/ui/slider/slider-fill.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-fill.js","names":[],"sources":["../../../../src/ui/slider/slider-fill.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderFillProps extends UIComponentProps<'div', SliderState> {}\n\n/** Displays the filled portion from start to the current value. */\nexport const SliderFill = createContextPart({\n displayName: 'SliderFill',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderFill {\n export type Props = SliderFillProps;\n}\n"],"mappings":";;;;;AAWA,MAAa,aAAa,kBAAgD;CACxE,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/slider/slider-preview.js b/dist/default/ui/slider/slider-preview.js new file mode 100644 index 00000000..16da9637 --- /dev/null +++ b/dist/default/ui/slider/slider-preview.js @@ -0,0 +1,38 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useSliderContext } from "./context.js"; +import { getSliderPreviewStyle } from "@videojs/core/dom"; +import { forwardRef, useEffect, useRef, useState } from "react"; +//#region src/ui/slider/slider-preview.tsx +/** Positioning container for preview content that tracks the pointer along the slider. */ +const SliderPreview = forwardRef(function SliderPreview(componentProps, forwardedRef) { + const { render, className, style, overflow = "clamp", ...elementProps } = componentProps; + const context = useSliderContext(); + const { state } = context; + const measureRef = useRef(null); + const [width, setWidth] = useState(0); + useEffect(() => { + const el = measureRef.current; + if (!el) return; + const observer = new ResizeObserver(([entry]) => { + setWidth(entry.contentRect.width); + }); + observer.observe(el); + return () => observer.disconnect(); + }, []); + const positionStyle = getSliderPreviewStyle(width, overflow); + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: context.stateAttrMap, + ref: [forwardedRef, measureRef], + props: [{ style: positionStyle }, elementProps] + }); +}); +//#endregion +export { SliderPreview }; + +//# sourceMappingURL=slider-preview.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/slider-preview.js.map b/dist/default/ui/slider/slider-preview.js.map new file mode 100644 index 00000000..d48235c0 --- /dev/null +++ b/dist/default/ui/slider/slider-preview.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-preview.js","names":[],"sources":["../../../../src/ui/slider/slider-preview.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\nimport type { SliderPreviewOverflow } from '@videojs/core/dom';\nimport { getSliderPreviewStyle } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderPreviewProps extends UIComponentProps<'div', SliderState> {\n /** How the preview handles the slider boundaries. `'clamp'` keeps the preview within bounds, `'visible'` allows it to extend beyond the edges. */\n overflow?: SliderPreviewOverflow | undefined;\n}\n\n/** Positioning container for preview content that tracks the pointer along the slider. */\nexport const SliderPreview = forwardRef(function SliderPreview(\n componentProps: SliderPreviewProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, overflow = 'clamp', ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state } = context;\n\n const measureRef = useRef(null);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n const el = measureRef.current;\n if (!el) return;\n\n const observer = new ResizeObserver(([entry]) => {\n setWidth(entry!.contentRect.width);\n });\n\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n const positionStyle = getSliderPreviewStyle(width, overflow);\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: [forwardedRef, measureRef],\n props: [{ style: positionStyle }, elementProps],\n }\n );\n});\n\nexport namespace SliderPreview {\n export type Props = SliderPreviewProps;\n}\n"],"mappings":";;;;;;;AAkBA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,SAAS,GAAG,iBAAiB;CAE1E,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,UAAU;CAElB,MAAM,aAAa,OAAuB,IAAI;CAC9C,MAAM,CAAC,OAAO,YAAY,SAAS,CAAC;CAEpC,gBAAgB;EACd,MAAM,KAAK,WAAW;EACtB,IAAI,CAAC,IAAI;EAET,MAAM,WAAW,IAAI,gBAAgB,CAAC,WAAW;GAC/C,SAAS,MAAO,YAAY,KAAK;EACnC,CAAC;EAED,SAAS,QAAQ,EAAE;EACnB,aAAa,SAAS,WAAW;CACnC,GAAG,CAAC,CAAC;CAEL,MAAM,gBAAgB,sBAAsB,OAAO,QAAQ;CAE3D,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK,CAAC,cAAc,UAAU;EAC9B,OAAO,CAAC,EAAE,OAAO,cAAc,GAAG,YAAY;CAChD,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/slider/slider-root.js b/dist/default/ui/slider/slider-root.js new file mode 100644 index 00000000..3f0b3d10 --- /dev/null +++ b/dist/default/ui/slider/slider-root.js @@ -0,0 +1,81 @@ +"use client"; +import { useTranslator } from "../../i18n/context.js"; +import { renderElement } from "../../utils/use-render.js"; +import { useSlider } from "../hooks/use-slider.js"; +import { SliderProvider } from "./context.js"; +import { getSliderCSSVars } from "@videojs/core/dom"; +import { translateText } from "@videojs/core/i18n"; +import { forwardRef, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { SliderCore, SliderDataAttrs } from "@videojs/core"; +//#region src/ui/slider/slider-root.tsx +const SliderRoot = forwardRef(function SliderRoot(componentProps, forwardedRef) { + const { render, className, style, label, min, max, step, largeStep, orientation, disabled, thumbAlignment, value = 0, onValueChange, onValueCommit, onDragStart, onDragEnd, ...elementProps } = componentProps; + const [core] = useState(() => new SliderCore()); + const translator = useTranslator(); + core.setProps({ + label, + min, + max, + step, + largeStep, + orientation, + disabled, + thumbAlignment + }); + const { state, cssVars, rootRef, thumbRef: sliderThumbRef, rootProps, rootStyle, thumbProps } = useSlider({ + computeState: (input) => { + core.setInput(input); + return core.getSliderState(value); + }, + getPercent: () => core.percentFromValue(value), + getStepPercent: () => core.getStepPercent(), + getLargeStepPercent: () => core.getLargeStepPercent(), + orientation, + disabled, + adjustPercent: (rawPercent, thumbSize, trackSize) => core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize), + getCSSVars: getSliderCSSVars, + onValueChange: (percent) => onValueChange?.(core.valueFromPercent(percent)), + onValueCommit: (percent) => onValueCommit?.(core.valueFromPercent(percent)), + onDragStart, + onDragEnd + }); + return /* @__PURE__ */ jsx(SliderProvider, { + value: { + state, + pointerValue: core.valueFromPercent(state.pointerPercent), + thumbRef: sliderThumbRef, + thumbProps, + stateAttrMap: SliderDataAttrs, + getAttrs: (sliderState) => { + const attrs = core.getAttrs(sliderState); + return { + ...attrs, + "aria-label": translateText(attrs["aria-label"], translator) + }; + }, + formatValue: void 0 + }, + children: renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: SliderDataAttrs, + ref: [forwardedRef, rootRef], + props: [ + { style: { + ...cssVars, + ...rootStyle + } }, + rootProps, + elementProps + ] + }) + }); +}); +//#endregion +export { SliderRoot }; + +//# sourceMappingURL=slider-root.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/slider-root.js.map b/dist/default/ui/slider/slider-root.js.map new file mode 100644 index 00000000..03f1f343 --- /dev/null +++ b/dist/default/ui/slider/slider-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-root.js","names":[],"sources":["../../../../src/ui/slider/slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport { getSliderCSSVars } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from './context';\n\nexport interface SliderRootProps extends UIComponentProps<'div', SliderCore.State>, SliderCore.Props {\n onValueChange?: ((value: number) => void) | undefined;\n onValueCommit?: ((value: number) => void) | undefined;\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const SliderRoot = forwardRef(function SliderRoot(\n componentProps: SliderRootProps,\n forwardedRef: ForwardedRef\n) {\n const {\n render,\n className,\n style,\n label,\n min,\n max,\n step,\n largeStep,\n orientation,\n disabled,\n thumbAlignment,\n value = 0,\n onValueChange,\n onValueCommit,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new SliderCore());\n const translator = useTranslator();\n core.setProps({ label, min, max, step, largeStep, orientation, disabled, thumbAlignment });\n\n const {\n state,\n cssVars,\n rootRef,\n thumbRef: sliderThumbRef,\n rootProps,\n rootStyle,\n thumbProps,\n } = useSlider({\n computeState: (input) => {\n core.setInput(input);\n return core.getSliderState(value);\n },\n getPercent: () => core.percentFromValue(value),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getSliderCSSVars,\n onValueChange: (percent) => onValueChange?.(core.valueFromPercent(percent)),\n onValueCommit: (percent) => onValueCommit?.(core.valueFromPercent(percent)),\n onDragStart,\n onDragEnd,\n });\n\n return (\n {\n const attrs = core.getAttrs(sliderState);\n return { ...attrs, 'aria-label': translateText(attrs['aria-label'], translator) };\n },\n formatValue: undefined,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n \n );\n});\n\nexport namespace SliderRoot {\n export type Props = SliderRootProps;\n export type State = SliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;AAoBA,MAAa,aAAa,WAAW,SAAS,WAC5C,gBACA,cACA;CACA,MAAM,EACJ,QACA,WACA,OACA,OACA,KACA,KACA,MACA,WACA,aACA,UACA,gBACA,QAAQ,GACR,eACA,eACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,WAAW,CAAC;CAC9C,MAAM,aAAa,cAAc;CACjC,KAAK,SAAS;EAAE;EAAO;EAAK;EAAK;EAAM;EAAW;EAAa;EAAU;CAAe,CAAC;CAEzF,MAAM,EACJ,OACA,SACA,SACA,UAAU,gBACV,WACA,WACA,eACE,UAAU;EACZ,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,OAAO,KAAK,eAAe,KAAK;EAClC;EACA,kBAAkB,KAAK,iBAAiB,KAAK;EAC7C,sBAAsB,KAAK,eAAe;EAC1C,2BAA2B,KAAK,oBAAoB;EACpD;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,gBAAgB,YAAY,gBAAgB,KAAK,iBAAiB,OAAO,CAAC;EAC1E,gBAAgB,YAAY,gBAAgB,KAAK,iBAAiB,OAAO,CAAC;EAC1E;EACA;CACF,CAAC;CAED,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,cAAc;GACxD,UAAU;GACV;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAW;IACvC,OAAO;KAAE,GAAG;KAAO,cAAc,cAAc,MAAM,eAAe,UAAU;IAAE;GAClF;GACA,aAAa,KAAA;EACf;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,OAAO;GAC3B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/slider/slider-thumb.js b/dist/default/ui/slider/slider-thumb.js new file mode 100644 index 00000000..2a834252 --- /dev/null +++ b/dist/default/ui/slider/slider-thumb.js @@ -0,0 +1,30 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useSliderContext } from "./context.js"; +import { forwardRef } from "react"; +//#region src/ui/slider/slider-thumb.tsx +/** Draggable handle for setting the slider value. Receives focus and handles keyboard interaction. */ +const SliderThumb = forwardRef(function SliderThumb(componentProps, forwardedRef) { + const { render, className, style, ...elementProps } = componentProps; + const context = useSliderContext(); + const { state, thumbRef, thumbProps, getAttrs } = context; + const attrs = getAttrs(state); + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: context.stateAttrMap, + ref: [forwardedRef, thumbRef], + props: [ + attrs, + thumbProps, + elementProps + ] + }); +}); +//#endregion +export { SliderThumb }; + +//# sourceMappingURL=slider-thumb.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/slider-thumb.js.map b/dist/default/ui/slider/slider-thumb.js.map new file mode 100644 index 00000000..4494407e --- /dev/null +++ b/dist/default/ui/slider/slider-thumb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-thumb.js","names":[],"sources":["../../../../src/ui/slider/slider-thumb.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderThumbProps extends UIComponentProps<'div', SliderState> {}\n\n/** Draggable handle for setting the slider value. Receives focus and handles keyboard interaction. */\nexport const SliderThumb = forwardRef(function SliderThumb(\n componentProps: SliderThumbProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state, thumbRef, thumbProps, getAttrs } = context;\n const attrs = getAttrs(state);\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: [forwardedRef, thumbRef],\n props: [attrs, thumbProps, elementProps],\n }\n );\n});\n\nexport namespace SliderThumb {\n export type Props = SliderThumbProps;\n}\n"],"mappings":";;;;;;AAaA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CAEtD,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,OAAO,UAAU,YAAY,aAAa;CAClD,MAAM,QAAQ,SAAS,KAAK;CAE5B,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK,CAAC,cAAc,QAAQ;EAC5B,OAAO;GAAC;GAAO;GAAY;EAAY;CACzC,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/slider/slider-thumbnail.js b/dist/default/ui/slider/slider-thumbnail.js new file mode 100644 index 00000000..ddf2281b --- /dev/null +++ b/dist/default/ui/slider/slider-thumbnail.js @@ -0,0 +1,18 @@ +"use client"; +import { useSliderContext } from "./context.js"; +import { Thumbnail } from "../thumbnail/thumbnail.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/ui/slider/slider-thumbnail.tsx +const SliderThumbnail = forwardRef(function SliderThumbnail(componentProps, forwardedRef) { + const { pointerValue } = useSliderContext(); + return /* @__PURE__ */ jsx(Thumbnail, { + ref: forwardedRef, + ...componentProps, + time: pointerValue + }); +}); +//#endregion +export { SliderThumbnail }; + +//# sourceMappingURL=slider-thumbnail.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/slider-thumbnail.js.map b/dist/default/ui/slider/slider-thumbnail.js.map new file mode 100644 index 00000000..df3d9557 --- /dev/null +++ b/dist/default/ui/slider/slider-thumbnail.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-thumbnail.js","names":[],"sources":["../../../../src/ui/slider/slider-thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport type { ThumbnailCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport { Thumbnail, type ThumbnailProps } from '../thumbnail/thumbnail';\nimport { useSliderContext } from './context';\n\nexport interface SliderThumbnailProps extends Omit {}\n\nexport const SliderThumbnail = forwardRef(\n function SliderThumbnail(componentProps, forwardedRef) {\n const { pointerValue } = useSliderContext();\n return ;\n }\n);\n\nexport namespace SliderThumbnail {\n export type Props = SliderThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;AAUA,MAAa,kBAAkB,WAC7B,SAAS,gBAAgB,gBAAgB,cAAc;CACrD,MAAM,EAAE,iBAAiB,iBAAiB;CAC1C,OAAO,oBAAC,WAAD;EAAW,KAAK;EAAc,GAAI;EAAgB,MAAM;CAAe,CAAA;AAChF,CACF"} \ No newline at end of file diff --git a/dist/default/ui/slider/slider-track.js b/dist/default/ui/slider/slider-track.js new file mode 100644 index 00000000..6b233fb4 --- /dev/null +++ b/dist/default/ui/slider/slider-track.js @@ -0,0 +1,14 @@ +"use client"; +import { createContextPart } from "../create-context-part.js"; +import { useSliderContext } from "./context.js"; +//#region src/ui/slider/slider-track.tsx +/** Contains the slider's visual track and interactive hit zone. */ +const SliderTrack = createContextPart({ + displayName: "SliderTrack", + tag: "div", + useContext: useSliderContext +}); +//#endregion +export { SliderTrack }; + +//# sourceMappingURL=slider-track.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/slider-track.js.map b/dist/default/ui/slider/slider-track.js.map new file mode 100644 index 00000000..100b4c3b --- /dev/null +++ b/dist/default/ui/slider/slider-track.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-track.js","names":[],"sources":["../../../../src/ui/slider/slider-track.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderTrackProps extends UIComponentProps<'div', SliderState> {}\n\n/** Contains the slider's visual track and interactive hit zone. */\nexport const SliderTrack = createContextPart({\n displayName: 'SliderTrack',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderTrack {\n export type Props = SliderTrackProps;\n}\n"],"mappings":";;;;;AAWA,MAAa,cAAc,kBAAiD;CAC1E,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/slider/slider-value.js b/dist/default/ui/slider/slider-value.js new file mode 100644 index 00000000..a70abbcf --- /dev/null +++ b/dist/default/ui/slider/slider-value.js @@ -0,0 +1,30 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useSliderContext } from "./context.js"; +import { forwardRef } from "react"; +//#region src/ui/slider/slider-value.tsx +/** Displays a formatted text representation of the slider value. Renders an `` element. */ +const SliderValue = forwardRef(function SliderValue(componentProps, forwardedRef) { + const { render, className, style, type = "current", format, ...elementProps } = componentProps; + const context = useSliderContext(); + const { state, pointerValue, formatValue } = context; + const rawValue = type === "pointer" ? pointerValue : state.value; + const text = format ? format(rawValue) : formatValue ? formatValue(rawValue, type) : String(Math.round(rawValue)); + return renderElement("output", { + render, + className, + style + }, { + state, + stateAttrMap: context.stateAttrMap, + ref: forwardedRef, + props: [{ + "aria-live": "off", + children: text + }, elementProps] + }); +}); +//#endregion +export { SliderValue }; + +//# sourceMappingURL=slider-value.js.map \ No newline at end of file diff --git a/dist/default/ui/slider/slider-value.js.map b/dist/default/ui/slider/slider-value.js.map new file mode 100644 index 00000000..df30ec2f --- /dev/null +++ b/dist/default/ui/slider/slider-value.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-value.js","names":[],"sources":["../../../../src/ui/slider/slider-value.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderValueProps extends UIComponentProps<'output', SliderState> {\n /** Which slider value to display: the current position or the pointer position. */\n type?: 'current' | 'pointer' | undefined;\n /** Custom formatter for the displayed value. Overrides the root's `formatValue`. */\n format?: ((value: number) => string) | undefined;\n}\n\n/** Displays a formatted text representation of the slider value. Renders an `` element. */\nexport const SliderValue = forwardRef(function SliderValue(\n componentProps: SliderValueProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, type = 'current', format, ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state, pointerValue, formatValue } = context;\n\n const rawValue = type === 'pointer' ? pointerValue : state.value;\n\n const text = format ? format(rawValue) : formatValue ? formatValue(rawValue, type) : String(Math.round(rawValue));\n\n return renderElement(\n 'output',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [{ 'aria-live': 'off', children: text }, elementProps],\n }\n );\n});\n\nexport namespace SliderValue {\n export type Props = SliderValueProps;\n}\n"],"mappings":";;;;;;AAkBA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,WAAW,QAAQ,GAAG,iBAAiB;CAEhF,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,OAAO,cAAc,gBAAgB;CAE7C,MAAM,WAAW,SAAS,YAAY,eAAe,MAAM;CAE3D,MAAM,OAAO,SAAS,OAAO,QAAQ,IAAI,cAAc,YAAY,UAAU,IAAI,IAAI,OAAO,KAAK,MAAM,QAAQ,CAAC;CAEhH,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK;EACL,OAAO,CAAC;GAAE,aAAa;GAAO,UAAU;EAAK,GAAG,YAAY;CAC9D,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/status-announcer/index.js b/dist/default/ui/status-announcer/index.js new file mode 100644 index 00000000..d608669d --- /dev/null +++ b/dist/default/ui/status-announcer/index.js @@ -0,0 +1,2 @@ +import { StatusAnnouncer } from "./status-announcer.js"; +export { StatusAnnouncer }; diff --git a/dist/default/ui/status-announcer/status-announcer.js b/dist/default/ui/status-announcer/status-announcer.js new file mode 100644 index 00000000..51a7c16c --- /dev/null +++ b/dist/default/ui/status-announcer/status-announcer.js @@ -0,0 +1,45 @@ +"use client"; +import { useLocale, useTranslator } from "../../i18n/context.js"; +import { useContainer, usePlayer } from "../../player/context.js"; +import { useDestroy } from "../../utils/use-destroy.js"; +import { renderElement } from "../../utils/use-render.js"; +import { isSliderFocused, subscribeToStatusAnnouncer } from "@videojs/core/dom"; +import { forwardRef, useEffect, useState, useSyncExternalStore } from "react"; +import { StatusAnnouncerCore, createStatusAnnouncerLabels } from "@videojs/core"; +//#region src/ui/status-announcer/status-announcer.tsx +const StatusAnnouncer = forwardRef(function StatusAnnouncer(componentProps, forwardedRef) { + const { render, className, style, closeDelay, labels, ...elementProps } = componentProps; + const translator = useTranslator(); + const locale = useLocale(); + const [core] = useState(() => new StatusAnnouncerCore()); + const store = usePlayer(); + const container = useContainer(); + useDestroy(core); + core.setProps({ + closeDelay, + labels: { + ...createStatusAnnouncerLabels(translator, locale), + ...labels + }, + shouldAnnounceSeek: () => !container || !isSliderFocused(container), + shouldAnnounceVolume: () => !container || !isSliderFocused(container) + }); + useEffect(() => subscribeToStatusAnnouncer(store, core), [core, store]); + const state = useSyncExternalStore((callback) => core.state.subscribe(callback), () => core.state.current, () => core.state.current); + return renderElement("div", { + render, + className, + style + }, { + state, + ref: forwardedRef, + props: [elementProps, { + role: "status", + children: state.label ?? "" + }] + }); +}); +//#endregion +export { StatusAnnouncer }; + +//# sourceMappingURL=status-announcer.js.map \ No newline at end of file diff --git a/dist/default/ui/status-announcer/status-announcer.js.map b/dist/default/ui/status-announcer/status-announcer.js.map new file mode 100644 index 00000000..badfc6ed --- /dev/null +++ b/dist/default/ui/status-announcer/status-announcer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"status-announcer.js","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"sourcesContent":["'use client';\n\nimport { createStatusAnnouncerLabels, StatusAnnouncerCore } from '@videojs/core';\nimport { isSliderFocused, subscribeToStatusAnnouncer } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useState, useSyncExternalStore } from 'react';\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { useContainer, usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface StatusAnnouncerProps\n extends UIComponentProps<'div', StatusAnnouncerCore.State>,\n Pick {}\n\nexport const StatusAnnouncer = forwardRef(function StatusAnnouncer(\n componentProps: StatusAnnouncerProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, closeDelay, labels, ...elementProps } = componentProps;\n const translator = useTranslator();\n const locale = useLocale();\n const [core] = useState(() => new StatusAnnouncerCore());\n const store = usePlayer();\n const container = useContainer();\n useDestroy(core);\n core.setProps({\n closeDelay,\n labels: {\n ...createStatusAnnouncerLabels(translator, locale),\n ...labels,\n },\n shouldAnnounceSeek: () => !container || !isSliderFocused(container),\n shouldAnnounceVolume: () => !container || !isSliderFocused(container),\n });\n\n useEffect(() => subscribeToStatusAnnouncer(store, core), [core, store]);\n\n const state = useSyncExternalStore(\n (callback) => core.state.subscribe(callback),\n () => core.state.current,\n () => core.state.current\n );\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [\n elementProps,\n {\n role: 'status',\n children: state.label ?? '',\n },\n ],\n }\n );\n});\n\nexport namespace StatusAnnouncer {\n export type Props = StatusAnnouncerProps;\n export type State = StatusAnnouncerCore.State;\n}\n"],"mappings":";;;;;;;;;AAgBA,MAAa,kBAAkB,WAAW,SAAS,gBACjD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,QAAQ,GAAG,iBAAiB;CAC1E,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CACzB,MAAM,CAAC,QAAQ,eAAe,IAAI,oBAAoB,CAAC;CACvD,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAC/B,WAAW,IAAI;CACf,KAAK,SAAS;EACZ;EACA,QAAQ;GACN,GAAG,4BAA4B,YAAY,MAAM;GACjD,GAAG;EACL;EACA,0BAA0B,CAAC,aAAa,CAAC,gBAAgB,SAAS;EAClE,4BAA4B,CAAC,aAAa,CAAC,gBAAgB,SAAS;CACtE,CAAC;CAED,gBAAgB,2BAA2B,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;CAEtE,MAAM,QAAQ,sBACX,aAAa,KAAK,MAAM,UAAU,QAAQ,SACrC,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CACL,cACA;GACE,MAAM;GACN,UAAU,MAAM,SAAS;EAC3B,CACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/status-indicator/context.js b/dist/default/ui/status-indicator/context.js new file mode 100644 index 00000000..d36dd124 --- /dev/null +++ b/dist/default/ui/status-indicator/context.js @@ -0,0 +1,20 @@ +"use client"; +import { createContext, useContext } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/ui/status-indicator/context.tsx +const StatusIndicatorContext = createContext(null); +function StatusIndicatorProvider({ value, children }) { + return /* @__PURE__ */ jsx(StatusIndicatorContext.Provider, { + value, + children + }); +} +function useStatusIndicatorContext() { + const ctx = useContext(StatusIndicatorContext); + if (!ctx) throw new Error("StatusIndicator child compounds must be used within a StatusIndicator.Root"); + return ctx; +} +//#endregion +export { StatusIndicatorProvider, useStatusIndicatorContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/default/ui/status-indicator/context.js.map b/dist/default/ui/status-indicator/context.js.map new file mode 100644 index 00000000..d6e38bbe --- /dev/null +++ b/dist/default/ui/status-indicator/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/status-indicator/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StatusIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface StatusIndicatorContextValue {\n state: StatusIndicatorCore.State;\n}\n\nconst StatusIndicatorContext = createContext(null);\n\nexport function StatusIndicatorProvider({ value, children }: ProviderProps) {\n return {children};\n}\n\nexport function useStatusIndicatorContext(): StatusIndicatorContextValue {\n const ctx = useContext(StatusIndicatorContext);\n if (!ctx) throw new Error('StatusIndicator child compounds must be used within a StatusIndicator.Root');\n return ctx;\n}\n"],"mappings":";;;;AASA,MAAM,yBAAyB,cAAkD,IAAI;AAErF,SAAgB,wBAAwB,EAAE,OAAO,YAAwD;CACvG,OAAO,oBAAC,uBAAuB,UAAxB;EAAwC;EAAQ;CAA0C,CAAA;AACnG;AAEA,SAAgB,4BAAyD;CACvE,MAAM,MAAM,WAAW,sBAAsB;CAC7C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,4EAA4E;CACtG,OAAO;AACT"} \ No newline at end of file diff --git a/dist/default/ui/status-indicator/index.js b/dist/default/ui/status-indicator/index.js new file mode 100644 index 00000000..8e152015 --- /dev/null +++ b/dist/default/ui/status-indicator/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as StatusIndicator }; diff --git a/dist/default/ui/status-indicator/index.parts.js b/dist/default/ui/status-indicator/index.parts.js new file mode 100644 index 00000000..4cf039f8 --- /dev/null +++ b/dist/default/ui/status-indicator/index.parts.js @@ -0,0 +1,12 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { StatusIndicatorRoot } from "./status-indicator-root.js"; +import { StatusIndicatorValue } from "./status-indicator-value.js"; +//#region src/ui/status-indicator/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Root: () => StatusIndicatorRoot, + Value: () => StatusIndicatorValue +}); +//#endregion +export { StatusIndicatorRoot as Root, StatusIndicatorValue as Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/default/ui/status-indicator/index.parts.js.map b/dist/default/ui/status-indicator/index.parts.js.map new file mode 100644 index 00000000..82646b4d --- /dev/null +++ b/dist/default/ui/status-indicator/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/status-indicator/index.parts.ts"],"sourcesContent":["export {\n StatusIndicatorRoot as Root,\n type StatusIndicatorRootProps as RootProps,\n} from './status-indicator-root';\nexport {\n StatusIndicatorValue as Value,\n type StatusIndicatorValueProps as ValueProps,\n} from './status-indicator-value';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/default/ui/status-indicator/status-indicator-root.js b/dist/default/ui/status-indicator/status-indicator-root.js new file mode 100644 index 00000000..3bdb70c9 --- /dev/null +++ b/dist/default/ui/status-indicator/status-indicator-root.js @@ -0,0 +1,35 @@ +"use client"; +import { useTranslator } from "../../i18n/context.js"; +import { renderElement } from "../../utils/use-render.js"; +import { useInputIndicatorRoot } from "../input-indicators/use-input-indicator-root.js"; +import { StatusIndicatorProvider } from "./context.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { StatusIndicatorCore, StatusIndicatorDataAttrs, createInputIndicatorLabels } from "@videojs/core"; +//#region src/ui/status-indicator/status-indicator-root.tsx +const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(componentProps, forwardedRef) { + const { render, className, style, actions, closeDelay, ...elementProps } = componentProps; + const { elementRef, present, state } = useInputIndicatorRoot(() => new StatusIndicatorCore(), { + actions, + closeDelay, + labels: createInputIndicatorLabels(useTranslator()) + }); + if (!present) return null; + return /* @__PURE__ */ jsx(StatusIndicatorProvider, { + value: { state }, + children: renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: StatusIndicatorDataAttrs, + ref: [forwardedRef, elementRef], + props: [elementProps] + }) + }); +}); +//#endregion +export { StatusIndicatorRoot }; + +//# sourceMappingURL=status-indicator-root.js.map \ No newline at end of file diff --git a/dist/default/ui/status-indicator/status-indicator-root.js.map b/dist/default/ui/status-indicator/status-indicator-root.js.map new file mode 100644 index 00000000..c9c23de6 --- /dev/null +++ b/dist/default/ui/status-indicator/status-indicator-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"status-indicator-root.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"sourcesContent":["'use client';\n\nimport { createInputIndicatorLabels, StatusIndicatorCore, StatusIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicators/use-input-indicator-root';\nimport { StatusIndicatorProvider } from './context';\n\nexport interface StatusIndicatorRootProps\n extends UIComponentProps<'div', StatusIndicatorCore.State>,\n Omit {}\n\nexport const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(\n componentProps: StatusIndicatorRootProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, actions, closeDelay, ...elementProps } = componentProps;\n const translator = useTranslator();\n const { elementRef, present, state } = useInputIndicatorRoot(() => new StatusIndicatorCore(), {\n actions,\n closeDelay,\n labels: createInputIndicatorLabels(translator),\n });\n\n if (!present) return null;\n\n return (\n \n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: StatusIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n \n );\n});\n\nexport namespace StatusIndicatorRoot {\n export type Props = StatusIndicatorRootProps;\n export type State = StatusIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;;AAgBA,MAAa,sBAAsB,WAAW,SAAS,oBACrD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,SAAS,YAAY,GAAG,iBAAiB;CAE3E,MAAM,EAAE,YAAY,SAAS,UAAU,4BAA4B,IAAI,oBAAoB,GAAG;EAC5F;EACA;EACA,QAAQ,2BAJS,cAI2B,CAAC;CAC/C,CAAC;CAED,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,yBAAD;EAAyB,OAAO,EAAE,MAAM;EACrC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACuB,CAAA;AAE7B,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/status-indicator/status-indicator-value.js b/dist/default/ui/status-indicator/status-indicator-value.js new file mode 100644 index 00000000..0663cf79 --- /dev/null +++ b/dist/default/ui/status-indicator/status-indicator-value.js @@ -0,0 +1,23 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useStatusIndicatorContext } from "./context.js"; +import { forwardRef } from "react"; +import { getStatusIndicatorDisplayValue } from "@videojs/core"; +//#region src/ui/status-indicator/status-indicator-value.tsx +const StatusIndicatorValue = forwardRef(function StatusIndicatorValue(componentProps, forwardedRef) { + const { render, className, style, ...elementProps } = componentProps; + const { state } = useStatusIndicatorContext(); + return renderElement("span", { + render, + className, + style + }, { + state, + ref: forwardedRef, + props: [{ children: getStatusIndicatorDisplayValue(state) }, elementProps] + }); +}); +//#endregion +export { StatusIndicatorValue }; + +//# sourceMappingURL=status-indicator-value.js.map \ No newline at end of file diff --git a/dist/default/ui/status-indicator/status-indicator-value.js.map b/dist/default/ui/status-indicator/status-indicator-value.js.map new file mode 100644 index 00000000..9176ecd3 --- /dev/null +++ b/dist/default/ui/status-indicator/status-indicator-value.js.map @@ -0,0 +1 @@ +{"version":3,"file":"status-indicator-value.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-value.tsx"],"sourcesContent":["'use client';\n\nimport { getStatusIndicatorDisplayValue, type StatusIndicatorCore } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useStatusIndicatorContext } from './context';\n\nexport interface StatusIndicatorValueProps extends UIComponentProps<'span', StatusIndicatorCore.State> {}\n\nexport const StatusIndicatorValue = forwardRef(function StatusIndicatorValue(\n componentProps: StatusIndicatorValueProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state } = useStatusIndicatorContext();\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [{ children: getStatusIndicatorDisplayValue(state) }, elementProps],\n }\n );\n});\n\nexport namespace StatusIndicatorValue {\n export type Props = StatusIndicatorValueProps;\n}\n"],"mappings":";;;;;;AAYA,MAAa,uBAAuB,WAAW,SAAS,qBACtD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,UAAU,0BAA0B;CAE5C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CAAC,EAAE,UAAU,+BAA+B,KAAK,EAAE,GAAG,YAAY;CAC3E,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/thumbnail/index.js b/dist/default/ui/thumbnail/index.js new file mode 100644 index 00000000..9e6bffd5 --- /dev/null +++ b/dist/default/ui/thumbnail/index.js @@ -0,0 +1,2 @@ +import { Thumbnail } from "./thumbnail.js"; +export { Thumbnail }; diff --git a/dist/default/ui/thumbnail/thumbnail.js b/dist/default/ui/thumbnail/thumbnail.js new file mode 100644 index 00000000..5c9e3df6 --- /dev/null +++ b/dist/default/ui/thumbnail/thumbnail.js @@ -0,0 +1,82 @@ +"use client"; +import { useOptionalPlayer } from "../../player/context.js"; +import { useDestroy } from "../../utils/use-destroy.js"; +import { renderElement } from "../../utils/use-render.js"; +import { createThumbnail, selectTextTrack } from "@videojs/core/dom"; +import { forwardRef, useMemo, useRef, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { ThumbnailCore, ThumbnailDataAttrs, mapCuesToThumbnails } from "@videojs/core"; +//#region src/ui/thumbnail/thumbnail.tsx +const Thumbnail = forwardRef(function Thumbnail(componentProps, forwardedRef) { + const { render, className, style, time = 0, thumbnails: externalThumbnails, crossOrigin, loading, fetchPriority, ...elementProps } = componentProps; + const [core] = useState(() => new ThumbnailCore()); + const divRef = useRef(null); + const imgRef = useRef(null); + const textTrack = useOptionalPlayer(selectTextTrack); + const [, setRenderToken] = useState(0); + const [handle] = useState(() => createThumbnail({ + getContainer: () => divRef.current, + getImg: () => imgRef.current, + onStateChange: () => setRenderToken((n) => n + 1) + })); + useDestroy(handle, () => handle.connect()); + const thumbnails = useMemo(() => { + if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails; + return textTrack && textTrack.thumbnailCues.length > 0 ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? void 0) : []; + }, [externalThumbnails, textTrack]); + const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [ + core, + thumbnails, + time + ]); + handle.updateSrc(thumbnail?.url); + const state = core.getState(handle.loading, handle.error, thumbnail); + let containerStyle = { overflow: "hidden" }; + let imgStyle; + if (thumbnail && handle.naturalWidth && handle.naturalHeight) { + const constraints = handle.readConstraints(); + const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints); + if (result) { + containerStyle = { + overflow: "hidden", + width: result.containerWidth, + height: result.containerHeight + }; + imgStyle = { + width: result.imageWidth, + height: result.imageHeight, + maxWidth: "none", + transform: result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : void 0 + }; + } + } + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: ThumbnailDataAttrs, + ref: [forwardedRef, divRef], + props: [ + core.getAttrs(state), + { style: containerStyle }, + elementProps, + { children: /* @__PURE__ */ jsx("img", { + ref: imgRef, + alt: "", + "aria-hidden": "true", + decoding: "async", + src: thumbnail?.url, + crossOrigin: crossOrigin === "" || crossOrigin === null ? void 0 : crossOrigin, + loading, + style: imgStyle, + fetchPriority + }) } + ] + }); +}); +//#endregion +export { Thumbnail }; + +//# sourceMappingURL=thumbnail.js.map \ No newline at end of file diff --git a/dist/default/ui/thumbnail/thumbnail.js.map b/dist/default/ui/thumbnail/thumbnail.js.map new file mode 100644 index 00000000..7560292e --- /dev/null +++ b/dist/default/ui/thumbnail/thumbnail.js.map @@ -0,0 +1 @@ +{"version":3,"file":"thumbnail.js","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailFetchPriority,\n type ThumbnailImage,\n} from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {\n /** Pre-parsed thumbnail images — bypasses the automatic `` detection. */\n thumbnails?: ThumbnailImage[] | undefined;\n}\n\nexport const Thumbnail = forwardRef(function Thumbnail(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n time = 0,\n thumbnails: externalThumbnails,\n crossOrigin,\n loading,\n fetchPriority,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new ThumbnailCore());\n const divRef = useRef(null);\n const imgRef = useRef(null);\n const textTrack = useOptionalPlayer(selectTextTrack);\n\n // Force re-render when the handle's state changes (img load/error, resize).\n const [, setRenderToken] = useState(0);\n\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((n) => n + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // Resolve thumbnails: external prop takes priority over auto path.\n const thumbnails = useMemo(() => {\n if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;\n return textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }, [externalThumbnails, textTrack]);\n\n const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [core, thumbnails, time]);\n\n // Track src changes via the handle.\n handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n // Compute styles declaratively from resize result.\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imgStyle: CSSProperties | undefined;\n\n if (thumbnail && handle.naturalWidth && handle.naturalHeight) {\n const constraints = handle.readConstraints();\n const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints);\n\n if (result) {\n containerStyle = {\n overflow: 'hidden',\n width: result.containerWidth,\n height: result.containerHeight,\n };\n imgStyle = {\n width: result.imageWidth,\n height: result.imageHeight,\n maxWidth: 'none',\n transform:\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : undefined,\n };\n }\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [\n core.getAttrs(state),\n { style: containerStyle },\n elementProps,\n {\n children: (\n \n ),\n },\n ],\n }\n );\n});\n\nexport namespace Thumbnail {\n export type Props = ThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;AAuBA,MAAa,YAAY,WAA2C,SAAS,UAAU,gBAAgB,cAAc;CACnH,MAAM,EACJ,QACA,WACA,OACA,OAAO,GACP,YAAY,oBACZ,aACA,SACA,eACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,cAAc,CAAC;CACjD,MAAM,SAAS,OAAuB,IAAI;CAC1C,MAAM,SAAS,OAAyB,IAAI;CAC5C,MAAM,YAAY,kBAAkB,eAAe;CAGnD,MAAM,GAAG,kBAAkB,SAAS,CAAC;CAErC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,MAAM,IAAI,CAAC;CAClD,CAAC,CACH;CAEA,WAAW,cAAc,OAAO,QAAQ,CAAC;CAGzC,MAAM,aAAa,cAAc;EAC/B,IAAI,sBAAsB,mBAAmB,SAAS,GAAG,OAAO;EAChE,OAAO,aAAa,UAAU,cAAc,SAAS,IACjD,oBAAoB,UAAU,eAAe,UAAU,qBAAqB,KAAA,CAAS,IACrF,CAAC;CACP,GAAG,CAAC,oBAAoB,SAAS,CAAC;CAElC,MAAM,YAAY,cAAc,KAAK,oBAAoB,YAAY,IAAI,GAAG;EAAC;EAAM;EAAY;CAAI,CAAC;CAGpG,OAAO,UAAU,WAAW,GAAG;CAE/B,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,SAAS;CAGnE,IAAI,iBAAgC,EAAE,UAAU,SAAS;CACzD,IAAI;CAEJ,IAAI,aAAa,OAAO,gBAAgB,OAAO,eAAe;EAC5D,MAAM,cAAc,OAAO,gBAAgB;EAC3C,MAAM,SAAS,KAAK,OAAO,WAAW,OAAO,cAAc,OAAO,eAAe,WAAW;EAE5F,IAAI,QAAQ;GACV,iBAAiB;IACf,UAAU;IACV,OAAO,OAAO;IACd,QAAQ,OAAO;GACjB;GACA,WAAW;IACT,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU;IACV,WACE,OAAO,WAAW,OAAO,UAAU,cAAc,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAA;GACjG;EACF;CACF;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,MAAM;EAC1B,OAAO;GACL,KAAK,SAAS,KAAK;GACnB,EAAE,OAAO,eAAe;GACxB;GACA,EACE,UACE,oBAAC,OAAD;IACE,KAAK;IACL,KAAI;IACJ,eAAY;IACZ,UAAS;IACT,KAAK,WAAW;IAChB,aAAa,gBAAgB,MAAM,gBAAgB,OAAO,KAAA,IAAY;IAC7D;IACT,OAAO;IAEQ;GAChB,CAAA,EAEL;EACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/time-slider/index.js b/dist/default/ui/time-slider/index.js new file mode 100644 index 00000000..acadad7b --- /dev/null +++ b/dist/default/ui/time-slider/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as TimeSlider }; diff --git a/dist/default/ui/time-slider/index.parts.js b/dist/default/ui/time-slider/index.parts.js new file mode 100644 index 00000000..e08430a3 --- /dev/null +++ b/dist/default/ui/time-slider/index.parts.js @@ -0,0 +1,22 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { SliderBuffer } from "../slider/slider-buffer.js"; +import { SliderFill } from "../slider/slider-fill.js"; +import { SliderPreview } from "../slider/slider-preview.js"; +import { SliderThumb } from "../slider/slider-thumb.js"; +import { SliderTrack } from "../slider/slider-track.js"; +import { SliderValue } from "../slider/slider-value.js"; +import { TimeSliderRoot } from "./time-slider-root.js"; +//#region src/ui/time-slider/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Buffer: () => SliderBuffer, + Fill: () => SliderFill, + Preview: () => SliderPreview, + Root: () => TimeSliderRoot, + Thumb: () => SliderThumb, + Track: () => SliderTrack, + Value: () => SliderValue +}); +//#endregion +export { SliderBuffer as Buffer, SliderFill as Fill, SliderPreview as Preview, TimeSliderRoot as Root, SliderThumb as Thumb, SliderTrack as Track, SliderValue as Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/default/ui/time-slider/index.parts.js.map b/dist/default/ui/time-slider/index.parts.js.map new file mode 100644 index 00000000..189128f6 --- /dev/null +++ b/dist/default/ui/time-slider/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/time-slider/index.parts.ts"],"sourcesContent":["export {\n Buffer,\n type BufferProps,\n Fill,\n type FillProps,\n Preview,\n type PreviewProps,\n Thumb,\n type ThumbProps,\n Track,\n type TrackProps,\n Value,\n type ValueProps,\n} from '../slider/index.parts';\nexport { TimeSliderRoot as Root, type TimeSliderRootProps as RootProps } from './time-slider-root';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/default/ui/time-slider/time-slider-root.js b/dist/default/ui/time-slider/time-slider-root.js new file mode 100644 index 00000000..a4fe8d72 --- /dev/null +++ b/dist/default/ui/time-slider/time-slider-root.js @@ -0,0 +1,122 @@ +"use client"; +import { useLocale, useTranslator } from "../../i18n/context.js"; +import { usePlayer } from "../../player/context.js"; +import { useLatestRef } from "../../utils/use-latest-ref.js"; +import { renderElement } from "../../utils/use-render.js"; +import { useSlider } from "../hooks/use-slider.js"; +import { SliderProvider } from "../slider/context.js"; +import { getTimeSliderCSSVars, selectBuffer, selectPlayback, selectTime } from "@videojs/core/dom"; +import { translateText } from "@videojs/core/i18n"; +import { forwardRef, useEffect, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { TimeSliderCore, TimeSliderDataAttrs } from "@videojs/core"; +import { formatTime } from "@videojs/utils/time"; +//#region src/ui/time-slider/time-slider-root.tsx +const noopSeek = () => Promise.resolve(0); +const TimeSliderRoot = forwardRef(function TimeSliderRoot(componentProps, forwardedRef) { + const { render, className, style, label, changeThrottle = TimeSliderCore.defaultProps.changeThrottle, step = TimeSliderCore.defaultProps.step, largeStep = TimeSliderCore.defaultProps.largeStep, orientation, disabled, thumbAlignment, onDragStart, onDragEnd, pauseOnDrag, ...elementProps } = componentProps; + const time = usePlayer(selectTime); + const buffer = usePlayer(selectBuffer); + const playback = usePlayer(selectPlayback); + const translator = useTranslator(); + const locale = useLocale(); + const [core] = useState(() => new TimeSliderCore()); + core.setProps({ + label, + step, + largeStep, + orientation, + disabled, + thumbAlignment, + pauseOnDrag, + changeThrottle + }); + core.setFormatLocale(locale); + const mediaRef = useLatestRef(time && buffer ? { + ...time, + ...buffer + } : null); + const playbackRef = useLatestRef(playback); + useEffect(() => { + return () => core.endDrag(playbackRef.current); + }, [core]); + const duration = time?.duration ?? 0; + const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider({ + computeState: (input) => { + core.setInput(input); + if (!time || !buffer) core.setMedia({ + currentTime: 0, + duration: 0, + seeking: false, + seek: noopSeek, + buffered: [], + seekable: [] + }); + else core.setMedia({ + ...time, + ...buffer + }); + return core.getState(); + }, + getPercent: () => duration > 0 ? (time?.currentTime ?? 0) / duration * 100 : 0, + getStepPercent: () => core.getStepPercent(), + getLargeStepPercent: () => core.getLargeStepPercent(), + orientation, + disabled, + changeThrottle, + adjustPercent: (rawPercent, thumbSize, trackSize) => core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize), + getCSSVars: getTimeSliderCSSVars, + onValueCommit: (percent) => { + const media = mediaRef.current; + if (media) media.seek(core.rawValueFromPercent(percent)); + }, + onDragStart: () => { + core.startDrag(playbackRef.current); + onDragStart?.(); + }, + onDragEnd: () => { + core.endDrag(playbackRef.current); + onDragEnd?.(); + } + }); + if (!time) return null; + return /* @__PURE__ */ jsx(SliderProvider, { + value: { + state, + pointerValue: core.valueFromPercent(state.pointerPercent), + thumbRef, + thumbProps, + stateAttrMap: TimeSliderDataAttrs, + getAttrs: (sliderState) => { + const attrs = core.getAttrs(sliderState); + return { + ...attrs, + "aria-label": translateText(attrs["aria-label"], translator), + "aria-valuetext": translateText(attrs["aria-valuetext"], translator, core.getValueTextParams(sliderState)) + }; + }, + formatValue: (value) => formatTime(value, duration) + }, + children: renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: TimeSliderDataAttrs, + ref: [forwardedRef, rootRef], + props: [ + { style: { + ...cssVars, + ...rootStyle + } }, + rootProps, + elementProps + ] + }) + }); +}); +//#endregion +export { TimeSliderRoot }; + +//# sourceMappingURL=time-slider-root.js.map \ No newline at end of file diff --git a/dist/default/ui/time-slider/time-slider-root.js.map b/dist/default/ui/time-slider/time-slider-root.js.map new file mode 100644 index 00000000..ee80173c --- /dev/null +++ b/dist/default/ui/time-slider/time-slider-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-slider-root.js","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectPlayback, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { formatTime } from '@videojs/utils/time';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopSeek = (): Promise => Promise.resolve(0);\n\nexport interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const TimeSliderRoot = forwardRef(\n function TimeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle,\n step = TimeSliderCore.defaultProps.step,\n largeStep = TimeSliderCore.defaultProps.largeStep,\n orientation,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n pauseOnDrag,\n ...elementProps\n } = componentProps;\n\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n const playback = usePlayer(selectPlayback);\n const translator = useTranslator();\n const locale = useLocale();\n\n const [core] = useState(() => new TimeSliderCore());\n core.setProps({\n label,\n step,\n largeStep,\n orientation,\n disabled,\n thumbAlignment,\n pauseOnDrag,\n changeThrottle,\n });\n core.setFormatLocale(locale);\n\n // Keep a ref to the latest media state for callbacks that fire outside the render cycle.\n const mediaRef = useLatestRef(time && buffer ? { ...time, ...buffer } : null);\n const playbackRef = useLatestRef(playback);\n\n // Resume playback if the slider unmounts mid-drag — createSlider's destroy()\n // does not fire onDragEnd, so without this the player would stay paused.\n useEffect(() => {\n return () => core.endDrag(playbackRef.current);\n }, [core]);\n\n const duration = time?.duration ?? 0;\n\n const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider({\n computeState: (input) => {\n core.setInput(input);\n if (!time || !buffer) {\n core.setMedia({\n currentTime: 0,\n duration: 0,\n seeking: false,\n seek: noopSeek,\n buffered: [],\n seekable: [],\n });\n } else {\n core.setMedia({ ...time, ...buffer });\n }\n\n return core.getState();\n },\n getPercent: () => (duration > 0 ? ((time?.currentTime ?? 0) / duration) * 100 : 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n changeThrottle,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getTimeSliderCSSVars,\n onValueCommit: (percent) => {\n const media = mediaRef.current;\n if (media) media.seek(core.rawValueFromPercent(percent));\n },\n onDragStart: () => {\n core.startDrag(playbackRef.current);\n onDragStart?.();\n },\n onDragEnd: () => {\n core.endDrag(playbackRef.current);\n onDragEnd?.();\n },\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('TimeSlider', 'time');\n return null;\n }\n\n return (\n {\n const attrs = core.getAttrs(sliderState as TimeSliderCore.State);\n return {\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator),\n 'aria-valuetext': translateText(\n attrs['aria-valuetext'],\n translator,\n core.getValueTextParams(sliderState as TimeSliderCore.State)\n ),\n };\n },\n formatValue: (value) => formatTime(value, duration),\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeSliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n \n );\n }\n);\n\nexport namespace TimeSliderRoot {\n export type Props = TimeSliderRootProps;\n export type State = TimeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAM,iBAAkC,QAAQ,QAAQ,CAAC;AAOzD,MAAa,iBAAiB,WAC5B,SAAS,eAAe,gBAAgB,cAAc;CACpD,MAAM,EACJ,QACA,WACA,OACA,OACA,iBAAiB,eAAe,aAAa,gBAC7C,OAAO,eAAe,aAAa,MACnC,YAAY,eAAe,aAAa,WACxC,aACA,UACA,gBACA,aACA,WACA,aACA,GAAG,iBACD;CAEJ,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,SAAS,UAAU,YAAY;CACrC,MAAM,WAAW,UAAU,cAAc;CACzC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAClD,KAAK,SAAS;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,KAAK,gBAAgB,MAAM;CAG3B,MAAM,WAAW,aAAa,QAAQ,SAAS;EAAE,GAAG;EAAM,GAAG;CAAO,IAAI,IAAI;CAC5E,MAAM,cAAc,aAAa,QAAQ;CAIzC,gBAAgB;EACd,aAAa,KAAK,QAAQ,YAAY,OAAO;CAC/C,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,EAAE,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eAAe,UAAgC;EAC9G,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,IAAI,CAAC,QAAQ,CAAC,QACZ,KAAK,SAAS;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU,CAAC;IACX,UAAU,CAAC;GACb,CAAC;QAED,KAAK,SAAS;IAAE,GAAG;IAAM,GAAG;GAAO,CAAC;GAGtC,OAAO,KAAK,SAAS;EACvB;EACA,kBAAmB,WAAW,KAAM,MAAM,eAAe,KAAK,WAAY,MAAM;EAChF,sBAAsB,KAAK,eAAe;EAC1C,2BAA2B,KAAK,oBAAoB;EACpD;EACA;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,gBAAgB,YAAY;GAC1B,MAAM,QAAQ,SAAS;GACvB,IAAI,OAAO,MAAM,KAAK,KAAK,oBAAoB,OAAO,CAAC;EACzD;EACA,mBAAmB;GACjB,KAAK,UAAU,YAAY,OAAO;GAClC,cAAc;EAChB;EACA,iBAAiB;GACf,KAAK,QAAQ,YAAY,OAAO;GAChC,YAAY;EACd;CACF,CAAC;CAED,IAAI,CAAC,MAEH,OAAO;CAGT,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,cAAc;GACxD;GACA;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAmC;IAC/D,OAAO;KACL,GAAG;KACH,cAAc,cAAc,MAAM,eAAe,UAAU;KAC3D,kBAAkB,cAChB,MAAM,mBACN,YACA,KAAK,mBAAmB,WAAmC,CAC7D;IACF;GACF;GACA,cAAc,UAAU,WAAW,OAAO,QAAQ;EACpD;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,OAAO;GAC3B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CACF"} \ No newline at end of file diff --git a/dist/default/ui/time/index.js b/dist/default/ui/time/index.js new file mode 100644 index 00000000..96b5717d --- /dev/null +++ b/dist/default/ui/time/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as Time }; diff --git a/dist/default/ui/time/index.parts.js b/dist/default/ui/time/index.parts.js new file mode 100644 index 00000000..df9cc516 --- /dev/null +++ b/dist/default/ui/time/index.parts.js @@ -0,0 +1,14 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { Group } from "./time-group.js"; +import { Separator } from "./time-separator.js"; +import { Value } from "./time-value.js"; +//#region src/ui/time/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Group: () => Group, + Separator: () => Separator, + Value: () => Value +}); +//#endregion +export { Group, Separator, Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/default/ui/time/index.parts.js.map b/dist/default/ui/time/index.parts.js.map new file mode 100644 index 00000000..7ae4082d --- /dev/null +++ b/dist/default/ui/time/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/time/index.parts.ts"],"sourcesContent":["export { Group, type GroupProps } from './time-group';\nexport { Separator, type SeparatorProps } from './time-separator';\nexport { Value, type ValueProps } from './time-value';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/default/ui/time/time-group.js b/dist/default/ui/time/time-group.js new file mode 100644 index 00000000..dda286d8 --- /dev/null +++ b/dist/default/ui/time/time-group.js @@ -0,0 +1,32 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { forwardRef } from "react"; +//#region src/ui/time/time-group.tsx +/** +* Container for composed time displays. Renders a `` element. +* +* @example +* ```tsx +* +* +* +* +* +* ``` +*/ +const Group = forwardRef(function Group(componentProps, forwardedRef) { + const { render, className, style, children, ...elementProps } = componentProps; + return renderElement("span", { + render, + className, + style + }, { + state: {}, + ref: [forwardedRef], + props: [{ children }, elementProps] + }); +}); +//#endregion +export { Group }; + +//# sourceMappingURL=time-group.js.map \ No newline at end of file diff --git a/dist/default/ui/time/time-group.js.map b/dist/default/ui/time/time-group.js.map new file mode 100644 index 00000000..74219cd6 --- /dev/null +++ b/dist/default/ui/time/time-group.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-group.js","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"sourcesContent":["'use client';\n\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Group (no dynamic state)\ntype GroupState = Record;\n\nexport interface GroupProps extends UIComponentProps<'span', GroupState> {\n /** Time value components to render inside the group. */\n children?: ReactNode | undefined;\n}\n\n/**\n * Container for composed time displays. Renders a `` element.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * \n * ```\n */\nexport const Group = forwardRef(function Group(\n componentProps: GroupProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const state: GroupState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ children }, elementProps],\n }\n );\n});\n\nexport namespace Group {\n export type Props = GroupProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA4BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAIhE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,SAAS,GAAG,YAAY;CACpC,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/time/time-separator.js b/dist/default/ui/time/time-separator.js new file mode 100644 index 00000000..67e955a9 --- /dev/null +++ b/dist/default/ui/time/time-separator.js @@ -0,0 +1,32 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { forwardRef } from "react"; +//#region src/ui/time/time-separator.tsx +/** +* Divider between time values. Hidden from screen readers. +* +* @example +* ```tsx +* +* of +* ``` +*/ +const Separator = forwardRef(function Separator(componentProps, forwardedRef) { + const { render, className, style, children = "/", ...elementProps } = componentProps; + return renderElement("span", { + render, + className, + style + }, { + state: {}, + ref: [forwardedRef], + props: [{ + "aria-hidden": "true", + children + }, elementProps] + }); +}); +//#endregion +export { Separator }; + +//# sourceMappingURL=time-separator.js.map \ No newline at end of file diff --git a/dist/default/ui/time/time-separator.js.map b/dist/default/ui/time/time-separator.js.map new file mode 100644 index 00000000..bb45a77f --- /dev/null +++ b/dist/default/ui/time/time-separator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-separator.js","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"sourcesContent":["'use client';\n\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Separator (no dynamic state)\ntype SeparatorState = Record;\n\nexport interface SeparatorProps extends UIComponentProps<'span', SeparatorState> {\n /** Separator content. Defaults to \"/\". */\n children?: ReactNode | undefined;\n}\n\n/**\n * Divider between time values. Hidden from screen readers.\n *\n * @example\n * ```tsx\n * \n * of \n * ```\n */\nexport const Separator = forwardRef(function Separator(\n componentProps: SeparatorProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, children = '/', ...elementProps } = componentProps;\n\n const state: SeparatorState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ 'aria-hidden': 'true', children }, elementProps],\n }\n );\n});\n\nexport namespace Separator {\n export type Props = SeparatorProps;\n}\n"],"mappings":";;;;;;;;;;;;;AAyBA,MAAa,YAAY,WAAW,SAAS,UAC3C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,KAAK,GAAG,iBAAiB;CAItE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,eAAe;GAAQ;EAAS,GAAG,YAAY;CAC3D,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/time/time-value.js b/dist/default/ui/time/time-value.js new file mode 100644 index 00000000..bf01ffe9 --- /dev/null +++ b/dist/default/ui/time/time-value.js @@ -0,0 +1,89 @@ +"use client"; +import { useLocale, useTranslator } from "../../i18n/context.js"; +import { usePlayer } from "../../player/context.js"; +import { renderElement } from "../../utils/use-render.js"; +import { selectTime } from "@videojs/core/dom"; +import { translateText } from "@videojs/core/i18n"; +import { forwardRef, useEffect, useState } from "react"; +import { isInteractiveActivation } from "@videojs/utils/dom"; +import { Fragment, jsx, jsxs } from "react/jsx-runtime"; +import { TimeCore, TimeDataAttrs } from "@videojs/core"; +import { remainingSuffixText } from "@videojs/core/i18n/text/time"; +import { formatTimeAsPhrase } from "@videojs/utils/time"; +//#region src/ui/time/time-value.tsx +/** +* Displays a formatted time value (current, duration, or remaining). +* +* @example +* ```tsx +* +* +* +* ``` +*/ +const Value = forwardRef(function Value(componentProps, forwardedRef) { + const { render, className, style, type, negativeSign, label, toggle = false, ...elementProps } = componentProps; + const time = usePlayer(selectTime); + const translator = useTranslator(); + const locale = useLocale(); + const [core] = useState(() => new TimeCore()); + const defaultType = type ?? TimeCore.defaultProps.type; + const [activeType, setActiveType] = useState(defaultType); + useEffect(() => { + setActiveType(defaultType); + }, [defaultType, toggle]); + core.setProps({ + type: activeType, + negativeSign, + label, + toggle + }); + if (!time) return null; + core.setMedia(time); + const state = core.getState(); + const attrs = core.getAttrs(state, defaultType); + const resolvedLabelParams = core.getLabelParams(state) ? { duration: state.type === "remaining" ? translateText(remainingSuffixText, translator, { duration: formatTimeAsPhrase(Math.abs(state.seconds), { locale }) }) : formatTimeAsPhrase(Math.abs(state.seconds), { locale }) } : void 0; + const content = state.negative ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", { + "aria-hidden": "true", + children: negativeSign ?? TimeCore.defaultProps.negativeSign + }), state.text] }) : state.text; + const toggleType = () => { + setActiveType((value) => { + if (defaultType === "current") return value === "remaining" ? "current" : "remaining"; + return value === "duration" ? "remaining" : "duration"; + }); + }; + const handleClick = (event) => { + if (event.defaultPrevented) return; + toggleType(); + }; + const handleKeyDown = (event) => { + if (event.defaultPrevented || !isInteractiveActivation(event.nativeEvent)) return; + event.preventDefault(); + if (event.repeat) return; + toggleType(); + }; + return renderElement("time", { + render, + className, + style + }, { + state, + stateAttrMap: TimeDataAttrs, + ref: [forwardedRef], + props: [{ + dateTime: state.datetime, + children: content, + ...attrs, + "aria-label": translateText(attrs["aria-label"], translator, resolvedLabelParams), + ...toggle ? { + onClick: handleClick, + onKeyDown: handleKeyDown + } : void 0 + }, elementProps] + }); +}); +//#endregion +export { Value }; + +//# sourceMappingURL=time-value.js.map \ No newline at end of file diff --git a/dist/default/ui/time/time-value.js.map b/dist/default/ui/time/time-value.js.map new file mode 100644 index 00000000..565a27e0 --- /dev/null +++ b/dist/default/ui/time/time-value.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-value.js","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"sourcesContent":["'use client';\n\nimport { TimeCore, TimeDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { remainingSuffixText } from '@videojs/core/i18n/text/time';\nimport { isInteractiveActivation } from '@videojs/utils/dom';\nimport { formatTimeAsPhrase } from '@videojs/utils/time';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ValueProps extends Omit, 'children'>, TimeCore.Props {}\n\n/**\n * Displays a formatted time value (current, duration, or remaining).\n *\n * @example\n * ```tsx\n * \n * \n * \n * ```\n */\nexport const Value = forwardRef(function Value(\n componentProps: ValueProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, type, negativeSign, label, toggle = false, ...elementProps } = componentProps;\n\n const time = usePlayer(selectTime);\n const translator = useTranslator();\n const locale = useLocale();\n\n const [core] = useState(() => new TimeCore());\n\n const defaultType = type ?? TimeCore.defaultProps.type;\n const [activeType, setActiveType] = useState(defaultType);\n // biome-ignore lint/correctness/useExhaustiveDependencies: We want to listen for changes to defaultType and toggle (so we revert to default), this just means one less useEffect.\n useEffect(() => {\n setActiveType(defaultType);\n }, [defaultType, toggle]);\n\n core.setProps({\n type: activeType,\n negativeSign,\n label,\n toggle,\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('Time.Value', 'time');\n return null;\n }\n\n core.setMedia(time);\n const state = core.getState();\n const attrs = core.getAttrs(state, defaultType);\n const labelParams = core.getLabelParams(state);\n const resolvedLabelParams = labelParams\n ? {\n duration:\n state.type === 'remaining'\n ? translateText(remainingSuffixText, translator, {\n duration: formatTimeAsPhrase(Math.abs(state.seconds), { locale }),\n })\n : formatTimeAsPhrase(Math.abs(state.seconds), { locale }),\n }\n : undefined;\n\n const content = state.negative ? (\n <>\n {negativeSign ?? TimeCore.defaultProps.negativeSign}\n {state.text}\n \n ) : (\n state.text\n );\n\n const toggleType = () => {\n setActiveType((value) => {\n if (defaultType === 'current') {\n return value === 'remaining' ? 'current' : 'remaining';\n }\n return value === 'duration' ? 'remaining' : 'duration';\n });\n };\n\n const handleClick = (event: MouseEvent) => {\n if (event.defaultPrevented) return;\n toggleType();\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented || !isInteractiveActivation(event.nativeEvent)) return;\n // Prevent space from scrolling page.\n event.preventDefault();\n if (event.repeat) return;\n toggleType();\n };\n\n return renderElement(\n 'time',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeDataAttrs,\n ref: [forwardedRef],\n props: [\n {\n dateTime: state.datetime,\n children: content,\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator, resolvedLabelParams),\n ...(toggle ? { onClick: handleClick, onKeyDown: handleKeyDown } : undefined),\n },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace Value {\n export type Props = ValueProps;\n export type State = TimeCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,cAAc,OAAO,SAAS,OAAO,GAAG,iBAAiB;CAEjG,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,QAAQ,eAAe,IAAI,SAAS,CAAC;CAE5C,MAAM,cAAc,QAAQ,SAAS,aAAa;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,WAAW;CAExD,gBAAgB;EACd,cAAc,WAAW;CAC3B,GAAG,CAAC,aAAa,MAAM,CAAC;CAExB,KAAK,SAAS;EACZ,MAAM;EACN;EACA;EACA;CACF,CAAC;CAED,IAAI,CAAC,MAEH,OAAO;CAGT,KAAK,SAAS,IAAI;CAClB,MAAM,QAAQ,KAAK,SAAS;CAC5B,MAAM,QAAQ,KAAK,SAAS,OAAO,WAAW;CAE9C,MAAM,sBADc,KAAK,eAAe,KACF,IAClC,EACE,UACE,MAAM,SAAS,cACX,cAAc,qBAAqB,YAAY,EAC7C,UAAU,mBAAmB,KAAK,IAAI,MAAM,OAAO,GAAG,EAAE,OAAO,CAAC,EAClE,CAAC,IACD,mBAAmB,KAAK,IAAI,MAAM,OAAO,GAAG,EAAE,OAAO,CAAC,EAC9D,IACA,KAAA;CAEJ,MAAM,UAAU,MAAM,WACpB,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,QAAD;EAAM,eAAY;EAAQ,UAAA,gBAAgB,SAAS,aAAa;CAAmB,CAAA,GAClF,MAAM,IACP,EAAA,CAAA,IAEF,MAAM;CAGR,MAAM,mBAAmB;EACvB,eAAe,UAAU;GACvB,IAAI,gBAAgB,WAClB,OAAO,UAAU,cAAc,YAAY;GAE7C,OAAO,UAAU,aAAa,cAAc;EAC9C,CAAC;CACH;CAEA,MAAM,eAAe,UAAuC;EAC1D,IAAI,MAAM,kBAAkB;EAC5B,WAAW;CACb;CAEA,MAAM,iBAAiB,UAA0C;EAC/D,IAAI,MAAM,oBAAoB,CAAC,wBAAwB,MAAM,WAAW,GAAG;EAE3E,MAAM,eAAe;EACrB,IAAI,MAAM,QAAQ;EAClB,WAAW;CACb;CAEA,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,YAAY;EAClB,OAAO,CACL;GACE,UAAU,MAAM;GAChB,UAAU;GACV,GAAG;GACH,cAAc,cAAc,MAAM,eAAe,YAAY,mBAAmB;GAChF,GAAI,SAAS;IAAE,SAAS;IAAa,WAAW;GAAc,IAAI,KAAA;EACpE,GACA,YACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/context.js b/dist/default/ui/tooltip/context.js new file mode 100644 index 00000000..e640eee5 --- /dev/null +++ b/dist/default/ui/tooltip/context.js @@ -0,0 +1,17 @@ +"use client"; +import { createContext, useContext } from "react"; +//#region src/ui/tooltip/context.tsx +const TooltipContext = createContext(null); +const TooltipContextProvider = TooltipContext.Provider; +function useTooltipContext() { + const ctx = useContext(TooltipContext); + if (!ctx) throw new Error("Tooltip compound components must be used within a Tooltip.Root"); + return ctx; +} +function useOptionalTooltipContext() { + return useContext(TooltipContext); +} +//#endregion +export { TooltipContextProvider, useOptionalTooltipContext, useTooltipContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/context.js.map b/dist/default/ui/tooltip/context.js.map new file mode 100644 index 00000000..c8095eb6 --- /dev/null +++ b/dist/default/ui/tooltip/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap, TooltipCore } from '@videojs/core';\nimport type { MediaContainer, PositioningBoundary, TooltipApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface TooltipContent {\n label?: string | undefined;\n shortcut?: string | undefined;\n}\n\nexport interface TooltipContextValue {\n core: TooltipCore;\n tooltip: TooltipApi;\n state: TooltipCore.State;\n preferredSide: TooltipCore.State['side'];\n setPositionedSide: (side: TooltipCore.State['side']) => void;\n stateAttrMap: StateAttrMap;\n anchorName: string;\n popupId: string;\n content: TooltipContent | undefined;\n setContent: (content: TooltipContent | undefined) => void;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst TooltipContext = createContext(null);\n\nexport const TooltipContextProvider = TooltipContext.Provider;\n\nexport function useTooltipContext(): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) throw new Error('Tooltip compound components must be used within a Tooltip.Root');\n return ctx;\n}\n\nexport function useOptionalTooltipContext(): TooltipContextValue | null {\n return useContext(TooltipContext);\n}\n"],"mappings":";;;AA0BA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,cAAc;CACrC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,gEAAgE;CAC1F,OAAO;AACT;AAEA,SAAgB,4BAAwD;CACtE,OAAO,WAAW,cAAc;AAClC"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/group-context.js b/dist/default/ui/tooltip/group-context.js new file mode 100644 index 00000000..779ac60b --- /dev/null +++ b/dist/default/ui/tooltip/group-context.js @@ -0,0 +1,13 @@ +"use client"; +import { createContext, useContext } from "react"; +//#region src/ui/tooltip/group-context.tsx +const TooltipGroupContext = createContext(null); +const TooltipGroupContextProvider = TooltipGroupContext.Provider; +/** Returns the nearest `TooltipGroupCore`, or `undefined` when used outside a `Tooltip.Provider`. */ +function useTooltipGroup() { + return useContext(TooltipGroupContext)?.group; +} +//#endregion +export { TooltipGroupContextProvider, useTooltipGroup }; + +//# sourceMappingURL=group-context.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/group-context.js.map b/dist/default/ui/tooltip/group-context.js.map new file mode 100644 index 00000000..d2e87313 --- /dev/null +++ b/dist/default/ui/tooltip/group-context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"group-context.js","names":[],"sources":["../../../../src/ui/tooltip/group-context.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipGroupCore } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\ninterface TooltipGroupContextValue {\n group: TooltipGroupCore;\n}\n\nconst TooltipGroupContext = createContext(null);\n\nexport const TooltipGroupContextProvider = TooltipGroupContext.Provider;\n\n/** Returns the nearest `TooltipGroupCore`, or `undefined` when used outside a `Tooltip.Provider`. */\nexport function useTooltipGroup(): TooltipGroupCore | undefined {\n return useContext(TooltipGroupContext)?.group;\n}\n"],"mappings":";;;AASA,MAAM,sBAAsB,cAA+C,IAAI;AAE/E,MAAa,8BAA8B,oBAAoB;;AAG/D,SAAgB,kBAAgD;CAC9D,OAAO,WAAW,mBAAmB,CAAC,EAAE;AAC1C"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/index.js b/dist/default/ui/tooltip/index.js new file mode 100644 index 00000000..a5ad7b49 --- /dev/null +++ b/dist/default/ui/tooltip/index.js @@ -0,0 +1,3 @@ +import { useOptionalTooltipContext, useTooltipContext } from "./context.js"; +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as Tooltip, useOptionalTooltipContext, useTooltipContext }; diff --git a/dist/default/ui/tooltip/index.parts.js b/dist/default/ui/tooltip/index.parts.js new file mode 100644 index 00000000..c2e53a93 --- /dev/null +++ b/dist/default/ui/tooltip/index.parts.js @@ -0,0 +1,22 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { TooltipArrow } from "./tooltip-arrow.js"; +import { TooltipLabel } from "./tooltip-label.js"; +import { TooltipShortcut } from "./tooltip-shortcut.js"; +import { TooltipPopup } from "./tooltip-popup.js"; +import { TooltipProvider } from "./tooltip-provider.js"; +import { TooltipRoot } from "./tooltip-root.js"; +import { TooltipTrigger } from "./tooltip-trigger.js"; +//#region src/ui/tooltip/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Arrow: () => TooltipArrow, + Label: () => TooltipLabel, + Popup: () => TooltipPopup, + Provider: () => TooltipProvider, + Root: () => TooltipRoot, + Shortcut: () => TooltipShortcut, + Trigger: () => TooltipTrigger +}); +//#endregion +export { TooltipArrow as Arrow, TooltipLabel as Label, TooltipPopup as Popup, TooltipProvider as Provider, TooltipRoot as Root, TooltipShortcut as Shortcut, TooltipTrigger as Trigger, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/index.parts.js.map b/dist/default/ui/tooltip/index.parts.js.map new file mode 100644 index 00000000..20c3b930 --- /dev/null +++ b/dist/default/ui/tooltip/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/tooltip/index.parts.ts"],"sourcesContent":["export { TooltipArrow as Arrow, type TooltipArrowProps as ArrowProps } from './tooltip-arrow';\nexport { TooltipLabel as Label, type TooltipLabelProps as LabelProps } from './tooltip-label';\nexport { TooltipPopup as Popup, type TooltipPopupProps as PopupProps } from './tooltip-popup';\nexport { TooltipProvider as Provider, type TooltipProviderProps as ProviderProps } from './tooltip-provider';\nexport { TooltipRoot as Root, type TooltipRootProps as RootProps } from './tooltip-root';\nexport { TooltipShortcut as Shortcut, type TooltipShortcutProps as ShortcutProps } from './tooltip-shortcut';\nexport { TooltipTrigger as Trigger, type TooltipTriggerProps as TriggerProps } from './tooltip-trigger';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-arrow.js b/dist/default/ui/tooltip/tooltip-arrow.js new file mode 100644 index 00000000..947723ef --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-arrow.js @@ -0,0 +1,15 @@ +"use client"; +import { useTooltipContext } from "./context.js"; +import { createContextPart } from "../create-context-part.js"; +//#region src/ui/tooltip/tooltip-arrow.tsx +/** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */ +const TooltipArrow = createContextPart({ + displayName: "TooltipArrow", + tag: "div", + useContext: useTooltipContext, + staticProps: { "aria-hidden": "true" } +}); +//#endregion +export { TooltipArrow }; + +//# sourceMappingURL=tooltip-arrow.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-arrow.js.map b/dist/default/ui/tooltip/tooltip-arrow.js.map new file mode 100644 index 00000000..39f4190d --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-arrow.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-arrow.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-arrow.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipArrowProps extends UIComponentProps<'div', TooltipState> {}\n\n/** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */\nexport const TooltipArrow = createContextPart({\n displayName: 'TooltipArrow',\n tag: 'div',\n useContext: useTooltipContext,\n staticProps: { 'aria-hidden': 'true' as const },\n});\n\nexport namespace TooltipArrow {\n export type Props = TooltipArrowProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;AAWA,MAAa,eAAe,kBAAmD;CAC7E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,aAAa,EAAE,eAAe,OAAgB;AAChD,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-label.js b/dist/default/ui/tooltip/tooltip-label.js new file mode 100644 index 00000000..ec236443 --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-label.js @@ -0,0 +1,24 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useTooltipContext } from "./context.js"; +import { forwardRef } from "react"; +//#region src/ui/tooltip/tooltip-label.tsx +/** Tooltip body label; defaults to context `content.label` from the linked trigger. */ +const TooltipLabel = forwardRef(function TooltipLabel({ render, className, style, children, ...elementProps }, forwardedRef) { + const { state, stateAttrMap, content } = useTooltipContext(); + const body = children !== void 0 ? children : content?.label ?? ""; + return renderElement("span", { + render, + className, + style + }, { + state, + stateAttrMap, + ref: forwardedRef, + props: [elementProps, { children: body }] + }); +}); +//#endregion +export { TooltipLabel }; + +//# sourceMappingURL=tooltip-label.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-label.js.map b/dist/default/ui/tooltip/tooltip-label.js.map new file mode 100644 index 00000000..4d779127 --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-label.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-label.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipLabelProps extends UIComponentProps<'span', TooltipState> {}\n\n/** Tooltip body label; defaults to context `content.label` from the linked trigger. */\nexport const TooltipLabel = forwardRef(function TooltipLabel(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap, content } = useTooltipContext();\n const body = children !== undefined ? children : (content?.label ?? '');\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [elementProps, { children: body }],\n }\n );\n});\n\nexport namespace TooltipLabel {\n export type Props = TooltipLabelProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;AAYA,MAAa,eAAe,WAA+C,SAAS,aAClF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,OAAO,cAAc,YAAY,kBAAkB;CAC3D,MAAM,OAAO,aAAa,KAAA,IAAY,WAAY,SAAS,SAAS;CAEpE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC,cAAc,EAAE,UAAU,KAAK,CAAC;CAC1C,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-popup.js b/dist/default/ui/tooltip/tooltip-popup.js new file mode 100644 index 00000000..1c9d8960 --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-popup.js @@ -0,0 +1,132 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { renderElement } from "../../utils/use-render.js"; +import { useTooltipContext } from "./context.js"; +import { TooltipLabel } from "./tooltip-label.js"; +import { TooltipShortcut } from "./tooltip-shortcut.js"; +import { getAnchorPositionStyle, getPopupPositionRect, getPositionedSide, getPositioningBoundaryRect, isEventWithinElement, resolveOffsets, resolvePositioningBoundary } from "@videojs/core/dom"; +import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from "react"; +import { supportsAnchorPositioning } from "@videojs/utils/dom"; +import { Fragment, jsx, jsxs } from "react/jsx-runtime"; +import { TooltipCSSVars } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-popup.tsx +const POPUP_RESET = { + position: "fixed", + inset: "auto", + margin: 0 +}; +/** Container for the tooltip content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */ +const TooltipPopup = forwardRef(function TooltipPopup({ render, className, style, children, ...elementProps }, forwardedRef) { + const { core, tooltip, state, preferredSide, setPositionedSide, stateAttrMap, anchorName, popupId, boundary, container } = useTooltipContext(); + const internalRef = useRef(null); + const composedRef = useComposedRefs(forwardedRef, useCallback((el) => { + tooltip.setPopupElement(el); + if (el && supportsAnchorPositioning()) el.style.setProperty("position-anchor", `--${anchorName}`); + }, [tooltip, anchorName]), internalRef); + const posOpts = useMemo(() => ({ + side: preferredSide, + align: state.align + }), [preferredSide, state.align]); + const anchorStyle = useMemo(() => { + if (!supportsAnchorPositioning()) return null; + const { positionAnchor: _, ...rest } = getAnchorPositionStyle(anchorName, posOpts, void 0, void 0, void 0, void 0, TooltipCSSVars); + return rest; + }, [anchorName, posOpts]); + const [position, setPosition] = useState(null); + useLayoutEffect(() => { + if (!state.open) { + setPosition(null); + return; + } + function measure() { + const triggerEl = tooltip.triggerElement; + const popupEl = internalRef.current; + if (!triggerEl || !popupEl) return; + const triggerRect = triggerEl.getBoundingClientRect(); + const root = popupEl.getRootNode(); + const boundaryElement = resolvePositioningBoundary(boundary, { + container, + root + }); + const popupRect = getPopupPositionRect(popupEl, posOpts.side); + const boundaryRect = getPositioningBoundaryRect(boundaryElement); + const offsets = resolveOffsets(popupEl, TooltipCSSVars); + const side = getPositionedSide(triggerRect, popupRect, boundaryRect, posOpts, offsets); + const { positionAnchor: _, ...nextStyle } = getAnchorPositionStyle(anchorName, { + ...posOpts, + side + }, triggerRect, supportsAnchorPositioning() ? void 0 : popupRect, boundaryRect, offsets, TooltipCSSVars); + setPosition(nextStyle); + setPositionedSide(side); + } + measure(); + const triggerEl = tooltip.triggerElement; + const popupEl = internalRef.current; + const boundaryElement = popupEl ? resolvePositioningBoundary(boundary, { + container, + root: popupEl.getRootNode() + }) : null; + let rafId = 0; + function reposition(event) { + if (event && isEventWithinElement(event, internalRef.current)) return; + cancelAnimationFrame(rafId); + rafId = requestAnimationFrame(measure); + } + reposition(); + const resizeObserver = typeof ResizeObserver === "function" ? new ResizeObserver(() => { + reposition(); + }) : null; + if (triggerEl && resizeObserver) resizeObserver.observe(triggerEl); + if (popupEl && resizeObserver) resizeObserver.observe(popupEl); + if (boundaryElement && resizeObserver) resizeObserver.observe(boundaryElement); + window.addEventListener("scroll", reposition, { + capture: true, + passive: true + }); + window.addEventListener("resize", reposition); + return () => { + cancelAnimationFrame(rafId); + resizeObserver?.disconnect(); + window.removeEventListener("scroll", reposition, true); + window.removeEventListener("resize", reposition); + }; + }, [ + state.open, + anchorName, + posOpts, + tooltip, + boundary, + container, + setPositionedSide + ]); + const positioningStyle = position ?? anchorStyle ?? POPUP_RESET; + if (!state.open) return null; + const body = children !== void 0 ? children : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(TooltipLabel, {}), /* @__PURE__ */ jsx(TooltipShortcut, {})] }); + const { onFocusOut, ...restPopupProps } = tooltip.popupProps; + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap, + ref: composedRef, + props: [ + { + id: popupId, + style: positioningStyle, + ...core.getPopupAttrs(state) + }, + { children: body }, + { + ...restPopupProps, + onBlur: onFocusOut + }, + elementProps + ] + }); +}); +//#endregion +export { TooltipPopup }; + +//# sourceMappingURL=tooltip-popup.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-popup.js.map b/dist/default/ui/tooltip/tooltip-popup.js.map new file mode 100644 index 00000000..a358a7b2 --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-popup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-popup.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"sourcesContent":["'use client';\n\nimport { TooltipCSSVars, type TooltipState } from '@videojs/core';\nimport {\n getAnchorPositionStyle,\n getPopupPositionRect,\n getPositionedSide,\n getPositioningBoundaryRect,\n isEventWithinElement,\n resolveOffsets,\n resolvePositioningBoundary,\n} from '@videojs/core/dom';\nimport { supportsAnchorPositioning } from '@videojs/utils/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\nimport { TooltipLabel } from './tooltip-label';\nimport { TooltipShortcut } from './tooltip-shortcut';\n\nexport interface TooltipPopupProps extends UIComponentProps<'div', TooltipState> {}\n\nconst POPUP_RESET: CSSProperties = { position: 'fixed', inset: 'auto', margin: 0 };\n\n/** Container for the tooltip content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */\nexport const TooltipPopup = forwardRef(function TooltipPopup(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const {\n core,\n tooltip,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap,\n anchorName,\n popupId,\n boundary,\n container,\n } = useTooltipContext();\n const internalRef = useRef(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n tooltip.setPopupElement(el);\n if (el && supportsAnchorPositioning()) {\n el.style.setProperty('position-anchor', `--${anchorName}`);\n }\n },\n [tooltip, anchorName]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: preferredSide, align: state.align }), [preferredSide, state.align]);\n\n // CSS Anchor Positioning — computed from state, no measurement needed.\n // `position-anchor` is set imperatively in the ref callback above\n // because React's style prop silently drops unrecognized CSS properties.\n const anchorStyle = useMemo(() => {\n if (!supportsAnchorPositioning()) return null;\n const { positionAnchor: _, ...rest } = getAnchorPositionStyle(\n anchorName,\n posOpts,\n undefined,\n undefined,\n undefined,\n undefined,\n TooltipCSSVars\n );\n return rest as CSSProperties;\n }, [anchorName, posOpts]);\n\n // Measure rects after layout, before paint.\n const [position, setPosition] = useState(null);\n\n useLayoutEffect(() => {\n if (!state.open) {\n setPosition(null);\n return;\n }\n\n function measure(): void {\n const triggerEl = tooltip.triggerElement;\n const popupEl = internalRef.current;\n if (!triggerEl || !popupEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const root = popupEl.getRootNode() as Document | ShadowRoot;\n const boundaryElement = resolvePositioningBoundary(boundary, { container, root });\n const popupRect = getPopupPositionRect(popupEl, posOpts.side);\n const boundaryRect = getPositioningBoundaryRect(boundaryElement);\n const offsets = resolveOffsets(popupEl, TooltipCSSVars);\n const side = getPositionedSide(triggerRect, popupRect, boundaryRect, posOpts, offsets);\n\n const { positionAnchor: _, ...nextStyle } = getAnchorPositionStyle(\n anchorName,\n { ...posOpts, side },\n triggerRect,\n supportsAnchorPositioning() ? undefined : popupRect,\n boundaryRect,\n offsets,\n TooltipCSSVars\n );\n\n setPosition(nextStyle as CSSProperties);\n setPositionedSide(side);\n }\n\n measure();\n const triggerEl = tooltip.triggerElement;\n const popupEl = internalRef.current;\n const boundaryElement = popupEl\n ? resolvePositioningBoundary(boundary, {\n container,\n root: popupEl.getRootNode() as Document | ShadowRoot,\n })\n : null;\n\n let rafId = 0;\n function reposition(event?: Event): void {\n if (event && isEventWithinElement(event, internalRef.current)) return;\n\n cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(measure);\n }\n\n // Re-measure after the tooltip has entered the top layer and whenever\n // its own size or the trigger size changes.\n reposition();\n\n const resizeObserver =\n typeof ResizeObserver === 'function'\n ? new ResizeObserver(() => {\n reposition();\n })\n : null;\n\n if (triggerEl && resizeObserver) {\n resizeObserver.observe(triggerEl);\n }\n\n if (popupEl && resizeObserver) {\n resizeObserver.observe(popupEl);\n }\n if (boundaryElement && resizeObserver) {\n resizeObserver.observe(boundaryElement);\n }\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true });\n window.addEventListener('resize', reposition);\n\n return () => {\n cancelAnimationFrame(rafId);\n resizeObserver?.disconnect();\n window.removeEventListener('scroll', reposition, true);\n window.removeEventListener('resize', reposition);\n };\n }, [state.open, anchorName, posOpts, tooltip, boundary, container, setPositionedSide]);\n\n // Use measured styles once available; reset UA [popover] defaults until then.\n const positioningStyle = position ?? anchorStyle ?? POPUP_RESET;\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n const body =\n children !== undefined ? (\n children\n ) : (\n <>\n \n \n \n );\n\n // Remap DOM focus events to React synthetic event names.\n const { onFocusOut, ...restPopupProps } = tooltip.popupProps;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [\n {\n id: popupId,\n style: positioningStyle,\n ...core.getPopupAttrs(state),\n },\n { children: body },\n { ...restPopupProps, onBlur: onFocusOut },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace TooltipPopup {\n export type Props = TooltipPopupProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;;;;;;;AAyBA,MAAM,cAA6B;CAAE,UAAU;CAAS,OAAO;CAAQ,QAAQ;AAAE;;AAGjF,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EACJ,MACA,SACA,OACA,eACA,mBACA,cACA,YACA,SACA,UACA,cACE,kBAAkB;CACtB,MAAM,cAAc,OAAuB,IAAI;CAY/C,MAAM,cAAc,gBAAgB,cAVnB,aACd,OAA8B;EAC7B,QAAQ,gBAAgB,EAAE;EAC1B,IAAI,MAAM,0BAA0B,GAClC,GAAG,MAAM,YAAY,mBAAmB,KAAK,YAAY;CAE7D,GACA,CAAC,SAAS,UAAU,CAGmC,GAAG,WAAW;CAIvE,MAAM,UAAU,eAAe;EAAE,MAAM;EAAe,OAAO,MAAM;CAAM,IAAI,CAAC,eAAe,MAAM,KAAK,CAAC;CAKzG,MAAM,cAAc,cAAc;EAChC,IAAI,CAAC,0BAA0B,GAAG,OAAO;EACzC,MAAM,EAAE,gBAAgB,GAAG,GAAG,SAAS,uBACrC,YACA,SACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,cACF;EACA,OAAO;CACT,GAAG,CAAC,YAAY,OAAO,CAAC;CAGxB,MAAM,CAAC,UAAU,eAAe,SAA+B,IAAI;CAEnE,sBAAsB;EACpB,IAAI,CAAC,MAAM,MAAM;GACf,YAAY,IAAI;GAChB;EACF;EAEA,SAAS,UAAgB;GACvB,MAAM,YAAY,QAAQ;GAC1B,MAAM,UAAU,YAAY;GAC5B,IAAI,CAAC,aAAa,CAAC,SAAS;GAE5B,MAAM,cAAc,UAAU,sBAAsB;GACpD,MAAM,OAAO,QAAQ,YAAY;GACjC,MAAM,kBAAkB,2BAA2B,UAAU;IAAE;IAAW;GAAK,CAAC;GAChF,MAAM,YAAY,qBAAqB,SAAS,QAAQ,IAAI;GAC5D,MAAM,eAAe,2BAA2B,eAAe;GAC/D,MAAM,UAAU,eAAe,SAAS,cAAc;GACtD,MAAM,OAAO,kBAAkB,aAAa,WAAW,cAAc,SAAS,OAAO;GAErF,MAAM,EAAE,gBAAgB,GAAG,GAAG,cAAc,uBAC1C,YACA;IAAE,GAAG;IAAS;GAAK,GACnB,aACA,0BAA0B,IAAI,KAAA,IAAY,WAC1C,cACA,SACA,cACF;GAEA,YAAY,SAA0B;GACtC,kBAAkB,IAAI;EACxB;EAEA,QAAQ;EACR,MAAM,YAAY,QAAQ;EAC1B,MAAM,UAAU,YAAY;EAC5B,MAAM,kBAAkB,UACpB,2BAA2B,UAAU;GACnC;GACA,MAAM,QAAQ,YAAY;EAC5B,CAAC,IACD;EAEJ,IAAI,QAAQ;EACZ,SAAS,WAAW,OAAqB;GACvC,IAAI,SAAS,qBAAqB,OAAO,YAAY,OAAO,GAAG;GAE/D,qBAAqB,KAAK;GAC1B,QAAQ,sBAAsB,OAAO;EACvC;EAIA,WAAW;EAEX,MAAM,iBACJ,OAAO,mBAAmB,aACtB,IAAI,qBAAqB;GACvB,WAAW;EACb,CAAC,IACD;EAEN,IAAI,aAAa,gBACf,eAAe,QAAQ,SAAS;EAGlC,IAAI,WAAW,gBACb,eAAe,QAAQ,OAAO;EAEhC,IAAI,mBAAmB,gBACrB,eAAe,QAAQ,eAAe;EAGxC,OAAO,iBAAiB,UAAU,YAAY;GAAE,SAAS;GAAM,SAAS;EAAK,CAAC;EAC9E,OAAO,iBAAiB,UAAU,UAAU;EAE5C,aAAa;GACX,qBAAqB,KAAK;GAC1B,gBAAgB,WAAW;GAC3B,OAAO,oBAAoB,UAAU,YAAY,IAAI;GACrD,OAAO,oBAAoB,UAAU,UAAU;EACjD;CACF,GAAG;EAAC,MAAM;EAAM;EAAY;EAAS;EAAS;EAAU;EAAW;CAAiB,CAAC;CAGrF,MAAM,mBAAmB,YAAY,eAAe;CAIpD,IAAI,CAAC,MAAM,MACT,OAAO;CAGT,MAAM,OACJ,aAAa,KAAA,IACX,WAEA,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,cAAD,CAAe,CAAA,GACf,oBAAC,iBAAD,CAAkB,CAAA,CAClB,EAAA,CAAA;CAIN,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;CAElD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,KAAK;GAC7B;GACA,EAAE,UAAU,KAAK;GACjB;IAAE,GAAG;IAAgB,QAAQ;GAAW;GACxC;EACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-provider.js b/dist/default/ui/tooltip/tooltip-provider.js new file mode 100644 index 00000000..e304c870 --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-provider.js @@ -0,0 +1,26 @@ +"use client"; +import { TooltipGroupContextProvider } from "./group-context.js"; +import { useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { TooltipGroupCore } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-provider.tsx +function TooltipProvider({ delay, closeDelay, timeout, children }) { + const [group] = useState(() => new TooltipGroupCore({ + delay, + closeDelay, + timeout + })); + group.setProps({ + delay, + closeDelay, + timeout + }); + return /* @__PURE__ */ jsx(TooltipGroupContextProvider, { + value: { group }, + children + }); +} +//#endregion +export { TooltipProvider }; + +//# sourceMappingURL=tooltip-provider.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-provider.js.map b/dist/default/ui/tooltip/tooltip-provider.js.map new file mode 100644 index 00000000..d09fb345 --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-provider.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-provider.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-provider.tsx"],"sourcesContent":["'use client';\n\nimport { TooltipGroupCore, type TooltipGroupProps } from '@videojs/core';\nimport type { ReactNode } from 'react';\nimport { useState } from 'react';\n\nimport { TooltipGroupContextProvider } from './group-context';\n\nexport interface TooltipProviderProps extends TooltipGroupProps {\n children?: ReactNode;\n}\n\nexport function TooltipProvider({ delay, closeDelay, timeout, children }: TooltipProviderProps): ReactNode {\n const [group] = useState(() => new TooltipGroupCore({ delay, closeDelay, timeout }));\n group.setProps({ delay, closeDelay, timeout });\n\n return {children};\n}\n\nexport namespace TooltipProvider {\n export type Props = TooltipProviderProps;\n}\n"],"mappings":";;;;;;AAYA,SAAgB,gBAAgB,EAAE,OAAO,YAAY,SAAS,YAA6C;CACzG,MAAM,CAAC,SAAS,eAAe,IAAI,iBAAiB;EAAE;EAAO;EAAY;CAAQ,CAAC,CAAC;CACnF,MAAM,SAAS;EAAE;EAAO;EAAY;CAAQ,CAAC;CAE7C,OAAO,oBAAC,6BAAD;EAA6B,OAAO,EAAE,MAAM;EAAI;CAAsC,CAAA;AAC/F"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-root.js b/dist/default/ui/tooltip/tooltip-root.js new file mode 100644 index 00000000..d8a288cb --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-root.js @@ -0,0 +1,89 @@ +"use client"; +import { useOptionalContainer } from "../../player/context.js"; +import { useLatestRef } from "../../utils/use-latest-ref.js"; +import { useDestroy } from "../../utils/use-destroy.js"; +import { TooltipContextProvider } from "./context.js"; +import { useSafeId } from "../../utils/use-safe-id.js"; +import { useOptionalControlsContext } from "../controls/context.js"; +import { usePositionedState } from "../hooks/use-positioned-state.js"; +import { useTooltipGroup } from "./group-context.js"; +import { createTooltip, createTransition } from "@videojs/core/dom"; +import { useSnapshot } from "@videojs/store/react"; +import { useEffect, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { isUndefined } from "@videojs/utils/predicate"; +import { TooltipCore, TooltipDataAttrs } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-root.tsx +function TooltipRoot({ open: controlledOpen, defaultOpen = TooltipCore.defaultProps.defaultOpen, onOpenChange: onOpenChangeProp, onOpenChangeComplete: onOpenChangeCompleteProp, delay = TooltipCore.defaultProps.delay, closeDelay = TooltipCore.defaultProps.closeDelay, disableHoverablePopup = TooltipCore.defaultProps.disableHoverablePopup, disabled = TooltipCore.defaultProps.disabled, boundary = "container", children, ...coreProps }) { + const container = useOptionalContainer(); + const controls = useOptionalControlsContext(); + const [core] = useState(() => new TooltipCore(coreProps)); + core.setProps(coreProps); + const isControlled = !isUndefined(controlledOpen); + const groupFromContext = useTooltipGroup(); + const onOpenChangeRef = useLatestRef(onOpenChangeProp); + const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp); + const delayRef = useLatestRef(delay); + const closeDelayRef = useLatestRef(closeDelay); + const disableHoverablePopupRef = useLatestRef(disableHoverablePopup); + const disabledRef = useLatestRef(disabled); + const groupRef = useLatestRef(groupFromContext); + const [tooltip] = useState(() => { + const instance = createTooltip({ + transition: createTransition(), + onOpenChange: (nextOpen, details) => { + onOpenChangeRef.current?.(nextOpen, details); + }, + onOpenChangeComplete: (nextOpen) => { + onOpenChangeCompleteRef.current?.(nextOpen); + }, + delay: () => delayRef.current, + closeDelay: () => closeDelayRef.current, + disableHoverablePopup: () => disableHoverablePopupRef.current, + disabled: () => disabledRef.current, + group: () => groupRef.current + }); + if (!isControlled && defaultOpen) instance.open(); + return instance; + }); + const [content, setContent] = useState(); + const anchorName = useSafeId(); + const popupId = useSafeId("tooltip"); + useEffect(() => { + if (isUndefined(controlledOpen)) return; + const { active: inputOpen } = tooltip.input.current; + if (controlledOpen === inputOpen) return; + if (controlledOpen) tooltip.open(); + else tooltip.close(); + }, [controlledOpen, tooltip]); + useEffect(() => { + if (isUndefined(controls?.state.visible)) return; + if (controls.state.visible) return; + tooltip.close("imperative-action"); + }, [controls?.state.visible, tooltip]); + useDestroy(tooltip); + const input = useSnapshot(tooltip.input); + core.setInput(input); + const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState()); + return /* @__PURE__ */ jsx(TooltipContextProvider, { + value: { + core, + tooltip, + state, + preferredSide, + setPositionedSide, + stateAttrMap: TooltipDataAttrs, + anchorName, + popupId, + content, + setContent, + boundary, + container + }, + children + }); +} +//#endregion +export { TooltipRoot }; + +//# sourceMappingURL=tooltip-root.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-root.js.map b/dist/default/ui/tooltip/tooltip-root.js.map new file mode 100644 index 00000000..20c7f7fb --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-root.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-root.tsx"],"sourcesContent":["'use client';\n\nimport { type TooltipProps as CoreTooltipProps, TooltipCore, TooltipDataAttrs } from '@videojs/core';\nimport {\n createTooltip,\n createTransition,\n type PositioningBoundary,\n type TooltipChangeDetails,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\nimport { useOptionalContainer } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { useOptionalControlsContext } from '../controls/context';\nimport { usePositionedState } from '../hooks/use-positioned-state';\nimport { type TooltipContent, TooltipContextProvider } from './context';\nimport { useTooltipGroup } from './group-context';\n\nexport interface TooltipRootProps extends CoreTooltipProps {\n /** Boundary used to constrain the popup size. */\n boundary?: PositioningBoundary;\n /** Called when the tooltip open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: TooltipChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function TooltipRoot({\n open: controlledOpen,\n defaultOpen = TooltipCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n delay = TooltipCore.defaultProps.delay,\n closeDelay = TooltipCore.defaultProps.closeDelay,\n disableHoverablePopup = TooltipCore.defaultProps.disableHoverablePopup,\n disabled = TooltipCore.defaultProps.disabled,\n boundary = 'container',\n children,\n ...coreProps\n}: TooltipRootProps): ReactNode {\n const container = useOptionalContainer();\n const controls = useOptionalControlsContext();\n const [core] = useState(() => new TooltipCore(coreProps));\n core.setProps(coreProps);\n\n const isControlled = !isUndefined(controlledOpen);\n\n const groupFromContext = useTooltipGroup();\n\n // Keep refs that always point to the latest values so the\n // createTooltip closure never reads stale props.\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n const delayRef = useLatestRef(delay);\n const closeDelayRef = useLatestRef(closeDelay);\n const disableHoverablePopupRef = useLatestRef(disableHoverablePopup);\n const disabledRef = useLatestRef(disabled);\n const groupRef = useLatestRef(groupFromContext);\n\n const [tooltip] = useState(() => {\n const instance = createTooltip({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: TooltipChangeDetails) => {\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n delay: () => delayRef.current,\n closeDelay: () => closeDelayRef.current,\n disableHoverablePopup: () => disableHoverablePopupRef.current,\n disabled: () => disabledRef.current,\n group: () => groupRef.current,\n });\n\n // Apply defaultOpen on creation (uncontrolled only)\n if (!isControlled && defaultOpen) {\n instance.open();\n }\n\n return instance;\n });\n\n const [content, setContent] = useState();\n\n const anchorName = useSafeId();\n const popupId = useSafeId('tooltip');\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (isUndefined(controlledOpen)) return;\n\n const { active: inputOpen } = tooltip.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n tooltip.open();\n } else {\n tooltip.close();\n }\n }, [controlledOpen, tooltip]);\n\n useEffect(() => {\n if (isUndefined(controls?.state.visible)) return;\n if (controls.state.visible) return;\n\n tooltip.close('imperative-action');\n }, [controls?.state.visible, tooltip]);\n\n useDestroy(tooltip);\n\n const input = useSnapshot(tooltip.input);\n core.setInput(input);\n const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState());\n\n return (\n \n {children}\n \n );\n}\n\nexport namespace TooltipRoot {\n export type Props = TooltipRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAgCA,SAAgB,YAAY,EAC1B,MAAM,gBACN,cAAc,YAAY,aAAa,aACvC,cAAc,kBACd,sBAAsB,0BACtB,QAAQ,YAAY,aAAa,OACjC,aAAa,YAAY,aAAa,YACtC,wBAAwB,YAAY,aAAa,uBACjD,WAAW,YAAY,aAAa,UACpC,WAAW,aACX,UACA,GAAG,aAC2B;CAC9B,MAAM,YAAY,qBAAqB;CACvC,MAAM,WAAW,2BAA2B;CAC5C,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,SAAS,CAAC;CACxD,KAAK,SAAS,SAAS;CAEvB,MAAM,eAAe,CAAC,YAAY,cAAc;CAEhD,MAAM,mBAAmB,gBAAgB;CAIzC,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CACrE,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,gBAAgB,aAAa,UAAU;CAC7C,MAAM,2BAA2B,aAAa,qBAAqB;CACnE,MAAM,cAAc,aAAa,QAAQ;CACzC,MAAM,WAAW,aAAa,gBAAgB;CAE9C,MAAM,CAAC,WAAW,eAAe;EAC/B,MAAM,WAAW,cAAc;GAC7B,YAAY,iBAAiB;GAC7B,eAAe,UAAmB,YAAkC;IAClE,gBAAgB,UAAU,UAAU,OAAO;GAC7C;GACA,uBAAuB,aAAsB;IAC3C,wBAAwB,UAAU,QAAQ;GAC5C;GACA,aAAa,SAAS;GACtB,kBAAkB,cAAc;GAChC,6BAA6B,yBAAyB;GACtD,gBAAgB,YAAY;GAC5B,aAAa,SAAS;EACxB,CAAC;EAGD,IAAI,CAAC,gBAAgB,aACnB,SAAS,KAAK;EAGhB,OAAO;CACT,CAAC;CAED,MAAM,CAAC,SAAS,cAAc,SAAqC;CAEnE,MAAM,aAAa,UAAU;CAC7B,MAAM,UAAU,UAAU,SAAS;CAGnC,gBAAgB;EACd,IAAI,YAAY,cAAc,GAAG;EAEjC,MAAM,EAAE,QAAQ,cAAc,QAAQ,MAAM;EAC5C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBACF,QAAQ,KAAK;OAEb,QAAQ,MAAM;CAElB,GAAG,CAAC,gBAAgB,OAAO,CAAC;CAE5B,gBAAgB;EACd,IAAI,YAAY,UAAU,MAAM,OAAO,GAAG;EAC1C,IAAI,SAAS,MAAM,SAAS;EAE5B,QAAQ,MAAM,mBAAmB;CACnC,GAAG,CAAC,UAAU,MAAM,SAAS,OAAO,CAAC;CAErC,WAAW,OAAO;CAElB,MAAM,QAAQ,YAAY,QAAQ,KAAK;CACvC,KAAK,SAAS,KAAK;CACnB,MAAM,EAAE,OAAO,eAAe,sBAAsB,mBAAmB,KAAK,SAAS,CAAC;CAEtF,OACE,oBAAC,wBAAD;EACE,OAAO;GACL;GACA;GACA;GACA;GACA;GACA,cAAc;GACd;GACA;GACA;GACA;GACA;GACA;EACF;EAEC;CACqB,CAAA;AAE5B"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-shortcut.js b/dist/default/ui/tooltip/tooltip-shortcut.js new file mode 100644 index 00000000..6026da62 --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-shortcut.js @@ -0,0 +1,25 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useTooltipContext } from "./context.js"; +import { forwardRef } from "react"; +//#region src/ui/tooltip/tooltip-shortcut.tsx +/** Keyboard shortcut hint; apply skin `className` (CSS: `media-tooltip__kbd`; Tailwind: `popup.tooltipShortcut`). */ +const TooltipShortcut = forwardRef(function TooltipShortcut({ render, className, style, children, ...elementProps }, forwardedRef) { + const { state, stateAttrMap, content } = useTooltipContext(); + const shortcut = children !== void 0 && children !== null ? children : content?.shortcut ?? null; + if (!shortcut) return null; + return renderElement("kbd", { + render, + className, + style + }, { + state, + stateAttrMap, + ref: forwardedRef, + props: [elementProps, { children: shortcut }] + }); +}); +//#endregion +export { TooltipShortcut }; + +//# sourceMappingURL=tooltip-shortcut.js.map \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-shortcut.js.map b/dist/default/ui/tooltip/tooltip-shortcut.js.map new file mode 100644 index 00000000..41b77aec --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-shortcut.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-shortcut.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-shortcut.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipShortcutProps extends UIComponentProps<'kbd', TooltipState> {}\n\n/** Keyboard shortcut hint; apply skin `className` (CSS: `media-tooltip__kbd`; Tailwind: `popup.tooltipShortcut`). */\nexport const TooltipShortcut = forwardRef(function TooltipShortcut(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap, content } = useTooltipContext();\n const shortcut = children !== undefined && children !== null ? children : (content?.shortcut ?? null);\n\n if (!shortcut) {\n return null;\n }\n\n return renderElement(\n 'kbd',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [elementProps, { children: shortcut }],\n }\n );\n});\n\nexport namespace TooltipShortcut {\n export type Props = TooltipShortcutProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;AAYA,MAAa,kBAAkB,WAA8C,SAAS,gBACpF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,OAAO,cAAc,YAAY,kBAAkB;CAC3D,MAAM,WAAW,aAAa,KAAA,KAAa,aAAa,OAAO,WAAY,SAAS,YAAY;CAEhG,IAAI,CAAC,UACH,OAAO;CAGT,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC,cAAc,EAAE,UAAU,SAAS,CAAC;CAC9C,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/default/ui/tooltip/tooltip-trigger.js b/dist/default/ui/tooltip/tooltip-trigger.js new file mode 100644 index 00000000..f7b8bce9 --- /dev/null +++ b/dist/default/ui/tooltip/tooltip-trigger.js @@ -0,0 +1,37 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useTooltipContext } from "./context.js"; +import { forwardRef, useCallback } from "react"; +import { supportsAnchorPositioning } from "@videojs/utils/dom"; +//#region src/ui/tooltip/tooltip-trigger.tsx +/** Element that triggers the tooltip on hover and focus. Renders a ` + * )} + * /> + * ``` + */ +declare const PlayButton: import("react").ForwardRefExoticComponent>; +declare namespace PlayButton { + type Props = PlayButtonProps; + type State = PlayButtonCore.State; +} +//#endregion +export { PlayButton, PlayButtonProps }; +//# sourceMappingURL=play-button.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/play-button/play-button.d.ts.map b/dist/dev/ui/play-button/play-button.d.ts.map new file mode 100644 index 00000000..74f12c6e --- /dev/null +++ b/dist/dev/ui/play-button/play-button.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"play-button.d.ts","names":[],"sources":["../../../../src/ui/play-button/play-button.tsx"],"mappings":";;;UAQiB,wBAAwB,2BAA2B,eAAe,QAAQ,eAAe;;;;;;;;;;;;;;;;;cAkB7F,4BAAU,0BAAA,kCAAA,cAAA;kBASN;OACH,QAAQ;OACR,QAAQ,eAAe"} \ No newline at end of file diff --git a/dist/dev/ui/play-button/play-button.js b/dist/dev/ui/play-button/play-button.js new file mode 100644 index 00000000..a9e5dcb6 --- /dev/null +++ b/dist/dev/ui/play-button/play-button.js @@ -0,0 +1,33 @@ +"use client"; +import { createMediaButton } from "../create-media-button.js"; +import { selectPlayback } from "@videojs/core/dom"; +import { PlayButtonCore, PlayButtonDataAttrs } from "@videojs/core"; +//#region src/ui/play-button/play-button.tsx +/** +* A button that toggles playback. +* +* @example +* ```tsx +* +* +* ( +* +* )} +* /> +* ``` +*/ +const PlayButton = createMediaButton({ + displayName: "PlayButton", + core: PlayButtonCore, + stateAttrMap: PlayButtonDataAttrs, + selector: selectPlayback, + action: (core, state) => core.toggle(state), + hotkeyAction: "togglePaused" +}); +//#endregion +export { PlayButton }; + +//# sourceMappingURL=play-button.js.map \ No newline at end of file diff --git a/dist/dev/ui/play-button/play-button.js.map b/dist/dev/ui/play-button/play-button.js.map new file mode 100644 index 00000000..0a37fa15 --- /dev/null +++ b/dist/dev/ui/play-button/play-button.js.map @@ -0,0 +1 @@ +{"version":3,"file":"play-button.js","names":[],"sources":["../../../../src/ui/play-button/play-button.tsx"],"sourcesContent":["'use client';\n\nimport { PlayButtonCore, PlayButtonDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PlayButtonProps extends UIComponentProps<'button', PlayButtonCore.State>, PlayButtonCore.Props {}\n\n/**\n * A button that toggles playback.\n *\n * @example\n * ```tsx\n * \n *\n * (\n * \n * )}\n * />\n * ```\n */\nexport const PlayButton = createMediaButton({\n displayName: 'PlayButton',\n core: PlayButtonCore,\n stateAttrMap: PlayButtonDataAttrs,\n selector: selectPlayback,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'togglePaused',\n});\n\nexport namespace PlayButton {\n export type Props = PlayButtonProps;\n export type State = PlayButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0BA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;AAChB,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/playback-rate-button/index.d.ts b/dist/dev/ui/playback-rate-button/index.d.ts new file mode 100644 index 00000000..41898bb0 --- /dev/null +++ b/dist/dev/ui/playback-rate-button/index.d.ts @@ -0,0 +1,2 @@ +import { PlaybackRateButton, PlaybackRateButtonProps } from "./playback-rate-button.js"; +export { PlaybackRateButton, type PlaybackRateButtonProps }; \ No newline at end of file diff --git a/dist/dev/ui/playback-rate-button/index.js b/dist/dev/ui/playback-rate-button/index.js new file mode 100644 index 00000000..e90520b5 --- /dev/null +++ b/dist/dev/ui/playback-rate-button/index.js @@ -0,0 +1,2 @@ +import { PlaybackRateButton } from "./playback-rate-button.js"; +export { PlaybackRateButton }; diff --git a/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts b/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts new file mode 100644 index 00000000..cd820cb7 --- /dev/null +++ b/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts @@ -0,0 +1,28 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { PlaybackRateButtonCore } from "@videojs/core"; +//#region src/ui/playback-rate-button/playback-rate-button.d.ts +interface PlaybackRateButtonProps extends UIComponentProps<'button', PlaybackRateButtonCore.State>, PlaybackRateButtonCore.Props {} +/** + * A button that cycles through playback rates. + * + * @example + * ```tsx + * + * + * ( + * + * )} + * /> + * ``` + */ +declare const PlaybackRateButton: import("react").ForwardRefExoticComponent>; +declare namespace PlaybackRateButton { + type Props = PlaybackRateButtonProps; + type State = PlaybackRateButtonCore.State; +} +//#endregion +export { PlaybackRateButton, PlaybackRateButtonProps }; +//# sourceMappingURL=playback-rate-button.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map b/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map new file mode 100644 index 00000000..f1c486d3 --- /dev/null +++ b/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"playback-rate-button.d.ts","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button.tsx"],"mappings":";;;UAQiB,gCACP,2BAA2B,uBAAuB,QACxD,uBAAuB;;;;;;;;;;;;;;;;;cAkBd,oCAAkB,0BAAA,0CAAA,cAAA;kBASd;OACH,QAAQ;OACR,QAAQ,uBAAuB"} \ No newline at end of file diff --git a/dist/dev/ui/playback-rate-button/playback-rate-button.js b/dist/dev/ui/playback-rate-button/playback-rate-button.js new file mode 100644 index 00000000..d2b84a6f --- /dev/null +++ b/dist/dev/ui/playback-rate-button/playback-rate-button.js @@ -0,0 +1,33 @@ +"use client"; +import { createMediaButton } from "../create-media-button.js"; +import { selectPlaybackRate } from "@videojs/core/dom"; +import { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from "@videojs/core"; +//#region src/ui/playback-rate-button/playback-rate-button.tsx +/** +* A button that cycles through playback rates. +* +* @example +* ```tsx +* +* +* ( +* +* )} +* /> +* ``` +*/ +const PlaybackRateButton = createMediaButton({ + displayName: "PlaybackRateButton", + core: PlaybackRateButtonCore, + stateAttrMap: PlaybackRateButtonDataAttrs, + selector: selectPlaybackRate, + action: (core, state) => core.cycle(state), + hotkeyAction: "speedUp" +}); +//#endregion +export { PlaybackRateButton }; + +//# sourceMappingURL=playback-rate-button.js.map \ No newline at end of file diff --git a/dist/dev/ui/playback-rate-button/playback-rate-button.js.map b/dist/dev/ui/playback-rate-button/playback-rate-button.js.map new file mode 100644 index 00000000..1d33ad03 --- /dev/null +++ b/dist/dev/ui/playback-rate-button/playback-rate-button.js.map @@ -0,0 +1 @@ +{"version":3,"file":"playback-rate-button.js","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button.tsx"],"sourcesContent":["'use client';\n\nimport { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PlaybackRateButtonProps\n extends UIComponentProps<'button', PlaybackRateButtonCore.State>,\n PlaybackRateButtonCore.Props {}\n\n/**\n * A button that cycles through playback rates.\n *\n * @example\n * ```tsx\n * \n *\n * (\n * \n * )}\n * />\n * ```\n */\nexport const PlaybackRateButton = createMediaButton({\n displayName: 'PlaybackRateButton',\n core: PlaybackRateButtonCore,\n stateAttrMap: PlaybackRateButtonDataAttrs,\n selector: selectPlaybackRate,\n action: (core, state) => core.cycle(state),\n hotkeyAction: 'speedUp',\n});\n\nexport namespace PlaybackRateButton {\n export type Props = PlaybackRateButtonProps;\n export type State = PlaybackRateButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,qBAAqB,kBAAmE;CACnG,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,MAAM,KAAK;CACzC,cAAc;AAChB,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/playback-rate/index.d.ts b/dist/dev/ui/playback-rate/index.d.ts new file mode 100644 index 00000000..cd569edc --- /dev/null +++ b/dist/dev/ui/playback-rate/index.d.ts @@ -0,0 +1,2 @@ +import { PlaybackRateOption, PlaybackRateOptionsProps, PlaybackRateOptionsResult, usePlaybackRateOptions } from "./use-playback-rate-options.js"; +export { type PlaybackRateOption, type PlaybackRateOptionsProps, type PlaybackRateOptionsResult, usePlaybackRateOptions }; \ No newline at end of file diff --git a/dist/dev/ui/playback-rate/index.js b/dist/dev/ui/playback-rate/index.js new file mode 100644 index 00000000..542517cd --- /dev/null +++ b/dist/dev/ui/playback-rate/index.js @@ -0,0 +1,2 @@ +import { usePlaybackRateOptions } from "./use-playback-rate-options.js"; +export { usePlaybackRateOptions }; diff --git a/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts b/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts new file mode 100644 index 00000000..c8f2164d --- /dev/null +++ b/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts @@ -0,0 +1,33 @@ +import { PlaybackRateRadioGroupCore } from "@videojs/core"; +//#region src/ui/playback-rate/use-playback-rate-options.d.ts +interface PlaybackRateOptionsProps extends PlaybackRateRadioGroupCore.Props {} +interface PlaybackRateOption { + rate: number; + value: string; + label: string; + disabled: boolean; +} +interface PlaybackRateOptionsResult { + state: PlaybackRateRadioGroupCore.State; + rate: number; + value: string; + options: PlaybackRateOption[]; + disabled: boolean; + setRate: (rate: number) => void; + setValue: (value: string) => void; +} +/** + * Create playback rate menu options from the player playback rate state. + * Returns `null` when the playback rate feature is not configured. + * + * @param props - Optional `label`, `formatRate`, and `disabled` overrides. + */ +declare function usePlaybackRateOptions(props?: PlaybackRateOptionsProps): PlaybackRateOptionsResult | null; +declare namespace usePlaybackRateOptions { + type Props = PlaybackRateOptionsProps; + type Result = PlaybackRateOptionsResult; + type Option = PlaybackRateOption; +} +//#endregion +export { PlaybackRateOption, PlaybackRateOptionsProps, PlaybackRateOptionsResult, usePlaybackRateOptions }; +//# sourceMappingURL=use-playback-rate-options.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map b/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map new file mode 100644 index 00000000..9c54950e --- /dev/null +++ b/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"use-playback-rate-options.d.ts","names":[],"sources":["../../../../src/ui/playback-rate/use-playback-rate-options.ts"],"mappings":";;UAWiB,iCAAiC,2BAA2B;UAE5D;EACf;EACA;EACA;EACA;;UAGe;EACf,OAAO,2BAA2B;EAClC;EACA;EACA,SAAS;EACT;EACA,UAAU;EACV,WAAW;;;;;;;;iBASG,uBAAuB,QAAQ,2BAA2B;kBAiCzD;OACH,QAAQ;OACR,SAAS;OACT,SAAS"} \ No newline at end of file diff --git a/dist/dev/ui/playback-rate/use-playback-rate-options.js b/dist/dev/ui/playback-rate/use-playback-rate-options.js new file mode 100644 index 00000000..88823f95 --- /dev/null +++ b/dist/dev/ui/playback-rate/use-playback-rate-options.js @@ -0,0 +1,43 @@ +"use client"; +import { usePlayer } from "../../player/context.js"; +import { logMissingFeature, selectPlaybackRate } from "@videojs/core/dom"; +import { useCallback, useState } from "react"; +import { PlaybackRateRadioGroupCore } from "@videojs/core"; +//#region src/ui/playback-rate/use-playback-rate-options.ts +/** +* Create playback rate menu options from the player playback rate state. +* Returns `null` when the playback rate feature is not configured. +* +* @param props - Optional `label`, `formatRate`, and `disabled` overrides. +*/ +function usePlaybackRateOptions(props) { + const media = usePlayer(selectPlaybackRate); + const [core] = useState(() => new PlaybackRateRadioGroupCore()); + core.setProps(props ?? {}); + const setRate = useCallback((rate) => core.select(media, rate), [core, media]); + const setValue = useCallback((value) => core.selectValue(media, value), [core, media]); + if (!media) { + logMissingFeature("usePlaybackRateOptions", selectPlaybackRate.displayName ?? "playbackRate"); + return null; + } + core.setMedia(media); + const state = core.getState(); + return { + state, + rate: state.rate, + value: core.getRateValue(state.rate), + options: state.rates.map((rate) => ({ + rate, + value: core.getRateValue(rate), + label: core.getRateLabel(rate), + disabled: state.disabled + })), + disabled: state.disabled, + setRate, + setValue + }; +} +//#endregion +export { usePlaybackRateOptions }; + +//# sourceMappingURL=use-playback-rate-options.js.map \ No newline at end of file diff --git a/dist/dev/ui/playback-rate/use-playback-rate-options.js.map b/dist/dev/ui/playback-rate/use-playback-rate-options.js.map new file mode 100644 index 00000000..678c48d8 --- /dev/null +++ b/dist/dev/ui/playback-rate/use-playback-rate-options.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-playback-rate-options.js","names":["PlaybackRateRadioGroupCoreClass"],"sources":["../../../../src/ui/playback-rate/use-playback-rate-options.ts"],"sourcesContent":["'use client';\n\nimport {\n type PlaybackRateRadioGroupCore,\n PlaybackRateRadioGroupCore as PlaybackRateRadioGroupCoreClass,\n} from '@videojs/core';\nimport { logMissingFeature, selectPlaybackRate } from '@videojs/core/dom';\nimport { useCallback, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\n\nexport interface PlaybackRateOptionsProps extends PlaybackRateRadioGroupCore.Props {}\n\nexport interface PlaybackRateOption {\n rate: number;\n value: string;\n label: string;\n disabled: boolean;\n}\n\nexport interface PlaybackRateOptionsResult {\n state: PlaybackRateRadioGroupCore.State;\n rate: number;\n value: string;\n options: PlaybackRateOption[];\n disabled: boolean;\n setRate: (rate: number) => void;\n setValue: (value: string) => void;\n}\n\n/**\n * Create playback rate menu options from the player playback rate state.\n * Returns `null` when the playback rate feature is not configured.\n *\n * @param props - Optional `label`, `formatRate`, and `disabled` overrides.\n */\nexport function usePlaybackRateOptions(props?: PlaybackRateOptionsProps): PlaybackRateOptionsResult | null {\n const media = usePlayer(selectPlaybackRate);\n const [core] = useState(() => new PlaybackRateRadioGroupCoreClass());\n\n core.setProps(props ?? {});\n\n const setRate = useCallback((rate: number) => core.select(media!, rate), [core, media]);\n const setValue = useCallback((value: string) => core.selectValue(media!, value), [core, media]);\n\n if (!media) {\n if (__DEV__) logMissingFeature('usePlaybackRateOptions', selectPlaybackRate.displayName ?? 'playbackRate');\n return null;\n }\n\n core.setMedia(media);\n const state = core.getState();\n\n return {\n state,\n rate: state.rate,\n value: core.getRateValue(state.rate),\n options: state.rates.map((rate) => ({\n rate,\n value: core.getRateValue(rate),\n label: core.getRateLabel(rate),\n disabled: state.disabled,\n })),\n disabled: state.disabled,\n setRate,\n setValue,\n };\n}\n\nexport namespace usePlaybackRateOptions {\n export type Props = PlaybackRateOptionsProps;\n export type Result = PlaybackRateOptionsResult;\n export type Option = PlaybackRateOption;\n}\n"],"mappings":";;;;;;;;;;;;AAoCA,SAAgB,uBAAuB,OAAoE;CACzG,MAAM,QAAQ,UAAU,kBAAkB;CAC1C,MAAM,CAAC,QAAQ,eAAe,IAAIA,2BAAgC,CAAC;CAEnE,KAAK,SAAS,SAAS,CAAC,CAAC;CAEzB,MAAM,UAAU,aAAa,SAAiB,KAAK,OAAO,OAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;CACtF,MAAM,WAAW,aAAa,UAAkB,KAAK,YAAY,OAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC;CAE9F,IAAI,CAAC,OAAO;EACG,kBAAkB,0BAA0B,mBAAmB,eAAe,cAAc;EACzG,OAAO;CACT;CAEA,KAAK,SAAS,KAAK;CACnB,MAAM,QAAQ,KAAK,SAAS;CAE5B,OAAO;EACL;EACA,MAAM,MAAM;EACZ,OAAO,KAAK,aAAa,MAAM,IAAI;EACnC,SAAS,MAAM,MAAM,KAAK,UAAU;GAClC;GACA,OAAO,KAAK,aAAa,IAAI;GAC7B,OAAO,KAAK,aAAa,IAAI;GAC7B,UAAU,MAAM;EAClB,EAAE;EACF,UAAU,MAAM;EAChB;EACA;CACF;AACF"} \ No newline at end of file diff --git a/dist/dev/ui/popover/context.d.ts b/dist/dev/ui/popover/context.d.ts new file mode 100644 index 00000000..8e86b307 --- /dev/null +++ b/dist/dev/ui/popover/context.d.ts @@ -0,0 +1,19 @@ +import { MediaContainer, PopoverApi, PositioningBoundary } from "@videojs/core/dom"; +import { PopoverCore, StateAttrMap as StateAttrMap$1 } from "@videojs/core"; +//#region src/ui/popover/context.d.ts +interface PopoverContextValue { + core: PopoverCore; + popover: PopoverApi; + state: PopoverCore.State; + preferredSide: PopoverCore.State['side']; + setPositionedSide: (side: PopoverCore.State['side']) => void; + stateAttrMap: StateAttrMap$1; + anchorName: string; + popupId: string; + boundary: PositioningBoundary; + container: MediaContainer | null; +} +declare function usePopoverContext(): PopoverContextValue; +//#endregion +export { PopoverContextValue, usePopoverContext }; +//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/popover/context.d.ts.map b/dist/dev/ui/popover/context.d.ts.map new file mode 100644 index 00000000..d5f7bd02 --- /dev/null +++ b/dist/dev/ui/popover/context.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/popover/context.tsx"],"mappings":";;;UAMiB;EACf,MAAM;EACN,SAAS;EACT,OAAO,YAAY;EACnB,eAAe,YAAY;EAC3B,oBAAoB,MAAM,YAAY;EACtC,cAAc,eAAa,YAAY;EACvC;EACA;EACA,UAAU;EACV,WAAW;;iBAOG,qBAAqB"} \ No newline at end of file diff --git a/dist/dev/ui/popover/context.js b/dist/dev/ui/popover/context.js new file mode 100644 index 00000000..f85f6652 --- /dev/null +++ b/dist/dev/ui/popover/context.js @@ -0,0 +1,14 @@ +"use client"; +import { createContext, useContext } from "react"; +//#region src/ui/popover/context.tsx +const PopoverContext = createContext(null); +const PopoverContextProvider = PopoverContext.Provider; +function usePopoverContext() { + const ctx = useContext(PopoverContext); + if (!ctx) throw new Error("Popover compound components must be used within a Popover.Root"); + return ctx; +} +//#endregion +export { PopoverContextProvider, usePopoverContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/dev/ui/popover/context.js.map b/dist/dev/ui/popover/context.js.map new file mode 100644 index 00000000..e0152369 --- /dev/null +++ b/dist/dev/ui/popover/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/popover/context.tsx"],"sourcesContent":["'use client';\n\nimport type { PopoverCore, StateAttrMap } from '@videojs/core';\nimport type { MediaContainer, PopoverApi, PositioningBoundary } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface PopoverContextValue {\n core: PopoverCore;\n popover: PopoverApi;\n state: PopoverCore.State;\n preferredSide: PopoverCore.State['side'];\n setPositionedSide: (side: PopoverCore.State['side']) => void;\n stateAttrMap: StateAttrMap;\n anchorName: string;\n popupId: string;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst PopoverContext = createContext(null);\n\nexport const PopoverContextProvider = PopoverContext.Provider;\n\nexport function usePopoverContext(): PopoverContextValue {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error('Popover compound components must be used within a Popover.Root');\n return ctx;\n}\n"],"mappings":";;;AAmBA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,cAAc;CACrC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,gEAAgE;CAC1F,OAAO;AACT"} \ No newline at end of file diff --git a/dist/dev/ui/popover/index.d.ts b/dist/dev/ui/popover/index.d.ts new file mode 100644 index 00000000..9a220da3 --- /dev/null +++ b/dist/dev/ui/popover/index.d.ts @@ -0,0 +1,3 @@ +import { PopoverContextValue, usePopoverContext } from "./context.js"; +import { index_parts_d_exports } from "./index.parts.js"; +export { index_parts_d_exports as Popover, type PopoverContextValue, usePopoverContext }; \ No newline at end of file diff --git a/dist/dev/ui/popover/index.js b/dist/dev/ui/popover/index.js new file mode 100644 index 00000000..3d82bd1a --- /dev/null +++ b/dist/dev/ui/popover/index.js @@ -0,0 +1,3 @@ +import { usePopoverContext } from "./context.js"; +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as Popover, usePopoverContext }; diff --git a/dist/dev/ui/popover/index.parts.d.ts b/dist/dev/ui/popover/index.parts.d.ts new file mode 100644 index 00000000..2f5f1d0c --- /dev/null +++ b/dist/dev/ui/popover/index.parts.d.ts @@ -0,0 +1,10 @@ +import { PopoverArrow, PopoverArrowProps } from "./popover-arrow.js"; +import { PopoverPopup, PopoverPopupProps } from "./popover-popup.js"; +import { PopoverRoot, PopoverRootProps } from "./popover-root.js"; +import { PopoverTrigger, PopoverTriggerProps } from "./popover-trigger.js"; +declare namespace index_parts_d_exports { + export { PopoverArrow as Arrow, PopoverArrowProps as ArrowProps, PopoverPopup as Popup, PopoverPopupProps as PopupProps, PopoverRoot as Root, PopoverRootProps as RootProps, PopoverTrigger as Trigger, PopoverTriggerProps as TriggerProps }; +} +//#endregion +export { PopoverArrow as Arrow, type PopoverArrowProps as ArrowProps, PopoverPopup as Popup, type PopoverPopupProps as PopupProps, PopoverRoot as Root, type PopoverRootProps as RootProps, PopoverTrigger as Trigger, type PopoverTriggerProps as TriggerProps, index_parts_d_exports }; +//# sourceMappingURL=index.parts.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/popover/index.parts.d.ts.map b/dist/dev/ui/popover/index.parts.d.ts.map new file mode 100644 index 00000000..6000a639 --- /dev/null +++ b/dist/dev/ui/popover/index.parts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../../src/ui/popover/index.parts.ts"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/popover/index.parts.js b/dist/dev/ui/popover/index.parts.js new file mode 100644 index 00000000..92fb9924 --- /dev/null +++ b/dist/dev/ui/popover/index.parts.js @@ -0,0 +1,16 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { PopoverArrow } from "./popover-arrow.js"; +import { PopoverPopup } from "./popover-popup.js"; +import { PopoverRoot } from "./popover-root.js"; +import { PopoverTrigger } from "./popover-trigger.js"; +//#region src/ui/popover/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Arrow: () => PopoverArrow, + Popup: () => PopoverPopup, + Root: () => PopoverRoot, + Trigger: () => PopoverTrigger +}); +//#endregion +export { PopoverArrow as Arrow, PopoverPopup as Popup, PopoverRoot as Root, PopoverTrigger as Trigger, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/dev/ui/popover/index.parts.js.map b/dist/dev/ui/popover/index.parts.js.map new file mode 100644 index 00000000..612d7e70 --- /dev/null +++ b/dist/dev/ui/popover/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/popover/index.parts.ts"],"sourcesContent":["export { PopoverArrow as Arrow, type PopoverArrowProps as ArrowProps } from './popover-arrow';\nexport { PopoverPopup as Popup, type PopoverPopupProps as PopupProps } from './popover-popup';\nexport { PopoverRoot as Root, type PopoverRootProps as RootProps } from './popover-root';\nexport { PopoverTrigger as Trigger, type PopoverTriggerProps as TriggerProps } from './popover-trigger';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-arrow.d.ts b/dist/dev/ui/popover/popover-arrow.d.ts new file mode 100644 index 00000000..fe2cbfd8 --- /dev/null +++ b/dist/dev/ui/popover/popover-arrow.d.ts @@ -0,0 +1,13 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { PopoverState } from "@videojs/core"; +//#region src/ui/popover/popover-arrow.d.ts +interface PopoverArrowProps extends UIComponentProps<'div', PopoverState> {} +/** Decorative arrow pointing from the popup toward the trigger. Hidden from assistive technology. */ +declare const PopoverArrow: import("react").ForwardRefExoticComponent; +declare namespace PopoverArrow { + type Props = PopoverArrowProps; + type State = PopoverState; +} +//#endregion +export { PopoverArrow, PopoverArrowProps }; +//# sourceMappingURL=popover-arrow.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-arrow.d.ts.map b/dist/dev/ui/popover/popover-arrow.d.ts.map new file mode 100644 index 00000000..99cfdc07 --- /dev/null +++ b/dist/dev/ui/popover/popover-arrow.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-arrow.d.ts","names":[],"sources":["../../../../src/ui/popover/popover-arrow.tsx"],"mappings":";;;UAQiB,0BAA0B,wBAAwB;;cAGtD,8BAAY,0BAAA;kBAOR;OACH,QAAQ;OACR,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-arrow.js b/dist/dev/ui/popover/popover-arrow.js new file mode 100644 index 00000000..9d67f572 --- /dev/null +++ b/dist/dev/ui/popover/popover-arrow.js @@ -0,0 +1,15 @@ +"use client"; +import { createContextPart } from "../create-context-part.js"; +import { usePopoverContext } from "./context.js"; +//#region src/ui/popover/popover-arrow.tsx +/** Decorative arrow pointing from the popup toward the trigger. Hidden from assistive technology. */ +const PopoverArrow = createContextPart({ + displayName: "PopoverArrow", + tag: "div", + useContext: usePopoverContext, + staticProps: { "aria-hidden": "true" } +}); +//#endregion +export { PopoverArrow }; + +//# sourceMappingURL=popover-arrow.js.map \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-arrow.js.map b/dist/dev/ui/popover/popover-arrow.js.map new file mode 100644 index 00000000..9a0f1ec0 --- /dev/null +++ b/dist/dev/ui/popover/popover-arrow.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-arrow.js","names":[],"sources":["../../../../src/ui/popover/popover-arrow.tsx"],"sourcesContent":["'use client';\n\nimport type { PopoverState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { usePopoverContext } from './context';\n\nexport interface PopoverArrowProps extends UIComponentProps<'div', PopoverState> {}\n\n/** Decorative arrow pointing from the popup toward the trigger. Hidden from assistive technology. */\nexport const PopoverArrow = createContextPart({\n displayName: 'PopoverArrow',\n tag: 'div',\n useContext: usePopoverContext,\n staticProps: { 'aria-hidden': 'true' as const },\n});\n\nexport namespace PopoverArrow {\n export type Props = PopoverArrowProps;\n export type State = PopoverState;\n}\n"],"mappings":";;;;;AAWA,MAAa,eAAe,kBAAmD;CAC7E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,aAAa,EAAE,eAAe,OAAgB;AAChD,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-popup.d.ts b/dist/dev/ui/popover/popover-popup.d.ts new file mode 100644 index 00000000..3c45a513 --- /dev/null +++ b/dist/dev/ui/popover/popover-popup.d.ts @@ -0,0 +1,13 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { PopoverState } from "@videojs/core"; +//#region src/ui/popover/popover-popup.d.ts +interface PopoverPopupProps extends UIComponentProps<'div', PopoverState> {} +/** Container for the popover content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */ +declare const PopoverPopup: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace PopoverPopup { + type Props = PopoverPopupProps; + type State = PopoverState; +} +//#endregion +export { PopoverPopup, PopoverPopupProps }; +//# sourceMappingURL=popover-popup.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-popup.d.ts.map b/dist/dev/ui/popover/popover-popup.d.ts.map new file mode 100644 index 00000000..927dc27b --- /dev/null +++ b/dist/dev/ui/popover/popover-popup.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-popup.d.ts","names":[],"sources":["../../../../src/ui/popover/popover-popup.tsx"],"mappings":";;;UAqBiB,0BAA0B,wBAAwB;;cAKtD,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAiKR;OACH,QAAQ;OACR,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-popup.js b/dist/dev/ui/popover/popover-popup.js new file mode 100644 index 00000000..631549ef --- /dev/null +++ b/dist/dev/ui/popover/popover-popup.js @@ -0,0 +1,126 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { renderElement } from "../../utils/use-render.js"; +import { usePopoverContext } from "./context.js"; +import { getAnchorPositionStyle, getPopupPositionRect, getPositionedSide, getPositioningBoundaryRect, isEventWithinElement, resolveOffsets, resolvePositioningBoundary } from "@videojs/core/dom"; +import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from "react"; +import { supportsAnchorPositioning } from "@videojs/utils/dom"; +//#region src/ui/popover/popover-popup.tsx +const POPOVER_RESET = { + position: "fixed", + inset: "auto", + margin: 0 +}; +/** Container for the popover content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */ +const PopoverPopup = forwardRef(function PopoverPopup({ render, className, style, ...elementProps }, forwardedRef) { + const { core, popover, state, preferredSide, setPositionedSide, stateAttrMap, anchorName, popupId, boundary, container } = usePopoverContext(); + const internalRef = useRef(null); + const composedRef = useComposedRefs(forwardedRef, useCallback((el) => { + popover.setPopupElement(el); + if (el && supportsAnchorPositioning()) el.style.setProperty("position-anchor", `--${anchorName}`); + }, [popover, anchorName]), internalRef); + const posOpts = useMemo(() => ({ + side: preferredSide, + align: state.align + }), [preferredSide, state.align]); + const anchorStyle = useMemo(() => { + if (!supportsAnchorPositioning()) return null; + const { positionAnchor: _, ...rest } = getAnchorPositionStyle(anchorName, posOpts); + return rest; + }, [anchorName, posOpts]); + const [position, setPosition] = useState(null); + useLayoutEffect(() => { + if (!state.open) { + setPosition(null); + return; + } + function measure() { + const triggerEl = popover.triggerElement; + const popupEl = internalRef.current; + if (!triggerEl || !popupEl) return; + const triggerRect = triggerEl.getBoundingClientRect(); + const root = popupEl.getRootNode(); + const boundaryElement = resolvePositioningBoundary(boundary, { + container, + root + }); + const popupRect = getPopupPositionRect(popupEl, posOpts.side); + const boundaryRect = getPositioningBoundaryRect(boundaryElement); + const offsets = resolveOffsets(popupEl); + const side = getPositionedSide(triggerRect, popupRect, boundaryRect, posOpts, offsets); + const { positionAnchor: _, ...nextStyle } = getAnchorPositionStyle(anchorName, { + ...posOpts, + side + }, triggerRect, supportsAnchorPositioning() ? void 0 : popupRect, boundaryRect, offsets); + setPosition(nextStyle); + setPositionedSide(side); + } + measure(); + const triggerEl = popover.triggerElement; + const popupEl = internalRef.current; + const boundaryElement = popupEl ? resolvePositioningBoundary(boundary, { + container, + root: popupEl.getRootNode() + }) : null; + let rafId = 0; + function reposition(event) { + if (event && isEventWithinElement(event, internalRef.current)) return; + cancelAnimationFrame(rafId); + rafId = requestAnimationFrame(measure); + } + reposition(); + const resizeObserver = typeof ResizeObserver === "function" ? new ResizeObserver(() => { + reposition(); + }) : null; + if (triggerEl && resizeObserver) resizeObserver.observe(triggerEl); + if (popupEl && resizeObserver) resizeObserver.observe(popupEl); + if (boundaryElement && resizeObserver) resizeObserver.observe(boundaryElement); + window.addEventListener("scroll", reposition, { + capture: true, + passive: true + }); + window.addEventListener("resize", reposition); + return () => { + cancelAnimationFrame(rafId); + resizeObserver?.disconnect(); + window.removeEventListener("scroll", reposition, true); + window.removeEventListener("resize", reposition); + }; + }, [ + state.open, + anchorName, + posOpts, + popover, + boundary, + container, + setPositionedSide + ]); + const positioningStyle = position ?? anchorStyle ?? POPOVER_RESET; + if (!state.open) return null; + const { onFocusOut, ...restPopupProps } = popover.popupProps; + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap, + ref: composedRef, + props: [ + { + id: popupId, + style: positioningStyle, + ...core.getPopupAttrs(state) + }, + { + ...restPopupProps, + onBlur: onFocusOut + }, + elementProps + ] + }); +}); +//#endregion +export { PopoverPopup }; + +//# sourceMappingURL=popover-popup.js.map \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-popup.js.map b/dist/dev/ui/popover/popover-popup.js.map new file mode 100644 index 00000000..b0277b7c --- /dev/null +++ b/dist/dev/ui/popover/popover-popup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-popup.js","names":[],"sources":["../../../../src/ui/popover/popover-popup.tsx"],"sourcesContent":["'use client';\n\nimport type { PopoverState } from '@videojs/core';\nimport {\n getAnchorPositionStyle,\n getPopupPositionRect,\n getPositionedSide,\n getPositioningBoundaryRect,\n isEventWithinElement,\n resolveOffsets,\n resolvePositioningBoundary,\n} from '@videojs/core/dom';\nimport { supportsAnchorPositioning } from '@videojs/utils/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { usePopoverContext } from './context';\n\nexport interface PopoverPopupProps extends UIComponentProps<'div', PopoverState> {}\n\nconst POPOVER_RESET: CSSProperties = { position: 'fixed', inset: 'auto', margin: 0 };\n\n/** Container for the popover content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */\nexport const PopoverPopup = forwardRef(function PopoverPopup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const {\n core,\n popover,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap,\n anchorName,\n popupId,\n boundary,\n container,\n } = usePopoverContext();\n const internalRef = useRef(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n popover.setPopupElement(el);\n if (el && supportsAnchorPositioning()) {\n el.style.setProperty('position-anchor', `--${anchorName}`);\n }\n },\n [popover, anchorName]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: preferredSide, align: state.align }), [preferredSide, state.align]);\n\n // CSS Anchor Positioning — computed from state, no measurement needed.\n // `position-anchor` is set imperatively in the ref callback above\n // because React's style prop silently drops unrecognised CSS properties.\n const anchorStyle = useMemo(() => {\n if (!supportsAnchorPositioning()) return null;\n const { positionAnchor: _, ...rest } = getAnchorPositionStyle(anchorName, posOpts);\n return rest as CSSProperties;\n }, [anchorName, posOpts]);\n\n // Measure rects after layout, before paint.\n const [position, setPosition] = useState(null);\n\n useLayoutEffect(() => {\n if (!state.open) {\n setPosition(null);\n return;\n }\n\n function measure(): void {\n const triggerEl = popover.triggerElement;\n const popupEl = internalRef.current;\n if (!triggerEl || !popupEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const root = popupEl.getRootNode() as Document | ShadowRoot;\n const boundaryElement = resolvePositioningBoundary(boundary, { container, root });\n const popupRect = getPopupPositionRect(popupEl, posOpts.side);\n const boundaryRect = getPositioningBoundaryRect(boundaryElement);\n const offsets = resolveOffsets(popupEl);\n const side = getPositionedSide(triggerRect, popupRect, boundaryRect, posOpts, offsets);\n\n const { positionAnchor: _, ...nextStyle } = getAnchorPositionStyle(\n anchorName,\n { ...posOpts, side },\n triggerRect,\n supportsAnchorPositioning() ? undefined : popupRect,\n boundaryRect,\n offsets\n );\n\n setPosition(nextStyle as CSSProperties);\n setPositionedSide(side);\n }\n\n measure();\n const triggerEl = popover.triggerElement;\n const popupEl = internalRef.current;\n const boundaryElement = popupEl\n ? resolvePositioningBoundary(boundary, {\n container,\n root: popupEl.getRootNode() as Document | ShadowRoot,\n })\n : null;\n\n let rafId = 0;\n function reposition(event?: Event): void {\n if (event && isEventWithinElement(event, internalRef.current)) return;\n\n cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(measure);\n }\n\n // Re-measure after the popover has entered the top layer and whenever\n // its own size or the trigger size changes.\n reposition();\n\n const resizeObserver =\n typeof ResizeObserver === 'function'\n ? new ResizeObserver(() => {\n reposition();\n })\n : null;\n\n if (triggerEl && resizeObserver) {\n resizeObserver.observe(triggerEl);\n }\n\n if (popupEl && resizeObserver) {\n resizeObserver.observe(popupEl);\n }\n if (boundaryElement && resizeObserver) {\n resizeObserver.observe(boundaryElement);\n }\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true });\n window.addEventListener('resize', reposition);\n\n return () => {\n cancelAnimationFrame(rafId);\n resizeObserver?.disconnect();\n window.removeEventListener('scroll', reposition, true);\n window.removeEventListener('resize', reposition);\n };\n }, [state.open, anchorName, posOpts, popover, boundary, container, setPositionedSide]);\n\n // Use measured styles once available; reset UA [popover] defaults until then.\n const positioningStyle = position ?? anchorStyle ?? POPOVER_RESET;\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n // Remap DOM focus events to React synthetic event names.\n const { onFocusOut, ...restPopupProps } = popover.popupProps;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [\n {\n id: popupId,\n style: positioningStyle,\n ...core.getPopupAttrs(state),\n },\n { ...restPopupProps, onBlur: onFocusOut },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace PopoverPopup {\n export type Props = PopoverPopupProps;\n export type State = PopoverState;\n}\n"],"mappings":";;;;;;;;AAuBA,MAAM,gBAA+B;CAAE,UAAU;CAAS,OAAO;CAAQ,QAAQ;AAAE;;AAGnF,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EACJ,MACA,SACA,OACA,eACA,mBACA,cACA,YACA,SACA,UACA,cACE,kBAAkB;CACtB,MAAM,cAAc,OAAuB,IAAI;CAY/C,MAAM,cAAc,gBAAgB,cAVnB,aACd,OAA8B;EAC7B,QAAQ,gBAAgB,EAAE;EAC1B,IAAI,MAAM,0BAA0B,GAClC,GAAG,MAAM,YAAY,mBAAmB,KAAK,YAAY;CAE7D,GACA,CAAC,SAAS,UAAU,CAGmC,GAAG,WAAW;CAIvE,MAAM,UAAU,eAAe;EAAE,MAAM;EAAe,OAAO,MAAM;CAAM,IAAI,CAAC,eAAe,MAAM,KAAK,CAAC;CAKzG,MAAM,cAAc,cAAc;EAChC,IAAI,CAAC,0BAA0B,GAAG,OAAO;EACzC,MAAM,EAAE,gBAAgB,GAAG,GAAG,SAAS,uBAAuB,YAAY,OAAO;EACjF,OAAO;CACT,GAAG,CAAC,YAAY,OAAO,CAAC;CAGxB,MAAM,CAAC,UAAU,eAAe,SAA+B,IAAI;CAEnE,sBAAsB;EACpB,IAAI,CAAC,MAAM,MAAM;GACf,YAAY,IAAI;GAChB;EACF;EAEA,SAAS,UAAgB;GACvB,MAAM,YAAY,QAAQ;GAC1B,MAAM,UAAU,YAAY;GAC5B,IAAI,CAAC,aAAa,CAAC,SAAS;GAE5B,MAAM,cAAc,UAAU,sBAAsB;GACpD,MAAM,OAAO,QAAQ,YAAY;GACjC,MAAM,kBAAkB,2BAA2B,UAAU;IAAE;IAAW;GAAK,CAAC;GAChF,MAAM,YAAY,qBAAqB,SAAS,QAAQ,IAAI;GAC5D,MAAM,eAAe,2BAA2B,eAAe;GAC/D,MAAM,UAAU,eAAe,OAAO;GACtC,MAAM,OAAO,kBAAkB,aAAa,WAAW,cAAc,SAAS,OAAO;GAErF,MAAM,EAAE,gBAAgB,GAAG,GAAG,cAAc,uBAC1C,YACA;IAAE,GAAG;IAAS;GAAK,GACnB,aACA,0BAA0B,IAAI,KAAA,IAAY,WAC1C,cACA,OACF;GAEA,YAAY,SAA0B;GACtC,kBAAkB,IAAI;EACxB;EAEA,QAAQ;EACR,MAAM,YAAY,QAAQ;EAC1B,MAAM,UAAU,YAAY;EAC5B,MAAM,kBAAkB,UACpB,2BAA2B,UAAU;GACnC;GACA,MAAM,QAAQ,YAAY;EAC5B,CAAC,IACD;EAEJ,IAAI,QAAQ;EACZ,SAAS,WAAW,OAAqB;GACvC,IAAI,SAAS,qBAAqB,OAAO,YAAY,OAAO,GAAG;GAE/D,qBAAqB,KAAK;GAC1B,QAAQ,sBAAsB,OAAO;EACvC;EAIA,WAAW;EAEX,MAAM,iBACJ,OAAO,mBAAmB,aACtB,IAAI,qBAAqB;GACvB,WAAW;EACb,CAAC,IACD;EAEN,IAAI,aAAa,gBACf,eAAe,QAAQ,SAAS;EAGlC,IAAI,WAAW,gBACb,eAAe,QAAQ,OAAO;EAEhC,IAAI,mBAAmB,gBACrB,eAAe,QAAQ,eAAe;EAGxC,OAAO,iBAAiB,UAAU,YAAY;GAAE,SAAS;GAAM,SAAS;EAAK,CAAC;EAC9E,OAAO,iBAAiB,UAAU,UAAU;EAE5C,aAAa;GACX,qBAAqB,KAAK;GAC1B,gBAAgB,WAAW;GAC3B,OAAO,oBAAoB,UAAU,YAAY,IAAI;GACrD,OAAO,oBAAoB,UAAU,UAAU;EACjD;CACF,GAAG;EAAC,MAAM;EAAM;EAAY;EAAS;EAAS;EAAU;EAAW;CAAiB,CAAC;CAGrF,MAAM,mBAAmB,YAAY,eAAe;CAIpD,IAAI,CAAC,MAAM,MACT,OAAO;CAIT,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;CAElD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,KAAK;GAC7B;GACA;IAAE,GAAG;IAAgB,QAAQ;GAAW;GACxC;EACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-root.d.ts b/dist/dev/ui/popover/popover-root.d.ts new file mode 100644 index 00000000..9572e1ae --- /dev/null +++ b/dist/dev/ui/popover/popover-root.d.ts @@ -0,0 +1,20 @@ +import { PopoverChangeDetails, PositioningBoundary } from "@videojs/core/dom"; +import { ReactNode } from "react"; +import { PopoverProps } from "@videojs/core"; +//#region src/ui/popover/popover-root.d.ts +interface PopoverRootProps extends PopoverProps { + /** Boundary used to constrain the popup size. */ + boundary?: PositioningBoundary; + /** Called when the popover open state changes (fires immediately, before animations). */ + onOpenChange?: (open: boolean, details: PopoverChangeDetails) => void; + /** Called after open/close animations complete. */ + onOpenChangeComplete?: (open: boolean) => void; + children?: ReactNode; +} +declare function PopoverRoot({ open: controlledOpen, defaultOpen, onOpenChange: onOpenChangeProp, onOpenChangeComplete: onOpenChangeCompleteProp, openOnHover, delay, closeDelay, boundary, children, ...coreProps }: PopoverRootProps): ReactNode; +declare namespace PopoverRoot { + type Props = PopoverRootProps; +} +//#endregion +export { PopoverRoot, PopoverRootProps }; +//# sourceMappingURL=popover-root.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-root.d.ts.map b/dist/dev/ui/popover/popover-root.d.ts.map new file mode 100644 index 00000000..7838060d --- /dev/null +++ b/dist/dev/ui/popover/popover-root.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-root.d.ts","names":[],"sources":["../../../../src/ui/popover/popover-root.tsx"],"mappings":";;;;UAqBiB,yBAAyB;;EAExC,WAAW;;EAEX,gBAAgB,eAAe,SAAS;;EAExC,wBAAwB;EACxB,WAAW;;iBAGG,cACd,MAAM,gBACN,aACA,cAAc,kBACd,sBAAsB,0BACtB,aACA,OACA,YACA,UACA,aACG,aACF,mBAAmB;kBA+FL;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-root.js b/dist/dev/ui/popover/popover-root.js new file mode 100644 index 00000000..5a328c8a --- /dev/null +++ b/dist/dev/ui/popover/popover-root.js @@ -0,0 +1,87 @@ +"use client"; +import { useOptionalContainer, useOptionalPopupGroup } from "../../player/context.js"; +import { useLatestRef } from "../../utils/use-latest-ref.js"; +import { useDestroy } from "../../utils/use-destroy.js"; +import { useSafeId } from "../../utils/use-safe-id.js"; +import { useOptionalControlsContext } from "../controls/context.js"; +import { usePositionedState } from "../hooks/use-positioned-state.js"; +import { PopoverContextProvider } from "./context.js"; +import { createPopover, createTransition } from "@videojs/core/dom"; +import { useSnapshot } from "@videojs/store/react"; +import { useEffect, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { isUndefined } from "@videojs/utils/predicate"; +import { PopoverCore, PopoverDataAttrs } from "@videojs/core"; +//#region src/ui/popover/popover-root.tsx +function PopoverRoot({ open: controlledOpen, defaultOpen = PopoverCore.defaultProps.defaultOpen, onOpenChange: onOpenChangeProp, onOpenChangeComplete: onOpenChangeCompleteProp, openOnHover = PopoverCore.defaultProps.openOnHover, delay = PopoverCore.defaultProps.delay, closeDelay = PopoverCore.defaultProps.closeDelay, boundary = "container", children, ...coreProps }) { + const container = useOptionalContainer(); + const popupGroup = useOptionalPopupGroup(); + const controls = useOptionalControlsContext(); + const [core] = useState(() => new PopoverCore(coreProps)); + core.setProps(coreProps); + const isControlled = !isUndefined(controlledOpen); + const onOpenChangeRef = useLatestRef(onOpenChangeProp); + const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp); + const closeOnEscapeRef = useLatestRef(coreProps.closeOnEscape); + const closeOnOutsideClickRef = useLatestRef(coreProps.closeOnOutsideClick); + const openOnHoverRef = useLatestRef(openOnHover); + const delayRef = useLatestRef(delay); + const closeDelayRef = useLatestRef(closeDelay); + const popupGroupRef = useLatestRef(popupGroup); + const [popover] = useState(() => { + const instance = createPopover({ + transition: createTransition(), + onOpenChange: (nextOpen, details) => { + onOpenChangeRef.current?.(nextOpen, details); + }, + onOpenChangeComplete: (nextOpen) => { + onOpenChangeCompleteRef.current?.(nextOpen); + }, + closeOnEscape: () => closeOnEscapeRef.current ?? PopoverCore.defaultProps.closeOnEscape, + closeOnOutsideClick: () => closeOnOutsideClickRef.current ?? PopoverCore.defaultProps.closeOnOutsideClick, + openOnHover: () => openOnHoverRef.current, + delay: () => delayRef.current, + closeDelay: () => closeDelayRef.current, + group: () => popupGroupRef.current + }); + if (!isControlled && defaultOpen) instance.open("click"); + return instance; + }); + const anchorName = useSafeId(); + const popupId = useSafeId("popup"); + useEffect(() => { + if (isUndefined(controlledOpen)) return; + const { active: inputOpen } = popover.input.current; + if (controlledOpen === inputOpen) return; + if (controlledOpen) popover.open("click"); + else popover.close("click"); + }, [controlledOpen, popover]); + useEffect(() => { + if (isUndefined(controls?.state.visible)) return; + if (controls.state.visible) return; + popover.close("imperative-action"); + }, [controls?.state.visible, popover]); + useDestroy(popover); + const input = useSnapshot(popover.input); + core.setInput(input); + const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState()); + return /* @__PURE__ */ jsx(PopoverContextProvider, { + value: { + core, + popover, + state, + preferredSide, + setPositionedSide, + stateAttrMap: PopoverDataAttrs, + anchorName, + popupId, + boundary, + container + }, + children + }); +} +//#endregion +export { PopoverRoot }; + +//# sourceMappingURL=popover-root.js.map \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-root.js.map b/dist/dev/ui/popover/popover-root.js.map new file mode 100644 index 00000000..edf03548 --- /dev/null +++ b/dist/dev/ui/popover/popover-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"popover-root.js","names":[],"sources":["../../../../src/ui/popover/popover-root.tsx"],"sourcesContent":["'use client';\n\nimport { type PopoverProps as CorePopoverProps, PopoverCore, PopoverDataAttrs } from '@videojs/core';\nimport {\n createPopover,\n createTransition,\n type PopoverChangeDetails,\n type PositioningBoundary,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\nimport { useOptionalContainer, useOptionalPopupGroup } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { useOptionalControlsContext } from '../controls/context';\nimport { usePositionedState } from '../hooks/use-positioned-state';\nimport { PopoverContextProvider } from './context';\n\nexport interface PopoverRootProps extends CorePopoverProps {\n /** Boundary used to constrain the popup size. */\n boundary?: PositioningBoundary;\n /** Called when the popover open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: PopoverChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function PopoverRoot({\n open: controlledOpen,\n defaultOpen = PopoverCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n openOnHover = PopoverCore.defaultProps.openOnHover,\n delay = PopoverCore.defaultProps.delay,\n closeDelay = PopoverCore.defaultProps.closeDelay,\n boundary = 'container',\n children,\n ...coreProps\n}: PopoverRootProps): ReactNode {\n const container = useOptionalContainer();\n const popupGroup = useOptionalPopupGroup();\n const controls = useOptionalControlsContext();\n const [core] = useState(() => new PopoverCore(coreProps));\n core.setProps(coreProps);\n\n const isControlled = !isUndefined(controlledOpen);\n\n // Keep refs that always point to the latest values so the\n // createPopover closure never reads stale props.\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n const closeOnEscapeRef = useLatestRef(coreProps.closeOnEscape);\n const closeOnOutsideClickRef = useLatestRef(coreProps.closeOnOutsideClick);\n const openOnHoverRef = useLatestRef(openOnHover);\n const delayRef = useLatestRef(delay);\n const closeDelayRef = useLatestRef(closeDelay);\n const popupGroupRef = useLatestRef(popupGroup);\n\n const [popover] = useState(() => {\n const instance = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n closeOnEscape: () => closeOnEscapeRef.current ?? PopoverCore.defaultProps.closeOnEscape,\n closeOnOutsideClick: () => closeOnOutsideClickRef.current ?? PopoverCore.defaultProps.closeOnOutsideClick,\n openOnHover: () => openOnHoverRef.current,\n delay: () => delayRef.current,\n closeDelay: () => closeDelayRef.current,\n group: () => popupGroupRef.current,\n });\n\n // Apply defaultOpen on creation (uncontrolled only)\n if (!isControlled && defaultOpen) {\n instance.open('click');\n }\n\n return instance;\n });\n\n const anchorName = useSafeId();\n const popupId = useSafeId('popup');\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (isUndefined(controlledOpen)) return;\n\n const { active: inputOpen } = popover.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n popover.open('click');\n } else {\n popover.close('click');\n }\n }, [controlledOpen, popover]);\n\n useEffect(() => {\n if (isUndefined(controls?.state.visible)) return;\n if (controls.state.visible) return;\n\n popover.close('imperative-action');\n }, [controls?.state.visible, popover]);\n\n useDestroy(popover);\n\n const input = useSnapshot(popover.input);\n core.setInput(input);\n const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState());\n\n return (\n \n {children}\n \n );\n}\n\nexport namespace PopoverRoot {\n export type Props = PopoverRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA+BA,SAAgB,YAAY,EAC1B,MAAM,gBACN,cAAc,YAAY,aAAa,aACvC,cAAc,kBACd,sBAAsB,0BACtB,cAAc,YAAY,aAAa,aACvC,QAAQ,YAAY,aAAa,OACjC,aAAa,YAAY,aAAa,YACtC,WAAW,aACX,UACA,GAAG,aAC2B;CAC9B,MAAM,YAAY,qBAAqB;CACvC,MAAM,aAAa,sBAAsB;CACzC,MAAM,WAAW,2BAA2B;CAC5C,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,SAAS,CAAC;CACxD,KAAK,SAAS,SAAS;CAEvB,MAAM,eAAe,CAAC,YAAY,cAAc;CAIhD,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CACrE,MAAM,mBAAmB,aAAa,UAAU,aAAa;CAC7D,MAAM,yBAAyB,aAAa,UAAU,mBAAmB;CACzE,MAAM,iBAAiB,aAAa,WAAW;CAC/C,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,gBAAgB,aAAa,UAAU;CAC7C,MAAM,gBAAgB,aAAa,UAAU;CAE7C,MAAM,CAAC,WAAW,eAAe;EAC/B,MAAM,WAAW,cAAc;GAC7B,YAAY,iBAAiB;GAC7B,eAAe,UAAmB,YAAkC;IAClE,gBAAgB,UAAU,UAAU,OAAO;GAC7C;GACA,uBAAuB,aAAsB;IAC3C,wBAAwB,UAAU,QAAQ;GAC5C;GACA,qBAAqB,iBAAiB,WAAW,YAAY,aAAa;GAC1E,2BAA2B,uBAAuB,WAAW,YAAY,aAAa;GACtF,mBAAmB,eAAe;GAClC,aAAa,SAAS;GACtB,kBAAkB,cAAc;GAChC,aAAa,cAAc;EAC7B,CAAC;EAGD,IAAI,CAAC,gBAAgB,aACnB,SAAS,KAAK,OAAO;EAGvB,OAAO;CACT,CAAC;CAED,MAAM,aAAa,UAAU;CAC7B,MAAM,UAAU,UAAU,OAAO;CAGjC,gBAAgB;EACd,IAAI,YAAY,cAAc,GAAG;EAEjC,MAAM,EAAE,QAAQ,cAAc,QAAQ,MAAM;EAC5C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBACF,QAAQ,KAAK,OAAO;OAEpB,QAAQ,MAAM,OAAO;CAEzB,GAAG,CAAC,gBAAgB,OAAO,CAAC;CAE5B,gBAAgB;EACd,IAAI,YAAY,UAAU,MAAM,OAAO,GAAG;EAC1C,IAAI,SAAS,MAAM,SAAS;EAE5B,QAAQ,MAAM,mBAAmB;CACnC,GAAG,CAAC,UAAU,MAAM,SAAS,OAAO,CAAC;CAErC,WAAW,OAAO;CAElB,MAAM,QAAQ,YAAY,QAAQ,KAAK;CACvC,KAAK,SAAS,KAAK;CACnB,MAAM,EAAE,OAAO,eAAe,sBAAsB,mBAAmB,KAAK,SAAS,CAAC;CAEtF,OACE,oBAAC,wBAAD;EACE,OAAO;GACL;GACA;GACA;GACA;GACA;GACA,cAAc;GACd;GACA;GACA;GACA;EACF;EAEC;CACqB,CAAA;AAE5B"} \ No newline at end of file diff --git a/dist/dev/ui/popover/popover-trigger.d.ts b/dist/dev/ui/popover/popover-trigger.d.ts new file mode 100644 index 00000000..12be548c --- /dev/null +++ b/dist/dev/ui/popover/popover-trigger.d.ts @@ -0,0 +1,13 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { PopoverState } from "@videojs/core"; +//#region src/ui/popover/popover-trigger.d.ts +interface PopoverTriggerProps extends UIComponentProps<'button', PopoverState> {} +/** Button that toggles the popover visibility. Renders a ` + * )} + * /> + * ``` + */ +declare const SeekButton: import("react").ForwardRefExoticComponent>; +declare namespace SeekButton { + type Props = SeekButtonProps; + type State = SeekButtonCore.State; +} +//#endregion +export { SeekButton, SeekButtonProps }; +//# sourceMappingURL=seek-button.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/seek-button/seek-button.d.ts.map b/dist/dev/ui/seek-button/seek-button.d.ts.map new file mode 100644 index 00000000..723ce11e --- /dev/null +++ b/dist/dev/ui/seek-button/seek-button.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-button.d.ts","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"mappings":";;;UAQiB,wBAAwB,2BAA2B,eAAe,QAAQ,eAAe;;;;;;;;;;;;;;;;;;cAmB7F,4BAAU,0BAAA,kCAAA,cAAA;kBAUN;OACH,QAAQ;OACR,QAAQ,eAAe"} \ No newline at end of file diff --git a/dist/dev/ui/seek-button/seek-button.js b/dist/dev/ui/seek-button/seek-button.js new file mode 100644 index 00000000..a1c79bef --- /dev/null +++ b/dist/dev/ui/seek-button/seek-button.js @@ -0,0 +1,35 @@ +"use client"; +import { createMediaButton } from "../create-media-button.js"; +import { selectTime } from "@videojs/core/dom"; +import { SeekButtonCore, SeekButtonDataAttrs } from "@videojs/core"; +//#region src/ui/seek-button/seek-button.tsx +/** +* A button that seeks forward or backward by a configurable number of seconds. +* +* @example +* ```tsx +* +* +* ( +* +* )} +* /> +* ``` +*/ +const SeekButton = createMediaButton({ + displayName: "SeekButton", + core: SeekButtonCore, + stateAttrMap: SeekButtonDataAttrs, + selector: selectTime, + action: (core, state) => core.seek(state), + hotkeyAction: "seekStep", + hotkeyValue: (props) => typeof props.seconds === "number" ? props.seconds : SeekButtonCore.defaultProps.seconds +}); +//#endregion +export { SeekButton }; + +//# sourceMappingURL=seek-button.js.map \ No newline at end of file diff --git a/dist/dev/ui/seek-button/seek-button.js.map b/dist/dev/ui/seek-button/seek-button.js.map new file mode 100644 index 00000000..c521ef78 --- /dev/null +++ b/dist/dev/ui/seek-button/seek-button.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-button.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"sourcesContent":["'use client';\n\nimport { SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface SeekButtonProps extends UIComponentProps<'button', SeekButtonCore.State>, SeekButtonCore.Props {}\n\n/**\n * A button that seeks forward or backward by a configurable number of seconds.\n *\n * @example\n * ```tsx\n * \n *\n * (\n * \n * )}\n * />\n * ```\n */\nexport const SeekButton = createMediaButton({\n displayName: 'SeekButton',\n core: SeekButtonCore,\n stateAttrMap: SeekButtonDataAttrs,\n selector: selectTime,\n action: (core, state) => core.seek(state),\n hotkeyAction: 'seekStep',\n hotkeyValue: (props) => (typeof props.seconds === 'number' ? props.seconds : SeekButtonCore.defaultProps.seconds),\n});\n\nexport namespace SeekButton {\n export type Props = SeekButtonProps;\n export type State = SeekButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,KAAK,KAAK;CACxC,cAAc;CACd,cAAc,UAAW,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU,eAAe,aAAa;AAC3G,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/context.js b/dist/dev/ui/seek-indicator/context.js new file mode 100644 index 00000000..8acbe4e1 --- /dev/null +++ b/dist/dev/ui/seek-indicator/context.js @@ -0,0 +1,20 @@ +"use client"; +import { createContext, useContext } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/ui/seek-indicator/context.tsx +const SeekIndicatorContext = createContext(null); +function SeekIndicatorProvider({ value, children }) { + return /* @__PURE__ */ jsx(SeekIndicatorContext.Provider, { + value, + children + }); +} +function useSeekIndicatorContext() { + const ctx = useContext(SeekIndicatorContext); + if (!ctx) throw new Error("SeekIndicator child compounds must be used within a SeekIndicator.Root"); + return ctx; +} +//#endregion +export { SeekIndicatorProvider, useSeekIndicatorContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/context.js.map b/dist/dev/ui/seek-indicator/context.js.map new file mode 100644 index 00000000..ea347fd5 --- /dev/null +++ b/dist/dev/ui/seek-indicator/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/seek-indicator/context.tsx"],"sourcesContent":["'use client';\n\nimport type { SeekIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface SeekIndicatorContextValue {\n state: SeekIndicatorCore.State;\n}\n\nconst SeekIndicatorContext = createContext(null);\n\nexport function SeekIndicatorProvider({ value, children }: ProviderProps) {\n return {children};\n}\n\nexport function useSeekIndicatorContext(): SeekIndicatorContextValue {\n const ctx = useContext(SeekIndicatorContext);\n if (!ctx) throw new Error('SeekIndicator child compounds must be used within a SeekIndicator.Root');\n return ctx;\n}\n"],"mappings":";;;;AASA,MAAM,uBAAuB,cAAgD,IAAI;AAEjF,SAAgB,sBAAsB,EAAE,OAAO,YAAsD;CACnG,OAAO,oBAAC,qBAAqB,UAAtB;EAAsC;EAAQ;CAAwC,CAAA;AAC/F;AAEA,SAAgB,0BAAqD;CACnE,MAAM,MAAM,WAAW,oBAAoB;CAC3C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,wEAAwE;CAClG,OAAO;AACT"} \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/index.d.ts b/dist/dev/ui/seek-indicator/index.d.ts new file mode 100644 index 00000000..de8bdfec --- /dev/null +++ b/dist/dev/ui/seek-indicator/index.d.ts @@ -0,0 +1,2 @@ +import { index_parts_d_exports } from "./index.parts.js"; +export { index_parts_d_exports as SeekIndicator }; \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/index.js b/dist/dev/ui/seek-indicator/index.js new file mode 100644 index 00000000..651cf136 --- /dev/null +++ b/dist/dev/ui/seek-indicator/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as SeekIndicator }; diff --git a/dist/dev/ui/seek-indicator/index.parts.d.ts b/dist/dev/ui/seek-indicator/index.parts.d.ts new file mode 100644 index 00000000..132dac8e --- /dev/null +++ b/dist/dev/ui/seek-indicator/index.parts.d.ts @@ -0,0 +1,8 @@ +import { SeekIndicatorRoot, SeekIndicatorRootProps } from "./seek-indicator-root.js"; +import { SeekIndicatorValue, SeekIndicatorValueProps } from "./seek-indicator-value.js"; +declare namespace index_parts_d_exports { + export { SeekIndicatorRoot as Root, SeekIndicatorRootProps as RootProps, SeekIndicatorValue as Value, SeekIndicatorValueProps as ValueProps }; +} +//#endregion +export { SeekIndicatorRoot as Root, type SeekIndicatorRootProps as RootProps, SeekIndicatorValue as Value, type SeekIndicatorValueProps as ValueProps, index_parts_d_exports }; +//# sourceMappingURL=index.parts.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/index.parts.d.ts.map b/dist/dev/ui/seek-indicator/index.parts.d.ts.map new file mode 100644 index 00000000..208f262e --- /dev/null +++ b/dist/dev/ui/seek-indicator/index.parts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../../src/ui/seek-indicator/index.parts.ts"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/index.parts.js b/dist/dev/ui/seek-indicator/index.parts.js new file mode 100644 index 00000000..603b3455 --- /dev/null +++ b/dist/dev/ui/seek-indicator/index.parts.js @@ -0,0 +1,12 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { SeekIndicatorRoot } from "./seek-indicator-root.js"; +import { SeekIndicatorValue } from "./seek-indicator-value.js"; +//#region src/ui/seek-indicator/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Root: () => SeekIndicatorRoot, + Value: () => SeekIndicatorValue +}); +//#endregion +export { SeekIndicatorRoot as Root, SeekIndicatorValue as Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/index.parts.js.map b/dist/dev/ui/seek-indicator/index.parts.js.map new file mode 100644 index 00000000..d845cc46 --- /dev/null +++ b/dist/dev/ui/seek-indicator/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/seek-indicator/index.parts.ts"],"sourcesContent":["export { SeekIndicatorRoot as Root, type SeekIndicatorRootProps as RootProps } from './seek-indicator-root';\nexport { SeekIndicatorValue as Value, type SeekIndicatorValueProps as ValueProps } from './seek-indicator-value';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts b/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts new file mode 100644 index 00000000..1bf6a14d --- /dev/null +++ b/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts @@ -0,0 +1,12 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SeekIndicatorCore } from "@videojs/core"; +//#region src/ui/seek-indicator/seek-indicator-root.d.ts +interface SeekIndicatorRootProps extends UIComponentProps<'div', SeekIndicatorCore.State>, SeekIndicatorCore.Props {} +declare const SeekIndicatorRoot: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace SeekIndicatorRoot { + type Props = SeekIndicatorRootProps; + type State = SeekIndicatorCore.State; +} +//#endregion +export { SeekIndicatorRoot, SeekIndicatorRootProps }; +//# sourceMappingURL=seek-indicator-root.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map b/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map new file mode 100644 index 00000000..38b03e03 --- /dev/null +++ b/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-indicator-root.d.ts","names":[],"sources":["../../../../src/ui/seek-indicator/seek-indicator-root.tsx"],"mappings":";;;UAWiB,+BACP,wBAAwB,kBAAkB,QAChD,kBAAkB;cAET,mCAAiB,0BAAA,KAAA,iDAAA,cAAA;kBAyBb;OACH,QAAQ;OACR,QAAQ,kBAAkB"} \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/seek-indicator-root.js b/dist/dev/ui/seek-indicator/seek-indicator-root.js new file mode 100644 index 00000000..657f7577 --- /dev/null +++ b/dist/dev/ui/seek-indicator/seek-indicator-root.js @@ -0,0 +1,30 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useInputIndicatorRoot } from "../input-indicators/use-input-indicator-root.js"; +import { SeekIndicatorProvider } from "./context.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { SeekIndicatorCore, SeekIndicatorDataAttrs } from "@videojs/core"; +//#region src/ui/seek-indicator/seek-indicator-root.tsx +const SeekIndicatorRoot = forwardRef(function SeekIndicatorRoot(componentProps, forwardedRef) { + const { render, className, style, closeDelay, ...elementProps } = componentProps; + const { elementRef, present, state } = useInputIndicatorRoot(() => new SeekIndicatorCore(), { closeDelay }); + if (!present) return null; + return /* @__PURE__ */ jsx(SeekIndicatorProvider, { + value: { state }, + children: renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: SeekIndicatorDataAttrs, + ref: [forwardedRef, elementRef], + props: [elementProps] + }) + }); +}); +//#endregion +export { SeekIndicatorRoot }; + +//# sourceMappingURL=seek-indicator-root.js.map \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/seek-indicator-root.js.map b/dist/dev/ui/seek-indicator/seek-indicator-root.js.map new file mode 100644 index 00000000..8da8ec98 --- /dev/null +++ b/dist/dev/ui/seek-indicator/seek-indicator-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-indicator-root.js","names":[],"sources":["../../../../src/ui/seek-indicator/seek-indicator-root.tsx"],"sourcesContent":["'use client';\n\nimport { SeekIndicatorCore, SeekIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicators/use-input-indicator-root';\nimport { SeekIndicatorProvider } from './context';\n\nexport interface SeekIndicatorRootProps\n extends UIComponentProps<'div', SeekIndicatorCore.State>,\n SeekIndicatorCore.Props {}\n\nexport const SeekIndicatorRoot = forwardRef(function SeekIndicatorRoot(\n componentProps: SeekIndicatorRootProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, closeDelay, ...elementProps } = componentProps;\n const { elementRef, present, state } = useInputIndicatorRoot(() => new SeekIndicatorCore(), { closeDelay });\n\n if (!present) return null;\n\n return (\n \n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SeekIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n \n );\n});\n\nexport namespace SeekIndicatorRoot {\n export type Props = SeekIndicatorRootProps;\n export type State = SeekIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;AAeA,MAAa,oBAAoB,WAAW,SAAS,kBACnD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,GAAG,iBAAiB;CAClE,MAAM,EAAE,YAAY,SAAS,UAAU,4BAA4B,IAAI,kBAAkB,GAAG,EAAE,WAAW,CAAC;CAE1G,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,uBAAD;EAAuB,OAAO,EAAE,MAAM;EACnC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACqB,CAAA;AAE3B,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts b/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts new file mode 100644 index 00000000..7370efd7 --- /dev/null +++ b/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts @@ -0,0 +1,11 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SeekIndicatorCore } from "@videojs/core"; +//#region src/ui/seek-indicator/seek-indicator-value.d.ts +interface SeekIndicatorValueProps extends UIComponentProps<'div', SeekIndicatorCore.State> {} +declare const SeekIndicatorValue: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace SeekIndicatorValue { + type Props = SeekIndicatorValueProps; +} +//#endregion +export { SeekIndicatorValue, SeekIndicatorValueProps }; +//# sourceMappingURL=seek-indicator-value.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map b/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map new file mode 100644 index 00000000..441f8f1c --- /dev/null +++ b/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-indicator-value.d.ts","names":[],"sources":["../../../../src/ui/seek-indicator/seek-indicator-value.tsx"],"mappings":";;;UAUiB,gCAAgC,wBAAwB,kBAAkB;cAE9E,oCAAkB,0BAAA,KAAA,kDAAA,cAAA;kBAkBd;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/seek-indicator-value.js b/dist/dev/ui/seek-indicator/seek-indicator-value.js new file mode 100644 index 00000000..2ad810ba --- /dev/null +++ b/dist/dev/ui/seek-indicator/seek-indicator-value.js @@ -0,0 +1,23 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useSeekIndicatorContext } from "./context.js"; +import { forwardRef } from "react"; +import { getSeekIndicatorDisplayValue } from "@videojs/core"; +//#region src/ui/seek-indicator/seek-indicator-value.tsx +const SeekIndicatorValue = forwardRef(function SeekIndicatorValue(componentProps, forwardedRef) { + const { render, className, style, ...elementProps } = componentProps; + const { state } = useSeekIndicatorContext(); + return renderElement("div", { + render, + className, + style + }, { + state, + ref: forwardedRef, + props: [{ children: getSeekIndicatorDisplayValue(state) }, elementProps] + }); +}); +//#endregion +export { SeekIndicatorValue }; + +//# sourceMappingURL=seek-indicator-value.js.map \ No newline at end of file diff --git a/dist/dev/ui/seek-indicator/seek-indicator-value.js.map b/dist/dev/ui/seek-indicator/seek-indicator-value.js.map new file mode 100644 index 00000000..f33fafb9 --- /dev/null +++ b/dist/dev/ui/seek-indicator/seek-indicator-value.js.map @@ -0,0 +1 @@ +{"version":3,"file":"seek-indicator-value.js","names":[],"sources":["../../../../src/ui/seek-indicator/seek-indicator-value.tsx"],"sourcesContent":["'use client';\n\nimport { getSeekIndicatorDisplayValue, type SeekIndicatorCore } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSeekIndicatorContext } from './context';\n\nexport interface SeekIndicatorValueProps extends UIComponentProps<'div', SeekIndicatorCore.State> {}\n\nexport const SeekIndicatorValue = forwardRef(function SeekIndicatorValue(\n componentProps: SeekIndicatorValueProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state } = useSeekIndicatorContext();\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [{ children: getSeekIndicatorDisplayValue(state) }, elementProps],\n }\n );\n});\n\nexport namespace SeekIndicatorValue {\n export type Props = SeekIndicatorValueProps;\n}\n"],"mappings":";;;;;;AAYA,MAAa,qBAAqB,WAAW,SAAS,mBACpD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,UAAU,wBAAwB;CAE1C,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CAAC,EAAE,UAAU,6BAA6B,KAAK,EAAE,GAAG,YAAY;CACzE,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/slider/context.js b/dist/dev/ui/slider/context.js new file mode 100644 index 00000000..af81b560 --- /dev/null +++ b/dist/dev/ui/slider/context.js @@ -0,0 +1,20 @@ +"use client"; +import { createContext, useContext } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/ui/slider/context.tsx +const SliderContext = createContext(null); +function SliderProvider({ value, children }) { + return /* @__PURE__ */ jsx(SliderContext.Provider, { + value, + children + }); +} +function useSliderContext() { + const ctx = useContext(SliderContext); + if (!ctx) throw new Error("Slider compound components must be used within a Slider.Root"); + return ctx; +} +//#endregion +export { SliderProvider, useSliderContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/context.js.map b/dist/dev/ui/slider/context.js.map new file mode 100644 index 00000000..b2c53e45 --- /dev/null +++ b/dist/dev/ui/slider/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport type { ProviderProps, RefCallback } from 'react';\nimport { createContext, useContext } from 'react';\n\nexport interface SliderContextValue {\n state: SliderState;\n /** Pointer position converted to the value domain (not 0–100 percent). */\n pointerValue: number;\n thumbRef: RefCallback;\n thumbProps: SliderThumbProps;\n stateAttrMap: StateAttrMap;\n getAttrs: (state: SliderState) => object;\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SliderContext = createContext(null);\n\ntype SliderProviderProps = ProviderProps;\n\nexport function SliderProvider({ value, children }: SliderProviderProps) {\n return {children};\n}\n\nexport function useSliderContext(): SliderContextValue {\n const ctx = useContext(SliderContext);\n if (!ctx) throw new Error('Slider compound components must be used within a Slider.Root');\n return ctx;\n}\n"],"mappings":";;;;AAkBA,MAAM,gBAAgB,cAAyC,IAAI;AAInE,SAAgB,eAAe,EAAE,OAAO,YAAiC;CACvE,OAAO,oBAAC,cAAc,UAAf;EAA+B;EAAQ;CAAiC,CAAA;AACjF;AAEA,SAAgB,mBAAuC;CACrD,MAAM,MAAM,WAAW,aAAa;CACpC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,8DAA8D;CACxF,OAAO;AACT"} \ No newline at end of file diff --git a/dist/dev/ui/slider/index.d.ts b/dist/dev/ui/slider/index.d.ts new file mode 100644 index 00000000..b0adc9d6 --- /dev/null +++ b/dist/dev/ui/slider/index.d.ts @@ -0,0 +1,2 @@ +import { index_parts_d_exports } from "./index.parts.js"; +export { index_parts_d_exports as Slider }; \ No newline at end of file diff --git a/dist/dev/ui/slider/index.js b/dist/dev/ui/slider/index.js new file mode 100644 index 00000000..dc7b8d6c --- /dev/null +++ b/dist/dev/ui/slider/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as Slider }; diff --git a/dist/dev/ui/slider/index.parts.d.ts b/dist/dev/ui/slider/index.parts.d.ts new file mode 100644 index 00000000..69591619 --- /dev/null +++ b/dist/dev/ui/slider/index.parts.d.ts @@ -0,0 +1,14 @@ +import { SliderBuffer, SliderBufferProps } from "./slider-buffer.js"; +import { SliderFill, SliderFillProps } from "./slider-fill.js"; +import { SliderPreview, SliderPreviewProps } from "./slider-preview.js"; +import { SliderRoot, SliderRootProps } from "./slider-root.js"; +import { SliderThumb, SliderThumbProps } from "./slider-thumb.js"; +import { SliderThumbnail, SliderThumbnailProps } from "./slider-thumbnail.js"; +import { SliderTrack, SliderTrackProps } from "./slider-track.js"; +import { SliderValue, SliderValueProps } from "./slider-value.js"; +declare namespace index_parts_d_exports { + export { SliderBuffer as Buffer, SliderBufferProps as BufferProps, SliderFill as Fill, SliderFillProps as FillProps, SliderPreview as Preview, SliderPreviewProps as PreviewProps, SliderRoot as Root, SliderRootProps as RootProps, SliderThumb as Thumb, SliderThumbProps as ThumbProps, SliderThumbnail as Thumbnail, SliderThumbnailProps as ThumbnailProps, SliderTrack as Track, SliderTrackProps as TrackProps, SliderValue as Value, SliderValueProps as ValueProps }; +} +//#endregion +export { SliderBuffer as Buffer, type SliderBufferProps as BufferProps, SliderFill as Fill, type SliderFillProps as FillProps, SliderPreview as Preview, type SliderPreviewProps as PreviewProps, SliderRoot as Root, type SliderRootProps as RootProps, SliderThumb as Thumb, type SliderThumbProps as ThumbProps, SliderThumbnail as Thumbnail, type SliderThumbnailProps as ThumbnailProps, SliderTrack as Track, type SliderTrackProps as TrackProps, SliderValue as Value, type SliderValueProps as ValueProps, index_parts_d_exports }; +//# sourceMappingURL=index.parts.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/index.parts.d.ts.map b/dist/dev/ui/slider/index.parts.d.ts.map new file mode 100644 index 00000000..88692bcf --- /dev/null +++ b/dist/dev/ui/slider/index.parts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../../src/ui/slider/index.parts.ts"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/slider/index.parts.js b/dist/dev/ui/slider/index.parts.js new file mode 100644 index 00000000..be20cba7 --- /dev/null +++ b/dist/dev/ui/slider/index.parts.js @@ -0,0 +1,24 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { SliderBuffer } from "./slider-buffer.js"; +import { SliderFill } from "./slider-fill.js"; +import { SliderPreview } from "./slider-preview.js"; +import { SliderRoot } from "./slider-root.js"; +import { SliderThumb } from "./slider-thumb.js"; +import { SliderThumbnail } from "./slider-thumbnail.js"; +import { SliderTrack } from "./slider-track.js"; +import { SliderValue } from "./slider-value.js"; +//#region src/ui/slider/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Buffer: () => SliderBuffer, + Fill: () => SliderFill, + Preview: () => SliderPreview, + Root: () => SliderRoot, + Thumb: () => SliderThumb, + Thumbnail: () => SliderThumbnail, + Track: () => SliderTrack, + Value: () => SliderValue +}); +//#endregion +export { SliderBuffer as Buffer, SliderFill as Fill, SliderPreview as Preview, SliderRoot as Root, SliderThumb as Thumb, SliderThumbnail as Thumbnail, SliderTrack as Track, SliderValue as Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/index.parts.js.map b/dist/dev/ui/slider/index.parts.js.map new file mode 100644 index 00000000..6186cf3b --- /dev/null +++ b/dist/dev/ui/slider/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/slider/index.parts.ts"],"sourcesContent":["export { SliderBuffer as Buffer, type SliderBufferProps as BufferProps } from './slider-buffer';\nexport { SliderFill as Fill, type SliderFillProps as FillProps } from './slider-fill';\nexport { SliderPreview as Preview, type SliderPreviewProps as PreviewProps } from './slider-preview';\nexport { SliderRoot as Root, type SliderRootProps as RootProps } from './slider-root';\nexport { SliderThumb as Thumb, type SliderThumbProps as ThumbProps } from './slider-thumb';\nexport { SliderThumbnail as Thumbnail, type SliderThumbnailProps as ThumbnailProps } from './slider-thumbnail';\nexport { SliderTrack as Track, type SliderTrackProps as TrackProps } from './slider-track';\nexport { SliderValue as Value, type SliderValueProps as ValueProps } from './slider-value';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-buffer.d.ts b/dist/dev/ui/slider/slider-buffer.d.ts new file mode 100644 index 00000000..a8399eb5 --- /dev/null +++ b/dist/dev/ui/slider/slider-buffer.d.ts @@ -0,0 +1,12 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SliderState } from "@videojs/core"; +//#region src/ui/slider/slider-buffer.d.ts +interface SliderBufferProps extends UIComponentProps<'div', SliderState> {} +/** Displays the buffered range on the slider track. */ +declare const SliderBuffer: import("react").ForwardRefExoticComponent; +declare namespace SliderBuffer { + type Props = SliderBufferProps; +} +//#endregion +export { SliderBuffer, SliderBufferProps }; +//# sourceMappingURL=slider-buffer.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-buffer.d.ts.map b/dist/dev/ui/slider/slider-buffer.d.ts.map new file mode 100644 index 00000000..7bf74438 --- /dev/null +++ b/dist/dev/ui/slider/slider-buffer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-buffer.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-buffer.tsx"],"mappings":";;;UAQiB,0BAA0B,wBAAwB;;cAGtD,8BAAY,0BAAA;kBAMR;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-buffer.js b/dist/dev/ui/slider/slider-buffer.js new file mode 100644 index 00000000..e7b9f165 --- /dev/null +++ b/dist/dev/ui/slider/slider-buffer.js @@ -0,0 +1,14 @@ +"use client"; +import { createContextPart } from "../create-context-part.js"; +import { useSliderContext } from "./context.js"; +//#region src/ui/slider/slider-buffer.tsx +/** Displays the buffered range on the slider track. */ +const SliderBuffer = createContextPart({ + displayName: "SliderBuffer", + tag: "div", + useContext: useSliderContext +}); +//#endregion +export { SliderBuffer }; + +//# sourceMappingURL=slider-buffer.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-buffer.js.map b/dist/dev/ui/slider/slider-buffer.js.map new file mode 100644 index 00000000..ed3c808c --- /dev/null +++ b/dist/dev/ui/slider/slider-buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-buffer.js","names":[],"sources":["../../../../src/ui/slider/slider-buffer.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderBufferProps extends UIComponentProps<'div', SliderState> {}\n\n/** Displays the buffered range on the slider track. */\nexport const SliderBuffer = createContextPart({\n displayName: 'SliderBuffer',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderBuffer {\n export type Props = SliderBufferProps;\n}\n"],"mappings":";;;;;AAWA,MAAa,eAAe,kBAAkD;CAC5E,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-fill.d.ts b/dist/dev/ui/slider/slider-fill.d.ts new file mode 100644 index 00000000..a365068d --- /dev/null +++ b/dist/dev/ui/slider/slider-fill.d.ts @@ -0,0 +1,12 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SliderState } from "@videojs/core"; +//#region src/ui/slider/slider-fill.d.ts +interface SliderFillProps extends UIComponentProps<'div', SliderState> {} +/** Displays the filled portion from start to the current value. */ +declare const SliderFill: import("react").ForwardRefExoticComponent; +declare namespace SliderFill { + type Props = SliderFillProps; +} +//#endregion +export { SliderFill, SliderFillProps }; +//# sourceMappingURL=slider-fill.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-fill.d.ts.map b/dist/dev/ui/slider/slider-fill.d.ts.map new file mode 100644 index 00000000..4cf1dd5a --- /dev/null +++ b/dist/dev/ui/slider/slider-fill.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-fill.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-fill.tsx"],"mappings":";;;UAQiB,wBAAwB,wBAAwB;;cAGpD,4BAAU,0BAAA;kBAMN;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-fill.js b/dist/dev/ui/slider/slider-fill.js new file mode 100644 index 00000000..03540e8e --- /dev/null +++ b/dist/dev/ui/slider/slider-fill.js @@ -0,0 +1,14 @@ +"use client"; +import { createContextPart } from "../create-context-part.js"; +import { useSliderContext } from "./context.js"; +//#region src/ui/slider/slider-fill.tsx +/** Displays the filled portion from start to the current value. */ +const SliderFill = createContextPart({ + displayName: "SliderFill", + tag: "div", + useContext: useSliderContext +}); +//#endregion +export { SliderFill }; + +//# sourceMappingURL=slider-fill.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-fill.js.map b/dist/dev/ui/slider/slider-fill.js.map new file mode 100644 index 00000000..8f0fd5ae --- /dev/null +++ b/dist/dev/ui/slider/slider-fill.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-fill.js","names":[],"sources":["../../../../src/ui/slider/slider-fill.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderFillProps extends UIComponentProps<'div', SliderState> {}\n\n/** Displays the filled portion from start to the current value. */\nexport const SliderFill = createContextPart({\n displayName: 'SliderFill',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderFill {\n export type Props = SliderFillProps;\n}\n"],"mappings":";;;;;AAWA,MAAa,aAAa,kBAAgD;CACxE,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-preview.d.ts b/dist/dev/ui/slider/slider-preview.d.ts new file mode 100644 index 00000000..07d1ed72 --- /dev/null +++ b/dist/dev/ui/slider/slider-preview.d.ts @@ -0,0 +1,16 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SliderPreviewOverflow } from "@videojs/core/dom"; +import { SliderState } from "@videojs/core"; +//#region src/ui/slider/slider-preview.d.ts +interface SliderPreviewProps extends UIComponentProps<'div', SliderState> { + /** How the preview handles the slider boundaries. `'clamp'` keeps the preview within bounds, `'visible'` allows it to extend beyond the edges. */ + overflow?: SliderPreviewOverflow | undefined; +} +/** Positioning container for preview content that tracks the pointer along the slider. */ +declare const SliderPreview: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace SliderPreview { + type Props = SliderPreviewProps; +} +//#endregion +export { SliderPreview, SliderPreviewProps }; +//# sourceMappingURL=slider-preview.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-preview.d.ts.map b/dist/dev/ui/slider/slider-preview.d.ts.map new file mode 100644 index 00000000..cf2d9b26 --- /dev/null +++ b/dist/dev/ui/slider/slider-preview.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-preview.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-preview.tsx"],"mappings":";;;;UAYiB,2BAA2B,wBAAwB;;EAElE,WAAW;;;cAIA,+BAAa,0BAAA,KAAA,6CAAA,cAAA;kBAsCT;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-preview.js b/dist/dev/ui/slider/slider-preview.js new file mode 100644 index 00000000..16da9637 --- /dev/null +++ b/dist/dev/ui/slider/slider-preview.js @@ -0,0 +1,38 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useSliderContext } from "./context.js"; +import { getSliderPreviewStyle } from "@videojs/core/dom"; +import { forwardRef, useEffect, useRef, useState } from "react"; +//#region src/ui/slider/slider-preview.tsx +/** Positioning container for preview content that tracks the pointer along the slider. */ +const SliderPreview = forwardRef(function SliderPreview(componentProps, forwardedRef) { + const { render, className, style, overflow = "clamp", ...elementProps } = componentProps; + const context = useSliderContext(); + const { state } = context; + const measureRef = useRef(null); + const [width, setWidth] = useState(0); + useEffect(() => { + const el = measureRef.current; + if (!el) return; + const observer = new ResizeObserver(([entry]) => { + setWidth(entry.contentRect.width); + }); + observer.observe(el); + return () => observer.disconnect(); + }, []); + const positionStyle = getSliderPreviewStyle(width, overflow); + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: context.stateAttrMap, + ref: [forwardedRef, measureRef], + props: [{ style: positionStyle }, elementProps] + }); +}); +//#endregion +export { SliderPreview }; + +//# sourceMappingURL=slider-preview.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-preview.js.map b/dist/dev/ui/slider/slider-preview.js.map new file mode 100644 index 00000000..d48235c0 --- /dev/null +++ b/dist/dev/ui/slider/slider-preview.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-preview.js","names":[],"sources":["../../../../src/ui/slider/slider-preview.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\nimport type { SliderPreviewOverflow } from '@videojs/core/dom';\nimport { getSliderPreviewStyle } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderPreviewProps extends UIComponentProps<'div', SliderState> {\n /** How the preview handles the slider boundaries. `'clamp'` keeps the preview within bounds, `'visible'` allows it to extend beyond the edges. */\n overflow?: SliderPreviewOverflow | undefined;\n}\n\n/** Positioning container for preview content that tracks the pointer along the slider. */\nexport const SliderPreview = forwardRef(function SliderPreview(\n componentProps: SliderPreviewProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, overflow = 'clamp', ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state } = context;\n\n const measureRef = useRef(null);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n const el = measureRef.current;\n if (!el) return;\n\n const observer = new ResizeObserver(([entry]) => {\n setWidth(entry!.contentRect.width);\n });\n\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n const positionStyle = getSliderPreviewStyle(width, overflow);\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: [forwardedRef, measureRef],\n props: [{ style: positionStyle }, elementProps],\n }\n );\n});\n\nexport namespace SliderPreview {\n export type Props = SliderPreviewProps;\n}\n"],"mappings":";;;;;;;AAkBA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,SAAS,GAAG,iBAAiB;CAE1E,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,UAAU;CAElB,MAAM,aAAa,OAAuB,IAAI;CAC9C,MAAM,CAAC,OAAO,YAAY,SAAS,CAAC;CAEpC,gBAAgB;EACd,MAAM,KAAK,WAAW;EACtB,IAAI,CAAC,IAAI;EAET,MAAM,WAAW,IAAI,gBAAgB,CAAC,WAAW;GAC/C,SAAS,MAAO,YAAY,KAAK;EACnC,CAAC;EAED,SAAS,QAAQ,EAAE;EACnB,aAAa,SAAS,WAAW;CACnC,GAAG,CAAC,CAAC;CAEL,MAAM,gBAAgB,sBAAsB,OAAO,QAAQ;CAE3D,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK,CAAC,cAAc,UAAU;EAC9B,OAAO,CAAC,EAAE,OAAO,cAAc,GAAG,YAAY;CAChD,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-root.d.ts b/dist/dev/ui/slider/slider-root.d.ts new file mode 100644 index 00000000..b3caea6e --- /dev/null +++ b/dist/dev/ui/slider/slider-root.d.ts @@ -0,0 +1,17 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SliderCore } from "@videojs/core"; +//#region src/ui/slider/slider-root.d.ts +interface SliderRootProps extends UIComponentProps<'div', SliderCore.State>, SliderCore.Props { + onValueChange?: ((value: number) => void) | undefined; + onValueCommit?: ((value: number) => void) | undefined; + onDragStart?: (() => void) | undefined; + onDragEnd?: (() => void) | undefined; +} +declare const SliderRoot: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace SliderRoot { + type Props = SliderRootProps; + type State = SliderCore.State; +} +//#endregion +export { SliderRoot, SliderRootProps }; +//# sourceMappingURL=slider-root.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-root.d.ts.map b/dist/dev/ui/slider/slider-root.d.ts.map new file mode 100644 index 00000000..b9996455 --- /dev/null +++ b/dist/dev/ui/slider/slider-root.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-root.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-root.tsx"],"mappings":";;;UAaiB,wBAAwB,wBAAwB,WAAW,QAAQ,WAAW;EAC7F,kBAAkB;EAClB,kBAAkB;EAClB;EACA;;cAGW,4BAAU,0BAAA,KAAA,0CAAA,cAAA;kBAoFN;OACH,QAAQ;OACR,QAAQ,WAAW"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-root.js b/dist/dev/ui/slider/slider-root.js new file mode 100644 index 00000000..3f0b3d10 --- /dev/null +++ b/dist/dev/ui/slider/slider-root.js @@ -0,0 +1,81 @@ +"use client"; +import { useTranslator } from "../../i18n/context.js"; +import { renderElement } from "../../utils/use-render.js"; +import { useSlider } from "../hooks/use-slider.js"; +import { SliderProvider } from "./context.js"; +import { getSliderCSSVars } from "@videojs/core/dom"; +import { translateText } from "@videojs/core/i18n"; +import { forwardRef, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { SliderCore, SliderDataAttrs } from "@videojs/core"; +//#region src/ui/slider/slider-root.tsx +const SliderRoot = forwardRef(function SliderRoot(componentProps, forwardedRef) { + const { render, className, style, label, min, max, step, largeStep, orientation, disabled, thumbAlignment, value = 0, onValueChange, onValueCommit, onDragStart, onDragEnd, ...elementProps } = componentProps; + const [core] = useState(() => new SliderCore()); + const translator = useTranslator(); + core.setProps({ + label, + min, + max, + step, + largeStep, + orientation, + disabled, + thumbAlignment + }); + const { state, cssVars, rootRef, thumbRef: sliderThumbRef, rootProps, rootStyle, thumbProps } = useSlider({ + computeState: (input) => { + core.setInput(input); + return core.getSliderState(value); + }, + getPercent: () => core.percentFromValue(value), + getStepPercent: () => core.getStepPercent(), + getLargeStepPercent: () => core.getLargeStepPercent(), + orientation, + disabled, + adjustPercent: (rawPercent, thumbSize, trackSize) => core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize), + getCSSVars: getSliderCSSVars, + onValueChange: (percent) => onValueChange?.(core.valueFromPercent(percent)), + onValueCommit: (percent) => onValueCommit?.(core.valueFromPercent(percent)), + onDragStart, + onDragEnd + }); + return /* @__PURE__ */ jsx(SliderProvider, { + value: { + state, + pointerValue: core.valueFromPercent(state.pointerPercent), + thumbRef: sliderThumbRef, + thumbProps, + stateAttrMap: SliderDataAttrs, + getAttrs: (sliderState) => { + const attrs = core.getAttrs(sliderState); + return { + ...attrs, + "aria-label": translateText(attrs["aria-label"], translator) + }; + }, + formatValue: void 0 + }, + children: renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: SliderDataAttrs, + ref: [forwardedRef, rootRef], + props: [ + { style: { + ...cssVars, + ...rootStyle + } }, + rootProps, + elementProps + ] + }) + }); +}); +//#endregion +export { SliderRoot }; + +//# sourceMappingURL=slider-root.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-root.js.map b/dist/dev/ui/slider/slider-root.js.map new file mode 100644 index 00000000..03f1f343 --- /dev/null +++ b/dist/dev/ui/slider/slider-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-root.js","names":[],"sources":["../../../../src/ui/slider/slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport { getSliderCSSVars } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from './context';\n\nexport interface SliderRootProps extends UIComponentProps<'div', SliderCore.State>, SliderCore.Props {\n onValueChange?: ((value: number) => void) | undefined;\n onValueCommit?: ((value: number) => void) | undefined;\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const SliderRoot = forwardRef(function SliderRoot(\n componentProps: SliderRootProps,\n forwardedRef: ForwardedRef\n) {\n const {\n render,\n className,\n style,\n label,\n min,\n max,\n step,\n largeStep,\n orientation,\n disabled,\n thumbAlignment,\n value = 0,\n onValueChange,\n onValueCommit,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new SliderCore());\n const translator = useTranslator();\n core.setProps({ label, min, max, step, largeStep, orientation, disabled, thumbAlignment });\n\n const {\n state,\n cssVars,\n rootRef,\n thumbRef: sliderThumbRef,\n rootProps,\n rootStyle,\n thumbProps,\n } = useSlider({\n computeState: (input) => {\n core.setInput(input);\n return core.getSliderState(value);\n },\n getPercent: () => core.percentFromValue(value),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getSliderCSSVars,\n onValueChange: (percent) => onValueChange?.(core.valueFromPercent(percent)),\n onValueCommit: (percent) => onValueCommit?.(core.valueFromPercent(percent)),\n onDragStart,\n onDragEnd,\n });\n\n return (\n {\n const attrs = core.getAttrs(sliderState);\n return { ...attrs, 'aria-label': translateText(attrs['aria-label'], translator) };\n },\n formatValue: undefined,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n \n );\n});\n\nexport namespace SliderRoot {\n export type Props = SliderRootProps;\n export type State = SliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;AAoBA,MAAa,aAAa,WAAW,SAAS,WAC5C,gBACA,cACA;CACA,MAAM,EACJ,QACA,WACA,OACA,OACA,KACA,KACA,MACA,WACA,aACA,UACA,gBACA,QAAQ,GACR,eACA,eACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,WAAW,CAAC;CAC9C,MAAM,aAAa,cAAc;CACjC,KAAK,SAAS;EAAE;EAAO;EAAK;EAAK;EAAM;EAAW;EAAa;EAAU;CAAe,CAAC;CAEzF,MAAM,EACJ,OACA,SACA,SACA,UAAU,gBACV,WACA,WACA,eACE,UAAU;EACZ,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,OAAO,KAAK,eAAe,KAAK;EAClC;EACA,kBAAkB,KAAK,iBAAiB,KAAK;EAC7C,sBAAsB,KAAK,eAAe;EAC1C,2BAA2B,KAAK,oBAAoB;EACpD;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,gBAAgB,YAAY,gBAAgB,KAAK,iBAAiB,OAAO,CAAC;EAC1E,gBAAgB,YAAY,gBAAgB,KAAK,iBAAiB,OAAO,CAAC;EAC1E;EACA;CACF,CAAC;CAED,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,cAAc;GACxD,UAAU;GACV;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAW;IACvC,OAAO;KAAE,GAAG;KAAO,cAAc,cAAc,MAAM,eAAe,UAAU;IAAE;GAClF;GACA,aAAa,KAAA;EACf;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,OAAO;GAC3B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-thumb.d.ts b/dist/dev/ui/slider/slider-thumb.d.ts new file mode 100644 index 00000000..d909ae3f --- /dev/null +++ b/dist/dev/ui/slider/slider-thumb.d.ts @@ -0,0 +1,12 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SliderState } from "@videojs/core"; +//#region src/ui/slider/slider-thumb.d.ts +interface SliderThumbProps extends UIComponentProps<'div', SliderState> {} +/** Draggable handle for setting the slider value. Receives focus and handles keyboard interaction. */ +declare const SliderThumb: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace SliderThumb { + type Props = SliderThumbProps; +} +//#endregion +export { SliderThumb, SliderThumbProps }; +//# sourceMappingURL=slider-thumb.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-thumb.d.ts.map b/dist/dev/ui/slider/slider-thumb.d.ts.map new file mode 100644 index 00000000..e0591bf8 --- /dev/null +++ b/dist/dev/ui/slider/slider-thumb.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-thumb.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-thumb.tsx"],"mappings":";;;UAUiB,yBAAyB,wBAAwB;;cAGrD,6BAAW,0BAAA,KAAA,2CAAA,cAAA;kBAsBP;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-thumb.js b/dist/dev/ui/slider/slider-thumb.js new file mode 100644 index 00000000..2a834252 --- /dev/null +++ b/dist/dev/ui/slider/slider-thumb.js @@ -0,0 +1,30 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useSliderContext } from "./context.js"; +import { forwardRef } from "react"; +//#region src/ui/slider/slider-thumb.tsx +/** Draggable handle for setting the slider value. Receives focus and handles keyboard interaction. */ +const SliderThumb = forwardRef(function SliderThumb(componentProps, forwardedRef) { + const { render, className, style, ...elementProps } = componentProps; + const context = useSliderContext(); + const { state, thumbRef, thumbProps, getAttrs } = context; + const attrs = getAttrs(state); + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: context.stateAttrMap, + ref: [forwardedRef, thumbRef], + props: [ + attrs, + thumbProps, + elementProps + ] + }); +}); +//#endregion +export { SliderThumb }; + +//# sourceMappingURL=slider-thumb.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-thumb.js.map b/dist/dev/ui/slider/slider-thumb.js.map new file mode 100644 index 00000000..4494407e --- /dev/null +++ b/dist/dev/ui/slider/slider-thumb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-thumb.js","names":[],"sources":["../../../../src/ui/slider/slider-thumb.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderThumbProps extends UIComponentProps<'div', SliderState> {}\n\n/** Draggable handle for setting the slider value. Receives focus and handles keyboard interaction. */\nexport const SliderThumb = forwardRef(function SliderThumb(\n componentProps: SliderThumbProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state, thumbRef, thumbProps, getAttrs } = context;\n const attrs = getAttrs(state);\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: [forwardedRef, thumbRef],\n props: [attrs, thumbProps, elementProps],\n }\n );\n});\n\nexport namespace SliderThumb {\n export type Props = SliderThumbProps;\n}\n"],"mappings":";;;;;;AAaA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CAEtD,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,OAAO,UAAU,YAAY,aAAa;CAClD,MAAM,QAAQ,SAAS,KAAK;CAE5B,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK,CAAC,cAAc,QAAQ;EAC5B,OAAO;GAAC;GAAO;GAAY;EAAY;CACzC,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-thumbnail.d.ts b/dist/dev/ui/slider/slider-thumbnail.d.ts new file mode 100644 index 00000000..28e44c36 --- /dev/null +++ b/dist/dev/ui/slider/slider-thumbnail.d.ts @@ -0,0 +1,12 @@ +import { ThumbnailProps } from "../thumbnail/thumbnail.js"; +import { ThumbnailCore } from "@videojs/core"; +//#region src/ui/slider/slider-thumbnail.d.ts +interface SliderThumbnailProps extends Omit {} +declare const SliderThumbnail: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace SliderThumbnail { + type Props = SliderThumbnailProps; + type State = ThumbnailCore.State; +} +//#endregion +export { SliderThumbnail, SliderThumbnailProps }; +//# sourceMappingURL=slider-thumbnail.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-thumbnail.d.ts.map b/dist/dev/ui/slider/slider-thumbnail.d.ts.map new file mode 100644 index 00000000..c075d85b --- /dev/null +++ b/dist/dev/ui/slider/slider-thumbnail.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-thumbnail.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-thumbnail.tsx"],"mappings":";;;UAQiB,6BAA6B,KAAK;cAEtC,iCAAe,0BAAA,KAAA,+CAAA,cAAA;kBAOX;OACH,QAAQ;OACR,QAAQ,cAAc"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-thumbnail.js b/dist/dev/ui/slider/slider-thumbnail.js new file mode 100644 index 00000000..ddf2281b --- /dev/null +++ b/dist/dev/ui/slider/slider-thumbnail.js @@ -0,0 +1,18 @@ +"use client"; +import { useSliderContext } from "./context.js"; +import { Thumbnail } from "../thumbnail/thumbnail.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/ui/slider/slider-thumbnail.tsx +const SliderThumbnail = forwardRef(function SliderThumbnail(componentProps, forwardedRef) { + const { pointerValue } = useSliderContext(); + return /* @__PURE__ */ jsx(Thumbnail, { + ref: forwardedRef, + ...componentProps, + time: pointerValue + }); +}); +//#endregion +export { SliderThumbnail }; + +//# sourceMappingURL=slider-thumbnail.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-thumbnail.js.map b/dist/dev/ui/slider/slider-thumbnail.js.map new file mode 100644 index 00000000..df3d9557 --- /dev/null +++ b/dist/dev/ui/slider/slider-thumbnail.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-thumbnail.js","names":[],"sources":["../../../../src/ui/slider/slider-thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport type { ThumbnailCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport { Thumbnail, type ThumbnailProps } from '../thumbnail/thumbnail';\nimport { useSliderContext } from './context';\n\nexport interface SliderThumbnailProps extends Omit {}\n\nexport const SliderThumbnail = forwardRef(\n function SliderThumbnail(componentProps, forwardedRef) {\n const { pointerValue } = useSliderContext();\n return ;\n }\n);\n\nexport namespace SliderThumbnail {\n export type Props = SliderThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;AAUA,MAAa,kBAAkB,WAC7B,SAAS,gBAAgB,gBAAgB,cAAc;CACrD,MAAM,EAAE,iBAAiB,iBAAiB;CAC1C,OAAO,oBAAC,WAAD;EAAW,KAAK;EAAc,GAAI;EAAgB,MAAM;CAAe,CAAA;AAChF,CACF"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-track.d.ts b/dist/dev/ui/slider/slider-track.d.ts new file mode 100644 index 00000000..44834c79 --- /dev/null +++ b/dist/dev/ui/slider/slider-track.d.ts @@ -0,0 +1,12 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SliderState } from "@videojs/core"; +//#region src/ui/slider/slider-track.d.ts +interface SliderTrackProps extends UIComponentProps<'div', SliderState> {} +/** Contains the slider's visual track and interactive hit zone. */ +declare const SliderTrack: import("react").ForwardRefExoticComponent; +declare namespace SliderTrack { + type Props = SliderTrackProps; +} +//#endregion +export { SliderTrack, SliderTrackProps }; +//# sourceMappingURL=slider-track.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-track.d.ts.map b/dist/dev/ui/slider/slider-track.d.ts.map new file mode 100644 index 00000000..a961d476 --- /dev/null +++ b/dist/dev/ui/slider/slider-track.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-track.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-track.tsx"],"mappings":";;;UAQiB,yBAAyB,wBAAwB;;cAGrD,6BAAW,0BAAA;kBAMP;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-track.js b/dist/dev/ui/slider/slider-track.js new file mode 100644 index 00000000..6b233fb4 --- /dev/null +++ b/dist/dev/ui/slider/slider-track.js @@ -0,0 +1,14 @@ +"use client"; +import { createContextPart } from "../create-context-part.js"; +import { useSliderContext } from "./context.js"; +//#region src/ui/slider/slider-track.tsx +/** Contains the slider's visual track and interactive hit zone. */ +const SliderTrack = createContextPart({ + displayName: "SliderTrack", + tag: "div", + useContext: useSliderContext +}); +//#endregion +export { SliderTrack }; + +//# sourceMappingURL=slider-track.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-track.js.map b/dist/dev/ui/slider/slider-track.js.map new file mode 100644 index 00000000..100b4c3b --- /dev/null +++ b/dist/dev/ui/slider/slider-track.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-track.js","names":[],"sources":["../../../../src/ui/slider/slider-track.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderTrackProps extends UIComponentProps<'div', SliderState> {}\n\n/** Contains the slider's visual track and interactive hit zone. */\nexport const SliderTrack = createContextPart({\n displayName: 'SliderTrack',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderTrack {\n export type Props = SliderTrackProps;\n}\n"],"mappings":";;;;;AAWA,MAAa,cAAc,kBAAiD;CAC1E,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-value.d.ts b/dist/dev/ui/slider/slider-value.d.ts new file mode 100644 index 00000000..55148840 --- /dev/null +++ b/dist/dev/ui/slider/slider-value.d.ts @@ -0,0 +1,17 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { SliderState } from "@videojs/core"; +//#region src/ui/slider/slider-value.d.ts +interface SliderValueProps extends UIComponentProps<'output', SliderState> { + /** Which slider value to display: the current position or the pointer position. */ + type?: 'current' | 'pointer' | undefined; + /** Custom formatter for the displayed value. Overrides the root's `formatValue`. */ + format?: ((value: number) => string) | undefined; +} +/** Displays a formatted text representation of the slider value. Renders an `` element. */ +declare const SliderValue: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace SliderValue { + type Props = SliderValueProps; +} +//#endregion +export { SliderValue, SliderValueProps }; +//# sourceMappingURL=slider-value.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-value.d.ts.map b/dist/dev/ui/slider/slider-value.d.ts.map new file mode 100644 index 00000000..191f5380 --- /dev/null +++ b/dist/dev/ui/slider/slider-value.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-value.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-value.tsx"],"mappings":";;;UAUiB,yBAAyB,2BAA2B;;EAEnE;;EAEA,WAAW;;;cAIA,6BAAW,0BAAA,KAAA,2CAAA,cAAA;kBAyBP;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-value.js b/dist/dev/ui/slider/slider-value.js new file mode 100644 index 00000000..a70abbcf --- /dev/null +++ b/dist/dev/ui/slider/slider-value.js @@ -0,0 +1,30 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useSliderContext } from "./context.js"; +import { forwardRef } from "react"; +//#region src/ui/slider/slider-value.tsx +/** Displays a formatted text representation of the slider value. Renders an `` element. */ +const SliderValue = forwardRef(function SliderValue(componentProps, forwardedRef) { + const { render, className, style, type = "current", format, ...elementProps } = componentProps; + const context = useSliderContext(); + const { state, pointerValue, formatValue } = context; + const rawValue = type === "pointer" ? pointerValue : state.value; + const text = format ? format(rawValue) : formatValue ? formatValue(rawValue, type) : String(Math.round(rawValue)); + return renderElement("output", { + render, + className, + style + }, { + state, + stateAttrMap: context.stateAttrMap, + ref: forwardedRef, + props: [{ + "aria-live": "off", + children: text + }, elementProps] + }); +}); +//#endregion +export { SliderValue }; + +//# sourceMappingURL=slider-value.js.map \ No newline at end of file diff --git a/dist/dev/ui/slider/slider-value.js.map b/dist/dev/ui/slider/slider-value.js.map new file mode 100644 index 00000000..df30ec2f --- /dev/null +++ b/dist/dev/ui/slider/slider-value.js.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-value.js","names":[],"sources":["../../../../src/ui/slider/slider-value.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderValueProps extends UIComponentProps<'output', SliderState> {\n /** Which slider value to display: the current position or the pointer position. */\n type?: 'current' | 'pointer' | undefined;\n /** Custom formatter for the displayed value. Overrides the root's `formatValue`. */\n format?: ((value: number) => string) | undefined;\n}\n\n/** Displays a formatted text representation of the slider value. Renders an `` element. */\nexport const SliderValue = forwardRef(function SliderValue(\n componentProps: SliderValueProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, type = 'current', format, ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state, pointerValue, formatValue } = context;\n\n const rawValue = type === 'pointer' ? pointerValue : state.value;\n\n const text = format ? format(rawValue) : formatValue ? formatValue(rawValue, type) : String(Math.round(rawValue));\n\n return renderElement(\n 'output',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [{ 'aria-live': 'off', children: text }, elementProps],\n }\n );\n});\n\nexport namespace SliderValue {\n export type Props = SliderValueProps;\n}\n"],"mappings":";;;;;;AAkBA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,WAAW,QAAQ,GAAG,iBAAiB;CAEhF,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,OAAO,cAAc,gBAAgB;CAE7C,MAAM,WAAW,SAAS,YAAY,eAAe,MAAM;CAE3D,MAAM,OAAO,SAAS,OAAO,QAAQ,IAAI,cAAc,YAAY,UAAU,IAAI,IAAI,OAAO,KAAK,MAAM,QAAQ,CAAC;CAEhH,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK;EACL,OAAO,CAAC;GAAE,aAAa;GAAO,UAAU;EAAK,GAAG,YAAY;CAC9D,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/status-announcer/index.d.ts b/dist/dev/ui/status-announcer/index.d.ts new file mode 100644 index 00000000..66a3c450 --- /dev/null +++ b/dist/dev/ui/status-announcer/index.d.ts @@ -0,0 +1,2 @@ +import { StatusAnnouncer, StatusAnnouncerProps } from "./status-announcer.js"; +export { StatusAnnouncer, StatusAnnouncerProps }; \ No newline at end of file diff --git a/dist/dev/ui/status-announcer/index.js b/dist/dev/ui/status-announcer/index.js new file mode 100644 index 00000000..d608669d --- /dev/null +++ b/dist/dev/ui/status-announcer/index.js @@ -0,0 +1,2 @@ +import { StatusAnnouncer } from "./status-announcer.js"; +export { StatusAnnouncer }; diff --git a/dist/dev/ui/status-announcer/status-announcer.d.ts b/dist/dev/ui/status-announcer/status-announcer.d.ts new file mode 100644 index 00000000..b2051c99 --- /dev/null +++ b/dist/dev/ui/status-announcer/status-announcer.d.ts @@ -0,0 +1,12 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { StatusAnnouncerCore } from "@videojs/core"; +//#region src/ui/status-announcer/status-announcer.d.ts +interface StatusAnnouncerProps extends UIComponentProps<'div', StatusAnnouncerCore.State>, Pick {} +declare const StatusAnnouncer: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace StatusAnnouncer { + type Props = StatusAnnouncerProps; + type State = StatusAnnouncerCore.State; +} +//#endregion +export { StatusAnnouncer, StatusAnnouncerProps }; +//# sourceMappingURL=status-announcer.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/status-announcer/status-announcer.d.ts.map b/dist/dev/ui/status-announcer/status-announcer.d.ts.map new file mode 100644 index 00000000..ce4ce213 --- /dev/null +++ b/dist/dev/ui/status-announcer/status-announcer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"status-announcer.d.ts","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"mappings":";;;UAYiB,6BACP,wBAAwB,oBAAoB,QAClD,KAAK,oBAAoB;cAEhB,iCAAe,0BAAA,KAAA,+CAAA,cAAA;kBA8CX;OACH,QAAQ;OACR,QAAQ,oBAAoB"} \ No newline at end of file diff --git a/dist/dev/ui/status-announcer/status-announcer.js b/dist/dev/ui/status-announcer/status-announcer.js new file mode 100644 index 00000000..51a7c16c --- /dev/null +++ b/dist/dev/ui/status-announcer/status-announcer.js @@ -0,0 +1,45 @@ +"use client"; +import { useLocale, useTranslator } from "../../i18n/context.js"; +import { useContainer, usePlayer } from "../../player/context.js"; +import { useDestroy } from "../../utils/use-destroy.js"; +import { renderElement } from "../../utils/use-render.js"; +import { isSliderFocused, subscribeToStatusAnnouncer } from "@videojs/core/dom"; +import { forwardRef, useEffect, useState, useSyncExternalStore } from "react"; +import { StatusAnnouncerCore, createStatusAnnouncerLabels } from "@videojs/core"; +//#region src/ui/status-announcer/status-announcer.tsx +const StatusAnnouncer = forwardRef(function StatusAnnouncer(componentProps, forwardedRef) { + const { render, className, style, closeDelay, labels, ...elementProps } = componentProps; + const translator = useTranslator(); + const locale = useLocale(); + const [core] = useState(() => new StatusAnnouncerCore()); + const store = usePlayer(); + const container = useContainer(); + useDestroy(core); + core.setProps({ + closeDelay, + labels: { + ...createStatusAnnouncerLabels(translator, locale), + ...labels + }, + shouldAnnounceSeek: () => !container || !isSliderFocused(container), + shouldAnnounceVolume: () => !container || !isSliderFocused(container) + }); + useEffect(() => subscribeToStatusAnnouncer(store, core), [core, store]); + const state = useSyncExternalStore((callback) => core.state.subscribe(callback), () => core.state.current, () => core.state.current); + return renderElement("div", { + render, + className, + style + }, { + state, + ref: forwardedRef, + props: [elementProps, { + role: "status", + children: state.label ?? "" + }] + }); +}); +//#endregion +export { StatusAnnouncer }; + +//# sourceMappingURL=status-announcer.js.map \ No newline at end of file diff --git a/dist/dev/ui/status-announcer/status-announcer.js.map b/dist/dev/ui/status-announcer/status-announcer.js.map new file mode 100644 index 00000000..badfc6ed --- /dev/null +++ b/dist/dev/ui/status-announcer/status-announcer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"status-announcer.js","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"sourcesContent":["'use client';\n\nimport { createStatusAnnouncerLabels, StatusAnnouncerCore } from '@videojs/core';\nimport { isSliderFocused, subscribeToStatusAnnouncer } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useState, useSyncExternalStore } from 'react';\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { useContainer, usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface StatusAnnouncerProps\n extends UIComponentProps<'div', StatusAnnouncerCore.State>,\n Pick {}\n\nexport const StatusAnnouncer = forwardRef(function StatusAnnouncer(\n componentProps: StatusAnnouncerProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, closeDelay, labels, ...elementProps } = componentProps;\n const translator = useTranslator();\n const locale = useLocale();\n const [core] = useState(() => new StatusAnnouncerCore());\n const store = usePlayer();\n const container = useContainer();\n useDestroy(core);\n core.setProps({\n closeDelay,\n labels: {\n ...createStatusAnnouncerLabels(translator, locale),\n ...labels,\n },\n shouldAnnounceSeek: () => !container || !isSliderFocused(container),\n shouldAnnounceVolume: () => !container || !isSliderFocused(container),\n });\n\n useEffect(() => subscribeToStatusAnnouncer(store, core), [core, store]);\n\n const state = useSyncExternalStore(\n (callback) => core.state.subscribe(callback),\n () => core.state.current,\n () => core.state.current\n );\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [\n elementProps,\n {\n role: 'status',\n children: state.label ?? '',\n },\n ],\n }\n );\n});\n\nexport namespace StatusAnnouncer {\n export type Props = StatusAnnouncerProps;\n export type State = StatusAnnouncerCore.State;\n}\n"],"mappings":";;;;;;;;;AAgBA,MAAa,kBAAkB,WAAW,SAAS,gBACjD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,QAAQ,GAAG,iBAAiB;CAC1E,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CACzB,MAAM,CAAC,QAAQ,eAAe,IAAI,oBAAoB,CAAC;CACvD,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAC/B,WAAW,IAAI;CACf,KAAK,SAAS;EACZ;EACA,QAAQ;GACN,GAAG,4BAA4B,YAAY,MAAM;GACjD,GAAG;EACL;EACA,0BAA0B,CAAC,aAAa,CAAC,gBAAgB,SAAS;EAClE,4BAA4B,CAAC,aAAa,CAAC,gBAAgB,SAAS;CACtE,CAAC;CAED,gBAAgB,2BAA2B,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;CAEtE,MAAM,QAAQ,sBACX,aAAa,KAAK,MAAM,UAAU,QAAQ,SACrC,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CACL,cACA;GACE,MAAM;GACN,UAAU,MAAM,SAAS;EAC3B,CACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/context.js b/dist/dev/ui/status-indicator/context.js new file mode 100644 index 00000000..d36dd124 --- /dev/null +++ b/dist/dev/ui/status-indicator/context.js @@ -0,0 +1,20 @@ +"use client"; +import { createContext, useContext } from "react"; +import { jsx } from "react/jsx-runtime"; +//#region src/ui/status-indicator/context.tsx +const StatusIndicatorContext = createContext(null); +function StatusIndicatorProvider({ value, children }) { + return /* @__PURE__ */ jsx(StatusIndicatorContext.Provider, { + value, + children + }); +} +function useStatusIndicatorContext() { + const ctx = useContext(StatusIndicatorContext); + if (!ctx) throw new Error("StatusIndicator child compounds must be used within a StatusIndicator.Root"); + return ctx; +} +//#endregion +export { StatusIndicatorProvider, useStatusIndicatorContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/context.js.map b/dist/dev/ui/status-indicator/context.js.map new file mode 100644 index 00000000..d6e38bbe --- /dev/null +++ b/dist/dev/ui/status-indicator/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/status-indicator/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StatusIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface StatusIndicatorContextValue {\n state: StatusIndicatorCore.State;\n}\n\nconst StatusIndicatorContext = createContext(null);\n\nexport function StatusIndicatorProvider({ value, children }: ProviderProps) {\n return {children};\n}\n\nexport function useStatusIndicatorContext(): StatusIndicatorContextValue {\n const ctx = useContext(StatusIndicatorContext);\n if (!ctx) throw new Error('StatusIndicator child compounds must be used within a StatusIndicator.Root');\n return ctx;\n}\n"],"mappings":";;;;AASA,MAAM,yBAAyB,cAAkD,IAAI;AAErF,SAAgB,wBAAwB,EAAE,OAAO,YAAwD;CACvG,OAAO,oBAAC,uBAAuB,UAAxB;EAAwC;EAAQ;CAA0C,CAAA;AACnG;AAEA,SAAgB,4BAAyD;CACvE,MAAM,MAAM,WAAW,sBAAsB;CAC7C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,4EAA4E;CACtG,OAAO;AACT"} \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/index.d.ts b/dist/dev/ui/status-indicator/index.d.ts new file mode 100644 index 00000000..f09b8c2b --- /dev/null +++ b/dist/dev/ui/status-indicator/index.d.ts @@ -0,0 +1,2 @@ +import { index_parts_d_exports } from "./index.parts.js"; +export { index_parts_d_exports as StatusIndicator }; \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/index.js b/dist/dev/ui/status-indicator/index.js new file mode 100644 index 00000000..8e152015 --- /dev/null +++ b/dist/dev/ui/status-indicator/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as StatusIndicator }; diff --git a/dist/dev/ui/status-indicator/index.parts.d.ts b/dist/dev/ui/status-indicator/index.parts.d.ts new file mode 100644 index 00000000..d1c80d38 --- /dev/null +++ b/dist/dev/ui/status-indicator/index.parts.d.ts @@ -0,0 +1,8 @@ +import { StatusIndicatorRoot, StatusIndicatorRootProps } from "./status-indicator-root.js"; +import { StatusIndicatorValue, StatusIndicatorValueProps } from "./status-indicator-value.js"; +declare namespace index_parts_d_exports { + export { StatusIndicatorRoot as Root, StatusIndicatorRootProps as RootProps, StatusIndicatorValue as Value, StatusIndicatorValueProps as ValueProps }; +} +//#endregion +export { StatusIndicatorRoot as Root, type StatusIndicatorRootProps as RootProps, StatusIndicatorValue as Value, type StatusIndicatorValueProps as ValueProps, index_parts_d_exports }; +//# sourceMappingURL=index.parts.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/index.parts.d.ts.map b/dist/dev/ui/status-indicator/index.parts.d.ts.map new file mode 100644 index 00000000..4212c865 --- /dev/null +++ b/dist/dev/ui/status-indicator/index.parts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../../src/ui/status-indicator/index.parts.ts"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/index.parts.js b/dist/dev/ui/status-indicator/index.parts.js new file mode 100644 index 00000000..4cf039f8 --- /dev/null +++ b/dist/dev/ui/status-indicator/index.parts.js @@ -0,0 +1,12 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { StatusIndicatorRoot } from "./status-indicator-root.js"; +import { StatusIndicatorValue } from "./status-indicator-value.js"; +//#region src/ui/status-indicator/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Root: () => StatusIndicatorRoot, + Value: () => StatusIndicatorValue +}); +//#endregion +export { StatusIndicatorRoot as Root, StatusIndicatorValue as Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/index.parts.js.map b/dist/dev/ui/status-indicator/index.parts.js.map new file mode 100644 index 00000000..82646b4d --- /dev/null +++ b/dist/dev/ui/status-indicator/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/status-indicator/index.parts.ts"],"sourcesContent":["export {\n StatusIndicatorRoot as Root,\n type StatusIndicatorRootProps as RootProps,\n} from './status-indicator-root';\nexport {\n StatusIndicatorValue as Value,\n type StatusIndicatorValueProps as ValueProps,\n} from './status-indicator-value';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/status-indicator-root.d.ts b/dist/dev/ui/status-indicator/status-indicator-root.d.ts new file mode 100644 index 00000000..e1b005ba --- /dev/null +++ b/dist/dev/ui/status-indicator/status-indicator-root.d.ts @@ -0,0 +1,12 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { StatusIndicatorCore } from "@videojs/core"; +//#region src/ui/status-indicator/status-indicator-root.d.ts +interface StatusIndicatorRootProps extends UIComponentProps<'div', StatusIndicatorCore.State>, Omit {} +declare const StatusIndicatorRoot: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace StatusIndicatorRoot { + type Props = StatusIndicatorRootProps; + type State = StatusIndicatorCore.State; +} +//#endregion +export { StatusIndicatorRoot, StatusIndicatorRootProps }; +//# sourceMappingURL=status-indicator-root.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map b/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map new file mode 100644 index 00000000..1b45c69f --- /dev/null +++ b/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"status-indicator-root.d.ts","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"mappings":";;;UAYiB,iCACP,wBAAwB,oBAAoB,QAClD,KAAK,oBAAoB;cAEhB,qCAAmB,0BAAA,KAAA,mDAAA,cAAA;kBA8Bf;OACH,QAAQ;OACR,QAAQ,oBAAoB"} \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/status-indicator-root.js b/dist/dev/ui/status-indicator/status-indicator-root.js new file mode 100644 index 00000000..3bdb70c9 --- /dev/null +++ b/dist/dev/ui/status-indicator/status-indicator-root.js @@ -0,0 +1,35 @@ +"use client"; +import { useTranslator } from "../../i18n/context.js"; +import { renderElement } from "../../utils/use-render.js"; +import { useInputIndicatorRoot } from "../input-indicators/use-input-indicator-root.js"; +import { StatusIndicatorProvider } from "./context.js"; +import { forwardRef } from "react"; +import { jsx } from "react/jsx-runtime"; +import { StatusIndicatorCore, StatusIndicatorDataAttrs, createInputIndicatorLabels } from "@videojs/core"; +//#region src/ui/status-indicator/status-indicator-root.tsx +const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(componentProps, forwardedRef) { + const { render, className, style, actions, closeDelay, ...elementProps } = componentProps; + const { elementRef, present, state } = useInputIndicatorRoot(() => new StatusIndicatorCore(), { + actions, + closeDelay, + labels: createInputIndicatorLabels(useTranslator()) + }); + if (!present) return null; + return /* @__PURE__ */ jsx(StatusIndicatorProvider, { + value: { state }, + children: renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: StatusIndicatorDataAttrs, + ref: [forwardedRef, elementRef], + props: [elementProps] + }) + }); +}); +//#endregion +export { StatusIndicatorRoot }; + +//# sourceMappingURL=status-indicator-root.js.map \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/status-indicator-root.js.map b/dist/dev/ui/status-indicator/status-indicator-root.js.map new file mode 100644 index 00000000..c9c23de6 --- /dev/null +++ b/dist/dev/ui/status-indicator/status-indicator-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"status-indicator-root.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"sourcesContent":["'use client';\n\nimport { createInputIndicatorLabels, StatusIndicatorCore, StatusIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicators/use-input-indicator-root';\nimport { StatusIndicatorProvider } from './context';\n\nexport interface StatusIndicatorRootProps\n extends UIComponentProps<'div', StatusIndicatorCore.State>,\n Omit {}\n\nexport const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(\n componentProps: StatusIndicatorRootProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, actions, closeDelay, ...elementProps } = componentProps;\n const translator = useTranslator();\n const { elementRef, present, state } = useInputIndicatorRoot(() => new StatusIndicatorCore(), {\n actions,\n closeDelay,\n labels: createInputIndicatorLabels(translator),\n });\n\n if (!present) return null;\n\n return (\n \n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: StatusIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n \n );\n});\n\nexport namespace StatusIndicatorRoot {\n export type Props = StatusIndicatorRootProps;\n export type State = StatusIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;;AAgBA,MAAa,sBAAsB,WAAW,SAAS,oBACrD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,SAAS,YAAY,GAAG,iBAAiB;CAE3E,MAAM,EAAE,YAAY,SAAS,UAAU,4BAA4B,IAAI,oBAAoB,GAAG;EAC5F;EACA;EACA,QAAQ,2BAJS,cAI2B,CAAC;CAC/C,CAAC;CAED,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,yBAAD;EAAyB,OAAO,EAAE,MAAM;EACrC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACuB,CAAA;AAE7B,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/status-indicator-value.d.ts b/dist/dev/ui/status-indicator/status-indicator-value.d.ts new file mode 100644 index 00000000..7f807717 --- /dev/null +++ b/dist/dev/ui/status-indicator/status-indicator-value.d.ts @@ -0,0 +1,11 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { StatusIndicatorCore } from "@videojs/core"; +//#region src/ui/status-indicator/status-indicator-value.d.ts +interface StatusIndicatorValueProps extends UIComponentProps<'span', StatusIndicatorCore.State> {} +declare const StatusIndicatorValue: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace StatusIndicatorValue { + type Props = StatusIndicatorValueProps; +} +//#endregion +export { StatusIndicatorValue, StatusIndicatorValueProps }; +//# sourceMappingURL=status-indicator-value.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map b/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map new file mode 100644 index 00000000..8b494edd --- /dev/null +++ b/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"status-indicator-value.d.ts","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-value.tsx"],"mappings":";;;UAUiB,kCAAkC,yBAAyB,oBAAoB;cAEnF,sCAAoB,0BAAA,KAAA,oDAAA,cAAA;kBAkBhB;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/status-indicator-value.js b/dist/dev/ui/status-indicator/status-indicator-value.js new file mode 100644 index 00000000..0663cf79 --- /dev/null +++ b/dist/dev/ui/status-indicator/status-indicator-value.js @@ -0,0 +1,23 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useStatusIndicatorContext } from "./context.js"; +import { forwardRef } from "react"; +import { getStatusIndicatorDisplayValue } from "@videojs/core"; +//#region src/ui/status-indicator/status-indicator-value.tsx +const StatusIndicatorValue = forwardRef(function StatusIndicatorValue(componentProps, forwardedRef) { + const { render, className, style, ...elementProps } = componentProps; + const { state } = useStatusIndicatorContext(); + return renderElement("span", { + render, + className, + style + }, { + state, + ref: forwardedRef, + props: [{ children: getStatusIndicatorDisplayValue(state) }, elementProps] + }); +}); +//#endregion +export { StatusIndicatorValue }; + +//# sourceMappingURL=status-indicator-value.js.map \ No newline at end of file diff --git a/dist/dev/ui/status-indicator/status-indicator-value.js.map b/dist/dev/ui/status-indicator/status-indicator-value.js.map new file mode 100644 index 00000000..9176ecd3 --- /dev/null +++ b/dist/dev/ui/status-indicator/status-indicator-value.js.map @@ -0,0 +1 @@ +{"version":3,"file":"status-indicator-value.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-value.tsx"],"sourcesContent":["'use client';\n\nimport { getStatusIndicatorDisplayValue, type StatusIndicatorCore } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useStatusIndicatorContext } from './context';\n\nexport interface StatusIndicatorValueProps extends UIComponentProps<'span', StatusIndicatorCore.State> {}\n\nexport const StatusIndicatorValue = forwardRef(function StatusIndicatorValue(\n componentProps: StatusIndicatorValueProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state } = useStatusIndicatorContext();\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [{ children: getStatusIndicatorDisplayValue(state) }, elementProps],\n }\n );\n});\n\nexport namespace StatusIndicatorValue {\n export type Props = StatusIndicatorValueProps;\n}\n"],"mappings":";;;;;;AAYA,MAAa,uBAAuB,WAAW,SAAS,qBACtD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,UAAU,0BAA0B;CAE5C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CAAC,EAAE,UAAU,+BAA+B,KAAK,EAAE,GAAG,YAAY;CAC3E,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/thumbnail/index.d.ts b/dist/dev/ui/thumbnail/index.d.ts new file mode 100644 index 00000000..7fbb47bc --- /dev/null +++ b/dist/dev/ui/thumbnail/index.d.ts @@ -0,0 +1,2 @@ +import { Thumbnail, ThumbnailProps } from "./thumbnail.js"; +export { Thumbnail, ThumbnailProps }; \ No newline at end of file diff --git a/dist/dev/ui/thumbnail/index.js b/dist/dev/ui/thumbnail/index.js new file mode 100644 index 00000000..9e6bffd5 --- /dev/null +++ b/dist/dev/ui/thumbnail/index.js @@ -0,0 +1,2 @@ +import { Thumbnail } from "./thumbnail.js"; +export { Thumbnail }; diff --git a/dist/dev/ui/thumbnail/thumbnail.d.ts b/dist/dev/ui/thumbnail/thumbnail.d.ts new file mode 100644 index 00000000..d4f77616 --- /dev/null +++ b/dist/dev/ui/thumbnail/thumbnail.d.ts @@ -0,0 +1,15 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { ThumbnailCore, ThumbnailImage } from "@videojs/core"; +//#region src/ui/thumbnail/thumbnail.d.ts +interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props { + /** Pre-parsed thumbnail images — bypasses the automatic `` detection. */ + thumbnails?: ThumbnailImage[] | undefined; +} +declare const Thumbnail: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace Thumbnail { + type Props = ThumbnailProps; + type State = ThumbnailCore.State; +} +//#endregion +export { Thumbnail, ThumbnailProps }; +//# sourceMappingURL=thumbnail.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/thumbnail/thumbnail.d.ts.map b/dist/dev/ui/thumbnail/thumbnail.d.ts.map new file mode 100644 index 00000000..0a9dc5f0 --- /dev/null +++ b/dist/dev/ui/thumbnail/thumbnail.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"thumbnail.d.ts","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"mappings":";;;UAkBiB,uBAAuB,wBAAwB,cAAc,QAAQ,cAAc;;EAElG,aAAa;;cAGF,2BAAS,0BAAA,KAAA,yCAAA,cAAA;kBAsGL;OACH,QAAQ;OACR,QAAQ,cAAc"} \ No newline at end of file diff --git a/dist/dev/ui/thumbnail/thumbnail.js b/dist/dev/ui/thumbnail/thumbnail.js new file mode 100644 index 00000000..5c9e3df6 --- /dev/null +++ b/dist/dev/ui/thumbnail/thumbnail.js @@ -0,0 +1,82 @@ +"use client"; +import { useOptionalPlayer } from "../../player/context.js"; +import { useDestroy } from "../../utils/use-destroy.js"; +import { renderElement } from "../../utils/use-render.js"; +import { createThumbnail, selectTextTrack } from "@videojs/core/dom"; +import { forwardRef, useMemo, useRef, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { ThumbnailCore, ThumbnailDataAttrs, mapCuesToThumbnails } from "@videojs/core"; +//#region src/ui/thumbnail/thumbnail.tsx +const Thumbnail = forwardRef(function Thumbnail(componentProps, forwardedRef) { + const { render, className, style, time = 0, thumbnails: externalThumbnails, crossOrigin, loading, fetchPriority, ...elementProps } = componentProps; + const [core] = useState(() => new ThumbnailCore()); + const divRef = useRef(null); + const imgRef = useRef(null); + const textTrack = useOptionalPlayer(selectTextTrack); + const [, setRenderToken] = useState(0); + const [handle] = useState(() => createThumbnail({ + getContainer: () => divRef.current, + getImg: () => imgRef.current, + onStateChange: () => setRenderToken((n) => n + 1) + })); + useDestroy(handle, () => handle.connect()); + const thumbnails = useMemo(() => { + if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails; + return textTrack && textTrack.thumbnailCues.length > 0 ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? void 0) : []; + }, [externalThumbnails, textTrack]); + const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [ + core, + thumbnails, + time + ]); + handle.updateSrc(thumbnail?.url); + const state = core.getState(handle.loading, handle.error, thumbnail); + let containerStyle = { overflow: "hidden" }; + let imgStyle; + if (thumbnail && handle.naturalWidth && handle.naturalHeight) { + const constraints = handle.readConstraints(); + const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints); + if (result) { + containerStyle = { + overflow: "hidden", + width: result.containerWidth, + height: result.containerHeight + }; + imgStyle = { + width: result.imageWidth, + height: result.imageHeight, + maxWidth: "none", + transform: result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : void 0 + }; + } + } + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: ThumbnailDataAttrs, + ref: [forwardedRef, divRef], + props: [ + core.getAttrs(state), + { style: containerStyle }, + elementProps, + { children: /* @__PURE__ */ jsx("img", { + ref: imgRef, + alt: "", + "aria-hidden": "true", + decoding: "async", + src: thumbnail?.url, + crossOrigin: crossOrigin === "" || crossOrigin === null ? void 0 : crossOrigin, + loading, + style: imgStyle, + fetchPriority + }) } + ] + }); +}); +//#endregion +export { Thumbnail }; + +//# sourceMappingURL=thumbnail.js.map \ No newline at end of file diff --git a/dist/dev/ui/thumbnail/thumbnail.js.map b/dist/dev/ui/thumbnail/thumbnail.js.map new file mode 100644 index 00000000..7560292e --- /dev/null +++ b/dist/dev/ui/thumbnail/thumbnail.js.map @@ -0,0 +1 @@ +{"version":3,"file":"thumbnail.js","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailFetchPriority,\n type ThumbnailImage,\n} from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {\n /** Pre-parsed thumbnail images — bypasses the automatic `` detection. */\n thumbnails?: ThumbnailImage[] | undefined;\n}\n\nexport const Thumbnail = forwardRef(function Thumbnail(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n time = 0,\n thumbnails: externalThumbnails,\n crossOrigin,\n loading,\n fetchPriority,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new ThumbnailCore());\n const divRef = useRef(null);\n const imgRef = useRef(null);\n const textTrack = useOptionalPlayer(selectTextTrack);\n\n // Force re-render when the handle's state changes (img load/error, resize).\n const [, setRenderToken] = useState(0);\n\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((n) => n + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // Resolve thumbnails: external prop takes priority over auto path.\n const thumbnails = useMemo(() => {\n if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;\n return textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }, [externalThumbnails, textTrack]);\n\n const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [core, thumbnails, time]);\n\n // Track src changes via the handle.\n handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n // Compute styles declaratively from resize result.\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imgStyle: CSSProperties | undefined;\n\n if (thumbnail && handle.naturalWidth && handle.naturalHeight) {\n const constraints = handle.readConstraints();\n const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints);\n\n if (result) {\n containerStyle = {\n overflow: 'hidden',\n width: result.containerWidth,\n height: result.containerHeight,\n };\n imgStyle = {\n width: result.imageWidth,\n height: result.imageHeight,\n maxWidth: 'none',\n transform:\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : undefined,\n };\n }\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [\n core.getAttrs(state),\n { style: containerStyle },\n elementProps,\n {\n children: (\n \n ),\n },\n ],\n }\n );\n});\n\nexport namespace Thumbnail {\n export type Props = ThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;AAuBA,MAAa,YAAY,WAA2C,SAAS,UAAU,gBAAgB,cAAc;CACnH,MAAM,EACJ,QACA,WACA,OACA,OAAO,GACP,YAAY,oBACZ,aACA,SACA,eACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,cAAc,CAAC;CACjD,MAAM,SAAS,OAAuB,IAAI;CAC1C,MAAM,SAAS,OAAyB,IAAI;CAC5C,MAAM,YAAY,kBAAkB,eAAe;CAGnD,MAAM,GAAG,kBAAkB,SAAS,CAAC;CAErC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,MAAM,IAAI,CAAC;CAClD,CAAC,CACH;CAEA,WAAW,cAAc,OAAO,QAAQ,CAAC;CAGzC,MAAM,aAAa,cAAc;EAC/B,IAAI,sBAAsB,mBAAmB,SAAS,GAAG,OAAO;EAChE,OAAO,aAAa,UAAU,cAAc,SAAS,IACjD,oBAAoB,UAAU,eAAe,UAAU,qBAAqB,KAAA,CAAS,IACrF,CAAC;CACP,GAAG,CAAC,oBAAoB,SAAS,CAAC;CAElC,MAAM,YAAY,cAAc,KAAK,oBAAoB,YAAY,IAAI,GAAG;EAAC;EAAM;EAAY;CAAI,CAAC;CAGpG,OAAO,UAAU,WAAW,GAAG;CAE/B,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,SAAS;CAGnE,IAAI,iBAAgC,EAAE,UAAU,SAAS;CACzD,IAAI;CAEJ,IAAI,aAAa,OAAO,gBAAgB,OAAO,eAAe;EAC5D,MAAM,cAAc,OAAO,gBAAgB;EAC3C,MAAM,SAAS,KAAK,OAAO,WAAW,OAAO,cAAc,OAAO,eAAe,WAAW;EAE5F,IAAI,QAAQ;GACV,iBAAiB;IACf,UAAU;IACV,OAAO,OAAO;IACd,QAAQ,OAAO;GACjB;GACA,WAAW;IACT,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU;IACV,WACE,OAAO,WAAW,OAAO,UAAU,cAAc,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAA;GACjG;EACF;CACF;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,MAAM;EAC1B,OAAO;GACL,KAAK,SAAS,KAAK;GACnB,EAAE,OAAO,eAAe;GACxB;GACA,EACE,UACE,oBAAC,OAAD;IACE,KAAK;IACL,KAAI;IACJ,eAAY;IACZ,UAAS;IACT,KAAK,WAAW;IAChB,aAAa,gBAAgB,MAAM,gBAAgB,OAAO,KAAA,IAAY;IAC7D;IACT,OAAO;IAEQ;GAChB,CAAA,EAEL;EACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/time-slider/index.d.ts b/dist/dev/ui/time-slider/index.d.ts new file mode 100644 index 00000000..2fd0786c --- /dev/null +++ b/dist/dev/ui/time-slider/index.d.ts @@ -0,0 +1,2 @@ +import { index_parts_d_exports } from "./index.parts.js"; +export { index_parts_d_exports as TimeSlider }; \ No newline at end of file diff --git a/dist/dev/ui/time-slider/index.js b/dist/dev/ui/time-slider/index.js new file mode 100644 index 00000000..acadad7b --- /dev/null +++ b/dist/dev/ui/time-slider/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as TimeSlider }; diff --git a/dist/dev/ui/time-slider/index.parts.d.ts b/dist/dev/ui/time-slider/index.parts.d.ts new file mode 100644 index 00000000..edd55d73 --- /dev/null +++ b/dist/dev/ui/time-slider/index.parts.d.ts @@ -0,0 +1,14 @@ +import { SliderBuffer, SliderBufferProps } from "../slider/slider-buffer.js"; +import { SliderFill, SliderFillProps } from "../slider/slider-fill.js"; +import { SliderPreview, SliderPreviewProps } from "../slider/slider-preview.js"; +import { SliderThumb, SliderThumbProps } from "../slider/slider-thumb.js"; +import { SliderTrack, SliderTrackProps } from "../slider/slider-track.js"; +import { SliderValue, SliderValueProps } from "../slider/slider-value.js"; +import "../slider/index.parts.js"; +import { TimeSliderRoot, TimeSliderRootProps } from "./time-slider-root.js"; +declare namespace index_parts_d_exports { + export { SliderBuffer as Buffer, SliderBufferProps as BufferProps, SliderFill as Fill, SliderFillProps as FillProps, SliderPreview as Preview, SliderPreviewProps as PreviewProps, TimeSliderRoot as Root, TimeSliderRootProps as RootProps, SliderThumb as Thumb, SliderThumbProps as ThumbProps, SliderTrack as Track, SliderTrackProps as TrackProps, SliderValue as Value, SliderValueProps as ValueProps }; +} +//#endregion +export { SliderBuffer as Buffer, type SliderBufferProps as BufferProps, SliderFill as Fill, type SliderFillProps as FillProps, SliderPreview as Preview, type SliderPreviewProps as PreviewProps, TimeSliderRoot as Root, type TimeSliderRootProps as RootProps, SliderThumb as Thumb, type SliderThumbProps as ThumbProps, SliderTrack as Track, type SliderTrackProps as TrackProps, SliderValue as Value, type SliderValueProps as ValueProps, index_parts_d_exports }; +//# sourceMappingURL=index.parts.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/time-slider/index.parts.d.ts.map b/dist/dev/ui/time-slider/index.parts.d.ts.map new file mode 100644 index 00000000..4c1e71c0 --- /dev/null +++ b/dist/dev/ui/time-slider/index.parts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../../src/ui/time-slider/index.parts.ts"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/time-slider/index.parts.js b/dist/dev/ui/time-slider/index.parts.js new file mode 100644 index 00000000..e08430a3 --- /dev/null +++ b/dist/dev/ui/time-slider/index.parts.js @@ -0,0 +1,22 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { SliderBuffer } from "../slider/slider-buffer.js"; +import { SliderFill } from "../slider/slider-fill.js"; +import { SliderPreview } from "../slider/slider-preview.js"; +import { SliderThumb } from "../slider/slider-thumb.js"; +import { SliderTrack } from "../slider/slider-track.js"; +import { SliderValue } from "../slider/slider-value.js"; +import { TimeSliderRoot } from "./time-slider-root.js"; +//#region src/ui/time-slider/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Buffer: () => SliderBuffer, + Fill: () => SliderFill, + Preview: () => SliderPreview, + Root: () => TimeSliderRoot, + Thumb: () => SliderThumb, + Track: () => SliderTrack, + Value: () => SliderValue +}); +//#endregion +export { SliderBuffer as Buffer, SliderFill as Fill, SliderPreview as Preview, TimeSliderRoot as Root, SliderThumb as Thumb, SliderTrack as Track, SliderValue as Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/dev/ui/time-slider/index.parts.js.map b/dist/dev/ui/time-slider/index.parts.js.map new file mode 100644 index 00000000..189128f6 --- /dev/null +++ b/dist/dev/ui/time-slider/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/time-slider/index.parts.ts"],"sourcesContent":["export {\n Buffer,\n type BufferProps,\n Fill,\n type FillProps,\n Preview,\n type PreviewProps,\n Thumb,\n type ThumbProps,\n Track,\n type TrackProps,\n Value,\n type ValueProps,\n} from '../slider/index.parts';\nexport { TimeSliderRoot as Root, type TimeSliderRootProps as RootProps } from './time-slider-root';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/time-slider/time-slider-root.d.ts b/dist/dev/ui/time-slider/time-slider-root.d.ts new file mode 100644 index 00000000..8d5e7c56 --- /dev/null +++ b/dist/dev/ui/time-slider/time-slider-root.d.ts @@ -0,0 +1,15 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { TimeSliderCore } from "@videojs/core"; +//#region src/ui/time-slider/time-slider-root.d.ts +interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props { + onDragStart?: (() => void) | undefined; + onDragEnd?: (() => void) | undefined; +} +declare const TimeSliderRoot: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace TimeSliderRoot { + type Props = TimeSliderRootProps; + type State = TimeSliderCore.State; +} +//#endregion +export { TimeSliderRoot, TimeSliderRootProps }; +//# sourceMappingURL=time-slider-root.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/time-slider/time-slider-root.d.ts.map b/dist/dev/ui/time-slider/time-slider-root.d.ts.map new file mode 100644 index 00000000..789b82df --- /dev/null +++ b/dist/dev/ui/time-slider/time-slider-root.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"time-slider-root.d.ts","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"mappings":";;;UAkBiB,4BAA4B,wBAAwB,eAAe,QAAQ,eAAe;EACzG;EACA;;cAGW,gCAAc,0BAAA,KAAA,8CAAA,cAAA;kBAsIV;OACH,QAAQ;OACR,QAAQ,eAAe"} \ No newline at end of file diff --git a/dist/dev/ui/time-slider/time-slider-root.js b/dist/dev/ui/time-slider/time-slider-root.js new file mode 100644 index 00000000..1da026db --- /dev/null +++ b/dist/dev/ui/time-slider/time-slider-root.js @@ -0,0 +1,125 @@ +"use client"; +import { useLocale, useTranslator } from "../../i18n/context.js"; +import { usePlayer } from "../../player/context.js"; +import { useLatestRef } from "../../utils/use-latest-ref.js"; +import { renderElement } from "../../utils/use-render.js"; +import { useSlider } from "../hooks/use-slider.js"; +import { SliderProvider } from "../slider/context.js"; +import { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectPlayback, selectTime } from "@videojs/core/dom"; +import { translateText } from "@videojs/core/i18n"; +import { forwardRef, useEffect, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { TimeSliderCore, TimeSliderDataAttrs } from "@videojs/core"; +import { formatTime } from "@videojs/utils/time"; +//#region src/ui/time-slider/time-slider-root.tsx +const noopSeek = () => Promise.resolve(0); +const TimeSliderRoot = forwardRef(function TimeSliderRoot(componentProps, forwardedRef) { + const { render, className, style, label, changeThrottle = TimeSliderCore.defaultProps.changeThrottle, step = TimeSliderCore.defaultProps.step, largeStep = TimeSliderCore.defaultProps.largeStep, orientation, disabled, thumbAlignment, onDragStart, onDragEnd, pauseOnDrag, ...elementProps } = componentProps; + const time = usePlayer(selectTime); + const buffer = usePlayer(selectBuffer); + const playback = usePlayer(selectPlayback); + const translator = useTranslator(); + const locale = useLocale(); + const [core] = useState(() => new TimeSliderCore()); + core.setProps({ + label, + step, + largeStep, + orientation, + disabled, + thumbAlignment, + pauseOnDrag, + changeThrottle + }); + core.setFormatLocale(locale); + const mediaRef = useLatestRef(time && buffer ? { + ...time, + ...buffer + } : null); + const playbackRef = useLatestRef(playback); + useEffect(() => { + return () => core.endDrag(playbackRef.current); + }, [core]); + const duration = time?.duration ?? 0; + const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider({ + computeState: (input) => { + core.setInput(input); + if (!time || !buffer) core.setMedia({ + currentTime: 0, + duration: 0, + seeking: false, + seek: noopSeek, + buffered: [], + seekable: [] + }); + else core.setMedia({ + ...time, + ...buffer + }); + return core.getState(); + }, + getPercent: () => duration > 0 ? (time?.currentTime ?? 0) / duration * 100 : 0, + getStepPercent: () => core.getStepPercent(), + getLargeStepPercent: () => core.getLargeStepPercent(), + orientation, + disabled, + changeThrottle, + adjustPercent: (rawPercent, thumbSize, trackSize) => core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize), + getCSSVars: getTimeSliderCSSVars, + onValueCommit: (percent) => { + const media = mediaRef.current; + if (media) media.seek(core.rawValueFromPercent(percent)); + }, + onDragStart: () => { + core.startDrag(playbackRef.current); + onDragStart?.(); + }, + onDragEnd: () => { + core.endDrag(playbackRef.current); + onDragEnd?.(); + } + }); + if (!time) { + logMissingFeature("TimeSlider", "time"); + return null; + } + return /* @__PURE__ */ jsx(SliderProvider, { + value: { + state, + pointerValue: core.valueFromPercent(state.pointerPercent), + thumbRef, + thumbProps, + stateAttrMap: TimeSliderDataAttrs, + getAttrs: (sliderState) => { + const attrs = core.getAttrs(sliderState); + return { + ...attrs, + "aria-label": translateText(attrs["aria-label"], translator), + "aria-valuetext": translateText(attrs["aria-valuetext"], translator, core.getValueTextParams(sliderState)) + }; + }, + formatValue: (value) => formatTime(value, duration) + }, + children: renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap: TimeSliderDataAttrs, + ref: [forwardedRef, rootRef], + props: [ + { style: { + ...cssVars, + ...rootStyle + } }, + rootProps, + elementProps + ] + }) + }); +}); +//#endregion +export { TimeSliderRoot }; + +//# sourceMappingURL=time-slider-root.js.map \ No newline at end of file diff --git a/dist/dev/ui/time-slider/time-slider-root.js.map b/dist/dev/ui/time-slider/time-slider-root.js.map new file mode 100644 index 00000000..b74607ad --- /dev/null +++ b/dist/dev/ui/time-slider/time-slider-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-slider-root.js","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectPlayback, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { formatTime } from '@videojs/utils/time';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopSeek = (): Promise => Promise.resolve(0);\n\nexport interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const TimeSliderRoot = forwardRef(\n function TimeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle,\n step = TimeSliderCore.defaultProps.step,\n largeStep = TimeSliderCore.defaultProps.largeStep,\n orientation,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n pauseOnDrag,\n ...elementProps\n } = componentProps;\n\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n const playback = usePlayer(selectPlayback);\n const translator = useTranslator();\n const locale = useLocale();\n\n const [core] = useState(() => new TimeSliderCore());\n core.setProps({\n label,\n step,\n largeStep,\n orientation,\n disabled,\n thumbAlignment,\n pauseOnDrag,\n changeThrottle,\n });\n core.setFormatLocale(locale);\n\n // Keep a ref to the latest media state for callbacks that fire outside the render cycle.\n const mediaRef = useLatestRef(time && buffer ? { ...time, ...buffer } : null);\n const playbackRef = useLatestRef(playback);\n\n // Resume playback if the slider unmounts mid-drag — createSlider's destroy()\n // does not fire onDragEnd, so without this the player would stay paused.\n useEffect(() => {\n return () => core.endDrag(playbackRef.current);\n }, [core]);\n\n const duration = time?.duration ?? 0;\n\n const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider({\n computeState: (input) => {\n core.setInput(input);\n if (!time || !buffer) {\n core.setMedia({\n currentTime: 0,\n duration: 0,\n seeking: false,\n seek: noopSeek,\n buffered: [],\n seekable: [],\n });\n } else {\n core.setMedia({ ...time, ...buffer });\n }\n\n return core.getState();\n },\n getPercent: () => (duration > 0 ? ((time?.currentTime ?? 0) / duration) * 100 : 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n changeThrottle,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getTimeSliderCSSVars,\n onValueCommit: (percent) => {\n const media = mediaRef.current;\n if (media) media.seek(core.rawValueFromPercent(percent));\n },\n onDragStart: () => {\n core.startDrag(playbackRef.current);\n onDragStart?.();\n },\n onDragEnd: () => {\n core.endDrag(playbackRef.current);\n onDragEnd?.();\n },\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('TimeSlider', 'time');\n return null;\n }\n\n return (\n {\n const attrs = core.getAttrs(sliderState as TimeSliderCore.State);\n return {\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator),\n 'aria-valuetext': translateText(\n attrs['aria-valuetext'],\n translator,\n core.getValueTextParams(sliderState as TimeSliderCore.State)\n ),\n };\n },\n formatValue: (value) => formatTime(value, duration),\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeSliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n \n );\n }\n);\n\nexport namespace TimeSliderRoot {\n export type Props = TimeSliderRootProps;\n export type State = TimeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAM,iBAAkC,QAAQ,QAAQ,CAAC;AAOzD,MAAa,iBAAiB,WAC5B,SAAS,eAAe,gBAAgB,cAAc;CACpD,MAAM,EACJ,QACA,WACA,OACA,OACA,iBAAiB,eAAe,aAAa,gBAC7C,OAAO,eAAe,aAAa,MACnC,YAAY,eAAe,aAAa,WACxC,aACA,UACA,gBACA,aACA,WACA,aACA,GAAG,iBACD;CAEJ,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,SAAS,UAAU,YAAY;CACrC,MAAM,WAAW,UAAU,cAAc;CACzC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAClD,KAAK,SAAS;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,KAAK,gBAAgB,MAAM;CAG3B,MAAM,WAAW,aAAa,QAAQ,SAAS;EAAE,GAAG;EAAM,GAAG;CAAO,IAAI,IAAI;CAC5E,MAAM,cAAc,aAAa,QAAQ;CAIzC,gBAAgB;EACd,aAAa,KAAK,QAAQ,YAAY,OAAO;CAC/C,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,EAAE,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eAAe,UAAgC;EAC9G,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,IAAI,CAAC,QAAQ,CAAC,QACZ,KAAK,SAAS;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU,CAAC;IACX,UAAU,CAAC;GACb,CAAC;QAED,KAAK,SAAS;IAAE,GAAG;IAAM,GAAG;GAAO,CAAC;GAGtC,OAAO,KAAK,SAAS;EACvB;EACA,kBAAmB,WAAW,KAAM,MAAM,eAAe,KAAK,WAAY,MAAM;EAChF,sBAAsB,KAAK,eAAe;EAC1C,2BAA2B,KAAK,oBAAoB;EACpD;EACA;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,gBAAgB,YAAY;GAC1B,MAAM,QAAQ,SAAS;GACvB,IAAI,OAAO,MAAM,KAAK,KAAK,oBAAoB,OAAO,CAAC;EACzD;EACA,mBAAmB;GACjB,KAAK,UAAU,YAAY,OAAO;GAClC,cAAc;EAChB;EACA,iBAAiB;GACf,KAAK,QAAQ,YAAY,OAAO;GAChC,YAAY;EACd;CACF,CAAC;CAED,IAAI,CAAC,MAAM;EACI,kBAAkB,cAAc,MAAM;EACnD,OAAO;CACT;CAEA,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,cAAc;GACxD;GACA;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAmC;IAC/D,OAAO;KACL,GAAG;KACH,cAAc,cAAc,MAAM,eAAe,UAAU;KAC3D,kBAAkB,cAChB,MAAM,mBACN,YACA,KAAK,mBAAmB,WAAmC,CAC7D;IACF;GACF;GACA,cAAc,UAAU,WAAW,OAAO,QAAQ;EACpD;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,OAAO;GAC3B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CACF"} \ No newline at end of file diff --git a/dist/dev/ui/time/index.d.ts b/dist/dev/ui/time/index.d.ts new file mode 100644 index 00000000..7521826e --- /dev/null +++ b/dist/dev/ui/time/index.d.ts @@ -0,0 +1,2 @@ +import { index_parts_d_exports } from "./index.parts.js"; +export { index_parts_d_exports as Time }; \ No newline at end of file diff --git a/dist/dev/ui/time/index.js b/dist/dev/ui/time/index.js new file mode 100644 index 00000000..96b5717d --- /dev/null +++ b/dist/dev/ui/time/index.js @@ -0,0 +1,2 @@ +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as Time }; diff --git a/dist/dev/ui/time/index.parts.d.ts b/dist/dev/ui/time/index.parts.d.ts new file mode 100644 index 00000000..7b17c894 --- /dev/null +++ b/dist/dev/ui/time/index.parts.d.ts @@ -0,0 +1,9 @@ +import { Group, GroupProps } from "./time-group.js"; +import { Separator, SeparatorProps } from "./time-separator.js"; +import { Value, ValueProps } from "./time-value.js"; +declare namespace index_parts_d_exports { + export { Group, GroupProps, Separator, SeparatorProps, Value, ValueProps }; +} +//#endregion +export { Group, type GroupProps, Separator, type SeparatorProps, Value, type ValueProps, index_parts_d_exports }; +//# sourceMappingURL=index.parts.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/time/index.parts.d.ts.map b/dist/dev/ui/time/index.parts.d.ts.map new file mode 100644 index 00000000..05862fbc --- /dev/null +++ b/dist/dev/ui/time/index.parts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../../src/ui/time/index.parts.ts"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/time/index.parts.js b/dist/dev/ui/time/index.parts.js new file mode 100644 index 00000000..df9cc516 --- /dev/null +++ b/dist/dev/ui/time/index.parts.js @@ -0,0 +1,14 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { Group } from "./time-group.js"; +import { Separator } from "./time-separator.js"; +import { Value } from "./time-value.js"; +//#region src/ui/time/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Group: () => Group, + Separator: () => Separator, + Value: () => Value +}); +//#endregion +export { Group, Separator, Value, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/dev/ui/time/index.parts.js.map b/dist/dev/ui/time/index.parts.js.map new file mode 100644 index 00000000..7ae4082d --- /dev/null +++ b/dist/dev/ui/time/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/time/index.parts.ts"],"sourcesContent":["export { Group, type GroupProps } from './time-group';\nexport { Separator, type SeparatorProps } from './time-separator';\nexport { Value, type ValueProps } from './time-value';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/time/time-group.d.ts b/dist/dev/ui/time/time-group.d.ts new file mode 100644 index 00000000..715a3f48 --- /dev/null +++ b/dist/dev/ui/time/time-group.d.ts @@ -0,0 +1,27 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { ReactNode } from "react"; +//#region src/ui/time/time-group.d.ts +type GroupState = Record; +interface GroupProps extends UIComponentProps<'span', GroupState> { + /** Time value components to render inside the group. */ + children?: ReactNode | undefined; +} +/** + * Container for composed time displays. Renders a `` element. + * + * @example + * ```tsx + * + * + * + * + * + * ``` + */ +declare const Group: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace Group { + type Props = GroupProps; +} +//#endregion +export { Group, GroupProps }; +//# sourceMappingURL=time-group.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/time/time-group.d.ts.map b/dist/dev/ui/time/time-group.d.ts.map new file mode 100644 index 00000000..c20ff2ed --- /dev/null +++ b/dist/dev/ui/time/time-group.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"time-group.d.ts","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"mappings":";;;KASK,aAAa;UAED,mBAAmB,yBAAyB;;EAE3D,WAAW;;;;;;;;;;;;;;cAeA,uBAAK,0BAAA,KAAA,qCAAA,cAAA;kBAmBD;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/time/time-group.js b/dist/dev/ui/time/time-group.js new file mode 100644 index 00000000..dda286d8 --- /dev/null +++ b/dist/dev/ui/time/time-group.js @@ -0,0 +1,32 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { forwardRef } from "react"; +//#region src/ui/time/time-group.tsx +/** +* Container for composed time displays. Renders a `` element. +* +* @example +* ```tsx +* +* +* +* +* +* ``` +*/ +const Group = forwardRef(function Group(componentProps, forwardedRef) { + const { render, className, style, children, ...elementProps } = componentProps; + return renderElement("span", { + render, + className, + style + }, { + state: {}, + ref: [forwardedRef], + props: [{ children }, elementProps] + }); +}); +//#endregion +export { Group }; + +//# sourceMappingURL=time-group.js.map \ No newline at end of file diff --git a/dist/dev/ui/time/time-group.js.map b/dist/dev/ui/time/time-group.js.map new file mode 100644 index 00000000..74219cd6 --- /dev/null +++ b/dist/dev/ui/time/time-group.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-group.js","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"sourcesContent":["'use client';\n\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Group (no dynamic state)\ntype GroupState = Record;\n\nexport interface GroupProps extends UIComponentProps<'span', GroupState> {\n /** Time value components to render inside the group. */\n children?: ReactNode | undefined;\n}\n\n/**\n * Container for composed time displays. Renders a `` element.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * \n * ```\n */\nexport const Group = forwardRef(function Group(\n componentProps: GroupProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const state: GroupState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ children }, elementProps],\n }\n );\n});\n\nexport namespace Group {\n export type Props = GroupProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA4BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAIhE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,SAAS,GAAG,YAAY;CACpC,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/time/time-separator.d.ts b/dist/dev/ui/time/time-separator.d.ts new file mode 100644 index 00000000..80712c4e --- /dev/null +++ b/dist/dev/ui/time/time-separator.d.ts @@ -0,0 +1,24 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { ReactNode } from "react"; +//#region src/ui/time/time-separator.d.ts +type SeparatorState = Record; +interface SeparatorProps extends UIComponentProps<'span', SeparatorState> { + /** Separator content. Defaults to "/". */ + children?: ReactNode | undefined; +} +/** + * Divider between time values. Hidden from screen readers. + * + * @example + * ```tsx + * + * of + * ``` + */ +declare const Separator: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace Separator { + type Props = SeparatorProps; +} +//#endregion +export { Separator, SeparatorProps }; +//# sourceMappingURL=time-separator.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/time/time-separator.d.ts.map b/dist/dev/ui/time/time-separator.d.ts.map new file mode 100644 index 00000000..269e0103 --- /dev/null +++ b/dist/dev/ui/time/time-separator.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"time-separator.d.ts","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"mappings":";;;KASK,iBAAiB;UAEL,uBAAuB,yBAAyB;;EAE/D,WAAW;;;;;;;;;;;cAYA,2BAAS,0BAAA,KAAA,yCAAA,cAAA;kBAmBL;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/time/time-separator.js b/dist/dev/ui/time/time-separator.js new file mode 100644 index 00000000..67e955a9 --- /dev/null +++ b/dist/dev/ui/time/time-separator.js @@ -0,0 +1,32 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { forwardRef } from "react"; +//#region src/ui/time/time-separator.tsx +/** +* Divider between time values. Hidden from screen readers. +* +* @example +* ```tsx +* +* of +* ``` +*/ +const Separator = forwardRef(function Separator(componentProps, forwardedRef) { + const { render, className, style, children = "/", ...elementProps } = componentProps; + return renderElement("span", { + render, + className, + style + }, { + state: {}, + ref: [forwardedRef], + props: [{ + "aria-hidden": "true", + children + }, elementProps] + }); +}); +//#endregion +export { Separator }; + +//# sourceMappingURL=time-separator.js.map \ No newline at end of file diff --git a/dist/dev/ui/time/time-separator.js.map b/dist/dev/ui/time/time-separator.js.map new file mode 100644 index 00000000..bb45a77f --- /dev/null +++ b/dist/dev/ui/time/time-separator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-separator.js","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"sourcesContent":["'use client';\n\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Separator (no dynamic state)\ntype SeparatorState = Record;\n\nexport interface SeparatorProps extends UIComponentProps<'span', SeparatorState> {\n /** Separator content. Defaults to \"/\". */\n children?: ReactNode | undefined;\n}\n\n/**\n * Divider between time values. Hidden from screen readers.\n *\n * @example\n * ```tsx\n * \n * of \n * ```\n */\nexport const Separator = forwardRef(function Separator(\n componentProps: SeparatorProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, children = '/', ...elementProps } = componentProps;\n\n const state: SeparatorState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ 'aria-hidden': 'true', children }, elementProps],\n }\n );\n});\n\nexport namespace Separator {\n export type Props = SeparatorProps;\n}\n"],"mappings":";;;;;;;;;;;;;AAyBA,MAAa,YAAY,WAAW,SAAS,UAC3C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,KAAK,GAAG,iBAAiB;CAItE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,eAAe;GAAQ;EAAS,GAAG,YAAY;CAC3D,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/time/time-value.d.ts b/dist/dev/ui/time/time-value.d.ts new file mode 100644 index 00000000..e5125f20 --- /dev/null +++ b/dist/dev/ui/time/time-value.d.ts @@ -0,0 +1,22 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { TimeCore } from "@videojs/core"; +//#region src/ui/time/time-value.d.ts +interface ValueProps extends Omit, 'children'>, TimeCore.Props {} +/** + * Displays a formatted time value (current, duration, or remaining). + * + * @example + * ```tsx + * + * + * + * ``` + */ +declare const Value: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace Value { + type Props = ValueProps; + type State = TimeCore.State; +} +//#endregion +export { Value, ValueProps }; +//# sourceMappingURL=time-value.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/time/time-value.d.ts.map b/dist/dev/ui/time/time-value.d.ts.map new file mode 100644 index 00000000..26213cb3 --- /dev/null +++ b/dist/dev/ui/time/time-value.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"time-value.d.ts","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"mappings":";;;UAgBiB,mBAAmB,KAAK,yBAAyB,SAAS,qBAAqB,SAAS;;;;;;;;;;;cAY5F,uBAAK,0BAAA,KAAA,qCAAA,cAAA;kBAkGD;OACH,QAAQ;OACR,QAAQ,SAAS"} \ No newline at end of file diff --git a/dist/dev/ui/time/time-value.js b/dist/dev/ui/time/time-value.js new file mode 100644 index 00000000..52b43a0d --- /dev/null +++ b/dist/dev/ui/time/time-value.js @@ -0,0 +1,92 @@ +"use client"; +import { useLocale, useTranslator } from "../../i18n/context.js"; +import { usePlayer } from "../../player/context.js"; +import { renderElement } from "../../utils/use-render.js"; +import { logMissingFeature, selectTime } from "@videojs/core/dom"; +import { translateText } from "@videojs/core/i18n"; +import { forwardRef, useEffect, useState } from "react"; +import { isInteractiveActivation } from "@videojs/utils/dom"; +import { Fragment, jsx, jsxs } from "react/jsx-runtime"; +import { TimeCore, TimeDataAttrs } from "@videojs/core"; +import { remainingSuffixText } from "@videojs/core/i18n/text/time"; +import { formatTimeAsPhrase } from "@videojs/utils/time"; +//#region src/ui/time/time-value.tsx +/** +* Displays a formatted time value (current, duration, or remaining). +* +* @example +* ```tsx +* +* +* +* ``` +*/ +const Value = forwardRef(function Value(componentProps, forwardedRef) { + const { render, className, style, type, negativeSign, label, toggle = false, ...elementProps } = componentProps; + const time = usePlayer(selectTime); + const translator = useTranslator(); + const locale = useLocale(); + const [core] = useState(() => new TimeCore()); + const defaultType = type ?? TimeCore.defaultProps.type; + const [activeType, setActiveType] = useState(defaultType); + useEffect(() => { + setActiveType(defaultType); + }, [defaultType, toggle]); + core.setProps({ + type: activeType, + negativeSign, + label, + toggle + }); + if (!time) { + logMissingFeature("Time.Value", "time"); + return null; + } + core.setMedia(time); + const state = core.getState(); + const attrs = core.getAttrs(state, defaultType); + const resolvedLabelParams = core.getLabelParams(state) ? { duration: state.type === "remaining" ? translateText(remainingSuffixText, translator, { duration: formatTimeAsPhrase(Math.abs(state.seconds), { locale }) }) : formatTimeAsPhrase(Math.abs(state.seconds), { locale }) } : void 0; + const content = state.negative ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", { + "aria-hidden": "true", + children: negativeSign ?? TimeCore.defaultProps.negativeSign + }), state.text] }) : state.text; + const toggleType = () => { + setActiveType((value) => { + if (defaultType === "current") return value === "remaining" ? "current" : "remaining"; + return value === "duration" ? "remaining" : "duration"; + }); + }; + const handleClick = (event) => { + if (event.defaultPrevented) return; + toggleType(); + }; + const handleKeyDown = (event) => { + if (event.defaultPrevented || !isInteractiveActivation(event.nativeEvent)) return; + event.preventDefault(); + if (event.repeat) return; + toggleType(); + }; + return renderElement("time", { + render, + className, + style + }, { + state, + stateAttrMap: TimeDataAttrs, + ref: [forwardedRef], + props: [{ + dateTime: state.datetime, + children: content, + ...attrs, + "aria-label": translateText(attrs["aria-label"], translator, resolvedLabelParams), + ...toggle ? { + onClick: handleClick, + onKeyDown: handleKeyDown + } : void 0 + }, elementProps] + }); +}); +//#endregion +export { Value }; + +//# sourceMappingURL=time-value.js.map \ No newline at end of file diff --git a/dist/dev/ui/time/time-value.js.map b/dist/dev/ui/time/time-value.js.map new file mode 100644 index 00000000..b33d1d62 --- /dev/null +++ b/dist/dev/ui/time/time-value.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-value.js","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"sourcesContent":["'use client';\n\nimport { TimeCore, TimeDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { remainingSuffixText } from '@videojs/core/i18n/text/time';\nimport { isInteractiveActivation } from '@videojs/utils/dom';\nimport { formatTimeAsPhrase } from '@videojs/utils/time';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ValueProps extends Omit, 'children'>, TimeCore.Props {}\n\n/**\n * Displays a formatted time value (current, duration, or remaining).\n *\n * @example\n * ```tsx\n * \n * \n * \n * ```\n */\nexport const Value = forwardRef(function Value(\n componentProps: ValueProps,\n forwardedRef: ForwardedRef\n) {\n const { render, className, style, type, negativeSign, label, toggle = false, ...elementProps } = componentProps;\n\n const time = usePlayer(selectTime);\n const translator = useTranslator();\n const locale = useLocale();\n\n const [core] = useState(() => new TimeCore());\n\n const defaultType = type ?? TimeCore.defaultProps.type;\n const [activeType, setActiveType] = useState(defaultType);\n // biome-ignore lint/correctness/useExhaustiveDependencies: We want to listen for changes to defaultType and toggle (so we revert to default), this just means one less useEffect.\n useEffect(() => {\n setActiveType(defaultType);\n }, [defaultType, toggle]);\n\n core.setProps({\n type: activeType,\n negativeSign,\n label,\n toggle,\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('Time.Value', 'time');\n return null;\n }\n\n core.setMedia(time);\n const state = core.getState();\n const attrs = core.getAttrs(state, defaultType);\n const labelParams = core.getLabelParams(state);\n const resolvedLabelParams = labelParams\n ? {\n duration:\n state.type === 'remaining'\n ? translateText(remainingSuffixText, translator, {\n duration: formatTimeAsPhrase(Math.abs(state.seconds), { locale }),\n })\n : formatTimeAsPhrase(Math.abs(state.seconds), { locale }),\n }\n : undefined;\n\n const content = state.negative ? (\n <>\n {negativeSign ?? TimeCore.defaultProps.negativeSign}\n {state.text}\n \n ) : (\n state.text\n );\n\n const toggleType = () => {\n setActiveType((value) => {\n if (defaultType === 'current') {\n return value === 'remaining' ? 'current' : 'remaining';\n }\n return value === 'duration' ? 'remaining' : 'duration';\n });\n };\n\n const handleClick = (event: MouseEvent) => {\n if (event.defaultPrevented) return;\n toggleType();\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented || !isInteractiveActivation(event.nativeEvent)) return;\n // Prevent space from scrolling page.\n event.preventDefault();\n if (event.repeat) return;\n toggleType();\n };\n\n return renderElement(\n 'time',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeDataAttrs,\n ref: [forwardedRef],\n props: [\n {\n dateTime: state.datetime,\n children: content,\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator, resolvedLabelParams),\n ...(toggle ? { onClick: handleClick, onKeyDown: handleKeyDown } : undefined),\n },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace Value {\n export type Props = ValueProps;\n export type State = TimeCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,cAAc,OAAO,SAAS,OAAO,GAAG,iBAAiB;CAEjG,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,QAAQ,eAAe,IAAI,SAAS,CAAC;CAE5C,MAAM,cAAc,QAAQ,SAAS,aAAa;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,WAAW;CAExD,gBAAgB;EACd,cAAc,WAAW;CAC3B,GAAG,CAAC,aAAa,MAAM,CAAC;CAExB,KAAK,SAAS;EACZ,MAAM;EACN;EACA;EACA;CACF,CAAC;CAED,IAAI,CAAC,MAAM;EACI,kBAAkB,cAAc,MAAM;EACnD,OAAO;CACT;CAEA,KAAK,SAAS,IAAI;CAClB,MAAM,QAAQ,KAAK,SAAS;CAC5B,MAAM,QAAQ,KAAK,SAAS,OAAO,WAAW;CAE9C,MAAM,sBADc,KAAK,eAAe,KACF,IAClC,EACE,UACE,MAAM,SAAS,cACX,cAAc,qBAAqB,YAAY,EAC7C,UAAU,mBAAmB,KAAK,IAAI,MAAM,OAAO,GAAG,EAAE,OAAO,CAAC,EAClE,CAAC,IACD,mBAAmB,KAAK,IAAI,MAAM,OAAO,GAAG,EAAE,OAAO,CAAC,EAC9D,IACA,KAAA;CAEJ,MAAM,UAAU,MAAM,WACpB,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,QAAD;EAAM,eAAY;EAAQ,UAAA,gBAAgB,SAAS,aAAa;CAAmB,CAAA,GAClF,MAAM,IACP,EAAA,CAAA,IAEF,MAAM;CAGR,MAAM,mBAAmB;EACvB,eAAe,UAAU;GACvB,IAAI,gBAAgB,WAClB,OAAO,UAAU,cAAc,YAAY;GAE7C,OAAO,UAAU,aAAa,cAAc;EAC9C,CAAC;CACH;CAEA,MAAM,eAAe,UAAuC;EAC1D,IAAI,MAAM,kBAAkB;EAC5B,WAAW;CACb;CAEA,MAAM,iBAAiB,UAA0C;EAC/D,IAAI,MAAM,oBAAoB,CAAC,wBAAwB,MAAM,WAAW,GAAG;EAE3E,MAAM,eAAe;EACrB,IAAI,MAAM,QAAQ;EAClB,WAAW;CACb;CAEA,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,YAAY;EAClB,OAAO,CACL;GACE,UAAU,MAAM;GAChB,UAAU;GACV,GAAG;GACH,cAAc,cAAc,MAAM,eAAe,YAAY,mBAAmB;GAChF,GAAI,SAAS;IAAE,SAAS;IAAa,WAAW;GAAc,IAAI,KAAA;EACpE,GACA,YACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/context.d.ts b/dist/dev/ui/tooltip/context.d.ts new file mode 100644 index 00000000..3ca3f9f9 --- /dev/null +++ b/dist/dev/ui/tooltip/context.d.ts @@ -0,0 +1,26 @@ +import { MediaContainer, PositioningBoundary, TooltipApi } from "@videojs/core/dom"; +import { StateAttrMap as StateAttrMap$1, TooltipCore } from "@videojs/core"; +//#region src/ui/tooltip/context.d.ts +interface TooltipContent { + label?: string | undefined; + shortcut?: string | undefined; +} +interface TooltipContextValue { + core: TooltipCore; + tooltip: TooltipApi; + state: TooltipCore.State; + preferredSide: TooltipCore.State['side']; + setPositionedSide: (side: TooltipCore.State['side']) => void; + stateAttrMap: StateAttrMap$1; + anchorName: string; + popupId: string; + content: TooltipContent | undefined; + setContent: (content: TooltipContent | undefined) => void; + boundary: PositioningBoundary; + container: MediaContainer | null; +} +declare function useTooltipContext(): TooltipContextValue; +declare function useOptionalTooltipContext(): TooltipContextValue | null; +//#endregion +export { TooltipContent, TooltipContextValue, useOptionalTooltipContext, useTooltipContext }; +//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/context.d.ts.map b/dist/dev/ui/tooltip/context.d.ts.map new file mode 100644 index 00000000..87cf6015 --- /dev/null +++ b/dist/dev/ui/tooltip/context.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"mappings":";;;UAMiB;EACf;EACA;;UAGe;EACf,MAAM;EACN,SAAS;EACT,OAAO,YAAY;EACnB,eAAe,YAAY;EAC3B,oBAAoB,MAAM,YAAY;EACtC,cAAc,eAAa,YAAY;EACvC;EACA;EACA,SAAS;EACT,aAAa,SAAS;EACtB,UAAU;EACV,WAAW;;iBAOG,qBAAqB;iBAMrB,6BAA6B"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/context.js b/dist/dev/ui/tooltip/context.js new file mode 100644 index 00000000..e640eee5 --- /dev/null +++ b/dist/dev/ui/tooltip/context.js @@ -0,0 +1,17 @@ +"use client"; +import { createContext, useContext } from "react"; +//#region src/ui/tooltip/context.tsx +const TooltipContext = createContext(null); +const TooltipContextProvider = TooltipContext.Provider; +function useTooltipContext() { + const ctx = useContext(TooltipContext); + if (!ctx) throw new Error("Tooltip compound components must be used within a Tooltip.Root"); + return ctx; +} +function useOptionalTooltipContext() { + return useContext(TooltipContext); +} +//#endregion +export { TooltipContextProvider, useOptionalTooltipContext, useTooltipContext }; + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/context.js.map b/dist/dev/ui/tooltip/context.js.map new file mode 100644 index 00000000..c8095eb6 --- /dev/null +++ b/dist/dev/ui/tooltip/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap, TooltipCore } from '@videojs/core';\nimport type { MediaContainer, PositioningBoundary, TooltipApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface TooltipContent {\n label?: string | undefined;\n shortcut?: string | undefined;\n}\n\nexport interface TooltipContextValue {\n core: TooltipCore;\n tooltip: TooltipApi;\n state: TooltipCore.State;\n preferredSide: TooltipCore.State['side'];\n setPositionedSide: (side: TooltipCore.State['side']) => void;\n stateAttrMap: StateAttrMap;\n anchorName: string;\n popupId: string;\n content: TooltipContent | undefined;\n setContent: (content: TooltipContent | undefined) => void;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst TooltipContext = createContext(null);\n\nexport const TooltipContextProvider = TooltipContext.Provider;\n\nexport function useTooltipContext(): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) throw new Error('Tooltip compound components must be used within a Tooltip.Root');\n return ctx;\n}\n\nexport function useOptionalTooltipContext(): TooltipContextValue | null {\n return useContext(TooltipContext);\n}\n"],"mappings":";;;AA0BA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,cAAc;CACrC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,gEAAgE;CAC1F,OAAO;AACT;AAEA,SAAgB,4BAAwD;CACtE,OAAO,WAAW,cAAc;AAClC"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/group-context.js b/dist/dev/ui/tooltip/group-context.js new file mode 100644 index 00000000..779ac60b --- /dev/null +++ b/dist/dev/ui/tooltip/group-context.js @@ -0,0 +1,13 @@ +"use client"; +import { createContext, useContext } from "react"; +//#region src/ui/tooltip/group-context.tsx +const TooltipGroupContext = createContext(null); +const TooltipGroupContextProvider = TooltipGroupContext.Provider; +/** Returns the nearest `TooltipGroupCore`, or `undefined` when used outside a `Tooltip.Provider`. */ +function useTooltipGroup() { + return useContext(TooltipGroupContext)?.group; +} +//#endregion +export { TooltipGroupContextProvider, useTooltipGroup }; + +//# sourceMappingURL=group-context.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/group-context.js.map b/dist/dev/ui/tooltip/group-context.js.map new file mode 100644 index 00000000..d2e87313 --- /dev/null +++ b/dist/dev/ui/tooltip/group-context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"group-context.js","names":[],"sources":["../../../../src/ui/tooltip/group-context.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipGroupCore } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\ninterface TooltipGroupContextValue {\n group: TooltipGroupCore;\n}\n\nconst TooltipGroupContext = createContext(null);\n\nexport const TooltipGroupContextProvider = TooltipGroupContext.Provider;\n\n/** Returns the nearest `TooltipGroupCore`, or `undefined` when used outside a `Tooltip.Provider`. */\nexport function useTooltipGroup(): TooltipGroupCore | undefined {\n return useContext(TooltipGroupContext)?.group;\n}\n"],"mappings":";;;AASA,MAAM,sBAAsB,cAA+C,IAAI;AAE/E,MAAa,8BAA8B,oBAAoB;;AAG/D,SAAgB,kBAAgD;CAC9D,OAAO,WAAW,mBAAmB,CAAC,EAAE;AAC1C"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/index.d.ts b/dist/dev/ui/tooltip/index.d.ts new file mode 100644 index 00000000..0da9037e --- /dev/null +++ b/dist/dev/ui/tooltip/index.d.ts @@ -0,0 +1,3 @@ +import { TooltipContent, TooltipContextValue, useOptionalTooltipContext, useTooltipContext } from "./context.js"; +import { index_parts_d_exports } from "./index.parts.js"; +export { index_parts_d_exports as Tooltip, type TooltipContent, type TooltipContextValue, useOptionalTooltipContext, useTooltipContext }; \ No newline at end of file diff --git a/dist/dev/ui/tooltip/index.js b/dist/dev/ui/tooltip/index.js new file mode 100644 index 00000000..a5ad7b49 --- /dev/null +++ b/dist/dev/ui/tooltip/index.js @@ -0,0 +1,3 @@ +import { useOptionalTooltipContext, useTooltipContext } from "./context.js"; +import { index_parts_exports } from "./index.parts.js"; +export { index_parts_exports as Tooltip, useOptionalTooltipContext, useTooltipContext }; diff --git a/dist/dev/ui/tooltip/index.parts.d.ts b/dist/dev/ui/tooltip/index.parts.d.ts new file mode 100644 index 00000000..9eaf8161 --- /dev/null +++ b/dist/dev/ui/tooltip/index.parts.d.ts @@ -0,0 +1,13 @@ +import { TooltipArrow, TooltipArrowProps } from "./tooltip-arrow.js"; +import { TooltipLabel, TooltipLabelProps } from "./tooltip-label.js"; +import { TooltipPopup, TooltipPopupProps } from "./tooltip-popup.js"; +import { TooltipProvider, TooltipProviderProps } from "./tooltip-provider.js"; +import { TooltipRoot, TooltipRootProps } from "./tooltip-root.js"; +import { TooltipShortcut, TooltipShortcutProps } from "./tooltip-shortcut.js"; +import { TooltipTrigger, TooltipTriggerProps } from "./tooltip-trigger.js"; +declare namespace index_parts_d_exports { + export { TooltipArrow as Arrow, TooltipArrowProps as ArrowProps, TooltipLabel as Label, TooltipLabelProps as LabelProps, TooltipPopup as Popup, TooltipPopupProps as PopupProps, TooltipProvider as Provider, TooltipProviderProps as ProviderProps, TooltipRoot as Root, TooltipRootProps as RootProps, TooltipShortcut as Shortcut, TooltipShortcutProps as ShortcutProps, TooltipTrigger as Trigger, TooltipTriggerProps as TriggerProps }; +} +//#endregion +export { TooltipArrow as Arrow, type TooltipArrowProps as ArrowProps, TooltipLabel as Label, type TooltipLabelProps as LabelProps, TooltipPopup as Popup, type TooltipPopupProps as PopupProps, TooltipProvider as Provider, type TooltipProviderProps as ProviderProps, TooltipRoot as Root, type TooltipRootProps as RootProps, TooltipShortcut as Shortcut, type TooltipShortcutProps as ShortcutProps, TooltipTrigger as Trigger, type TooltipTriggerProps as TriggerProps, index_parts_d_exports }; +//# sourceMappingURL=index.parts.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/index.parts.d.ts.map b/dist/dev/ui/tooltip/index.parts.d.ts.map new file mode 100644 index 00000000..228f3fd0 --- /dev/null +++ b/dist/dev/ui/tooltip/index.parts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../../src/ui/tooltip/index.parts.ts"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/index.parts.js b/dist/dev/ui/tooltip/index.parts.js new file mode 100644 index 00000000..c2e53a93 --- /dev/null +++ b/dist/dev/ui/tooltip/index.parts.js @@ -0,0 +1,22 @@ +import { __exportAll } from "../../_virtual/_rolldown/runtime.js"; +import { TooltipArrow } from "./tooltip-arrow.js"; +import { TooltipLabel } from "./tooltip-label.js"; +import { TooltipShortcut } from "./tooltip-shortcut.js"; +import { TooltipPopup } from "./tooltip-popup.js"; +import { TooltipProvider } from "./tooltip-provider.js"; +import { TooltipRoot } from "./tooltip-root.js"; +import { TooltipTrigger } from "./tooltip-trigger.js"; +//#region src/ui/tooltip/index.parts.ts +var index_parts_exports = /* @__PURE__ */ __exportAll({ + Arrow: () => TooltipArrow, + Label: () => TooltipLabel, + Popup: () => TooltipPopup, + Provider: () => TooltipProvider, + Root: () => TooltipRoot, + Shortcut: () => TooltipShortcut, + Trigger: () => TooltipTrigger +}); +//#endregion +export { TooltipArrow as Arrow, TooltipLabel as Label, TooltipPopup as Popup, TooltipProvider as Provider, TooltipRoot as Root, TooltipShortcut as Shortcut, TooltipTrigger as Trigger, index_parts_exports }; + +//# sourceMappingURL=index.parts.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/index.parts.js.map b/dist/dev/ui/tooltip/index.parts.js.map new file mode 100644 index 00000000..20c3b930 --- /dev/null +++ b/dist/dev/ui/tooltip/index.parts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/tooltip/index.parts.ts"],"sourcesContent":["export { TooltipArrow as Arrow, type TooltipArrowProps as ArrowProps } from './tooltip-arrow';\nexport { TooltipLabel as Label, type TooltipLabelProps as LabelProps } from './tooltip-label';\nexport { TooltipPopup as Popup, type TooltipPopupProps as PopupProps } from './tooltip-popup';\nexport { TooltipProvider as Provider, type TooltipProviderProps as ProviderProps } from './tooltip-provider';\nexport { TooltipRoot as Root, type TooltipRootProps as RootProps } from './tooltip-root';\nexport { TooltipShortcut as Shortcut, type TooltipShortcutProps as ShortcutProps } from './tooltip-shortcut';\nexport { TooltipTrigger as Trigger, type TooltipTriggerProps as TriggerProps } from './tooltip-trigger';\n"],"mappings":""} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-arrow.d.ts b/dist/dev/ui/tooltip/tooltip-arrow.d.ts new file mode 100644 index 00000000..07c81abd --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-arrow.d.ts @@ -0,0 +1,13 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { TooltipState } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-arrow.d.ts +interface TooltipArrowProps extends UIComponentProps<'div', TooltipState> {} +/** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */ +declare const TooltipArrow: import("react").ForwardRefExoticComponent; +declare namespace TooltipArrow { + type Props = TooltipArrowProps; + type State = TooltipState; +} +//#endregion +export { TooltipArrow, TooltipArrowProps }; +//# sourceMappingURL=tooltip-arrow.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map b/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map new file mode 100644 index 00000000..ad7b4fc3 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-arrow.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-arrow.tsx"],"mappings":";;;UAQiB,0BAA0B,wBAAwB;;cAGtD,8BAAY,0BAAA;kBAOR;OACH,QAAQ;OACR,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-arrow.js b/dist/dev/ui/tooltip/tooltip-arrow.js new file mode 100644 index 00000000..947723ef --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-arrow.js @@ -0,0 +1,15 @@ +"use client"; +import { useTooltipContext } from "./context.js"; +import { createContextPart } from "../create-context-part.js"; +//#region src/ui/tooltip/tooltip-arrow.tsx +/** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */ +const TooltipArrow = createContextPart({ + displayName: "TooltipArrow", + tag: "div", + useContext: useTooltipContext, + staticProps: { "aria-hidden": "true" } +}); +//#endregion +export { TooltipArrow }; + +//# sourceMappingURL=tooltip-arrow.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-arrow.js.map b/dist/dev/ui/tooltip/tooltip-arrow.js.map new file mode 100644 index 00000000..39f4190d --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-arrow.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-arrow.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-arrow.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipArrowProps extends UIComponentProps<'div', TooltipState> {}\n\n/** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */\nexport const TooltipArrow = createContextPart({\n displayName: 'TooltipArrow',\n tag: 'div',\n useContext: useTooltipContext,\n staticProps: { 'aria-hidden': 'true' as const },\n});\n\nexport namespace TooltipArrow {\n export type Props = TooltipArrowProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;AAWA,MAAa,eAAe,kBAAmD;CAC7E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,aAAa,EAAE,eAAe,OAAgB;AAChD,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-label.d.ts b/dist/dev/ui/tooltip/tooltip-label.d.ts new file mode 100644 index 00000000..9578fd95 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-label.d.ts @@ -0,0 +1,13 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { TooltipState } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-label.d.ts +interface TooltipLabelProps extends UIComponentProps<'span', TooltipState> {} +/** Tooltip body label; defaults to context `content.label` from the linked trigger. */ +declare const TooltipLabel: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace TooltipLabel { + type Props = TooltipLabelProps; + type State = TooltipState; +} +//#endregion +export { TooltipLabel, TooltipLabelProps }; +//# sourceMappingURL=tooltip-label.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-label.d.ts.map b/dist/dev/ui/tooltip/tooltip-label.d.ts.map new file mode 100644 index 00000000..e0abb660 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-label.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-label.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"mappings":";;;UASiB,0BAA0B,yBAAyB;;cAGvD,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAmBR;OACH,QAAQ;OACR,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-label.js b/dist/dev/ui/tooltip/tooltip-label.js new file mode 100644 index 00000000..ec236443 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-label.js @@ -0,0 +1,24 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useTooltipContext } from "./context.js"; +import { forwardRef } from "react"; +//#region src/ui/tooltip/tooltip-label.tsx +/** Tooltip body label; defaults to context `content.label` from the linked trigger. */ +const TooltipLabel = forwardRef(function TooltipLabel({ render, className, style, children, ...elementProps }, forwardedRef) { + const { state, stateAttrMap, content } = useTooltipContext(); + const body = children !== void 0 ? children : content?.label ?? ""; + return renderElement("span", { + render, + className, + style + }, { + state, + stateAttrMap, + ref: forwardedRef, + props: [elementProps, { children: body }] + }); +}); +//#endregion +export { TooltipLabel }; + +//# sourceMappingURL=tooltip-label.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-label.js.map b/dist/dev/ui/tooltip/tooltip-label.js.map new file mode 100644 index 00000000..4d779127 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-label.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-label.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipLabelProps extends UIComponentProps<'span', TooltipState> {}\n\n/** Tooltip body label; defaults to context `content.label` from the linked trigger. */\nexport const TooltipLabel = forwardRef(function TooltipLabel(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap, content } = useTooltipContext();\n const body = children !== undefined ? children : (content?.label ?? '');\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [elementProps, { children: body }],\n }\n );\n});\n\nexport namespace TooltipLabel {\n export type Props = TooltipLabelProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;AAYA,MAAa,eAAe,WAA+C,SAAS,aAClF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,OAAO,cAAc,YAAY,kBAAkB;CAC3D,MAAM,OAAO,aAAa,KAAA,IAAY,WAAY,SAAS,SAAS;CAEpE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC,cAAc,EAAE,UAAU,KAAK,CAAC;CAC1C,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-popup.d.ts b/dist/dev/ui/tooltip/tooltip-popup.d.ts new file mode 100644 index 00000000..243858da --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-popup.d.ts @@ -0,0 +1,13 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { TooltipState } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-popup.d.ts +interface TooltipPopupProps extends UIComponentProps<'div', TooltipState> {} +/** Container for the tooltip content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */ +declare const TooltipPopup: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace TooltipPopup { + type Props = TooltipPopupProps; + type State = TooltipState; +} +//#endregion +export { TooltipPopup, TooltipPopupProps }; +//# sourceMappingURL=tooltip-popup.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-popup.d.ts.map b/dist/dev/ui/tooltip/tooltip-popup.d.ts.map new file mode 100644 index 00000000..29ec645f --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-popup.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-popup.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"mappings":";;;UAuBiB,0BAA0B,wBAAwB;;cAKtD,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAqLR;OACH,QAAQ;OACR,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-popup.js b/dist/dev/ui/tooltip/tooltip-popup.js new file mode 100644 index 00000000..1c9d8960 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-popup.js @@ -0,0 +1,132 @@ +"use client"; +import { useComposedRefs } from "../../utils/use-composed-refs.js"; +import { renderElement } from "../../utils/use-render.js"; +import { useTooltipContext } from "./context.js"; +import { TooltipLabel } from "./tooltip-label.js"; +import { TooltipShortcut } from "./tooltip-shortcut.js"; +import { getAnchorPositionStyle, getPopupPositionRect, getPositionedSide, getPositioningBoundaryRect, isEventWithinElement, resolveOffsets, resolvePositioningBoundary } from "@videojs/core/dom"; +import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from "react"; +import { supportsAnchorPositioning } from "@videojs/utils/dom"; +import { Fragment, jsx, jsxs } from "react/jsx-runtime"; +import { TooltipCSSVars } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-popup.tsx +const POPUP_RESET = { + position: "fixed", + inset: "auto", + margin: 0 +}; +/** Container for the tooltip content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */ +const TooltipPopup = forwardRef(function TooltipPopup({ render, className, style, children, ...elementProps }, forwardedRef) { + const { core, tooltip, state, preferredSide, setPositionedSide, stateAttrMap, anchorName, popupId, boundary, container } = useTooltipContext(); + const internalRef = useRef(null); + const composedRef = useComposedRefs(forwardedRef, useCallback((el) => { + tooltip.setPopupElement(el); + if (el && supportsAnchorPositioning()) el.style.setProperty("position-anchor", `--${anchorName}`); + }, [tooltip, anchorName]), internalRef); + const posOpts = useMemo(() => ({ + side: preferredSide, + align: state.align + }), [preferredSide, state.align]); + const anchorStyle = useMemo(() => { + if (!supportsAnchorPositioning()) return null; + const { positionAnchor: _, ...rest } = getAnchorPositionStyle(anchorName, posOpts, void 0, void 0, void 0, void 0, TooltipCSSVars); + return rest; + }, [anchorName, posOpts]); + const [position, setPosition] = useState(null); + useLayoutEffect(() => { + if (!state.open) { + setPosition(null); + return; + } + function measure() { + const triggerEl = tooltip.triggerElement; + const popupEl = internalRef.current; + if (!triggerEl || !popupEl) return; + const triggerRect = triggerEl.getBoundingClientRect(); + const root = popupEl.getRootNode(); + const boundaryElement = resolvePositioningBoundary(boundary, { + container, + root + }); + const popupRect = getPopupPositionRect(popupEl, posOpts.side); + const boundaryRect = getPositioningBoundaryRect(boundaryElement); + const offsets = resolveOffsets(popupEl, TooltipCSSVars); + const side = getPositionedSide(triggerRect, popupRect, boundaryRect, posOpts, offsets); + const { positionAnchor: _, ...nextStyle } = getAnchorPositionStyle(anchorName, { + ...posOpts, + side + }, triggerRect, supportsAnchorPositioning() ? void 0 : popupRect, boundaryRect, offsets, TooltipCSSVars); + setPosition(nextStyle); + setPositionedSide(side); + } + measure(); + const triggerEl = tooltip.triggerElement; + const popupEl = internalRef.current; + const boundaryElement = popupEl ? resolvePositioningBoundary(boundary, { + container, + root: popupEl.getRootNode() + }) : null; + let rafId = 0; + function reposition(event) { + if (event && isEventWithinElement(event, internalRef.current)) return; + cancelAnimationFrame(rafId); + rafId = requestAnimationFrame(measure); + } + reposition(); + const resizeObserver = typeof ResizeObserver === "function" ? new ResizeObserver(() => { + reposition(); + }) : null; + if (triggerEl && resizeObserver) resizeObserver.observe(triggerEl); + if (popupEl && resizeObserver) resizeObserver.observe(popupEl); + if (boundaryElement && resizeObserver) resizeObserver.observe(boundaryElement); + window.addEventListener("scroll", reposition, { + capture: true, + passive: true + }); + window.addEventListener("resize", reposition); + return () => { + cancelAnimationFrame(rafId); + resizeObserver?.disconnect(); + window.removeEventListener("scroll", reposition, true); + window.removeEventListener("resize", reposition); + }; + }, [ + state.open, + anchorName, + posOpts, + tooltip, + boundary, + container, + setPositionedSide + ]); + const positioningStyle = position ?? anchorStyle ?? POPUP_RESET; + if (!state.open) return null; + const body = children !== void 0 ? children : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(TooltipLabel, {}), /* @__PURE__ */ jsx(TooltipShortcut, {})] }); + const { onFocusOut, ...restPopupProps } = tooltip.popupProps; + return renderElement("div", { + render, + className, + style + }, { + state, + stateAttrMap, + ref: composedRef, + props: [ + { + id: popupId, + style: positioningStyle, + ...core.getPopupAttrs(state) + }, + { children: body }, + { + ...restPopupProps, + onBlur: onFocusOut + }, + elementProps + ] + }); +}); +//#endregion +export { TooltipPopup }; + +//# sourceMappingURL=tooltip-popup.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-popup.js.map b/dist/dev/ui/tooltip/tooltip-popup.js.map new file mode 100644 index 00000000..a358a7b2 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-popup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-popup.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"sourcesContent":["'use client';\n\nimport { TooltipCSSVars, type TooltipState } from '@videojs/core';\nimport {\n getAnchorPositionStyle,\n getPopupPositionRect,\n getPositionedSide,\n getPositioningBoundaryRect,\n isEventWithinElement,\n resolveOffsets,\n resolvePositioningBoundary,\n} from '@videojs/core/dom';\nimport { supportsAnchorPositioning } from '@videojs/utils/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\nimport { TooltipLabel } from './tooltip-label';\nimport { TooltipShortcut } from './tooltip-shortcut';\n\nexport interface TooltipPopupProps extends UIComponentProps<'div', TooltipState> {}\n\nconst POPUP_RESET: CSSProperties = { position: 'fixed', inset: 'auto', margin: 0 };\n\n/** Container for the tooltip content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */\nexport const TooltipPopup = forwardRef(function TooltipPopup(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const {\n core,\n tooltip,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap,\n anchorName,\n popupId,\n boundary,\n container,\n } = useTooltipContext();\n const internalRef = useRef(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n tooltip.setPopupElement(el);\n if (el && supportsAnchorPositioning()) {\n el.style.setProperty('position-anchor', `--${anchorName}`);\n }\n },\n [tooltip, anchorName]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: preferredSide, align: state.align }), [preferredSide, state.align]);\n\n // CSS Anchor Positioning — computed from state, no measurement needed.\n // `position-anchor` is set imperatively in the ref callback above\n // because React's style prop silently drops unrecognized CSS properties.\n const anchorStyle = useMemo(() => {\n if (!supportsAnchorPositioning()) return null;\n const { positionAnchor: _, ...rest } = getAnchorPositionStyle(\n anchorName,\n posOpts,\n undefined,\n undefined,\n undefined,\n undefined,\n TooltipCSSVars\n );\n return rest as CSSProperties;\n }, [anchorName, posOpts]);\n\n // Measure rects after layout, before paint.\n const [position, setPosition] = useState(null);\n\n useLayoutEffect(() => {\n if (!state.open) {\n setPosition(null);\n return;\n }\n\n function measure(): void {\n const triggerEl = tooltip.triggerElement;\n const popupEl = internalRef.current;\n if (!triggerEl || !popupEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const root = popupEl.getRootNode() as Document | ShadowRoot;\n const boundaryElement = resolvePositioningBoundary(boundary, { container, root });\n const popupRect = getPopupPositionRect(popupEl, posOpts.side);\n const boundaryRect = getPositioningBoundaryRect(boundaryElement);\n const offsets = resolveOffsets(popupEl, TooltipCSSVars);\n const side = getPositionedSide(triggerRect, popupRect, boundaryRect, posOpts, offsets);\n\n const { positionAnchor: _, ...nextStyle } = getAnchorPositionStyle(\n anchorName,\n { ...posOpts, side },\n triggerRect,\n supportsAnchorPositioning() ? undefined : popupRect,\n boundaryRect,\n offsets,\n TooltipCSSVars\n );\n\n setPosition(nextStyle as CSSProperties);\n setPositionedSide(side);\n }\n\n measure();\n const triggerEl = tooltip.triggerElement;\n const popupEl = internalRef.current;\n const boundaryElement = popupEl\n ? resolvePositioningBoundary(boundary, {\n container,\n root: popupEl.getRootNode() as Document | ShadowRoot,\n })\n : null;\n\n let rafId = 0;\n function reposition(event?: Event): void {\n if (event && isEventWithinElement(event, internalRef.current)) return;\n\n cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(measure);\n }\n\n // Re-measure after the tooltip has entered the top layer and whenever\n // its own size or the trigger size changes.\n reposition();\n\n const resizeObserver =\n typeof ResizeObserver === 'function'\n ? new ResizeObserver(() => {\n reposition();\n })\n : null;\n\n if (triggerEl && resizeObserver) {\n resizeObserver.observe(triggerEl);\n }\n\n if (popupEl && resizeObserver) {\n resizeObserver.observe(popupEl);\n }\n if (boundaryElement && resizeObserver) {\n resizeObserver.observe(boundaryElement);\n }\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true });\n window.addEventListener('resize', reposition);\n\n return () => {\n cancelAnimationFrame(rafId);\n resizeObserver?.disconnect();\n window.removeEventListener('scroll', reposition, true);\n window.removeEventListener('resize', reposition);\n };\n }, [state.open, anchorName, posOpts, tooltip, boundary, container, setPositionedSide]);\n\n // Use measured styles once available; reset UA [popover] defaults until then.\n const positioningStyle = position ?? anchorStyle ?? POPUP_RESET;\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n const body =\n children !== undefined ? (\n children\n ) : (\n <>\n \n \n \n );\n\n // Remap DOM focus events to React synthetic event names.\n const { onFocusOut, ...restPopupProps } = tooltip.popupProps;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [\n {\n id: popupId,\n style: positioningStyle,\n ...core.getPopupAttrs(state),\n },\n { children: body },\n { ...restPopupProps, onBlur: onFocusOut },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace TooltipPopup {\n export type Props = TooltipPopupProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;;;;;;;AAyBA,MAAM,cAA6B;CAAE,UAAU;CAAS,OAAO;CAAQ,QAAQ;AAAE;;AAGjF,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EACJ,MACA,SACA,OACA,eACA,mBACA,cACA,YACA,SACA,UACA,cACE,kBAAkB;CACtB,MAAM,cAAc,OAAuB,IAAI;CAY/C,MAAM,cAAc,gBAAgB,cAVnB,aACd,OAA8B;EAC7B,QAAQ,gBAAgB,EAAE;EAC1B,IAAI,MAAM,0BAA0B,GAClC,GAAG,MAAM,YAAY,mBAAmB,KAAK,YAAY;CAE7D,GACA,CAAC,SAAS,UAAU,CAGmC,GAAG,WAAW;CAIvE,MAAM,UAAU,eAAe;EAAE,MAAM;EAAe,OAAO,MAAM;CAAM,IAAI,CAAC,eAAe,MAAM,KAAK,CAAC;CAKzG,MAAM,cAAc,cAAc;EAChC,IAAI,CAAC,0BAA0B,GAAG,OAAO;EACzC,MAAM,EAAE,gBAAgB,GAAG,GAAG,SAAS,uBACrC,YACA,SACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,cACF;EACA,OAAO;CACT,GAAG,CAAC,YAAY,OAAO,CAAC;CAGxB,MAAM,CAAC,UAAU,eAAe,SAA+B,IAAI;CAEnE,sBAAsB;EACpB,IAAI,CAAC,MAAM,MAAM;GACf,YAAY,IAAI;GAChB;EACF;EAEA,SAAS,UAAgB;GACvB,MAAM,YAAY,QAAQ;GAC1B,MAAM,UAAU,YAAY;GAC5B,IAAI,CAAC,aAAa,CAAC,SAAS;GAE5B,MAAM,cAAc,UAAU,sBAAsB;GACpD,MAAM,OAAO,QAAQ,YAAY;GACjC,MAAM,kBAAkB,2BAA2B,UAAU;IAAE;IAAW;GAAK,CAAC;GAChF,MAAM,YAAY,qBAAqB,SAAS,QAAQ,IAAI;GAC5D,MAAM,eAAe,2BAA2B,eAAe;GAC/D,MAAM,UAAU,eAAe,SAAS,cAAc;GACtD,MAAM,OAAO,kBAAkB,aAAa,WAAW,cAAc,SAAS,OAAO;GAErF,MAAM,EAAE,gBAAgB,GAAG,GAAG,cAAc,uBAC1C,YACA;IAAE,GAAG;IAAS;GAAK,GACnB,aACA,0BAA0B,IAAI,KAAA,IAAY,WAC1C,cACA,SACA,cACF;GAEA,YAAY,SAA0B;GACtC,kBAAkB,IAAI;EACxB;EAEA,QAAQ;EACR,MAAM,YAAY,QAAQ;EAC1B,MAAM,UAAU,YAAY;EAC5B,MAAM,kBAAkB,UACpB,2BAA2B,UAAU;GACnC;GACA,MAAM,QAAQ,YAAY;EAC5B,CAAC,IACD;EAEJ,IAAI,QAAQ;EACZ,SAAS,WAAW,OAAqB;GACvC,IAAI,SAAS,qBAAqB,OAAO,YAAY,OAAO,GAAG;GAE/D,qBAAqB,KAAK;GAC1B,QAAQ,sBAAsB,OAAO;EACvC;EAIA,WAAW;EAEX,MAAM,iBACJ,OAAO,mBAAmB,aACtB,IAAI,qBAAqB;GACvB,WAAW;EACb,CAAC,IACD;EAEN,IAAI,aAAa,gBACf,eAAe,QAAQ,SAAS;EAGlC,IAAI,WAAW,gBACb,eAAe,QAAQ,OAAO;EAEhC,IAAI,mBAAmB,gBACrB,eAAe,QAAQ,eAAe;EAGxC,OAAO,iBAAiB,UAAU,YAAY;GAAE,SAAS;GAAM,SAAS;EAAK,CAAC;EAC9E,OAAO,iBAAiB,UAAU,UAAU;EAE5C,aAAa;GACX,qBAAqB,KAAK;GAC1B,gBAAgB,WAAW;GAC3B,OAAO,oBAAoB,UAAU,YAAY,IAAI;GACrD,OAAO,oBAAoB,UAAU,UAAU;EACjD;CACF,GAAG;EAAC,MAAM;EAAM;EAAY;EAAS;EAAS;EAAU;EAAW;CAAiB,CAAC;CAGrF,MAAM,mBAAmB,YAAY,eAAe;CAIpD,IAAI,CAAC,MAAM,MACT,OAAO;CAGT,MAAM,OACJ,aAAa,KAAA,IACX,WAEA,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,cAAD,CAAe,CAAA,GACf,oBAAC,iBAAD,CAAkB,CAAA,CAClB,EAAA,CAAA;CAIN,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;CAElD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,KAAK;GAC7B;GACA,EAAE,UAAU,KAAK;GACjB;IAAE,GAAG;IAAgB,QAAQ;GAAW;GACxC;EACF;CACF,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-provider.d.ts b/dist/dev/ui/tooltip/tooltip-provider.d.ts new file mode 100644 index 00000000..6d0affef --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-provider.d.ts @@ -0,0 +1,13 @@ +import { ReactNode } from "react"; +import { TooltipGroupProps } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-provider.d.ts +interface TooltipProviderProps extends TooltipGroupProps { + children?: ReactNode; +} +declare function TooltipProvider({ delay, closeDelay, timeout, children }: TooltipProviderProps): ReactNode; +declare namespace TooltipProvider { + type Props = TooltipProviderProps; +} +//#endregion +export { TooltipProvider, TooltipProviderProps }; +//# sourceMappingURL=tooltip-provider.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-provider.d.ts.map b/dist/dev/ui/tooltip/tooltip-provider.d.ts.map new file mode 100644 index 00000000..eb560b9e --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-provider.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-provider.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-provider.tsx"],"mappings":";;;UAQiB,6BAA6B;EAC5C,WAAW;;iBAGG,kBAAkB,OAAO,YAAY,SAAS,YAAY,uBAAuB;kBAOhF;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-provider.js b/dist/dev/ui/tooltip/tooltip-provider.js new file mode 100644 index 00000000..e304c870 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-provider.js @@ -0,0 +1,26 @@ +"use client"; +import { TooltipGroupContextProvider } from "./group-context.js"; +import { useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { TooltipGroupCore } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-provider.tsx +function TooltipProvider({ delay, closeDelay, timeout, children }) { + const [group] = useState(() => new TooltipGroupCore({ + delay, + closeDelay, + timeout + })); + group.setProps({ + delay, + closeDelay, + timeout + }); + return /* @__PURE__ */ jsx(TooltipGroupContextProvider, { + value: { group }, + children + }); +} +//#endregion +export { TooltipProvider }; + +//# sourceMappingURL=tooltip-provider.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-provider.js.map b/dist/dev/ui/tooltip/tooltip-provider.js.map new file mode 100644 index 00000000..d09fb345 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-provider.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-provider.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-provider.tsx"],"sourcesContent":["'use client';\n\nimport { TooltipGroupCore, type TooltipGroupProps } from '@videojs/core';\nimport type { ReactNode } from 'react';\nimport { useState } from 'react';\n\nimport { TooltipGroupContextProvider } from './group-context';\n\nexport interface TooltipProviderProps extends TooltipGroupProps {\n children?: ReactNode;\n}\n\nexport function TooltipProvider({ delay, closeDelay, timeout, children }: TooltipProviderProps): ReactNode {\n const [group] = useState(() => new TooltipGroupCore({ delay, closeDelay, timeout }));\n group.setProps({ delay, closeDelay, timeout });\n\n return {children};\n}\n\nexport namespace TooltipProvider {\n export type Props = TooltipProviderProps;\n}\n"],"mappings":";;;;;;AAYA,SAAgB,gBAAgB,EAAE,OAAO,YAAY,SAAS,YAA6C;CACzG,MAAM,CAAC,SAAS,eAAe,IAAI,iBAAiB;EAAE;EAAO;EAAY;CAAQ,CAAC,CAAC;CACnF,MAAM,SAAS;EAAE;EAAO;EAAY;CAAQ,CAAC;CAE7C,OAAO,oBAAC,6BAAD;EAA6B,OAAO,EAAE,MAAM;EAAI;CAAsC,CAAA;AAC/F"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-root.d.ts b/dist/dev/ui/tooltip/tooltip-root.d.ts new file mode 100644 index 00000000..fd86bd36 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-root.d.ts @@ -0,0 +1,20 @@ +import { PositioningBoundary, TooltipChangeDetails } from "@videojs/core/dom"; +import { ReactNode } from "react"; +import { TooltipProps } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-root.d.ts +interface TooltipRootProps extends TooltipProps { + /** Boundary used to constrain the popup size. */ + boundary?: PositioningBoundary; + /** Called when the tooltip open state changes (fires immediately, before animations). */ + onOpenChange?: (open: boolean, details: TooltipChangeDetails) => void; + /** Called after open/close animations complete. */ + onOpenChangeComplete?: (open: boolean) => void; + children?: ReactNode; +} +declare function TooltipRoot({ open: controlledOpen, defaultOpen, onOpenChange: onOpenChangeProp, onOpenChangeComplete: onOpenChangeCompleteProp, delay, closeDelay, disableHoverablePopup, disabled, boundary, children, ...coreProps }: TooltipRootProps): ReactNode; +declare namespace TooltipRoot { + type Props = TooltipRootProps; +} +//#endregion +export { TooltipRoot, TooltipRootProps }; +//# sourceMappingURL=tooltip-root.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-root.d.ts.map b/dist/dev/ui/tooltip/tooltip-root.d.ts.map new file mode 100644 index 00000000..18c2fffe --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-root.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-root.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-root.tsx"],"mappings":";;;;UAsBiB,yBAAyB;;EAExC,WAAW;;EAEX,gBAAgB,eAAe,SAAS;;EAExC,wBAAwB;EACxB,WAAW;;iBAGG,cACd,MAAM,gBACN,aACA,cAAc,kBACd,sBAAsB,0BACtB,OACA,YACA,uBACA,UACA,UACA,aACG,aACF,mBAAmB;kBAkGL;OACH,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-root.js b/dist/dev/ui/tooltip/tooltip-root.js new file mode 100644 index 00000000..d8a288cb --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-root.js @@ -0,0 +1,89 @@ +"use client"; +import { useOptionalContainer } from "../../player/context.js"; +import { useLatestRef } from "../../utils/use-latest-ref.js"; +import { useDestroy } from "../../utils/use-destroy.js"; +import { TooltipContextProvider } from "./context.js"; +import { useSafeId } from "../../utils/use-safe-id.js"; +import { useOptionalControlsContext } from "../controls/context.js"; +import { usePositionedState } from "../hooks/use-positioned-state.js"; +import { useTooltipGroup } from "./group-context.js"; +import { createTooltip, createTransition } from "@videojs/core/dom"; +import { useSnapshot } from "@videojs/store/react"; +import { useEffect, useState } from "react"; +import { jsx } from "react/jsx-runtime"; +import { isUndefined } from "@videojs/utils/predicate"; +import { TooltipCore, TooltipDataAttrs } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-root.tsx +function TooltipRoot({ open: controlledOpen, defaultOpen = TooltipCore.defaultProps.defaultOpen, onOpenChange: onOpenChangeProp, onOpenChangeComplete: onOpenChangeCompleteProp, delay = TooltipCore.defaultProps.delay, closeDelay = TooltipCore.defaultProps.closeDelay, disableHoverablePopup = TooltipCore.defaultProps.disableHoverablePopup, disabled = TooltipCore.defaultProps.disabled, boundary = "container", children, ...coreProps }) { + const container = useOptionalContainer(); + const controls = useOptionalControlsContext(); + const [core] = useState(() => new TooltipCore(coreProps)); + core.setProps(coreProps); + const isControlled = !isUndefined(controlledOpen); + const groupFromContext = useTooltipGroup(); + const onOpenChangeRef = useLatestRef(onOpenChangeProp); + const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp); + const delayRef = useLatestRef(delay); + const closeDelayRef = useLatestRef(closeDelay); + const disableHoverablePopupRef = useLatestRef(disableHoverablePopup); + const disabledRef = useLatestRef(disabled); + const groupRef = useLatestRef(groupFromContext); + const [tooltip] = useState(() => { + const instance = createTooltip({ + transition: createTransition(), + onOpenChange: (nextOpen, details) => { + onOpenChangeRef.current?.(nextOpen, details); + }, + onOpenChangeComplete: (nextOpen) => { + onOpenChangeCompleteRef.current?.(nextOpen); + }, + delay: () => delayRef.current, + closeDelay: () => closeDelayRef.current, + disableHoverablePopup: () => disableHoverablePopupRef.current, + disabled: () => disabledRef.current, + group: () => groupRef.current + }); + if (!isControlled && defaultOpen) instance.open(); + return instance; + }); + const [content, setContent] = useState(); + const anchorName = useSafeId(); + const popupId = useSafeId("tooltip"); + useEffect(() => { + if (isUndefined(controlledOpen)) return; + const { active: inputOpen } = tooltip.input.current; + if (controlledOpen === inputOpen) return; + if (controlledOpen) tooltip.open(); + else tooltip.close(); + }, [controlledOpen, tooltip]); + useEffect(() => { + if (isUndefined(controls?.state.visible)) return; + if (controls.state.visible) return; + tooltip.close("imperative-action"); + }, [controls?.state.visible, tooltip]); + useDestroy(tooltip); + const input = useSnapshot(tooltip.input); + core.setInput(input); + const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState()); + return /* @__PURE__ */ jsx(TooltipContextProvider, { + value: { + core, + tooltip, + state, + preferredSide, + setPositionedSide, + stateAttrMap: TooltipDataAttrs, + anchorName, + popupId, + content, + setContent, + boundary, + container + }, + children + }); +} +//#endregion +export { TooltipRoot }; + +//# sourceMappingURL=tooltip-root.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-root.js.map b/dist/dev/ui/tooltip/tooltip-root.js.map new file mode 100644 index 00000000..20c7f7fb --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-root.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-root.tsx"],"sourcesContent":["'use client';\n\nimport { type TooltipProps as CoreTooltipProps, TooltipCore, TooltipDataAttrs } from '@videojs/core';\nimport {\n createTooltip,\n createTransition,\n type PositioningBoundary,\n type TooltipChangeDetails,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\nimport { useOptionalContainer } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { useOptionalControlsContext } from '../controls/context';\nimport { usePositionedState } from '../hooks/use-positioned-state';\nimport { type TooltipContent, TooltipContextProvider } from './context';\nimport { useTooltipGroup } from './group-context';\n\nexport interface TooltipRootProps extends CoreTooltipProps {\n /** Boundary used to constrain the popup size. */\n boundary?: PositioningBoundary;\n /** Called when the tooltip open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: TooltipChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function TooltipRoot({\n open: controlledOpen,\n defaultOpen = TooltipCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n delay = TooltipCore.defaultProps.delay,\n closeDelay = TooltipCore.defaultProps.closeDelay,\n disableHoverablePopup = TooltipCore.defaultProps.disableHoverablePopup,\n disabled = TooltipCore.defaultProps.disabled,\n boundary = 'container',\n children,\n ...coreProps\n}: TooltipRootProps): ReactNode {\n const container = useOptionalContainer();\n const controls = useOptionalControlsContext();\n const [core] = useState(() => new TooltipCore(coreProps));\n core.setProps(coreProps);\n\n const isControlled = !isUndefined(controlledOpen);\n\n const groupFromContext = useTooltipGroup();\n\n // Keep refs that always point to the latest values so the\n // createTooltip closure never reads stale props.\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n const delayRef = useLatestRef(delay);\n const closeDelayRef = useLatestRef(closeDelay);\n const disableHoverablePopupRef = useLatestRef(disableHoverablePopup);\n const disabledRef = useLatestRef(disabled);\n const groupRef = useLatestRef(groupFromContext);\n\n const [tooltip] = useState(() => {\n const instance = createTooltip({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: TooltipChangeDetails) => {\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n delay: () => delayRef.current,\n closeDelay: () => closeDelayRef.current,\n disableHoverablePopup: () => disableHoverablePopupRef.current,\n disabled: () => disabledRef.current,\n group: () => groupRef.current,\n });\n\n // Apply defaultOpen on creation (uncontrolled only)\n if (!isControlled && defaultOpen) {\n instance.open();\n }\n\n return instance;\n });\n\n const [content, setContent] = useState();\n\n const anchorName = useSafeId();\n const popupId = useSafeId('tooltip');\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (isUndefined(controlledOpen)) return;\n\n const { active: inputOpen } = tooltip.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n tooltip.open();\n } else {\n tooltip.close();\n }\n }, [controlledOpen, tooltip]);\n\n useEffect(() => {\n if (isUndefined(controls?.state.visible)) return;\n if (controls.state.visible) return;\n\n tooltip.close('imperative-action');\n }, [controls?.state.visible, tooltip]);\n\n useDestroy(tooltip);\n\n const input = useSnapshot(tooltip.input);\n core.setInput(input);\n const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState());\n\n return (\n \n {children}\n \n );\n}\n\nexport namespace TooltipRoot {\n export type Props = TooltipRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAgCA,SAAgB,YAAY,EAC1B,MAAM,gBACN,cAAc,YAAY,aAAa,aACvC,cAAc,kBACd,sBAAsB,0BACtB,QAAQ,YAAY,aAAa,OACjC,aAAa,YAAY,aAAa,YACtC,wBAAwB,YAAY,aAAa,uBACjD,WAAW,YAAY,aAAa,UACpC,WAAW,aACX,UACA,GAAG,aAC2B;CAC9B,MAAM,YAAY,qBAAqB;CACvC,MAAM,WAAW,2BAA2B;CAC5C,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,SAAS,CAAC;CACxD,KAAK,SAAS,SAAS;CAEvB,MAAM,eAAe,CAAC,YAAY,cAAc;CAEhD,MAAM,mBAAmB,gBAAgB;CAIzC,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CACrE,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,gBAAgB,aAAa,UAAU;CAC7C,MAAM,2BAA2B,aAAa,qBAAqB;CACnE,MAAM,cAAc,aAAa,QAAQ;CACzC,MAAM,WAAW,aAAa,gBAAgB;CAE9C,MAAM,CAAC,WAAW,eAAe;EAC/B,MAAM,WAAW,cAAc;GAC7B,YAAY,iBAAiB;GAC7B,eAAe,UAAmB,YAAkC;IAClE,gBAAgB,UAAU,UAAU,OAAO;GAC7C;GACA,uBAAuB,aAAsB;IAC3C,wBAAwB,UAAU,QAAQ;GAC5C;GACA,aAAa,SAAS;GACtB,kBAAkB,cAAc;GAChC,6BAA6B,yBAAyB;GACtD,gBAAgB,YAAY;GAC5B,aAAa,SAAS;EACxB,CAAC;EAGD,IAAI,CAAC,gBAAgB,aACnB,SAAS,KAAK;EAGhB,OAAO;CACT,CAAC;CAED,MAAM,CAAC,SAAS,cAAc,SAAqC;CAEnE,MAAM,aAAa,UAAU;CAC7B,MAAM,UAAU,UAAU,SAAS;CAGnC,gBAAgB;EACd,IAAI,YAAY,cAAc,GAAG;EAEjC,MAAM,EAAE,QAAQ,cAAc,QAAQ,MAAM;EAC5C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBACF,QAAQ,KAAK;OAEb,QAAQ,MAAM;CAElB,GAAG,CAAC,gBAAgB,OAAO,CAAC;CAE5B,gBAAgB;EACd,IAAI,YAAY,UAAU,MAAM,OAAO,GAAG;EAC1C,IAAI,SAAS,MAAM,SAAS;EAE5B,QAAQ,MAAM,mBAAmB;CACnC,GAAG,CAAC,UAAU,MAAM,SAAS,OAAO,CAAC;CAErC,WAAW,OAAO;CAElB,MAAM,QAAQ,YAAY,QAAQ,KAAK;CACvC,KAAK,SAAS,KAAK;CACnB,MAAM,EAAE,OAAO,eAAe,sBAAsB,mBAAmB,KAAK,SAAS,CAAC;CAEtF,OACE,oBAAC,wBAAD;EACE,OAAO;GACL;GACA;GACA;GACA;GACA;GACA,cAAc;GACd;GACA;GACA;GACA;GACA;GACA;EACF;EAEC;CACqB,CAAA;AAE5B"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-shortcut.d.ts b/dist/dev/ui/tooltip/tooltip-shortcut.d.ts new file mode 100644 index 00000000..3b2f3b25 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-shortcut.d.ts @@ -0,0 +1,13 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { TooltipState } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-shortcut.d.ts +interface TooltipShortcutProps extends UIComponentProps<'kbd', TooltipState> {} +/** Keyboard shortcut hint; apply skin `className` (CSS: `media-tooltip__kbd`; Tailwind: `popup.tooltipShortcut`). */ +declare const TooltipShortcut: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +declare namespace TooltipShortcut { + type Props = TooltipShortcutProps; + type State = TooltipState; +} +//#endregion +export { TooltipShortcut, TooltipShortcutProps }; +//# sourceMappingURL=tooltip-shortcut.d.ts.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map b/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map new file mode 100644 index 00000000..191a9f0b --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-shortcut.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-shortcut.tsx"],"mappings":";;;UASiB,6BAA6B,wBAAwB;;cAGzD,iCAAe,0BAAA,KAAA,+CAAA,cAAA;kBAuBX;OACH,QAAQ;OACR,QAAQ"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-shortcut.js b/dist/dev/ui/tooltip/tooltip-shortcut.js new file mode 100644 index 00000000..6026da62 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-shortcut.js @@ -0,0 +1,25 @@ +"use client"; +import { renderElement } from "../../utils/use-render.js"; +import { useTooltipContext } from "./context.js"; +import { forwardRef } from "react"; +//#region src/ui/tooltip/tooltip-shortcut.tsx +/** Keyboard shortcut hint; apply skin `className` (CSS: `media-tooltip__kbd`; Tailwind: `popup.tooltipShortcut`). */ +const TooltipShortcut = forwardRef(function TooltipShortcut({ render, className, style, children, ...elementProps }, forwardedRef) { + const { state, stateAttrMap, content } = useTooltipContext(); + const shortcut = children !== void 0 && children !== null ? children : content?.shortcut ?? null; + if (!shortcut) return null; + return renderElement("kbd", { + render, + className, + style + }, { + state, + stateAttrMap, + ref: forwardedRef, + props: [elementProps, { children: shortcut }] + }); +}); +//#endregion +export { TooltipShortcut }; + +//# sourceMappingURL=tooltip-shortcut.js.map \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-shortcut.js.map b/dist/dev/ui/tooltip/tooltip-shortcut.js.map new file mode 100644 index 00000000..41b77aec --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-shortcut.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tooltip-shortcut.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-shortcut.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipShortcutProps extends UIComponentProps<'kbd', TooltipState> {}\n\n/** Keyboard shortcut hint; apply skin `className` (CSS: `media-tooltip__kbd`; Tailwind: `popup.tooltipShortcut`). */\nexport const TooltipShortcut = forwardRef(function TooltipShortcut(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap, content } = useTooltipContext();\n const shortcut = children !== undefined && children !== null ? children : (content?.shortcut ?? null);\n\n if (!shortcut) {\n return null;\n }\n\n return renderElement(\n 'kbd',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [elementProps, { children: shortcut }],\n }\n );\n});\n\nexport namespace TooltipShortcut {\n export type Props = TooltipShortcutProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;AAYA,MAAa,kBAAkB,WAA8C,SAAS,gBACpF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,OAAO,cAAc,YAAY,kBAAkB;CAC3D,MAAM,WAAW,aAAa,KAAA,KAAa,aAAa,OAAO,WAAY,SAAS,YAAY;CAEhG,IAAI,CAAC,UACH,OAAO;CAGT,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC,cAAc,EAAE,UAAU,SAAS,CAAC;CAC9C,CACF;AACF,CAAC"} \ No newline at end of file diff --git a/dist/dev/ui/tooltip/tooltip-trigger.d.ts b/dist/dev/ui/tooltip/tooltip-trigger.d.ts new file mode 100644 index 00000000..a84b1845 --- /dev/null +++ b/dist/dev/ui/tooltip/tooltip-trigger.d.ts @@ -0,0 +1,13 @@ +import { UIComponentProps } from "../../utils/types.js"; +import { TooltipState } from "@videojs/core"; +//#region src/ui/tooltip/tooltip-trigger.d.ts +interface TooltipTriggerProps extends UIComponentProps<'button', TooltipState> {} +/** Element that triggers the tooltip on hover and focus. Renders a `