@videojs/react 10.0.0-beta.5 → 10.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/default/icons/dist/react/default/captions-off.js +0 -1
- package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/default/captions-on.js +0 -1
- package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
- package/dist/default/icons/dist/react/default/fullscreen-enter.js +0 -1
- package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/fullscreen-exit.js +0 -1
- package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/pause.js +0 -1
- package/dist/default/icons/dist/react/default/pause.js.map +1 -1
- package/dist/default/icons/dist/react/default/pip-enter.js +33 -0
- package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -0
- package/dist/default/icons/dist/react/default/pip-exit.js +33 -0
- package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -0
- package/dist/default/icons/dist/react/default/play.js +0 -1
- package/dist/default/icons/dist/react/default/play.js.map +1 -1
- package/dist/default/icons/dist/react/default/restart.js +0 -1
- package/dist/default/icons/dist/react/default/restart.js.map +1 -1
- package/dist/default/icons/dist/react/default/seek.js +0 -1
- package/dist/default/icons/dist/react/default/seek.js.map +1 -1
- package/dist/default/icons/dist/react/default/spinner.js +0 -1
- package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-high.js +0 -1
- package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-low.js +0 -1
- package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-off.js +0 -1
- package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/captions-off.js +0 -1
- package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/captions-on.js +0 -1
- package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +0 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +0 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pause.js +0 -1
- package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pip-enter.js +37 -0
- package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/pip-exit.js +37 -0
- package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/play.js +0 -1
- package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/restart.js +0 -1
- package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/seek.js +0 -1
- package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/spinner.js +0 -1
- package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-high.js +0 -1
- package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-low.js +0 -1
- package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-off.js +0 -1
- package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
- package/dist/default/index.js +2 -2
- package/dist/default/media/audio.js +3 -6
- package/dist/default/media/audio.js.map +1 -1
- package/dist/default/media/background-video/index.js +2 -2
- package/dist/default/media/background-video/index.js.map +1 -1
- package/dist/default/media/dash-video/index.js +26 -0
- package/dist/default/media/dash-video/index.js.map +1 -0
- package/dist/default/media/hls-video/index.js +2 -2
- package/dist/default/media/hls-video/index.js.map +1 -1
- package/dist/default/media/simple-hls-video/index.js +2 -2
- package/dist/default/media/simple-hls-video/index.js.map +1 -1
- package/dist/default/media/video.js +3 -6
- package/dist/default/media/video.js.map +1 -1
- package/dist/default/player/context.js +16 -10
- package/dist/default/player/context.js.map +1 -1
- package/dist/default/player/create-player.js +16 -2
- package/dist/default/player/create-player.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +77 -20
- package/dist/default/presets/audio/minimal-skin.js +32 -26
- package/dist/default/presets/audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.tailwind.js +36 -30
- package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/audio/skin.css +74 -24
- package/dist/default/presets/audio/skin.js +32 -26
- package/dist/default/presets/audio/skin.js.map +1 -1
- package/dist/default/presets/audio/skin.tailwind.js +37 -32
- package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.css +259 -77
- package/dist/default/presets/video/minimal-skin.js +68 -35
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +79 -43
- package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/skin.css +244 -72
- package/dist/default/presets/video/skin.js +66 -36
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +77 -44
- package/dist/default/presets/video/skin.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +6 -5
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/error.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js +3 -3
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +16 -0
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/components/preview.js +13 -0
- package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/components/root.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/surface.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +21 -15
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +2 -2
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +4 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +14 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +22 -15
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +5 -0
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/default/ui/popover/popover-popup.js +11 -2
- package/dist/default/ui/popover/popover-popup.js.map +1 -1
- package/dist/default/ui/thumbnail/index.js +3 -0
- package/dist/default/ui/time-slider/time-slider-root.js +1 -1
- package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-popup.js +11 -2
- package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
- package/dist/default/ui/volume-slider/volume-slider-root.js +3 -3
- package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
- package/dist/default/utils/use-render.js +5 -1
- package/dist/default/utils/use-render.js.map +1 -1
- package/dist/dev/icons/dist/react/default/captions-off.js +0 -1
- package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/default/captions-on.js +0 -1
- package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/react/default/fullscreen-enter.js +0 -1
- package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/fullscreen-exit.js +0 -1
- package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/pause.js +0 -1
- package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
- package/dist/dev/icons/dist/react/default/pip-enter.js +33 -0
- package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -0
- package/dist/dev/icons/dist/react/default/pip-exit.js +33 -0
- package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -0
- package/dist/dev/icons/dist/react/default/play.js +0 -1
- package/dist/dev/icons/dist/react/default/play.js.map +1 -1
- package/dist/dev/icons/dist/react/default/restart.js +0 -1
- package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
- package/dist/dev/icons/dist/react/default/seek.js +0 -1
- package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
- package/dist/dev/icons/dist/react/default/spinner.js +0 -1
- package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-high.js +0 -1
- package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-low.js +0 -1
- package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-off.js +0 -1
- package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/captions-off.js +0 -1
- package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/captions-on.js +0 -1
- package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +0 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +0 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/pause.js +0 -1
- package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/pip-enter.js +37 -0
- package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/pip-exit.js +37 -0
- package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/play.js +0 -1
- package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/restart.js +0 -1
- package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/seek.js +0 -1
- package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/spinner.js +0 -1
- package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-high.js +0 -1
- package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-low.js +0 -1
- package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-off.js +0 -1
- package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
- package/dist/dev/index.d.ts +2 -2
- package/dist/dev/index.js +2 -2
- package/dist/dev/media/audio.d.ts.map +1 -1
- package/dist/dev/media/audio.js +3 -6
- package/dist/dev/media/audio.js.map +1 -1
- package/dist/dev/media/background-video/index.js +2 -2
- package/dist/dev/media/background-video/index.js.map +1 -1
- package/dist/dev/media/dash-video/index.d.ts +11 -0
- package/dist/dev/media/dash-video/index.d.ts.map +1 -0
- package/dist/dev/media/dash-video/index.js +26 -0
- package/dist/dev/media/dash-video/index.js.map +1 -0
- package/dist/dev/media/hls-video/index.js +2 -2
- package/dist/dev/media/hls-video/index.js.map +1 -1
- package/dist/dev/media/simple-hls-video/index.js +2 -2
- package/dist/dev/media/simple-hls-video/index.js.map +1 -1
- package/dist/dev/media/video.d.ts.map +1 -1
- package/dist/dev/media/video.js +3 -6
- package/dist/dev/media/video.js.map +1 -1
- package/dist/dev/player/context.d.ts +10 -4
- package/dist/dev/player/context.d.ts.map +1 -1
- package/dist/dev/player/context.js +16 -10
- package/dist/dev/player/context.js.map +1 -1
- package/dist/dev/player/create-player.js +16 -2
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +77 -20
- package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.js +32 -26
- package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.js +36 -30
- package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/audio/skin.css +74 -24
- package/dist/dev/presets/audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.js +32 -26
- package/dist/dev/presets/audio/skin.js.map +1 -1
- package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.tailwind.js +37 -32
- package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/types.d.ts +6 -1
- package/dist/dev/presets/types.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.css +259 -77
- package/dist/dev/presets/video/minimal-skin.d.ts +2 -2
- package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.js +68 -35
- package/dist/dev/presets/video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.js +78 -42
- package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/skin.css +244 -72
- package/dist/dev/presets/video/skin.d.ts +2 -2
- package/dist/dev/presets/video/skin.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.js +65 -35
- package/dist/dev/presets/video/skin.js.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.js +75 -42
- package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +6 -5
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +3 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +16 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +13 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/root.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +21 -15
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +2 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +4 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +14 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +22 -15
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +5 -0
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-popup.js +11 -2
- package/dist/dev/ui/popover/popover-popup.js.map +1 -1
- package/dist/dev/ui/thumbnail/index.d.ts +2 -0
- package/dist/dev/ui/thumbnail/index.js +3 -0
- package/dist/dev/ui/time-slider/time-slider-root.js +1 -1
- package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.js +11 -2
- package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-root.js +3 -3
- package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
- package/dist/dev/utils/use-render.d.ts.map +1 -1
- package/dist/dev/utils/use-render.js +5 -1
- package/dist/dev/utils/use-render.js.map +1 -1
- package/package.json +7 -7
- package/dist/default/icons/dist/react/default/pip.js +0 -27
- package/dist/default/icons/dist/react/default/pip.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/pip.js +0 -27
- package/dist/default/icons/dist/react/minimal/pip.js.map +0 -1
- package/dist/dev/icons/dist/react/default/pip.js +0 -27
- package/dist/dev/icons/dist/react/default/pip.js.map +0 -1
- package/dist/dev/icons/dist/react/minimal/pip.js +0 -27
- package/dist/dev/icons/dist/react/minimal/pip.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
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: \"currentColor\", \"aria-hidden\": \"true\",
|
|
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: \"currentColor\", \"aria-hidden\": \"true\", ...props, children: [\n /* @__PURE__ */ jsx(\"rect\", { width: 2, height: 5, x: 8, y: 0.5, opacity: 0.5, rx: 1, children: /* @__PURE__ */ jsx(\"animate\", { attributeName: \"opacity\", begin: \"0s\", calcMode: \"linear\", dur: \"1s\", repeatCount: \"indefinite\", values: \"1;0\" }) }),\n /* @__PURE__ */ jsx(\"rect\", { width: 2, height: 5, x: 12.243, y: 2.257, opacity: 0.45, rx: 1, transform: \"rotate(45 13.243 4.757)\", children: /* @__PURE__ */ jsx(\"animate\", { attributeName: \"opacity\", begin: \"0.125s\", calcMode: \"linear\", dur: \"1s\", repeatCount: \"indefinite\", values: \"1;0\" }) }),\n /* @__PURE__ */ jsx(\"rect\", { width: 5, height: 2, x: 12.5, y: 8, opacity: 0.4, rx: 1, children: /* @__PURE__ */ jsx(\"animate\", { attributeName: \"opacity\", begin: \"0.25s\", calcMode: \"linear\", dur: \"1s\", repeatCount: \"indefinite\", values: \"1;0\" }) }),\n /* @__PURE__ */ jsx(\"rect\", { width: 5, height: 2, x: 10.743, y: 12.243, opacity: 0.35, rx: 1, transform: \"rotate(45 13.243 13.243)\", children: /* @__PURE__ */ jsx(\"animate\", { attributeName: \"opacity\", begin: \"0.375s\", calcMode: \"linear\", dur: \"1s\", repeatCount: \"indefinite\", values: \"1;0\" }) }),\n /* @__PURE__ */ jsx(\"rect\", { width: 2, height: 5, x: 8, y: 12.5, opacity: 0.3, rx: 1, children: /* @__PURE__ */ jsx(\"animate\", { attributeName: \"opacity\", begin: \"0.5s\", calcMode: \"linear\", dur: \"1s\", repeatCount: \"indefinite\", values: \"1;0\" }) }),\n /* @__PURE__ */ jsx(\"rect\", { width: 2, height: 5, x: 3.757, y: 10.743, opacity: 0.25, rx: 1, transform: \"rotate(45 4.757 13.243)\", children: /* @__PURE__ */ jsx(\"animate\", { attributeName: \"opacity\", begin: \"0.625s\", calcMode: \"linear\", dur: \"1s\", repeatCount: \"indefinite\", values: \"1;0\" }) }),\n /* @__PURE__ */ jsx(\"rect\", { width: 5, height: 2, x: 0.5, y: 8, opacity: 0.15, rx: 1, children: /* @__PURE__ */ jsx(\"animate\", { attributeName: \"opacity\", begin: \"0.75s\", calcMode: \"linear\", dur: \"1s\", repeatCount: \"indefinite\", values: \"1;0\" }) }),\n /* @__PURE__ */ jsx(\"rect\", { width: 5, height: 2, x: 2.257, y: 3.757, opacity: 0.1, rx: 1, transform: \"rotate(45 4.757 4.757)\", children: /* @__PURE__ */ jsx(\"animate\", { attributeName: \"opacity\", begin: \"0.875s\", calcMode: \"linear\", dur: \"1s\", repeatCount: \"indefinite\", values: \"1;0\" }) })\n] });\nexport default SpinnerIcon;\n"],"mappings":";;;AACA,MAAM,eAAe,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAgB,eAAe;CAAQ,GAAG;CAAO,UAAU;EACxK,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAK,SAAS;GAAK,IAAI;GAAG,UAA0B,oBAAI,WAAW;IAAE,eAAe;IAAW,OAAO;IAAM,UAAU;IAAU,KAAK;IAAM,aAAa;IAAc,QAAQ;IAAO,CAAC;GAAE,CAAC;EACrO,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAQ,GAAG;GAAO,SAAS;GAAM,IAAI;GAAG,WAAW;GAA2B,UAA0B,oBAAI,WAAW;IAAE,eAAe;IAAW,OAAO;IAAU,UAAU;IAAU,KAAK;IAAM,aAAa;IAAc,QAAQ;IAAO,CAAC;GAAE,CAAC;EACvR,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAM,GAAG;GAAG,SAAS;GAAK,IAAI;GAAG,UAA0B,oBAAI,WAAW;IAAE,eAAe;IAAW,OAAO;IAAS,UAAU;IAAU,KAAK;IAAM,aAAa;IAAc,QAAQ;IAAO,CAAC;GAAE,CAAC;EACzO,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAQ,GAAG;GAAQ,SAAS;GAAM,IAAI;GAAG,WAAW;GAA4B,UAA0B,oBAAI,WAAW;IAAE,eAAe;IAAW,OAAO;IAAU,UAAU;IAAU,KAAK;IAAM,aAAa;IAAc,QAAQ;IAAO,CAAC;GAAE,CAAC;EACzR,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAG,GAAG;GAAM,SAAS;GAAK,IAAI;GAAG,UAA0B,oBAAI,WAAW;IAAE,eAAe;IAAW,OAAO;IAAQ,UAAU;IAAU,KAAK;IAAM,aAAa;IAAc,QAAQ;IAAO,CAAC;GAAE,CAAC;EACxO,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAO,GAAG;GAAQ,SAAS;GAAM,IAAI;GAAG,WAAW;GAA2B,UAA0B,oBAAI,WAAW;IAAE,eAAe;IAAW,OAAO;IAAU,UAAU;IAAU,KAAK;IAAM,aAAa;IAAc,QAAQ;IAAO,CAAC;GAAE,CAAC;EACvR,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAK,GAAG;GAAG,SAAS;GAAM,IAAI;GAAG,UAA0B,oBAAI,WAAW;IAAE,eAAe;IAAW,OAAO;IAAS,UAAU;IAAU,KAAK;IAAM,aAAa;IAAc,QAAQ;IAAO,CAAC;GAAE,CAAC;EACzO,oBAAI,QAAQ;GAAE,OAAO;GAAG,QAAQ;GAAG,GAAG;GAAO,GAAG;GAAO,SAAS;GAAK,IAAI;GAAG,WAAW;GAA0B,UAA0B,oBAAI,WAAW;IAAE,eAAe;IAAW,OAAO;IAAU,UAAU;IAAU,KAAK;IAAM,aAAa;IAAc,QAAQ;IAAO,CAAC;GAAE,CAAC;EACrS;CAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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: \"none\", \"aria-hidden\": \"true\",
|
|
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: \"none\", \"aria-hidden\": \"true\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", 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\", { fill: \"currentColor\", 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;CAAQ,eAAe;CAAQ,GAAG;CAAO,UAAU,CACnK,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAmK,CAAC,EAC3M,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAya,CAAC,CACle;CAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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: \"none\", \"aria-hidden\": \"true\",
|
|
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: \"none\", \"aria-hidden\": \"true\", ...props, children: /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", 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;CAAQ,eAAe;CAAQ,GAAG;CAAO,UAA0B,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAya,CAAC;CAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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: \"none\", \"aria-hidden\": \"true\",
|
|
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: \"none\", \"aria-hidden\": \"true\", ...props, children: /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", 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;CAAQ,eAAe;CAAQ,GAAG;CAAO,UAA0B,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAyV,CAAC;CAAE,CAAC"}
|
package/dist/default/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { Container, useMedia,
|
|
3
|
+
import { Container, useContainer, useContainerAttach, useMedia, useMediaAttach, usePlayer, usePlayerContext } from "./player/context.js";
|
|
4
4
|
import { createPlayer } from "./player/create-player.js";
|
|
5
5
|
import { useAlertDialogContext } from "./ui/alert-dialog/context.js";
|
|
6
6
|
import { mergeProps } from "./utils/merge-props.js";
|
|
@@ -32,4 +32,4 @@ import { useSelector, useStore } from "@videojs/store/react";
|
|
|
32
32
|
|
|
33
33
|
export * from "@videojs/core/dom"
|
|
34
34
|
|
|
35
|
-
export { index_parts_exports as AlertDialog, BufferingIndicator, CaptionsButton, Container, index_parts_exports$1 as Controls, FullscreenButton, MuteButton, PiPButton, PlayButton, PlaybackRateButton, index_parts_exports$2 as Popover, Poster, SeekButton, index_parts_exports$3 as Slider, Thumbnail, index_parts_exports$4 as Time, index_parts_exports$5 as TimeSlider, index_parts_exports$6 as Tooltip, index_parts_exports$7 as VolumeSlider, createPlayer, createSelector, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useButton, useMedia,
|
|
35
|
+
export { index_parts_exports as AlertDialog, BufferingIndicator, CaptionsButton, Container, index_parts_exports$1 as Controls, FullscreenButton, MuteButton, PiPButton, PlayButton, PlaybackRateButton, index_parts_exports$2 as Popover, Poster, SeekButton, index_parts_exports$3 as Slider, Thumbnail, index_parts_exports$4 as Time, index_parts_exports$5 as TimeSlider, index_parts_exports$6 as Tooltip, index_parts_exports$7 as VolumeSlider, createPlayer, createSelector, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useButton, useContainer, useContainerAttach, useMedia, useMediaAttach, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTooltipContext };
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { useComposedRefs } from "../utils/use-composed-refs.js";
|
|
4
|
-
import {
|
|
5
|
-
import { forwardRef
|
|
4
|
+
import { useMediaAttach } from "../player/context.js";
|
|
5
|
+
import { forwardRef } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
|
|
8
8
|
//#region src/media/audio.tsx
|
|
9
9
|
const Audio = forwardRef(function Audio({ children, ...props }, ref) {
|
|
10
|
-
const setMedia = useMediaRegistration();
|
|
11
10
|
return /* @__PURE__ */ jsx("audio", {
|
|
12
|
-
ref: useComposedRefs(ref,
|
|
13
|
-
setMedia?.(el);
|
|
14
|
-
}, [setMedia])),
|
|
11
|
+
ref: useComposedRefs(ref, useMediaAttach()),
|
|
15
12
|
...props,
|
|
16
13
|
children
|
|
17
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.js","names":[],"sources":["../../../src/media/audio.tsx"],"sourcesContent":["'use client';\n\nimport type { AudioHTMLAttributes } from 'react';\nimport { forwardRef
|
|
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<HTMLAudioElement> {}\n\nexport const Audio = forwardRef<HTMLAudioElement, AudioProps>(function Audio({ children, ...props }, ref) {\n const setMedia = useMediaAttach();\n const composedRef = useComposedRefs(ref, setMedia);\n\n return (\n <audio ref={composedRef} {...props}>\n {children}\n </audio>\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;AAIxG,QACE,oBAAC;EAAM,KAHW,gBAAgB,KADnB,gBAAgB,CACiB;EAGvB,GAAI;EAC1B;GACK;EAEV"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { useComposedRefs } from "../../utils/use-composed-refs.js";
|
|
4
|
-
import {
|
|
4
|
+
import { useMediaAttach } from "../../player/context.js";
|
|
5
5
|
import { forwardRef, useCallback } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
|
|
8
8
|
//#region src/media/background-video/index.tsx
|
|
9
9
|
const BackgroundVideo = forwardRef(function BackgroundVideo({ children, ...props }, ref) {
|
|
10
|
-
const setMedia =
|
|
10
|
+
const setMedia = useMediaAttach();
|
|
11
11
|
return /* @__PURE__ */ jsx("video", {
|
|
12
12
|
ref: useComposedRefs(ref, useCallback((el) => {
|
|
13
13
|
setMedia?.(el);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/background-video/index.tsx"],"sourcesContent":["'use client';\n\nimport type { VideoHTMLAttributes } from 'react';\nimport { forwardRef, useCallback } from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/background-video/index.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<HTMLVideoElement> {}\n\nexport const BackgroundVideo = forwardRef<HTMLVideoElement, BackgroundVideoProps>(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 <video ref={composedRef} muted autoPlay loop playsInline disableRemotePlayback disablePictureInPicture {...props}>\n {children}\n </video>\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,gBAAgB;AAWjC,QACE,oBAAC;EAAM,KAHW,gBAAgB,KAPnB,aACd,OAAgC;AAC/B,cAAW,GAAG;KAEhB,CAAC,SAAS,CACX,CAEiD;EAGvB;EAAM;EAAS;EAAK;EAAY;EAAsB;EAAwB,GAAI;EACxG;GACK;EAEV"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useComposedRefs } from "../../utils/use-composed-refs.js";
|
|
2
|
+
import { useMediaAttach } from "../../player/context.js";
|
|
3
|
+
import { useDestroy } from "../../utils/use-destroy.js";
|
|
4
|
+
import { attachMediaElement } from "../../utils/attach-media-element.js";
|
|
5
|
+
import { mediaProps } from "../../utils/media-props.js";
|
|
6
|
+
import { forwardRef, useMemo } from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
import { DashMedia } from "@videojs/core/dom/media/dash";
|
|
9
|
+
|
|
10
|
+
//#region src/media/dash-video/index.tsx
|
|
11
|
+
const DashVideo = forwardRef(({ children, ...props }, ref) => {
|
|
12
|
+
const mediaApi = useMemo(() => new DashMedia(), []);
|
|
13
|
+
const setMedia = useMediaAttach();
|
|
14
|
+
useDestroy(mediaApi, () => {
|
|
15
|
+
setMedia?.(mediaApi);
|
|
16
|
+
});
|
|
17
|
+
return /* @__PURE__ */ jsx("video", {
|
|
18
|
+
ref: useComposedRefs(attachMediaElement(mediaApi), ref),
|
|
19
|
+
...mediaProps(mediaApi, props),
|
|
20
|
+
children
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
export { DashVideo, DashVideo as default };
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/dash-video/index.tsx"],"sourcesContent":["import { DashMedia } from '@videojs/core/dom/media/dash';\nimport type { PropsWithChildren, VideoHTMLAttributes } from 'react';\nimport { forwardRef, useMemo } from 'react';\nimport { useMediaAttach } from '../../player/context';\nimport { attachMediaElement } from '../../utils/attach-media-element';\nimport { mediaProps } from '../../utils/media-props';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useDestroy } from '../../utils/use-destroy';\n\nexport type DashVideoProps = PropsWithChildren<VideoHTMLAttributes<HTMLVideoElement>>;\n\nexport const DashVideo = forwardRef<HTMLVideoElement, DashVideoProps>(({ children, ...props }, ref) => {\n const mediaApi = useMemo(() => new DashMedia(), []);\n const setMedia = useMediaAttach();\n\n useDestroy(mediaApi, () => {\n setMedia?.(mediaApi);\n });\n\n const composedRef = useComposedRefs(attachMediaElement(mediaApi), ref);\n\n return (\n <video ref={composedRef} {...mediaProps(mediaApi, props)}>\n {children}\n </video>\n );\n});\n\nexport default DashVideo;\n"],"mappings":";;;;;;;;;;AAWA,MAAa,YAAY,YAA8C,EAAE,UAAU,GAAG,SAAS,QAAQ;CACrG,MAAM,WAAW,cAAc,IAAI,WAAW,EAAE,EAAE,CAAC;CACnD,MAAM,WAAW,gBAAgB;AAEjC,YAAW,gBAAgB;AACzB,aAAW,SAAS;GACpB;AAIF,QACE,oBAAC;EAAM,KAHW,gBAAgB,mBAAmB,SAAS,EAAE,IAAI;EAG3C,GAAI,WAAW,UAAU,MAAM;EACrD;GACK;EAEV"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useComposedRefs } from "../../utils/use-composed-refs.js";
|
|
2
|
-
import {
|
|
2
|
+
import { useMediaAttach } from "../../player/context.js";
|
|
3
3
|
import { useDestroy } from "../../utils/use-destroy.js";
|
|
4
4
|
import { attachMediaElement } from "../../utils/attach-media-element.js";
|
|
5
5
|
import { mediaProps } from "../../utils/media-props.js";
|
|
@@ -10,7 +10,7 @@ import { HlsMedia } from "@videojs/core/dom/media/hls";
|
|
|
10
10
|
//#region src/media/hls-video/index.tsx
|
|
11
11
|
const HlsVideo = forwardRef(({ children, ...props }, ref) => {
|
|
12
12
|
const mediaApi = useMemo(() => new HlsMedia(), []);
|
|
13
|
-
const setMedia =
|
|
13
|
+
const setMedia = useMediaAttach();
|
|
14
14
|
useDestroy(mediaApi, () => {
|
|
15
15
|
setMedia?.(mediaApi);
|
|
16
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/hls-video/index.tsx"],"sourcesContent":["import { HlsMedia } from '@videojs/core/dom/media/hls';\nimport type { PropsWithChildren, VideoHTMLAttributes } from 'react';\nimport { forwardRef, useMemo } from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/hls-video/index.tsx"],"sourcesContent":["import { HlsMedia } from '@videojs/core/dom/media/hls';\nimport type { PropsWithChildren, VideoHTMLAttributes } from 'react';\nimport { forwardRef, useMemo } from 'react';\nimport { useMediaAttach } from '../../player/context';\nimport { attachMediaElement } from '../../utils/attach-media-element';\nimport { mediaProps } from '../../utils/media-props';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useDestroy } from '../../utils/use-destroy';\n\nexport type HlsVideoProps = PropsWithChildren<VideoHTMLAttributes<HTMLVideoElement>>;\n\nexport const HlsVideo = forwardRef<HTMLVideoElement, HlsVideoProps>(({ children, ...props }, ref) => {\n const mediaApi = useMemo(() => new HlsMedia(), []);\n const setMedia = useMediaAttach();\n\n useDestroy(mediaApi, () => {\n setMedia?.(mediaApi);\n });\n\n const composedRef = useComposedRefs(attachMediaElement(mediaApi), ref);\n\n return (\n <video ref={composedRef} {...mediaProps(mediaApi, props)}>\n {children}\n </video>\n );\n});\n\nexport default HlsVideo;\n"],"mappings":";;;;;;;;;;AAWA,MAAa,WAAW,YAA6C,EAAE,UAAU,GAAG,SAAS,QAAQ;CACnG,MAAM,WAAW,cAAc,IAAI,UAAU,EAAE,EAAE,CAAC;CAClD,MAAM,WAAW,gBAAgB;AAEjC,YAAW,gBAAgB;AACzB,aAAW,SAAS;GACpB;AAIF,QACE,oBAAC;EAAM,KAHW,gBAAgB,mBAAmB,SAAS,EAAE,IAAI;EAG3C,GAAI,WAAW,UAAU,MAAM;EACrD;GACK;EAEV"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useComposedRefs } from "../../utils/use-composed-refs.js";
|
|
2
|
-
import {
|
|
2
|
+
import { useMediaAttach } from "../../player/context.js";
|
|
3
3
|
import { attachMediaElement } from "../../utils/attach-media-element.js";
|
|
4
4
|
import { mediaProps } from "../../utils/media-props.js";
|
|
5
5
|
import { forwardRef, useEffect, useMemo } from "react";
|
|
@@ -9,7 +9,7 @@ import { SimpleHlsMedia } from "@videojs/core/dom/media/simple-hls";
|
|
|
9
9
|
//#region src/media/simple-hls-video/index.tsx
|
|
10
10
|
const SimpleHlsVideo = forwardRef(({ children, ...props }, ref) => {
|
|
11
11
|
const mediaApi = useMemo(() => new SimpleHlsMedia(), []);
|
|
12
|
-
const setMedia =
|
|
12
|
+
const setMedia = useMediaAttach();
|
|
13
13
|
useEffect(() => {
|
|
14
14
|
setMedia?.(mediaApi);
|
|
15
15
|
}, [mediaApi, setMedia]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/simple-hls-video/index.tsx"],"sourcesContent":["import { SimpleHlsMedia } from '@videojs/core/dom/media/simple-hls';\nimport type { PropsWithChildren, VideoHTMLAttributes } from 'react';\nimport { forwardRef, useEffect, useMemo } from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/simple-hls-video/index.tsx"],"sourcesContent":["import { SimpleHlsMedia } from '@videojs/core/dom/media/simple-hls';\nimport type { PropsWithChildren, VideoHTMLAttributes } from 'react';\nimport { forwardRef, useEffect, useMemo } from 'react';\nimport { useMediaAttach } from '../../player/context';\nimport { attachMediaElement } from '../../utils/attach-media-element';\nimport { mediaProps } from '../../utils/media-props';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\n\n// TODO: mediaProps uses media.preload which SimpleHlsMedia does not yet expose.\n// Add preload getter/setter to SimpleHlsMedia as a follow-up.\nexport type SimpleHlsVideoProps = PropsWithChildren<VideoHTMLAttributes<HTMLVideoElement>>;\n\nexport const SimpleHlsVideo = forwardRef<HTMLVideoElement, SimpleHlsVideoProps>(({ children, ...props }, ref) => {\n const mediaApi = useMemo(() => new SimpleHlsMedia(), []);\n const setMedia = useMediaAttach();\n\n useEffect(() => {\n setMedia?.(mediaApi);\n }, [mediaApi, setMedia]);\n\n const composedRef = useComposedRefs(attachMediaElement(mediaApi), ref);\n\n return (\n <video ref={composedRef} {...mediaProps(mediaApi, props)}>\n {children}\n </video>\n );\n});\n\nexport default SimpleHlsVideo;\n"],"mappings":";;;;;;;;;AAYA,MAAa,iBAAiB,YAAmD,EAAE,UAAU,GAAG,SAAS,QAAQ;CAC/G,MAAM,WAAW,cAAc,IAAI,gBAAgB,EAAE,EAAE,CAAC;CACxD,MAAM,WAAW,gBAAgB;AAEjC,iBAAgB;AACd,aAAW,SAAS;IACnB,CAAC,UAAU,SAAS,CAAC;AAIxB,QACE,oBAAC;EAAM,KAHW,gBAAgB,mBAAmB,SAAS,EAAE,IAAI;EAG3C,GAAI,WAAW,UAAU,MAAM;EACrD;GACK;EAEV"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { useComposedRefs } from "../utils/use-composed-refs.js";
|
|
4
|
-
import {
|
|
5
|
-
import { forwardRef
|
|
4
|
+
import { useMediaAttach } from "../player/context.js";
|
|
5
|
+
import { forwardRef } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
|
|
8
8
|
//#region src/media/video.tsx
|
|
9
9
|
const Video = forwardRef(function Video({ children, ...props }, ref) {
|
|
10
|
-
const setMedia = useMediaRegistration();
|
|
11
10
|
return /* @__PURE__ */ jsx("video", {
|
|
12
|
-
ref: useComposedRefs(ref,
|
|
13
|
-
setMedia?.(el);
|
|
14
|
-
}, [setMedia])),
|
|
11
|
+
ref: useComposedRefs(ref, useMediaAttach()),
|
|
15
12
|
...props,
|
|
16
13
|
children
|
|
17
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","names":[],"sources":["../../../src/media/video.tsx"],"sourcesContent":["'use client';\n\nimport type { VideoHTMLAttributes } from 'react';\nimport { forwardRef
|
|
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<HTMLVideoElement> {}\n\nexport const Video = forwardRef<HTMLVideoElement, VideoProps>(function Video({ children, ...props }, ref) {\n const setMedia = useMediaAttach();\n const composedRef = useComposedRefs(ref, setMedia);\n\n return (\n <video ref={composedRef} {...props}>\n {children}\n </video>\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;AAIxG,QACE,oBAAC;EAAM,KAHW,gBAAgB,KADnB,gBAAgB,CACiB;EAGvB,GAAI;EAC1B;GACK;EAEV"}
|
|
@@ -38,21 +38,27 @@ function useMedia() {
|
|
|
38
38
|
const { media } = usePlayerContext();
|
|
39
39
|
return media;
|
|
40
40
|
}
|
|
41
|
-
/** Access the
|
|
42
|
-
function
|
|
41
|
+
/** Access the container element from within a Player Provider. */
|
|
42
|
+
function useContainer() {
|
|
43
|
+
const { container } = usePlayerContext();
|
|
44
|
+
return container;
|
|
45
|
+
}
|
|
46
|
+
/** Access the media attach setter for connecting a media element to the player. */
|
|
47
|
+
function useMediaAttach() {
|
|
43
48
|
return useContext(PlayerContext)?.setMedia;
|
|
44
49
|
}
|
|
50
|
+
/** Access the container attach setter for connecting a container element to the player. */
|
|
51
|
+
function useContainerAttach() {
|
|
52
|
+
return useContext(PlayerContext)?.setContainer;
|
|
53
|
+
}
|
|
45
54
|
const Container = forwardRef(function Container({ children, ...props }, ref) {
|
|
46
|
-
const
|
|
55
|
+
const setContainer = useContainerAttach();
|
|
47
56
|
const internalRef = useRef(null);
|
|
48
57
|
const composedRef = useComposedRefs(ref, internalRef);
|
|
49
58
|
useEffect(() => {
|
|
50
|
-
|
|
51
|
-
return
|
|
52
|
-
|
|
53
|
-
container: internalRef.current
|
|
54
|
-
});
|
|
55
|
-
}, [media, store]);
|
|
59
|
+
setContainer?.(internalRef.current);
|
|
60
|
+
return () => setContainer?.(null);
|
|
61
|
+
}, [setContainer]);
|
|
56
62
|
return /* @__PURE__ */ jsx("div", {
|
|
57
63
|
ref: composedRef,
|
|
58
64
|
...props,
|
|
@@ -61,5 +67,5 @@ const Container = forwardRef(function Container({ children, ...props }, ref) {
|
|
|
61
67
|
});
|
|
62
68
|
|
|
63
69
|
//#endregion
|
|
64
|
-
export { Container, PlayerContextProvider, useMedia,
|
|
70
|
+
export { Container, PlayerContextProvider, useContainer, useContainerAttach, useMedia, useMediaAttach, useOptionalPlayer, usePlayer, usePlayerContext };
|
|
65
71
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/player/context.tsx"],"sourcesContent":["'use client';\n\nimport type { Media } from '@videojs/core/dom';\nimport type { UnknownState, UnknownStore } from '@videojs/store';\nimport { useStore } from '@videojs/store/react';\nimport type { Dispatch, HTMLAttributes, ReactNode, SetStateAction } from 'react';\nimport { createContext, forwardRef, useContext, useEffect, useRef } from 'react';\n\nimport { useComposedRefs } from '../utils/use-composed-refs';\n\nexport interface PlayerContextValue {\n store: UnknownStore;\n media: Media | null;\n setMedia: Dispatch<SetStateAction<Media | null>>;\n}\n\nconst PlayerContext = createContext<PlayerContextValue | null>(null);\nconst EMPTY_UNSUBSCRIBE = () => {};\nconst EMPTY_STORE = {\n state: {} as UnknownState,\n subscribe: () => EMPTY_UNSUBSCRIBE,\n} as Pick<UnknownStore, 'state' | 'subscribe'>;\n\nexport function PlayerContextProvider({\n value,\n children,\n}: {\n value: PlayerContextValue;\n children: ReactNode;\n}): ReactNode {\n return <PlayerContext.Provider value={value}>{children}</PlayerContext.Provider>;\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 * @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 * @label With Selector\n * @param selector - Derives a value from the player store state.\n */\nexport function usePlayer<R>(selector: (state: UnknownState) => R): R;\nexport function usePlayer<R>(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<R>(selector: (state: UnknownState) => R): R | undefined;\nexport function useOptionalPlayer<R>(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 media
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/player/context.tsx"],"sourcesContent":["'use client';\n\nimport type { Media, MediaContainer } from '@videojs/core/dom';\nimport type { UnknownState, UnknownStore } from '@videojs/store';\nimport { useStore } from '@videojs/store/react';\nimport type { Dispatch, HTMLAttributes, ReactNode, SetStateAction } from 'react';\nimport { createContext, forwardRef, useContext, useEffect, useRef } from 'react';\n\nimport { useComposedRefs } from '../utils/use-composed-refs';\n\nexport interface PlayerContextValue {\n store: UnknownStore;\n media: Media | null;\n setMedia: Dispatch<SetStateAction<Media | null>>;\n container: MediaContainer | null;\n setContainer: Dispatch<SetStateAction<HTMLElement | null>>;\n}\n\nconst PlayerContext = createContext<PlayerContextValue | null>(null);\nconst EMPTY_UNSUBSCRIBE = () => {};\nconst EMPTY_STORE = {\n state: {} as UnknownState,\n subscribe: () => EMPTY_UNSUBSCRIBE,\n} as Pick<UnknownStore, 'state' | 'subscribe'>;\n\nexport function PlayerContextProvider({\n value,\n children,\n}: {\n value: PlayerContextValue;\n children: ReactNode;\n}): ReactNode {\n return <PlayerContext.Provider value={value}>{children}</PlayerContext.Provider>;\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 * @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 * @label With Selector\n * @param selector - Derives a value from the player store state.\n */\nexport function usePlayer<R>(selector: (state: UnknownState) => R): R;\nexport function usePlayer<R>(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<R>(selector: (state: UnknownState) => R): R | undefined;\nexport function useOptionalPlayer<R>(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 media attach setter for connecting a media element to the player. */\nexport function useMediaAttach(): Dispatch<SetStateAction<Media | null>> | 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<SetStateAction<HTMLElement | null>> | undefined {\n const ctx = useContext(PlayerContext);\n return ctx?.setContainer;\n}\n\nexport interface ContainerProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n}\n\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(function Container({ children, ...props }, ref) {\n const setContainer = useContainerAttach();\n const internalRef = useRef<HTMLDivElement>(null);\n const composedRef = useComposedRefs(ref, internalRef);\n\n useEffect(() => {\n setContainer?.(internalRef.current);\n return () => setContainer?.(null);\n }, [setContainer]);\n\n return (\n <div ref={composedRef} {...props}>\n {children}\n </div>\n );\n});\n\nexport namespace Container {\n export type Props = ContainerProps;\n}\n"],"mappings":";;;;;;;;AAkBA,MAAM,gBAAgB,cAAyC,KAAK;AACpE,MAAM,0BAA0B;AAChC,MAAM,cAAc;CAClB,OAAO,EAAE;CACT,iBAAiB;CAClB;AAED,SAAgB,sBAAsB,EACpC,OACA,YAIY;AACZ,QAAO,oBAAC,cAAc;EAAgB;EAAQ;GAAkC;;;AAIlF,SAAgB,mBAAuC;CACrD,MAAM,MAAM,WAAW,cAAc;AACrC,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM,yDAAyD;AACnF,QAAO;;AAgBT,SAAgB,UAAa,UAAuC;CAClE,MAAM,EAAE,UAAU,kBAAkB;AACpC,QAAO,SAAS,OAAO,SAAgB;;AAazC,SAAgB,kBAAqB,UAAuC;CAC1E,MAAM,MAAM,WAAW,cAAc;CAErC,MAAM,QAAQ,SADC,KAAK,SAAU,aACC,MAAM,WAAW,OAAkB;AAClE,QAAO,MAAM,QAAQ;;;AAIvB,SAAgB,WAAyB;CACvC,MAAM,EAAE,UAAU,kBAAkB;AACpC,QAAO;;;AAIT,SAAgB,eAAsC;CACpD,MAAM,EAAE,cAAc,kBAAkB;AACxC,QAAO;;;AAIT,SAAgB,iBAAqE;AAEnF,QADY,WAAW,cAAc,EACzB;;;AAId,SAAgB,qBAA+E;AAE7F,QADY,WAAW,cAAc,EACzB;;AAOd,MAAa,YAAY,WAA2C,SAAS,UAAU,EAAE,UAAU,GAAG,SAAS,KAAK;CAClH,MAAM,eAAe,oBAAoB;CACzC,MAAM,cAAc,OAAuB,KAAK;CAChD,MAAM,cAAc,gBAAgB,KAAK,YAAY;AAErD,iBAAgB;AACd,iBAAe,YAAY,QAAQ;AACnC,eAAa,eAAe,KAAK;IAChC,CAAC,aAAa,CAAC;AAElB,QACE,oBAAC;EAAI,KAAK;EAAa,GAAI;EACxB;GACG;EAER"}
|
|
@@ -4,7 +4,7 @@ import { Container, PlayerContextProvider, useMedia, usePlayerContext } from "./
|
|
|
4
4
|
import { useDestroy } from "../utils/use-destroy.js";
|
|
5
5
|
import { combine, createStore } from "@videojs/store";
|
|
6
6
|
import { useStore } from "@videojs/store/react";
|
|
7
|
-
import { useState } from "react";
|
|
7
|
+
import { useEffect, useState } from "react";
|
|
8
8
|
import { jsx } from "react/jsx-runtime";
|
|
9
9
|
|
|
10
10
|
//#region src/player/create-player.tsx
|
|
@@ -12,12 +12,26 @@ function createPlayer(config) {
|
|
|
12
12
|
function Provider({ children }) {
|
|
13
13
|
const [store] = useState(() => createStore()(combine(...config.features)));
|
|
14
14
|
const [media, setMedia] = useState(null);
|
|
15
|
+
const [container, setContainer] = useState(null);
|
|
15
16
|
useDestroy(store);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (!media) return;
|
|
19
|
+
return store.attach({
|
|
20
|
+
media,
|
|
21
|
+
container
|
|
22
|
+
});
|
|
23
|
+
}, [
|
|
24
|
+
media,
|
|
25
|
+
container,
|
|
26
|
+
store
|
|
27
|
+
]);
|
|
16
28
|
return /* @__PURE__ */ jsx(PlayerContextProvider, {
|
|
17
29
|
value: {
|
|
18
30
|
store,
|
|
19
31
|
media,
|
|
20
|
-
setMedia
|
|
32
|
+
setMedia,
|
|
33
|
+
container,
|
|
34
|
+
setContainer
|
|
21
35
|
},
|
|
22
36
|
children
|
|
23
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-player.js","names":[],"sources":["../../../src/player/create-player.tsx"],"sourcesContent":["'use client';\n\nimport type {\n AnyPlayerFeature,\n AnyPlayerStore,\n AudioFeatures,\n AudioPlayerStore,\n Media,\n PlayerStore,\n PlayerTarget,\n VideoFeatures,\n VideoPlayerStore,\n} from '@videojs/core/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 { useState } from 'react';\n\nimport { useDestroy } from '../utils/use-destroy';\nimport { Container, PlayerContextProvider, useMedia, usePlayerContext } from './context';\n\nexport interface CreatePlayerConfig<Features extends AnyPlayerFeature[]> {\n features: Features;\n displayName?: string;\n}\n\nexport interface ProviderProps {\n children: ReactNode;\n}\n\nexport interface CreatePlayerResult<Store extends PlayerStore> {\n Provider: FC<ProviderProps>;\n Container: typeof Container;\n usePlayer: UsePlayerHook<Store>;\n useMedia: () => Media | null;\n}\n\nexport type UsePlayerHook<Store extends PlayerStore> = {\n (): Store;\n <R>(selector: (state: InferStoreState<Store>) => 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<VideoFeatures>): CreatePlayerResult<VideoPlayerStore>;\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<AudioFeatures>): CreatePlayerResult<AudioPlayerStore>;\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<const Features extends AnyPlayerFeature[]>(\n config: CreatePlayerConfig<Features>\n): CreatePlayerResult<PlayerStore<Features>>;\n\nexport function createPlayer(config: CreatePlayerConfig<AnyPlayerFeature[]>): CreatePlayerResult<AnyPlayerStore> {\n function Provider({ children }: ProviderProps): ReactNode {\n const [store] = useState(() => createStore<PlayerTarget>()(combine(...config.features)));\n const [media, setMedia] = useState<Media | null>(null);\n\n useDestroy(store);\n\n return <PlayerContextProvider value={{ store, media, setMedia }}
|
|
1
|
+
{"version":3,"file":"create-player.js","names":[],"sources":["../../../src/player/create-player.tsx"],"sourcesContent":["'use client';\n\nimport type {\n AnyPlayerFeature,\n AnyPlayerStore,\n AudioFeatures,\n AudioPlayerStore,\n Media,\n PlayerStore,\n PlayerTarget,\n VideoFeatures,\n VideoPlayerStore,\n} from '@videojs/core/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, useState } from 'react';\n\nimport { useDestroy } from '../utils/use-destroy';\nimport { Container, PlayerContextProvider, useMedia, usePlayerContext } from './context';\n\nexport interface CreatePlayerConfig<Features extends AnyPlayerFeature[]> {\n features: Features;\n displayName?: string;\n}\n\nexport interface ProviderProps {\n children: ReactNode;\n}\n\nexport interface CreatePlayerResult<Store extends PlayerStore> {\n Provider: FC<ProviderProps>;\n Container: typeof Container;\n usePlayer: UsePlayerHook<Store>;\n useMedia: () => Media | null;\n}\n\nexport type UsePlayerHook<Store extends PlayerStore> = {\n (): Store;\n <R>(selector: (state: InferStoreState<Store>) => 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<VideoFeatures>): CreatePlayerResult<VideoPlayerStore>;\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<AudioFeatures>): CreatePlayerResult<AudioPlayerStore>;\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<const Features extends AnyPlayerFeature[]>(\n config: CreatePlayerConfig<Features>\n): CreatePlayerResult<PlayerStore<Features>>;\n\nexport function createPlayer(config: CreatePlayerConfig<AnyPlayerFeature[]>): CreatePlayerResult<AnyPlayerStore> {\n function Provider({ children }: ProviderProps): ReactNode {\n const [store] = useState(() => createStore<PlayerTarget>()(combine(...config.features)));\n const [media, setMedia] = useState<Media | null>(null);\n const [container, setContainer] = useState<HTMLElement | null>(null);\n\n useDestroy(store);\n\n useEffect(() => {\n if (!media) return;\n return store.attach({ media, container });\n }, [media, container, store]);\n\n return (\n <PlayerContextProvider value={{ store, media, setMedia, container, setContainer }}>\n {children}\n </PlayerContextProvider>\n );\n }\n\n if (__DEV__ && config.displayName) {\n Provider.displayName = `${config.displayName}.Provider`;\n }\n\n function usePlayer<R>(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":";;;;;;;;;;AAqEA,SAAgB,aAAa,QAAoF;CAC/G,SAAS,SAAS,EAAE,YAAsC;EACxD,MAAM,CAAC,SAAS,eAAe,aAA2B,CAAC,QAAQ,GAAG,OAAO,SAAS,CAAC,CAAC;EACxF,MAAM,CAAC,OAAO,YAAY,SAAuB,KAAK;EACtD,MAAM,CAAC,WAAW,gBAAgB,SAA6B,KAAK;AAEpE,aAAW,MAAM;AAEjB,kBAAgB;AACd,OAAI,CAAC,MAAO;AACZ,UAAO,MAAM,OAAO;IAAE;IAAO;IAAW,CAAC;KACxC;GAAC;GAAO;GAAW;GAAM,CAAC;AAE7B,SACE,oBAAC;GAAsB,OAAO;IAAE;IAAO;IAAO;IAAU;IAAW;IAAc;GAC9E;IACqB;;CAQ5B,SAAS,UAAa,UAAqD;EACzE,MAAM,EAAE,UAAU,kBAAkB;AACpC,SAAO,SAAS,OAAO,SAAgB;;AAGzC,QAAO;EACL;EACA;EACA;EACA;EACD"}
|
|
@@ -70,7 +70,6 @@
|
|
|
70
70
|
.media-minimal-skin *::before,
|
|
71
71
|
.media-minimal-skin *::after {
|
|
72
72
|
box-sizing: border-box;
|
|
73
|
-
margin: 0;
|
|
74
73
|
}
|
|
75
74
|
.media-minimal-skin img,
|
|
76
75
|
.media-minimal-skin video,
|
|
@@ -153,7 +152,7 @@
|
|
|
153
152
|
color: oklch(1 0 0);
|
|
154
153
|
font-size: 0.875rem;
|
|
155
154
|
text-shadow: 0 1px 0 oklch(0 0 0 / 0.5);
|
|
156
|
-
transition-property: opacity,
|
|
155
|
+
transition-property: opacity, scale;
|
|
157
156
|
transition-duration: 500ms;
|
|
158
157
|
transition-delay: 100ms;
|
|
159
158
|
transition-timing-function: linear(
|
|
@@ -179,7 +178,7 @@
|
|
|
179
178
|
.media-minimal-skin .media-error[data-starting-style] .media-error__dialog,
|
|
180
179
|
.media-minimal-skin .media-error[data-ending-style] .media-error__dialog {
|
|
181
180
|
opacity: 0;
|
|
182
|
-
|
|
181
|
+
scale: 0.5;
|
|
183
182
|
}
|
|
184
183
|
|
|
185
184
|
.media-minimal-skin .media-error__content {
|
|
@@ -196,6 +195,7 @@
|
|
|
196
195
|
|
|
197
196
|
.media-minimal-skin .media-error__description {
|
|
198
197
|
opacity: 0.7;
|
|
198
|
+
overflow-wrap: anywhere;
|
|
199
199
|
}
|
|
200
200
|
|
|
201
201
|
.media-minimal-skin .media-error__actions {
|
|
@@ -215,12 +215,12 @@
|
|
|
215
215
|
container: media-controls / inline-size;
|
|
216
216
|
display: flex;
|
|
217
217
|
align-items: center;
|
|
218
|
-
--media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.
|
|
218
|
+
--media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));
|
|
219
219
|
--media-controls-current-shadow-color-subtle: oklch(
|
|
220
220
|
from var(--media-controls-current-shadow-color) l c h /
|
|
221
221
|
calc(alpha * 0.4)
|
|
222
222
|
);
|
|
223
|
-
text-shadow: 0 0
|
|
223
|
+
text-shadow: 0 1px 0 var(--media-controls-current-shadow-color);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
/* ==========================================================================
|
|
@@ -294,11 +294,12 @@
|
|
|
294
294
|
font-weight: 500;
|
|
295
295
|
text-align: center;
|
|
296
296
|
text-shadow: inherit;
|
|
297
|
-
transition-property: background-color, color, outline-offset,
|
|
297
|
+
transition-property: background-color, color, outline-offset, scale;
|
|
298
298
|
transition-duration: 150ms;
|
|
299
299
|
transition-timing-function: ease-out;
|
|
300
300
|
cursor: pointer;
|
|
301
301
|
user-select: none;
|
|
302
|
+
touch-action: manipulation;
|
|
302
303
|
|
|
303
304
|
&:focus-visible {
|
|
304
305
|
outline-color: currentColor;
|
|
@@ -333,7 +334,7 @@
|
|
|
333
334
|
}
|
|
334
335
|
|
|
335
336
|
&:active {
|
|
336
|
-
|
|
337
|
+
scale: 0.9;
|
|
337
338
|
}
|
|
338
339
|
|
|
339
340
|
& .media-icon {
|
|
@@ -407,6 +408,7 @@
|
|
|
407
408
|
flex: 1;
|
|
408
409
|
border-radius: calc(infinity * 1px);
|
|
409
410
|
outline: none;
|
|
411
|
+
cursor: pointer;
|
|
410
412
|
|
|
411
413
|
&[data-orientation="horizontal"] {
|
|
412
414
|
min-width: 5rem;
|
|
@@ -443,7 +445,7 @@
|
|
|
443
445
|
/* Thumb */
|
|
444
446
|
.media-minimal-skin .media-slider__thumb {
|
|
445
447
|
position: absolute;
|
|
446
|
-
|
|
448
|
+
translate: -50% -50%;
|
|
447
449
|
z-index: 10;
|
|
448
450
|
width: 0.75rem;
|
|
449
451
|
height: 0.75rem;
|
|
@@ -536,11 +538,6 @@
|
|
|
536
538
|
}
|
|
537
539
|
}
|
|
538
540
|
|
|
539
|
-
/* Time display within slider */
|
|
540
|
-
.media-minimal-skin .media-slider__time-display {
|
|
541
|
-
font-variant-numeric: tabular-nums;
|
|
542
|
-
}
|
|
543
|
-
|
|
544
541
|
/* ==========================================================================
|
|
545
542
|
Popups & Animations
|
|
546
543
|
========================================================================== */
|
|
@@ -551,13 +548,13 @@
|
|
|
551
548
|
border: 0;
|
|
552
549
|
color: inherit;
|
|
553
550
|
overflow: visible;
|
|
554
|
-
transition-property:
|
|
555
|
-
transition-duration:
|
|
551
|
+
transition-property: scale, opacity, filter;
|
|
552
|
+
transition-duration: 150ms;
|
|
556
553
|
|
|
557
554
|
&[data-starting-style],
|
|
558
555
|
&[data-ending-style] {
|
|
559
556
|
opacity: 0;
|
|
560
|
-
|
|
557
|
+
scale: 0.5;
|
|
561
558
|
filter: blur(8px);
|
|
562
559
|
}
|
|
563
560
|
|
|
@@ -577,6 +574,48 @@
|
|
|
577
574
|
&[data-side="right"] {
|
|
578
575
|
transform-origin: left;
|
|
579
576
|
}
|
|
577
|
+
|
|
578
|
+
/* Safe area between trigger and popup */
|
|
579
|
+
&::before {
|
|
580
|
+
content: "";
|
|
581
|
+
position: absolute;
|
|
582
|
+
pointer-events: inherit;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
&[data-side="top"]::before,
|
|
586
|
+
&[data-side="bottom"]::before {
|
|
587
|
+
width: 100%;
|
|
588
|
+
inset-inline: 0;
|
|
589
|
+
}
|
|
590
|
+
&[data-side="top"]::before {
|
|
591
|
+
top: 100%;
|
|
592
|
+
}
|
|
593
|
+
&[data-side="bottom"]::before {
|
|
594
|
+
bottom: 100%;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
&[data-side="left"]::before,
|
|
598
|
+
&[data-side="right"]::before {
|
|
599
|
+
height: 100%;
|
|
600
|
+
inset-block: 0;
|
|
601
|
+
}
|
|
602
|
+
&[data-side="left"]::before {
|
|
603
|
+
left: 100%;
|
|
604
|
+
}
|
|
605
|
+
&[data-side="right"]::before {
|
|
606
|
+
right: 100%;
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.media-minimal-skin .media-popover {
|
|
611
|
+
&[data-side="top"]::before,
|
|
612
|
+
&[data-side="bottom"]::before {
|
|
613
|
+
height: var(--media-popover-side-offset);
|
|
614
|
+
}
|
|
615
|
+
&[data-side="left"]::before,
|
|
616
|
+
&[data-side="right"]::before {
|
|
617
|
+
width: var(--media-popover-side-offset);
|
|
618
|
+
}
|
|
580
619
|
}
|
|
581
620
|
|
|
582
621
|
.media-minimal-skin .media-tooltip {
|
|
@@ -589,7 +628,16 @@
|
|
|
589
628
|
0 2px 4px -2px oklch(0 0 0 / 0.1);
|
|
590
629
|
font-size: 0.75rem;
|
|
591
630
|
white-space: nowrap;
|
|
592
|
-
--media-tooltip-side-offset: 0.
|
|
631
|
+
--media-tooltip-side-offset: 0.75rem;
|
|
632
|
+
|
|
633
|
+
&[data-side="top"]::before,
|
|
634
|
+
&[data-side="bottom"]::before {
|
|
635
|
+
height: var(--media-tooltip-side-offset);
|
|
636
|
+
}
|
|
637
|
+
&[data-side="left"]::before,
|
|
638
|
+
&[data-side="right"]::before {
|
|
639
|
+
width: var(--media-tooltip-side-offset);
|
|
640
|
+
}
|
|
593
641
|
|
|
594
642
|
@media (prefers-reduced-transparency: reduce) {
|
|
595
643
|
background-color: oklch(0 0 0 / 0.7);
|
|
@@ -600,22 +648,31 @@
|
|
|
600
648
|
}
|
|
601
649
|
}
|
|
602
650
|
|
|
651
|
+
.media-minimal-skin .media-popover--volume:has(media-volume-slider[data-availability="unsupported"]) {
|
|
652
|
+
display: none;
|
|
653
|
+
}
|
|
654
|
+
|
|
603
655
|
|
|
604
656
|
/* ==========================================================================
|
|
605
|
-
|
|
657
|
+
Root
|
|
606
658
|
========================================================================== */
|
|
607
659
|
|
|
608
660
|
.media-minimal-skin--audio {
|
|
609
661
|
--media-controls-background-color: oklch(1 0 0);
|
|
610
662
|
--media-controls-border-color: oklch(0 0 0 / 0.1);
|
|
611
|
-
--media-controls-text-color: oklch(0 0 0);
|
|
663
|
+
--media-controls-text-color: var(--media-color-primary, oklch(0 0 0));
|
|
612
664
|
|
|
613
665
|
@media (prefers-color-scheme: dark) {
|
|
614
666
|
--media-controls-background-color: oklch(0 0 0);
|
|
615
667
|
--media-controls-border-color: oklch(1 0 0 / 0.1);
|
|
616
|
-
--media-controls-text-color: oklch(1 0 0);
|
|
668
|
+
--media-controls-text-color: var(--media-color-primary, oklch(1 0 0));
|
|
617
669
|
}
|
|
618
670
|
}
|
|
671
|
+
|
|
672
|
+
/* ==========================================================================
|
|
673
|
+
Controls
|
|
674
|
+
========================================================================== */
|
|
675
|
+
|
|
619
676
|
.media-minimal-skin--audio .media-controls {
|
|
620
677
|
gap: 0.5rem;
|
|
621
678
|
padding: 0.375rem;
|