UNPKG

ranui

Version:

A framework-agnostic Web Components UI library built on native custom elements, with TypeScript types, light/dark theming, SSR and PWA support.

58 lines (57 loc) 2.54 kB
import type { Progress } from '../../progress'; export interface SpeedOption { label: string; value: number; } export interface PlayerViewRefs { player: HTMLDivElement; container: HTMLDivElement; playerBtn: HTMLDivElement; playerController: HTMLDivElement; gestureFlash: HTMLDivElement; progress: HTMLDivElement; progressWrap: HTMLDivElement; progressWrapBuffer: HTMLDivElement; progressWrapValue: HTMLDivElement; progressDot: HTMLDivElement; playerControllerBottom: HTMLDivElement; playerControllerBottomRight: HTMLDivElement; playerControllerBottomLeft: HTMLDivElement; playerControllerBottomPlayBtn: HTMLDivElement; /** The `<r-icon>` inside `playerControllerBottomPlayBtn` exposed separately so * `syncPlayButtonState` can swap its `name` directly instead of re-querying the * button on every play/pause toggle. */ playerControllerBottomPlayBtnIcon: HTMLElement; playerControllerBottomTimeCurrent: HTMLDivElement; playerControllerBottomTimeDuration: HTMLDivElement; playerControllerBottomTimeDivide: HTMLDivElement; playControllerBottomSubtitle: HTMLElement; playControllerBottomClarity: HTMLElement; playControllerBottomSpeed: HTMLDivElement; playControllerBottomVolumeIcon: HTMLDivElement; /** The `<r-icon>` inside `playControllerBottomVolumeIcon` same reasoning as * `playerControllerBottomPlayBtnIcon` above, for the mute/unmute swap. */ playControllerBottomVolumeIconGlyph: HTMLElement; playControllerBottomVolumeProgress: Progress; playControllerBottomPip: HTMLDivElement; playControllerBottomRemote: HTMLDivElement; playControllerBottomRightFullScreen: HTMLDivElement; playControllerBottomVolume: HTMLDivElement; playControllerBottomSpeedPopover: HTMLElement; playerTip: HTMLDivElement; playerTipThumbnail: HTMLDivElement; playerTipTime: HTMLDivElement; playerTipText: HTMLDivElement; } /** * Builds the player's entire shadow DOM subtree in one pass. Every node is created * once via the builder and its reference is captured directly in a local there is * no reuse/hydration path (this is called exactly once, from `r-player`'s * constructor, and a Custom Element constructor never runs twice for the same * instance), so refs are never re-derived by querying the DOM back. */ export declare function ensurePlayerView(input: { shadowDom: ShadowRoot; speedOptions: SpeedOption[]; onSpeedChange: (e: Event) => void; }): PlayerViewRefs;