import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';export type LyraVideoControls='none'|'standard'|'full';export type LyraVideoPreload='auto'|'metadata'|'none';export interface VideoState{playing:boolean;currentTime:number;duration:number;volume:number;muted:boolean;playbackRate:number;}export interface LyraVideoEventMap{ended:Event;error:Event;loadedmetadata:Event;pause:Event;play:Event;timeupdate:Event;volumechange:Event;blur:FocusEvent;focus:FocusEvent;} /** * `` — a native, inline video player with three custom-control presets, selectable * captions, fullscreen and picture-in-picture capability gates, and bounded WebVTT thumbnail * previews. Its elapsed-time timeline stays on a physical left-to-right axis in either text * direction, so native ArrowRight advances and ArrowLeft rewinds. Mirrors the public `` * surface under the `lr-` prefix. * While a poster is visible, its poster-play button is the only exposed play action; the ordinary * control-bar play toggle stays hidden until playback begins. Decorative icon-slot subtrees remain * projected through inert, accessibility-hidden siblings rather than entering their native * buttons. A declarative host name stays on the host while the native video uses a purpose label; * an explicitly empty host name is preserved exactly on the native semantic owner. * * @customElement lr-video * @slot - Native `` and `` children. Consumer nodes remain in light DOM; safe * allowlisted clones are inserted into the private native video. * @slot controls-after-play - Content immediately after the play/pause control. * @slot controls-start - Content at the start of the control bar. * @slot exit-fullscreen-icon - Decorative fullscreen-exit glyph override. Assigned content is * rendered inert and accessibility-hidden beside, never inside, the named native button. * @slot fullscreen-icon - Decorative fullscreen-enter glyph override; rendered through the same * inert sibling layer. * @slot mute-icon - Decorative muted-state glyph override; rendered through the same inert sibling layer. * @slot pause-icon - Decorative pause glyph override; rendered through the same inert sibling layer. * @slot play-icon - Decorative play glyph override; rendered through the same inert sibling layer. * @slot poster-icon - Decorative poster-play glyph override; rendered through the same inert sibling layer. * @slot volume-icon - Decorative audible-state glyph override; rendered through the same inert sibling layer. * @event {Event} ended - Relayed native video event; non-bubbling, non-composed, and non-cancelable. * @event {Event} error - Relayed native video event; non-bubbling, non-composed, and non-cancelable. * @event {Event} loadedmetadata - Relayed native video event; non-bubbling, non-composed, and non-cancelable. * @event {Event} pause - Relayed native video event; non-bubbling, non-composed, and non-cancelable. * @event {Event} play - Relayed native video event; non-bubbling, non-composed, and non-cancelable. * @event {Event} timeupdate - Relayed native video event; non-bubbling, non-composed, and * non-cancelable. Scrubbing the custom timeline, or calling `seek()`, also dispatches this * event immediately and exactly once -- the corresponding native follow-up event is not * separately relayed. * @event {Event} volumechange - Relayed native video event; non-bubbling, non-composed, and * non-cancelable. * @event {FocusEvent} focus - Relayed once from the internal play/pause control as a bubbling, * composed native event. * @event {FocusEvent} blur - Relayed once from the internal play/pause control as a bubbling, * composed native event. * @csspart base - Alias on the same root node as `video-wrapper`. * @csspart caption - Active native caption text. * @csspart caption-overlay - Caption positioning layer. * @csspart controls - Custom control bar. * @csspart controls-overlay - Bottom controls positioning layer. * @csspart poster-overlay - Poster positioning layer. * @csspart poster-play-button - Poster play action. * @csspart progress - Native range input used to scrub. When disabled, its timeline track retains resting paint. * @csspart thumbnail - Active WebVTT thumbnail preview. * @csspart timeline - Timeline wrapper. * @csspart timeline-indicator - Played portion of the timeline. * @csspart timeline-thumb - Current-time marker. * @csspart timeline-track - Timeline rail. * @csspart video - Native `