@videojs/html 10.0.0-rc.3 → 10.0.0-rc.4
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/dist/dev/define/audio/minimal-skin2.js.map +1 -1
- package/dist/dev/define/live-audio/minimal-skin2.js.map +1 -1
- package/dist/dev/define/live-video/skin2.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/guides/build-with-ai.md +1 -1
- package/docs/guides/cdn.md +9 -9
- package/docs/guides/installation-cdn.md +4 -4
- package/docs/guides/installation-shadcn.md +2 -2
- package/docs/guides/installation-svelte.md +3 -3
- package/docs/guides/installation-vue.md +3 -3
- package/docs/guides/installation.md +4 -4
- package/docs/guides/internationalization.md +4 -4
- package/docs/guides/llms.txt +1 -1
- package/docs/guides/media-sources.md +5 -1
- package/docs/guides/migrate-from-mux-player.md +5 -5
- package/docs/guides/migrate-from-plyr.md +5 -5
- package/docs/guides/migrate-from-video-js-8.md +6 -6
- package/docs/guides/self-hosting.md +5 -5
- package/docs/llms.txt +1 -1
- package/docs/reference/api/llms.txt +1 -1
- package/docs/reference/components/audio-minimal-skin.md +2 -2
- package/docs/reference/components/audio-skin.md +2 -2
- package/docs/reference/components/background-video-skin.md +1 -1
- package/docs/reference/components/background-video.md +1 -1
- package/docs/reference/components/cloudflare-video.md +1 -1
- package/docs/reference/components/dash-video.md +1 -1
- package/docs/reference/components/google-cast.md +1 -1
- package/docs/reference/components/hls-audio.md +1 -1
- package/docs/reference/components/hls-background-video.md +1 -1
- package/docs/reference/components/hls-video.md +1 -1
- package/docs/reference/components/hlsjs-video.md +1 -1
- package/docs/reference/components/live-audio-minimal-skin.md +2 -2
- package/docs/reference/components/live-audio-skin.md +2 -2
- package/docs/reference/components/live-video-minimal-skin.md +2 -2
- package/docs/reference/components/live-video-skin.md +2 -2
- package/docs/reference/components/llms.txt +1 -1
- package/docs/reference/components/mux-audio.md +1 -1
- package/docs/reference/components/mux-background-video.md +1 -1
- package/docs/reference/components/mux-data.md +1 -1
- package/docs/reference/components/mux-video.md +1 -1
- package/docs/reference/components/native-hls-video.md +1 -1
- package/docs/reference/components/shaka-video.md +1 -1
- package/docs/reference/components/spotify-audio.md +1 -1
- package/docs/reference/components/tiktok-video.md +1 -1
- package/docs/reference/components/twitch-video.md +1 -1
- package/docs/reference/components/video-minimal-skin.md +2 -2
- package/docs/reference/components/video-skin.md +2 -2
- package/docs/reference/components/vimeo-video.md +1 -1
- package/docs/reference/components/wistia-video.md +1 -1
- package/docs/reference/components/youtube-video.md +1 -1
- package/package.json +38 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin2.js","names":[],"sources":["../../../../home/runner/work/v10/v10/packages/html/src/define/live-video/skin.css","../../../../home/runner/work/v10/v10/packages/html/src/define/shadow.css","../../../../home/runner/work/v10/v10/packages/html/src/internal/skins/default-live-video/skin.css","../../../../home/runner/work/v10/v10/packages/html/src/define/global.css","../../../../home/runner/work/v10/v10/packages/html/src/internal/skins/properties.css"],"sourcesContent":["@import \"../global.css\";\n@import \"../shadow.css\";\n@import \"../../internal/skins/default-live-video/skin.css\";\n","/* -------------------------------------------------------------------------- */\n/* Shadow-root integration for all HTML skins */\n/* -------------------------------------------------------------------------- */\n\n/* Resets and component styles come from the skins package. This file only bridges the host and its slotted media. */\n\n:host {\n /* `display:grid` fixes a weird issue with Safari when setting aspect-ratio */\n display: grid;\n width: 100%;\n}\n\n:host(:focus) {\n /* The host matches :focus when a shadow control is focused; keep page styles from adding a second ring. */\n outline: none !important;\n}\n\n/* Media fills the skin; important keeps page styles from adding internal spacing. */\n::slotted(video),\n::slotted(audio) {\n margin: 0 !important;\n}\n","@layer base {\n @scope (.media-skin) {\n :scope {\n text-align: start;\n text-transform: none;\n letter-spacing: normal;\n font-style: normal;\n font-weight: 400;\n }\n\n :scope,\n *,\n :before,\n :after {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n button {\n font: inherit;\n color: inherit;\n text-transform: none;\n letter-spacing: inherit;\n appearance: none;\n background: none;\n }\n\n img,\n svg,\n media-icon {\n max-width: 100%;\n display: block;\n }\n\n svg[fill=\"currentColor\"] {\n fill: currentColor;\n }\n\n svg[fill=\"none\"] {\n fill: none;\n }\n\n svg[stroke=\"currentColor\"] {\n stroke: currentColor;\n }\n\n video {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n max-width: 100%;\n height: 100%;\n display: block;\n }\n\n media-icon > svg {\n width: 100%;\n height: 100%;\n }\n\n media-tooltip-group,\n media-dialog,\n media-alert-dialog,\n media-error-dialog,\n media-controls {\n display: contents;\n }\n\n [hidden][hidden] {\n display: none !important;\n }\n }\n\n @media (prefers-reduced-motion: no-preference) {\n .media-skin {\n interpolate-size: allow-keywords;\n }\n }\n\n @supports not selector(:popover-open) {\n :where(.media-skin) [popover]:not([data-open], [data-ending-style]) {\n display: none !important;\n }\n\n .media-skin:is([data-preset=\"audio\"], [data-preset=\"live-audio\"]) {\n overflow: visible !important;\n }\n }\n}\n\n@layer components {\n @scope (.media-skin) {\n :scope {\n --media-caption-track-duration: var(--media-duration-controls);\n --media-caption-track-delay: 25ms;\n --media-caption-track-y: calc(var(--media-spacing) * -2);\n }\n\n video::-webkit-media-text-track-container {\n z-index: 20;\n scale: 0.98;\n translate: 0 var(--media-caption-track-y);\n transition: translate var(--media-caption-track-duration) ease-out;\n transition-delay: var(--media-caption-track-delay);\n font-family: inherit;\n }\n\n :scope[data-controls-visible] {\n --media-caption-track-y: var(--media-caption-controls-y);\n }\n\n @container media-root (width >= 42rem) {\n :scope[data-theme=\"minimal\"][data-controls-visible] video {\n --media-caption-track-y: calc(var(--media-spacing) * -12);\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-button {\n width: var(--media-control-size);\n height: var(--media-control-size);\n cursor: pointer;\n touch-action: manipulation;\n border-radius: var(--media-control-radius);\n text-align: center;\n min-height: 0;\n color: inherit;\n outline-offset: -2px;\n transition-property: background-color, color, outline-offset, scale;\n transition-duration: var(--media-duration);\n will-change: scale;\n -webkit-user-select: none;\n user-select: none;\n corner-shape: var(--media-control-corner-shape);\n background-color: #0000;\n border-style: solid;\n border-width: 0;\n outline: 2px solid #0000;\n flex-shrink: 0;\n place-items: center;\n padding: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: grid;\n }\n\n @media (hover: hover) {\n .media-button:not([aria-disabled=\"true\"]):hover {\n background-color: var(--media-accent);\n color: var(--media-accent-foreground);\n }\n }\n\n .media-button:focus-visible {\n outline-offset: 2px;\n outline-color: var(--media-ring);\n }\n\n .media-button:not([aria-disabled=\"true\"]):active {\n scale: 0.97;\n }\n\n .media-button[aria-disabled=\"true\"] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .media-button {\n will-change: auto;\n transition-property: background-color, color;\n scale: 1;\n }\n }\n\n .media-button:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n :not([aria-disabled=\"true\"])\n ) {\n background-color: var(--media-accent);\n color: var(--media-accent-foreground);\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-dialog-actions {\n gap: calc(var(--media-spacing) * 2);\n flex-shrink: 0;\n display: flex;\n }\n\n .media-dialog-backdrop {\n z-index: 40;\n border-radius: inherit;\n background-color: var(--media-backdrop);\n opacity: 1;\n backdrop-filter: var(--media-backdrop-filter-dialog);\n transition-property: opacity;\n transition-duration: 0.15s;\n transition-delay: var(--media-delay-dialog);\n transition-duration: var(--media-duration-dialog);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n inset: 0;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-dialog-backdrop {\n background-color: color-mix(in oklab, var(--media-backdrop) 20%, transparent);\n }\n }\n\n .media-dialog-backdrop:not([data-open]) {\n display: none;\n }\n\n .media-dialog-backdrop[data-ending-style] {\n transition-delay: 0s;\n transition-duration: var(--media-duration-slower);\n }\n\n .media-dialog-backdrop:is([data-starting-style], [data-ending-style]) {\n opacity: 0;\n }\n\n .media-dialog-close {\n height: var(--media-control-size);\n width: 100%;\n padding-inline: calc(var(--media-spacing) * 4);\n padding-block: calc(var(--media-spacing) * 2);\n flex: 1;\n font-weight: 500;\n background-color: var(--media-primary) !important;\n color: var(--media-primary-foreground) !important;\n }\n\n .media-dialog-content {\n gap: calc(var(--media-spacing) * 2);\n min-height: 0;\n padding-inline: calc(var(--media-spacing) * 2);\n padding-top: calc(var(--media-spacing) * 2);\n padding-bottom: calc(var(--media-spacing) * 1.5);\n flex-direction: column;\n display: flex;\n overflow-y: auto;\n }\n\n .media-dialog-description {\n overflow-wrap: anywhere;\n opacity: 0.7;\n margin: 0;\n }\n\n .media-dialog-popup {\n z-index: 50;\n max-height: calc(100% - 0.5rem);\n width: var(--media-dialog-width);\n max-width: var(--media-dialog-max-width);\n gap: calc(var(--media-spacing) * 3);\n border-radius: var(--media-dialog-radius);\n background-color: var(--media-popover);\n padding: calc(var(--media-spacing) * 3);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-delay: var(--media-delay-dialog);\n transition-duration: var(--media-duration-dialog);\n text-shadow: var(--media-text-shadow-dialog);\n outline-style: none;\n flex-direction: column;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: flex;\n position: absolute;\n top: 50%;\n left: 50%;\n translate: -50% -50%;\n }\n\n @media (forced-colors: active) {\n .media-dialog-popup {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .media-dialog-popup:not([data-open]) {\n display: none;\n }\n\n .media-dialog-popup:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n .media-dialog-popup[data-ending-style] {\n transition-delay: 0s;\n transition-duration: var(--media-duration-slower);\n }\n\n .media-dialog-popup:is([data-starting-style], [data-ending-style]) {\n scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);\n opacity: 0;\n }\n\n .media-dialog-title {\n font-size: calc(var(--media-spacing) * 3.75);\n margin: 0;\n font-weight: 600;\n line-height: 1.25;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-buffering-indicator {\n pointer-events: none;\n color: var(--media-controls-foreground);\n place-content: center;\n display: none;\n position: absolute;\n inset: 0;\n }\n\n .media-buffering-indicator:not([data-visible]) {\n --media-spinner-animation: none;\n }\n\n .media-buffering-indicator:before {\n background-color: var(--media-backdrop);\n content: \"\";\n backdrop-filter: var(--media-backdrop-filter-indicator);\n position: absolute;\n inset: 0;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-buffering-indicator:before {\n background-color: color-mix(in oklab, var(--media-backdrop) 35%, transparent);\n }\n }\n\n .media-buffering-indicator[data-visible] {\n display: grid;\n }\n\n .media-buffering-indicator-spinner-icon {\n z-index: 30;\n width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n position: relative;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-poster {\n pointer-events: none;\n border-radius: inherit;\n width: 100%;\n height: 100%;\n transition-property: opacity;\n transition-duration: 0.15s;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: var(--media-duration-slower);\n position: absolute;\n inset: 0;\n }\n\n .media-poster:not([data-visible]) {\n opacity: 0;\n }\n\n .media-poster-image {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n }\n\n .media-poster-image:not([src]):not([srcset]) {\n visibility: hidden;\n }\n }\n\n .media-poster > slot::slotted(img) {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n height: 100% !important;\n }\n\n .media-poster > slot::slotted(img:not([src]):not([srcset])) {\n visibility: hidden;\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-poster {\n pointer-events: none;\n border-radius: inherit;\n width: 100%;\n height: 100%;\n transition-property: opacity;\n transition-duration: 0.15s;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: var(--media-duration-slower);\n position: absolute;\n inset: 0;\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-poster:not([data-visible]) {\n opacity: 0;\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-poster-image {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-poster-image:not([src]):not([srcset]) {\n visibility: hidden;\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-title {\n pointer-events: none;\n isolation: isolate;\n z-index: 20;\n min-height: calc(var(--media-control-size) + (calc(var(--media-spacing) * 2)));\n transform-origin: top;\n padding-inline: calc(var(--media-spacing) * 6);\n padding-top: calc(var(--media-spacing) * 2.5);\n font-size: calc(var(--media-spacing) * 3.25);\n letter-spacing: -0.0125em;\n overflow-wrap: anywhere;\n color: var(--media-controls-foreground);\n transition-property: filter, opacity, scale, translate;\n transition-duration: 0.15s;\n transition-duration: calc(var(--media-duration-controls) / 2);\n text-shadow: 0 1px 0 var(--media-shadow-current-color);\n inset-inline: 0;\n align-items: center;\n font-weight: 500;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: flex;\n position: absolute;\n top: 0;\n }\n\n .media-title:not([data-visible]) {\n translate: 0 calc(var(--media-hidden-offset) * -1);\n scale: var(--media-hidden-scale) var(--media-hidden-scale);\n opacity: 0;\n transition-duration: var(--media-duration-controls);\n }\n\n @media (pointer: fine) {\n .media-title:not([data-visible]) {\n filter: blur(var(--media-hidden-blur));\n }\n }\n\n @container media-root (width >= 28rem) {\n .media-title {\n padding-inline: calc(var(--media-spacing) * 6);\n padding-top: calc(var(--media-spacing) * 4);\n font-size: calc(var(--media-spacing) * 4.25);\n }\n }\n\n @container media-root (width < 32rem) {\n .media-title {\n padding-right: calc(var(--media-spacing) * 36);\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-container,\n :scope.media-container {\n isolation: isolate;\n border-radius: var(--media-video-border-radius);\n background-color: var(--media-background);\n width: 100%;\n min-width: 0;\n height: 100%;\n min-height: 0;\n font-family: var(--media-font-family, \"Inter Variable\", Inter, ui-sans-serif, system-ui, sans-serif);\n font-size: calc(var(--media-spacing) * 3.25);\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: auto;\n outline-offset: -4px;\n transition-property: outline-offset, outline-color;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-fast);\n --spacing: var(--media-spacing);\n outline: 2px solid #0000;\n line-height: 1.5;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: block;\n position: relative;\n overflow: clip;\n container: media-root / inline-size;\n }\n\n .media-container:after,\n :scope.media-container:after {\n pointer-events: none;\n z-index: 10;\n border-radius: inherit;\n content: \"\";\n border-style: solid;\n border-width: 1px;\n border-color: var(--media-frame-border);\n position: absolute;\n inset: 0;\n }\n\n .media-container:focus-visible,\n :scope.media-container:focus-visible {\n outline-offset: 2px;\n outline-color: var(--media-ring);\n }\n\n .media-container:fullscreen:after,\n :scope.media-container:fullscreen:after {\n content: \"\";\n display: none;\n }\n }\n\n .media-container > slot::slotted(video),\n :scope.media-container > slot::slotted(video) {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n max-width: 100%;\n height: 100%;\n margin: 0;\n display: block;\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-status-announcer {\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-indicator {\n pointer-events: none;\n top: calc(var(--media-spacing) * 3);\n transform-origin: top;\n border-radius: var(--media-control-radius);\n background-color: var(--media-backdrop);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n transition-duration: var(--media-duration-fast);\n font-weight: 500;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-indicator {\n background-color: color-mix(in oklab, var(--media-backdrop) 25%, transparent);\n }\n }\n\n .media-indicator:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n .media-indicator[data-ending-style] {\n translate: 0 var(--media-hidden-indicator-offset);\n }\n\n @media (pointer: coarse) {\n .media-indicator {\n will-change: scale, translate, opacity;\n transition-property: scale, translate, opacity;\n }\n }\n\n @media (pointer: fine) {\n .media-indicator {\n will-change: scale, translate, filter, opacity;\n transition-property: scale, translate, filter, opacity;\n }\n }\n\n @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n .media-indicator {\n background-color: var(--media-background);\n }\n }\n\n .media-indicator:is([data-starting-style], [data-ending-style]) {\n opacity: 0;\n transition-duration: var(--media-duration-indicator);\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n }\n\n @media (pointer: fine) {\n .media-indicator:is([data-starting-style], [data-ending-style]) {\n scale: var(--media-hidden-indicator-scale) var(--media-hidden-indicator-scale);\n filter: blur(var(--media-hidden-blur));\n }\n }\n\n .media-indicator-content {\n justify-content: space-between;\n align-items: center;\n gap: calc(var(--media-spacing) * 2);\n padding-inline: calc(var(--media-spacing) * 2.5);\n padding-block: var(--media-spacing);\n }\n\n .media-playback-status-indicator {\n background-color: var(--media-backdrop);\n padding: calc(var(--media-spacing) * 4);\n text-align: center;\n backdrop-filter: var(--media-backdrop-filter-indicator);\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-slow);\n border-radius: 9999px;\n grid-row-start: 1;\n grid-column-start: 2;\n place-content: center;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: grid;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-playback-status-indicator {\n background-color: color-mix(in oklab, var(--media-backdrop) 35%, transparent);\n }\n }\n\n .media-playback-status-indicator[data-ending-style] {\n transition-duration: var(--media-duration-fast);\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n }\n\n .media-playback-status-indicator:is([data-starting-style], [data-ending-style]) {\n scale: var(--media-hidden-playback-scale) var(--media-hidden-playback-scale);\n opacity: 0;\n }\n\n .media-playback-status-indicator-pause-icon {\n width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n grid-row-start: 1;\n grid-column-start: 1;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n\n @scope (.media-playback-status-indicator) {\n &[data-status=\"pause\"] .media-playback-status-indicator-pause-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-playback-status-indicator-play-icon {\n width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n grid-row-start: 1;\n grid-column-start: 1;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n\n @scope (.media-playback-status-indicator) {\n &[data-status=\"play\"] .media-playback-status-indicator-play-icon {\n opacity: 1;\n translate: 1px;\n scale: 1;\n }\n }\n\n .media-status-indicator-captions-off-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"captions-off\"] .media-status-indicator-captions-off-icon {\n display: block;\n }\n }\n\n .media-status-indicator-captions-on-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"captions-on\"] .media-status-indicator-captions-on-icon {\n display: block;\n }\n }\n\n .media-status-indicator-content {\n width: 100%;\n display: flex;\n }\n\n .media-status-indicator-fullscreen-enter-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"fullscreen\"] .media-status-indicator-fullscreen-enter-icon {\n display: block;\n }\n }\n\n .media-status-indicator-fullscreen-exit-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"exit-fullscreen\"] .media-status-indicator-fullscreen-exit-icon {\n display: block;\n }\n }\n\n .media-status-indicator-pip-enter-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"pip\"] .media-status-indicator-pip-enter-icon {\n display: block;\n }\n }\n\n .media-status-indicator-pip-exit-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"exit-pip\"] .media-status-indicator-pip-exit-icon {\n display: block;\n }\n }\n\n .media-status-indicator-value {\n mix-blend-mode: difference;\n margin-left: auto;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n @supports (color: color-mix(in lab, red, red)) {\n }\n\n @media (pointer: coarse) {\n }\n\n @media (pointer: fine) {\n }\n\n @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n }\n\n @media (pointer: fine) {\n }\n\n .media-volume-indicator {\n width: min(80%, 12rem);\n transform: translateX(0);\n }\n\n @media (prefers-reduced-motion: no-preference) {\n .media-volume-indicator:is([data-min], [data-max]):not([data-starting-style], [data-ending-style]) {\n transition: transform 0.3s linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);\n transform: translateX(0.25px);\n }\n }\n\n .media-volume-indicator-fill {\n border-radius: inherit;\n background-image: linear-gradient(currentColor, currentColor);\n background-size: var(--media-volume-fill, 0%) 100%;\n width: 100%;\n transition-property: background-size;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-slow);\n background-position: 0;\n background-repeat: no-repeat;\n transition-timing-function: linear;\n display: flex;\n }\n\n .media-volume-indicator-high-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-volume-indicator) {\n &[data-level=\"high\"] .media-volume-indicator-high-icon {\n display: block;\n }\n }\n\n .media-volume-indicator-low-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-volume-indicator) {\n &[data-level=\"low\"] .media-volume-indicator-low-icon {\n display: block;\n }\n }\n\n .media-volume-indicator-off-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-volume-indicator) {\n &[data-level=\"off\"] .media-volume-indicator-off-icon {\n display: block;\n }\n }\n\n .media-volume-indicator-value {\n mix-blend-mode: difference;\n margin-left: auto;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"][data-preset=\"live-video\"]) {\n .video-status-indicators {\n pointer-events: none;\n z-index: 20;\n color: var(--media-controls-foreground);\n grid-template-columns: repeat(3, minmax(0, 1fr));\n place-items: center;\n display: grid;\n position: absolute;\n inset: 0;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-airplay-button:not([data-airplay-state=\"connected\"]) {\n --media-icon-airplay-fill-animation: none;\n --media-icon-airplay-triangle-animation: none;\n }\n\n .media-airplay-button-enter-icon {\n opacity: 0;\n }\n\n @scope (.media-airplay-button) {\n &:not([data-airplay-state=\"connected\"]) .media-airplay-button-enter-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-airplay-button-exit-icon {\n opacity: 0;\n }\n\n @scope (.media-airplay-button) {\n &[data-airplay-state=\"connected\"] .media-airplay-button-exit-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-button-icon {\n width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n text-shadow: inherit;\n grid-row-start: 1;\n grid-column-start: 1;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-popup {\n color: inherit;\n border-style: solid;\n border-width: 0;\n margin: 0;\n overflow: visible;\n }\n\n .media-popup[data-ending-style] {\n transform: none;\n }\n\n .media-popup[data-starting-style] {\n transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));\n }\n\n .media-popup[data-side=\"bottom\"] {\n transform-origin: top;\n --media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);\n }\n\n .media-popup[data-side=\"left\"] {\n transform-origin: 100%;\n --media-popup-translate-x-distance: var(--media-popup-translate-distance);\n }\n\n .media-popup[data-side=\"right\"] {\n transform-origin: 0;\n --media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);\n }\n\n .media-popup[data-side=\"top\"] {\n transform-origin: bottom;\n --media-popup-translate-y-distance: var(--media-popup-translate-distance);\n }\n\n .media-popup:is([data-starting-style], [data-ending-style]) {\n scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);\n opacity: 0;\n filter: blur(var(--media-hidden-popup-blur));\n }\n\n .media-popup-safe-area:before {\n pointer-events: auto;\n content: \"\";\n position: absolute;\n }\n\n .media-popup-safe-area[data-side=\"bottom\"]:before {\n content: \"\";\n height: var(--media-popup-side-offset);\n inset-inline: 0;\n bottom: 100%;\n }\n\n .media-popup-safe-area[data-side=\"left\"]:before {\n content: \"\";\n width: var(--media-popup-side-offset);\n inset-block: 0;\n left: 100%;\n }\n\n .media-popup-safe-area[data-side=\"right\"]:before {\n content: \"\";\n width: var(--media-popup-side-offset);\n inset-block: 0;\n right: 100%;\n }\n\n .media-popup-safe-area[data-side=\"top\"]:before {\n content: \"\";\n height: var(--media-popup-side-offset);\n inset-inline: 0;\n top: 100%;\n }\n\n .media-popup-surface {\n background-color: var(--media-popover);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n }\n\n .media-popup-surface:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n .media-popup-transition {\n transition-property: opacity, filter, transform, scale;\n transition-duration: var(--media-duration-fast);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n\n .media-popup-transition[data-ending-style] {\n transition-duration: var(--media-duration-instant);\n }\n\n .media-tooltip {\n border-radius: var(--media-control-radius);\n padding-inline: calc(var(--media-spacing) * 2.5);\n padding-block: var(--media-spacing);\n font-size: calc(var(--media-spacing) * 3.25);\n white-space: nowrap;\n --media-popup-side-offset: var(--media-tooltip-side-offset);\n }\n\n .media-tooltip[data-open] {\n align-items: center;\n gap: var(--media-spacing);\n display: flex;\n }\n\n .media-tooltip-shortcut {\n border-radius: var(--media-spacing);\n background-color: var(--media-muted);\n text-align: center;\n min-width: 1.5em;\n font-family: inherit;\n font-size: calc(var(--media-spacing) * 2.75);\n padding: 0.1em;\n font-weight: 600;\n line-height: 1.25;\n }\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-popup-surface {\n background-color: var(--media-popover);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-popup-surface:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-cast-button-enter-icon {\n opacity: 0;\n }\n\n @scope (.media-cast-button) {\n &:not([data-cast-state=\"connected\"]) .media-cast-button-enter-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-cast-button-exit-icon {\n opacity: 0;\n }\n\n @scope (.media-cast-button) {\n &[data-cast-state=\"connected\"] .media-cast-button-exit-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-fullscreen-button-enter-icon {\n opacity: 0;\n }\n\n @scope (.media-fullscreen-button) {\n &:not([data-fullscreen]) .media-fullscreen-button-enter-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-fullscreen-button-exit-icon {\n opacity: 0;\n }\n\n @scope (.media-fullscreen-button) {\n &[data-fullscreen] .media-fullscreen-button-exit-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-live-button {\n align-items: center;\n gap: calc(var(--media-spacing) * 1.5);\n width: auto;\n padding-inline: calc(var(--media-spacing) * 3);\n padding-block: calc(var(--media-spacing) * 2);\n font-size: calc(var(--media-spacing) * 2.75);\n letter-spacing: 0.05em;\n text-transform: uppercase;\n font-weight: 600;\n line-height: 1;\n display: inline-flex !important;\n }\n\n .media-live-button:before {\n width: calc(var(--media-spacing) * 2);\n height: calc(var(--media-spacing) * 2);\n transition-property: background-color;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n content: \"\";\n background-color: currentColor;\n border-radius: 9999px;\n flex-shrink: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: inline-block;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-live-button:before {\n background-color: color-mix(in oklab, currentcolor 40%, transparent);\n }\n }\n\n .media-live-button[data-live-edge]:before {\n content: \"\";\n background-color: var(--media-live-color);\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-pip-button-enter-icon {\n opacity: 0;\n }\n\n @scope (.media-pip-button) {\n &:not([data-pip]) .media-pip-button-enter-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-pip-button-exit-icon {\n opacity: 0;\n }\n\n @scope (.media-pip-button) {\n &[data-pip] .media-pip-button-exit-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-play-button-pause-icon {\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n }\n\n @scope (.media-play-button) {\n &[data-started]:not([data-paused]):not([data-ended]) .media-play-button-pause-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-play-button-play-icon {\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n }\n\n @scope (.media-play-button) {\n &:not([data-ended]):not([data-started]) .media-play-button-play-icon,\n &:not([data-ended])[data-paused] .media-play-button-play-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-play-button-restart-icon {\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n }\n\n @scope (.media-play-button) {\n &[data-ended] .media-play-button-restart-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-captions-button-off-icon {\n opacity: 0;\n }\n\n @scope (.media-captions-button) {\n &:not([data-active]) .media-captions-button-off-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-captions-button-on-icon {\n opacity: 0;\n }\n\n @scope (.media-captions-button) {\n &[data-active] .media-captions-button-on-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-menu-item-indicator {\n opacity: 0;\n flex-shrink: 0;\n margin-inline-start: auto;\n margin-inline-end: calc(var(--media-spacing) * -1);\n }\n\n @scope (.media-menu-radio-item) {\n &[aria-checked=\"true\"] .media-menu-item-indicator {\n opacity: 1;\n }\n }\n\n .media-menu-radio-item {\n cursor: pointer;\n justify-content: space-between;\n align-items: center;\n gap: calc(var(--media-spacing) * 1.5);\n border-radius: var(--media-menu-item-radius);\n padding-inline: calc(var(--media-spacing) * 2);\n padding-block: calc(var(--media-spacing) * 1.5);\n text-align: start;\n white-space: nowrap;\n color: inherit;\n font-variant-numeric: tabular-nums;\n outline-offset: -2px;\n transition-property: background-color, color;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-fast);\n -webkit-user-select: none;\n user-select: none;\n text-shadow: 0 1px 0 var(--media-shadow-current-color);\n outline: 2px solid #0000;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n position: relative;\n }\n\n .media-menu-radio-item:focus-visible {\n outline-offset: 2px;\n outline-color: var(--media-ring);\n }\n\n .media-menu-radio-item[aria-disabled=\"true\"] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .media-menu-radio-item[data-availability=\"unavailable\"],\n .media-menu-radio-item[data-availability=\"unsupported\"] {\n display: none;\n }\n\n .media-menu-radio-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n :not([aria-disabled=\"true\"])\n ) {\n background-color: var(--media-accent);\n color: var(--media-accent-foreground);\n }\n\n @supports (top: anchor(top)) {\n .media-menu-radio-item {\n transition-duration: var(--media-duration-instant);\n }\n\n .media-menu-radio-item[data-highlighted] {\n anchor-name: --media-menu-item-highlight-anchor;\n }\n\n .media-menu-radio-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n :not([aria-disabled=\"true\"])\n ) {\n transition-duration: var(--media-duration-slow);\n background-color: #0000;\n }\n }\n\n .media-menu-radio-item-icon {\n width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n color: var(--media-muted-foreground);\n filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n flex-shrink: 0;\n }\n\n @scope (.media-menu-radio-item) {\n &:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(:not([aria-disabled=\"true\"]))\n .media-menu-radio-item-icon {\n color: inherit;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-menu-content {\n max-height: inherit;\n overscroll-behavior: none;\n transition-property: translate, filter;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-menu);\n anchor-scope: --media-menu-item-highlight-anchor;\n outline-style: none;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n overflow: auto;\n }\n\n @media (forced-colors: active) {\n .media-menu-content {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .media-menu-content:not([data-submenu]) {\n inset-inline: var(--media-spacing);\n top: var(--media-spacing);\n gap: calc(var(--media-spacing) * 0.5);\n flex-direction: column;\n display: flex;\n }\n\n .media-menu-content:not([data-submenu])[data-child-open] {\n filter: blur(var(--media-hidden-blur));\n translate: -100%;\n }\n\n .media-menu-content:not([data-submenu])[data-child-open]:before {\n content: \"\";\n display: none;\n }\n\n .media-menu-content[data-submenu] {\n z-index: 10;\n max-height: inherit;\n padding: var(--media-spacing);\n inset-inline: 0;\n top: 0;\n }\n\n .media-menu-content:not([data-submenu])[data-child-open]:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n translate: 100%;\n }\n\n .media-menu-content:is([data-starting-style], [data-ending-style]):before {\n content: \"\";\n display: none;\n }\n\n .media-menu-content[data-submenu]:is([data-starting-style], [data-ending-style]) {\n pointer-events: none;\n filter: blur(var(--media-hidden-blur));\n overflow: hidden;\n translate: 100%;\n }\n\n .media-menu-content[data-submenu]:is([data-starting-style], [data-ending-style]):where(\n :dir(rtl),\n [dir=\"rtl\"],\n [dir=\"rtl\"] *\n ) {\n translate: -100%;\n }\n\n @supports (top: anchor(top)) {\n .media-menu-content:before {\n content: \"\";\n position-anchor: --media-menu-item-highlight-anchor;\n inset: anchor(inside);\n overflow-anchor: none;\n pointer-events: none;\n border-radius: var(--media-menu-item-radius);\n background-color: var(--media-accent);\n transition: inset var(--media-duration-fast) ease-in-out;\n position: absolute;\n }\n\n .media-menu-content:has([data-highlighted=\"\"]):before {\n content: \"\";\n transition-duration: 0s;\n }\n }\n\n .media-menu-content:is([data-starting-style], [data-ending-style]) :before {\n content: \"\";\n display: none;\n }\n\n .media-menu-popup {\n height: var(--media-menu-height);\n max-height: min(\n var(--media-menu-available-height, calc(var(--media-spacing) * 56)),\n calc(var(--media-spacing) * 56)\n );\n width: var(--media-menu-width);\n max-width: var(--media-menu-available-width);\n min-width: calc(var(--media-spacing) * 44);\n overscroll-behavior: none;\n border-radius: var(--media-popup-radius);\n padding: var(--media-spacing);\n transition-property: opacity, filter, transform, scale;\n transition-duration: var(--media-duration-fast);\n --media-popup-side-offset: var(--media-popover-side-offset);\n border-style: solid;\n border-width: 0;\n margin: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n overflow: hidden !important;\n }\n\n .media-menu-popup:is([data-starting-style], [data-ending-style]) {\n transition-property: opacity, filter, transform, scale;\n transition-duration: var(--media-duration-fast);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n\n .media-menu-radio-group {\n max-height: inherit;\n gap: calc(var(--media-spacing) * 0.5);\n anchor-scope: --media-menu-item-highlight-anchor;\n flex-direction: column;\n display: flex;\n }\n\n .media-menu-radio-group:is([data-starting-style], [data-ending-style]):before {\n content: \"\";\n display: none;\n }\n\n @supports (top: anchor(top)) {\n .media-menu-radio-group:before {\n content: \"\";\n position-anchor: --media-menu-item-highlight-anchor;\n inset: anchor(inside);\n overflow-anchor: none;\n pointer-events: none;\n border-radius: var(--media-menu-item-radius);\n background-color: var(--media-accent);\n transition: inset var(--media-duration-fast) ease-in-out;\n position: absolute;\n }\n\n .media-menu-radio-group:has([data-highlighted=\"\"]):before {\n content: \"\";\n transition-duration: 0s;\n }\n }\n\n .media-menu-radio-group:is([data-starting-style], [data-ending-style]) :before {\n content: \"\";\n display: none;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-mute-button-high-icon {\n opacity: 0;\n }\n\n @scope (.media-mute-button) {\n &:not([data-muted]):not([data-volume-level=\"low\"]) .media-mute-button-high-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-mute-button-low-icon {\n opacity: 0;\n }\n\n @scope (.media-mute-button) {\n &:not([data-muted])[data-volume-level=\"low\"] .media-mute-button-low-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-mute-button-off-icon {\n opacity: 0;\n }\n\n @scope (.media-mute-button) {\n &[data-muted] .media-mute-button-off-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-slider-buffer {\n pointer-events: none;\n position: absolute;\n inset: 0;\n }\n\n .media-slider-buffer:before {\n border-radius: var(--media-control-radius);\n content: \"\";\n background-color: currentColor;\n width: 100%;\n height: 100%;\n position: absolute;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-slider-buffer:before {\n background-color: color-mix(in oklab, currentcolor 20%, transparent);\n }\n }\n\n .media-slider-buffer[data-orientation=\"horizontal\"] {\n left: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n right: max(\n calc(100% - var(--media-slider-buffer)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(-1px 0);\n }\n\n .media-slider-buffer[data-orientation=\"horizontal\"]:before {\n content: \"\";\n min-width: var(--media-spacing);\n left: 0;\n }\n\n .media-slider-buffer[data-orientation=\"vertical\"] {\n bottom: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n top: max(\n calc(100% - var(--media-slider-buffer)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(0 -1px);\n }\n\n .media-slider-buffer[data-orientation=\"vertical\"]:before {\n content: \"\";\n min-height: var(--media-spacing);\n bottom: 0;\n }\n\n .media-slider-fill {\n pointer-events: none;\n position: absolute;\n inset: 0;\n }\n\n .media-slider-fill:before {\n border-radius: var(--media-control-radius);\n content: \"\";\n background-color: var(--media-primary);\n width: 100%;\n height: 100%;\n position: absolute;\n }\n\n .media-slider-fill[data-orientation=\"horizontal\"] {\n left: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n right: max(\n calc(100% - var(--media-slider-fill)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(-1px 0);\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-fill[data-orientation=\"horizontal\"] {\n left: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n right: max(\n calc(100% - var(--media-slider-pointer)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(-1px 0);\n }\n }\n\n .media-slider-fill[data-orientation=\"horizontal\"]:before {\n content: \"\";\n min-width: var(--media-spacing);\n left: 0;\n }\n\n .media-slider-fill[data-orientation=\"vertical\"] {\n bottom: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n top: max(\n calc(100% - var(--media-slider-fill)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(0 -1px);\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-fill[data-orientation=\"vertical\"] {\n bottom: calc(\n var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0)\n );\n top: max(\n calc(100% - var(--media-slider-pointer)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(0 -1px);\n }\n }\n\n .media-slider-fill[data-orientation=\"vertical\"]:before {\n content: \"\";\n min-height: var(--media-spacing);\n bottom: 0;\n }\n\n .media-slider-thumb {\n top: 50%;\n left: var(--media-slider-fill);\n z-index: 10;\n width: calc(var(--media-spacing) * 3);\n height: calc(var(--media-spacing) * 3);\n border-radius: var(--media-control-radius);\n box-shadow:\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n var(--media-shadow-thumb);\n outline-offset: -4px;\n transition-property: opacity, height, width, outline-offset, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-slider);\n -webkit-user-select: none;\n user-select: none;\n background-color: #fff;\n outline: 4px solid #0000;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n translate: -50% -50%;\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-thumb {\n scale: 0.9;\n }\n }\n\n .media-slider-thumb:after {\n pointer-events: none;\n inset: calc(var(--media-spacing) * -1);\n border-radius: inherit;\n opacity: 0;\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n content: \"\";\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n scale: 0.5;\n box-shadow:\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n 0 0 0 2px;\n }\n\n @media (hover: hover) {\n .media-slider-thumb:hover {\n outline-offset: 0px;\n outline-color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-slider-thumb:hover {\n outline-color: color-mix(in oklab, currentcolor 15%, transparent);\n }\n }\n }\n\n .media-slider-thumb:focus-visible {\n outline-offset: 0px;\n outline-color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-slider-thumb:focus-visible {\n outline-color: color-mix(in oklab, currentcolor 15%, transparent);\n }\n }\n\n .media-slider-thumb:focus-visible:after {\n content: \"\";\n opacity: 1;\n scale: 1;\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-thumb[data-orientation=\"horizontal\"] {\n left: var(--media-slider-pointer);\n }\n }\n\n .media-slider-thumb[data-orientation=\"vertical\"] {\n top: calc(100% - var(--media-slider-fill));\n left: 50%;\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-thumb[data-orientation=\"vertical\"] {\n top: calc(100% - var(--media-slider-pointer));\n }\n }\n\n .media-slider-track {\n isolation: isolate;\n -webkit-user-select: none;\n user-select: none;\n border-radius: 9999px;\n width: 100%;\n position: relative;\n }\n\n .media-slider-track:before {\n pointer-events: none;\n border-radius: var(--media-control-radius);\n content: \"\";\n background-color: currentColor;\n position: absolute;\n inset: 0;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-slider-track:before {\n background-color: color-mix(in oklab, currentcolor 20%, transparent);\n }\n }\n\n .media-slider-track[data-orientation=\"horizontal\"] {\n height: var(--media-spacing);\n }\n\n .media-slider-track[data-orientation=\"vertical\"] {\n height: 100%;\n width: var(--media-spacing);\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-slider {\n cursor: pointer;\n transition-property: --media-slider-fill, --media-slider-buffer;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-slider);\n border-radius: 9999px;\n outline-style: none;\n flex: 1;\n justify-content: center;\n align-items: center;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: flex;\n position: relative;\n }\n\n @media (forced-colors: active) {\n .media-slider {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .media-slider[data-disabled] {\n pointer-events: none;\n }\n\n .media-slider[data-dragging] {\n transition-duration: 0s;\n }\n\n .media-slider[data-orientation=\"horizontal\"] {\n height: var(--media-slider-height, calc(var(--media-spacing) * 8));\n min-width: calc(var(--media-spacing) * 18);\n }\n\n .media-slider[data-orientation=\"vertical\"] {\n height: calc(var(--media-spacing) * 18);\n width: calc(var(--media-spacing) * 8);\n min-width: 0;\n }\n\n .media-volume-slider-thumb {\n opacity: 1;\n scale: 1;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-volume-popover {\n border-radius: var(--media-control-radius);\n padding-inline: 0;\n padding-block: calc(var(--media-spacing) * 3);\n --media-popup-side-offset: var(--media-popover-side-offset);\n }\n\n .media-volume-popover[data-side=\"right\"] {\n padding: 0;\n padding-inline: calc(var(--media-spacing) * 3);\n --media-popover-side-offset: 0rem;\n border-radius: 0;\n box-shadow: none !important;\n backdrop-filter: none !important;\n background-color: #0000 !important;\n }\n\n .media-volume-popover[data-side=\"right\"]:after {\n content: \"\";\n display: none;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"][data-preset=\"live-video\"]) {\n .video-controls-backdrop {\n pointer-events: none;\n z-index: 10;\n border-radius: inherit;\n background-image: var(--media-controls-gradient);\n transition-property: opacity;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-controls);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n inset: 0;\n }\n\n .video-controls-backdrop:not([data-visible]) {\n opacity: 0;\n }\n\n .video-controls-content {\n padding: var(--media-spacing);\n color: var(--media-controls-foreground);\n transition-property: filter, opacity, scale, translate;\n transition-duration: 0.15s;\n transition-duration: calc(var(--media-duration-controls) / 2);\n text-shadow: 0 1px 0 var(--media-shadow-current-color);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: contents;\n }\n\n @container media-root (width >= 32rem) {\n .video-controls-content {\n inset-inline: calc(var(--media-spacing) * 2);\n bottom: calc(var(--media-spacing) * 2);\n z-index: 30;\n border-radius: var(--media-controls-radius);\n background-color: var(--media-popover);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n align-items: center;\n display: flex;\n position: absolute;\n }\n\n .video-controls-content:not([data-visible]) {\n pointer-events: none;\n translate: 0 var(--media-hidden-offset);\n scale: var(--media-hidden-scale) var(--media-hidden-scale);\n opacity: 0;\n transition-duration: var(--media-duration-controls);\n }\n\n .video-controls-content:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n .video-controls-content:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n flex-direction: row-reverse;\n }\n\n @media (pointer: fine) {\n .video-controls-content:not([data-visible]) {\n filter: blur(var(--media-hidden-blur));\n }\n }\n }\n\n @container media-root (width >= 42rem) {\n .video-controls-content {\n inset-inline: calc(var(--media-spacing) * 3);\n bottom: calc(var(--media-spacing) * 3);\n }\n }\n\n .video-controls-primary {\n inset-inline: calc(var(--media-spacing) * 2);\n bottom: calc(var(--media-spacing) * 2);\n z-index: 30;\n transform-origin: bottom;\n border-radius: var(--media-controls-radius);\n padding: calc(var(--media-spacing) * 0.5);\n transition-property: filter, opacity, scale, translate;\n transition-duration: 0.15s;\n transition-duration: calc(var(--media-duration-controls) / 2);\n align-items: center;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: flex;\n position: absolute;\n }\n\n .video-controls-primary:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n flex-direction: row-reverse;\n }\n\n @container media-root (width >= 32rem) {\n .video-controls-primary {\n display: contents;\n }\n }\n\n @container media-root (width < 32rem) {\n .video-controls-primary {\n background-color: var(--media-popover);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n }\n\n @scope (.video-controls-content) {\n &:not([data-visible]) .video-controls-primary {\n pointer-events: none;\n translate: 0 var(--media-hidden-offset);\n scale: var(--media-hidden-scale) var(--media-hidden-scale);\n opacity: 0;\n transition-duration: var(--media-duration-controls);\n }\n }\n\n .video-controls-primary:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n @media (pointer: fine) {\n @scope (.video-controls-content) {\n &:not([data-visible]) .video-controls-primary {\n filter: blur(var(--media-hidden-blur));\n }\n }\n }\n }\n\n .video-controls-spacer {\n flex: 1;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"][data-preset=\"live-video\"]) {\n @container media-root (width < 32rem) {\n .video-controls-captions-menu {\n display: none;\n }\n }\n\n .video-controls-spaced {\n gap: 1px;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"][data-preset=\"live-video\"]) {\n @media (pointer: fine) {\n .video-skin:not([data-controls-visible]),\n :scope.video-skin:not([data-controls-visible]) {\n cursor: none;\n }\n }\n }\n}\n\n@layer utilities;\n\n@layer base.theme {\n .media-skin {\n --media-background: oklch(0% 0 0);\n --media-foreground: oklch(100% 0 0);\n --media-controls: oklch(0% 0 0 / 0.35);\n --media-controls-foreground: var(--media-foreground);\n --media-popover: oklch(100% 0 0 / 0.1);\n --media-popover-foreground: var(--media-foreground);\n --media-primary: var(--media-accent-color, var(--media-default-accent-color));\n --media-primary-foreground: var(\n --media-accent-text-color,\n contrast-color(var(--media-accent-color, var(--media-default-accent-color)))\n );\n --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));\n --media-accent-foreground: var(\n --media-accent-text-color,\n contrast-color(var(--media-accent-color, var(--media-internal-accent-text-fallback, oklch(0% 0 0))))\n );\n --media-muted: oklch(100% 0 0 / 0.15);\n --media-muted-foreground: oklch(100% 0 0 / 0.65);\n --media-border: oklch(0% 0 0 / 0.1);\n --media-ring: oklch(100% 0 0);\n --media-backdrop: oklch(0% 0 0);\n --media-live-color: oklch(65% 0.22 27);\n --media-shadow-surface: 0 1px 3px 0 oklch(0% 0 0 / 0.15), 0 1px 2px -1px oklch(0% 0 0 / 0.15);\n --media-shadow-surface-inset: inset 0 1px 0 0 #ffffff1a, inset 0 0 0 1px #ffffff0d;\n --media-shadow-thumb: 0 0 0 1px #0000001a, 0 1px 3px 0 #00000059, 0 1px 2px -1px #00000059;\n --media-shadow-tooltip: 0 0 0 1px var(--media-border), var(--media-shadow-surface);\n --media-shadow-separator: 0 1px 0 0 oklch(100% 0 0 / 0.075);\n --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));\n --media-shadow-subtle-current-color: oklch(from var(--media-shadow-current-color) l c h / calc(alpha * 0.4));\n --media-text-shadow-dialog: 0 1px 0 #00000040;\n --media-backdrop-filter-surface: blur(16px) saturate(150%);\n --media-backdrop-filter-indicator: blur(8px);\n --media-backdrop-filter-dialog: blur(16px) saturate(150%);\n --media-control-corner-shape: round;\n --media-control-radius: 99px;\n --media-control-size: calc(var(--media-spacing) * 9);\n --media-controls-radius: var(--media-control-radius);\n --media-default-accent-color: oklch(100% 0 0);\n --media-duration-instant: 50ms;\n --media-duration-fast: 0.1s;\n --media-duration: 0.15s;\n --media-duration-slow: 0.2s;\n --media-duration-slower: 0.25s;\n --media-duration-controls: 0.1s;\n --media-duration-dialog: 0.35s;\n --media-duration-indicator: var(--media-duration-slower);\n --media-duration-menu: 0.25s;\n --media-duration-slider: var(--media-duration-fast);\n --media-delay-dialog: 0.1s;\n --media-hidden-scale: 0.95;\n --media-hidden-blur: 8px;\n --media-hidden-offset: calc(var(--media-spacing) * 1);\n --media-hidden-icon-scale: 0;\n --media-hidden-indicator-scale: 0.9;\n --media-hidden-indicator-offset: -25%;\n --media-hidden-playback-scale: 0.85;\n --media-hidden-popup-scale: 0.95;\n --media-hidden-popup-blur: 4px;\n --media-hidden-preview-scale: 0.8;\n --media-hidden-preview-offset: calc(var(--media-spacing) * 2);\n --media-hidden-seek-offset: 60%;\n --media-menu-item-radius: calc(var(--media-spacing) * 2);\n --media-popover-boundary-offset: calc(var(--media-spacing) * 3);\n --media-popover-side-offset: calc(var(--media-spacing) * 3);\n --media-popup-radius: calc(var(--media-spacing) * 3);\n --media-popup-translate-distance: calc(var(--media-spacing) * 2);\n --media-tooltip-boundary-offset: var(--media-popover-boundary-offset);\n --media-tooltip-side-offset: var(--media-popover-side-offset);\n --media-dialog-radius: calc(var(--media-spacing) * 7);\n --media-dialog-width: calc(100% - var(--media-spacing) * 6);\n --media-dialog-max-width: calc(var(--media-spacing) * 72);\n --media-slider-preview-label-offset: calc(var(--media-spacing) * 10.5);\n --media-video-border-radius: var(--media-border-radius, 28px);\n --media-scale: 1;\n --media-scrollbar-thumb-color: oklch(from currentColor l c h / 0.3);\n --media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);\n scrollbar-color: var(--media-scrollbar-thumb-color) transparent;\n scrollbar-width: thin;\n }\n\n .media-skin::-webkit-scrollbar-thumb {\n background: var(--media-scrollbar-thumb-color);\n border-radius: 9999px;\n }\n\n .media-skin:fullscreen {\n --media-object-fit: contain;\n --media-video-border-radius: 0;\n }\n\n @media (width >= 1280px) {\n .media-skin:fullscreen {\n --media-scale: 1.25;\n }\n }\n\n @media (width >= 1536px) {\n .media-skin:fullscreen {\n --media-scale: 1.5;\n }\n }\n\n @media (width >= 1920px) {\n .media-skin:fullscreen {\n --media-scale: 1.75;\n }\n }\n}\n\n@layer base.preset {\n .media-skin:is([data-preset=\"video\"], [data-preset=\"live-video\"]) {\n --media-frame-border: var(--media-border-color, light-dark(#0000001a, #ffffff26));\n --media-controls-gradient: linear-gradient(\n to top in oklab,\n oklch(from var(--media-backdrop) l c h / 0.4),\n oklch(from var(--media-backdrop) l c h / 0.2),\n oklch(from var(--media-backdrop) l c h / 0.5)\n );\n --media-caption-controls-y: calc(var(--media-spacing) * -14);\n --media-slider-preview-offset: calc(var(--media-spacing) * 9);\n --media-thumbnail-gradient: linear-gradient(\n to top,\n oklch(from var(--media-backdrop) l c h / 0.5),\n oklch(from var(--media-backdrop) l c h / 0.1),\n transparent\n );\n }\n\n .media-skin:is([data-preset=\"video\"], [data-preset=\"live-video\"])[data-theme=\"minimal\"] {\n --media-frame-border: var(--media-border-color, light-dark(#00000026, #ffffff26));\n --media-controls-gradient: linear-gradient(\n to top in oklab,\n oklch(from var(--media-backdrop) l c h / 0.5),\n oklch(from var(--media-backdrop) l c h / 0.2)\n );\n --media-indicator-gradient: linear-gradient(\n to bottom,\n oklch(from var(--media-backdrop) l c h / 0.35),\n oklch(from var(--media-backdrop) l c h / 0.2) calc(var(--media-spacing) * 12),\n transparent\n );\n --media-caption-controls-y: calc(var(--media-spacing) * -18);\n --media-slider-preview-offset: calc(var(--media-spacing) * 11);\n }\n}\n\n@layer base.preferences {\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\n .media-skin:not([data-controls-visible]) {\n --media-duration-controls: 0.3s;\n }\n }\n\n @media (pointer: coarse) and (prefers-reduced-motion: no-preference) {\n .media-skin:not([data-controls-visible]) {\n --media-duration-controls: 0.15s;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .media-skin {\n --media-duration-fast: var(--media-duration-instant);\n --media-duration: var(--media-duration-instant);\n --media-duration-slow: var(--media-duration-instant);\n --media-duration-slower: var(--media-duration-instant);\n --media-duration-controls: var(--media-duration-instant);\n --media-duration-dialog: var(--media-duration-instant);\n --media-duration-indicator: var(--media-duration-instant);\n --media-duration-menu: 0s;\n --media-duration-slider: 0s;\n --media-delay-dialog: 0s;\n --media-hidden-scale: 1;\n --media-hidden-blur: 0px;\n --media-hidden-offset: 0px;\n --media-hidden-icon-scale: 1;\n --media-hidden-indicator-scale: 1;\n --media-hidden-indicator-offset: 0px;\n --media-hidden-playback-scale: 1;\n --media-hidden-popup-scale: 1;\n --media-hidden-popup-blur: 0px;\n --media-hidden-preview-scale: 1;\n --media-hidden-preview-offset: 0px;\n --media-hidden-seek-offset: 0px;\n --media-popup-translate-distance: 0px;\n --media-spinner-animation: none;\n --media-icon-airplay-fill-animation: none;\n --media-icon-airplay-triangle-animation: none;\n }\n }\n\n @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n .media-skin {\n --media-popover: var(--media-background);\n --media-scrollbar-thumb-color: oklch(from currentColor l c h / 0.8);\n --media-backdrop-filter-surface: none;\n --media-backdrop-filter-indicator: none;\n --media-backdrop-filter-dialog: none;\n --media-shadow-surface-inset: inset 0 1px 0 0 #ffffff40, inset 0 0 0 1px #ffffff20;\n scrollbar-width: auto;\n }\n }\n\n @media (forced-colors: active) {\n .media-skin {\n --media-border: CanvasText;\n --media-frame-border: CanvasText;\n --media-popover: Canvas;\n --media-popover-foreground: CanvasText;\n --media-ring: CanvasText;\n --media-shadow-surface-inset: inset 0 1px 0 0 CanvasText, inset 0 0 0 1px CanvasText;\n }\n }\n}\n\n@property --media-slider-fill {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n}\n\n@property --media-slider-buffer {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n}\n","@import \"../internal/skins/properties.css\";\n\n/* -------------------------------------------------------------------------- */\n/* Global styles for the host document, outside of the Shadow DOM */\n/* -------------------------------------------------------------------------- */\n\nvideo-player,\nlive-video-player,\nmedia-i18n,\nmedia-dialog,\nmedia-alert-dialog,\nmedia-error-dialog,\nmedia-controls {\n display: contents;\n}\n\n/*\nRequired to override any default video and image styles (such as\nTailwind's CSS reset) and ensure they fill the container as expected.\n*/\nmedia-container video,\nmedia-container [slot=\"poster\"] {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nmedia-container video::-webkit-media-text-track-container {\n z-index: 1;\n font-family: inherit;\n scale: 0.98;\n translate: 0 var(--media-caption-track-y, 0);\n transition: translate var(--media-caption-track-duration, 0) ease-out;\n transition-delay: var(--media-caption-track-delay, 0);\n}\n","@property --media-slider-fill {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n}\n\n@property --media-slider-buffer {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n}\n"],"mappings":";AEovEA,IAAA,eAAA"}
|
|
1
|
+
{"version":3,"file":"skin2.js","names":[],"sources":["../../../../home/runner/work/v10/v10/packages/html/src/define/live-video/skin.css","../../../../home/runner/work/v10/v10/packages/html/src/define/global.css","../../../../home/runner/work/v10/v10/packages/html/src/internal/skins/default-live-video/skin.css","../../../../home/runner/work/v10/v10/packages/html/src/define/shadow.css","../../../../home/runner/work/v10/v10/packages/html/src/internal/skins/properties.css"],"sourcesContent":["@import \"../global.css\";\n@import \"../shadow.css\";\n@import \"../../internal/skins/default-live-video/skin.css\";\n","@import \"../internal/skins/properties.css\";\n\n/* -------------------------------------------------------------------------- */\n/* Global styles for the host document, outside of the Shadow DOM */\n/* -------------------------------------------------------------------------- */\n\nvideo-player,\nlive-video-player,\nmedia-i18n,\nmedia-dialog,\nmedia-alert-dialog,\nmedia-error-dialog,\nmedia-controls {\n display: contents;\n}\n\n/*\nRequired to override any default video and image styles (such as\nTailwind's CSS reset) and ensure they fill the container as expected.\n*/\nmedia-container video,\nmedia-container [slot=\"poster\"] {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nmedia-container video::-webkit-media-text-track-container {\n z-index: 1;\n font-family: inherit;\n scale: 0.98;\n translate: 0 var(--media-caption-track-y, 0);\n transition: translate var(--media-caption-track-duration, 0) ease-out;\n transition-delay: var(--media-caption-track-delay, 0);\n}\n","@layer base {\n @scope (.media-skin) {\n :scope {\n text-align: start;\n text-transform: none;\n letter-spacing: normal;\n font-style: normal;\n font-weight: 400;\n }\n\n :scope,\n *,\n :before,\n :after {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n button {\n font: inherit;\n color: inherit;\n text-transform: none;\n letter-spacing: inherit;\n appearance: none;\n background: none;\n }\n\n img,\n svg,\n media-icon {\n max-width: 100%;\n display: block;\n }\n\n svg[fill=\"currentColor\"] {\n fill: currentColor;\n }\n\n svg[fill=\"none\"] {\n fill: none;\n }\n\n svg[stroke=\"currentColor\"] {\n stroke: currentColor;\n }\n\n video {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n max-width: 100%;\n height: 100%;\n display: block;\n }\n\n media-icon > svg {\n width: 100%;\n height: 100%;\n }\n\n media-tooltip-group,\n media-dialog,\n media-alert-dialog,\n media-error-dialog,\n media-controls {\n display: contents;\n }\n\n [hidden][hidden] {\n display: none !important;\n }\n }\n\n @media (prefers-reduced-motion: no-preference) {\n .media-skin {\n interpolate-size: allow-keywords;\n }\n }\n\n @supports not selector(:popover-open) {\n :where(.media-skin) [popover]:not([data-open], [data-ending-style]) {\n display: none !important;\n }\n\n .media-skin:is([data-preset=\"audio\"], [data-preset=\"live-audio\"]) {\n overflow: visible !important;\n }\n }\n}\n\n@layer components {\n @scope (.media-skin) {\n :scope {\n --media-caption-track-duration: var(--media-duration-controls);\n --media-caption-track-delay: 25ms;\n --media-caption-track-y: calc(var(--media-spacing) * -2);\n }\n\n video::-webkit-media-text-track-container {\n z-index: 20;\n scale: 0.98;\n translate: 0 var(--media-caption-track-y);\n transition: translate var(--media-caption-track-duration) ease-out;\n transition-delay: var(--media-caption-track-delay);\n font-family: inherit;\n }\n\n :scope[data-controls-visible] {\n --media-caption-track-y: var(--media-caption-controls-y);\n }\n\n @container media-root (width >= 42rem) {\n :scope[data-theme=\"minimal\"][data-controls-visible] video {\n --media-caption-track-y: calc(var(--media-spacing) * -12);\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-button {\n width: var(--media-control-size);\n height: var(--media-control-size);\n cursor: pointer;\n touch-action: manipulation;\n border-radius: var(--media-control-radius);\n text-align: center;\n min-height: 0;\n color: inherit;\n outline-offset: -2px;\n transition-property: background-color, color, outline-offset, scale;\n transition-duration: var(--media-duration);\n will-change: scale;\n -webkit-user-select: none;\n user-select: none;\n corner-shape: var(--media-control-corner-shape);\n background-color: #0000;\n border-style: solid;\n border-width: 0;\n outline: 2px solid #0000;\n flex-shrink: 0;\n place-items: center;\n padding: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: grid;\n }\n\n @media (hover: hover) {\n .media-button:not([aria-disabled=\"true\"]):hover {\n background-color: var(--media-accent);\n color: var(--media-accent-foreground);\n }\n }\n\n .media-button:focus-visible {\n outline-offset: 2px;\n outline-color: var(--media-ring);\n }\n\n .media-button:not([aria-disabled=\"true\"]):active {\n scale: 0.97;\n }\n\n .media-button[aria-disabled=\"true\"] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .media-button {\n will-change: auto;\n transition-property: background-color, color;\n scale: 1;\n }\n }\n\n .media-button:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n :not([aria-disabled=\"true\"])\n ) {\n background-color: var(--media-accent);\n color: var(--media-accent-foreground);\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-dialog-actions {\n gap: calc(var(--media-spacing) * 2);\n flex-shrink: 0;\n display: flex;\n }\n\n .media-dialog-backdrop {\n z-index: 40;\n border-radius: inherit;\n background-color: var(--media-backdrop);\n opacity: 1;\n backdrop-filter: var(--media-backdrop-filter-dialog);\n transition-property: opacity;\n transition-duration: 0.15s;\n transition-delay: var(--media-delay-dialog);\n transition-duration: var(--media-duration-dialog);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n inset: 0;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-dialog-backdrop {\n background-color: color-mix(in oklab, var(--media-backdrop) 20%, transparent);\n }\n }\n\n .media-dialog-backdrop:not([data-open]) {\n display: none;\n }\n\n .media-dialog-backdrop[data-ending-style] {\n transition-delay: 0s;\n transition-duration: var(--media-duration-slower);\n }\n\n .media-dialog-backdrop:is([data-starting-style], [data-ending-style]) {\n opacity: 0;\n }\n\n .media-dialog-close {\n height: var(--media-control-size);\n width: 100%;\n padding-inline: calc(var(--media-spacing) * 4);\n padding-block: calc(var(--media-spacing) * 2);\n flex: 1;\n font-weight: 500;\n background-color: var(--media-primary) !important;\n color: var(--media-primary-foreground) !important;\n }\n\n .media-dialog-content {\n gap: calc(var(--media-spacing) * 2);\n min-height: 0;\n padding-inline: calc(var(--media-spacing) * 2);\n padding-top: calc(var(--media-spacing) * 2);\n padding-bottom: calc(var(--media-spacing) * 1.5);\n flex-direction: column;\n display: flex;\n overflow-y: auto;\n }\n\n .media-dialog-description {\n overflow-wrap: anywhere;\n opacity: 0.7;\n margin: 0;\n }\n\n .media-dialog-popup {\n z-index: 50;\n max-height: calc(100% - 0.5rem);\n width: var(--media-dialog-width);\n max-width: var(--media-dialog-max-width);\n gap: calc(var(--media-spacing) * 3);\n border-radius: var(--media-dialog-radius);\n background-color: var(--media-popover);\n padding: calc(var(--media-spacing) * 3);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-delay: var(--media-delay-dialog);\n transition-duration: var(--media-duration-dialog);\n text-shadow: var(--media-text-shadow-dialog);\n outline-style: none;\n flex-direction: column;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: flex;\n position: absolute;\n top: 50%;\n left: 50%;\n translate: -50% -50%;\n }\n\n @media (forced-colors: active) {\n .media-dialog-popup {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .media-dialog-popup:not([data-open]) {\n display: none;\n }\n\n .media-dialog-popup:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n .media-dialog-popup[data-ending-style] {\n transition-delay: 0s;\n transition-duration: var(--media-duration-slower);\n }\n\n .media-dialog-popup:is([data-starting-style], [data-ending-style]) {\n scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);\n opacity: 0;\n }\n\n .media-dialog-title {\n font-size: calc(var(--media-spacing) * 3.75);\n margin: 0;\n font-weight: 600;\n line-height: 1.25;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-buffering-indicator {\n pointer-events: none;\n color: var(--media-controls-foreground);\n place-content: center;\n display: none;\n position: absolute;\n inset: 0;\n }\n\n .media-buffering-indicator:not([data-visible]) {\n --media-spinner-animation: none;\n }\n\n .media-buffering-indicator:before {\n background-color: var(--media-backdrop);\n content: \"\";\n backdrop-filter: var(--media-backdrop-filter-indicator);\n position: absolute;\n inset: 0;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-buffering-indicator:before {\n background-color: color-mix(in oklab, var(--media-backdrop) 35%, transparent);\n }\n }\n\n .media-buffering-indicator[data-visible] {\n display: grid;\n }\n\n .media-buffering-indicator-spinner-icon {\n z-index: 30;\n width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n position: relative;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-poster {\n pointer-events: none;\n border-radius: inherit;\n width: 100%;\n height: 100%;\n transition-property: opacity;\n transition-duration: 0.15s;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: var(--media-duration-slower);\n position: absolute;\n inset: 0;\n }\n\n .media-poster:not([data-visible]) {\n opacity: 0;\n }\n\n .media-poster-image {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n }\n\n .media-poster-image:not([src]):not([srcset]) {\n visibility: hidden;\n }\n }\n\n .media-poster > slot::slotted(img) {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n height: 100% !important;\n }\n\n .media-poster > slot::slotted(img:not([src]):not([srcset])) {\n visibility: hidden;\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-poster {\n pointer-events: none;\n border-radius: inherit;\n width: 100%;\n height: 100%;\n transition-property: opacity;\n transition-duration: 0.15s;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: var(--media-duration-slower);\n position: absolute;\n inset: 0;\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-poster:not([data-visible]) {\n opacity: 0;\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-poster-image {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-poster-image:not([src]):not([srcset]) {\n visibility: hidden;\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-title {\n pointer-events: none;\n isolation: isolate;\n z-index: 20;\n min-height: calc(var(--media-control-size) + (calc(var(--media-spacing) * 2)));\n transform-origin: top;\n padding-inline: calc(var(--media-spacing) * 6);\n padding-top: calc(var(--media-spacing) * 2.5);\n font-size: calc(var(--media-spacing) * 3.25);\n letter-spacing: -0.0125em;\n overflow-wrap: anywhere;\n color: var(--media-controls-foreground);\n transition-property: filter, opacity, scale, translate;\n transition-duration: 0.15s;\n transition-duration: calc(var(--media-duration-controls) / 2);\n text-shadow: 0 1px 0 var(--media-shadow-current-color);\n inset-inline: 0;\n align-items: center;\n font-weight: 500;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: flex;\n position: absolute;\n top: 0;\n }\n\n .media-title:not([data-visible]) {\n translate: 0 calc(var(--media-hidden-offset) * -1);\n scale: var(--media-hidden-scale) var(--media-hidden-scale);\n opacity: 0;\n transition-duration: var(--media-duration-controls);\n }\n\n @media (pointer: fine) {\n .media-title:not([data-visible]) {\n filter: blur(var(--media-hidden-blur));\n }\n }\n\n @container media-root (width >= 28rem) {\n .media-title {\n padding-inline: calc(var(--media-spacing) * 6);\n padding-top: calc(var(--media-spacing) * 4);\n font-size: calc(var(--media-spacing) * 4.25);\n }\n }\n\n @container media-root (width < 32rem) {\n .media-title {\n padding-right: calc(var(--media-spacing) * 36);\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-container,\n :scope.media-container {\n isolation: isolate;\n border-radius: var(--media-video-border-radius);\n background-color: var(--media-background);\n width: 100%;\n min-width: 0;\n height: 100%;\n min-height: 0;\n font-family: var(--media-font-family, \"Inter Variable\", Inter, ui-sans-serif, system-ui, sans-serif);\n font-size: calc(var(--media-spacing) * 3.25);\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: auto;\n outline-offset: -4px;\n transition-property: outline-offset, outline-color;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-fast);\n --spacing: var(--media-spacing);\n outline: 2px solid #0000;\n line-height: 1.5;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: block;\n position: relative;\n overflow: clip;\n container: media-root / inline-size;\n }\n\n .media-container:after,\n :scope.media-container:after {\n pointer-events: none;\n z-index: 10;\n border-radius: inherit;\n content: \"\";\n border-style: solid;\n border-width: 1px;\n border-color: var(--media-frame-border);\n position: absolute;\n inset: 0;\n }\n\n .media-container:focus-visible,\n :scope.media-container:focus-visible {\n outline-offset: 2px;\n outline-color: var(--media-ring);\n }\n\n .media-container:fullscreen:after,\n :scope.media-container:fullscreen:after {\n content: \"\";\n display: none;\n }\n }\n\n .media-container > slot::slotted(video),\n :scope.media-container > slot::slotted(video) {\n border-radius: inherit;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n width: 100%;\n max-width: 100%;\n height: 100%;\n margin: 0;\n display: block;\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-status-announcer {\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-indicator {\n pointer-events: none;\n top: calc(var(--media-spacing) * 3);\n transform-origin: top;\n border-radius: var(--media-control-radius);\n background-color: var(--media-backdrop);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n transition-duration: var(--media-duration-fast);\n font-weight: 500;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-indicator {\n background-color: color-mix(in oklab, var(--media-backdrop) 25%, transparent);\n }\n }\n\n .media-indicator:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n .media-indicator[data-ending-style] {\n translate: 0 var(--media-hidden-indicator-offset);\n }\n\n @media (pointer: coarse) {\n .media-indicator {\n will-change: scale, translate, opacity;\n transition-property: scale, translate, opacity;\n }\n }\n\n @media (pointer: fine) {\n .media-indicator {\n will-change: scale, translate, filter, opacity;\n transition-property: scale, translate, filter, opacity;\n }\n }\n\n @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n .media-indicator {\n background-color: var(--media-background);\n }\n }\n\n .media-indicator:is([data-starting-style], [data-ending-style]) {\n opacity: 0;\n transition-duration: var(--media-duration-indicator);\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n }\n\n @media (pointer: fine) {\n .media-indicator:is([data-starting-style], [data-ending-style]) {\n scale: var(--media-hidden-indicator-scale) var(--media-hidden-indicator-scale);\n filter: blur(var(--media-hidden-blur));\n }\n }\n\n .media-indicator-content {\n justify-content: space-between;\n align-items: center;\n gap: calc(var(--media-spacing) * 2);\n padding-inline: calc(var(--media-spacing) * 2.5);\n padding-block: var(--media-spacing);\n }\n\n .media-playback-status-indicator {\n background-color: var(--media-backdrop);\n padding: calc(var(--media-spacing) * 4);\n text-align: center;\n backdrop-filter: var(--media-backdrop-filter-indicator);\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-slow);\n border-radius: 9999px;\n grid-row-start: 1;\n grid-column-start: 2;\n place-content: center;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: grid;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-playback-status-indicator {\n background-color: color-mix(in oklab, var(--media-backdrop) 35%, transparent);\n }\n }\n\n .media-playback-status-indicator[data-ending-style] {\n transition-duration: var(--media-duration-fast);\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n }\n\n .media-playback-status-indicator:is([data-starting-style], [data-ending-style]) {\n scale: var(--media-hidden-playback-scale) var(--media-hidden-playback-scale);\n opacity: 0;\n }\n\n .media-playback-status-indicator-pause-icon {\n width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n grid-row-start: 1;\n grid-column-start: 1;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n\n @scope (.media-playback-status-indicator) {\n &[data-status=\"pause\"] .media-playback-status-indicator-pause-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-playback-status-indicator-play-icon {\n width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n grid-row-start: 1;\n grid-column-start: 1;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n\n @scope (.media-playback-status-indicator) {\n &[data-status=\"play\"] .media-playback-status-indicator-play-icon {\n opacity: 1;\n translate: 1px;\n scale: 1;\n }\n }\n\n .media-status-indicator-captions-off-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"captions-off\"] .media-status-indicator-captions-off-icon {\n display: block;\n }\n }\n\n .media-status-indicator-captions-on-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"captions-on\"] .media-status-indicator-captions-on-icon {\n display: block;\n }\n }\n\n .media-status-indicator-content {\n width: 100%;\n display: flex;\n }\n\n .media-status-indicator-fullscreen-enter-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"fullscreen\"] .media-status-indicator-fullscreen-enter-icon {\n display: block;\n }\n }\n\n .media-status-indicator-fullscreen-exit-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"exit-fullscreen\"] .media-status-indicator-fullscreen-exit-icon {\n display: block;\n }\n }\n\n .media-status-indicator-pip-enter-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"pip\"] .media-status-indicator-pip-enter-icon {\n display: block;\n }\n }\n\n .media-status-indicator-pip-exit-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-status-indicator) {\n &[data-status=\"exit-pip\"] .media-status-indicator-pip-exit-icon {\n display: block;\n }\n }\n\n .media-status-indicator-value {\n mix-blend-mode: difference;\n margin-left: auto;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n @supports (color: color-mix(in lab, red, red)) {\n }\n\n @media (pointer: coarse) {\n }\n\n @media (pointer: fine) {\n }\n\n @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n }\n\n @media (pointer: fine) {\n }\n\n .media-volume-indicator {\n width: min(80%, 12rem);\n transform: translateX(0);\n }\n\n @media (prefers-reduced-motion: no-preference) {\n .media-volume-indicator:is([data-min], [data-max]):not([data-starting-style], [data-ending-style]) {\n transition: transform 0.3s linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);\n transform: translateX(0.25px);\n }\n }\n\n .media-volume-indicator-fill {\n border-radius: inherit;\n background-image: linear-gradient(currentColor, currentColor);\n background-size: var(--media-volume-fill, 0%) 100%;\n width: 100%;\n transition-property: background-size;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-slow);\n background-position: 0;\n background-repeat: no-repeat;\n transition-timing-function: linear;\n display: flex;\n }\n\n .media-volume-indicator-high-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-volume-indicator) {\n &[data-level=\"high\"] .media-volume-indicator-high-icon {\n display: block;\n }\n }\n\n .media-volume-indicator-low-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-volume-indicator) {\n &[data-level=\"low\"] .media-volume-indicator-low-icon {\n display: block;\n }\n }\n\n .media-volume-indicator-off-icon {\n mix-blend-mode: difference;\n flex-shrink: 0;\n display: none;\n }\n\n @scope (.media-volume-indicator) {\n &[data-level=\"off\"] .media-volume-indicator-off-icon {\n display: block;\n }\n }\n\n .media-volume-indicator-value {\n mix-blend-mode: difference;\n margin-left: auto;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"][data-preset=\"live-video\"]) {\n .video-status-indicators {\n pointer-events: none;\n z-index: 20;\n color: var(--media-controls-foreground);\n grid-template-columns: repeat(3, minmax(0, 1fr));\n place-items: center;\n display: grid;\n position: absolute;\n inset: 0;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-airplay-button:not([data-airplay-state=\"connected\"]) {\n --media-icon-airplay-fill-animation: none;\n --media-icon-airplay-triangle-animation: none;\n }\n\n .media-airplay-button-enter-icon {\n opacity: 0;\n }\n\n @scope (.media-airplay-button) {\n &:not([data-airplay-state=\"connected\"]) .media-airplay-button-enter-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-airplay-button-exit-icon {\n opacity: 0;\n }\n\n @scope (.media-airplay-button) {\n &[data-airplay-state=\"connected\"] .media-airplay-button-exit-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-button-icon {\n width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n text-shadow: inherit;\n grid-row-start: 1;\n grid-column-start: 1;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-popup {\n color: inherit;\n border-style: solid;\n border-width: 0;\n margin: 0;\n overflow: visible;\n }\n\n .media-popup[data-ending-style] {\n transform: none;\n }\n\n .media-popup[data-starting-style] {\n transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));\n }\n\n .media-popup[data-side=\"bottom\"] {\n transform-origin: top;\n --media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);\n }\n\n .media-popup[data-side=\"left\"] {\n transform-origin: 100%;\n --media-popup-translate-x-distance: var(--media-popup-translate-distance);\n }\n\n .media-popup[data-side=\"right\"] {\n transform-origin: 0;\n --media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);\n }\n\n .media-popup[data-side=\"top\"] {\n transform-origin: bottom;\n --media-popup-translate-y-distance: var(--media-popup-translate-distance);\n }\n\n .media-popup:is([data-starting-style], [data-ending-style]) {\n scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);\n opacity: 0;\n filter: blur(var(--media-hidden-popup-blur));\n }\n\n .media-popup-safe-area:before {\n pointer-events: auto;\n content: \"\";\n position: absolute;\n }\n\n .media-popup-safe-area[data-side=\"bottom\"]:before {\n content: \"\";\n height: var(--media-popup-side-offset);\n inset-inline: 0;\n bottom: 100%;\n }\n\n .media-popup-safe-area[data-side=\"left\"]:before {\n content: \"\";\n width: var(--media-popup-side-offset);\n inset-block: 0;\n left: 100%;\n }\n\n .media-popup-safe-area[data-side=\"right\"]:before {\n content: \"\";\n width: var(--media-popup-side-offset);\n inset-block: 0;\n right: 100%;\n }\n\n .media-popup-safe-area[data-side=\"top\"]:before {\n content: \"\";\n height: var(--media-popup-side-offset);\n inset-inline: 0;\n top: 100%;\n }\n\n .media-popup-surface {\n background-color: var(--media-popover);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n }\n\n .media-popup-surface:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n .media-popup-transition {\n transition-property: opacity, filter, transform, scale;\n transition-duration: var(--media-duration-fast);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n\n .media-popup-transition[data-ending-style] {\n transition-duration: var(--media-duration-instant);\n }\n\n .media-tooltip {\n border-radius: var(--media-control-radius);\n padding-inline: calc(var(--media-spacing) * 2.5);\n padding-block: var(--media-spacing);\n font-size: calc(var(--media-spacing) * 3.25);\n white-space: nowrap;\n --media-popup-side-offset: var(--media-tooltip-side-offset);\n }\n\n .media-tooltip[data-open] {\n align-items: center;\n gap: var(--media-spacing);\n display: flex;\n }\n\n .media-tooltip-shortcut {\n border-radius: var(--media-spacing);\n background-color: var(--media-muted);\n text-align: center;\n min-width: 1.5em;\n font-family: inherit;\n font-size: calc(var(--media-spacing) * 2.75);\n padding: 0.1em;\n font-weight: 600;\n line-height: 1.25;\n }\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-popup-surface {\n background-color: var(--media-popover);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n }\n\n :where(.media-skin[data-theme=\"default\"]) .media-popup-surface:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-cast-button-enter-icon {\n opacity: 0;\n }\n\n @scope (.media-cast-button) {\n &:not([data-cast-state=\"connected\"]) .media-cast-button-enter-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-cast-button-exit-icon {\n opacity: 0;\n }\n\n @scope (.media-cast-button) {\n &[data-cast-state=\"connected\"] .media-cast-button-exit-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-fullscreen-button-enter-icon {\n opacity: 0;\n }\n\n @scope (.media-fullscreen-button) {\n &:not([data-fullscreen]) .media-fullscreen-button-enter-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-fullscreen-button-exit-icon {\n opacity: 0;\n }\n\n @scope (.media-fullscreen-button) {\n &[data-fullscreen] .media-fullscreen-button-exit-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-live-button {\n align-items: center;\n gap: calc(var(--media-spacing) * 1.5);\n width: auto;\n padding-inline: calc(var(--media-spacing) * 3);\n padding-block: calc(var(--media-spacing) * 2);\n font-size: calc(var(--media-spacing) * 2.75);\n letter-spacing: 0.05em;\n text-transform: uppercase;\n font-weight: 600;\n line-height: 1;\n display: inline-flex !important;\n }\n\n .media-live-button:before {\n width: calc(var(--media-spacing) * 2);\n height: calc(var(--media-spacing) * 2);\n transition-property: background-color;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n content: \"\";\n background-color: currentColor;\n border-radius: 9999px;\n flex-shrink: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: inline-block;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-live-button:before {\n background-color: color-mix(in oklab, currentcolor 40%, transparent);\n }\n }\n\n .media-live-button[data-live-edge]:before {\n content: \"\";\n background-color: var(--media-live-color);\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-pip-button-enter-icon {\n opacity: 0;\n }\n\n @scope (.media-pip-button) {\n &:not([data-pip]) .media-pip-button-enter-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-pip-button-exit-icon {\n opacity: 0;\n }\n\n @scope (.media-pip-button) {\n &[data-pip] .media-pip-button-exit-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-play-button-pause-icon {\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n }\n\n @scope (.media-play-button) {\n &[data-started]:not([data-paused]):not([data-ended]) .media-play-button-pause-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-play-button-play-icon {\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n }\n\n @scope (.media-play-button) {\n &:not([data-ended]):not([data-started]) .media-play-button-play-icon,\n &:not([data-ended])[data-paused] .media-play-button-play-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-play-button-restart-icon {\n scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n opacity: 0;\n }\n\n @scope (.media-play-button) {\n &[data-ended] .media-play-button-restart-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-captions-button-off-icon {\n opacity: 0;\n }\n\n @scope (.media-captions-button) {\n &:not([data-active]) .media-captions-button-off-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-captions-button-on-icon {\n opacity: 0;\n }\n\n @scope (.media-captions-button) {\n &[data-active] .media-captions-button-on-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-menu-item-indicator {\n opacity: 0;\n flex-shrink: 0;\n margin-inline-start: auto;\n margin-inline-end: calc(var(--media-spacing) * -1);\n }\n\n @scope (.media-menu-radio-item) {\n &[aria-checked=\"true\"] .media-menu-item-indicator {\n opacity: 1;\n }\n }\n\n .media-menu-radio-item {\n cursor: pointer;\n justify-content: space-between;\n align-items: center;\n gap: calc(var(--media-spacing) * 1.5);\n border-radius: var(--media-menu-item-radius);\n padding-inline: calc(var(--media-spacing) * 2);\n padding-block: calc(var(--media-spacing) * 1.5);\n text-align: start;\n white-space: nowrap;\n color: inherit;\n font-variant-numeric: tabular-nums;\n outline-offset: -2px;\n transition-property: background-color, color;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-fast);\n -webkit-user-select: none;\n user-select: none;\n text-shadow: 0 1px 0 var(--media-shadow-current-color);\n outline: 2px solid #0000;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n position: relative;\n }\n\n .media-menu-radio-item:focus-visible {\n outline-offset: 2px;\n outline-color: var(--media-ring);\n }\n\n .media-menu-radio-item[aria-disabled=\"true\"] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .media-menu-radio-item[data-availability=\"unavailable\"],\n .media-menu-radio-item[data-availability=\"unsupported\"] {\n display: none;\n }\n\n .media-menu-radio-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n :not([aria-disabled=\"true\"])\n ) {\n background-color: var(--media-accent);\n color: var(--media-accent-foreground);\n }\n\n @supports (top: anchor(top)) {\n .media-menu-radio-item {\n transition-duration: var(--media-duration-instant);\n }\n\n .media-menu-radio-item[data-highlighted] {\n anchor-name: --media-menu-item-highlight-anchor;\n }\n\n .media-menu-radio-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n :not([aria-disabled=\"true\"])\n ) {\n transition-duration: var(--media-duration-slow);\n background-color: #0000;\n }\n }\n\n .media-menu-radio-item-icon {\n width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n color: var(--media-muted-foreground);\n filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n flex-shrink: 0;\n }\n\n @scope (.media-menu-radio-item) {\n &:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(:not([aria-disabled=\"true\"]))\n .media-menu-radio-item-icon {\n color: inherit;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-menu-content {\n max-height: inherit;\n overscroll-behavior: none;\n transition-property: translate, filter;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-menu);\n anchor-scope: --media-menu-item-highlight-anchor;\n outline-style: none;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n overflow: auto;\n }\n\n @media (forced-colors: active) {\n .media-menu-content {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .media-menu-content:not([data-submenu]) {\n inset-inline: var(--media-spacing);\n top: var(--media-spacing);\n gap: calc(var(--media-spacing) * 0.5);\n flex-direction: column;\n display: flex;\n }\n\n .media-menu-content:not([data-submenu])[data-child-open] {\n filter: blur(var(--media-hidden-blur));\n translate: -100%;\n }\n\n .media-menu-content:not([data-submenu])[data-child-open]:before {\n content: \"\";\n display: none;\n }\n\n .media-menu-content[data-submenu] {\n z-index: 10;\n max-height: inherit;\n padding: var(--media-spacing);\n inset-inline: 0;\n top: 0;\n }\n\n .media-menu-content:not([data-submenu])[data-child-open]:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n translate: 100%;\n }\n\n .media-menu-content:is([data-starting-style], [data-ending-style]):before {\n content: \"\";\n display: none;\n }\n\n .media-menu-content[data-submenu]:is([data-starting-style], [data-ending-style]) {\n pointer-events: none;\n filter: blur(var(--media-hidden-blur));\n overflow: hidden;\n translate: 100%;\n }\n\n .media-menu-content[data-submenu]:is([data-starting-style], [data-ending-style]):where(\n :dir(rtl),\n [dir=\"rtl\"],\n [dir=\"rtl\"] *\n ) {\n translate: -100%;\n }\n\n @supports (top: anchor(top)) {\n .media-menu-content:before {\n content: \"\";\n position-anchor: --media-menu-item-highlight-anchor;\n inset: anchor(inside);\n overflow-anchor: none;\n pointer-events: none;\n border-radius: var(--media-menu-item-radius);\n background-color: var(--media-accent);\n transition: inset var(--media-duration-fast) ease-in-out;\n position: absolute;\n }\n\n .media-menu-content:has([data-highlighted=\"\"]):before {\n content: \"\";\n transition-duration: 0s;\n }\n }\n\n .media-menu-content:is([data-starting-style], [data-ending-style]) :before {\n content: \"\";\n display: none;\n }\n\n .media-menu-popup {\n height: var(--media-menu-height);\n max-height: min(\n var(--media-menu-available-height, calc(var(--media-spacing) * 56)),\n calc(var(--media-spacing) * 56)\n );\n width: var(--media-menu-width);\n max-width: var(--media-menu-available-width);\n min-width: calc(var(--media-spacing) * 44);\n overscroll-behavior: none;\n border-radius: var(--media-popup-radius);\n padding: var(--media-spacing);\n transition-property: opacity, filter, transform, scale;\n transition-duration: var(--media-duration-fast);\n --media-popup-side-offset: var(--media-popover-side-offset);\n border-style: solid;\n border-width: 0;\n margin: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n overflow: hidden !important;\n }\n\n .media-menu-popup:is([data-starting-style], [data-ending-style]) {\n transition-property: opacity, filter, transform, scale;\n transition-duration: var(--media-duration-fast);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n\n .media-menu-radio-group {\n max-height: inherit;\n gap: calc(var(--media-spacing) * 0.5);\n anchor-scope: --media-menu-item-highlight-anchor;\n flex-direction: column;\n display: flex;\n }\n\n .media-menu-radio-group:is([data-starting-style], [data-ending-style]):before {\n content: \"\";\n display: none;\n }\n\n @supports (top: anchor(top)) {\n .media-menu-radio-group:before {\n content: \"\";\n position-anchor: --media-menu-item-highlight-anchor;\n inset: anchor(inside);\n overflow-anchor: none;\n pointer-events: none;\n border-radius: var(--media-menu-item-radius);\n background-color: var(--media-accent);\n transition: inset var(--media-duration-fast) ease-in-out;\n position: absolute;\n }\n\n .media-menu-radio-group:has([data-highlighted=\"\"]):before {\n content: \"\";\n transition-duration: 0s;\n }\n }\n\n .media-menu-radio-group:is([data-starting-style], [data-ending-style]) :before {\n content: \"\";\n display: none;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-mute-button-high-icon {\n opacity: 0;\n }\n\n @scope (.media-mute-button) {\n &:not([data-muted]):not([data-volume-level=\"low\"]) .media-mute-button-high-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-mute-button-low-icon {\n opacity: 0;\n }\n\n @scope (.media-mute-button) {\n &:not([data-muted])[data-volume-level=\"low\"] .media-mute-button-low-icon {\n opacity: 1;\n scale: 1;\n }\n }\n\n .media-mute-button-off-icon {\n opacity: 0;\n }\n\n @scope (.media-mute-button) {\n &[data-muted] .media-mute-button-off-icon {\n opacity: 1;\n scale: 1;\n }\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-slider-buffer {\n pointer-events: none;\n position: absolute;\n inset: 0;\n }\n\n .media-slider-buffer:before {\n border-radius: var(--media-control-radius);\n content: \"\";\n background-color: currentColor;\n width: 100%;\n height: 100%;\n position: absolute;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-slider-buffer:before {\n background-color: color-mix(in oklab, currentcolor 20%, transparent);\n }\n }\n\n .media-slider-buffer[data-orientation=\"horizontal\"] {\n left: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n right: max(\n calc(100% - var(--media-slider-buffer)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(-1px 0);\n }\n\n .media-slider-buffer[data-orientation=\"horizontal\"]:before {\n content: \"\";\n min-width: var(--media-spacing);\n left: 0;\n }\n\n .media-slider-buffer[data-orientation=\"vertical\"] {\n bottom: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n top: max(\n calc(100% - var(--media-slider-buffer)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(0 -1px);\n }\n\n .media-slider-buffer[data-orientation=\"vertical\"]:before {\n content: \"\";\n min-height: var(--media-spacing);\n bottom: 0;\n }\n\n .media-slider-fill {\n pointer-events: none;\n position: absolute;\n inset: 0;\n }\n\n .media-slider-fill:before {\n border-radius: var(--media-control-radius);\n content: \"\";\n background-color: var(--media-primary);\n width: 100%;\n height: 100%;\n position: absolute;\n }\n\n .media-slider-fill[data-orientation=\"horizontal\"] {\n left: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n right: max(\n calc(100% - var(--media-slider-fill)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(-1px 0);\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-fill[data-orientation=\"horizontal\"] {\n left: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n right: max(\n calc(100% - var(--media-slider-pointer)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(-1px 0);\n }\n }\n\n .media-slider-fill[data-orientation=\"horizontal\"]:before {\n content: \"\";\n min-width: var(--media-spacing);\n left: 0;\n }\n\n .media-slider-fill[data-orientation=\"vertical\"] {\n bottom: calc(var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0));\n top: max(\n calc(100% - var(--media-slider-fill)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(0 -1px);\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-fill[data-orientation=\"vertical\"] {\n bottom: calc(\n var(--media-slider-chapter-start, 0%) + var(--media-spacing) * var(--media-chapter-inset-start, 0)\n );\n top: max(\n calc(100% - var(--media-slider-pointer)),\n calc(100% - var(--media-slider-chapter-end, 100%) + var(--media-spacing) * var(--media-chapter-inset-end, 0))\n );\n clip-path: inset(0 -1px);\n }\n }\n\n .media-slider-fill[data-orientation=\"vertical\"]:before {\n content: \"\";\n min-height: var(--media-spacing);\n bottom: 0;\n }\n\n .media-slider-thumb {\n top: 50%;\n left: var(--media-slider-fill);\n z-index: 10;\n width: calc(var(--media-spacing) * 3);\n height: calc(var(--media-spacing) * 3);\n border-radius: var(--media-control-radius);\n box-shadow:\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n var(--media-shadow-thumb);\n outline-offset: -4px;\n transition-property: opacity, height, width, outline-offset, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-slider);\n -webkit-user-select: none;\n user-select: none;\n background-color: #fff;\n outline: 4px solid #0000;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n translate: -50% -50%;\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-thumb {\n scale: 0.9;\n }\n }\n\n .media-slider-thumb:after {\n pointer-events: none;\n inset: calc(var(--media-spacing) * -1);\n border-radius: inherit;\n opacity: 0;\n transition-property: opacity, scale;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration);\n content: \"\";\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n scale: 0.5;\n box-shadow:\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n 0 0 0 2px;\n }\n\n @media (hover: hover) {\n .media-slider-thumb:hover {\n outline-offset: 0px;\n outline-color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-slider-thumb:hover {\n outline-color: color-mix(in oklab, currentcolor 15%, transparent);\n }\n }\n }\n\n .media-slider-thumb:focus-visible {\n outline-offset: 0px;\n outline-color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-slider-thumb:focus-visible {\n outline-color: color-mix(in oklab, currentcolor 15%, transparent);\n }\n }\n\n .media-slider-thumb:focus-visible:after {\n content: \"\";\n opacity: 1;\n scale: 1;\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-thumb[data-orientation=\"horizontal\"] {\n left: var(--media-slider-pointer);\n }\n }\n\n .media-slider-thumb[data-orientation=\"vertical\"] {\n top: calc(100% - var(--media-slider-fill));\n left: 50%;\n }\n\n @scope (.media-slider) {\n &[data-dragging] .media-slider-thumb[data-orientation=\"vertical\"] {\n top: calc(100% - var(--media-slider-pointer));\n }\n }\n\n .media-slider-track {\n isolation: isolate;\n -webkit-user-select: none;\n user-select: none;\n border-radius: 9999px;\n width: 100%;\n position: relative;\n }\n\n .media-slider-track:before {\n pointer-events: none;\n border-radius: var(--media-control-radius);\n content: \"\";\n background-color: currentColor;\n position: absolute;\n inset: 0;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .media-slider-track:before {\n background-color: color-mix(in oklab, currentcolor 20%, transparent);\n }\n }\n\n .media-slider-track[data-orientation=\"horizontal\"] {\n height: var(--media-spacing);\n }\n\n .media-slider-track[data-orientation=\"vertical\"] {\n height: 100%;\n width: var(--media-spacing);\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-slider {\n cursor: pointer;\n transition-property: --media-slider-fill, --media-slider-buffer;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-slider);\n border-radius: 9999px;\n outline-style: none;\n flex: 1;\n justify-content: center;\n align-items: center;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: flex;\n position: relative;\n }\n\n @media (forced-colors: active) {\n .media-slider {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .media-slider[data-disabled] {\n pointer-events: none;\n }\n\n .media-slider[data-dragging] {\n transition-duration: 0s;\n }\n\n .media-slider[data-orientation=\"horizontal\"] {\n height: var(--media-slider-height, calc(var(--media-spacing) * 8));\n min-width: calc(var(--media-spacing) * 18);\n }\n\n .media-slider[data-orientation=\"vertical\"] {\n height: calc(var(--media-spacing) * 18);\n width: calc(var(--media-spacing) * 8);\n min-width: 0;\n }\n\n .media-volume-slider-thumb {\n opacity: 1;\n scale: 1;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"]) {\n .media-volume-popover {\n border-radius: var(--media-control-radius);\n padding-inline: 0;\n padding-block: calc(var(--media-spacing) * 3);\n --media-popup-side-offset: var(--media-popover-side-offset);\n }\n\n .media-volume-popover[data-side=\"right\"] {\n padding: 0;\n padding-inline: calc(var(--media-spacing) * 3);\n --media-popover-side-offset: 0rem;\n border-radius: 0;\n box-shadow: none !important;\n backdrop-filter: none !important;\n background-color: #0000 !important;\n }\n\n .media-volume-popover[data-side=\"right\"]:after {\n content: \"\";\n display: none;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"][data-preset=\"live-video\"]) {\n .video-controls-backdrop {\n pointer-events: none;\n z-index: 10;\n border-radius: inherit;\n background-image: var(--media-controls-gradient);\n transition-property: opacity;\n transition-duration: 0.15s;\n transition-duration: var(--media-duration-controls);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n position: absolute;\n inset: 0;\n }\n\n .video-controls-backdrop:not([data-visible]) {\n opacity: 0;\n }\n\n .video-controls-content {\n padding: var(--media-spacing);\n color: var(--media-controls-foreground);\n transition-property: filter, opacity, scale, translate;\n transition-duration: 0.15s;\n transition-duration: calc(var(--media-duration-controls) / 2);\n text-shadow: 0 1px 0 var(--media-shadow-current-color);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: contents;\n }\n\n @container media-root (width >= 32rem) {\n .video-controls-content {\n inset-inline: calc(var(--media-spacing) * 2);\n bottom: calc(var(--media-spacing) * 2);\n z-index: 30;\n border-radius: var(--media-controls-radius);\n background-color: var(--media-popover);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n align-items: center;\n display: flex;\n position: absolute;\n }\n\n .video-controls-content:not([data-visible]) {\n pointer-events: none;\n translate: 0 var(--media-hidden-offset);\n scale: var(--media-hidden-scale) var(--media-hidden-scale);\n opacity: 0;\n transition-duration: var(--media-duration-controls);\n }\n\n .video-controls-content:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n .video-controls-content:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n flex-direction: row-reverse;\n }\n\n @media (pointer: fine) {\n .video-controls-content:not([data-visible]) {\n filter: blur(var(--media-hidden-blur));\n }\n }\n }\n\n @container media-root (width >= 42rem) {\n .video-controls-content {\n inset-inline: calc(var(--media-spacing) * 3);\n bottom: calc(var(--media-spacing) * 3);\n }\n }\n\n .video-controls-primary {\n inset-inline: calc(var(--media-spacing) * 2);\n bottom: calc(var(--media-spacing) * 2);\n z-index: 30;\n transform-origin: bottom;\n border-radius: var(--media-controls-radius);\n padding: calc(var(--media-spacing) * 0.5);\n transition-property: filter, opacity, scale, translate;\n transition-duration: 0.15s;\n transition-duration: calc(var(--media-duration-controls) / 2);\n align-items: center;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n display: flex;\n position: absolute;\n }\n\n .video-controls-primary:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n flex-direction: row-reverse;\n }\n\n @container media-root (width >= 32rem) {\n .video-controls-primary {\n display: contents;\n }\n }\n\n @container media-root (width < 32rem) {\n .video-controls-primary {\n background-color: var(--media-popover);\n color: var(--media-popover-foreground);\n box-shadow:\n 0 0 0 1px var(--media-surface-border, var(--media-border)),\n var(--media-shadow-surface);\n backdrop-filter: var(--media-backdrop-filter-surface);\n }\n\n @scope (.video-controls-content) {\n &:not([data-visible]) .video-controls-primary {\n pointer-events: none;\n translate: 0 var(--media-hidden-offset);\n scale: var(--media-hidden-scale) var(--media-hidden-scale);\n opacity: 0;\n transition-duration: var(--media-duration-controls);\n }\n }\n\n .video-controls-primary:after {\n content: \"\";\n z-index: 10;\n pointer-events: none;\n border-radius: inherit;\n box-shadow: var(--media-shadow-surface-inset);\n position: absolute;\n inset: 0;\n }\n\n @media (pointer: fine) {\n @scope (.video-controls-content) {\n &:not([data-visible]) .video-controls-primary {\n filter: blur(var(--media-hidden-blur));\n }\n }\n }\n }\n\n .video-controls-spacer {\n flex: 1;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"][data-preset=\"live-video\"]) {\n @container media-root (width < 32rem) {\n .video-controls-captions-menu {\n display: none;\n }\n }\n\n .video-controls-spaced {\n gap: 1px;\n }\n }\n\n @scope (.media-skin[data-theme=\"default\"][data-preset=\"live-video\"]) {\n @media (pointer: fine) {\n .video-skin:not([data-controls-visible]),\n :scope.video-skin:not([data-controls-visible]) {\n cursor: none;\n }\n }\n }\n}\n\n@layer utilities;\n\n@layer base.theme {\n .media-skin {\n --media-background: oklch(0% 0 0);\n --media-foreground: oklch(100% 0 0);\n --media-controls: oklch(0% 0 0 / 0.35);\n --media-controls-foreground: var(--media-foreground);\n --media-popover: oklch(100% 0 0 / 0.1);\n --media-popover-foreground: var(--media-foreground);\n --media-primary: var(--media-accent-color, var(--media-default-accent-color));\n --media-primary-foreground: var(\n --media-accent-text-color,\n contrast-color(var(--media-accent-color, var(--media-default-accent-color)))\n );\n --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));\n --media-accent-foreground: var(\n --media-accent-text-color,\n contrast-color(var(--media-accent-color, var(--media-internal-accent-text-fallback, oklch(0% 0 0))))\n );\n --media-muted: oklch(100% 0 0 / 0.15);\n --media-muted-foreground: oklch(100% 0 0 / 0.65);\n --media-border: oklch(0% 0 0 / 0.1);\n --media-ring: oklch(100% 0 0);\n --media-backdrop: oklch(0% 0 0);\n --media-live-color: oklch(65% 0.22 27);\n --media-shadow-surface: 0 1px 3px 0 oklch(0% 0 0 / 0.15), 0 1px 2px -1px oklch(0% 0 0 / 0.15);\n --media-shadow-surface-inset: inset 0 1px 0 0 #ffffff1a, inset 0 0 0 1px #ffffff0d;\n --media-shadow-thumb: 0 0 0 1px #0000001a, 0 1px 3px 0 #00000059, 0 1px 2px -1px #00000059;\n --media-shadow-tooltip: 0 0 0 1px var(--media-border), var(--media-shadow-surface);\n --media-shadow-separator: 0 1px 0 0 oklch(100% 0 0 / 0.075);\n --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));\n --media-shadow-subtle-current-color: oklch(from var(--media-shadow-current-color) l c h / calc(alpha * 0.4));\n --media-text-shadow-dialog: 0 1px 0 #00000040;\n --media-backdrop-filter-surface: blur(16px) saturate(150%);\n --media-backdrop-filter-indicator: blur(8px);\n --media-backdrop-filter-dialog: blur(16px) saturate(150%);\n --media-control-corner-shape: round;\n --media-control-radius: 99px;\n --media-control-size: calc(var(--media-spacing) * 9);\n --media-controls-radius: var(--media-control-radius);\n --media-default-accent-color: oklch(100% 0 0);\n --media-duration-instant: 50ms;\n --media-duration-fast: 0.1s;\n --media-duration: 0.15s;\n --media-duration-slow: 0.2s;\n --media-duration-slower: 0.25s;\n --media-duration-controls: 0.1s;\n --media-duration-dialog: 0.35s;\n --media-duration-indicator: var(--media-duration-slower);\n --media-duration-menu: 0.25s;\n --media-duration-slider: var(--media-duration-fast);\n --media-delay-dialog: 0.1s;\n --media-hidden-scale: 0.95;\n --media-hidden-blur: 8px;\n --media-hidden-offset: calc(var(--media-spacing) * 1);\n --media-hidden-icon-scale: 0;\n --media-hidden-indicator-scale: 0.9;\n --media-hidden-indicator-offset: -25%;\n --media-hidden-playback-scale: 0.85;\n --media-hidden-popup-scale: 0.95;\n --media-hidden-popup-blur: 4px;\n --media-hidden-preview-scale: 0.8;\n --media-hidden-preview-offset: calc(var(--media-spacing) * 2);\n --media-hidden-seek-offset: 60%;\n --media-menu-item-radius: calc(var(--media-spacing) * 2);\n --media-popover-boundary-offset: calc(var(--media-spacing) * 3);\n --media-popover-side-offset: calc(var(--media-spacing) * 3);\n --media-popup-radius: calc(var(--media-spacing) * 3);\n --media-popup-translate-distance: calc(var(--media-spacing) * 2);\n --media-tooltip-boundary-offset: var(--media-popover-boundary-offset);\n --media-tooltip-side-offset: var(--media-popover-side-offset);\n --media-dialog-radius: calc(var(--media-spacing) * 7);\n --media-dialog-width: calc(100% - var(--media-spacing) * 6);\n --media-dialog-max-width: calc(var(--media-spacing) * 72);\n --media-slider-preview-label-offset: calc(var(--media-spacing) * 10.5);\n --media-video-border-radius: var(--media-border-radius, 28px);\n --media-scale: 1;\n --media-scrollbar-thumb-color: oklch(from currentColor l c h / 0.3);\n --media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);\n scrollbar-color: var(--media-scrollbar-thumb-color) transparent;\n scrollbar-width: thin;\n }\n\n .media-skin::-webkit-scrollbar-thumb {\n background: var(--media-scrollbar-thumb-color);\n border-radius: 9999px;\n }\n\n .media-skin:fullscreen {\n --media-object-fit: contain;\n --media-video-border-radius: 0;\n }\n\n @media (width >= 1280px) {\n .media-skin:fullscreen {\n --media-scale: 1.25;\n }\n }\n\n @media (width >= 1536px) {\n .media-skin:fullscreen {\n --media-scale: 1.5;\n }\n }\n\n @media (width >= 1920px) {\n .media-skin:fullscreen {\n --media-scale: 1.75;\n }\n }\n}\n\n@layer base.preset {\n .media-skin:is([data-preset=\"video\"], [data-preset=\"live-video\"]) {\n --media-frame-border: var(--media-border-color, light-dark(#0000001a, #ffffff26));\n --media-controls-gradient: linear-gradient(\n to top in oklab,\n oklch(from var(--media-backdrop) l c h / 0.4),\n oklch(from var(--media-backdrop) l c h / 0.2),\n oklch(from var(--media-backdrop) l c h / 0.5)\n );\n --media-caption-controls-y: calc(var(--media-spacing) * -14);\n --media-slider-preview-offset: calc(var(--media-spacing) * 9);\n --media-thumbnail-gradient: linear-gradient(\n to top,\n oklch(from var(--media-backdrop) l c h / 0.5),\n oklch(from var(--media-backdrop) l c h / 0.1),\n transparent\n );\n }\n\n .media-skin:is([data-preset=\"video\"], [data-preset=\"live-video\"])[data-theme=\"minimal\"] {\n --media-frame-border: var(--media-border-color, light-dark(#00000026, #ffffff26));\n --media-controls-gradient: linear-gradient(\n to top in oklab,\n oklch(from var(--media-backdrop) l c h / 0.5),\n oklch(from var(--media-backdrop) l c h / 0.2)\n );\n --media-indicator-gradient: linear-gradient(\n to bottom,\n oklch(from var(--media-backdrop) l c h / 0.35),\n oklch(from var(--media-backdrop) l c h / 0.2) calc(var(--media-spacing) * 12),\n transparent\n );\n --media-caption-controls-y: calc(var(--media-spacing) * -18);\n --media-slider-preview-offset: calc(var(--media-spacing) * 11);\n }\n}\n\n@layer base.preferences {\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\n .media-skin:not([data-controls-visible]) {\n --media-duration-controls: 0.3s;\n }\n }\n\n @media (pointer: coarse) and (prefers-reduced-motion: no-preference) {\n .media-skin:not([data-controls-visible]) {\n --media-duration-controls: 0.15s;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .media-skin {\n --media-duration-fast: var(--media-duration-instant);\n --media-duration: var(--media-duration-instant);\n --media-duration-slow: var(--media-duration-instant);\n --media-duration-slower: var(--media-duration-instant);\n --media-duration-controls: var(--media-duration-instant);\n --media-duration-dialog: var(--media-duration-instant);\n --media-duration-indicator: var(--media-duration-instant);\n --media-duration-menu: 0s;\n --media-duration-slider: 0s;\n --media-delay-dialog: 0s;\n --media-hidden-scale: 1;\n --media-hidden-blur: 0px;\n --media-hidden-offset: 0px;\n --media-hidden-icon-scale: 1;\n --media-hidden-indicator-scale: 1;\n --media-hidden-indicator-offset: 0px;\n --media-hidden-playback-scale: 1;\n --media-hidden-popup-scale: 1;\n --media-hidden-popup-blur: 0px;\n --media-hidden-preview-scale: 1;\n --media-hidden-preview-offset: 0px;\n --media-hidden-seek-offset: 0px;\n --media-popup-translate-distance: 0px;\n --media-spinner-animation: none;\n --media-icon-airplay-fill-animation: none;\n --media-icon-airplay-triangle-animation: none;\n }\n }\n\n @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n .media-skin {\n --media-popover: var(--media-background);\n --media-scrollbar-thumb-color: oklch(from currentColor l c h / 0.8);\n --media-backdrop-filter-surface: none;\n --media-backdrop-filter-indicator: none;\n --media-backdrop-filter-dialog: none;\n --media-shadow-surface-inset: inset 0 1px 0 0 #ffffff40, inset 0 0 0 1px #ffffff20;\n scrollbar-width: auto;\n }\n }\n\n @media (forced-colors: active) {\n .media-skin {\n --media-border: CanvasText;\n --media-frame-border: CanvasText;\n --media-popover: Canvas;\n --media-popover-foreground: CanvasText;\n --media-ring: CanvasText;\n --media-shadow-surface-inset: inset 0 1px 0 0 CanvasText, inset 0 0 0 1px CanvasText;\n }\n }\n}\n\n@property --media-slider-fill {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n}\n\n@property --media-slider-buffer {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n}\n","/* -------------------------------------------------------------------------- */\n/* Shadow-root integration for all HTML skins */\n/* -------------------------------------------------------------------------- */\n\n/* Resets and component styles come from the skins package. This file only bridges the host and its slotted media. */\n\n:host {\n /* `display:grid` fixes a weird issue with Safari when setting aspect-ratio */\n display: grid;\n width: 100%;\n}\n\n:host(:focus) {\n /* The host matches :focus when a shadow control is focused; keep page styles from adding a second ring. */\n outline: none !important;\n}\n\n/* Media fills the skin; important keeps page styles from adding internal spacing. */\n::slotted(video),\n::slotted(audio) {\n margin: 0 !important;\n}\n","@property --media-slider-fill {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n}\n\n@property --media-slider-buffer {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n}\n"],"mappings":";ACovEA,IAAA,eAAA"}
|
package/docs/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @videojs/html documentation
|
|
2
2
|
|
|
3
|
-
Bundled markdown documentation for `@videojs/html` v10.0.0-rc.
|
|
3
|
+
Bundled markdown documentation for `@videojs/html` v10.0.0-rc.4.
|
|
4
4
|
|
|
5
5
|
Start at [`./llms.txt`](./llms.txt) — it's the structured index of every page in this directory.
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ The [Video.js skill](https://github.com/videojs/skills) gives coding agents the
|
|
|
9
9
|
Paste this prompt into your coding agent:
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill
|
|
12
|
+
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill when you work on video or audio in this project. When installation details are needed, run `npx @videojs/cli agents init --framework html` to print the version-matched choices and instructions without changing files.
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Video.js Skill
|
package/docs/guides/cdn.md
CHANGED
|
@@ -35,8 +35,8 @@ A skin bundle registers every UI element its skin is built from. Any element the
|
|
|
35
35
|
Each [UI element](./ui-components.md) is its own bundle under `ui/`, for markup that a skin bundle does not already cover: a player-only bundle, [skin source](./customize-skins.md#style-skin-source) that adds a component the packaged skin lacks, or a [dialog](../reference/components/dialog.md) your page opens beside a packaged skin.
|
|
36
36
|
|
|
37
37
|
```html
|
|
38
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
39
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
38
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/video-player.js"></script>
|
|
39
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/ui/play-button.js"></script>
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
Each path mirrors its npm subpath: `ui/play-button.js` registers the element that `@videojs/html/ui/play-button` does. Compound components list one bundle per part in their reference page’s Import section, and all of the bundles share chunks with the player.
|
|
@@ -46,8 +46,8 @@ Each path mirrors its npm subpath: `ui/play-button.js` registers the element tha
|
|
|
46
46
|
The default presets play through the browser’s own `<video>` and `<audio>`. Every other [media element](./media-sources.md) is its own bundle under `media/`, loaded beside the player bundle:
|
|
47
47
|
|
|
48
48
|
```html
|
|
49
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
50
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
49
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/video.js"></script>
|
|
50
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/media/hlsjs-video.js"></script>
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
Each path mirrors its npm subpath. Elements with more than one playback engine keep the extra flavors in a directory named for the element, such as `media/mux-video/spf.js`. Load one flavor per page: every flavor claims the same tag name, and the first registration wins.
|
|
@@ -57,9 +57,9 @@ Each path mirrors its npm subpath. Elements with more than one playback engine k
|
|
|
57
57
|
Each [extension](./architecture.md) is its own bundle under `extensions/`, loaded beside the player and media bundles:
|
|
58
58
|
|
|
59
59
|
```html
|
|
60
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
61
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
62
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
60
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/video.js"></script>
|
|
61
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/media/mux-video.js"></script>
|
|
62
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/extensions/mux-data.js"></script>
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
As with media, each path mirrors its npm subpath: `extensions/mux-data.js` registers the element that `@videojs/html/extensions/mux-data` does.
|
|
@@ -69,8 +69,8 @@ As with media, each path mirrors its npm subpath: `extensions/mux-data.js` regis
|
|
|
69
69
|
English ships inside the skin bundles. Each other locale is a bundle under `locales/` that registers its translations on import. Load it before the player script to avoid a flash of English:
|
|
70
70
|
|
|
71
71
|
```html
|
|
72
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
73
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
72
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/locales/es.js"></script>
|
|
73
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/video.js"></script>
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
One bundle exists per locale pack, plus bare-language aliases such as `pt`. For custom strings, see [Internationalize the player](./internationalization.md).
|
|
@@ -17,7 +17,7 @@ Video.js can run directly from browser-ready files on jsDelivr. This HTML-only p
|
|
|
17
17
|
Paste this prompt into your coding agent:
|
|
18
18
|
|
|
19
19
|
```
|
|
20
|
-
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill
|
|
20
|
+
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill when you work on video or audio in this project. When installation details are needed, run `npx @videojs/cli agents init --method cdn --framework html` to print the version-matched choices and instructions without changing files.
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Installation options for coding agents
|
|
@@ -93,7 +93,7 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
93
93
|
## Reproduce or change these instructions
|
|
94
94
|
|
|
95
95
|
```sh
|
|
96
|
-
npx @videojs/cli@10.0.0-rc.
|
|
96
|
+
npx @videojs/cli@10.0.0-rc.4 agents init --method cdn --framework html --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --template none
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
## Load Video.js
|
|
@@ -105,7 +105,7 @@ Add these module scripts to the page head. Module scripts are deferred, so they
|
|
|
105
105
|
_Merge this into the page `<head>`._
|
|
106
106
|
|
|
107
107
|
```html
|
|
108
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
108
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/video.js"></script>
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
## Add your player
|
|
@@ -146,7 +146,7 @@ That’s it! You now have a working Video.js player without installing Video.js
|
|
|
146
146
|
|
|
147
147
|
Packaged skins keep their controls and layout inside Video.js. When you need to add, remove, rearrange, or deeply restyle controls, use Shadcn to add the skin source to your project. Its components, layout, styles, and interactions become local files you can change.
|
|
148
148
|
|
|
149
|
-
- [Install Video.js with Shadcn](./installation-shadcn.md): Add editable skin source and build a working React or HTML player
|
|
149
|
+
- [Install Video.js with Shadcn](./installation-shadcn.md#choose-how-to-install): Add editable skin source and build a working React or HTML player
|
|
150
150
|
|
|
151
151
|
## Choose what to do next
|
|
152
152
|
|
|
@@ -17,7 +17,7 @@ Use Shadcn to add a Video.js skin's components, layout, styles, and interactions
|
|
|
17
17
|
Paste this prompt into your coding agent:
|
|
18
18
|
|
|
19
19
|
```
|
|
20
|
-
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill
|
|
20
|
+
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill when you work on video or audio in this project. When installation details are needed, run `npx @videojs/cli agents init --method shadcn --framework react` for React, or `npx @videojs/cli agents init --method shadcn --framework html` for plain HTML. The command prints version-matched choices and instructions without changing files.
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Installation options for coding agents
|
|
@@ -98,7 +98,7 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
98
98
|
## Reproduce or change these instructions
|
|
99
99
|
|
|
100
100
|
```sh
|
|
101
|
-
npx @videojs/cli@10.0.0-rc.
|
|
101
|
+
npx @videojs/cli@10.0.0-rc.4 agents init --method shadcn --framework html --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --package-manager pnpm --template vite --styling css
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
## Configure app aliases
|
|
@@ -17,7 +17,7 @@ Svelte apps built with Vite, Astro, or SvelteKit use Video.js HTML custom elemen
|
|
|
17
17
|
Paste this prompt into your coding agent:
|
|
18
18
|
|
|
19
19
|
```
|
|
20
|
-
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill
|
|
20
|
+
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill when you work on video or audio in this project. When installation details are needed, run `npx @videojs/cli agents init --framework svelte` to print the version-matched choices and instructions without changing files.
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Installation options for coding agents
|
|
@@ -94,13 +94,13 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
94
94
|
## Reproduce or change these instructions
|
|
95
95
|
|
|
96
96
|
```sh
|
|
97
|
-
npx @videojs/cli@10.0.0-rc.
|
|
97
|
+
npx @videojs/cli@10.0.0-rc.4 agents init --method packaged --framework svelte --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --package-manager pnpm --template vite
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
## Install the packages
|
|
101
101
|
|
|
102
102
|
```bash
|
|
103
|
-
pnpm add @videojs/html@10.0.0-rc.
|
|
103
|
+
pnpm add @videojs/html@10.0.0-rc.4
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
## Add your player
|
|
@@ -17,7 +17,7 @@ Vue apps built with Vite, Astro, or Nuxt use Video.js HTML custom elements direc
|
|
|
17
17
|
Paste this prompt into your coding agent:
|
|
18
18
|
|
|
19
19
|
```
|
|
20
|
-
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill
|
|
20
|
+
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill when you work on video or audio in this project. When installation details are needed, run `npx @videojs/cli agents init --framework vue` to print the version-matched choices and instructions without changing files.
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Installation options for coding agents
|
|
@@ -94,13 +94,13 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
94
94
|
## Reproduce or change these instructions
|
|
95
95
|
|
|
96
96
|
```sh
|
|
97
|
-
npx @videojs/cli@10.0.0-rc.
|
|
97
|
+
npx @videojs/cli@10.0.0-rc.4 agents init --method packaged --framework vue --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --package-manager pnpm --template vite
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
## Install the packages
|
|
101
101
|
|
|
102
102
|
```bash
|
|
103
|
-
pnpm add @videojs/html@10.0.0-rc.
|
|
103
|
+
pnpm add @videojs/html@10.0.0-rc.4
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
## Register custom elements
|
|
@@ -17,7 +17,7 @@ Video.js is an **HTML video player built on custom elements**: lightweight, fram
|
|
|
17
17
|
Paste this prompt into your coding agent:
|
|
18
18
|
|
|
19
19
|
```
|
|
20
|
-
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill
|
|
20
|
+
Install the Video.js skill: run `npx @videojs/cli agents skills` and follow the steps for the agent you are running in. If you can't run commands, follow the install instructions at https://github.com/videojs/skills instead. Then use the Video.js skill when you work on video or audio in this project. When installation details are needed, run `npx @videojs/cli agents init --framework html` to print the version-matched choices and instructions without changing files.
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Installation options for coding agents
|
|
@@ -96,13 +96,13 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
96
96
|
## Reproduce or change these instructions
|
|
97
97
|
|
|
98
98
|
```sh
|
|
99
|
-
npx @videojs/cli@10.0.0-rc.
|
|
99
|
+
npx @videojs/cli@10.0.0-rc.4 agents init --method packaged --framework html --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --package-manager pnpm --template vite
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
## Install the packages
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
|
-
pnpm add @videojs/html@10.0.0-rc.
|
|
105
|
+
pnpm add @videojs/html@10.0.0-rc.4
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
## Add your player
|
|
@@ -164,7 +164,7 @@ That’s it! You now have a working Video.js player.
|
|
|
164
164
|
|
|
165
165
|
Packaged skins keep their controls and layout inside Video.js. When you need to add, remove, rearrange, or deeply restyle controls, use Shadcn to add the skin source to your project. Its components, layout, styles, and interactions become local files you can change.
|
|
166
166
|
|
|
167
|
-
- [Install Video.js with Shadcn](./installation-shadcn.md): Add editable skin source and build a working React or HTML player
|
|
167
|
+
- [Install Video.js with Shadcn](./installation-shadcn.md#choose-how-to-install): Add editable skin source and build a working React or HTML player
|
|
168
168
|
|
|
169
169
|
## Choose what to do next
|
|
170
170
|
|
|
@@ -193,8 +193,8 @@ import '@videojs/html/i18n/locales/ja/register';
|
|
|
193
193
|
CDN locale modules call `registerI18n` on import. Pin every URL to the same version:
|
|
194
194
|
|
|
195
195
|
```html
|
|
196
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
197
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
196
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/locales/es.js"></script>
|
|
197
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/video.js"></script>
|
|
198
198
|
```
|
|
199
199
|
|
|
200
200
|
For custom strings, import `registerI18n` from the version-pinned `i18n.js` that matches your player script. The player’s chunks import that exact URL, so a different or unversioned URL loads a second copy of the module with its own registry, and your strings never reach the player. Load your module before the player script so the strings are registered when the elements upgrade:
|
|
@@ -202,14 +202,14 @@ For custom strings, import `registerI18n` from the version-pinned `i18n.js` that
|
|
|
202
202
|
**my-locale.js**
|
|
203
203
|
|
|
204
204
|
```js
|
|
205
|
-
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
205
|
+
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/i18n.js';
|
|
206
206
|
|
|
207
207
|
registerI18n('es', { buttons: { play: 'Reproducir', pause: 'Pausa' } });
|
|
208
208
|
```
|
|
209
209
|
|
|
210
210
|
```html
|
|
211
211
|
<script type="module" src="/my-locale.js"></script>
|
|
212
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
212
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.4/video.js"></script>
|
|
213
213
|
```
|
|
214
214
|
|
|
215
215
|
### Switch locale at runtime
|
package/docs/guides/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Video.js v10 — HTML Guides
|
|
2
2
|
|
|
3
|
-
> Installation, migration, concepts, playback guides, customization, and tooling for Video.js. Bundled with `@videojs/html` v10.0.0-rc.
|
|
3
|
+
> Installation, migration, concepts, playback guides, customization, and tooling for Video.js. Bundled with `@videojs/html` v10.0.0-rc.4. Links are relative paths to files in this directory.
|
|
4
4
|
|
|
5
5
|
## Getting Started
|
|
6
6
|
|