@hanifhan1f/vidstack 1.12.13
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/.templates/sandbox/favicon-32x32.png +0 -0
- package/.templates/sandbox/index.html +42 -0
- package/.templates/sandbox/main.ts +137 -0
- package/.templates/sandbox/styles.css +68 -0
- package/LICENSE +21 -0
- package/README.md +22 -0
- package/analyze.config.ts +133 -0
- package/build/build-styles.js +33 -0
- package/build/rollup-decorators.ts +102 -0
- package/build/rollup-minify.js +20 -0
- package/build/rollup-ts.js +57 -0
- package/npm/analyze.json.d.ts +8 -0
- package/npm/bundle.d.ts +1 -0
- package/npm/dom.d.ts +91 -0
- package/npm/empty.vtt +1 -0
- package/npm/google-cast.d.ts +1422 -0
- package/npm/player/index.d.ts +3 -0
- package/npm/player/layouts/default.d.ts +3 -0
- package/npm/player/layouts/index.d.ts +3 -0
- package/npm/player/layouts/plyr.d.ts +3 -0
- package/npm/player/ui.d.ts +3 -0
- package/npm/tailwind.cjs +101 -0
- package/npm/tailwind.d.cts +15 -0
- package/package.json +283 -0
- package/rollup.config.ts +442 -0
- package/src/components/aria/announcer.ts +181 -0
- package/src/components/layouts/default/audio-layout.ts +20 -0
- package/src/components/layouts/default/context.ts +15 -0
- package/src/components/layouts/default/default-layout.ts +67 -0
- package/src/components/layouts/default/props.ts +143 -0
- package/src/components/layouts/default/translations.ts +70 -0
- package/src/components/layouts/default/video-layout.ts +20 -0
- package/src/components/layouts/plyr/context.ts +13 -0
- package/src/components/layouts/plyr/plyr-layout.ts +90 -0
- package/src/components/layouts/plyr/props.ts +114 -0
- package/src/components/layouts/plyr/translations.ts +53 -0
- package/src/components/player.ts +758 -0
- package/src/components/provider/provider.ts +184 -0
- package/src/components/provider/source-select.ts +378 -0
- package/src/components/provider/tracks.ts +37 -0
- package/src/components/ui/buttons/airplay-button.ts +74 -0
- package/src/components/ui/buttons/caption-button.ts +68 -0
- package/src/components/ui/buttons/fullscreen-button.ts +90 -0
- package/src/components/ui/buttons/google-cast-button.ts +75 -0
- package/src/components/ui/buttons/live-button.ts +76 -0
- package/src/components/ui/buttons/mute-button.ts +69 -0
- package/src/components/ui/buttons/pip-button.ts +71 -0
- package/src/components/ui/buttons/play-button.ts +62 -0
- package/src/components/ui/buttons/seek-button.ts +92 -0
- package/src/components/ui/buttons/toggle-button-controller.ts +92 -0
- package/src/components/ui/buttons/toggle-button.ts +49 -0
- package/src/components/ui/captions/captions-renderer.ts +63 -0
- package/src/components/ui/captions/captions.ts +227 -0
- package/src/components/ui/controls-group.ts +13 -0
- package/src/components/ui/controls.ts +101 -0
- package/src/components/ui/gesture.ts +252 -0
- package/src/components/ui/menu/menu-button.ts +95 -0
- package/src/components/ui/menu/menu-context.ts +27 -0
- package/src/components/ui/menu/menu-focus-controller.ts +205 -0
- package/src/components/ui/menu/menu-item.ts +9 -0
- package/src/components/ui/menu/menu-items.ts +129 -0
- package/src/components/ui/menu/menu-portal.ts +105 -0
- package/src/components/ui/menu/menu.ts +612 -0
- package/src/components/ui/menu/radio/radio-controller.ts +18 -0
- package/src/components/ui/menu/radio/radio-group-controller.ts +81 -0
- package/src/components/ui/menu/radio/radio-group.ts +78 -0
- package/src/components/ui/menu/radio/radio.ts +151 -0
- package/src/components/ui/menu/radio-groups/audio-gain-radio-group.ts +116 -0
- package/src/components/ui/menu/radio-groups/audio-radio-group.ts +121 -0
- package/src/components/ui/menu/radio-groups/captions-radio-group.ts +153 -0
- package/src/components/ui/menu/radio-groups/chapters-radio-group.ts +211 -0
- package/src/components/ui/menu/radio-groups/quality-radio-group.ts +181 -0
- package/src/components/ui/menu/radio-groups/speed-radio-group.ts +112 -0
- package/src/components/ui/popper/popper.ts +103 -0
- package/src/components/ui/poster.ts +187 -0
- package/src/components/ui/sliders/audio-gain-slider.ts +150 -0
- package/src/components/ui/sliders/quality-slider.ts +148 -0
- package/src/components/ui/sliders/slider/api/cssvars.ts +10 -0
- package/src/components/ui/sliders/slider/api/events.ts +65 -0
- package/src/components/ui/sliders/slider/api/state.ts +101 -0
- package/src/components/ui/sliders/slider/events-controller.ts +383 -0
- package/src/components/ui/sliders/slider/format.ts +12 -0
- package/src/components/ui/sliders/slider/slider-context.ts +18 -0
- package/src/components/ui/sliders/slider/slider-controller.ts +211 -0
- package/src/components/ui/sliders/slider/slider.ts +94 -0
- package/src/components/ui/sliders/slider/types.ts +1 -0
- package/src/components/ui/sliders/slider/utils.ts +14 -0
- package/src/components/ui/sliders/slider-preview.ts +131 -0
- package/src/components/ui/sliders/slider-thumbnail.ts +28 -0
- package/src/components/ui/sliders/slider-value.ts +122 -0
- package/src/components/ui/sliders/slider-video.ts +198 -0
- package/src/components/ui/sliders/speed-slider.ts +147 -0
- package/src/components/ui/sliders/time-slider/slider-chapters.ts +444 -0
- package/src/components/ui/sliders/time-slider/time-slider.ts +319 -0
- package/src/components/ui/sliders/volume-slider.ts +145 -0
- package/src/components/ui/thumbnails/thumbnail-loader.ts +324 -0
- package/src/components/ui/thumbnails/thumbnail.ts +244 -0
- package/src/components/ui/time.ts +191 -0
- package/src/components/ui/tooltip/tooltip-content.ts +105 -0
- package/src/components/ui/tooltip/tooltip-context.ts +13 -0
- package/src/components/ui/tooltip/tooltip-trigger.ts +49 -0
- package/src/components/ui/tooltip/tooltip.ts +127 -0
- package/src/core/api/media-attrs.ts +35 -0
- package/src/core/api/media-context.ts +52 -0
- package/src/core/api/media-events.ts +601 -0
- package/src/core/api/media-request-events.ts +323 -0
- package/src/core/api/player-controller.ts +10 -0
- package/src/core/api/player-events.ts +49 -0
- package/src/core/api/player-props.ts +233 -0
- package/src/core/api/player-state.ts +940 -0
- package/src/core/api/src-types.ts +97 -0
- package/src/core/api/types.ts +69 -0
- package/src/core/controls.ts +251 -0
- package/src/core/font/font-options.ts +106 -0
- package/src/core/font/font-vars.ts +107 -0
- package/src/core/keyboard/aria-shortcuts.ts +42 -0
- package/src/core/keyboard/controller.ts +302 -0
- package/src/core/keyboard/types.ts +40 -0
- package/src/core/quality/events.ts +48 -0
- package/src/core/quality/symbols.ts +8 -0
- package/src/core/quality/utils.ts +13 -0
- package/src/core/quality/video-quality.ts +86 -0
- package/src/core/state/media-events-logger.ts +67 -0
- package/src/core/state/media-load-controller.ts +40 -0
- package/src/core/state/media-player-delegate.ts +170 -0
- package/src/core/state/media-request-manager.ts +952 -0
- package/src/core/state/media-state-manager.ts +1077 -0
- package/src/core/state/media-state-sync.ts +162 -0
- package/src/core/state/media-storage.ts +196 -0
- package/src/core/state/navigator-media-session.ts +62 -0
- package/src/core/state/remote-control.ts +584 -0
- package/src/core/state/tracked-media-events.ts +22 -0
- package/src/core/time-ranges.ts +130 -0
- package/src/core/tracks/audio/audio-tracks.ts +33 -0
- package/src/core/tracks/audio/events.ts +41 -0
- package/src/core/tracks/text/events.ts +52 -0
- package/src/core/tracks/text/render/libass-text-renderer.ts +246 -0
- package/src/core/tracks/text/render/native-text-renderer.ts +106 -0
- package/src/core/tracks/text/render/text-renderer.ts +134 -0
- package/src/core/tracks/text/symbols.ts +17 -0
- package/src/core/tracks/text/text-track.test.ts +407 -0
- package/src/core/tracks/text/text-track.ts +413 -0
- package/src/core/tracks/text/text-tracks.ts +210 -0
- package/src/core/tracks/text/utils.ts +85 -0
- package/src/elements/bundles/cdn/player.core.ts +6 -0
- package/src/elements/bundles/cdn/player.ts +8 -0
- package/src/elements/bundles/cdn/plyr.ts +6 -0
- package/src/elements/bundles/cdn-legacy/player-with-default.ts +4 -0
- package/src/elements/bundles/cdn-legacy/player-with-layouts.ts +4 -0
- package/src/elements/bundles/cdn-legacy/player-with-plyr.ts +3 -0
- package/src/elements/bundles/cdn-legacy/player.ts +3 -0
- package/src/elements/bundles/icons.ts +3 -0
- package/src/elements/bundles/player-layouts/default.ts +7 -0
- package/src/elements/bundles/player-layouts/index.ts +9 -0
- package/src/elements/bundles/player-layouts/plyr.ts +65 -0
- package/src/elements/bundles/player-ui.ts +108 -0
- package/src/elements/bundles/player.ts +7 -0
- package/src/elements/define/announcer-element.ts +20 -0
- package/src/elements/define/buttons/airplay-button-element.ts +21 -0
- package/src/elements/define/buttons/caption-button-element.ts +22 -0
- package/src/elements/define/buttons/fullscreen-button-element.ts +22 -0
- package/src/elements/define/buttons/google-cast-button-element.ts +21 -0
- package/src/elements/define/buttons/live-button-element.ts +22 -0
- package/src/elements/define/buttons/mute-button-element.ts +23 -0
- package/src/elements/define/buttons/pip-button-element.ts +22 -0
- package/src/elements/define/buttons/play-button-element.ts +23 -0
- package/src/elements/define/buttons/seek-button-element.ts +26 -0
- package/src/elements/define/buttons/toggle-button-element.ts +21 -0
- package/src/elements/define/captions-element.ts +20 -0
- package/src/elements/define/chapter-title-element.ts +54 -0
- package/src/elements/define/controls-element.ts +26 -0
- package/src/elements/define/controls-group-element.ts +26 -0
- package/src/elements/define/gesture-element.ts +24 -0
- package/src/elements/define/layouts/default/audio-layout-element.ts +137 -0
- package/src/elements/define/layouts/default/audio-layout.ts +113 -0
- package/src/elements/define/layouts/default/icons-loader.ts +17 -0
- package/src/elements/define/layouts/default/icons.ts +86 -0
- package/src/elements/define/layouts/default/slots.ts +12 -0
- package/src/elements/define/layouts/default/ui/announcer.ts +14 -0
- package/src/elements/define/layouts/default/ui/buttons.ts +291 -0
- package/src/elements/define/layouts/default/ui/captions.ts +14 -0
- package/src/elements/define/layouts/default/ui/controls.ts +5 -0
- package/src/elements/define/layouts/default/ui/keyboard-display.ts +114 -0
- package/src/elements/define/layouts/default/ui/menu/accessibility-menu.ts +79 -0
- package/src/elements/define/layouts/default/ui/menu/audio-menu.ts +135 -0
- package/src/elements/define/layouts/default/ui/menu/captions-menu.ts +114 -0
- package/src/elements/define/layouts/default/ui/menu/chapters-menu.ts +117 -0
- package/src/elements/define/layouts/default/ui/menu/episodes-menu.ts +133 -0
- package/src/elements/define/layouts/default/ui/menu/font-menu.ts +253 -0
- package/src/elements/define/layouts/default/ui/menu/items/menu-checkbox.ts +67 -0
- package/src/elements/define/layouts/default/ui/menu/items/menu-items.ts +108 -0
- package/src/elements/define/layouts/default/ui/menu/items/menu-slider.ts +59 -0
- package/src/elements/define/layouts/default/ui/menu/menu-portal.ts +56 -0
- package/src/elements/define/layouts/default/ui/menu/playback-menu.ts +183 -0
- package/src/elements/define/layouts/default/ui/menu/settings-menu.ts +98 -0
- package/src/elements/define/layouts/default/ui/slider.ts +112 -0
- package/src/elements/define/layouts/default/ui/time.ts +41 -0
- package/src/elements/define/layouts/default/ui/title.ts +25 -0
- package/src/elements/define/layouts/default/ui/utils.ts +10 -0
- package/src/elements/define/layouts/default/video-layout-element.ts +125 -0
- package/src/elements/define/layouts/default/video-layout.ts +353 -0
- package/src/elements/define/layouts/icons/icons-loader.ts +47 -0
- package/src/elements/define/layouts/icons/layout-icons-loader.ts +24 -0
- package/src/elements/define/layouts/layout-element.ts +78 -0
- package/src/elements/define/layouts/layout-name.ts +15 -0
- package/src/elements/define/layouts/plyr/icons/plyr-airplay.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-captions-off.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-captions-on.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-download.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-fast-forward.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-muted.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-pause.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-pip.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-play.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-restart.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-rewind.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-settings.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-volume.js +1 -0
- package/src/elements/define/layouts/plyr/icons-loader.ts +21 -0
- package/src/elements/define/layouts/plyr/icons.ts +34 -0
- package/src/elements/define/layouts/plyr/plyr-layout-element.ts +67 -0
- package/src/elements/define/layouts/plyr/ui.ts +657 -0
- package/src/elements/define/layouts/slot-manager.ts +61 -0
- package/src/elements/define/layouts/slot-observer.ts +70 -0
- package/src/elements/define/menus/_template.ts +47 -0
- package/src/elements/define/menus/audio-gain-group-element.ts +37 -0
- package/src/elements/define/menus/audio-radio-group-element.ts +37 -0
- package/src/elements/define/menus/captions-radio-group-element.ts +37 -0
- package/src/elements/define/menus/chapters-radio-group-element.ts +68 -0
- package/src/elements/define/menus/menu-button-element.ts +27 -0
- package/src/elements/define/menus/menu-element.ts +28 -0
- package/src/elements/define/menus/menu-item-element.ts +24 -0
- package/src/elements/define/menus/menu-items-element.ts +27 -0
- package/src/elements/define/menus/menu-portal-element.ts +35 -0
- package/src/elements/define/menus/quality-radio-group-element.ts +51 -0
- package/src/elements/define/menus/radio-element.ts +24 -0
- package/src/elements/define/menus/radio-group-element.ts +24 -0
- package/src/elements/define/menus/speed-radio-group-element.ts +37 -0
- package/src/elements/define/player-element.ts +33 -0
- package/src/elements/define/poster-element.ts +53 -0
- package/src/elements/define/provider-cast-display.ts +36 -0
- package/src/elements/define/provider-element.ts +158 -0
- package/src/elements/define/sliders/audio-gain-slider-element.ts +34 -0
- package/src/elements/define/sliders/quality-slider-element.ts +34 -0
- package/src/elements/define/sliders/slider-chapters-element.ts +53 -0
- package/src/elements/define/sliders/slider-element.ts +25 -0
- package/src/elements/define/sliders/slider-preview-element.ts +16 -0
- package/src/elements/define/sliders/slider-steps-element.ts +50 -0
- package/src/elements/define/sliders/slider-thumbnail-element.ts +48 -0
- package/src/elements/define/sliders/slider-value-element.ts +49 -0
- package/src/elements/define/sliders/slider-video-element.ts +59 -0
- package/src/elements/define/sliders/speed-slider-element.ts +34 -0
- package/src/elements/define/sliders/time-slider-element.ts +34 -0
- package/src/elements/define/sliders/volume-slider-element.ts +34 -0
- package/src/elements/define/spinner-element.ts +96 -0
- package/src/elements/define/thumbnail-element.ts +63 -0
- package/src/elements/define/time-element.ts +32 -0
- package/src/elements/define/title-element.ts +38 -0
- package/src/elements/define/tooltips/tooltip-content-element.ts +28 -0
- package/src/elements/define/tooltips/tooltip-element.ts +28 -0
- package/src/elements/define/tooltips/tooltip-trigger-element.ts +32 -0
- package/src/elements/icon.ts +30 -0
- package/src/elements/index.ts +71 -0
- package/src/elements/lit/directives/signal.ts +80 -0
- package/src/elements/lit/html.ts +11 -0
- package/src/elements/lit/lit-element.ts +23 -0
- package/src/elements/state-controller.ts +48 -0
- package/src/exports/components.ts +79 -0
- package/src/exports/core.ts +41 -0
- package/src/exports/events.ts +46 -0
- package/src/exports/font.ts +3 -0
- package/src/exports/foundation.ts +8 -0
- package/src/exports/maverick.ts +9 -0
- package/src/exports/providers.ts +42 -0
- package/src/exports/utils.ts +18 -0
- package/src/foundation/fullscreen/controller.ts +128 -0
- package/src/foundation/fullscreen/events.ts +26 -0
- package/src/foundation/list/list.ts +127 -0
- package/src/foundation/list/select-list.ts +86 -0
- package/src/foundation/list/symbols.ts +22 -0
- package/src/foundation/logger/colors.ts +33 -0
- package/src/foundation/logger/controller.ts +71 -0
- package/src/foundation/logger/events.ts +29 -0
- package/src/foundation/logger/grouped-log.ts +44 -0
- package/src/foundation/logger/log-level.ts +17 -0
- package/src/foundation/logger/log-printer.ts +119 -0
- package/src/foundation/logger/ms.ts +31 -0
- package/src/foundation/observers/focus-visible.ts +74 -0
- package/src/foundation/observers/intersection-observer.ts +60 -0
- package/src/foundation/observers/page-visibility.ts +105 -0
- package/src/foundation/observers/raf-loop.ts +29 -0
- package/src/foundation/orientation/controller.ts +139 -0
- package/src/foundation/orientation/events.ts +20 -0
- package/src/foundation/orientation/types.ts +96 -0
- package/src/foundation/queue/queue.ts +41 -0
- package/src/foundation/queue/request-queue.test.ts +139 -0
- package/src/foundation/queue/request-queue.ts +94 -0
- package/src/global/layouts/default.ts +28 -0
- package/src/global/layouts/loader.ts +5 -0
- package/src/global/layouts/plyr.ts +24 -0
- package/src/global/player.ts +144 -0
- package/src/global/plyr.ts +917 -0
- package/src/globals.d.ts +11 -0
- package/src/index.ts +10 -0
- package/src/plugins.ts +369 -0
- package/src/providers/audio/loader.ts +45 -0
- package/src/providers/audio/provider.ts +50 -0
- package/src/providers/dash/dash.ts +417 -0
- package/src/providers/dash/events.ts +585 -0
- package/src/providers/dash/lib-loader.ts +202 -0
- package/src/providers/dash/loader.ts +33 -0
- package/src/providers/dash/provider.ts +135 -0
- package/src/providers/dash/types.ts +21 -0
- package/src/providers/embed/EmbedProvider.ts +84 -0
- package/src/providers/google-cast/events.ts +53 -0
- package/src/providers/google-cast/loader.ts +174 -0
- package/src/providers/google-cast/media-info.ts +49 -0
- package/src/providers/google-cast/provider.ts +483 -0
- package/src/providers/google-cast/tracks.ts +170 -0
- package/src/providers/google-cast/types.ts +3 -0
- package/src/providers/google-cast/utils.ts +112 -0
- package/src/providers/hls/events.ts +472 -0
- package/src/providers/hls/hls.ts +290 -0
- package/src/providers/hls/lib-loader.ts +178 -0
- package/src/providers/hls/loader.ts +33 -0
- package/src/providers/hls/provider.ts +137 -0
- package/src/providers/hls/types.ts +10 -0
- package/src/providers/html/audio/audio-context.ts +60 -0
- package/src/providers/html/audio/audio-gain.ts +100 -0
- package/src/providers/html/html/342/200/223media-events.ts +338 -0
- package/src/providers/html/native-audio-tracks.ts +91 -0
- package/src/providers/html/provider.ts +141 -0
- package/src/providers/html/remote-playback.ts +94 -0
- package/src/providers/type-check.ts +61 -0
- package/src/providers/types.ts +95 -0
- package/src/providers/video/loader.ts +45 -0
- package/src/providers/video/native-hls-text-tracks.ts +69 -0
- package/src/providers/video/picture-in-picture.ts +54 -0
- package/src/providers/video/presentation/events.ts +12 -0
- package/src/providers/video/presentation/video-presentation.ts +110 -0
- package/src/providers/video/provider.ts +91 -0
- package/src/providers/vimeo/embed/command.ts +118 -0
- package/src/providers/vimeo/embed/event.ts +124 -0
- package/src/providers/vimeo/embed/message.ts +9 -0
- package/src/providers/vimeo/embed/misc.ts +57 -0
- package/src/providers/vimeo/embed/params.ts +168 -0
- package/src/providers/vimeo/loader.ts +61 -0
- package/src/providers/vimeo/provider.ts +730 -0
- package/src/providers/vimeo/utils.ts +53 -0
- package/src/providers/youtube/embed/command.ts +21 -0
- package/src/providers/youtube/embed/event.ts +1 -0
- package/src/providers/youtube/embed/message.ts +54 -0
- package/src/providers/youtube/embed/params.ts +238 -0
- package/src/providers/youtube/embed/quality.ts +35 -0
- package/src/providers/youtube/embed/state.ts +13 -0
- package/src/providers/youtube/loader.ts +61 -0
- package/src/providers/youtube/provider.ts +403 -0
- package/src/providers/youtube/utils.ts +45 -0
- package/src/tailwind.test.ts +413 -0
- package/src/test-utils/index.ts +22 -0
- package/src/test-utils/setup.ts +3 -0
- package/src/utils/aria.ts +14 -0
- package/src/utils/array.ts +3 -0
- package/src/utils/color.ts +5 -0
- package/src/utils/dom.ts +458 -0
- package/src/utils/error.ts +11 -0
- package/src/utils/language.ts +16 -0
- package/src/utils/manifest.ts +61 -0
- package/src/utils/mime.ts +101 -0
- package/src/utils/network.ts +118 -0
- package/src/utils/number.ts +25 -0
- package/src/utils/promise.ts +12 -0
- package/src/utils/scroll.ts +19 -0
- package/src/utils/support.ts +163 -0
- package/src/utils/time.test.ts +111 -0
- package/src/utils/time.ts +123 -0
- package/styles/player/base.css +153 -0
- package/styles/player/default/buffering.css +55 -0
- package/styles/player/default/buttons.css +175 -0
- package/styles/player/default/captions.css +181 -0
- package/styles/player/default/chapter-title.css +26 -0
- package/styles/player/default/controls.css +56 -0
- package/styles/player/default/gestures.css +19 -0
- package/styles/player/default/icons.css +6 -0
- package/styles/player/default/keyboard.css +148 -0
- package/styles/player/default/layouts/audio.css +417 -0
- package/styles/player/default/layouts/video.css +1082 -0
- package/styles/player/default/menus.css +959 -0
- package/styles/player/default/poster.css +52 -0
- package/styles/player/default/sliders.css +391 -0
- package/styles/player/default/theme.css +2461 -0
- package/styles/player/default/thumbnail.css +40 -0
- package/styles/player/default/time.css +45 -0
- package/styles/player/default/tooltips.css +141 -0
- package/styles/player/plyr/theme.css +1237 -0
- package/tsconfig.build.json +9 -0
- package/tsconfig.json +11 -0
- package/types/components/aria/announcer.d.ts +27 -0
- package/types/components/layouts/default/audio-layout.d.ts +15 -0
- package/types/components/layouts/default/context.d.ts +9 -0
- package/types/components/layouts/default/default-layout.d.ts +10 -0
- package/types/components/layouts/default/props.d.ts +125 -0
- package/types/components/layouts/default/translations.d.ts +6 -0
- package/types/components/layouts/default/video-layout.d.ts +15 -0
- package/types/components/layouts/plyr/context.d.ts +7 -0
- package/types/components/layouts/plyr/plyr-layout.d.ts +9 -0
- package/types/components/layouts/plyr/props.d.ts +68 -0
- package/types/components/layouts/plyr/translations.d.ts +6 -0
- package/types/components/player.d.ts +214 -0
- package/types/components/provider/provider.d.ts +24 -0
- package/types/components/provider/source-select.d.ts +10 -0
- package/types/components/provider/tracks.d.ts +7 -0
- package/types/components/ui/buttons/airplay-button.d.ts +23 -0
- package/types/components/ui/buttons/caption-button.d.ts +21 -0
- package/types/components/ui/buttons/fullscreen-button.d.ts +28 -0
- package/types/components/ui/buttons/google-cast-button.d.ts +23 -0
- package/types/components/ui/buttons/live-button.d.ts +30 -0
- package/types/components/ui/buttons/mute-button.d.ts +21 -0
- package/types/components/ui/buttons/pip-button.d.ts +22 -0
- package/types/components/ui/buttons/play-button.d.ts +21 -0
- package/types/components/ui/buttons/seek-button.d.ts +32 -0
- package/types/components/ui/buttons/toggle-button-controller.d.ts +20 -0
- package/types/components/ui/buttons/toggle-button.d.ts +29 -0
- package/types/components/ui/captions/captions-renderer.d.ts +12 -0
- package/types/components/ui/captions/captions.d.ts +22 -0
- package/types/components/ui/controls-group.d.ts +9 -0
- package/types/components/ui/controls.d.ts +38 -0
- package/types/components/ui/gesture.d.ts +64 -0
- package/types/components/ui/menu/menu-button.d.ts +37 -0
- package/types/components/ui/menu/menu-context.d.ts +23 -0
- package/types/components/ui/menu/menu-focus-controller.d.ts +14 -0
- package/types/components/ui/menu/menu-item.d.ts +9 -0
- package/types/components/ui/menu/menu-items.d.ts +44 -0
- package/types/components/ui/menu/menu-portal.d.ts +31 -0
- package/types/components/ui/menu/menu.d.ts +66 -0
- package/types/components/ui/menu/radio/radio-controller.d.ts +14 -0
- package/types/components/ui/menu/radio/radio-group-controller.d.ts +11 -0
- package/types/components/ui/menu/radio/radio-group.d.ts +40 -0
- package/types/components/ui/menu/radio/radio.d.ts +50 -0
- package/types/components/ui/menu/radio-groups/audio-gain-radio-group.d.ts +36 -0
- package/types/components/ui/menu/radio-groups/audio-radio-group.d.ts +37 -0
- package/types/components/ui/menu/radio-groups/captions-radio-group.d.ts +38 -0
- package/types/components/ui/menu/radio-groups/chapters-radio-group.d.ts +46 -0
- package/types/components/ui/menu/radio-groups/quality-radio-group.d.ts +48 -0
- package/types/components/ui/menu/radio-groups/speed-radio-group.d.ts +36 -0
- package/types/components/ui/popper/popper.d.ts +15 -0
- package/types/components/ui/poster.d.ts +47 -0
- package/types/components/ui/sliders/audio-gain-slider.d.ts +43 -0
- package/types/components/ui/sliders/quality-slider.d.ts +34 -0
- package/types/components/ui/sliders/slider/api/cssvars.d.ts +10 -0
- package/types/components/ui/sliders/slider/api/events.d.ts +57 -0
- package/types/components/ui/sliders/slider/api/state.d.ts +68 -0
- package/types/components/ui/sliders/slider/events-controller.d.ts +23 -0
- package/types/components/ui/sliders/slider/format.d.ts +8 -0
- package/types/components/ui/sliders/slider/slider-context.d.ts +13 -0
- package/types/components/ui/sliders/slider/slider-controller.d.ts +59 -0
- package/types/components/ui/sliders/slider/slider.d.ts +39 -0
- package/types/components/ui/sliders/slider/types.d.ts +1 -0
- package/types/components/ui/sliders/slider/utils.d.ts +2 -0
- package/types/components/ui/sliders/slider-preview.d.ts +34 -0
- package/types/components/ui/sliders/slider-thumbnail.d.ts +16 -0
- package/types/components/ui/sliders/slider-value.d.ts +59 -0
- package/types/components/ui/sliders/slider-video.d.ts +73 -0
- package/types/components/ui/sliders/speed-slider.d.ts +42 -0
- package/types/components/ui/sliders/time-slider/slider-chapters.d.ts +36 -0
- package/types/components/ui/sliders/time-slider/time-slider.d.ts +56 -0
- package/types/components/ui/sliders/volume-slider.d.ts +35 -0
- package/types/components/ui/thumbnails/thumbnail-loader.d.ts +47 -0
- package/types/components/ui/thumbnails/thumbnail.d.ts +50 -0
- package/types/components/ui/time.d.ts +62 -0
- package/types/components/ui/tooltip/tooltip-content.d.ts +39 -0
- package/types/components/ui/tooltip/tooltip-context.d.ts +11 -0
- package/types/components/ui/tooltip/tooltip-trigger.d.ts +14 -0
- package/types/components/ui/tooltip/tooltip.d.ts +23 -0
- package/types/core/api/media-attrs.d.ts +3 -0
- package/types/core/api/media-context.d.ts +37 -0
- package/types/core/api/media-events.d.ts +581 -0
- package/types/core/api/media-request-events.d.ts +319 -0
- package/types/core/api/player-controller.d.ts +6 -0
- package/types/core/api/player-events.d.ts +38 -0
- package/types/core/api/player-props.d.ts +163 -0
- package/types/core/api/player-state.d.ts +656 -0
- package/types/core/api/src-types.d.ts +50 -0
- package/types/core/api/types.d.ts +54 -0
- package/types/core/controls.d.ts +43 -0
- package/types/core/font/font-options.d.ts +42 -0
- package/types/core/font/font-vars.d.ts +1 -0
- package/types/core/keyboard/aria-shortcuts.d.ts +6 -0
- package/types/core/keyboard/controller.d.ts +9 -0
- package/types/core/keyboard/types.d.ts +33 -0
- package/types/core/quality/events.d.ts +43 -0
- package/types/core/quality/symbols.d.ts +6 -0
- package/types/core/quality/utils.d.ts +2 -0
- package/types/core/quality/video-quality.d.ts +52 -0
- package/types/core/state/media-events-logger.d.ts +7 -0
- package/types/core/state/media-load-controller.d.ts +6 -0
- package/types/core/state/media-player-delegate.d.ts +13 -0
- package/types/core/state/media-request-manager.d.ts +71 -0
- package/types/core/state/media-state-manager.d.ts +59 -0
- package/types/core/state/media-state-sync.d.ts +8 -0
- package/types/core/state/media-storage.d.ts +74 -0
- package/types/core/state/navigator-media-session.d.ts +5 -0
- package/types/core/state/remote-control.d.ts +288 -0
- package/types/core/state/tracked-media-events.d.ts +2 -0
- package/types/core/time-ranges.d.ts +12 -0
- package/types/core/tracks/audio/audio-tracks.d.ts +32 -0
- package/types/core/tracks/audio/events.d.ts +37 -0
- package/types/core/tracks/text/events.d.ts +49 -0
- package/types/core/tracks/text/render/libass-text-renderer.d.ts +181 -0
- package/types/core/tracks/text/render/native-text-renderer.d.ts +13 -0
- package/types/core/tracks/text/render/text-renderer.d.ts +17 -0
- package/types/core/tracks/text/symbols.d.ts +11 -0
- package/types/core/tracks/text/text-track.d.ts +137 -0
- package/types/core/tracks/text/text-tracks.d.ts +55 -0
- package/types/core/tracks/text/utils.d.ts +8 -0
- package/types/elements/bundles/cdn/player.core.d.ts +5 -0
- package/types/elements/bundles/cdn/player.d.ts +7 -0
- package/types/elements/bundles/cdn/plyr.d.ts +5 -0
- package/types/elements/bundles/cdn-legacy/player-with-default.d.ts +4 -0
- package/types/elements/bundles/cdn-legacy/player-with-layouts.d.ts +4 -0
- package/types/elements/bundles/cdn-legacy/player-with-plyr.d.ts +3 -0
- package/types/elements/bundles/cdn-legacy/player.d.ts +3 -0
- package/types/elements/bundles/icons.d.ts +2 -0
- package/types/elements/bundles/player-layouts/default.d.ts +1 -0
- package/types/elements/bundles/player-layouts/index.d.ts +1 -0
- package/types/elements/bundles/player-layouts/plyr.d.ts +1 -0
- package/types/elements/bundles/player-ui.d.ts +1 -0
- package/types/elements/bundles/player.d.ts +1 -0
- package/types/elements/define/announcer-element.d.ts +18 -0
- package/types/elements/define/buttons/airplay-button-element.d.ts +19 -0
- package/types/elements/define/buttons/caption-button-element.d.ts +20 -0
- package/types/elements/define/buttons/fullscreen-button-element.d.ts +20 -0
- package/types/elements/define/buttons/google-cast-button-element.d.ts +19 -0
- package/types/elements/define/buttons/live-button-element.d.ts +20 -0
- package/types/elements/define/buttons/mute-button-element.d.ts +21 -0
- package/types/elements/define/buttons/pip-button-element.d.ts +20 -0
- package/types/elements/define/buttons/play-button-element.d.ts +21 -0
- package/types/elements/define/buttons/seek-button-element.d.ts +24 -0
- package/types/elements/define/buttons/toggle-button-element.d.ts +19 -0
- package/types/elements/define/captions-element.d.ts +18 -0
- package/types/elements/define/chapter-title-element.d.ts +30 -0
- package/types/elements/define/controls-element.d.ts +24 -0
- package/types/elements/define/controls-group-element.d.ts +24 -0
- package/types/elements/define/gesture-element.d.ts +22 -0
- package/types/elements/define/layouts/default/audio-layout-element.d.ts +29 -0
- package/types/elements/define/layouts/default/audio-layout.d.ts +1 -0
- package/types/elements/define/layouts/default/icons-loader.d.ts +5 -0
- package/types/elements/define/layouts/default/icons.d.ts +52 -0
- package/types/elements/define/layouts/default/slots.d.ts +2 -0
- package/types/elements/define/layouts/default/ui/announcer.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/buttons.d.ts +31 -0
- package/types/elements/define/layouts/default/ui/captions.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/controls.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/keyboard-display.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/accessibility-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/audio-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/captions-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/chapters-menu.d.ts +8 -0
- package/types/elements/define/layouts/default/ui/menu/episodes-menu.d.ts +8 -0
- package/types/elements/define/layouts/default/ui/menu/font-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/items/menu-checkbox.d.ts +8 -0
- package/types/elements/define/layouts/default/ui/menu/items/menu-items.d.ts +26 -0
- package/types/elements/define/layouts/default/ui/menu/items/menu-slider.d.ts +3 -0
- package/types/elements/define/layouts/default/ui/menu/menu-portal.d.ts +4 -0
- package/types/elements/define/layouts/default/ui/menu/playback-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/settings-menu.d.ts +8 -0
- package/types/elements/define/layouts/default/ui/slider.d.ts +10 -0
- package/types/elements/define/layouts/default/ui/time.d.ts +3 -0
- package/types/elements/define/layouts/default/ui/title.d.ts +2 -0
- package/types/elements/define/layouts/default/ui/utils.d.ts +3 -0
- package/types/elements/define/layouts/default/video-layout-element.d.ts +29 -0
- package/types/elements/define/layouts/default/video-layout.d.ts +5 -0
- package/types/elements/define/layouts/icons/icons-loader.d.ts +11 -0
- package/types/elements/define/layouts/icons/layout-icons-loader.d.ts +4 -0
- package/types/elements/define/layouts/layout-element.d.ts +38 -0
- package/types/elements/define/layouts/layout-name.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-airplay.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-captions-off.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-captions-on.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-download.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-fast-forward.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-muted.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-pause.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-pip.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-play.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-restart.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-rewind.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-settings.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-volume.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons-loader.d.ts +5 -0
- package/types/elements/define/layouts/plyr/icons.d.ts +18 -0
- package/types/elements/define/layouts/plyr/plyr-layout-element.d.ts +26 -0
- package/types/elements/define/layouts/plyr/ui.d.ts +3 -0
- package/types/elements/define/layouts/slot-manager.d.ts +7 -0
- package/types/elements/define/layouts/slot-observer.d.ts +12 -0
- package/types/elements/define/menus/_template.d.ts +7 -0
- package/types/elements/define/menus/audio-gain-group-element.d.ts +31 -0
- package/types/elements/define/menus/audio-radio-group-element.d.ts +31 -0
- package/types/elements/define/menus/captions-radio-group-element.d.ts +31 -0
- package/types/elements/define/menus/chapters-radio-group-element.d.ts +36 -0
- package/types/elements/define/menus/menu-button-element.d.ts +25 -0
- package/types/elements/define/menus/menu-element.d.ts +26 -0
- package/types/elements/define/menus/menu-item-element.d.ts +22 -0
- package/types/elements/define/menus/menu-items-element.d.ts +25 -0
- package/types/elements/define/menus/menu-portal-element.d.ts +25 -0
- package/types/elements/define/menus/quality-radio-group-element.d.ts +33 -0
- package/types/elements/define/menus/radio-element.d.ts +22 -0
- package/types/elements/define/menus/radio-group-element.d.ts +22 -0
- package/types/elements/define/menus/speed-radio-group-element.d.ts +31 -0
- package/types/elements/define/player-element.d.ts +24 -0
- package/types/elements/define/poster-element.d.ts +25 -0
- package/types/elements/define/provider-cast-display.d.ts +2 -0
- package/types/elements/define/provider-element.d.ts +25 -0
- package/types/elements/define/sliders/audio-gain-slider-element.d.ts +32 -0
- package/types/elements/define/sliders/quality-slider-element.d.ts +32 -0
- package/types/elements/define/sliders/slider-chapters-element.d.ts +31 -0
- package/types/elements/define/sliders/slider-element.d.ts +23 -0
- package/types/elements/define/sliders/slider-preview-element.d.ts +14 -0
- package/types/elements/define/sliders/slider-steps-element.d.ts +28 -0
- package/types/elements/define/sliders/slider-thumbnail-element.d.ts +26 -0
- package/types/elements/define/sliders/slider-value-element.d.ts +37 -0
- package/types/elements/define/sliders/slider-video-element.d.ts +25 -0
- package/types/elements/define/sliders/speed-slider-element.d.ts +32 -0
- package/types/elements/define/sliders/time-slider-element.d.ts +32 -0
- package/types/elements/define/sliders/volume-slider-element.d.ts +32 -0
- package/types/elements/define/spinner-element.d.ts +50 -0
- package/types/elements/define/thumbnail-element.d.ts +29 -0
- package/types/elements/define/time-element.d.ts +24 -0
- package/types/elements/define/title-element.d.ts +23 -0
- package/types/elements/define/tooltips/tooltip-content-element.d.ts +26 -0
- package/types/elements/define/tooltips/tooltip-element.d.ts +26 -0
- package/types/elements/define/tooltips/tooltip-trigger-element.d.ts +27 -0
- package/types/elements/icon.d.ts +10 -0
- package/types/elements/index.d.ts +56 -0
- package/types/elements/lit/directives/signal.d.ts +1 -0
- package/types/elements/lit/html.d.ts +4 -0
- package/types/elements/lit/lit-element.d.ts +8 -0
- package/types/elements/state-controller.d.ts +5 -0
- package/types/exports/components.d.ts +59 -0
- package/types/exports/core.d.ts +26 -0
- package/types/exports/events.d.ts +32 -0
- package/types/exports/font.d.ts +2 -0
- package/types/exports/foundation.d.ts +8 -0
- package/types/exports/maverick.d.ts +1 -0
- package/types/exports/providers.d.ts +22 -0
- package/types/exports/utils.d.ts +4 -0
- package/types/foundation/fullscreen/controller.d.ts +39 -0
- package/types/foundation/fullscreen/events.d.ts +25 -0
- package/types/foundation/list/list.d.ts +64 -0
- package/types/foundation/list/select-list.d.ts +30 -0
- package/types/foundation/list/symbols.d.ts +14 -0
- package/types/foundation/logger/colors.d.ts +5 -0
- package/types/foundation/logger/controller.d.ts +20 -0
- package/types/foundation/logger/events.d.ts +26 -0
- package/types/foundation/logger/grouped-log.d.ts +22 -0
- package/types/foundation/logger/log-level.d.ts +15 -0
- package/types/foundation/logger/log-printer.d.ts +11 -0
- package/types/foundation/logger/ms.d.ts +4 -0
- package/types/foundation/observers/focus-visible.d.ts +7 -0
- package/types/foundation/observers/intersection-observer.d.ts +36 -0
- package/types/foundation/observers/page-visibility.d.ts +37 -0
- package/types/foundation/observers/raf-loop.d.ts +6 -0
- package/types/foundation/orientation/controller.d.ts +62 -0
- package/types/foundation/orientation/events.d.ts +16 -0
- package/types/foundation/orientation/types.d.ts +85 -0
- package/types/foundation/queue/queue.d.ts +24 -0
- package/types/foundation/queue/request-queue.d.ts +42 -0
- package/types/global/layouts/default.d.ts +9 -0
- package/types/global/layouts/loader.d.ts +5 -0
- package/types/global/layouts/plyr.d.ts +9 -0
- package/types/global/player.d.ts +26 -0
- package/types/global/plyr.d.ts +344 -0
- package/types/index.d.ts +6 -0
- package/types/plugins.d.ts +11 -0
- package/types/providers/audio/loader.d.ts +12 -0
- package/types/providers/audio/provider.d.ts +29 -0
- package/types/providers/dash/dash.d.ts +15 -0
- package/types/providers/dash/events.d.ts +570 -0
- package/types/providers/dash/lib-loader.d.ts +6 -0
- package/types/providers/dash/loader.d.ts +10 -0
- package/types/providers/dash/provider.d.ts +62 -0
- package/types/providers/dash/types.d.ts +13 -0
- package/types/providers/embed/EmbedProvider.d.ts +18 -0
- package/types/providers/google-cast/events.d.ts +36 -0
- package/types/providers/google-cast/loader.d.ts +18 -0
- package/types/providers/google-cast/media-info.d.ts +11 -0
- package/types/providers/google-cast/provider.d.ts +48 -0
- package/types/providers/google-cast/tracks.d.ts +10 -0
- package/types/providers/google-cast/types.d.ts +3 -0
- package/types/providers/google-cast/utils.d.ts +34 -0
- package/types/providers/hls/events.d.ts +463 -0
- package/types/providers/hls/hls.d.ts +14 -0
- package/types/providers/hls/lib-loader.d.ts +6 -0
- package/types/providers/hls/loader.d.ts +10 -0
- package/types/providers/hls/provider.d.ts +64 -0
- package/types/providers/hls/types.d.ts +9 -0
- package/types/providers/html/audio/audio-context.d.ts +6 -0
- package/types/providers/html/audio/audio-gain.d.ts +10 -0
- package/types/providers/html/html/342/200/223media-events.d.ts +6 -0
- package/types/providers/html/native-audio-tracks.d.ts +6 -0
- package/types/providers/html/provider.d.ts +34 -0
- package/types/providers/html/remote-playback.d.ts +18 -0
- package/types/providers/type-check.d.ts +28 -0
- package/types/providers/types.d.ts +95 -0
- package/types/providers/video/loader.d.ts +12 -0
- package/types/providers/video/native-hls-text-tracks.d.ts +9 -0
- package/types/providers/video/picture-in-picture.d.ts +16 -0
- package/types/providers/video/presentation/events.d.ts +11 -0
- package/types/providers/video/presentation/video-presentation.d.ts +30 -0
- package/types/providers/video/provider.d.ts +34 -0
- package/types/providers/vimeo/embed/command.d.ts +81 -0
- package/types/providers/vimeo/embed/event.d.ts +58 -0
- package/types/providers/vimeo/embed/message.d.ts +8 -0
- package/types/providers/vimeo/embed/misc.d.ts +52 -0
- package/types/providers/vimeo/embed/params.d.ts +148 -0
- package/types/providers/vimeo/loader.d.ts +14 -0
- package/types/providers/vimeo/provider.d.ts +61 -0
- package/types/providers/vimeo/utils.d.ts +6 -0
- package/types/providers/youtube/embed/command.d.ts +13 -0
- package/types/providers/youtube/embed/event.d.ts +1 -0
- package/types/providers/youtube/embed/message.d.ts +50 -0
- package/types/providers/youtube/embed/params.d.ts +218 -0
- package/types/providers/youtube/embed/quality.d.ts +2 -0
- package/types/providers/youtube/embed/state.d.ts +12 -0
- package/types/providers/youtube/loader.d.ts +14 -0
- package/types/providers/youtube/provider.d.ts +61 -0
- package/types/providers/youtube/utils.d.ts +2 -0
- package/types/utils/aria.d.ts +4 -0
- package/types/utils/array.d.ts +1 -0
- package/types/utils/color.d.ts +1 -0
- package/types/utils/dom.d.ts +41 -0
- package/types/utils/error.d.ts +2 -0
- package/types/utils/language.d.ts +8 -0
- package/types/utils/manifest.d.ts +3 -0
- package/types/utils/mime.d.ts +15 -0
- package/types/utils/network.d.ts +17 -0
- package/types/utils/number.d.ts +17 -0
- package/types/utils/promise.d.ts +1 -0
- package/types/utils/scroll.d.ts +5 -0
- package/types/utils/support.d.ts +72 -0
- package/types/utils/time.d.ts +57 -0
- package/vite.config.ts +61 -0
package/tsconfig.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component, State } from 'maverick.js';
|
|
2
|
+
import { type DOMEvent } from 'maverick.js/std';
|
|
3
|
+
/**
|
|
4
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/display/announcer}
|
|
5
|
+
*/
|
|
6
|
+
export declare class MediaAnnouncer extends Component<MediaAnnouncerProps, MediaAnnouncerState, MediaAnnouncerEvents> {
|
|
7
|
+
#private;
|
|
8
|
+
static props: MediaAnnouncerProps;
|
|
9
|
+
static state: State<MediaAnnouncerState>;
|
|
10
|
+
protected onSetup(): void;
|
|
11
|
+
protected onAttach(el: HTMLElement): void;
|
|
12
|
+
protected onConnect(el: HTMLElement): void;
|
|
13
|
+
}
|
|
14
|
+
export interface MediaAnnouncerProps {
|
|
15
|
+
translations: Partial<MediaAnnouncerTranslations> | null;
|
|
16
|
+
}
|
|
17
|
+
export interface MediaAnnouncerState {
|
|
18
|
+
label: string | null;
|
|
19
|
+
busy: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface MediaAnnouncerEvents {
|
|
22
|
+
change: DOMEvent<string>;
|
|
23
|
+
}
|
|
24
|
+
export type MediaAnnouncerWord = 'Play' | 'Pause' | 'Enter Fullscreen' | 'Exit Fullscreen' | 'Enter PiP' | 'Exit PiP' | 'Closed-Captions On' | 'Closed-Captions Off' | 'Mute' | 'Volume' | 'Seek Forward' | 'Seek Backward';
|
|
25
|
+
export type MediaAnnouncerTranslations = {
|
|
26
|
+
[word in MediaAnnouncerWord]: string;
|
|
27
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DefaultLayout } from './default-layout';
|
|
2
|
+
import type { DefaultLayoutProps } from './props';
|
|
3
|
+
/**
|
|
4
|
+
* The audio layout is our production-ready UI that's displayed when the media view type is set to
|
|
5
|
+
* 'audio'. It includes support for audio tracks, slider chapters, captions, live streams, and much
|
|
6
|
+
* more out of the box.
|
|
7
|
+
*
|
|
8
|
+
* @attr data-match - Whether this layout is being used (query match).
|
|
9
|
+
* @attr data-sm - The small layout is active
|
|
10
|
+
* @attr data-lg - The large layout is active.
|
|
11
|
+
* @attr data-size - The active layout size (sm or lg).
|
|
12
|
+
*/
|
|
13
|
+
export declare class DefaultAudioLayout extends DefaultLayout {
|
|
14
|
+
static props: DefaultLayoutProps;
|
|
15
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ReadSignalRecord, type WriteSignal } from 'maverick.js';
|
|
2
|
+
import type { DefaultLayoutProps } from './props';
|
|
3
|
+
export interface DefaultLayoutContext extends ReadSignalRecord<DefaultLayoutProps> {
|
|
4
|
+
menuPortal: WriteSignal<HTMLElement | null>;
|
|
5
|
+
userPrefersAnnouncements: WriteSignal<boolean>;
|
|
6
|
+
userPrefersKeyboardAnimations: WriteSignal<boolean>;
|
|
7
|
+
}
|
|
8
|
+
export declare const defaultLayoutContext: import("maverick.js").Context<DefaultLayoutContext>;
|
|
9
|
+
export declare function useDefaultLayoutContext(): DefaultLayoutContext;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import { type DefaultLayoutProps } from './props';
|
|
3
|
+
export declare class DefaultLayout extends Component<DefaultLayoutProps> {
|
|
4
|
+
#private;
|
|
5
|
+
static props: DefaultLayoutProps;
|
|
6
|
+
get isMatch(): boolean;
|
|
7
|
+
get isSmallLayout(): boolean;
|
|
8
|
+
protected onSetup(): void;
|
|
9
|
+
protected onAttach(el: HTMLElement): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { MediaPlayerQuery } from '../../../core/api/player-state';
|
|
2
|
+
import type { FileDownloadInfo } from '../../../utils/network';
|
|
3
|
+
import type { ThumbnailSrc } from '../../ui/thumbnails/thumbnail-loader';
|
|
4
|
+
import type { DefaultLayoutTranslations } from './translations';
|
|
5
|
+
export declare const defaultLayoutProps: DefaultLayoutProps;
|
|
6
|
+
export interface DefaultLayoutEpisode {
|
|
7
|
+
title: string;
|
|
8
|
+
episodeTitle?: string;
|
|
9
|
+
overview?: string;
|
|
10
|
+
thumbnail?: string;
|
|
11
|
+
runtime?: number;
|
|
12
|
+
episodeNumber?: number;
|
|
13
|
+
seasonNumber?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface DefaultLayoutProps {
|
|
16
|
+
/**
|
|
17
|
+
* Determines when the UI should be displayed.
|
|
18
|
+
*/
|
|
19
|
+
when: boolean | MediaPlayerQuery;
|
|
20
|
+
/**
|
|
21
|
+
* Determines when the small (e.g., mobile) UI should be displayed.
|
|
22
|
+
*/
|
|
23
|
+
smallWhen: 'never' | boolean | MediaPlayerQuery;
|
|
24
|
+
/**
|
|
25
|
+
* The thumbnails resource.
|
|
26
|
+
*
|
|
27
|
+
* @see {@link https://www.vidstack.io/docs/wc/player/core-concepts/loading#thumbnails}
|
|
28
|
+
*/
|
|
29
|
+
thumbnails: ThumbnailSrc;
|
|
30
|
+
/**
|
|
31
|
+
* Whether light or dark color theme should be active. Defaults to user operating system
|
|
32
|
+
* preference.
|
|
33
|
+
*
|
|
34
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme}
|
|
35
|
+
*/
|
|
36
|
+
colorScheme: 'light' | 'dark' | 'system' | 'default';
|
|
37
|
+
/**
|
|
38
|
+
* Sets the download URL and filename for the download button.
|
|
39
|
+
*/
|
|
40
|
+
download: FileDownloadInfo;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the default icons should _not_ be loaded. Set this to `true` when providing your own
|
|
43
|
+
* icons.
|
|
44
|
+
*/
|
|
45
|
+
customIcons: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Translation map from english to your desired language for words used throughout the layout.
|
|
48
|
+
*/
|
|
49
|
+
translations: Partial<DefaultLayoutTranslations> | null;
|
|
50
|
+
/**
|
|
51
|
+
* A document query selector string or `HTMLElement` to mount the menu container inside. Defaults
|
|
52
|
+
* to `document.body` when set to `null`.
|
|
53
|
+
*/
|
|
54
|
+
menuContainer: string | HTMLElement | null;
|
|
55
|
+
/**
|
|
56
|
+
* Specifies whether menu buttons should be placed in the top or bottom controls group. This
|
|
57
|
+
* only applies to the large video layout.
|
|
58
|
+
*/
|
|
59
|
+
menuGroup: 'top' | 'bottom';
|
|
60
|
+
/**
|
|
61
|
+
* Disable audio boost slider in the settings menu.
|
|
62
|
+
*/
|
|
63
|
+
noAudioGain: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Whether modal menus should be disabled when the small layout is active. A modal menu is
|
|
66
|
+
* a floating panel that floats up from the bottom of the screen (outside of the player). It's
|
|
67
|
+
* enabled by default as it provides a better user experience for touch devices.
|
|
68
|
+
*/
|
|
69
|
+
noModal: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Whether to disable scrubbing by touch swiping left or right on the player canvas.
|
|
72
|
+
*/
|
|
73
|
+
noScrubGesture: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* The minimum width of the slider to start displaying slider chapters when available.
|
|
76
|
+
*/
|
|
77
|
+
sliderChaptersMinWidth: number;
|
|
78
|
+
/**
|
|
79
|
+
* Whether the time slider should be disabled.
|
|
80
|
+
*/
|
|
81
|
+
disableTimeSlider: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Whether all gestures such as press to play or seek should not be active.
|
|
84
|
+
*/
|
|
85
|
+
noGestures: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Whether keyboard actions should not be displayed.
|
|
88
|
+
*/
|
|
89
|
+
noKeyboardAnimations: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Whether the bitrate should be hidden in the settings quality hint.
|
|
92
|
+
*
|
|
93
|
+
* @defaultValue false
|
|
94
|
+
*/
|
|
95
|
+
hideQualityBitrate: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Episode list shown in the default video layout panel.
|
|
98
|
+
*/
|
|
99
|
+
episodes: DefaultLayoutEpisode[] | null;
|
|
100
|
+
/**
|
|
101
|
+
* Title shown at the top of the episodes panel.
|
|
102
|
+
*/
|
|
103
|
+
episodesTitle: string;
|
|
104
|
+
/**
|
|
105
|
+
* The playback rate options to be displayed in the settings menu.
|
|
106
|
+
*/
|
|
107
|
+
playbackRates: number[] | {
|
|
108
|
+
min: number;
|
|
109
|
+
max: number;
|
|
110
|
+
step: number;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* The audio gain options to be displayed in the settings menu.
|
|
114
|
+
*/
|
|
115
|
+
audioGains: number[] | {
|
|
116
|
+
min: number;
|
|
117
|
+
max: number;
|
|
118
|
+
step: number;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* The number of seconds to seek forward or backward when pressing the seek button or using
|
|
122
|
+
* keyboard shortcuts.
|
|
123
|
+
*/
|
|
124
|
+
seekStep: number;
|
|
125
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReadSignal } from 'maverick.js';
|
|
2
|
+
export type DefaultLayoutWord = 'Announcements' | 'Accessibility' | 'AirPlay' | 'Audio' | 'Auto' | 'Boost' | 'Captions' | 'Caption Styles' | 'Captions look like this' | 'Chapters' | 'Closed-Captions Off' | 'Closed-Captions On' | 'Connected' | 'Continue' | 'Connecting' | 'Default' | 'Disabled' | 'Disconnected' | 'Display Background' | 'Download' | 'Enter Fullscreen' | 'Enter PiP' | 'Exit Fullscreen' | 'Exit PiP' | 'Font' | 'Family' | 'Fullscreen' | 'Google Cast' | 'Keyboard Animations' | 'LIVE' | 'Loop' | 'Mute' | 'Normal' | 'Off' | 'Pause' | 'Play' | 'Playback' | 'PiP' | 'Quality' | 'Replay' | 'Reset' | 'Seek Backward' | 'Seek Forward' | 'Seek' | 'Settings' | 'Skip To Live' | 'Speed' | 'Size' | 'Color' | 'Opacity' | 'Shadow' | 'Text' | 'Text Background' | 'Track' | 'Unmute' | 'Volume';
|
|
3
|
+
export type DefaultLayoutTranslations = {
|
|
4
|
+
[word in DefaultLayoutWord]: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function i18n(translations: ReadSignal<Partial<DefaultLayoutTranslations> | null>, word: string): any;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DefaultLayout } from './default-layout';
|
|
2
|
+
import type { DefaultLayoutProps } from './props';
|
|
3
|
+
/**
|
|
4
|
+
* The video layout is our production-ready UI that's displayed when the media view type is set to
|
|
5
|
+
* 'video'. It includes support for picture-in-picture, fullscreen, slider chapters, slider
|
|
6
|
+
* previews, captions, audio/quality settings, live streams, and much more out of the box.
|
|
7
|
+
*
|
|
8
|
+
* @attr data-match - Whether this layout is being used (query match).
|
|
9
|
+
* @attr data-sm - The small layout is active
|
|
10
|
+
* @attr data-lg - The large layout is active.
|
|
11
|
+
* @attr data-size - The active layout size.
|
|
12
|
+
*/
|
|
13
|
+
export declare class DefaultVideoLayout extends DefaultLayout {
|
|
14
|
+
static props: DefaultLayoutProps;
|
|
15
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ReadSignalRecord, type WriteSignal } from 'maverick.js';
|
|
2
|
+
import type { PlyrLayoutProps } from './props';
|
|
3
|
+
export interface PlyrLayoutContext extends ReadSignalRecord<PlyrLayoutProps> {
|
|
4
|
+
previewTime: WriteSignal<number>;
|
|
5
|
+
}
|
|
6
|
+
export declare const plyrLayoutContext: import("maverick.js").Context<PlyrLayoutContext>;
|
|
7
|
+
export declare function usePlyrLayoutContext(): PlyrLayoutContext;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import { type MediaContext } from '../../../core/api/media-context';
|
|
3
|
+
import { type PlyrLayoutProps } from './props';
|
|
4
|
+
export declare class PlyrLayout extends Component<PlyrLayoutProps> {
|
|
5
|
+
#private;
|
|
6
|
+
static props: PlyrLayoutProps;
|
|
7
|
+
protected onSetup(): void;
|
|
8
|
+
}
|
|
9
|
+
export declare function usePlyrLayoutClasses(el: HTMLElement, media: MediaContext): () => void;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { FileDownloadInfo } from '../../../utils/network';
|
|
2
|
+
import type { ThumbnailSrc } from '../../ui/thumbnails/thumbnail-loader';
|
|
3
|
+
import type { PlyrLayoutTranslations } from './translations';
|
|
4
|
+
export declare const plyrLayoutProps: PlyrLayoutProps;
|
|
5
|
+
export interface PlyrLayoutProps {
|
|
6
|
+
/**
|
|
7
|
+
* Press the video container to toggle play/pause.
|
|
8
|
+
*/
|
|
9
|
+
clickToPlay: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Double-press the video container to toggle fullscreen.
|
|
12
|
+
*/
|
|
13
|
+
clickToFullscreen: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* The controls to be included in the layout and their order specified by the position in the
|
|
16
|
+
* array.
|
|
17
|
+
*/
|
|
18
|
+
controls: PlyrControl[];
|
|
19
|
+
/**
|
|
20
|
+
* Whether the default icons should _not_ be loaded. Set this to `true` when providing your own
|
|
21
|
+
* icons.
|
|
22
|
+
*/
|
|
23
|
+
customIcons: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the duration should be displayed. This is ignored if `toggleTime` is `true`.
|
|
26
|
+
*/
|
|
27
|
+
displayDuration: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Sets the download URL and filename for the download button. The download button must be
|
|
30
|
+
* included in the `controls` prop for this to take effect.
|
|
31
|
+
*/
|
|
32
|
+
download: FileDownloadInfo;
|
|
33
|
+
/**
|
|
34
|
+
* Points on the time slider which should be visually marked for the user.
|
|
35
|
+
*/
|
|
36
|
+
markers: PlyrMarker[] | null;
|
|
37
|
+
/**
|
|
38
|
+
* Display the current time as a countdown rather than an incremental counter.
|
|
39
|
+
*/
|
|
40
|
+
invertTime: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The thumbnails resource.
|
|
43
|
+
*
|
|
44
|
+
* @see {@link https://www.vidstack.io/docs/wc/player/core-concepts/loading#thumbnails}
|
|
45
|
+
*/
|
|
46
|
+
thumbnails: ThumbnailSrc;
|
|
47
|
+
/**
|
|
48
|
+
* Allow users to press to toggle the inverted time.
|
|
49
|
+
*/
|
|
50
|
+
toggleTime: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Translation map from english to your desired language for words used throughout the layout.
|
|
53
|
+
*/
|
|
54
|
+
translations: Partial<PlyrLayoutTranslations> | null;
|
|
55
|
+
/**
|
|
56
|
+
* The time, in seconds, to seek when a user hits fast forward or rewind.
|
|
57
|
+
*/
|
|
58
|
+
seekTime: number;
|
|
59
|
+
/**
|
|
60
|
+
* The speed options to display in the UI.
|
|
61
|
+
*/
|
|
62
|
+
speed: (string | number)[];
|
|
63
|
+
}
|
|
64
|
+
export type PlyrControl = 'airplay' | 'captions' | 'current-time' | 'download' | 'duration' | 'fast-forward' | 'fullscreen' | 'mute' | 'mute+volume' | 'pip' | 'play-large' | 'play' | 'progress' | 'restart' | 'rewind' | 'settings' | 'volume';
|
|
65
|
+
export interface PlyrMarker {
|
|
66
|
+
time: number;
|
|
67
|
+
label: string;
|
|
68
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReadSignal } from 'maverick.js';
|
|
2
|
+
export type PlyrLayoutWord = 'Ad' | 'All' | 'AirPlay' | 'Audio' | 'Auto' | 'Buffered' | 'Captions' | 'Current time' | 'Default' | 'Disable captions' | 'Disabled' | 'Download' | 'Duration' | 'Enable captions' | 'Enabled' | 'End' | 'Enter Fullscreen' | 'Exit Fullscreen' | 'Forward' | 'Go back to previous menu' | 'LIVE' | 'Loop' | 'Mute' | 'Normal' | 'Pause' | 'Enter PiP' | 'Exit PiP' | 'Play' | 'Played' | 'Quality' | 'Reset' | 'Restart' | 'Rewind' | 'Seek' | 'Settings' | 'Speed' | 'Start' | 'Unmute' | 'Volume';
|
|
3
|
+
export type PlyrLayoutTranslations = {
|
|
4
|
+
[word in PlyrLayoutWord]: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function i18n(translations: ReadSignal<Partial<PlyrLayoutTranslations> | null>, word: string): any;
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaFullscreenRequestTarget } from '../core/api/media-request-events';
|
|
3
|
+
import type { FindMediaPlayerEvent, MediaPlayerConnectEvent, MediaPlayerEvents } from '../core/api/player-events';
|
|
4
|
+
import { type MediaPlayerProps, type MediaStateAccessors } from '../core/api/player-props';
|
|
5
|
+
import { type MediaPlayerState } from '../core/api/player-state';
|
|
6
|
+
import type { MediaControls } from '../core/controls';
|
|
7
|
+
import { VideoQualityList } from '../core/quality/video-quality';
|
|
8
|
+
import { MediaRemoteControl } from '../core/state/remote-control';
|
|
9
|
+
import { AudioTrackList } from '../core/tracks/audio/audio-tracks';
|
|
10
|
+
import { TextRenderers } from '../core/tracks/text/render/text-renderer';
|
|
11
|
+
import { TextTrackList } from '../core/tracks/text/text-tracks';
|
|
12
|
+
import { ScreenOrientationController } from '../foundation/orientation/controller';
|
|
13
|
+
import { RequestQueue } from '../foundation/queue/request-queue';
|
|
14
|
+
import type { AnyMediaProvider } from '../providers/types';
|
|
15
|
+
declare global {
|
|
16
|
+
interface HTMLElementEventMap {
|
|
17
|
+
'media-player-connect': MediaPlayerConnectEvent;
|
|
18
|
+
'find-media-player': FindMediaPlayerEvent;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* All media elements exist inside the `<media-player>` component. This component's main
|
|
23
|
+
* responsibilities are to manage media state updates, dispatch media events, handle media
|
|
24
|
+
* requests, and expose media state through HTML attributes and CSS properties for styling
|
|
25
|
+
* purposes.
|
|
26
|
+
*
|
|
27
|
+
* @attr data-airplay - Whether AirPlay is connected.
|
|
28
|
+
* @attr data-autoplay - Autoplay has successfully started.
|
|
29
|
+
* @attr data-autoplay-error - Autoplay has failed to start.
|
|
30
|
+
* @attr data-buffering - Media is not ready for playback or waiting for more data.
|
|
31
|
+
* @attr data-can-airplay - Whether AirPlay is available.
|
|
32
|
+
* @attr data-can-fullscreen - Fullscreen mode is available.
|
|
33
|
+
* @attr data-can-google-cast - Whether Google Cast is available.
|
|
34
|
+
* @attr data-can-load - Media can now begin loading.
|
|
35
|
+
* @attr data-can-pip - Picture-in-Picture mode is available.
|
|
36
|
+
* @attr data-can-play - Media is ready for playback.
|
|
37
|
+
* @attr data-can-seek - Seeking operations are permitted.
|
|
38
|
+
* @attr data-captions - Captions are available and visible.
|
|
39
|
+
* @attr data-controls - Controls are visible.
|
|
40
|
+
* @attr data-ended - Playback has ended.
|
|
41
|
+
* @attr data-error - Issue with media loading/playback.
|
|
42
|
+
* @attr data-fullscreen - Fullscreen mode is active.
|
|
43
|
+
* @attr data-google-cast - Whether Google Cast is connected.
|
|
44
|
+
* @attr data-ios-controls - iOS controls are visible.
|
|
45
|
+
* @attr data-load - Specified load strategy.
|
|
46
|
+
* @attr data-live - Media is live stream.
|
|
47
|
+
* @attr data-live-edge - Playback is at the live edge.
|
|
48
|
+
* @attr data-loop - Media is set to replay on end.
|
|
49
|
+
* @attr data-media-type - Current media type (audio/video).
|
|
50
|
+
* @attr data-muted - Whether volume is muted (0).
|
|
51
|
+
* @attr data-orientation - Current screen orientation (landscape/portrait).
|
|
52
|
+
* @attr data-paused - Whether playback is paused.
|
|
53
|
+
* @attr data-pip - Picture-in-picture mode is active.
|
|
54
|
+
* @attr data-playing - Playback is active.
|
|
55
|
+
* @attr data-playsinline - Media should play inline by default (iOS).
|
|
56
|
+
* @attr data-pointer - The user's pointer device type (coarse/fine).
|
|
57
|
+
* @attr data-preview - The user is interacting with the time slider.
|
|
58
|
+
* @attr data-remote-type - The remote playback type (airplay/google-cast).
|
|
59
|
+
* @attr data-remote-state - The remote playback state (connecting/connected/disconnected).
|
|
60
|
+
* @attr data-seeking - User is seeking to a new playback position.
|
|
61
|
+
* @attr data-started - Media playback has started.
|
|
62
|
+
* @attr data-stream-type - Current stream type.
|
|
63
|
+
* @attr data-view-type - Current view type (audio/video).
|
|
64
|
+
* @attr data-waiting - Media is waiting for more data to resume playback.
|
|
65
|
+
* @attr data-focus - Whether player is being keyboard focused.
|
|
66
|
+
* @attr data-hocus - Whether player is being keyboard focused or hovered over.
|
|
67
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/media/player}
|
|
68
|
+
*/
|
|
69
|
+
export declare class MediaPlayer extends Component<MediaPlayerProps, MediaPlayerState, MediaPlayerEvents> implements MediaStateAccessors {
|
|
70
|
+
#private;
|
|
71
|
+
static props: MediaPlayerProps;
|
|
72
|
+
static state: import("maverick.js").State<import("..").MediaState>;
|
|
73
|
+
readonly canPlayQueue: RequestQueue;
|
|
74
|
+
readonly remoteControl: MediaRemoteControl;
|
|
75
|
+
constructor();
|
|
76
|
+
protected onSetup(): void;
|
|
77
|
+
protected onAttach(el: HTMLElement): void;
|
|
78
|
+
protected onConnect(el: HTMLElement): void;
|
|
79
|
+
protected onDestroy(): void;
|
|
80
|
+
/**
|
|
81
|
+
* The current media provider.
|
|
82
|
+
*/
|
|
83
|
+
get provider(): AnyMediaProvider | null;
|
|
84
|
+
/**
|
|
85
|
+
* Media controls settings.
|
|
86
|
+
*/
|
|
87
|
+
get controls(): MediaControls;
|
|
88
|
+
set controls(controls: boolean);
|
|
89
|
+
/**
|
|
90
|
+
* Controls the screen orientation of the current browser window and dispatches orientation
|
|
91
|
+
* change events on the player.
|
|
92
|
+
*/
|
|
93
|
+
readonly orientation: ScreenOrientationController;
|
|
94
|
+
/**
|
|
95
|
+
* The title of the current media.
|
|
96
|
+
*/
|
|
97
|
+
get title(): string;
|
|
98
|
+
set title(newTitle: string);
|
|
99
|
+
/**
|
|
100
|
+
* A list of all `VideoQuality` objects representing the set of available video renditions.
|
|
101
|
+
*
|
|
102
|
+
* @see {@link https://vidstack.io/docs/player/api/video-quality}
|
|
103
|
+
*/
|
|
104
|
+
get qualities(): VideoQualityList;
|
|
105
|
+
/**
|
|
106
|
+
* A list of all `AudioTrack` objects representing the set of available audio tracks.
|
|
107
|
+
*
|
|
108
|
+
* @see {@link https://vidstack.io/docs/player/api/audio-tracks}
|
|
109
|
+
*/
|
|
110
|
+
get audioTracks(): AudioTrackList;
|
|
111
|
+
/**
|
|
112
|
+
* A list of all `TextTrack` objects representing the set of available text tracks.
|
|
113
|
+
*
|
|
114
|
+
* @see {@link https://vidstack.io/docs/player/api/text-tracks}
|
|
115
|
+
*/
|
|
116
|
+
get textTracks(): TextTrackList;
|
|
117
|
+
/**
|
|
118
|
+
* Contains text renderers which are responsible for loading, parsing, and rendering text
|
|
119
|
+
* tracks.
|
|
120
|
+
*/
|
|
121
|
+
get textRenderers(): TextRenderers;
|
|
122
|
+
get duration(): number;
|
|
123
|
+
set duration(duration: number);
|
|
124
|
+
get paused(): boolean;
|
|
125
|
+
set paused(paused: boolean);
|
|
126
|
+
get muted(): boolean;
|
|
127
|
+
set muted(muted: boolean);
|
|
128
|
+
get currentTime(): number;
|
|
129
|
+
set currentTime(time: number);
|
|
130
|
+
get volume(): number;
|
|
131
|
+
set volume(volume: number);
|
|
132
|
+
get playbackRate(): number;
|
|
133
|
+
set playbackRate(rate: number);
|
|
134
|
+
/**
|
|
135
|
+
* Begins/resumes playback of the media. If this method is called programmatically before the
|
|
136
|
+
* user has interacted with the player, the promise may be rejected subject to the browser's
|
|
137
|
+
* autoplay policies. This method will throw if called before media is ready for playback.
|
|
138
|
+
*
|
|
139
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/play}
|
|
140
|
+
*/
|
|
141
|
+
play(trigger?: Event): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Pauses playback of the media. This method will throw if called before media is ready for
|
|
144
|
+
* playback.
|
|
145
|
+
*
|
|
146
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/pause}
|
|
147
|
+
*/
|
|
148
|
+
pause(trigger?: Event): Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Attempts to display the player in fullscreen. The promise will resolve if successful, and
|
|
151
|
+
* reject if not. This method will throw if any fullscreen API is _not_ currently available.
|
|
152
|
+
*
|
|
153
|
+
* @see {@link https://vidstack.io/docs/player/api/fullscreen}
|
|
154
|
+
*/
|
|
155
|
+
enterFullscreen(target?: MediaFullscreenRequestTarget, trigger?: Event): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Attempts to display the player inline by exiting fullscreen. This method will throw if any
|
|
158
|
+
* fullscreen API is _not_ currently available.
|
|
159
|
+
*
|
|
160
|
+
* @see {@link https://vidstack.io/docs/player/api/fullscreen}
|
|
161
|
+
*/
|
|
162
|
+
exitFullscreen(target?: MediaFullscreenRequestTarget, trigger?: Event): Promise<void>;
|
|
163
|
+
/**
|
|
164
|
+
* Attempts to display the player in picture-in-picture mode. This method will throw if PIP is
|
|
165
|
+
* not supported. This method will also return a `PictureInPictureWindow` if the current
|
|
166
|
+
* provider supports it.
|
|
167
|
+
*
|
|
168
|
+
* @see {@link https://vidstack.io/docs/player/api/picture-in-picture}
|
|
169
|
+
*/
|
|
170
|
+
enterPictureInPicture(trigger?: Event): Promise<void | PictureInPictureWindow>;
|
|
171
|
+
/**
|
|
172
|
+
* Attempts to display the player in inline by exiting picture-in-picture mode. This method
|
|
173
|
+
* will throw if not supported.
|
|
174
|
+
*
|
|
175
|
+
* @see {@link https://vidstack.io/docs/player/api/picture-in-picture}
|
|
176
|
+
*/
|
|
177
|
+
exitPictureInPicture(trigger?: Event): Promise<void>;
|
|
178
|
+
/**
|
|
179
|
+
* Sets the current time to the live edge (i.e., `duration`). This is a no-op for non-live
|
|
180
|
+
* streams and will throw if called before media is ready for playback.
|
|
181
|
+
*
|
|
182
|
+
* @see {@link https://vidstack.io/docs/player/api/live}
|
|
183
|
+
*/
|
|
184
|
+
seekToLiveEdge(trigger?: Event): void;
|
|
185
|
+
/**
|
|
186
|
+
* Called when media can begin loading. Calling this method will trigger the initial provider
|
|
187
|
+
* loading process. Calling it more than once has no effect.
|
|
188
|
+
*
|
|
189
|
+
* @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
|
|
190
|
+
*/
|
|
191
|
+
startLoading(trigger?: Event): void;
|
|
192
|
+
/**
|
|
193
|
+
* Called when the poster image can begin loading. Calling it more than once has no effect.
|
|
194
|
+
*
|
|
195
|
+
* @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
|
|
196
|
+
*/
|
|
197
|
+
startLoadingPoster(trigger?: Event): void;
|
|
198
|
+
/**
|
|
199
|
+
* Request Apple AirPlay picker to open.
|
|
200
|
+
*/
|
|
201
|
+
requestAirPlay(trigger?: Event): Promise<void>;
|
|
202
|
+
/**
|
|
203
|
+
* Request Google Cast device picker to open. The Google Cast framework will be loaded if it
|
|
204
|
+
* hasn't yet.
|
|
205
|
+
*/
|
|
206
|
+
requestGoogleCast(trigger?: Event): Promise<void>;
|
|
207
|
+
/**
|
|
208
|
+
* Set the audio gain, amplifying volume and enabling a maximum volume above 100%.
|
|
209
|
+
*
|
|
210
|
+
* @see {@link https://vidstack.io/docs/player/api/audio-gain}
|
|
211
|
+
*/
|
|
212
|
+
setAudioGain(gain: number, trigger?: Event): void;
|
|
213
|
+
destroy(): void;
|
|
214
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Component, State } from 'maverick.js';
|
|
2
|
+
import type { MediaProviderLoader } from '../../providers/types';
|
|
3
|
+
export interface MediaProviderProps {
|
|
4
|
+
/** @internal */
|
|
5
|
+
loaders: MediaProviderLoader[];
|
|
6
|
+
}
|
|
7
|
+
export interface MediaProviderState {
|
|
8
|
+
loader: MediaProviderLoader | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Used to render the current provider.
|
|
12
|
+
*
|
|
13
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/media/provider}
|
|
14
|
+
*/
|
|
15
|
+
export declare class MediaProvider extends Component<MediaProviderProps, MediaProviderState> {
|
|
16
|
+
#private;
|
|
17
|
+
static props: MediaProviderProps;
|
|
18
|
+
static state: State<MediaProviderState>;
|
|
19
|
+
protected onSetup(): void;
|
|
20
|
+
protected onAttach(el: HTMLElement): void;
|
|
21
|
+
protected onConnect(el: HTMLElement): void;
|
|
22
|
+
load(target: HTMLElement | null | undefined): void;
|
|
23
|
+
protected onDestroy(): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ReadSignal, type WriteSignal } from 'maverick.js';
|
|
2
|
+
import type { MediaContext } from '../../core/api/media-context';
|
|
3
|
+
import { type Src } from '../../core/api/src-types';
|
|
4
|
+
import type { MediaProviderLoader } from '../../providers/types';
|
|
5
|
+
export declare class SourceSelection {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(domSources: ReadSignal<Src[]>, media: MediaContext, loader: WriteSignal<MediaProviderLoader | null>, customLoaders?: MediaProviderLoader[]);
|
|
8
|
+
connect(): void;
|
|
9
|
+
}
|
|
10
|
+
export declare function isSameSrc(a: Src | undefined | null, b: Src | undefined | null): boolean;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ReadSignal } from 'maverick.js';
|
|
2
|
+
import type { MediaContext } from '../../core/api/media-context';
|
|
3
|
+
import { type TextTrackInit } from '../../core/tracks/text/text-track';
|
|
4
|
+
export declare class Tracks {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(domTracks: ReadSignal<TextTrackInit[]>, media: MediaContext);
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaRequestEvents } from '../../../core/api/media-request-events';
|
|
3
|
+
import { type ToggleButtonControllerProps } from './toggle-button-controller';
|
|
4
|
+
export interface AirPlayButtonProps extends ToggleButtonControllerProps {
|
|
5
|
+
}
|
|
6
|
+
export interface AirPlayButtonEvents extends Pick<MediaRequestEvents, 'media-airplay-request'> {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A button for requesting remote playback via Apple AirPlay.
|
|
10
|
+
*
|
|
11
|
+
* @attr data-active - Whether AirPlay is connected.
|
|
12
|
+
* @attr data-supported - Whether AirPlay is available.
|
|
13
|
+
* @attr data-state - Current connection state.
|
|
14
|
+
* @see {@link https://www.apple.com/au/airplay}
|
|
15
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/airplay-button}
|
|
16
|
+
*/
|
|
17
|
+
export declare class AirPlayButton extends Component<AirPlayButtonProps, {}, AirPlayButtonEvents> {
|
|
18
|
+
#private;
|
|
19
|
+
static props: AirPlayButtonProps;
|
|
20
|
+
constructor();
|
|
21
|
+
protected onSetup(): void;
|
|
22
|
+
protected onAttach(el: HTMLElement): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaRequestEvents } from '../../../core/api/media-request-events';
|
|
3
|
+
import { type ToggleButtonControllerProps } from './toggle-button-controller';
|
|
4
|
+
export interface CaptionButtonProps extends ToggleButtonControllerProps {
|
|
5
|
+
}
|
|
6
|
+
export interface CaptionButtonEvents extends Pick<MediaRequestEvents, 'media-text-track-change-request'> {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A button for toggling the showing state of the captions.
|
|
10
|
+
*
|
|
11
|
+
* @attr data-supported - Whether captions/subtitles are available.
|
|
12
|
+
* @attr data-active - Whether closed captions or subtitles are on.
|
|
13
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/caption-button}
|
|
14
|
+
*/
|
|
15
|
+
export declare class CaptionButton extends Component<CaptionButtonProps, {}, CaptionButtonEvents> {
|
|
16
|
+
#private;
|
|
17
|
+
static props: CaptionButtonProps;
|
|
18
|
+
constructor();
|
|
19
|
+
protected onSetup(): void;
|
|
20
|
+
protected onAttach(el: HTMLElement): void;
|
|
21
|
+
}
|