@7sage/vidstack
Version:
UI component library for building high-quality, accessible video and audio experiences on the web.
1,353 lines • 516 kB
JSON
{
"components": [
{
"type": "component",
"name": "MediaAnnouncer",
"file": {
"path": "/home/derek/Code/7sage/vidstack-player/packages/vidstack/src/components/aria/announcer.ts"
},
"doctags": [
{
"name": "docs",
"text": "https://www.vidstack.io/docs/player/components/display/announcer"
}
],
"props": [
{
"name": "translations",
"default": "null",
"type": {
"primitive": "object",
"concise": "Partial<MediaAnnouncerTranslations>",
"full": "{ Play?: string; Pause?: string; \"Enter Fullscreen\"?: string; \"Exit Fullscreen\"?: string; \"Enter PiP\"?: string; \"Exit PiP\"?: string; \"Closed-Captions On\"?: string; \"Closed-Captions Off\"?: string; Mute?: string; Volume?: string; \"Seek Forward\"?: string; \"Seek Backward\"?: string; }"
}
}
],
"events": [
{
"name": "change",
"type": {
"primitive": "object",
"concise": "DOMEvent<string>",
"full": "DOMEvent<string>"
},
"detail": {
"primitive": "string",
"concise": "string",
"full": "string"
}
}
],
"state": [
{
"name": "label",
"type": {
"primitive": "string",
"concise": "string",
"full": "string"
},
"default": "null"
},
{
"name": "busy",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"default": "false"
}
],
"members": {
"props": [
{
"name": "state",
"docs": "This object contains the current state of the component.",
"type": {
"primitive": "object",
"concise": "MediaAnnouncerState",
"full": "MediaAnnouncerState"
},
"readonly": true
}
],
"methods": [
{
"name": "subscribe",
"docs": "Subscribe to live updates of component state.",
"parameters": [
{
"name": "callback",
"type": {
"primitive": "function",
"concise": "Effect<MediaAnnouncerState>",
"full": "(state: MediaAnnouncerState) => Maybe<Dispose>"
}
}
],
"signature": {
"type": "(callback: Effect<MediaAnnouncerState>) => Unsubscribe"
},
"return": {
"type": "Unsubscribe"
}
}
],
"length": 2
},
"generics": {
"props": "MediaAnnouncerProps",
"state": "MediaAnnouncerState",
"events": "MediaAnnouncerEvents"
}
},
{
"type": "component",
"name": "DefaultAudioLayout",
"file": {
"path": "/home/derek/Code/7sage/vidstack-player/packages/vidstack/src/components/layouts/default/audio-layout.ts"
},
"docs": "The audio layout is our production-ready UI that's displayed when the media view type is set to\n'audio'. It includes support for audio tracks, slider chapters, captions, live streams, and much\nmore out of the box.",
"doctags": [
{
"name": "attr",
"text": "data-match - Whether this layout is being used (query match)."
},
{
"name": "attr",
"text": "data-sm - The small layout is active"
},
{
"name": "attr",
"text": "data-lg - The large layout is active."
},
{
"name": "attr",
"text": "data-size - The active layout size (sm or lg)."
}
],
"props": [
{
"name": "when",
"default": "({ viewType }) => viewType === 'audio'",
"type": {
"primitive": "boolean",
"concise": "boolean | MediaPlayerQuery",
"full": "boolean | MediaPlayerQuery"
},
"docs": "Determines when the UI should be displayed."
},
{
"name": "smallWhen",
"default": "({ width }) => width < 576",
"type": {
"primitive": "mixed",
"concise": "boolean | MediaPlayerQuery | 'never'",
"full": "boolean | MediaPlayerQuery | 'never'"
},
"docs": "Determines when the small (e.g., mobile) UI should be displayed."
},
{
"name": "thumbnails",
"type": {
"primitive": "string",
"concise": "ThumbnailSrc",
"full": "string | ThumbnailImageInit[] | ThumbnailStoryboard | MuxThumbnailStoryboard"
},
"docs": "The thumbnails resource.",
"doctags": [
{
"name": "see",
"text": "https://www.vidstack.io/docs/wc/player/core-concepts/loading#thumbnails"
}
]
},
{
"name": "colorScheme",
"type": {
"primitive": "string",
"concise": "'light' | 'dark' | 'system' | 'default'",
"full": "'light' | 'dark' | 'system' | 'default'"
},
"docs": "Whether light or dark color theme should be active. Defaults to user operating system\npreference.",
"doctags": [
{
"name": "see",
"text": "https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme"
}
]
},
{
"name": "download",
"type": {
"primitive": "mixed",
"concise": "FileDownloadInfo",
"full": "string | boolean | { url: string; filename: string; }"
},
"docs": "Sets the download URL and filename for the download button."
},
{
"name": "customIcons",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the default icons should _not_ be loaded. Set this to `true` when providing your own\nicons."
},
{
"name": "translations",
"type": {
"primitive": "object",
"concise": "Partial<DefaultLayoutTranslations>",
"full": "{ Play?: string; Pause?: string; \"Enter Fullscreen\"?: string; \"Exit Fullscreen\"?: string; \"Enter PiP\"?: string; \"Exit PiP\"?: string; \"Closed-Captions On\"?: string; \"Closed-Captions Off\"?: string; Mute?: string; Volume?: string; \"Seek Forward\"?: string; \"Seek Backward\"?: string; Announcements?: string; Accessibility?: string; AirPlay?: string; Audio?: string; Auto?: string; Boost?: string; Captions?: string; \"Caption Styles\"?: string; \"Captions look like this\"?: string; Chapters?: string; Connected?: string; Continue?: string; Connecting?: string; Default?: string; Disabled?: string; Disconnected?: string; \"Display Background\"?: string; Download?: string; Font?: string; Family?: string; Fullscreen?: string; \"Google Cast\"?: string; \"Keyboard Animations\"?: string; LIVE?: string; Loop?: string; Normal?: string; Off?: string; Playback?: string; PiP?: string; Quality?: string; Replay?: string; Reset?: string; Seek?: string; Settings?: string; \"Skip To Live\"?: string; Speed?: string; Size?: string; Color?: string; Opacity?: string; Shadow?: string; Text?: string; \"Text Background\"?: string; Track?: string; Unmute?: string; }"
},
"docs": "Translation map from english to your desired language for words used throughout the layout."
},
{
"name": "menuContainer",
"type": {
"primitive": "string",
"concise": "string | HTMLElement",
"full": "string | HTMLElement"
},
"docs": "A document query selector string or `HTMLElement` to mount the menu container inside. Defaults\nto `document.body` when set to `null`."
},
{
"name": "menuGroup",
"type": {
"primitive": "string",
"concise": "'top' | 'bottom'",
"full": "'top' | 'bottom'"
},
"docs": "Specifies whether menu buttons should be placed in the top or bottom controls group. This\nonly applies to the large video layout."
},
{
"name": "noAudioGain",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Disable audio boost slider in the settings menu."
},
{
"name": "noModal",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether modal menus should be disabled when the small layout is active. A modal menu is\na floating panel that floats up from the bottom of the screen (outside of the player). It's\nenabled by default as it provides a better user experience for touch devices."
},
{
"name": "noScrubGesture",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether to disable scrubbing by touch swiping left or right on the player canvas."
},
{
"name": "sliderChaptersMinWidth",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "The minimum width of the slider to start displaying slider chapters when available."
},
{
"name": "disableTimeSlider",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the time slider should be disabled."
},
{
"name": "noGestures",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether all gestures such as press to play or seek should not be active."
},
{
"name": "noKeyboardAnimations",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether keyboard actions should not be displayed."
},
{
"name": "hideQualityBitrate",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the bitrate should be hidden in the settings quality hint."
},
{
"name": "playbackRates",
"type": {
"primitive": "object",
"concise": "number[] | { min: number; max: number; step: number; }",
"full": "number[] | { min: number; max: number; step: number; }"
},
"docs": "The playback rate options to be displayed in the settings menu."
},
{
"name": "audioGains",
"type": {
"primitive": "object",
"concise": "number[] | { min: number; max: number; step: number; }",
"full": "number[] | { min: number; max: number; step: number; }"
},
"docs": "The audio gain options to be displayed in the settings menu."
},
{
"name": "seekStep",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "The number of seconds to seek forward or backward when pressing the seek button or using\nkeyboard shortcuts."
}
],
"members": {
"props": [
{
"name": "isMatch",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"readonly": true
},
{
"name": "isSmallLayout",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"readonly": true
}
],
"length": 2
},
"generics": {
"props": "DefaultLayoutProps"
}
},
{
"type": "component",
"name": "DefaultLayout",
"file": {
"path": "/home/derek/Code/7sage/vidstack-player/packages/vidstack/src/components/layouts/default/default-layout.ts"
},
"props": [
{
"name": "when",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean | MediaPlayerQuery",
"full": "boolean | MediaPlayerQuery"
},
"docs": "Determines when the UI should be displayed."
},
{
"name": "smallWhen",
"default": "false",
"type": {
"primitive": "mixed",
"concise": "boolean | MediaPlayerQuery | 'never'",
"full": "boolean | MediaPlayerQuery | 'never'"
},
"docs": "Determines when the small (e.g., mobile) UI should be displayed."
},
{
"name": "thumbnails",
"default": "null",
"type": {
"primitive": "string",
"concise": "ThumbnailSrc",
"full": "string | ThumbnailImageInit[] | ThumbnailStoryboard | MuxThumbnailStoryboard"
},
"docs": "The thumbnails resource.",
"doctags": [
{
"name": "see",
"text": "https://www.vidstack.io/docs/wc/player/core-concepts/loading#thumbnails"
}
]
},
{
"name": "colorScheme",
"default": "'system'",
"type": {
"primitive": "string",
"concise": "'light' | 'dark' | 'system' | 'default'",
"full": "'light' | 'dark' | 'system' | 'default'"
},
"docs": "Whether light or dark color theme should be active. Defaults to user operating system\npreference.",
"doctags": [
{
"name": "see",
"text": "https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme"
}
]
},
{
"name": "download",
"default": "null",
"type": {
"primitive": "mixed",
"concise": "FileDownloadInfo",
"full": "string | boolean | { url: string; filename: string; }"
},
"docs": "Sets the download URL and filename for the download button."
},
{
"name": "customIcons",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the default icons should _not_ be loaded. Set this to `true` when providing your own\nicons."
},
{
"name": "translations",
"default": "null",
"type": {
"primitive": "object",
"concise": "Partial<DefaultLayoutTranslations>",
"full": "{ Play?: string; Pause?: string; \"Enter Fullscreen\"?: string; \"Exit Fullscreen\"?: string; \"Enter PiP\"?: string; \"Exit PiP\"?: string; \"Closed-Captions On\"?: string; \"Closed-Captions Off\"?: string; Mute?: string; Volume?: string; \"Seek Forward\"?: string; \"Seek Backward\"?: string; Announcements?: string; Accessibility?: string; AirPlay?: string; Audio?: string; Auto?: string; Boost?: string; Captions?: string; \"Caption Styles\"?: string; \"Captions look like this\"?: string; Chapters?: string; Connected?: string; Continue?: string; Connecting?: string; Default?: string; Disabled?: string; Disconnected?: string; \"Display Background\"?: string; Download?: string; Font?: string; Family?: string; Fullscreen?: string; \"Google Cast\"?: string; \"Keyboard Animations\"?: string; LIVE?: string; Loop?: string; Normal?: string; Off?: string; Playback?: string; PiP?: string; Quality?: string; Replay?: string; Reset?: string; Seek?: string; Settings?: string; \"Skip To Live\"?: string; Speed?: string; Size?: string; Color?: string; Opacity?: string; Shadow?: string; Text?: string; \"Text Background\"?: string; Track?: string; Unmute?: string; }"
},
"docs": "Translation map from english to your desired language for words used throughout the layout."
},
{
"name": "menuContainer",
"default": "null",
"type": {
"primitive": "string",
"concise": "string | HTMLElement",
"full": "string | HTMLElement"
},
"docs": "A document query selector string or `HTMLElement` to mount the menu container inside. Defaults\nto `document.body` when set to `null`."
},
{
"name": "menuGroup",
"default": "'bottom'",
"type": {
"primitive": "string",
"concise": "'top' | 'bottom'",
"full": "'top' | 'bottom'"
},
"docs": "Specifies whether menu buttons should be placed in the top or bottom controls group. This\nonly applies to the large video layout."
},
{
"name": "noAudioGain",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Disable audio boost slider in the settings menu."
},
{
"name": "noModal",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether modal menus should be disabled when the small layout is active. A modal menu is\na floating panel that floats up from the bottom of the screen (outside of the player). It's\nenabled by default as it provides a better user experience for touch devices."
},
{
"name": "noScrubGesture",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether to disable scrubbing by touch swiping left or right on the player canvas."
},
{
"name": "sliderChaptersMinWidth",
"default": "325",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "The minimum width of the slider to start displaying slider chapters when available."
},
{
"name": "disableTimeSlider",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the time slider should be disabled."
},
{
"name": "noGestures",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether all gestures such as press to play or seek should not be active."
},
{
"name": "noKeyboardAnimations",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether keyboard actions should not be displayed."
},
{
"name": "hideQualityBitrate",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the bitrate should be hidden in the settings quality hint."
},
{
"name": "playbackRates",
"default": "{ min: 0, max: 2, step: 0.25 }",
"type": {
"primitive": "object",
"concise": "number[] | { min: number; max: number; step: number; }",
"full": "number[] | { min: number; max: number; step: number; }"
},
"docs": "The playback rate options to be displayed in the settings menu."
},
{
"name": "audioGains",
"default": "{ min: 0, max: 300, step: 25 }",
"type": {
"primitive": "object",
"concise": "number[] | { min: number; max: number; step: number; }",
"full": "number[] | { min: number; max: number; step: number; }"
},
"docs": "The audio gain options to be displayed in the settings menu."
},
{
"name": "seekStep",
"default": "10",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "The number of seconds to seek forward or backward when pressing the seek button or using\nkeyboard shortcuts."
}
],
"members": {
"props": [
{
"name": "isMatch",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"readonly": true
},
{
"name": "isSmallLayout",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"readonly": true
}
],
"length": 2
},
"generics": {
"props": "DefaultLayoutProps"
}
},
{
"type": "component",
"name": "DefaultVideoLayout",
"file": {
"path": "/home/derek/Code/7sage/vidstack-player/packages/vidstack/src/components/layouts/default/video-layout.ts"
},
"docs": "The video layout is our production-ready UI that's displayed when the media view type is set to\n'video'. It includes support for picture-in-picture, fullscreen, slider chapters, slider\npreviews, captions, audio/quality settings, live streams, and much more out of the box.",
"doctags": [
{
"name": "attr",
"text": "data-match - Whether this layout is being used (query match)."
},
{
"name": "attr",
"text": "data-sm - The small layout is active"
},
{
"name": "attr",
"text": "data-lg - The large layout is active."
},
{
"name": "attr",
"text": "data-size - The active layout size."
}
],
"props": [
{
"name": "when",
"default": "({ viewType }) => viewType === 'video'",
"type": {
"primitive": "boolean",
"concise": "boolean | MediaPlayerQuery",
"full": "boolean | MediaPlayerQuery"
},
"docs": "Determines when the UI should be displayed."
},
{
"name": "smallWhen",
"default": "({ width, height }) => width < 576 || height < 380",
"type": {
"primitive": "mixed",
"concise": "boolean | MediaPlayerQuery | 'never'",
"full": "boolean | MediaPlayerQuery | 'never'"
},
"docs": "Determines when the small (e.g., mobile) UI should be displayed."
},
{
"name": "thumbnails",
"type": {
"primitive": "string",
"concise": "ThumbnailSrc",
"full": "string | ThumbnailImageInit[] | ThumbnailStoryboard | MuxThumbnailStoryboard"
},
"docs": "The thumbnails resource.",
"doctags": [
{
"name": "see",
"text": "https://www.vidstack.io/docs/wc/player/core-concepts/loading#thumbnails"
}
]
},
{
"name": "colorScheme",
"type": {
"primitive": "string",
"concise": "'light' | 'dark' | 'system' | 'default'",
"full": "'light' | 'dark' | 'system' | 'default'"
},
"docs": "Whether light or dark color theme should be active. Defaults to user operating system\npreference.",
"doctags": [
{
"name": "see",
"text": "https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme"
}
]
},
{
"name": "download",
"type": {
"primitive": "mixed",
"concise": "FileDownloadInfo",
"full": "string | boolean | { url: string; filename: string; }"
},
"docs": "Sets the download URL and filename for the download button."
},
{
"name": "customIcons",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the default icons should _not_ be loaded. Set this to `true` when providing your own\nicons."
},
{
"name": "translations",
"type": {
"primitive": "object",
"concise": "Partial<DefaultLayoutTranslations>",
"full": "{ Play?: string; Pause?: string; \"Enter Fullscreen\"?: string; \"Exit Fullscreen\"?: string; \"Enter PiP\"?: string; \"Exit PiP\"?: string; \"Closed-Captions On\"?: string; \"Closed-Captions Off\"?: string; Mute?: string; Volume?: string; \"Seek Forward\"?: string; \"Seek Backward\"?: string; Announcements?: string; Accessibility?: string; AirPlay?: string; Audio?: string; Auto?: string; Boost?: string; Captions?: string; \"Caption Styles\"?: string; \"Captions look like this\"?: string; Chapters?: string; Connected?: string; Continue?: string; Connecting?: string; Default?: string; Disabled?: string; Disconnected?: string; \"Display Background\"?: string; Download?: string; Font?: string; Family?: string; Fullscreen?: string; \"Google Cast\"?: string; \"Keyboard Animations\"?: string; LIVE?: string; Loop?: string; Normal?: string; Off?: string; Playback?: string; PiP?: string; Quality?: string; Replay?: string; Reset?: string; Seek?: string; Settings?: string; \"Skip To Live\"?: string; Speed?: string; Size?: string; Color?: string; Opacity?: string; Shadow?: string; Text?: string; \"Text Background\"?: string; Track?: string; Unmute?: string; }"
},
"docs": "Translation map from english to your desired language for words used throughout the layout."
},
{
"name": "menuContainer",
"type": {
"primitive": "string",
"concise": "string | HTMLElement",
"full": "string | HTMLElement"
},
"docs": "A document query selector string or `HTMLElement` to mount the menu container inside. Defaults\nto `document.body` when set to `null`."
},
{
"name": "menuGroup",
"type": {
"primitive": "string",
"concise": "'top' | 'bottom'",
"full": "'top' | 'bottom'"
},
"docs": "Specifies whether menu buttons should be placed in the top or bottom controls group. This\nonly applies to the large video layout."
},
{
"name": "noAudioGain",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Disable audio boost slider in the settings menu."
},
{
"name": "noModal",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether modal menus should be disabled when the small layout is active. A modal menu is\na floating panel that floats up from the bottom of the screen (outside of the player). It's\nenabled by default as it provides a better user experience for touch devices."
},
{
"name": "noScrubGesture",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether to disable scrubbing by touch swiping left or right on the player canvas."
},
{
"name": "sliderChaptersMinWidth",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "The minimum width of the slider to start displaying slider chapters when available."
},
{
"name": "disableTimeSlider",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the time slider should be disabled."
},
{
"name": "noGestures",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether all gestures such as press to play or seek should not be active."
},
{
"name": "noKeyboardAnimations",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether keyboard actions should not be displayed."
},
{
"name": "hideQualityBitrate",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the bitrate should be hidden in the settings quality hint."
},
{
"name": "playbackRates",
"type": {
"primitive": "object",
"concise": "number[] | { min: number; max: number; step: number; }",
"full": "number[] | { min: number; max: number; step: number; }"
},
"docs": "The playback rate options to be displayed in the settings menu."
},
{
"name": "audioGains",
"type": {
"primitive": "object",
"concise": "number[] | { min: number; max: number; step: number; }",
"full": "number[] | { min: number; max: number; step: number; }"
},
"docs": "The audio gain options to be displayed in the settings menu."
},
{
"name": "seekStep",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "The number of seconds to seek forward or backward when pressing the seek button or using\nkeyboard shortcuts."
}
],
"members": {
"props": [
{
"name": "isMatch",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"readonly": true
},
{
"name": "isSmallLayout",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"readonly": true
}
],
"length": 2
},
"generics": {
"props": "DefaultLayoutProps"
}
},
{
"type": "component",
"name": "PlyrLayout",
"file": {
"path": "/home/derek/Code/7sage/vidstack-player/packages/vidstack/src/components/layouts/plyr/plyr-layout.ts"
},
"props": [
{
"name": "clickToPlay",
"default": "true",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Press the video container to toggle play/pause."
},
{
"name": "clickToFullscreen",
"default": "true",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Double-press the video container to toggle fullscreen."
},
{
"name": "controls",
"default": "[\n 'play-large',\n 'play',\n 'progress',\n 'current-time',\n 'mute+volume',\n 'captions',\n 'settings',\n 'pip',\n 'airplay',\n 'fullscreen',\n ]",
"type": {
"primitive": "object",
"concise": "PlyrControl[]",
"full": "PlyrControl[]"
},
"docs": "The controls to be included in the layout and their order specified by the position in the\narray."
},
{
"name": "customIcons",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the default icons should _not_ be loaded. Set this to `true` when providing your own\nicons."
},
{
"name": "displayDuration",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether the duration should be displayed. This is ignored if `toggleTime` is `true`."
},
{
"name": "download",
"default": "null",
"type": {
"primitive": "mixed",
"concise": "FileDownloadInfo",
"full": "string | boolean | { url: string; filename: string; }"
},
"docs": "Sets the download URL and filename for the download button. The download button must be\nincluded in the `controls` prop for this to take effect."
},
{
"name": "markers",
"default": "null",
"type": {
"primitive": "object",
"concise": "PlyrMarker[]",
"full": "PlyrMarker[]"
},
"docs": "Points on the time slider which should be visually marked for the user."
},
{
"name": "invertTime",
"default": "true",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Display the current time as a countdown rather than an incremental counter."
},
{
"name": "thumbnails",
"default": "null",
"type": {
"primitive": "string",
"concise": "ThumbnailSrc",
"full": "string | ThumbnailImageInit[] | ThumbnailStoryboard | MuxThumbnailStoryboard"
},
"docs": "The thumbnails resource.",
"doctags": [
{
"name": "see",
"text": "https://www.vidstack.io/docs/wc/player/core-concepts/loading#thumbnails"
}
]
},
{
"name": "toggleTime",
"default": "true",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Allow users to press to toggle the inverted time."
},
{
"name": "translations",
"default": "null",
"type": {
"primitive": "object",
"concise": "Partial<PlyrLayoutTranslations>",
"full": "{ Play?: string; Pause?: string; \"Enter Fullscreen\"?: string; \"Exit Fullscreen\"?: string; \"Enter PiP\"?: string; \"Exit PiP\"?: string; Mute?: string; Volume?: string; AirPlay?: string; Audio?: string; Auto?: string; Captions?: string; Default?: string; Disabled?: string; Download?: string; LIVE?: string; Loop?: string; Normal?: string; Quality?: string; Reset?: string; Seek?: string; Settings?: string; Speed?: string; Unmute?: string; Ad?: string; All?: string; Buffered?: string; \"Current time\"?: string; \"Disable captions\"?: string; Duration?: string; \"Enable captions\"?: string; Enabled?: string; End?: string; Forward?: string; \"Go back to previous menu\"?: string; Played?: string; Restart?: string; Rewind?: string; Start?: string; }"
},
"docs": "Translation map from english to your desired language for words used throughout the layout."
},
{
"name": "seekTime",
"default": "10",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "The time, in seconds, to seek when a user hits fast forward or rewind."
},
{
"name": "speed",
"default": "[0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 4]",
"type": {
"primitive": "object",
"concise": "(string | number)[]",
"full": "(string | number)[]"
},
"docs": "The speed options to display in the UI."
}
],
"generics": {
"props": "PlyrLayoutProps"
}
},
{
"type": "component",
"name": "MediaPlayer",
"file": {
"path": "/home/derek/Code/7sage/vidstack-player/packages/vidstack/src/components/player.ts"
},
"docs": "All media elements exist inside the `<media-player>` component. This component's main\nresponsibilities are to manage media state updates, dispatch media events, handle media\nrequests, and expose media state through HTML attributes and CSS properties for styling\npurposes.",
"doctags": [
{
"name": "attr",
"text": "data-airplay - Whether AirPlay is connected."
},
{
"name": "attr",
"text": "data-autoplay - Autoplay has successfully started."
},
{
"name": "attr",
"text": "data-autoplay-error - Autoplay has failed to start."
},
{
"name": "attr",
"text": "data-buffering - Media is not ready for playback or waiting for more data."
},
{
"name": "attr",
"text": "data-can-airplay - Whether AirPlay is available."
},
{
"name": "attr",
"text": "data-can-fullscreen - Fullscreen mode is available."
},
{
"name": "attr",
"text": "data-can-google-cast - Whether Google Cast is available."
},
{
"name": "attr",
"text": "data-can-load - Media can now begin loading."
},
{
"name": "attr",
"text": "data-can-pip - Picture-in-Picture mode is available."
},
{
"name": "attr",
"text": "data-can-play - Media is ready for playback."
},
{
"name": "attr",
"text": "data-can-seek - Seeking operations are permitted."
},
{
"name": "attr",
"text": "data-captions - Captions are available and visible."
},
{
"name": "attr",
"text": "data-controls - Controls are visible."
},
{
"name": "attr",
"text": "data-ended - Playback has ended."
},
{
"name": "attr",
"text": "data-error - Issue with media loading/playback."
},
{
"name": "attr",
"text": "data-fullscreen - Fullscreen mode is active."
},
{
"name": "attr",
"text": "data-google-cast - Whether Google Cast is connected."
},
{
"name": "attr",
"text": "data-ios-controls - iOS controls are visible."
},
{
"name": "attr",
"text": "data-load - Specified load strategy."
},
{
"name": "attr",
"text": "data-live - Media is live stream."
},
{
"name": "attr",
"text": "data-live-edge - Playback is at the live edge."
},
{
"name": "attr",
"text": "data-loop - Media is set to replay on end."
},
{
"name": "attr",
"text": "data-media-type - Current media type (audio/video)."
},
{
"name": "attr",
"text": "data-muted - Whether volume is muted (0)."
},
{
"name": "attr",
"text": "data-orientation - Current screen orientation (landscape/portrait)."
},
{
"name": "attr",
"text": "data-paused - Whether playback is paused."
},
{
"name": "attr",
"text": "data-pip - Picture-in-picture mode is active."
},
{
"name": "attr",
"text": "data-playing - Playback is active."
},
{
"name": "attr",
"text": "data-playsinline - Media should play inline by default (iOS)."
},
{
"name": "attr",
"text": "data-pointer - The user's pointer device type (coarse/fine)."
},
{
"name": "attr",
"text": "data-preview - The user is interacting with the time slider."
},
{
"name": "attr",
"text": "data-remote-type - The remote playback type (airplay/google-cast)."
},
{
"name": "attr",
"text": "data-remote-state - The remote playback state (connecting/connected/disconnected)."
},
{
"name": "attr",
"text": "data-seeking - User is seeking to a new playback position."
},
{
"name": "attr",
"text": "data-started - Media playback has started."
},
{
"name": "attr",
"text": "data-stream-type - Current stream type."
},
{
"name": "attr",
"text": "data-view-type - Current view type (audio/video)."
},
{
"name": "attr",
"text": "data-waiting - Media is waiting for more data to resume playback."
},
{
"name": "attr",
"text": "data-focus - Whether player is being keyboard focused."
},
{
"name": "attr",
"text": "data-hocus - Whether player is being keyboard focused or hovered over."
},
{
"name": "docs",
"text": "https://www.vidstack.io/docs/player/components/media/player"
}
],
"props": [
{
"name": "autoplay",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"deprecated": true
},
{
"name": "crossorigin",
"default": "null",
"type": {
"primitive": "mixed",
"concise": "string | true",
"full": "string | true"
},
"deprecated": true
},
{
"name": "crossOrigin",
"default": "null",
"type": {
"primitive": "mixed",
"concise": "true | MediaCrossOrigin",
"full": "true | MediaCrossOrigin"
},
"docs": "Defines how the media element handles cross-origin requests, thereby enabling the\nconfiguration of the CORS requests for the element's fetched data.",
"doctags": [
{
"name": "see",
"text": "https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin"
}
]
},
{
"name": "duration",
"default": "-1",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "A `double` indicating the total playback length of the media in seconds. If this is not\nprovided it will be determined when the media loaded."
},
{
"name": "src",
"default": "''",
"type": {
"primitive": "string",
"concise": "PlayerSrc",
"full": "MediaSrc | MediaSrc[]"
},
"docs": "The URL and optionally type of the current media resource/s to be considered for playback.",
"doctags": [
{
"name": "see",
"text": "https://vidstack.io/docs/player/core-concepts/loading#sources"
},
{
"name": "see",
"text": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/src"
},
{
"name": "see",
"text": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject"
}
]
},
{
"name": "logLevel",
"default": "__DEV__ ? 'warn' : 'silent'",
"type": {
"primitive": "string",
"concise": "LogLevel",
"full": "'error' | 'silent' | 'warn' | 'info' | 'debug'"
},
"docs": "The current log level. Values in order of priority are: `silent`, `error`, `warn`, `info`,\nand `debug`."
},
{
"name": "load",
"default": "'visible'",
"type": {
"primitive": "string",
"concise": "MediaLoadingStrategy",
"full": "'play' | 'visible' | 'eager' | 'idle' | 'custom'"
},
"docs": "Indicates when the provider can begin loading media.\n\n- `eager`: media will be loaded immediately.\n- `idle`: media will be loaded after the page has loaded and `requestIdleCallback` is fired.\n- `visible`: media will delay loading until the provider has entered the viewport.\n- `custom`: media will wait for the `startLoading()` method or `media-start-loading` event.\n- `play`: media will delay loading until there is a play request.",
"doctags": [
{
"name": "see",
"text": "https://vidstack.io/docs/player/core-concepts/loading#load-strategies"
}
]
},
{
"name": "posterLoad",
"default": "'visible'",
"type": {
"primitive": "string",
"concise": "MediaPosterLoadingStrategy",
"full": "'visible' | 'eager' | 'idle' | 'custom'"
},
"docs": "Indicates when the player can begin loading the poster.\n\n- `eager`: poster will be loaded immediately.\n- `idle`: poster will be loaded after the page has loaded and `requestIdleCallback` is fired.\n- `visible`: poster will delay loading until the provider has entered the viewport.\n- `custom`: poster will wait for the `startLoadingPoster()` method or `media-poster-start-loading` event.",
"doctags": [
{
"name": "see",
"text": "https://vidstack.io/docs/player/core-concepts/loading#load-strategies"
}
]
},
{
"name": "controlsDelay",
"default": "2000",
"type": {
"primitive": "number",
"concise": "number",
"full": "number"
},
"docs": "The default amount of delay in milliseconds while media playback is progressing without user\nactivity to indicate an idle state and hide controls."
},
{
"name": "hideControlsOnMouseLeave",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether controls visibility should be toggled when the mouse enters and leaves the player\ncontainer."
},
{
"name": "fullscreenOrientation",
"default": "'landscape'",
"type": {
"primitive": "string",
"concise": "'none' | ScreenOrientationLockType",
"full": "'none' | ScreenOrientationLockType"
},
"docs": "This method will indicate the orientation to lock the screen to when in fullscreen mode and\nthe Screen Orientation API is available."
},
{
"name": "googleCast",
"default": "{}",
"type": {
"primitive": "object",
"concise": "GoogleCastOptions",
"full": "GoogleCastOptions"
},
"docs": "Google Cast options.",
"doctags": [
{
"name": "see",
"text": "https://developers.google.com/cast/docs/reference/web_sender/cast.framework.CastOptions"
}
]
},
{
"name": "playsinline",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"deprecated": true
},
{
"name": "preferNativeHLS",
"default": "false",
"type": {
"primitive": "boolean",
"concise": "boolean",
"full": "boolean"
},
"docs": "Whether native HLS support is preferred over using `hls.js`. We recommend setting this to\n`false` to ensure a consistent and configurable experience across browsers. In addition, our\nlive stream support and DVR detection is much better with `hls.js` so choose accordingly.\n\nThis should generally only be set to `true` if (1) you're working with HLS streams, and (2)\nyou want AirPlay to work via the native Safari controls (i.e., `controls` attribute is\npresent on the `<media-player>` element)."
},
{
"name": "keyDisabled",
"default": "'false'",
"type": {
"p