UNPKG

vidstack

Version:

Build awesome media experiences on the web.

47 lines (46 loc) 2.03 kB
import { type HTMLCustomElement } from 'maverick.js/element'; import { type MediaContext } from '../../core/api/context'; import type { MediaFullscreenRequestTarget } from '../../core/api/request-events'; import type { MediaKeyShortcut } from '../../core/keyboard/types'; import { ToggleButton, type ToggleButtonProps } from './toggle-button'; declare global { interface MaverickElements { 'media-fullscreen-button': MediaFullscreenButtonElement; } } /** * A button for toggling the fullscreen mode of the player. * * @docs {@link https://www.vidstack.io/docs/player/components/buttons/fullscreen-button} * @see {@link https://www.vidstack.io/docs/player/core-concepts/fullscreen} * @slot enter - Used to override the default enter fullscreen icon. * @slot exit - Used to override the default exit fullscreen icon. * @example * ```html * <media-fullscreen-button></media-fullscreen-button> * ``` */ export declare class FullscreenButton extends ToggleButton<FullscreenButtonAPI> { static el: import("maverick.js/element").CustomElementDefinition<FullscreenButtonAPI>; protected _media: MediaContext; protected _keyShortcut: MediaKeyShortcut; protected onAttach(el: HTMLElement): void; protected _onPress(event: Event): void; protected _isPressed(): boolean; protected _isHidden(): boolean; protected _getLabel(): "Exit Fullscreen" | "Enter Fullscreen"; render(): import("maverick.js").JSX.Element; } export interface FullscreenButtonAPI { props: FullscreenButtonProps; } export interface FullscreenButtonProps extends ToggleButtonProps { /** * The target element on which to request fullscreen on. The target can be `media` * (i.e., `<media-player>`) or `provider`. The `prefer-media` option will first see if the native * fullscreen API is available, if not it'll try the media provider. */ target: MediaFullscreenRequestTarget | undefined; } export interface MediaFullscreenButtonElement extends HTMLCustomElement<FullscreenButton> { }