@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
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ViewController } from 'maverick.js';
|
|
2
|
+
import type { SliderEvents } from './api/events';
|
|
3
|
+
import type { SliderState } from './api/state';
|
|
4
|
+
import { type SliderEventDelegate } from './events-controller';
|
|
5
|
+
import type { SliderOrientation } from './types';
|
|
6
|
+
export interface SliderDelegate extends Omit<SliderEventDelegate, '_getOrientation'> {
|
|
7
|
+
aria: {
|
|
8
|
+
valueNow(): number;
|
|
9
|
+
valueText(): string;
|
|
10
|
+
valueMin?(): number;
|
|
11
|
+
valueMax?(): number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare class SliderController extends ViewController<SliderControllerProps, SliderState, SliderEvents> {
|
|
15
|
+
#private;
|
|
16
|
+
static props: SliderControllerProps;
|
|
17
|
+
constructor(delegate: SliderDelegate);
|
|
18
|
+
protected onSetup(): void;
|
|
19
|
+
protected onAttach(el: HTMLElement): void;
|
|
20
|
+
protected onConnect(el: HTMLElement): void;
|
|
21
|
+
}
|
|
22
|
+
export interface SliderControllerProps {
|
|
23
|
+
/**
|
|
24
|
+
* Whether the slider should be disabled (non-interactive).
|
|
25
|
+
*/
|
|
26
|
+
disabled: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Provides a hint that the slider is not visible and stops all events and expensive updates to
|
|
29
|
+
* be more power efficient.
|
|
30
|
+
*/
|
|
31
|
+
hidden: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* The orientation of the slider.
|
|
34
|
+
*/
|
|
35
|
+
orientation: SliderOrientation;
|
|
36
|
+
/**
|
|
37
|
+
* A number that specifies the granularity that the slider value must adhere to.
|
|
38
|
+
*
|
|
39
|
+
* A step is an abstract unit that may carry a different type of measure depending on the type of
|
|
40
|
+
* slider. For example, for the volume slider each step is 1% of volume, and for the time slider
|
|
41
|
+
* it is 1 second which is a varying percentage depending on the media duration.
|
|
42
|
+
*/
|
|
43
|
+
step: number;
|
|
44
|
+
/**
|
|
45
|
+
* ♿ **ARIA:** A number that specifies the number of steps taken when interacting with
|
|
46
|
+
* the slider via keyboard.
|
|
47
|
+
*
|
|
48
|
+
* A step is an abstract unit that may carry different type of measure depending on the type of
|
|
49
|
+
* slider. For example, for the volume slider each step is 1% of volume, and for the time slider
|
|
50
|
+
* it is 1 second which is a varying percentage depending on the media duration.
|
|
51
|
+
*/
|
|
52
|
+
keyStep: number;
|
|
53
|
+
/**
|
|
54
|
+
* ♿ **ARIA:** A number that will be used to multiply the `keyStep` when the `Shift` key
|
|
55
|
+
* is held down and the slider value is changed by pressing `LeftArrow` or `RightArrow`. Think
|
|
56
|
+
* of it as `keyStep * shiftKeyMultiplier`.
|
|
57
|
+
*/
|
|
58
|
+
shiftKeyMultiplier: number;
|
|
59
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { SliderCSSVars } from './api/cssvars';
|
|
3
|
+
import type { SliderEvents } from './api/events';
|
|
4
|
+
import { type SliderState } from './api/state';
|
|
5
|
+
import { type SliderControllerProps } from './slider-controller';
|
|
6
|
+
/**
|
|
7
|
+
* Versatile and user-friendly input control designed for seamless cross-browser compatibility and
|
|
8
|
+
* accessibility with ARIA support. It offers a smooth user experience for both mouse and touch
|
|
9
|
+
* interactions and is highly customizable in terms of styling. Users can effortlessly input numeric
|
|
10
|
+
* values within a specified range, defined by a minimum and maximum value.
|
|
11
|
+
*
|
|
12
|
+
* @attr data-dragging - Whether slider thumb is being dragged.
|
|
13
|
+
* @attr data-pointing - Whether user's pointing device is over slider.
|
|
14
|
+
* @attr data-active - Whether slider is being interacted with.
|
|
15
|
+
* @attr data-focus - Whether slider is being keyboard focused.
|
|
16
|
+
* @attr data-hocus - Whether slider is being keyboard focused or hovered over.
|
|
17
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider}
|
|
18
|
+
*/
|
|
19
|
+
export declare class Slider extends Component<SliderProps, SliderState, SliderEvents, SliderCSSVars> {
|
|
20
|
+
#private;
|
|
21
|
+
static props: SliderProps;
|
|
22
|
+
static state: import("maverick.js").State<SliderState>;
|
|
23
|
+
constructor();
|
|
24
|
+
protected onSetup(): void;
|
|
25
|
+
}
|
|
26
|
+
export interface SliderProps extends SliderControllerProps {
|
|
27
|
+
/**
|
|
28
|
+
* The lowest slider value in the range of permitted values.
|
|
29
|
+
*/
|
|
30
|
+
min: number;
|
|
31
|
+
/**
|
|
32
|
+
* The greatest slider value in the range of permitted values.
|
|
33
|
+
*/
|
|
34
|
+
max: number;
|
|
35
|
+
/**
|
|
36
|
+
* The current slider value.
|
|
37
|
+
*/
|
|
38
|
+
value: number;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SliderOrientation = 'horizontal' | 'vertical';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { SliderOrientation } from './slider/types';
|
|
3
|
+
/**
|
|
4
|
+
* Used to provide users with a real-time or interactive preview of the value or selection they
|
|
5
|
+
* are making as they move the slider thumb. This can include displaying the current pointer
|
|
6
|
+
* value numerically, or displaying a thumbnail over the time slider.
|
|
7
|
+
*
|
|
8
|
+
* @attr data-visible - Whether the preview is visible.
|
|
9
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider#preview}
|
|
10
|
+
*/
|
|
11
|
+
export declare class SliderPreview extends Component<SliderPreviewProps> {
|
|
12
|
+
#private;
|
|
13
|
+
static props: SliderPreviewProps;
|
|
14
|
+
protected onSetup(): void;
|
|
15
|
+
protected onAttach(el: HTMLElement): void;
|
|
16
|
+
protected onConnect(el: HTMLElement): void;
|
|
17
|
+
}
|
|
18
|
+
export declare function updateSliderPreviewPlacement(el: HTMLElement, { clamp, offset, orientation, }: {
|
|
19
|
+
clamp: boolean;
|
|
20
|
+
offset: number;
|
|
21
|
+
orientation: SliderOrientation;
|
|
22
|
+
}): void;
|
|
23
|
+
export interface SliderPreviewProps {
|
|
24
|
+
/**
|
|
25
|
+
* The distance in pixels between the preview and the slider. You can also set
|
|
26
|
+
* the CSS variable `--media-slider-preview-offset` to adjust this offset.
|
|
27
|
+
*/
|
|
28
|
+
offset: number;
|
|
29
|
+
/**
|
|
30
|
+
* By default, the preview will be clamped to the left and right of the slider track. If this
|
|
31
|
+
* is set to `true`, the preview will flow outside of the container when at the edges.
|
|
32
|
+
*/
|
|
33
|
+
noClamp: boolean;
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Thumbnail } from '../thumbnails/thumbnail';
|
|
2
|
+
/**
|
|
3
|
+
* Used to display preview thumbnails when the user is hovering or dragging the time slider.
|
|
4
|
+
* The time ranges in the WebVTT file will automatically be matched based on the current slider
|
|
5
|
+
* pointer position.
|
|
6
|
+
*
|
|
7
|
+
* @attr data-loading - Whether thumbnail image is loading.
|
|
8
|
+
* @attr data-error - Whether an error occurred loading thumbnail.
|
|
9
|
+
* @attr data-hidden - Whether thumbnail is not available or failed to load.
|
|
10
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider-thumbnail}
|
|
11
|
+
*/
|
|
12
|
+
export declare class SliderThumbnail extends Thumbnail {
|
|
13
|
+
#private;
|
|
14
|
+
protected onAttach(el: HTMLElement): void;
|
|
15
|
+
protected getTime(): number;
|
|
16
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
/**
|
|
3
|
+
* Displays the specific numeric representation of the current or pointer value of the slider.
|
|
4
|
+
* When a user interacts with a slider by moving its thumb along the track, the slider value
|
|
5
|
+
* changes accordingly.
|
|
6
|
+
*
|
|
7
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider-value}
|
|
8
|
+
*/
|
|
9
|
+
export declare class SliderValue extends Component<SliderValueProps> {
|
|
10
|
+
#private;
|
|
11
|
+
static props: SliderValueProps;
|
|
12
|
+
protected onSetup(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the current value formatted as text based on prop settings.
|
|
15
|
+
*/
|
|
16
|
+
getValueText(): string;
|
|
17
|
+
}
|
|
18
|
+
export interface SliderValueProps {
|
|
19
|
+
/**
|
|
20
|
+
* Whether to use the slider's current value, or pointer value.
|
|
21
|
+
*/
|
|
22
|
+
type: 'current' | 'pointer';
|
|
23
|
+
/**
|
|
24
|
+
* Determines how the value is formatted. By default it will use the most appropriate formatting,
|
|
25
|
+
* for the time slider that's time, and for volume percent.
|
|
26
|
+
*/
|
|
27
|
+
format: 'value' | 'percent' | 'time' | null;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the time should always show the hours unit, even if the time is less than
|
|
30
|
+
* 1 hour. Only available if the `format` prop is set to `time`.
|
|
31
|
+
*
|
|
32
|
+
* @example `20:30 -> 0:20:35`
|
|
33
|
+
*/
|
|
34
|
+
showHours: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the time should display milliseconds. Only available if the `format` prop is set to
|
|
37
|
+
* `time`.
|
|
38
|
+
*/
|
|
39
|
+
showMs: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Whether the hours unit should be padded with zeroes to a length of 2. Only available if
|
|
42
|
+
* the `format` prop is set to `time`.
|
|
43
|
+
*
|
|
44
|
+
* @example `1:20:03 -> 01:20:03`
|
|
45
|
+
*/
|
|
46
|
+
padHours: boolean | null;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the minutes unit should be padded with zeroes to a length of 2. Setting this to `null`
|
|
49
|
+
* will pad minutes when hours is >=1. Only available if the `format` prop is set to `time`.
|
|
50
|
+
*
|
|
51
|
+
* @example `5:22 -> 05:22`
|
|
52
|
+
*/
|
|
53
|
+
padMinutes: boolean | null;
|
|
54
|
+
/**
|
|
55
|
+
* Round the value when formatted as a percentage to the given number of decimal places. Only
|
|
56
|
+
* available if `format` prop is `percent`.
|
|
57
|
+
*/
|
|
58
|
+
decimalPlaces: number;
|
|
59
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Component, State } from 'maverick.js';
|
|
2
|
+
import { type DOMEvent } from 'maverick.js/std';
|
|
3
|
+
import type { MediaCrossOrigin } from '../../../core/api/types';
|
|
4
|
+
/**
|
|
5
|
+
* Used to load a low-resolution video to be displayed when the user is hovering over or dragging
|
|
6
|
+
* the time slider. The preview video will automatically be updated to be in-sync with the current
|
|
7
|
+
* preview position, so ensure it has the same length as the original media (i.e., same duration).
|
|
8
|
+
*
|
|
9
|
+
* @attr data-loading - Whether the video is loading.
|
|
10
|
+
* @attr data-error - Whether an error occurred loading video.
|
|
11
|
+
* @attr data-hidden - Whether the video is not ready or has failed to load.
|
|
12
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider-video}
|
|
13
|
+
*/
|
|
14
|
+
export declare class SliderVideo extends Component<SliderVideoProps, SliderVideoState, SliderVideoEvents> {
|
|
15
|
+
#private;
|
|
16
|
+
static props: SliderVideoProps;
|
|
17
|
+
static state: State<SliderVideoState>;
|
|
18
|
+
get video(): HTMLVideoElement | null;
|
|
19
|
+
protected onSetup(): void;
|
|
20
|
+
protected onAttach(el: HTMLElement): void;
|
|
21
|
+
}
|
|
22
|
+
export interface SliderVideoProps {
|
|
23
|
+
/**
|
|
24
|
+
* The URL of a media resource to use.
|
|
25
|
+
*
|
|
26
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/src}
|
|
27
|
+
*/
|
|
28
|
+
src: string | null;
|
|
29
|
+
/**
|
|
30
|
+
* Defines how the media handles cross-origin requests, thereby enabling the
|
|
31
|
+
* configuration of the CORS requests for the element's fetched data.
|
|
32
|
+
*
|
|
33
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin}
|
|
34
|
+
*/
|
|
35
|
+
crossOrigin: true | MediaCrossOrigin | null;
|
|
36
|
+
}
|
|
37
|
+
export interface SliderVideoState {
|
|
38
|
+
video: HTMLVideoElement | null;
|
|
39
|
+
src: string | null;
|
|
40
|
+
crossOrigin: MediaCrossOrigin | null;
|
|
41
|
+
canPlay: boolean;
|
|
42
|
+
error: ErrorEvent | null;
|
|
43
|
+
hidden: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface SliderVideoEvents {
|
|
46
|
+
'can-play': SliderVideoCanPlayEvent;
|
|
47
|
+
error: SliderVideoErrorEvent;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Fired when the user agent can play the media, but estimates that **not enough** data has been
|
|
51
|
+
* loaded to play the media up to its end without having to stop for further buffering of content.
|
|
52
|
+
*
|
|
53
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/canplay_event}
|
|
54
|
+
*/
|
|
55
|
+
export interface SliderVideoCanPlayEvent extends DOMEvent<void> {
|
|
56
|
+
target: SliderVideo;
|
|
57
|
+
/** The `canplay` media event. */
|
|
58
|
+
readonly trigger: Event;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Fired when media loading or playback has encountered any issues (for example, a network
|
|
62
|
+
* connectivity problem). The event detail contains a potential message containing more
|
|
63
|
+
* information about the error (empty string if nothing available), and a code that identifies
|
|
64
|
+
* the general type of error that occurred.
|
|
65
|
+
*
|
|
66
|
+
* @see {@link https://html.spec.whatwg.org/multipage/media.html#error-codes}
|
|
67
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/error_event}
|
|
68
|
+
*/
|
|
69
|
+
export interface SliderVideoErrorEvent extends DOMEvent<void> {
|
|
70
|
+
target: SliderVideo;
|
|
71
|
+
/** The `error` media event. */
|
|
72
|
+
readonly trigger: Event;
|
|
73
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaRequestEvents } from '../../../core/api/media-request-events';
|
|
3
|
+
import type { SliderCSSVars } from './slider/api/cssvars';
|
|
4
|
+
import type { SliderEvents } from './slider/api/events';
|
|
5
|
+
import { type SliderState } from './slider/api/state';
|
|
6
|
+
import { type SliderControllerProps } from './slider/slider-controller';
|
|
7
|
+
/**
|
|
8
|
+
* Versatile and user-friendly input playback rate control designed for seamless cross-browser and
|
|
9
|
+
* provider compatibility and accessibility with ARIA support. It offers a smooth user experience
|
|
10
|
+
* for both mouse and touch interactions and is highly customizable in terms of styling.
|
|
11
|
+
*
|
|
12
|
+
* @attr data-dragging - Whether slider thumb is being dragged.
|
|
13
|
+
* @attr data-pointing - Whether user's pointing device is over slider.
|
|
14
|
+
* @attr data-active - Whether slider is being interacted with.
|
|
15
|
+
* @attr data-focus - Whether slider is being keyboard focused.
|
|
16
|
+
* @attr data-hocus - Whether slider is being keyboard focused or hovered over.
|
|
17
|
+
* @attr data-supported - Whether setting playback rate is supported.
|
|
18
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/speed-slider}
|
|
19
|
+
*/
|
|
20
|
+
export declare class SpeedSlider extends Component<SpeedSliderProps, SpeedSliderState, SpeedSliderEvents, SpeedSliderCSSVars> {
|
|
21
|
+
#private;
|
|
22
|
+
static props: SpeedSliderProps;
|
|
23
|
+
static state: import("maverick.js").State<SliderState>;
|
|
24
|
+
protected onSetup(): void;
|
|
25
|
+
protected onAttach(el: HTMLElement): void;
|
|
26
|
+
}
|
|
27
|
+
export interface SpeedSliderProps extends SliderControllerProps {
|
|
28
|
+
/**
|
|
29
|
+
* The minimum playback rate.
|
|
30
|
+
*/
|
|
31
|
+
min: number;
|
|
32
|
+
/**
|
|
33
|
+
* The maximum playback rate.
|
|
34
|
+
*/
|
|
35
|
+
max: number;
|
|
36
|
+
}
|
|
37
|
+
export interface SpeedSliderState extends SliderState {
|
|
38
|
+
}
|
|
39
|
+
export interface SpeedSliderEvents extends SliderEvents, Pick<MediaRequestEvents, 'media-rate-change-request'> {
|
|
40
|
+
}
|
|
41
|
+
export interface SpeedSliderCSSVars extends SliderCSSVars {
|
|
42
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { VTTCue } from 'media-captions';
|
|
3
|
+
/**
|
|
4
|
+
* Used to create predefined sections within a time slider interface based on the currently
|
|
5
|
+
* active chapters text track.
|
|
6
|
+
*
|
|
7
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider-chapters}
|
|
8
|
+
*/
|
|
9
|
+
export declare class SliderChapters extends Component<SliderChaptersProps, {}, SliderChaptersCSSVars> {
|
|
10
|
+
#private;
|
|
11
|
+
static props: SliderChaptersProps;
|
|
12
|
+
get cues(): VTTCue[];
|
|
13
|
+
get activeCue(): VTTCue | null;
|
|
14
|
+
get activePointerCue(): VTTCue | null;
|
|
15
|
+
protected onSetup(): void;
|
|
16
|
+
protected onAttach(el: HTMLElement): void;
|
|
17
|
+
protected onConnect(): void;
|
|
18
|
+
protected onDestroy(): void;
|
|
19
|
+
setRefs(refs: HTMLElement[]): void;
|
|
20
|
+
}
|
|
21
|
+
export interface SliderChaptersProps {
|
|
22
|
+
/**
|
|
23
|
+
* Whether chapters should be disabled.
|
|
24
|
+
*/
|
|
25
|
+
disabled: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface SliderChaptersCSSVars {
|
|
28
|
+
/**
|
|
29
|
+
* The percentage of the chapter that is filled.
|
|
30
|
+
*/
|
|
31
|
+
readonly 'chapter-fill': string;
|
|
32
|
+
/**
|
|
33
|
+
* The percentage of the chapter that has been buffered.
|
|
34
|
+
*/
|
|
35
|
+
readonly 'chapter-progress': string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaRequestEvents } from '../../../../core/api/media-request-events';
|
|
3
|
+
import type { SliderCSSVars } from '../slider/api/cssvars';
|
|
4
|
+
import type { SliderEvents } from '../slider/api/events';
|
|
5
|
+
import { type SliderState } from '../slider/api/state';
|
|
6
|
+
import { type SliderControllerProps } from '../slider/slider-controller';
|
|
7
|
+
/**
|
|
8
|
+
* Versatile and user-friendly input time control designed for seamless cross-browser and provider
|
|
9
|
+
* compatibility and accessibility with ARIA support. It offers a smooth user experience for both
|
|
10
|
+
* mouse and touch interactions and is highly customizable in terms of styling. Users can
|
|
11
|
+
* effortlessly change the current playback time within the range 0 to seekable end.
|
|
12
|
+
*
|
|
13
|
+
* @attr data-dragging - Whether slider thumb is being dragged.
|
|
14
|
+
* @attr data-pointing - Whether user's pointing device is over slider.
|
|
15
|
+
* @attr data-active - Whether slider is being interacted with.
|
|
16
|
+
* @attr data-focus - Whether slider is being keyboard focused.
|
|
17
|
+
* @attr data-hocus - Whether slider is being keyboard focused or hovered over.
|
|
18
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/time-slider}
|
|
19
|
+
*/
|
|
20
|
+
export declare class TimeSlider extends Component<TimeSliderProps, TimeSliderState, TimeSliderEvents, TimeSliderCSSVars> {
|
|
21
|
+
#private;
|
|
22
|
+
static props: TimeSliderProps;
|
|
23
|
+
static state: import("maverick.js").State<SliderState>;
|
|
24
|
+
constructor();
|
|
25
|
+
protected onSetup(): void;
|
|
26
|
+
protected onAttach(el: HTMLElement): void;
|
|
27
|
+
protected onConnect(el: HTMLElement): void;
|
|
28
|
+
}
|
|
29
|
+
export interface TimeSliderCSSVars extends SliderCSSVars {
|
|
30
|
+
/**
|
|
31
|
+
* The percentage of media playback that has been buffered.
|
|
32
|
+
*/
|
|
33
|
+
readonly 'slider-progress': string;
|
|
34
|
+
}
|
|
35
|
+
export interface TimeSliderProps extends SliderControllerProps {
|
|
36
|
+
/**
|
|
37
|
+
* Whether it should request playback to pause while the user is dragging the
|
|
38
|
+
* thumb. If the media was playing before the dragging starts, the state will be restored by
|
|
39
|
+
* dispatching a user play request once the dragging ends.
|
|
40
|
+
*/
|
|
41
|
+
pauseWhileDragging: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* The amount of milliseconds to throttle media seeking request events being dispatched.
|
|
44
|
+
*/
|
|
45
|
+
seekingRequestThrottle: number;
|
|
46
|
+
/**
|
|
47
|
+
* Whether touch swiping left or right on the player canvas should activate the time slider. This
|
|
48
|
+
* gesture makes it easier for touch users to drag anywhere on the player left or right to
|
|
49
|
+
* seek backwards or forwards, without directly interacting with time slider.
|
|
50
|
+
*/
|
|
51
|
+
noSwipeGesture: boolean;
|
|
52
|
+
}
|
|
53
|
+
export interface TimeSliderState extends SliderState {
|
|
54
|
+
}
|
|
55
|
+
export interface TimeSliderEvents extends SliderEvents, Pick<MediaRequestEvents, 'media-play-request' | 'media-pause-request' | 'media-seeking-request' | 'media-seek-request' | 'media-live-edge-request'> {
|
|
56
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaRequestEvents } from '../../../core/api/media-request-events';
|
|
3
|
+
import type { SliderCSSVars } from './slider/api/cssvars';
|
|
4
|
+
import type { SliderEvents } from './slider/api/events';
|
|
5
|
+
import { type SliderState } from './slider/api/state';
|
|
6
|
+
import { type SliderControllerProps } from './slider/slider-controller';
|
|
7
|
+
/**
|
|
8
|
+
* Versatile and user-friendly input volume control designed for seamless cross-browser and provider
|
|
9
|
+
* compatibility and accessibility with ARIA support. It offers a smooth user experience for both
|
|
10
|
+
* mouse and touch interactions and is highly customizable in terms of styling. Users can
|
|
11
|
+
* effortlessly change the volume level within the range 0 (muted) to 100.
|
|
12
|
+
*
|
|
13
|
+
* @attr data-dragging - Whether slider thumb is being dragged.
|
|
14
|
+
* @attr data-pointing - Whether user's pointing device is over slider.
|
|
15
|
+
* @attr data-active - Whether slider is being interacted with.
|
|
16
|
+
* @attr data-focus - Whether slider is being keyboard focused.
|
|
17
|
+
* @attr data-hocus - Whether slider is being keyboard focused or hovered over.
|
|
18
|
+
* @attr data-supported - Whether volume control is supported.
|
|
19
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/volume-slider}
|
|
20
|
+
*/
|
|
21
|
+
export declare class VolumeSlider extends Component<VolumeSliderProps, VolumeSliderState, VolumeSliderEvents, VolumeSliderCSSVars> {
|
|
22
|
+
#private;
|
|
23
|
+
static props: VolumeSliderProps;
|
|
24
|
+
static state: import("maverick.js").State<SliderState>;
|
|
25
|
+
protected onSetup(): void;
|
|
26
|
+
protected onAttach(el: HTMLElement): void;
|
|
27
|
+
}
|
|
28
|
+
export interface VolumeSliderProps extends SliderControllerProps {
|
|
29
|
+
}
|
|
30
|
+
export interface VolumeSliderState extends SliderState {
|
|
31
|
+
}
|
|
32
|
+
export interface VolumeSliderEvents extends SliderEvents, Pick<MediaRequestEvents, 'media-volume-change-request'> {
|
|
33
|
+
}
|
|
34
|
+
export interface VolumeSliderCSSVars extends SliderCSSVars {
|
|
35
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type ReadSignal } from 'maverick.js';
|
|
2
|
+
import { type MediaContext } from '../../../core/api/media-context';
|
|
3
|
+
import type { MediaCrossOrigin } from '../../../core/api/types';
|
|
4
|
+
export declare class ThumbnailsLoader {
|
|
5
|
+
#private;
|
|
6
|
+
readonly $images: import("maverick.js").WriteSignal<ThumbnailImage[]>;
|
|
7
|
+
static create(src: ReadSignal<ThumbnailSrc>, crossOrigin: ReadSignal<MediaCrossOrigin | null>): ThumbnailsLoader;
|
|
8
|
+
constructor(src: ReadSignal<ThumbnailSrc>, crossOrigin: ReadSignal<MediaCrossOrigin | null>, media: MediaContext);
|
|
9
|
+
}
|
|
10
|
+
export type ThumbnailSrc = string | ThumbnailImageInit[] | ThumbnailStoryboard | MuxThumbnailStoryboard | null;
|
|
11
|
+
export interface ThumbnailStoryboard {
|
|
12
|
+
url: string;
|
|
13
|
+
tileWidth: number;
|
|
14
|
+
tileHeight: number;
|
|
15
|
+
tiles: ThumbnailTile[];
|
|
16
|
+
}
|
|
17
|
+
export interface ThumbnailTile {
|
|
18
|
+
startTime: number;
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
}
|
|
22
|
+
export interface MuxThumbnailStoryboard {
|
|
23
|
+
url: string;
|
|
24
|
+
tile_width: number;
|
|
25
|
+
tile_height: number;
|
|
26
|
+
tiles: MuxThumbnailTile[];
|
|
27
|
+
}
|
|
28
|
+
export interface MuxThumbnailTile {
|
|
29
|
+
start: number;
|
|
30
|
+
x: number;
|
|
31
|
+
y: number;
|
|
32
|
+
}
|
|
33
|
+
export interface ThumbnailImageInit {
|
|
34
|
+
url: string | URL;
|
|
35
|
+
startTime: number;
|
|
36
|
+
endTime?: number;
|
|
37
|
+
width?: number;
|
|
38
|
+
height?: number;
|
|
39
|
+
coords?: ThumbnailCoords;
|
|
40
|
+
}
|
|
41
|
+
export interface ThumbnailImage extends Omit<ThumbnailImageInit, 'url'> {
|
|
42
|
+
url: URL;
|
|
43
|
+
}
|
|
44
|
+
export interface ThumbnailCoords {
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Component, State } from 'maverick.js';
|
|
2
|
+
import { type MediaContext } from '../../../core/api/media-context';
|
|
3
|
+
import type { MediaCrossOrigin } from '../../../core/api/types';
|
|
4
|
+
import { type ThumbnailImage, type ThumbnailSrc } from './thumbnail-loader';
|
|
5
|
+
/**
|
|
6
|
+
* Used to load and display a preview thumbnail at the given `time`.
|
|
7
|
+
*
|
|
8
|
+
* @attr data-loading - Whether thumbnail image is loading.
|
|
9
|
+
* @attr data-error - Whether an error occurred loading thumbnail.
|
|
10
|
+
* @attr data-hidden - Whether thumbnail is not available or failed to load.
|
|
11
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/display/thumbnail}
|
|
12
|
+
*/
|
|
13
|
+
export declare class Thumbnail extends Component<ThumbnailProps, ThumbnailState> {
|
|
14
|
+
#private;
|
|
15
|
+
static props: ThumbnailProps;
|
|
16
|
+
static state: State<ThumbnailState>;
|
|
17
|
+
protected media: MediaContext;
|
|
18
|
+
protected onSetup(): void;
|
|
19
|
+
protected onConnect(el: HTMLElement): void;
|
|
20
|
+
protected getTime(): number;
|
|
21
|
+
}
|
|
22
|
+
export interface ThumbnailProps {
|
|
23
|
+
/**
|
|
24
|
+
* The thumbnails resource.
|
|
25
|
+
*
|
|
26
|
+
* @see {@link https://www.vidstack.io/docs/player/core-concepts/loading#thumbnails}
|
|
27
|
+
*/
|
|
28
|
+
src: ThumbnailSrc;
|
|
29
|
+
/**
|
|
30
|
+
* Finds, loads, and displays the first active thumbnail cue that's start/end times are in range.
|
|
31
|
+
*/
|
|
32
|
+
time: number;
|
|
33
|
+
/**
|
|
34
|
+
* Defines how the media handles cross-origin requests, thereby enabling the
|
|
35
|
+
* configuration of the CORS requests for the element's fetched data.
|
|
36
|
+
*
|
|
37
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin}
|
|
38
|
+
*/
|
|
39
|
+
crossOrigin: true | MediaCrossOrigin | null;
|
|
40
|
+
}
|
|
41
|
+
export interface ThumbnailState {
|
|
42
|
+
src: string;
|
|
43
|
+
img: HTMLImageElement | null | undefined;
|
|
44
|
+
crossOrigin: MediaCrossOrigin | null;
|
|
45
|
+
thumbnails: ThumbnailImage[];
|
|
46
|
+
activeThumbnail: ThumbnailImage | null;
|
|
47
|
+
loading: boolean;
|
|
48
|
+
error: ErrorEvent | null;
|
|
49
|
+
hidden: boolean;
|
|
50
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Component, State } from 'maverick.js';
|
|
2
|
+
/**
|
|
3
|
+
* Outputs a media duration (eg: `currentTime`, `duration`, `bufferedAmount`, etc.) value as time
|
|
4
|
+
* formatted text.
|
|
5
|
+
*
|
|
6
|
+
* @attr data-type - The type prop setting (current, duration, etc.).
|
|
7
|
+
* @attr data-remainder - Whether time remaining is being shown.
|
|
8
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/display/time}
|
|
9
|
+
*/
|
|
10
|
+
export declare class Time extends Component<TimeProps, TimeState> {
|
|
11
|
+
#private;
|
|
12
|
+
static props: TimeProps;
|
|
13
|
+
static state: State<TimeState>;
|
|
14
|
+
protected onSetup(): void;
|
|
15
|
+
protected onAttach(el: HTMLElement): void;
|
|
16
|
+
protected onConnect(el: HTMLElement): void;
|
|
17
|
+
}
|
|
18
|
+
export interface TimeProps {
|
|
19
|
+
/**
|
|
20
|
+
* The type of media time to track.
|
|
21
|
+
*/
|
|
22
|
+
type: 'current' | 'buffered' | 'duration';
|
|
23
|
+
/**
|
|
24
|
+
* Whether the time should always show the hours unit, even if the time is less than
|
|
25
|
+
* 1 hour.
|
|
26
|
+
*
|
|
27
|
+
* @example `20:30 -> 0:20:35`
|
|
28
|
+
*/
|
|
29
|
+
showHours: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the hours unit should be padded with zeroes to a length of 2.
|
|
32
|
+
*
|
|
33
|
+
* @example `1:20:03 -> 01:20:03`
|
|
34
|
+
*/
|
|
35
|
+
padHours: boolean | null;
|
|
36
|
+
/**
|
|
37
|
+
* Whether the minutes unit should be padded with zeroes to a length of 2.
|
|
38
|
+
*
|
|
39
|
+
* @example `5:22 -> 05:22`
|
|
40
|
+
*/
|
|
41
|
+
padMinutes: boolean | null;
|
|
42
|
+
/**
|
|
43
|
+
* Whether to display the remaining time from the current type, until the duration is reached.
|
|
44
|
+
*
|
|
45
|
+
* @example `duration` - `currentTime`
|
|
46
|
+
*/
|
|
47
|
+
remainder: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Whether on press the time should invert showing the remaining time (i.e., toggle the
|
|
50
|
+
* `remainder` prop).
|
|
51
|
+
*/
|
|
52
|
+
toggle: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Provides a hint that the time is not visible and stops all events and updates to be more
|
|
55
|
+
* power efficient.
|
|
56
|
+
*/
|
|
57
|
+
hidden: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface TimeState {
|
|
60
|
+
timeText: string;
|
|
61
|
+
hidden: boolean;
|
|
62
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
/**
|
|
3
|
+
* This component contains the content that is visible when the tooltip trigger is interacted with.
|
|
4
|
+
*
|
|
5
|
+
* @attr data-visible - Whether tooltip is visible.
|
|
6
|
+
* @attr data-placement - The placement prop setting.
|
|
7
|
+
* @attr data-hocus - Whether tooltip is being keyboard focused or hovered over.
|
|
8
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/tooltip}
|
|
9
|
+
*/
|
|
10
|
+
export declare class TooltipContent extends Component<TooltipContentProps> {
|
|
11
|
+
#private;
|
|
12
|
+
static props: TooltipContentProps;
|
|
13
|
+
constructor();
|
|
14
|
+
protected onAttach(el: HTMLElement): void;
|
|
15
|
+
protected onConnect(el: HTMLElement): void;
|
|
16
|
+
}
|
|
17
|
+
export type TooltipPlacement = TooltipPlacementSide | `${TooltipPlacementSide} ${TooltipPlacementAlign}`;
|
|
18
|
+
export type TooltipPlacementSide = 'top' | 'right' | 'bottom' | 'left';
|
|
19
|
+
export type TooltipPlacementAlign = 'start' | 'center' | 'end';
|
|
20
|
+
export interface TooltipContentProps {
|
|
21
|
+
/**
|
|
22
|
+
* A space-separated list which specifies the side and alignment of the tooltip content relative
|
|
23
|
+
* to the trigger.
|
|
24
|
+
*
|
|
25
|
+
* @example `top center`
|
|
26
|
+
* @example `bottom end`
|
|
27
|
+
*/
|
|
28
|
+
placement: TooltipPlacement;
|
|
29
|
+
/**
|
|
30
|
+
* The distance in pixels between the content and the tooltip trigger. You can also set
|
|
31
|
+
* the CSS variable `--media-tooltip-y-offset` to adjust this offset.
|
|
32
|
+
*/
|
|
33
|
+
offset: number;
|
|
34
|
+
/**
|
|
35
|
+
* The offset in pixels from the start/center/end aligned position. You can also set
|
|
36
|
+
* the CSS variable `--media-tooltip-x-offset` to adjust this offset.
|
|
37
|
+
*/
|
|
38
|
+
alignOffset: number;
|
|
39
|
+
}
|