@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,28 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaFullscreenRequestTarget, MediaRequestEvents } from '../../../core/api/media-request-events';
|
|
3
|
+
import { type ToggleButtonControllerProps } from './toggle-button-controller';
|
|
4
|
+
export interface FullscreenButtonProps extends ToggleButtonControllerProps {
|
|
5
|
+
/**
|
|
6
|
+
* The target element on which to request fullscreen on. The target can be `media`
|
|
7
|
+
* (i.e., `<media-player>`) or `provider`. The `prefer-media` option will first see if the native
|
|
8
|
+
* fullscreen API is available, if not it'll try the media provider.
|
|
9
|
+
*/
|
|
10
|
+
target: MediaFullscreenRequestTarget | undefined;
|
|
11
|
+
}
|
|
12
|
+
export interface FullscreenButtonEvents extends Pick<MediaRequestEvents, 'media-enter-fullscreen-request' | 'media-exit-fullscreen-request'> {
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A button for toggling the fullscreen mode of the player.
|
|
16
|
+
*
|
|
17
|
+
* @attr data-active - Whether fullscreen mode is active.
|
|
18
|
+
* @attr data-supported - Whether fullscreen mode is supported.
|
|
19
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/fullscreen-button}
|
|
20
|
+
* @see {@link https://www.vidstack.io/docs/player/api/fullscreen}
|
|
21
|
+
*/
|
|
22
|
+
export declare class FullscreenButton extends Component<FullscreenButtonProps, {}, FullscreenButtonEvents> {
|
|
23
|
+
#private;
|
|
24
|
+
static props: FullscreenButtonProps;
|
|
25
|
+
constructor();
|
|
26
|
+
protected onSetup(): void;
|
|
27
|
+
protected onAttach(el: HTMLElement): void;
|
|
28
|
+
}
|
|
@@ -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 GoogleCastButtonProps extends ToggleButtonControllerProps {
|
|
5
|
+
}
|
|
6
|
+
export interface GoogleCastButtonEvents extends Pick<MediaRequestEvents, 'media-google-cast-request'> {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A button for requesting remote playback via Google Cast.
|
|
10
|
+
*
|
|
11
|
+
* @attr data-active - Whether Google Cast is connected.
|
|
12
|
+
* @attr data-supported - Whether Google Cast is available.
|
|
13
|
+
* @attr data-state - Current connection state.
|
|
14
|
+
* @see {@link https://developers.google.com/cast/docs/overview}
|
|
15
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/google-cast-button}
|
|
16
|
+
*/
|
|
17
|
+
export declare class GoogleCastButton extends Component<GoogleCastButtonProps, {}, GoogleCastButtonEvents> {
|
|
18
|
+
#private;
|
|
19
|
+
static props: GoogleCastButtonProps;
|
|
20
|
+
constructor();
|
|
21
|
+
protected onSetup(): void;
|
|
22
|
+
protected onAttach(el: HTMLElement): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaRequestEvents } from '../../../core/api/media-request-events';
|
|
3
|
+
export interface LiveButtonProps {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the button should be disabled (non-interactive). This will prevent seeking to the
|
|
6
|
+
* live edge when pressed.
|
|
7
|
+
*/
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface LiveButtonEvents extends Pick<MediaRequestEvents, 'media-live-edge-request'> {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* This component displays the current live status of the stream. This includes whether it's
|
|
14
|
+
* live, at the live edge, or not live. In addition, when this button is pressed it will skip
|
|
15
|
+
* ahead to the live edge.
|
|
16
|
+
*
|
|
17
|
+
* @attr data-edge - Playback is at the live edge.
|
|
18
|
+
* @attr data-hidden - Whether current media is _not_ live.
|
|
19
|
+
* @attr data-focus - Whether button is being keyboard focused.
|
|
20
|
+
* @attr data-hocus - Whether button is being keyboard focused or hovered over.
|
|
21
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/live-button}
|
|
22
|
+
*/
|
|
23
|
+
export declare class LiveButton extends Component<LiveButtonProps, {}, LiveButtonEvents> {
|
|
24
|
+
#private;
|
|
25
|
+
static props: LiveButtonProps;
|
|
26
|
+
constructor();
|
|
27
|
+
protected onSetup(): void;
|
|
28
|
+
protected onAttach(el: HTMLElement): void;
|
|
29
|
+
protected onConnect(el: HTMLElement): void;
|
|
30
|
+
}
|
|
@@ -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 MuteButtonProps extends ToggleButtonControllerProps {
|
|
5
|
+
}
|
|
6
|
+
export interface MuteButtonEvents extends Pick<MediaRequestEvents, 'media-mute-request' | 'media-unmute-request'> {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A button for toggling the muted state of the player.
|
|
10
|
+
*
|
|
11
|
+
* @attr data-muted - Whether volume is muted (0).
|
|
12
|
+
* @attr data-state - Current volume setting (low/high/muted).
|
|
13
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/mute-button}
|
|
14
|
+
*/
|
|
15
|
+
export declare class MuteButton extends Component<MuteButtonProps, {}, MuteButtonEvents> {
|
|
16
|
+
#private;
|
|
17
|
+
static props: MuteButtonProps;
|
|
18
|
+
constructor();
|
|
19
|
+
protected onSetup(): void;
|
|
20
|
+
protected onAttach(el: HTMLElement): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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 PIPButtonProps extends ToggleButtonControllerProps {
|
|
5
|
+
}
|
|
6
|
+
export interface PIPButtonEvents extends Pick<MediaRequestEvents, 'media-enter-pip-request' | 'media-exit-pip-request'> {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A button for toggling the picture-in-picture (PIP) mode of the player.
|
|
10
|
+
*
|
|
11
|
+
* @attr data-active - Whether picture-in-picture mode is active.
|
|
12
|
+
* @attr data-supported - Whether picture-in-picture mode is available.
|
|
13
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/pip-button}
|
|
14
|
+
* @see {@link https://www.vidstack.io/docs/player/api/picture-in-picture}
|
|
15
|
+
*/
|
|
16
|
+
export declare class PIPButton extends Component<PIPButtonProps, {}, PIPButtonEvents> {
|
|
17
|
+
#private;
|
|
18
|
+
static props: PIPButtonProps;
|
|
19
|
+
constructor();
|
|
20
|
+
protected onSetup(): void;
|
|
21
|
+
protected onAttach(el: HTMLElement): void;
|
|
22
|
+
}
|
|
@@ -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 PlayButtonProps extends ToggleButtonControllerProps {
|
|
5
|
+
}
|
|
6
|
+
export interface PlayButtonEvents extends Pick<MediaRequestEvents, 'media-play-request' | 'media-pause-request'> {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A button for toggling the playback state (play/pause) of the current media.
|
|
10
|
+
*
|
|
11
|
+
* @attr data-paused - Whether playback has stopped.
|
|
12
|
+
* @attr data-ended - Whether playback has ended.
|
|
13
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/play-button}
|
|
14
|
+
*/
|
|
15
|
+
export declare class PlayButton extends Component<PlayButtonProps, {}, PlayButtonEvents> {
|
|
16
|
+
#private;
|
|
17
|
+
static props: PlayButtonProps;
|
|
18
|
+
constructor();
|
|
19
|
+
protected onSetup(): void;
|
|
20
|
+
protected onAttach(el: HTMLElement): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import type { MediaRequestEvents } from '../../../core/api/media-request-events';
|
|
3
|
+
export interface SeekButtonProps {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the button should be disabled (non-interactive).
|
|
6
|
+
*/
|
|
7
|
+
disabled: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* The amount to seek the media playback forwards (positive number) or backwards (negative number)
|
|
10
|
+
* when the seek button is pressed.
|
|
11
|
+
*/
|
|
12
|
+
seconds: number;
|
|
13
|
+
}
|
|
14
|
+
export interface SeekButtonEvents extends Pick<MediaRequestEvents, 'media-seek-request'> {
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A button for seeking the current media playback forwards or backwards by a specified amount.
|
|
18
|
+
*
|
|
19
|
+
* @attr data-seeking - Whether a seeking operation is in progress.
|
|
20
|
+
* @attr data-supported - Whether seeking operations are permitted.
|
|
21
|
+
* @attr data-focus - Whether button is being keyboard focused.
|
|
22
|
+
* @attr data-hocus - Whether button is being keyboard focused or hovered over.
|
|
23
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/seek-button}
|
|
24
|
+
*/
|
|
25
|
+
export declare class SeekButton extends Component<SeekButtonProps, {}, SeekButtonEvents> {
|
|
26
|
+
#private;
|
|
27
|
+
static props: SeekButtonProps;
|
|
28
|
+
constructor();
|
|
29
|
+
protected onSetup(): void;
|
|
30
|
+
protected onAttach(el: HTMLElement): void;
|
|
31
|
+
protected onConnect(el: HTMLElement): void;
|
|
32
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ViewController, type ReadSignal } from 'maverick.js';
|
|
2
|
+
export interface ToggleButtonControllerProps {
|
|
3
|
+
/**
|
|
4
|
+
* Whether the button should be disabled (non-interactive).
|
|
5
|
+
*/
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface ToggleButtonDelegate {
|
|
9
|
+
isPresssed: ReadSignal<boolean>;
|
|
10
|
+
keyShortcut?: string;
|
|
11
|
+
onPress?(event: Event): void;
|
|
12
|
+
}
|
|
13
|
+
export declare class ToggleButtonController extends ViewController<ToggleButtonControllerProps> {
|
|
14
|
+
#private;
|
|
15
|
+
static props: ToggleButtonControllerProps;
|
|
16
|
+
constructor(delegate: ToggleButtonDelegate);
|
|
17
|
+
protected onSetup(): void;
|
|
18
|
+
protected onAttach(el: HTMLElement): void;
|
|
19
|
+
protected onConnect(el: HTMLElement): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
export interface ToggleButtonProps {
|
|
3
|
+
/**
|
|
4
|
+
* Whether it should start in the on (pressed) state.
|
|
5
|
+
*/
|
|
6
|
+
defaultPressed: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Whether the button should be disabled (non-interactive).
|
|
9
|
+
*/
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A toggle button is a two-state button that can be either off (not pressed) or on (pressed).
|
|
14
|
+
*
|
|
15
|
+
* @attr data-pressed - Whether the toggle is in an "on" state (pressed).
|
|
16
|
+
* @attr aria-pressed - Same as `data-pressed` but `"true"` or `"false"`.
|
|
17
|
+
* @attr data-focus - Whether button is being keyboard focused.
|
|
18
|
+
* @attr data-hocus - Whether button is being keyboard focused or hovered over.
|
|
19
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/toggle-button}
|
|
20
|
+
*/
|
|
21
|
+
export declare class ToggleButton<Props extends ToggleButtonProps = ToggleButtonProps> extends Component<Props> {
|
|
22
|
+
#private;
|
|
23
|
+
static props: ToggleButtonProps;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the toggle is currently in a `pressed` state.
|
|
26
|
+
*/
|
|
27
|
+
get pressed(): boolean;
|
|
28
|
+
constructor();
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CaptionsRenderer } from 'media-captions';
|
|
2
|
+
import type { TextRenderer } from '../../../core/tracks/text/render/text-renderer';
|
|
3
|
+
import type { TextTrack } from '../../../core/tracks/text/text-track';
|
|
4
|
+
export declare class CaptionsTextRenderer implements TextRenderer {
|
|
5
|
+
#private;
|
|
6
|
+
readonly priority = 10;
|
|
7
|
+
constructor(renderer: CaptionsRenderer);
|
|
8
|
+
attach(): void;
|
|
9
|
+
canRender(): boolean;
|
|
10
|
+
detach(): void;
|
|
11
|
+
changeTrack(track: TextTrack | null): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
export interface CaptionsProps {
|
|
3
|
+
textDir: 'ltr' | 'rtl';
|
|
4
|
+
/**
|
|
5
|
+
* The text to be displayed when an example caption is being shown.
|
|
6
|
+
*/
|
|
7
|
+
exampleText: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Renders and displays captions/subtitles. This will be an overlay for video and a simple
|
|
11
|
+
* captions box for audio.
|
|
12
|
+
*
|
|
13
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/display/captions}
|
|
14
|
+
*/
|
|
15
|
+
export declare class Captions extends Component<CaptionsProps> {
|
|
16
|
+
#private;
|
|
17
|
+
static props: CaptionsProps;
|
|
18
|
+
static lib: import("maverick.js").WriteSignal<typeof import("media-captions") | null>;
|
|
19
|
+
protected onSetup(): void;
|
|
20
|
+
protected onAttach(el: HTMLElement): void;
|
|
21
|
+
protected onConnect(el: HTMLElement): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
/**
|
|
3
|
+
* This component creates a container for media controls.
|
|
4
|
+
*
|
|
5
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/media/controls#group}
|
|
6
|
+
*/
|
|
7
|
+
export declare class ControlsGroup extends Component {
|
|
8
|
+
protected onAttach(el: HTMLElement): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import { DOMEvent } from 'maverick.js/std';
|
|
3
|
+
/**
|
|
4
|
+
* This component creates a container for control groups.
|
|
5
|
+
*
|
|
6
|
+
* @attr data-visible - Whether controls should be visible.
|
|
7
|
+
* @attr data-pip - Whether picture-in-picture mode is active.
|
|
8
|
+
* @attr data-fullscreen - Whether fullscreen mode is active.
|
|
9
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/media/controls}
|
|
10
|
+
*/
|
|
11
|
+
export declare class Controls extends Component<ControlsProps, {}, ControlsEvents> {
|
|
12
|
+
#private;
|
|
13
|
+
static props: ControlsProps;
|
|
14
|
+
protected onSetup(): void;
|
|
15
|
+
protected onAttach(el: HTMLElement): void;
|
|
16
|
+
}
|
|
17
|
+
export interface ControlsProps {
|
|
18
|
+
/**
|
|
19
|
+
* The default amount of delay in milliseconds while media playback is progressing without user
|
|
20
|
+
* activity to hide the controls.
|
|
21
|
+
*/
|
|
22
|
+
hideDelay: number;
|
|
23
|
+
/**
|
|
24
|
+
* Whether controls visibility should be toggled when the mouse enters and leaves the player
|
|
25
|
+
* container.
|
|
26
|
+
*/
|
|
27
|
+
hideOnMouseLeave: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface ControlsEvents {
|
|
30
|
+
change: ControlsChangeEvent;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Fired when the active state of the controls change.
|
|
34
|
+
*
|
|
35
|
+
* @detail isVisible
|
|
36
|
+
*/
|
|
37
|
+
export interface ControlsChangeEvent extends DOMEvent<boolean> {
|
|
38
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import { DOMEvent } from 'maverick.js/std';
|
|
3
|
+
/**
|
|
4
|
+
* This component enables actions to be performed on the media based on user gestures.
|
|
5
|
+
*
|
|
6
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/media/gesture}
|
|
7
|
+
*/
|
|
8
|
+
export declare class Gesture extends Component<GestureProps, {}, GestureEvents> {
|
|
9
|
+
#private;
|
|
10
|
+
static props: GestureProps;
|
|
11
|
+
protected onSetup(): void;
|
|
12
|
+
protected onAttach(el: HTMLElement): void;
|
|
13
|
+
protected onConnect(el: HTMLElement): void;
|
|
14
|
+
}
|
|
15
|
+
export interface GestureProps {
|
|
16
|
+
/**
|
|
17
|
+
* Whether this gesture should not be triggered.
|
|
18
|
+
*/
|
|
19
|
+
disabled: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The DOM event type that will trigger this gesture. It can be any valid DOM event type. Any
|
|
22
|
+
* event can be prefixed with `dbl` to ensure it occurs twice in succession (max 200ms gap).
|
|
23
|
+
*
|
|
24
|
+
* @example 'pointerup'
|
|
25
|
+
* @example 'dblpointerup'
|
|
26
|
+
* @example 'mouseleave'
|
|
27
|
+
*/
|
|
28
|
+
event: GestureEventType | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* An action describes the type of media request event that will be dispatched, which will
|
|
31
|
+
* ultimately perform some operation on the player.
|
|
32
|
+
*
|
|
33
|
+
* @example 'play'
|
|
34
|
+
* @example 'seek:30'
|
|
35
|
+
* @example 'seek:-30'
|
|
36
|
+
* @example 'toggle:paused'
|
|
37
|
+
*/
|
|
38
|
+
action: GestureAction | undefined;
|
|
39
|
+
}
|
|
40
|
+
export type GestureEventType = keyof HTMLElementEventMap | `dbl${keyof HTMLElementEventMap}`;
|
|
41
|
+
export type GestureAction = 'play' | 'pause' | `seek:${number}` | `toggle:${'paused' | 'muted' | 'fullscreen' | 'controls'}`;
|
|
42
|
+
export interface GestureEvents {
|
|
43
|
+
'will-trigger': GestureWillTriggerEvent;
|
|
44
|
+
trigger: GestureTriggerEvent;
|
|
45
|
+
}
|
|
46
|
+
export interface GestureEvent<Detail = unknown> extends DOMEvent<Detail> {
|
|
47
|
+
target: Gesture;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* This event will fire before the gesture action is triggered. Calling `event.preventDefault()`
|
|
51
|
+
* will stop the action from being triggered.
|
|
52
|
+
*
|
|
53
|
+
* @detail action
|
|
54
|
+
* @cancelable
|
|
55
|
+
*/
|
|
56
|
+
export interface GestureWillTriggerEvent extends GestureEvent<GestureAction> {
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* This event will fire after the gesture action has been triggered.
|
|
60
|
+
*
|
|
61
|
+
* @detail action
|
|
62
|
+
*/
|
|
63
|
+
export interface GestureTriggerEvent extends GestureEvent<GestureAction> {
|
|
64
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import { DOMEvent } from 'maverick.js/std';
|
|
3
|
+
/**
|
|
4
|
+
* A button that controls the opening and closing of a menu component. The button will become a
|
|
5
|
+
* menuitem when used inside a submenu.
|
|
6
|
+
*
|
|
7
|
+
* @attr data-root - Whether this is the root menu button.
|
|
8
|
+
* @attr data-submenu - Whether menu button is part of a submenu.
|
|
9
|
+
* @attr data-open - Whether menu is currently open.
|
|
10
|
+
* @attr data-focus - Whether button is being keyboard focused.
|
|
11
|
+
* @attr data-hocus - Whether button is being keyboard focused or hovered over.
|
|
12
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/menu/menu}
|
|
13
|
+
*/
|
|
14
|
+
export declare class MenuButton extends Component<MenuButtonProps, {}, MenuButtonEvents> {
|
|
15
|
+
#private;
|
|
16
|
+
static props: MenuButtonProps;
|
|
17
|
+
get expanded(): boolean;
|
|
18
|
+
constructor();
|
|
19
|
+
protected onSetup(): void;
|
|
20
|
+
protected onAttach(el: HTMLElement): void;
|
|
21
|
+
protected onConnect(el: HTMLElement): void;
|
|
22
|
+
}
|
|
23
|
+
export interface MenuButtonProps {
|
|
24
|
+
/**
|
|
25
|
+
* Whether the button should be disabled (non-interactive).
|
|
26
|
+
*/
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface MenuButtonEvents {
|
|
30
|
+
select: MenuButtonSelectEvent;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Fired when the button is pressed via mouse, touch, or keyboard.
|
|
34
|
+
*/
|
|
35
|
+
export interface MenuButtonSelectEvent extends DOMEvent<void> {
|
|
36
|
+
target: MenuButton;
|
|
37
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ReadSignal, type WriteSignal } from 'maverick.js';
|
|
2
|
+
import type { Menu } from './menu';
|
|
3
|
+
import type { MenuButton } from './menu-button';
|
|
4
|
+
import type { MenuItems } from './menu-items';
|
|
5
|
+
export interface MenuContext {
|
|
6
|
+
readonly submenu: boolean;
|
|
7
|
+
readonly expanded: ReadSignal<boolean>;
|
|
8
|
+
readonly hint: WriteSignal<string>;
|
|
9
|
+
readonly button: ReadSignal<HTMLElement | null>;
|
|
10
|
+
readonly content: ReadSignal<HTMLElement | null>;
|
|
11
|
+
attachMenuButton(button: MenuButton): void;
|
|
12
|
+
attachMenuItems(menuItems: MenuItems): void;
|
|
13
|
+
attachObserver(observer: MenuObserver): void;
|
|
14
|
+
disable(disable: boolean): void;
|
|
15
|
+
disableMenuButton(disable: boolean): void;
|
|
16
|
+
addSubmenu(menu: Menu): void;
|
|
17
|
+
onTransitionEvent(callback: (event: TransitionEvent) => void): void;
|
|
18
|
+
}
|
|
19
|
+
export interface MenuObserver {
|
|
20
|
+
onOpen?(trigger?: Event): void;
|
|
21
|
+
onClose?(trigger?: Event): void;
|
|
22
|
+
}
|
|
23
|
+
export declare const menuContext: import("maverick.js").Context<MenuContext>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface MenuFocusControllerDelegate {
|
|
2
|
+
closeMenu(trigger?: Event): void;
|
|
3
|
+
}
|
|
4
|
+
export declare class MenuFocusController {
|
|
5
|
+
#private;
|
|
6
|
+
get items(): HTMLElement[];
|
|
7
|
+
constructor(delegate: MenuFocusControllerDelegate);
|
|
8
|
+
attachMenu(el: HTMLElement): void;
|
|
9
|
+
listen(): void;
|
|
10
|
+
update(): void;
|
|
11
|
+
scroll(index?: number): void;
|
|
12
|
+
focusActive(scroll?: boolean): void;
|
|
13
|
+
}
|
|
14
|
+
export declare function getMenuController(el: HTMLElement): HTMLElement | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MenuButton } from './menu-button';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a specific option or action, typically displayed as a text label or icon, which
|
|
4
|
+
* users can select to access or perform a particular function or view related content.
|
|
5
|
+
*
|
|
6
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/menu/menu}
|
|
7
|
+
*/
|
|
8
|
+
export declare class MenuItem extends MenuButton {
|
|
9
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
/**
|
|
3
|
+
* Menu items can be used to display settings or arbitrary content in a floating panel.
|
|
4
|
+
*
|
|
5
|
+
* @attr data-root - Whether this is the root menu items.
|
|
6
|
+
* @attr data-submenu - Whether menu items are part of a submenu.
|
|
7
|
+
* @attr data-open - Whether menu items are currently visible.
|
|
8
|
+
* @attr data-keyboard - Whether the menu is opened via keyboard.
|
|
9
|
+
* @attr data-placement - The placement prop setting.
|
|
10
|
+
* @attr data-focus - Whether item are being keyboard focused.
|
|
11
|
+
* @attr data-hocus - Whether items are being keyboard focused or hovered over.
|
|
12
|
+
* @attr data-transition - Whether the menu is resizing.
|
|
13
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/menu/menu}
|
|
14
|
+
*/
|
|
15
|
+
export declare class MenuItems extends Component<MenuItemsProps> {
|
|
16
|
+
#private;
|
|
17
|
+
static props: MenuItemsProps;
|
|
18
|
+
constructor();
|
|
19
|
+
protected onAttach(el: HTMLElement): void;
|
|
20
|
+
protected onConnect(el: HTMLElement): void;
|
|
21
|
+
}
|
|
22
|
+
export type MenuPlacement = MenuPlacementSide | `${MenuPlacementSide} ${MenuPlacementAlign}`;
|
|
23
|
+
export type MenuPlacementSide = 'top' | 'right' | 'bottom' | 'left';
|
|
24
|
+
export type MenuPlacementAlign = 'start' | 'center' | 'end';
|
|
25
|
+
export interface MenuItemsProps {
|
|
26
|
+
/**
|
|
27
|
+
* A space-separated list which specifies the side and alignment of the menu relative
|
|
28
|
+
* to the menu button.
|
|
29
|
+
*
|
|
30
|
+
* @example `top center`
|
|
31
|
+
* @example `bottom end`
|
|
32
|
+
*/
|
|
33
|
+
placement: MenuPlacement | null;
|
|
34
|
+
/**
|
|
35
|
+
* The distance in pixels between the menu items and the menu button. You can also set
|
|
36
|
+
* the CSS variable `--media-menu-y-offset` to adjust this offset.
|
|
37
|
+
*/
|
|
38
|
+
offset: number;
|
|
39
|
+
/**
|
|
40
|
+
* The offset in pixels from the start/center/end aligned position. You can also set
|
|
41
|
+
* the CSS variable `--media-menu-x-offset` to adjust this offset.
|
|
42
|
+
*/
|
|
43
|
+
alignOffset: number;
|
|
44
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
/**
|
|
3
|
+
* Portals menu items into the document body.
|
|
4
|
+
*
|
|
5
|
+
* @attr data-portal - Whether portal is active (determined by `disabled` prop).
|
|
6
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/menu#portal}
|
|
7
|
+
*/
|
|
8
|
+
export declare class MenuPortal extends Component<MenuPortalProps> {
|
|
9
|
+
#private;
|
|
10
|
+
static props: MenuPortalProps;
|
|
11
|
+
protected onSetup(): void;
|
|
12
|
+
protected onAttach(el: HTMLElement): void;
|
|
13
|
+
protected onConnect(el: HTMLElement): void;
|
|
14
|
+
protected onDestroy(): void;
|
|
15
|
+
}
|
|
16
|
+
export interface MenuPortalProps {
|
|
17
|
+
/**
|
|
18
|
+
* Specifies a DOM element or query selector for the container that the menu should be portalled
|
|
19
|
+
* inside. Defaults to `document.body` when set to `null`.
|
|
20
|
+
*/
|
|
21
|
+
container: string | HTMLElement | null;
|
|
22
|
+
/**
|
|
23
|
+
* Whether the portal should be disabled. The value can be the string "fullscreen" to disable
|
|
24
|
+
* portals while media is fullscreen. This is to ensure the menu remains visible.
|
|
25
|
+
*/
|
|
26
|
+
disabled: boolean | 'fullscreen';
|
|
27
|
+
}
|
|
28
|
+
export interface MenuPortalContext {
|
|
29
|
+
attach(element: HTMLElement | null): void;
|
|
30
|
+
}
|
|
31
|
+
export declare const menuPortalContext: import("maverick.js").Context<MenuPortalContext | null>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Component } from 'maverick.js';
|
|
2
|
+
import { DOMEvent } from 'maverick.js/std';
|
|
3
|
+
import type { MediaRequestEvents } from '../../../core/api/media-request-events';
|
|
4
|
+
/**
|
|
5
|
+
* Root menu container used to hold and manage a menu button and menu items. This component is
|
|
6
|
+
* used to display options in a floating panel. They can be nested to create submenus.
|
|
7
|
+
*
|
|
8
|
+
* @attr data-root - Whether this is the root menu items.
|
|
9
|
+
* @attr data-submenu - Whether menu is a submenu.
|
|
10
|
+
* @attr data-open - Whether menu is open.
|
|
11
|
+
* @attr data-keyboard - Whether the menu is opened via keyboard.
|
|
12
|
+
* @attr data-disabled - Whether menu is disabled.
|
|
13
|
+
* @docs {@link https://www.vidstack.io/docs/player/components/menu/menu}
|
|
14
|
+
*/
|
|
15
|
+
export declare class Menu extends Component<MenuProps, {}, MenuEvents> {
|
|
16
|
+
#private;
|
|
17
|
+
static props: MenuProps;
|
|
18
|
+
/**
|
|
19
|
+
* The menu trigger element.
|
|
20
|
+
*/
|
|
21
|
+
get triggerElement(): HTMLElement | null;
|
|
22
|
+
/**
|
|
23
|
+
* The menu items element.
|
|
24
|
+
*/
|
|
25
|
+
get contentElement(): HTMLElement | null;
|
|
26
|
+
/**
|
|
27
|
+
* Whether this menu is the child of another menu that contains it.
|
|
28
|
+
*/
|
|
29
|
+
get isSubmenu(): boolean;
|
|
30
|
+
constructor();
|
|
31
|
+
protected onSetup(): void;
|
|
32
|
+
protected onAttach(el: HTMLElement): void;
|
|
33
|
+
protected onConnect(el: HTMLElement): void;
|
|
34
|
+
protected onDestroy(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Open this menu. The first menu item will be focused if a `KeyboardEvent` trigger is provided
|
|
37
|
+
*/
|
|
38
|
+
open(trigger?: Event): void;
|
|
39
|
+
/**
|
|
40
|
+
* Close this menu. The menu button that controls this menu will be focused if a `KeyboardEvent`
|
|
41
|
+
* trigger is provided
|
|
42
|
+
*/
|
|
43
|
+
close(trigger?: Event): void;
|
|
44
|
+
}
|
|
45
|
+
export interface MenuProps {
|
|
46
|
+
/**
|
|
47
|
+
* The amount of time in milliseconds to wait before showing the menu.
|
|
48
|
+
*/
|
|
49
|
+
showDelay: number;
|
|
50
|
+
}
|
|
51
|
+
export interface MenuEvents extends Pick<MediaRequestEvents, 'media-pause-controls-request' | 'media-resume-controls-request'> {
|
|
52
|
+
open: MenuOpenEvent;
|
|
53
|
+
close: MenuCloseEvent;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Fired when the menu is opened.
|
|
57
|
+
*/
|
|
58
|
+
export interface MenuOpenEvent extends DOMEvent<void> {
|
|
59
|
+
target: Menu;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Fired when the menu is closed.
|
|
63
|
+
*/
|
|
64
|
+
export interface MenuCloseEvent extends DOMEvent<void> {
|
|
65
|
+
target: Menu;
|
|
66
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ReadSignal } from 'maverick.js';
|
|
2
|
+
export interface RadioController {
|
|
3
|
+
value: ReadSignal<string>;
|
|
4
|
+
check(checked: boolean, trigger?: Event): any;
|
|
5
|
+
onCheck: RadioChangeCallback | null;
|
|
6
|
+
}
|
|
7
|
+
export interface RadioChangeCallback {
|
|
8
|
+
(value: string, trigger?: Event): void;
|
|
9
|
+
}
|
|
10
|
+
export interface RadioGroupContext {
|
|
11
|
+
add(radio: RadioController): void;
|
|
12
|
+
remove(radio: RadioController): void;
|
|
13
|
+
}
|
|
14
|
+
export declare const radioControllerContext: import("maverick.js").Context<RadioGroupContext>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ViewController } from 'maverick.js';
|
|
2
|
+
export declare class RadioGroupController extends ViewController {
|
|
3
|
+
#private;
|
|
4
|
+
onValueChange?: (newValue: string, trigger?: Event) => void;
|
|
5
|
+
get values(): string[];
|
|
6
|
+
get value(): string;
|
|
7
|
+
set value(value: string);
|
|
8
|
+
protected onSetup(): void;
|
|
9
|
+
protected onAttach(el: HTMLElement): void;
|
|
10
|
+
protected onDestroy(): void;
|
|
11
|
+
}
|