@vindral/web-sdk 4.2.1 → 4.3.0-1-gdda4d0a0

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.
@@ -1,11 +1,11 @@
1
1
  import { n as e, t } from "./BsfwXDui.js";
2
- import { _ as n, a as r, c as i, d as a, f as o, g as s, h as c, i as ee, l, m as te, n as u, o as ne, p as re, r as ie, s as ae, t as oe, u as se, v as ce } from "./TRlsfsv0.js";
2
+ import { _ as n, a as r, c as i, d as a, f as o, g as s, h as c, i as ee, l, m as te, n as u, o as ne, p as re, r as ie, s as ae, t as oe, u as se, v as ce } from "./Dl8nU3da.js";
3
3
  import { M as le } from "./C01DcfYu.js";
4
4
  import { a as d, i as f, n as p, r as m, t as h } from "./B7hT-BKr.js";
5
5
  import { n as ue, t as de } from "./DeYmk5AL.js";
6
6
  import { t as fe } from "./FYiEDBC4.js";
7
- import { _ as pe, a as me, c as he, d as ge, f as _e, g, h as _, i as v, l as ve, m as ye, n as y, o as b, p as be, r as x, s as xe, t as Se, u as Ce, v as we, y as Te } from "./CF-41rJe.js";
8
- import { t as Ee } from "./D5iA4gy8.js";
7
+ import { _ as pe, a as me, c as he, d as ge, f as _e, g, h as _, i as v, l as ve, m as ye, n as y, o as b, p as be, r as x, s as xe, t as Se, u as Ce, v as we, y as Te } from "./CjPLLJi5.js";
8
+ import { t as Ee } from "./BdFcdkj1.js";
9
9
  //#region ../../libs/utils/src/mediaMetadata.ts
10
10
  var De = ({ title: e, subTitle: t = "Live stream", poster: n }) => {
11
11
  document.title = e, "mediaSession" in navigator && (navigator.mediaSession.metadata = new MediaMetadata({
@@ -118,7 +118,7 @@ e(Ge, "observedAttributes", [...y(Ve, "observedAttributes", Ve), g.RENDITION_LEV
118
118
  //#endregion
119
119
  //#region ../../libs/player-next/src/components/AdvancedRenditionMenuList.ts
120
120
  var qe = document.createElement("template");
121
- qe.innerHTML = "\n <style>\n :host {\n font: inherit;\n cursor: default;\n padding: var(--padding-2);\n padding-top: var(--padding-3);\n border-radius: 0.25em;\n position: absolute;\n min-width: 220px;\n background: var(--bg-subtle);\n z-index: 1;\n overflow: auto;\n }\n\n :host([list-position=\"top\"]) {\n bottom: calc(100% + 0.5em);\n transform: translate(-50%);\n }\n\n :host([list-position=\"bottom\"]) {\n top: calc(100% + 0.5em);\n }\n\n :host::-webkit-scrollbar {\n width: 5px;\n padding-right: 5px;\n }\n\n :host::-webkit-scrollbar-thumb {\n background-color: var(--fg-extra-subtle);\n border-radius: 10px;\n border: 0;\n }\n\n :host::-webkit-scrollbar-track {\n border-radius: 10px;\n background-color: transparent;\n }\n\n .mode-toggle {\n display: flex;\n gap: var(--padding-1);\n margin-bottom: var(--padding-2);\n }\n\n .mode-btn {\n flex: 1;\n padding: var(--padding-1) var(--padding-2);\n border: none;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n cursor: pointer;\n background: var(--bg-component);\n color: var(--fg-default);\n transition: background 0.15s;\n }\n\n .mode-btn:hover {\n background: var(--bg-component-hover);\n }\n\n .mode-btn[data-active=\"true\"] {\n background: #549ce0;\n color: #ffffff;\n }\n\n .setting-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--padding-2);\n margin-bottom: var(--padding-2);\n padding: 0 var(--padding-1);\n }\n\n .setting-label {\n font-size: 10px;\n color: var(--fg-subtle);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n }\n\n .setting-toggle-btn {\n border: none;\n border-radius: 999px;\n background: var(--bg-component);\n color: var(--fg-default);\n font-size: 10px;\n font-weight: 600;\n min-width: 44px;\n padding: 4px 10px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .setting-toggle-btn[data-active=\"true\"] {\n background: #549ce0;\n color: #ffffff;\n }\n\n .setting-toggle-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .quality-status-text {\n font-size: 10px;\n color: var(--fg-subtle);\n margin-bottom: var(--padding-2);\n padding: 0 var(--padding-1);\n font-style: italic;\n }\n\n .menu {\n display: grid;\n gap: var(--padding-1);\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: var(--padding-2);\n padding: var(--padding-2);\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n position: relative;\n }\n\n .menu-item:hover {\n background: var(--bg-component-hover);\n }\n\n .menu-item[data-selected=\"true\"] {\n background: var(--bg-component-active);\n border: 1px solid var(--fg-extra-subtle);\n }\n\n .menu-item[data-capped=\"true\"] {\n opacity: 0.5;\n }\n\n .menu-item:focus-visible {\n box-shadow: inset 0 0 0 2px var(--fg-strong);\n outline: 0;\n }\n\n .menu-item-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .menu-item-title {\n font-weight: 500;\n }\n\n .menu-item-subtitle {\n font-size: 10px;\n opacity: 0.6;\n }\n\n .current-label {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: #549ce0;\n margin-left: auto;\n display: none;\n }\n\n .menu-item[data-playing=\"true\"] .current-label {\n display: block;\n }\n </style>\n\n <slot>\n <div class=\"mode-toggle\">\n <button class=\"mode-btn\" data-mode=\"auto\">Auto (ABR)</button>\n <button class=\"mode-btn\" data-mode=\"fixed\">Fixed</button>\n </div>\n <div class=\"setting-row\">\n <span class=\"setting-label\">Size cap</span>\n <button id=\"size-cap-toggle\" class=\"setting-toggle-btn\" type=\"button\"></button>\n </div>\n <div class=\"quality-status-text\" id=\"quality-status-text\"></div>\n <div class=\"menu\" role=\"menu\" aria-label=\"Quality options\"></div>\n </slot>\n";
121
+ qe.innerHTML = "\n <style>\n :host {\n font: inherit;\n cursor: default;\n padding: var(--padding-2) !important;\n padding-top: var(--padding-3) !important;\n border-radius: 0.25em;\n position: absolute;\n min-width: 220px !important;\n background: var(--bg-subtle);\n z-index: 1;\n overflow: auto;\n }\n\n :host([list-position=\"top\"]) {\n bottom: calc(100% + 0.5em);\n transform: translate(-50%);\n }\n\n :host([list-position=\"bottom\"]) {\n top: calc(100% + 0.5em);\n }\n\n :host::-webkit-scrollbar {\n width: 5px;\n padding-right: 5px;\n }\n\n :host::-webkit-scrollbar-thumb {\n background-color: var(--fg-extra-subtle);\n border-radius: 10px;\n border: 0;\n }\n\n :host::-webkit-scrollbar-track {\n border-radius: 10px;\n background-color: transparent;\n }\n\n .mode-toggle {\n display: flex;\n gap: var(--padding-1);\n margin-bottom: var(--padding-2);\n }\n\n .mode-btn {\n flex: 1;\n padding: var(--padding-1) var(--padding-2);\n border: none;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n cursor: pointer;\n background: var(--bg-component);\n color: var(--fg-default);\n transition: background 0.15s;\n }\n\n .mode-btn:hover {\n background: var(--bg-component-hover);\n }\n\n .mode-btn[data-active=\"true\"] {\n background: var(--accent);\n color: #ffffff;\n }\n\n .setting-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--padding-2);\n margin-bottom: var(--padding-2);\n padding: 0 var(--padding-1);\n }\n\n .setting-label {\n font-size: 10px;\n color: var(--fg-subtle);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n }\n\n .setting-toggle-btn {\n border: none;\n border-radius: 999px;\n background: var(--bg-component);\n color: var(--fg-default);\n font-size: 10px;\n font-weight: 600;\n min-width: 44px;\n padding: 4px 10px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .setting-toggle-btn[data-active=\"true\"] {\n background: var(--accent);\n color: #ffffff;\n }\n\n .setting-toggle-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .quality-status-text {\n font-size: 10px;\n color: var(--fg-subtle);\n margin-bottom: var(--padding-2);\n padding: 0 var(--padding-1);\n font-style: italic;\n }\n\n .menu {\n display: grid;\n gap: var(--padding-1);\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: var(--padding-2);\n padding: var(--padding-2);\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n position: relative;\n }\n\n .menu-item:hover {\n background: var(--bg-component-hover);\n }\n\n .menu-item[data-selected=\"true\"] {\n background: var(--bg-component-active);\n border: 1px solid var(--fg-extra-subtle);\n }\n\n .menu-item[data-capped=\"true\"] {\n opacity: 0.5;\n }\n\n .menu-item:focus-visible {\n box-shadow: inset 0 0 0 2px var(--fg-strong);\n outline: 0;\n }\n\n .menu-item-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .menu-item-title {\n font-weight: 500;\n }\n\n .menu-item-subtitle {\n font-size: 10px;\n opacity: 0.6;\n }\n\n .current-label {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--accent);\n margin-left: auto;\n display: none;\n }\n\n .menu-item[data-playing=\"true\"] .current-label {\n display: block;\n }\n </style>\n\n <slot>\n <div class=\"mode-toggle\">\n <button class=\"mode-btn\" data-mode=\"auto\">Auto (ABR)</button>\n <button class=\"mode-btn\" data-mode=\"fixed\">Fixed</button>\n </div>\n <div class=\"setting-row\">\n <span class=\"setting-label\">Size cap</span>\n <button id=\"size-cap-toggle\" class=\"setting-toggle-btn\" type=\"button\"></button>\n </div>\n <div class=\"quality-status-text\" id=\"quality-status-text\"></div>\n <div class=\"menu\" role=\"menu\" aria-label=\"Quality options\"></div>\n </slot>\n";
122
122
  var Je = /* @__PURE__ */ new WeakMap(), Ye = /* @__PURE__ */ new WeakMap(), C = /* @__PURE__ */ new WeakMap(), Xe = /* @__PURE__ */ new WeakMap(), Ze = /* @__PURE__ */ new WeakMap(), Qe = /* @__PURE__ */ new WeakMap(), $e = /* @__PURE__ */ new WeakMap(), et = /* @__PURE__ */ new WeakMap(), tt = /* @__PURE__ */ new WeakMap(), nt = /* @__PURE__ */ new WeakMap(), w = /* @__PURE__ */ new WeakSet(), rt = class extends HTMLElement {
123
123
  constructor() {
124
124
  super(), h(this, w), d(this, Je, []), d(this, Ye, 2 ** 53 - 1), d(this, C, !1), d(this, Xe, !0), d(this, Ze, null), d(this, Qe, null), d(this, $e, []), d(this, et, null), d(this, tt, null), d(this, nt, null), e(this, "handleEvent", (e) => {
@@ -609,7 +609,7 @@ Lt.innerHTML = `
609
609
  width: 100%;
610
610
  font-size: 20px;
611
611
  text-align: center;
612
- padding: 5% 0;
612
+ padding: 5% 0 !important;
613
613
  box-shadow: 0px 0px 20px black;
614
614
  background: rgba(0, 0, 0, 0.5);
615
615
  color: white;
@@ -666,7 +666,7 @@ function Vt(e = document) {
666
666
  //#endregion
667
667
  //#region ../../libs/player-next/src/components/ChannelGridItem.ts
668
668
  var Ht = document.createElement("template");
669
- Ht.innerHTML = "\n <style>\n :host {\n position: relative;\n aspect-ratio: 16 / 9;\n object-fit: cover;\n cursor: pointer;\n border-radius: 6px;\n box-sizing: border-box;\n\n background-size: cover;\n background-position: center;\n\n transition-property: background-image;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n\n background-color: rgba(0, 0, 0, 0.5);\n background-blend-mode: multiply;\n -webkit-tap-highlight-color: transparent;\n }\n\n :host([aria-selected=\"true\"]) {\n box-shadow: inset 0 0 0 2px var(--fg-strong);\n background-color: rgba(0, 0, 0, 0);\n }\n\n :host(:focus),\n :host(:focus-visible) {\n outline: none;\n }\n\n :host([offline]) {\n display: var(--grid-item-offline-display);\n background-image: repeating-linear-gradient(-45deg, #3d3d3d 0, #3d3d3d 4px, #1c2024 4px, #1c2024 8px) !important;\n pointer-events: none;\n }\n\n :host::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0);\n transition: background 0.2s ease;\n }\n\n :host(:hover)::before {\n background: rgba(255, 255, 255, 0.1);\n }\n\n .channel-title {\n position: absolute;\n bottom: var(--padding-2);\n left: var(--padding-2);\n padding: var(--padding-1) var(--padding-2);\n color: white;\n font-size: 15px;\n font-weight: 500;\n text-overflow: ellipsis;\n border-radius: 4px;\n\n @container (max-width: 480px) {\n font-size: 13px;\n }\n }\n </style>\n <slot></slot>\n";
669
+ Ht.innerHTML = "\n <style>\n :host {\n position: relative;\n aspect-ratio: 16 / 9;\n object-fit: cover;\n cursor: pointer;\n border-radius: 6px;\n box-sizing: border-box !important;\n\n background-size: cover;\n background-position: center;\n\n transition-property: background-image;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n\n background-color: rgba(0, 0, 0, 0.5);\n background-blend-mode: multiply;\n -webkit-tap-highlight-color: transparent;\n }\n\n :host([aria-selected=\"true\"]) {\n box-shadow: inset 0 0 0 2px var(--fg-strong);\n background-color: rgba(0, 0, 0, 0);\n }\n\n :host(:focus),\n :host(:focus-visible) {\n outline: none;\n }\n\n :host([offline]) {\n display: var(--grid-item-offline-display);\n background-image: repeating-linear-gradient(-45deg, #3d3d3d 0, #3d3d3d 4px, #1c2024 4px, #1c2024 8px) !important;\n pointer-events: none;\n }\n\n :host::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0);\n transition: background 0.2s ease;\n }\n\n :host(:hover)::before {\n background: rgba(255, 255, 255, 0.1);\n }\n\n .channel-title {\n position: absolute;\n bottom: var(--padding-2);\n left: var(--padding-2);\n padding: var(--padding-1) var(--padding-2);\n color: white;\n font-size: 15px;\n font-weight: 500;\n text-overflow: ellipsis;\n border-radius: 4px;\n\n @container (max-width: 480px) {\n font-size: 13px;\n }\n }\n </style>\n <slot></slot>\n";
670
670
  var Ut = /* @__PURE__ */ new WeakMap(), Wt = class extends HTMLElement {
671
671
  constructor() {
672
672
  super(), d(this, Ut, void 0), e(this, "lastThumbnailUpdate", void 0);
@@ -700,7 +700,7 @@ e(Wt, "observedAttributes", [
700
700
  //#endregion
701
701
  //#region ../../libs/player-next/src/components/ChannelGrid.ts
702
702
  var Gt = document.createElement("template");
703
- Gt.innerHTML = "\n <style>\n :host {\n cursor: default;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n border-radius: 4px;\n background-color: var(--bg-subtle);\n padding: var(--padding-2);\n\n position: absolute;\n bottom: 0;\n right: 0;\n\n z-index: 5;\n width: 100%;\n max-height: 75%;\n\n @container (width < 768px) {\n padding: var(--padding-1);\n }\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .wrapper {\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n height: 100%;\n }\n\n .wrapper::-webkit-scrollbar {\n display: none;\n }\n\n slot#grid {\n display: grid;\n gap: var(--padding-2);\n grid-template-columns: repeat(4, minmax(0, 1fr));\n\n @container (width < 768px) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: var(--padding-1);\n }\n @container (width < 1024px) and (width >= 768px) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n @container (width >= 1024px) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n\n /* Smart TV */\n @media (width < 1024px) and (width >= 768px) and (-webkit-min-device-pixel-ratio: 2) {\n slot#grid {\n grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\n }\n }\n\n :host([mode=\"list\"]) slot#grid {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n </style>\n\n <div class=\"wrapper\">\n <slot name=\"grid\" id=\"grid\"></slot>\n </div>\n";
703
+ Gt.innerHTML = "\n <style>\n :host {\n cursor: default;\n display: flex;\n flex-direction: column;\n box-sizing: border-box !important;\n border-radius: 4px;\n background-color: var(--bg-subtle);\n padding: var(--padding-2) !important;\n\n position: absolute;\n bottom: 0;\n right: 0;\n\n z-index: 5;\n width: 100%;\n max-height: 75%;\n\n @container (width < 768px) {\n padding: var(--padding-1) !important;\n }\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .wrapper {\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n height: 100%;\n }\n\n .wrapper::-webkit-scrollbar {\n display: none;\n }\n\n slot#grid {\n display: grid;\n gap: var(--padding-2);\n grid-template-columns: repeat(4, minmax(0, 1fr));\n\n @container (width < 768px) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: var(--padding-1);\n }\n @container (width < 1024px) and (width >= 768px) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n @container (width >= 1024px) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n\n /* Smart TV */\n @media (width < 1024px) and (width >= 768px) and (-webkit-min-device-pixel-ratio: 2) {\n slot#grid {\n grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\n }\n }\n\n :host([mode=\"list\"]) slot#grid {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n </style>\n\n <div class=\"wrapper\">\n <slot name=\"grid\" id=\"grid\"></slot>\n </div>\n";
704
704
  var Kt = /* @__PURE__ */ new WeakMap(), qt = /* @__PURE__ */ new WeakMap(), Jt = /* @__PURE__ */ new WeakMap(), T = /* @__PURE__ */ new WeakMap(), E = /* @__PURE__ */ new WeakMap(), Yt = /* @__PURE__ */ new WeakMap(), Xt = /* @__PURE__ */ new WeakMap(), Zt = /* @__PURE__ */ new WeakMap(), Qt = /* @__PURE__ */ new WeakMap(), $t = /* @__PURE__ */ new WeakMap(), D = /* @__PURE__ */ new WeakSet(), en = class extends HTMLElement {
705
705
  constructor() {
706
706
  super(), h(this, D), d(this, Kt, null), d(this, qt, null), d(this, Jt, []), d(this, T, []), d(this, E, void 0), d(this, Yt, void 0), d(this, Xt, void 0), d(this, Zt, void 0), d(this, Qt, void 0), d(this, $t, void 0), e(this, "handleEvent", (e) => {
@@ -1035,7 +1035,7 @@ var In = class extends fe {
1035
1035
  default: break;
1036
1036
  }
1037
1037
  }), e(this, "onAirPlayPlaybackChanged", () => {
1038
- window.clearTimeout(this.connectingTimeout), this.element.webkitCurrentPlaybackTargetIsWireless ? (this.emit("connected"), this.element.style.display = "block", this.element.paused && this.element.play()) : (this.emit("disconnected"), this.element.pause(), this.element.src = "", this.element.src = this.hlsUrl, this.element.style.display = "none");
1038
+ window.clearTimeout(this.connectingTimeout), this.element.webkitCurrentPlaybackTargetIsWireless ? (this.emit("connected"), this.element.style.display = "block", this.element.paused && this.element.play().catch(le)) : (this.emit("disconnected"), this.element.pause(), this.element.src = "", this.element.src = this.hlsUrl, this.element.style.display = "none");
1039
1039
  }), this.config = t, this.hlsUrl = this.getHlsUrl(), this.element = document.createElement("video"), this.element.style.position = "absolute", this.element.style.top = "0", this.element.style.bottom = "0", this.element.style.left = "0", this.element.style.right = "0", this.element.style.width = "100%", this.element.style.height = "100%", this.element.style.zIndex = "1001", this.element.style.display = "none", this.element.id = "vindral-airplay-element", this.element.slot = "overlay", this.element.playsInline = !0, this.element.controls = !0, this.element.preload = "metadata", this.element.addEventListener("webkitplaybacktargetavailabilitychanged", this.onAirPlayAvailable), this.element.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", this.onAirPlayPlaybackChanged), this.config.container.appendChild(this.element);
1040
1040
  }
1041
1041
  get casting() {
@@ -1560,6 +1560,7 @@ Mr.innerHTML = `
1560
1560
  --bg-component: var(--vindral-bg-component, #222222);
1561
1561
  --bg-component-hover: var(--vindral-bg-component-hover, #2a2a2a);
1562
1562
  --bg-component-active: var(--vindral-bg-component-active, #313131);
1563
+ --accent: var(--vindral-accent, oklch(54.6% 0.245 262.881));
1563
1564
 
1564
1565
  --padding-1: var(--vindral-padding-1, 4px);
1565
1566
  --padding-2: var(--vindral-padding-2, 8px);
@@ -1704,7 +1705,7 @@ Mr.innerHTML = `
1704
1705
  ):not([${g.IS_CASTING}]
1705
1706
  ):not([${g.MEDIA}="audio"])
1706
1707
  )
1707
- #ui > * {
1708
+ #ui > slot::slotted(*) {
1708
1709
  pointer-events: none;
1709
1710
  }
1710
1711
 
@@ -1761,7 +1762,7 @@ var Nr = [
1761
1762
  ], Pr = /* @__PURE__ */ new WeakMap(), Fr = /* @__PURE__ */ new WeakMap(), Ir = /* @__PURE__ */ new WeakMap(), Lr = /* @__PURE__ */ new WeakMap(), Rr = /* @__PURE__ */ new WeakMap(), F = /* @__PURE__ */ new WeakMap(), I = /* @__PURE__ */ new WeakMap(), zr = /* @__PURE__ */ new WeakMap(), L = /* @__PURE__ */ new WeakMap(), Br = /* @__PURE__ */ new WeakMap(), Vr = /* @__PURE__ */ new WeakMap(), Hr = /* @__PURE__ */ new WeakMap(), Ur = /* @__PURE__ */ new WeakMap(), Wr = /* @__PURE__ */ new WeakMap(), R = /* @__PURE__ */ new WeakMap(), Gr = /* @__PURE__ */ new WeakMap(), Kr = /* @__PURE__ */ new WeakMap(), qr = /* @__PURE__ */ new WeakMap(), z = /* @__PURE__ */ new WeakMap(), Jr = /* @__PURE__ */ new WeakMap(), Yr = /* @__PURE__ */ new WeakMap(), Xr = /* @__PURE__ */ new WeakMap(), B = /* @__PURE__ */ new WeakMap(), Zr = /* @__PURE__ */ new WeakMap(), Qr = /* @__PURE__ */ new WeakMap(), $r = /* @__PURE__ */ new WeakMap(), V = /* @__PURE__ */ new WeakSet(), ei = /* @__PURE__ */ new WeakMap(), ti = /* @__PURE__ */ new WeakMap(), ni = /* @__PURE__ */ new WeakMap(), ri = /* @__PURE__ */ new WeakMap(), ii = /* @__PURE__ */ new WeakMap(), ai = /* @__PURE__ */ new WeakMap(), oi = /* @__PURE__ */ new WeakMap(), si = /* @__PURE__ */ new WeakMap(), ci = /* @__PURE__ */ new WeakMap(), li = /* @__PURE__ */ new WeakMap(), ui = /* @__PURE__ */ new WeakMap(), di = /* @__PURE__ */ new WeakMap(), fi = /* @__PURE__ */ new WeakMap(), pi = /* @__PURE__ */ new WeakMap(), mi = /* @__PURE__ */ new WeakMap(), hi = /* @__PURE__ */ new WeakMap(), gi = /* @__PURE__ */ new WeakMap(), _i = /* @__PURE__ */ new WeakMap(), vi = /* @__PURE__ */ new WeakMap(), yi = /* @__PURE__ */ new WeakMap(), bi = /* @__PURE__ */ new WeakMap(), xi = /* @__PURE__ */ new WeakMap(), Si = /* @__PURE__ */ new WeakMap(), Ci = /* @__PURE__ */ new WeakMap(), wi = /* @__PURE__ */ new WeakMap(), Ti = /* @__PURE__ */ new WeakMap(), Ei = /* @__PURE__ */ new WeakMap(), Di = /* @__PURE__ */ new WeakMap(), Oi = /* @__PURE__ */ new WeakMap(), ki = /* @__PURE__ */ new WeakMap(), Ai = /* @__PURE__ */ new WeakMap(), ji = /* @__PURE__ */ new WeakMap(), Mi = class extends HTMLElement {
1762
1763
  constructor() {
1763
1764
  var t;
1764
- super(), h(this, V), d(this, Pr, /* @__PURE__ */ new Map()), d(this, Fr, 2e3), d(this, Ir, null), d(this, Lr, null), d(this, Rr, void 0), d(this, F, void 0), d(this, I, void 0), d(this, zr, void 0), d(this, L, void 0), d(this, Br, va._), d(this, Vr, void 0), d(this, Hr, void 0), d(this, Ur, void 0), d(this, Wr, void 0), d(this, R, void 0), d(this, Gr, void 0), d(this, Kr, void 0), d(this, qr, void 0), d(this, z, void 0), d(this, Jr, void 0), d(this, Yr, void 0), d(this, Xr, void 0), d(this, B, void 0), d(this, Zr, null), d(this, Qr, !1), d(this, $r, null), d(this, ei, (e) => {
1765
+ super(), h(this, V), d(this, Pr, /* @__PURE__ */ new Map()), d(this, Fr, 2e3), d(this, Ir, null), d(this, Lr, null), d(this, Rr, void 0), d(this, F, void 0), d(this, I, void 0), d(this, zr, void 0), d(this, L, void 0), d(this, Br, ya._), d(this, Vr, void 0), d(this, Hr, void 0), d(this, Ur, void 0), d(this, Wr, void 0), d(this, R, void 0), d(this, Gr, void 0), d(this, Kr, void 0), d(this, qr, void 0), d(this, z, void 0), d(this, Jr, void 0), d(this, Yr, void 0), d(this, Xr, void 0), d(this, B, void 0), d(this, Zr, null), d(this, Qr, !1), d(this, $r, null), d(this, ei, (e) => {
1765
1766
  let t = e.filter((e) => {
1766
1767
  var t;
1767
1768
  return (t = e.video) == null ? void 0 : t.width;
@@ -1847,7 +1848,7 @@ var Nr = [
1847
1848
  m(Qr, this, !1);
1848
1849
  return;
1849
1850
  }
1850
- m(Qr, this, !1), f(V, this, ca).call(this);
1851
+ m(Qr, this, !1), f(V, this, la).call(this);
1851
1852
  }
1852
1853
  }), d(this, xi, 0), e(this, "handleEvent", (e) => {
1853
1854
  switch (e.type) {
@@ -1861,19 +1862,19 @@ var Nr = [
1861
1862
  f(V, this, $i).call(this, e);
1862
1863
  break;
1863
1864
  case "mouseleave":
1864
- f(V, this, oa).call(this);
1865
+ f(V, this, sa).call(this);
1865
1866
  break;
1866
1867
  case "dblclick":
1867
- f(V, this, ea).call(this, e);
1868
+ f(V, this, ta).call(this, e);
1868
1869
  break;
1869
1870
  case "mousemove":
1870
- f(V, this, ta).call(this, e);
1871
+ f(V, this, na).call(this, e);
1871
1872
  break;
1872
1873
  case "keydown":
1873
1874
  p(wi, this).call(this, e);
1874
1875
  break;
1875
1876
  case "keyup":
1876
- f(V, this, oa).call(this), p(Ci, this).call(this, e);
1877
+ f(V, this, sa).call(this), p(Ci, this).call(this, e);
1877
1878
  break;
1878
1879
  }
1879
1880
  }), d(this, Si, (e) => {
@@ -1921,7 +1922,7 @@ var Nr = [
1921
1922
  }
1922
1923
  break;
1923
1924
  case _.CHANNEL_GRID_OPENED:
1924
- p(Zr, this) === null && f(V, this, ra).call(this);
1925
+ p(Zr, this) === null && f(V, this, ia).call(this);
1925
1926
  break;
1926
1927
  case _.CHANNEL_GRID_CLOSED:
1927
1928
  p(Zr, this) !== null && (clearTimeout(p(Zr, this)), m(Zr, this, null));
@@ -1973,7 +1974,7 @@ var Nr = [
1973
1974
  this.removeEventListener("keyup", this);
1974
1975
  return;
1975
1976
  }
1976
- f(V, this, na).call(this, e);
1977
+ f(V, this, ra).call(this, e);
1977
1978
  }), d(this, wi, (e) => {
1978
1979
  let { metaKey: t, altKey: n, key: r } = e;
1979
1980
  t || n || !Nr.includes(r) || this.addEventListener("keyup", this, { once: !0 });
@@ -1981,11 +1982,11 @@ var Nr = [
1981
1982
  this.removeAttribute(g.TIMESHIFT_POSITION), this.handleTimeShiftUpdate(!1);
1982
1983
  }), d(this, Ei, (e) => {
1983
1984
  var t;
1984
- p(L, this) || f(V, this, Li).call(this), p(I, this) !== p(L, this) && (e && f(V, this, la).call(this), m(I, this, p(L, this)), f(V, this, Fi).call(this), f(V, this, Ii).call(this), f(V, this, Vi).call(this), (t = p(F, this)) == null || t.pause(), m(Qr, this, e));
1985
+ p(L, this) || f(V, this, Li).call(this), p(I, this) !== p(L, this) && (e && f(V, this, ua).call(this), m(I, this, p(L, this)), f(V, this, Fi).call(this), f(V, this, Ii).call(this), f(V, this, Vi).call(this), (t = p(F, this)) == null || t.pause(), m(Qr, this, e));
1985
1986
  }), d(this, Di, (e) => {
1986
1987
  var t, n, r, i;
1987
- e && f(V, this, la).call(this), (t = p(L, this)) == null || t.hide(), m(I, this, p(zr, this)), f(V, this, Vi).call(this), this.hasAttribute(g.PAUSED) ? (n = p(I, this)) == null || n.pause() : (r = p(I, this)) == null || r.play(), f(V, this, zi).call(this), f(V, this, Pi).call(this), (i = p(L, this)) == null || i.pause(), e && (m(Qr, this, !1), setTimeout(() => {
1988
- f(V, this, ca).call(this);
1988
+ e && f(V, this, ua).call(this), (t = p(L, this)) == null || t.hide(), m(I, this, p(zr, this)), f(V, this, Vi).call(this), this.hasAttribute(g.PAUSED) ? (n = p(I, this)) == null || n.pause() : (r = p(I, this)) == null || r.play(), f(V, this, zi).call(this), f(V, this, Pi).call(this), (i = p(L, this)) == null || i.pause(), e && (m(Qr, this, !1), setTimeout(() => {
1989
+ f(V, this, la).call(this);
1989
1990
  }, 100));
1990
1991
  }), e(this, "handleTimeShiftUpdate", (e) => {
1991
1992
  let t = this.hasAttribute(g.IS_PIP);
@@ -2020,7 +2021,7 @@ var Nr = [
2020
2021
  }
2021
2022
  disconnectedCallback() {
2022
2023
  var e, t, n, r, i;
2023
- f(V, this, Zi).call(this), f(V, this, ga).call(this), (e = p(F, this)) == null || e.unload(), (t = p(R, this)) == null || t.unload(), (n = p(Gr, this)) == null || n.unload(), (r = p(Kr, this)) == null || r.unload(), (i = p(z, this)) == null || i.unload(), f(V, this, Ri).call(this);
2024
+ f(V, this, Zi).call(this), f(V, this, _a).call(this), (e = p(F, this)) == null || e.unload(), (t = p(R, this)) == null || t.unload(), (n = p(Gr, this)) == null || n.unload(), (r = p(Kr, this)) == null || r.unload(), (i = p(z, this)) == null || i.unload(), f(V, this, Ri).call(this);
2024
2025
  for (let e of Object.values(_)) this.removeEventListener(e, p(Si, this));
2025
2026
  f(V, this, Fi).call(this), p(Ir, this) && (clearTimeout(p(Ir, this)), m(Ir, this, null)), this.disconnectListener(this);
2026
2027
  }
@@ -2068,7 +2069,7 @@ var Nr = [
2068
2069
  }
2069
2070
  break;
2070
2071
  case g.DEBUG_PANEL_OPEN:
2071
- v(n) ? f(V, this, H).call(this, g.DEBUG_PANEL_OPEN, "") : f(V, this, U).call(this, g.DEBUG_PANEL_OPEN), f(V, this, ma).call(this);
2072
+ v(n) ? f(V, this, H).call(this, g.DEBUG_PANEL_OPEN, "") : f(V, this, U).call(this, g.DEBUG_PANEL_OPEN), f(V, this, ha).call(this);
2072
2073
  break;
2073
2074
  case "user-interacting":
2074
2075
  v(n) ? f(V, this, H).call(this, g.USER_INTERACTING, "") : f(V, this, U).call(this, g.USER_INTERACTING);
@@ -2089,10 +2090,10 @@ var Nr = [
2089
2090
  }
2090
2091
  break;
2091
2092
  case "ui-locked":
2092
- v(n) ? f(V, this, aa).call(this) : f(V, this, oa).call(this);
2093
+ v(n) ? f(V, this, oa).call(this) : f(V, this, sa).call(this);
2093
2094
  break;
2094
2095
  case "is-fullscreen":
2095
- v(n) ? f(V, this, ua).call(this) : f(V, this, da).call(this);
2096
+ v(n) ? f(V, this, da).call(this) : f(V, this, fa).call(this);
2096
2097
  break;
2097
2098
  case "abr-enabled":
2098
2099
  {
@@ -2113,7 +2114,7 @@ var Nr = [
2113
2114
  m(Wr, this, n), v(n) ? f(V, this, H).call(this, g.MAX_INITIAL_BITRATE, n) : f(V, this, U).call(this, g.MAX_INITIAL_BITRATE);
2114
2115
  break;
2115
2116
  case "is-pip":
2116
- v(n) ? f(V, this, ca).call(this) : f(V, this, la).call(this);
2117
+ v(n) ? f(V, this, la).call(this) : f(V, this, ua).call(this);
2117
2118
  break;
2118
2119
  case "is-airplaying":
2119
2120
  if (v(n)) {
@@ -2127,7 +2128,7 @@ var Nr = [
2127
2128
  case "is-casting":
2128
2129
  if (v(n)) {
2129
2130
  var te, u;
2130
- (te = p(Gr, this)) != null && te.isFullscreen() && f(V, this, da).call(this), (u = p(F, this)) == null || u.pause();
2131
+ (te = p(Gr, this)) != null && te.isFullscreen() && f(V, this, fa).call(this), (u = p(F, this)) == null || u.pause();
2131
2132
  } else if (!document.hidden) {
2132
2133
  var ne;
2133
2134
  (ne = p(F, this)) == null || ne.play();
@@ -2186,7 +2187,7 @@ var Nr = [
2186
2187
  g.USER_INTERACTING,
2187
2188
  g.PAUSED,
2188
2189
  g.HIDE_UI_ON_PAUSE
2189
- ].includes(e) && f(V, this, sa).call(this);
2190
+ ].includes(e) && f(V, this, ca).call(this);
2190
2191
  }
2191
2192
  }
2192
2193
  connectListener(e) {
@@ -2433,7 +2434,7 @@ function Yi(e) {
2433
2434
  }
2434
2435
  }
2435
2436
  function Xi() {
2436
- let e = () => (customElements.get("vindral-debug-panel") || import("./ABGzdpO4.js").then((e) => e.n).then(({ registerDebugComponents: e }) => e()), this.setAttribute(g.DEBUG_PANEL_OPEN, ""), p(F, this));
2437
+ let e = () => (customElements.get("vindral-debug-panel") || import("./BFPgdE3l.js").then((e) => e.n).then(({ registerDebugComponents: e }) => e()), this.setAttribute(g.DEBUG_PANEL_OPEN, ""), p(F, this));
2437
2438
  window._vindralDebug = e, m($r, this, e);
2438
2439
  }
2439
2440
  function Zi() {
@@ -2441,19 +2442,25 @@ function Zi() {
2441
2442
  p($r, this) && e._vindralDebug === p($r, this) && delete e._vindralDebug, m($r, this, null);
2442
2443
  }
2443
2444
  function Qi(e) {
2444
- e.pointerType !== "mouse" && e.timeStamp - p(xi, this) < 250 || (f(V, this, aa).call(this), p(Ir, this) && clearTimeout(p(Ir, this)), e.target instanceof HTMLElement && ([this, p(Lr, this)].includes(e.target) || e.target.localName === "vindral-scroll-overlay") && f(V, this, oa).call(this));
2445
+ e.pointerType !== "mouse" && e.timeStamp - p(xi, this) < 250 || (f(V, this, oa).call(this), p(Ir, this) && clearTimeout(p(Ir, this)), e.target instanceof HTMLElement && ([this, p(Lr, this)].includes(e.target) || e.target.localName === "vindral-scroll-overlay") && f(V, this, sa).call(this));
2445
2446
  }
2446
2447
  function $i(e) {
2447
2448
  let t = this.hasAttribute(g.USER_INTERACTING);
2448
- e.pointerType === "touch" && e.target instanceof HTMLElement ? [this, p(Lr, this)].includes(e.target) && t ? f(V, this, ia).call(this) : f(V, this, oa).call(this) : e.composedPath().some((e) => e instanceof HTMLElement && ["vindral-play-button"].includes(e == null ? void 0 : e.localName)) && f(V, this, oa).call(this);
2449
+ e.pointerType === "touch" && e.target instanceof HTMLElement ? [this, p(Lr, this)].includes(e.target) && t ? f(V, this, aa).call(this) : f(V, this, sa).call(this) : e.composedPath().some((e) => e instanceof HTMLElement && ["vindral-play-button"].includes(e == null ? void 0 : e.localName)) && f(V, this, sa).call(this);
2449
2450
  }
2450
2451
  function ea(e) {
2451
- !p(Gr, this) || e.target instanceof x || e.target instanceof Re || e.target instanceof jr || (this.hasAttribute(g.FULLSCREEN) ? this.removeAttribute(g.FULLSCREEN) : this.setAttribute(g.FULLSCREEN, ""));
2452
+ switch (e) {
2453
+ case "dblclick-fullscreen": return b(this.getAttribute(g.DOUBLE_CLICK_FULLSCREEN_ENABLED), !0);
2454
+ default: return !0;
2455
+ }
2452
2456
  }
2453
2457
  function ta(e) {
2454
- this.hasAttribute(g.USER_INTERACTING) || f(V, this, oa).call(this);
2458
+ f(V, this, ea).call(this, "dblclick-fullscreen") && (!p(Gr, this) || e.target instanceof x || e.target instanceof Re || e.target instanceof jr || (this.hasAttribute(g.FULLSCREEN) ? this.removeAttribute(g.FULLSCREEN) : this.setAttribute(g.FULLSCREEN, "")));
2455
2459
  }
2456
2460
  function na(e) {
2461
+ this.hasAttribute(g.USER_INTERACTING) || f(V, this, sa).call(this);
2462
+ }
2463
+ function ra(e) {
2457
2464
  var t;
2458
2465
  let { metaKey: n, altKey: r, key: i } = e;
2459
2466
  if (n || r || !Nr.includes(i)) return;
@@ -2474,7 +2481,7 @@ function na(e) {
2474
2481
  break;
2475
2482
  }
2476
2483
  }
2477
- function ra() {
2484
+ function ia() {
2478
2485
  var e = this;
2479
2486
  return t(function* () {
2480
2487
  if (!p(F, e) || !p(Hr, e)) return;
@@ -2485,17 +2492,17 @@ function ra() {
2485
2492
  let n = yield p(F, e).getApiClient().getChannels(p(Hr, e));
2486
2493
  f(V, e, H).call(e, g.CHANNELS, JSON.stringify(n));
2487
2494
  }
2488
- m(Zr, e, window.setTimeout(() => void f(V, e, ra).call(e), 1e4));
2495
+ m(Zr, e, window.setTimeout(() => void f(V, e, ia).call(e), 1e4));
2489
2496
  })();
2490
2497
  }
2491
- function ia() {
2498
+ function aa() {
2492
2499
  !this.hasAttribute(g.USER_INTERACTING) || this.hasAttribute(g.UI_LOCKED) || (this.dispatchEvent(new CustomEvent("user-interacting", {
2493
2500
  bubbles: !0,
2494
2501
  composed: !0,
2495
2502
  detail: { active: !1 }
2496
2503
  })), this.removeAttribute(g.USER_INTERACTING));
2497
2504
  }
2498
- function aa() {
2505
+ function oa() {
2499
2506
  this.hasAttribute(g.USER_INTERACTING) || requestAnimationFrame(() => {
2500
2507
  this.setAttribute(g.USER_INTERACTING, ""), this.dispatchEvent(new CustomEvent("user-interacting", {
2501
2508
  bubbles: !0,
@@ -2504,41 +2511,41 @@ function aa() {
2504
2511
  }));
2505
2512
  });
2506
2513
  }
2507
- function oa() {
2508
- f(V, this, aa).call(this), p(Ir, this) && clearTimeout(p(Ir, this)), p(Fr, this) && m(Ir, this, self.setTimeout(() => {
2509
- f(V, this, ia).call(this);
2514
+ function sa() {
2515
+ f(V, this, oa).call(this), p(Ir, this) && clearTimeout(p(Ir, this)), p(Fr, this) && m(Ir, this, self.setTimeout(() => {
2516
+ f(V, this, aa).call(this);
2510
2517
  }, p(Fr, this)));
2511
2518
  }
2512
- function sa() {
2519
+ function ca() {
2513
2520
  var e;
2514
2521
  let t = getComputedStyle(this).getPropertyValue("--vindral-subtitle-offset") || "0px";
2515
2522
  (e = p(F, this)) == null || (e = e.mediaElement) == null || e.style.setProperty("--vindral-subtitle-offset", t);
2516
2523
  }
2517
- function ca() {
2524
+ function la() {
2518
2525
  var e;
2519
- f(V, this, Vi).call(this), f(V, this, fa).call(this), (e = p(R, this)) == null || e.request().catch((e) => {
2526
+ f(V, this, Vi).call(this), f(V, this, pa).call(this), (e = p(R, this)) == null || e.request().catch((e) => {
2520
2527
  p(B, this).warn("Failed to enter picture in picture:", e);
2521
2528
  });
2522
2529
  }
2523
- function la() {
2530
+ function ua() {
2524
2531
  var e;
2525
2532
  (e = p(R, this)) == null || e.exit().catch((e) => {
2526
2533
  p(B, this).warn("Failed to exit picture in picture:", e);
2527
2534
  });
2528
2535
  }
2529
- function ua() {
2536
+ function da() {
2530
2537
  let e = f(V, this, Wi).call(this);
2531
2538
  if (!e) {
2532
2539
  console.warn("No fullscreen target available"), this.setAttribute(g.FULLSCREEN_FALLBACK, ""), f(V, this, H).call(this, g.FULLSCREEN, "");
2533
2540
  return;
2534
2541
  }
2535
- e != null && e.isFullscreenApiSupported() ? (f(V, this, fa).call(this), e == null || e.request().then(() => {
2542
+ e != null && e.isFullscreenApiSupported() ? (f(V, this, pa).call(this), e == null || e.request().then(() => {
2536
2543
  p(ki, this).call(this);
2537
2544
  }).catch((e) => {
2538
2545
  p(B, this).warn("Failed to enter fullscreen:", e);
2539
2546
  })) : (this.setAttribute(g.FULLSCREEN_FALLBACK, ""), f(V, this, H).call(this, g.FULLSCREEN, ""));
2540
2547
  }
2541
- function da() {
2548
+ function fa() {
2542
2549
  let e = f(V, this, Wi).call(this);
2543
2550
  e != null && e.isFullscreenApiSupported() ? e == null || e.exit().then(() => {
2544
2551
  p(Ai, this).call(this);
@@ -2546,22 +2553,22 @@ function da() {
2546
2553
  p(B, this).warn("Failed to exit fullscreen:", e);
2547
2554
  }) : (this.removeAttribute(g.FULLSCREEN_FALLBACK), f(V, this, U).call(this, g.FULLSCREEN));
2548
2555
  }
2549
- function fa() {
2550
- p(F, this) && p(F, this).emitter.emit("ios-hack: reset size");
2551
- }
2552
2556
  function pa() {
2553
- return this.hasAttribute(g.DEBUG_PANEL_OPEN);
2557
+ p(F, this) && p(F, this).emitter.emit("ios-hack: reset size");
2554
2558
  }
2555
2559
  function ma() {
2556
- f(V, this, pa).call(this) ? f(V, this, ha).call(this) : f(V, this, ga).call(this);
2560
+ return this.hasAttribute(g.DEBUG_PANEL_OPEN);
2557
2561
  }
2558
2562
  function ha() {
2559
- p(ji, this) === null && (f(V, this, _a).call(this), m(ji, this, window.setInterval(() => f(V, this, _a).call(this), 1e3)));
2563
+ f(V, this, ma).call(this) ? f(V, this, ga).call(this) : f(V, this, _a).call(this);
2560
2564
  }
2561
2565
  function ga() {
2562
- p(ji, this) && (clearInterval(p(ji, this)), m(ji, this, null)), this.removeAttribute(g.DRIFT), f(V, this, U).call(this, g.DRIFT), f(V, this, U).call(this, g.PLAYBACK_LATENCY), f(V, this, U).call(this, g.CONNECTION_STATE);
2566
+ p(ji, this) === null && (f(V, this, va).call(this), m(ji, this, window.setInterval(() => f(V, this, va).call(this), 1e3)));
2563
2567
  }
2564
2568
  function _a() {
2569
+ p(ji, this) && (clearInterval(p(ji, this)), m(ji, this, null)), this.removeAttribute(g.DRIFT), f(V, this, U).call(this, g.DRIFT), f(V, this, U).call(this, g.PLAYBACK_LATENCY), f(V, this, U).call(this, g.CONNECTION_STATE);
2570
+ }
2571
+ function va() {
2565
2572
  if (!p(F, this)) return;
2566
2573
  try {
2567
2574
  let e = p(F, this).getStatistics().drift;
@@ -2623,8 +2630,8 @@ e(Mi, "observedAttributes", [
2623
2630
  "auto-instance-enabled",
2624
2631
  "language"
2625
2632
  ]);
2626
- var va = { _: "https://lb.cdn.vindral.com" }, ya, ba = document.createElement("template");
2627
- ba.innerHTML = `
2633
+ var ya = { _: "https://lb.cdn.vindral.com" }, ba, xa = document.createElement("template");
2634
+ xa.innerHTML = `
2628
2635
  <style>
2629
2636
  :host {
2630
2637
  display: var(--fullscreen-button-display);
@@ -2648,10 +2655,10 @@ ba.innerHTML = `
2648
2655
  </slot>
2649
2656
  </slot>
2650
2657
  `;
2651
- var xa = class extends x {
2658
+ var Sa = class extends x {
2652
2659
  constructor() {
2653
2660
  var e;
2654
- super(), (e = this.shadowRoot) == null || e.appendChild(ba.content.cloneNode(!0));
2661
+ super(), (e = this.shadowRoot) == null || e.appendChild(xa.content.cloneNode(!0));
2655
2662
  }
2656
2663
  connectedCallback() {
2657
2664
  super.connectedCallback(), this.setAttribute("aria-label", this.isFullscreen ? "Exit fullscreen" : "Enter fullscreen");
@@ -2676,57 +2683,57 @@ var xa = class extends x {
2676
2683
  }));
2677
2684
  }
2678
2685
  };
2679
- ya = xa, e(xa, "observedAttributes", [...y(ya, "observedAttributes", ya), g.FULLSCREEN]);
2686
+ ba = Sa, e(Sa, "observedAttributes", [...y(ba, "observedAttributes", ba), g.FULLSCREEN]);
2680
2687
  //#endregion
2681
2688
  //#region ../../libs/player-next/src/components/LanguageMenu.ts
2682
- var Sa, Ca = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M4 5h7\" /><path d=\"M9 3v2c0 4.418 -2.239 8 -5 8\" /><path d=\"M5 9c0 2.144 2.952 3.908 6.7 4\" /><path d=\"M12 20l4 -9l4 9\" /><path d=\"M19.1 18h-6.2\" /></svg>\n", wa = document.createElement("template");
2683
- wa.innerHTML = `
2689
+ var Ca, wa = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M4 5h7\" /><path d=\"M9 3v2c0 4.418 -2.239 8 -5 8\" /><path d=\"M5 9c0 2.144 2.952 3.908 6.7 4\" /><path d=\"M12 20l4 -9l4 9\" /><path d=\"M19.1 18h-6.2\" /></svg>\n", Ta = document.createElement("template");
2690
+ Ta.innerHTML = `
2684
2691
  <style>
2685
2692
  :host(:not([hidden])) {
2686
2693
  display: var(--language-menu-display);
2687
2694
  }
2688
2695
  </style>
2689
2696
 
2690
- <slot name="button">${Ca}</slot>
2697
+ <slot name="button">${wa}</slot>
2691
2698
  <slot name="listbox" hidden>
2692
2699
  <vindral-language-menu-list id="listbox" part="listbox"></vindral-language-menu-list>
2693
2700
  </slot>
2694
2701
  `;
2695
- var Ta = /* @__PURE__ */ new WeakSet(), Ea = class extends Re {
2702
+ var Ea = /* @__PURE__ */ new WeakSet(), Da = class extends Re {
2696
2703
  constructor() {
2697
2704
  var e, t, n, r;
2698
- super(), h(this, Ta), (e = this.shadowRoot) == null || e.appendChild(wa.content.cloneNode(!0)), this.button = (t = this.shadowRoot) == null ? void 0 : t.querySelector("slot[name=button]"), this.listbox = (n = this.shadowRoot) == null ? void 0 : n.querySelector("[part=listbox]"), this.listboxSlot = (r = this.shadowRoot) == null ? void 0 : r.querySelector("slot[name=listbox]");
2705
+ super(), h(this, Ea), (e = this.shadowRoot) == null || e.appendChild(Ta.content.cloneNode(!0)), this.button = (t = this.shadowRoot) == null ? void 0 : t.querySelector("slot[name=button]"), this.listbox = (n = this.shadowRoot) == null ? void 0 : n.querySelector("[part=listbox]"), this.listboxSlot = (r = this.shadowRoot) == null ? void 0 : r.querySelector("slot[name=listbox]");
2699
2706
  }
2700
2707
  connectedCallback() {
2701
- super.connectedCallback(), f(Ta, this, Da).call(this), this.setAttribute("aria-label", "Languages");
2708
+ super.connectedCallback(), f(Ea, this, Oa).call(this), this.setAttribute("aria-label", "Languages");
2702
2709
  }
2703
2710
  attributeChangedCallback(e, t, n) {
2704
- super.attributeChangedCallback(e, t, n), (e === g.LANGUAGES || e === g.TEXT_TRACKS) && f(Ta, this, Da).call(this);
2711
+ super.attributeChangedCallback(e, t, n), (e === g.LANGUAGES || e === g.TEXT_TRACKS) && f(Ea, this, Oa).call(this);
2705
2712
  }
2706
2713
  };
2707
- Sa = Ea;
2708
- function Da() {
2714
+ Ca = Da;
2715
+ function Oa() {
2709
2716
  let e = (e) => (e ? JSON.parse(e) : []).length < 2, t = e(this.getAttribute(g.LANGUAGES)), n = e(this.getAttribute(g.TEXT_TRACKS));
2710
2717
  t && n ? this.setAttribute("hidden", "") : this.removeAttribute("hidden");
2711
2718
  }
2712
- e(Ea, "observedAttributes", [
2713
- ...y(Sa, "observedAttributes", Sa),
2719
+ e(Da, "observedAttributes", [
2720
+ ...y(Ca, "observedAttributes", Ca),
2714
2721
  g.LANGUAGES,
2715
2722
  g.TEXT_TRACKS
2716
2723
  ]);
2717
2724
  //#endregion
2718
2725
  //#region ../../libs/player-next/src/components/LanguageMenuList.ts
2719
- var Oa = document.createElement("template");
2720
- Oa.innerHTML = `
2726
+ var ka = document.createElement("template");
2727
+ ka.innerHTML = `
2721
2728
  <style>
2722
2729
  :host {
2723
2730
  font: inherit;
2724
2731
  cursor: default;
2725
- padding: var(--padding-2);
2726
- padding-top: var(--padding-3);
2732
+ padding: var(--padding-2) !important;
2733
+ padding-top: var(--padding-3) !important;
2727
2734
  border-radius: 0.25em;
2728
2735
  position: absolute;
2729
- min-width: 140px;
2736
+ min-width: 140px !important;
2730
2737
  background: var(--bg-subtle);
2731
2738
  z-index: 1;
2732
2739
  overflow: auto;
@@ -2831,21 +2838,21 @@ Oa.innerHTML = `
2831
2838
  <div class="menu"></div>
2832
2839
  </div>
2833
2840
  `;
2834
- var ka = /* @__PURE__ */ new WeakMap(), Aa = /* @__PURE__ */ new WeakMap(), ja = /* @__PURE__ */ new WeakMap(), Ma = /* @__PURE__ */ new WeakMap(), Na = /* @__PURE__ */ new WeakMap(), W = /* @__PURE__ */ new WeakMap(), Pa = /* @__PURE__ */ new WeakMap(), Fa = /* @__PURE__ */ new WeakMap(), Ia = /* @__PURE__ */ new WeakMap(), La = /* @__PURE__ */ new WeakMap(), Ra = /* @__PURE__ */ new WeakMap(), za = /* @__PURE__ */ new WeakMap(), G = /* @__PURE__ */ new WeakSet(), Ba = class extends HTMLElement {
2841
+ var Aa = /* @__PURE__ */ new WeakMap(), ja = /* @__PURE__ */ new WeakMap(), Ma = /* @__PURE__ */ new WeakMap(), Na = /* @__PURE__ */ new WeakMap(), Pa = /* @__PURE__ */ new WeakMap(), W = /* @__PURE__ */ new WeakMap(), Fa = /* @__PURE__ */ new WeakMap(), Ia = /* @__PURE__ */ new WeakMap(), La = /* @__PURE__ */ new WeakMap(), Ra = /* @__PURE__ */ new WeakMap(), za = /* @__PURE__ */ new WeakMap(), Ba = /* @__PURE__ */ new WeakMap(), G = /* @__PURE__ */ new WeakSet(), Va = class extends HTMLElement {
2835
2842
  constructor() {
2836
- super(), h(this, G), d(this, ka, []), d(this, Aa, []), d(this, ja, void 0), d(this, Ma, void 0), d(this, Na, []), d(this, W, []), d(this, Pa, null), d(this, Fa, null), d(this, Ia, null), d(this, La, null), d(this, Ra, null), d(this, za, null), e(this, "handleEvent", (e) => {
2843
+ super(), h(this, G), d(this, Aa, []), d(this, ja, []), d(this, Ma, void 0), d(this, Na, void 0), d(this, Pa, []), d(this, W, []), d(this, Fa, null), d(this, Ia, null), d(this, La, null), d(this, Ra, null), d(this, za, null), d(this, Ba, null), e(this, "handleEvent", (e) => {
2837
2844
  switch (e.type) {
2838
2845
  case "keydown":
2839
- f(G, this, Ya).call(this, e);
2846
+ f(G, this, Xa).call(this, e);
2840
2847
  break;
2841
2848
  }
2842
- }), this.attachShadow({ mode: "open" }).appendChild(Oa.content.cloneNode(!0));
2849
+ }), this.attachShadow({ mode: "open" }).appendChild(ka.content.cloneNode(!0));
2843
2850
  }
2844
2851
  connectedCallback() {
2845
2852
  let e = this.getRootNode();
2846
2853
  if (e instanceof ShadowRoot) {
2847
2854
  var t, n, r;
2848
- m(Ia, this, e.host.closest("vindral-controller")), (t = p(Ia, this)) == null || t.connectListener(this), m(Pa, this, (n = this.shadowRoot) == null ? void 0 : n.querySelector("#languages .menu")), m(Fa, this, (r = this.shadowRoot) == null ? void 0 : r.querySelector("#text-tracks .menu")), f(G, this, Va).call(this), f(G, this, Ha).call(this), m(La, this, e.host), this.addEventListener("keydown", this);
2855
+ m(La, this, e.host.closest("vindral-controller")), (t = p(La, this)) == null || t.connectListener(this), m(Fa, this, (n = this.shadowRoot) == null ? void 0 : n.querySelector("#languages .menu")), m(Ia, this, (r = this.shadowRoot) == null ? void 0 : r.querySelector("#text-tracks .menu")), f(G, this, Ha).call(this), f(G, this, Ua).call(this), m(Ra, this, e.host), this.addEventListener("keydown", this);
2849
2856
  }
2850
2857
  }
2851
2858
  disconnectedCallback() {
@@ -2855,16 +2862,16 @@ var ka = /* @__PURE__ */ new WeakMap(), Aa = /* @__PURE__ */ new WeakMap(), ja =
2855
2862
  t !== n && (e === g.LANGUAGES && n && (this.languages = JSON.parse(n)), e === g.TEXT_TRACKS && n && (this.textTracks = JSON.parse(n)), e === g.LANGUAGE && (this.language = n), e === g.TEXT_TRACK && (this.textTrack = n));
2856
2863
  }
2857
2864
  set languages(e) {
2858
- m(ka, this, e), f(G, this, Wa).call(this), f(G, this, Ka).call(this);
2865
+ m(Aa, this, e), f(G, this, Ga).call(this), f(G, this, qa).call(this);
2859
2866
  }
2860
2867
  set textTracks(e) {
2861
- m(Aa, this, e), f(G, this, Ua).call(this), f(G, this, qa).call(this);
2868
+ m(ja, this, e), f(G, this, Wa).call(this), f(G, this, Ja).call(this);
2862
2869
  }
2863
2870
  set language(e) {
2864
- m(ja, this, e), f(G, this, Ka).call(this);
2871
+ m(Ma, this, e), f(G, this, qa).call(this);
2865
2872
  }
2866
2873
  set textTrack(e) {
2867
- m(Ma, this, e), f(G, this, qa).call(this);
2874
+ m(Na, this, e), f(G, this, Ja).call(this);
2868
2875
  }
2869
2876
  get keysUsed() {
2870
2877
  return [
@@ -2881,10 +2888,10 @@ var ka = /* @__PURE__ */ new WeakMap(), Aa = /* @__PURE__ */ new WeakMap(), ja =
2881
2888
  ];
2882
2889
  }
2883
2890
  focus() {
2884
- p(Ra, this) ? p(Ra, this).focus() : p(za, this) && p(za, this).focus();
2891
+ p(za, this) ? p(za, this).focus() : p(Ba, this) && p(Ba, this).focus();
2885
2892
  }
2886
2893
  };
2887
- function Va() {
2894
+ function Ha() {
2888
2895
  new IntersectionObserver((e) => {
2889
2896
  e.forEach((e) => {
2890
2897
  if (e.intersectionRatio !== 1) if (e.intersectionRatio > 0) {
@@ -2893,55 +2900,55 @@ function Va() {
2893
2900
  } else this.style.height = "auto";
2894
2901
  });
2895
2902
  }, {
2896
- root: p(Ia, this),
2903
+ root: p(La, this),
2897
2904
  threshold: 0
2898
2905
  }).observe(this);
2899
2906
  }
2900
- function Ha() {
2901
- p(Pa, this) && (f(G, this, Wa).call(this), f(G, this, Ka).call(this)), p(Fa, this) && (f(G, this, Ua).call(this), f(G, this, qa).call(this));
2902
- }
2903
2907
  function Ua() {
2904
- p(Fa, this).innerHTML = "", m(W, this, []);
2905
- let e = f(G, this, Ga).call(this, "Off", "textTrack", void 0);
2906
- p(Fa, this).appendChild(e), p(W, this).push({
2908
+ p(Fa, this) && (f(G, this, Ga).call(this), f(G, this, qa).call(this)), p(Ia, this) && (f(G, this, Wa).call(this), f(G, this, Ja).call(this));
2909
+ }
2910
+ function Wa() {
2911
+ p(Ia, this).innerHTML = "", m(W, this, []);
2912
+ let e = f(G, this, Ka).call(this, "Off", "textTrack", void 0);
2913
+ p(Ia, this).appendChild(e), p(W, this).push({
2907
2914
  element: e,
2908
2915
  value: void 0
2909
- }), p(Aa, this).forEach((e) => {
2910
- let t = f(G, this, Ga).call(this, e, "textTrack", e);
2911
- p(Fa, this).appendChild(t), p(W, this).push({
2916
+ }), p(ja, this).forEach((e) => {
2917
+ let t = f(G, this, Ka).call(this, e, "textTrack", e);
2918
+ p(Ia, this).appendChild(t), p(W, this).push({
2912
2919
  element: t,
2913
2920
  value: e
2914
2921
  });
2915
- }), f(G, this, qa).call(this);
2922
+ }), f(G, this, Ja).call(this);
2916
2923
  }
2917
- function Wa() {
2918
- p(Pa, this).innerHTML = "", m(Na, this, []), p(ka, this).forEach((e) => {
2919
- let t = f(G, this, Ga).call(this, e, "language", e);
2920
- p(Pa, this).appendChild(t), p(Na, this).push({
2924
+ function Ga() {
2925
+ p(Fa, this).innerHTML = "", m(Pa, this, []), p(Aa, this).forEach((e) => {
2926
+ let t = f(G, this, Ka).call(this, e, "language", e);
2927
+ p(Fa, this).appendChild(t), p(Pa, this).push({
2921
2928
  element: t,
2922
2929
  value: e
2923
2930
  });
2924
- }), f(G, this, Ka).call(this);
2931
+ }), f(G, this, qa).call(this);
2925
2932
  }
2926
- function Ga(e, t, n) {
2933
+ function Ka(e, t, n) {
2927
2934
  let r = document.createElement("div");
2928
- return r.setAttribute("role", "menuitem"), r.textContent = e, r.addEventListener("click", () => f(G, this, Ja).call(this, n, t)), r;
2929
- }
2930
- function Ka() {
2931
- p(Ra, this) && (p(Ra, this).removeAttribute("aria-selected"), p(Ra, this).tabIndex = -1);
2932
- let e = p(Na, this).find((e) => e.value === p(ja, this));
2933
- e && (e.element.setAttribute("aria-selected", "true"), e.element.tabIndex = 0, m(Ra, this, e.element));
2935
+ return r.setAttribute("role", "menuitem"), r.textContent = e, r.addEventListener("click", () => f(G, this, Ya).call(this, n, t)), r;
2934
2936
  }
2935
2937
  function qa() {
2936
2938
  p(za, this) && (p(za, this).removeAttribute("aria-selected"), p(za, this).tabIndex = -1);
2937
- let e = p(W, this).find((e) => e.value === p(Ma, this));
2938
- if (e) e.element.setAttribute("aria-selected", "true"), e.element.tabIndex = 0, m(za, this, e.element);
2939
+ let e = p(Pa, this).find((e) => e.value === p(Ma, this));
2940
+ e && (e.element.setAttribute("aria-selected", "true"), e.element.tabIndex = 0, m(za, this, e.element));
2941
+ }
2942
+ function Ja() {
2943
+ p(Ba, this) && (p(Ba, this).removeAttribute("aria-selected"), p(Ba, this).tabIndex = -1);
2944
+ let e = p(W, this).find((e) => e.value === p(Na, this));
2945
+ if (e) e.element.setAttribute("aria-selected", "true"), e.element.tabIndex = 0, m(Ba, this, e.element);
2939
2946
  else {
2940
2947
  let e = p(W, this).find((e) => e.value === void 0);
2941
- e && (e.element.setAttribute("aria-selected", "true"), e.element.tabIndex = 0, m(za, this, e.element));
2948
+ e && (e.element.setAttribute("aria-selected", "true"), e.element.tabIndex = 0, m(Ba, this, e.element));
2942
2949
  }
2943
2950
  }
2944
- function Ja(e, t) {
2951
+ function Ya(e, t) {
2945
2952
  this.dispatchEvent(new Event("change", {
2946
2953
  bubbles: !0,
2947
2954
  composed: !0
@@ -2953,36 +2960,36 @@ function Ja(e, t) {
2953
2960
  detail: e
2954
2961
  }));
2955
2962
  }
2956
- function Ya(e) {
2963
+ function Xa(e) {
2957
2964
  let { key: t, ctrlKey: n, altKey: r, metaKey: i } = e;
2958
2965
  if (!(n || r || i) && this.keysUsed.includes(t)) if (e.preventDefault(), e.stopPropagation(), t === "Tab" || t === "Escape") {
2959
2966
  var a;
2960
- (a = p(La, this)) == null || a.hide();
2967
+ (a = p(Ra, this)) == null || a.hide();
2961
2968
  } else if (t === "Enter" || t === " ") {
2962
2969
  var o;
2963
- (o = f(G, this, Qa).call(this)) == null || (o = o.element) == null || o.click();
2964
- } else f(G, this, Xa).call(this, e);
2970
+ (o = f(G, this, $a).call(this)) == null || (o = o.element) == null || o.click();
2971
+ } else f(G, this, Za).call(this, e);
2965
2972
  }
2966
- function Xa(e) {
2973
+ function Za(e) {
2967
2974
  var t;
2968
- let { key: n } = e, r = [...p(Na, this), ...p(W, this)], i = (t = f(G, this, Qa).call(this)) == null ? r[0] : t;
2975
+ let { key: n } = e, r = [...p(Pa, this), ...p(W, this)], i = (t = f(G, this, $a).call(this)) == null ? r[0] : t;
2969
2976
  if (!i) return;
2970
2977
  let a = r.indexOf(i), o = Math.max(0, a);
2971
- n === "ArrowDown" ? o++ : n === "ArrowUp" ? o-- : n === "ArrowLeft" ? o = f(G, this, Za).call(this, a, "left") : n === "ArrowRight" ? o = f(G, this, Za).call(this, a, "right") : e.key === "Home" ? o = 0 : e.key === "End" && (o = r.length - 1), o < 0 && (o = r.length - 1), o > r.length - 1 && (o = 0);
2978
+ n === "ArrowDown" ? o++ : n === "ArrowUp" ? o-- : n === "ArrowLeft" ? o = f(G, this, Qa).call(this, a, "left") : n === "ArrowRight" ? o = f(G, this, Qa).call(this, a, "right") : e.key === "Home" ? o = 0 : e.key === "End" && (o = r.length - 1), o < 0 && (o = r.length - 1), o > r.length - 1 && (o = 0);
2972
2979
  let s = r[o];
2973
- s && (f(G, this, $a).call(this, s.value), s.element.focus());
2980
+ s && (f(G, this, eo).call(this, s.value), s.element.focus());
2974
2981
  }
2975
- function Za(e, t) {
2976
- let n = p(Na, this).length, r = p(W, this).length;
2982
+ function Qa(e, t) {
2983
+ let n = p(Pa, this).length, r = p(W, this).length;
2977
2984
  return t === "left" ? e < n ? n + r - 1 : e - n - 1 : e >= n ? 0 : e + n;
2978
2985
  }
2979
- function Qa() {
2980
- return [...p(Na, this), ...p(W, this)].find((e) => e.element.tabIndex === 0);
2986
+ function $a() {
2987
+ return [...p(Pa, this), ...p(W, this)].find((e) => e.element.tabIndex === 0);
2981
2988
  }
2982
- function $a(e) {
2983
- for (let t of [...p(Na, this), ...p(W, this)]) t.element.tabIndex = t.value === e ? 0 : -1;
2989
+ function eo(e) {
2990
+ for (let t of [...p(Pa, this), ...p(W, this)]) t.element.tabIndex = t.value === e ? 0 : -1;
2984
2991
  }
2985
- e(Ba, "observedAttributes", [
2992
+ e(Va, "observedAttributes", [
2986
2993
  g.LANGUAGES,
2987
2994
  g.TEXT_TRACKS,
2988
2995
  g.LANGUAGE,
@@ -2990,12 +2997,12 @@ e(Ba, "observedAttributes", [
2990
2997
  ]);
2991
2998
  //#endregion
2992
2999
  //#region ../../libs/player-next/src/components/LiveButton.ts
2993
- var eo, to = document.createElement("template");
2994
- to.innerHTML = "\n <style>\n :host {\n display: var(--live-button-display, flex);\n color: var(--vindral-fg-strong, #eee);\n border: 1px solid transparent;\n font-size: 12px;\n font-weight: bold;\n cursor: pointer;\n transition: all 0.2s;\n min-width: 50px;\n text-align: center;\n align-items: center;\n justify-content: center;\n }\n\n .live-text {\n display: inline-block;\n vertical-align: middle;\n margin-left: 4px;\n }\n\n slot[name=\"icon\"] svg {\n width: 5px;\n height: 5px;\n flex-shrink: 0;\n }\n\n .live-dot {\n fill: var(--vindral-fg-subtle, #b4b4b4);\n transition: fill 0.2s;\n transform-origin: center;\n }\n\n /* Red pulsing dot when live */\n :host(:not([timeshift-position])) .live-dot {\n fill: #ff0000;\n animation: pulse-dot 2s ease-in-out infinite alternate;\n }\n\n @keyframes pulse-dot {\n 0% {\n opacity: 0.8;\n transform: scale(0.9);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n :host([disabled]) {\n cursor: default;\n opacity: 1;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n </style>\n\n <slot name=\"icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"5\" height=\"5\" viewBox=\"0 0 5 5\" fill=\"currentColor\">\n <circle cx=\"2.5\" cy=\"2.5\" r=\"2.5\" class=\"live-dot\"/>\n </svg>\n</slot>\n <span class=\"live-text\">LIVE</span>\n";
2995
- var no = class extends x {
3000
+ var to, no = document.createElement("template");
3001
+ no.innerHTML = "\n <style>\n :host {\n display: var(--live-button-display, flex);\n color: var(--vindral-fg-strong, #eee);\n border: 1px solid transparent !important;\n font-size: 12px;\n font-weight: bold;\n cursor: pointer;\n transition: all 0.2s;\n min-width: 50px !important;\n text-align: center;\n align-items: center;\n justify-content: center;\n }\n\n .live-text {\n display: inline-block;\n vertical-align: middle;\n margin-left: 4px;\n }\n\n slot[name=\"icon\"] svg {\n width: 5px;\n height: 5px;\n flex-shrink: 0;\n }\n\n .live-dot {\n fill: var(--vindral-fg-subtle, #b4b4b4);\n transition: fill 0.2s;\n transform-origin: center;\n }\n\n /* Red pulsing dot when live */\n :host(:not([timeshift-position])) .live-dot {\n fill: #ff0000;\n animation: pulse-dot 2s ease-in-out infinite alternate;\n }\n\n @keyframes pulse-dot {\n 0% {\n opacity: 0.8;\n transform: scale(0.9);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n :host([disabled]) {\n cursor: default;\n opacity: 1;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n </style>\n\n <slot name=\"icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"5\" height=\"5\" viewBox=\"0 0 5 5\" fill=\"currentColor\">\n <circle cx=\"2.5\" cy=\"2.5\" r=\"2.5\" class=\"live-dot\"/>\n </svg>\n</slot>\n <span class=\"live-text\">LIVE</span>\n";
3002
+ var ro = class extends x {
2996
3003
  constructor() {
2997
3004
  var e;
2998
- super(), (e = this.shadowRoot) == null || e.appendChild(to.content.cloneNode(!0));
3005
+ super(), (e = this.shadowRoot) == null || e.appendChild(no.content.cloneNode(!0));
2999
3006
  }
3000
3007
  connectedCallback() {
3001
3008
  super.connectedCallback(), this.updateState();
@@ -3026,15 +3033,15 @@ var no = class extends x {
3026
3033
  }));
3027
3034
  }
3028
3035
  };
3029
- eo = no, e(no, "observedAttributes", [
3030
- ...y(eo, "observedAttributes", eo),
3036
+ to = ro, e(ro, "observedAttributes", [
3037
+ ...y(to, "observedAttributes", to),
3031
3038
  g.TIMESHIFT_POSITION,
3032
3039
  g.DURATION
3033
3040
  ]);
3034
3041
  //#endregion
3035
3042
  //#region ../../libs/player-next/src/components/MuteButton.ts
3036
- var ro, io = document.createElement("template");
3037
- io.innerHTML = `
3043
+ var io, ao = document.createElement("template");
3044
+ ao.innerHTML = `
3038
3045
  <style>
3039
3046
  :host {
3040
3047
  display: var(--mute-button-display);
@@ -3062,10 +3069,10 @@ io.innerHTML = `
3062
3069
  </slot>
3063
3070
  </slot>
3064
3071
  `;
3065
- var ao = class extends x {
3072
+ var oo = class extends x {
3066
3073
  constructor() {
3067
3074
  var e;
3068
- super(), (e = this.shadowRoot) == null || e.appendChild(io.content.cloneNode(!0));
3075
+ super(), (e = this.shadowRoot) == null || e.appendChild(ao.content.cloneNode(!0));
3069
3076
  }
3070
3077
  connectedCallback() {
3071
3078
  super.connectedCallback(), this.setAttribute("aria-label", this.muted ? "UnMute" : "Mute");
@@ -3090,11 +3097,11 @@ var ao = class extends x {
3090
3097
  }));
3091
3098
  }
3092
3099
  };
3093
- ro = ao, e(ao, "observedAttributes", [...y(ro, "observedAttributes", ro), g.MUTED]);
3100
+ io = oo, e(oo, "observedAttributes", [...y(io, "observedAttributes", io), g.MUTED]);
3094
3101
  //#endregion
3095
3102
  //#region ../../libs/player-next/src/components/PictureInPictureButton.ts
3096
- var oo, so = document.createElement("template");
3097
- so.innerHTML = `
3103
+ var so, co = document.createElement("template");
3104
+ co.innerHTML = `
3098
3105
  <style>
3099
3106
  :host {
3100
3107
  display: var(--pip-button-display);
@@ -3108,10 +3115,10 @@ so.innerHTML = `
3108
3115
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M19 4a3 3 0 0 1 3 3v4a1 1 0 0 1 -2 0v-4a1 1 0 0 0 -1 -1h-14a1 1 0 0 0 -1 1v10a1 1 0 0 0 1 1h6a1 1 0 0 1 0 2h-6a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3z" /><path d="M20 13a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-5a2 2 0 0 1 -2 -2v-3a2 2 0 0 1 2 -2z" /></svg>
3109
3116
  </slot>
3110
3117
  `;
3111
- var co = class extends x {
3118
+ var lo = class extends x {
3112
3119
  constructor() {
3113
3120
  var e;
3114
- super(), (e = this.shadowRoot) == null || e.appendChild(so.content.cloneNode(!0));
3121
+ super(), (e = this.shadowRoot) == null || e.appendChild(co.content.cloneNode(!0));
3115
3122
  }
3116
3123
  connectedCallback() {
3117
3124
  super.connectedCallback(), this.setAttribute("aria-label", this.isPictureInPictureActive ? "Exit picture in picture" : "Enter picture in picture");
@@ -3136,15 +3143,15 @@ var co = class extends x {
3136
3143
  }));
3137
3144
  }
3138
3145
  };
3139
- oo = co, e(co, "observedAttributes", [
3140
- ...y(oo, "observedAttributes", oo),
3146
+ so = lo, e(lo, "observedAttributes", [
3147
+ ...y(so, "observedAttributes", so),
3141
3148
  g.IS_PIP,
3142
3149
  g.PIP_AVAILABLE
3143
3150
  ]);
3144
3151
  //#endregion
3145
3152
  //#region ../../libs/player-next/src/components/PlayButton.ts
3146
- var lo, uo = document.createElement("template");
3147
- uo.innerHTML = `
3153
+ var uo, fo = document.createElement("template");
3154
+ fo.innerHTML = `
3148
3155
  <style>
3149
3156
  :host {
3150
3157
  display: var(--play-button-display);
@@ -3168,10 +3175,10 @@ uo.innerHTML = `
3168
3175
  </slot>
3169
3176
  </slot>
3170
3177
  `;
3171
- var fo = class extends x {
3178
+ var po = class extends x {
3172
3179
  constructor() {
3173
3180
  var e;
3174
- super(), (e = this.shadowRoot) == null || e.appendChild(uo.content.cloneNode(!0));
3181
+ super(), (e = this.shadowRoot) == null || e.appendChild(fo.content.cloneNode(!0));
3175
3182
  }
3176
3183
  connectedCallback() {
3177
3184
  super.connectedCallback(), this.setAttribute("aria-label", this.paused ? "Play" : "Pause");
@@ -3196,7 +3203,7 @@ var fo = class extends x {
3196
3203
  }));
3197
3204
  }
3198
3205
  };
3199
- lo = fo, e(fo, "observedAttributes", [...y(lo, "observedAttributes", lo), g.PAUSED]);
3206
+ uo = po, e(po, "observedAttributes", [...y(uo, "observedAttributes", uo), g.PAUSED]);
3200
3207
  //#endregion
3201
3208
  //#region ../../libs/player-next/src/PlayerAttributes.ts
3202
3209
  var K = {
@@ -3205,55 +3212,55 @@ var K = {
3205
3212
  ADVANCED_RENDITION_MENU_ENABLED: "advanced-rendition-menu-enabled",
3206
3213
  REFRESH_POSTER_ENABLED: "refresh-poster-enabled",
3207
3214
  STREAM_POLL_ENABLED: "stream-poll-enabled"
3208
- }, po = Object.values(K), mo = /* @__PURE__ */ new WeakMap(), ho = /* @__PURE__ */ new WeakMap(), go = /* @__PURE__ */ new WeakMap(), _o = /* @__PURE__ */ new WeakMap(), vo = /* @__PURE__ */ new WeakMap(), yo = /* @__PURE__ */ new WeakMap(), bo = /* @__PURE__ */ new WeakMap(), xo = /* @__PURE__ */ new WeakSet(), So = class extends fe {
3215
+ }, mo = Object.values(K), ho = /* @__PURE__ */ new WeakMap(), go = /* @__PURE__ */ new WeakMap(), _o = /* @__PURE__ */ new WeakMap(), vo = /* @__PURE__ */ new WeakMap(), yo = /* @__PURE__ */ new WeakMap(), bo = /* @__PURE__ */ new WeakMap(), xo = /* @__PURE__ */ new WeakMap(), So = /* @__PURE__ */ new WeakSet(), Co = class extends fe {
3209
3216
  constructor(e) {
3210
- super(), h(this, xo), d(this, mo, void 0), d(this, ho, void 0), d(this, go, !1), d(this, _o, !1), d(this, vo, !0), d(this, yo, null), d(this, bo, null), m(ho, this, e), m(mo, this, new de({
3217
+ super(), h(this, So), d(this, ho, void 0), d(this, go, void 0), d(this, _o, !1), d(this, vo, !1), d(this, yo, !0), d(this, bo, null), d(this, xo, null), m(go, this, e), m(ho, this, new de({
3211
3218
  publicEndpoint: e.url,
3212
3219
  tokenFactory: () => e.authenticationToken
3213
3220
  }));
3214
3221
  }
3215
3222
  start(e = 5e3) {
3216
- p(bo, this) && clearInterval(p(bo, this)), m(go, this, !1), m(_o, this, !1), f(xo, this, Eo).call(this), f(xo, this, Co).call(this), m(bo, this, window.setInterval(() => {
3217
- !p(_o, this) && !p(ho, this).infiniteReconnect && !p(yo, this) && p(vo, this) && m(yo, this, window.setTimeout(() => f(xo, this, wo).call(this), 300 * 1e3)), !p(_o, this) && p(vo, this) && f(xo, this, Co).call(this);
3223
+ p(xo, this) && clearInterval(p(xo, this)), m(_o, this, !1), m(vo, this, !1), f(So, this, Do).call(this), f(So, this, wo).call(this), m(xo, this, window.setInterval(() => {
3224
+ !p(vo, this) && !p(go, this).infiniteReconnect && !p(bo, this) && p(yo, this) && m(bo, this, window.setTimeout(() => f(So, this, To).call(this), 300 * 1e3)), !p(vo, this) && p(yo, this) && f(So, this, wo).call(this);
3218
3225
  }, e));
3219
3226
  }
3220
3227
  stop() {
3221
- f(xo, this, To).call(this), p(bo, this) && (window.clearInterval(p(bo, this)), m(bo, this, null));
3228
+ f(So, this, Eo).call(this), p(xo, this) && (window.clearInterval(p(xo, this)), m(xo, this, null));
3222
3229
  }
3223
3230
  };
3224
- function Co() {
3231
+ function wo() {
3225
3232
  var e = this;
3226
3233
  return t(function* () {
3227
- if (p(go, e)) return;
3228
- m(go, e, !0);
3234
+ if (p(_o, e)) return;
3235
+ m(_o, e, !0);
3229
3236
  let t = "Stream is offline", n = "Please stand by";
3230
3237
  try {
3231
- let t = yield p(mo, e).getChannel(p(ho, e).channelId);
3238
+ let t = yield p(ho, e).getChannel(p(go, e).channelId);
3232
3239
  if (t.isLive) {
3233
- m(_o, e, !0), f(xo, e, Eo).call(e), e.emit("live", t), m(go, e, !1);
3240
+ m(vo, e, !0), f(So, e, Do).call(e), e.emit("live", t), m(_o, e, !1);
3234
3241
  return;
3235
3242
  }
3236
3243
  } catch (e) {
3237
3244
  ue(e) && (e.status === 403 || e.status === 401) && (t = "Forbidden", n = "You do not have permission to view this stream");
3238
3245
  }
3239
- p(vo, e) && e.emit("error", {
3246
+ p(yo, e) && e.emit("error", {
3240
3247
  title: t,
3241
3248
  message: n
3242
- }), m(go, e, !1);
3249
+ }), m(_o, e, !1);
3243
3250
  })();
3244
3251
  }
3245
- function wo() {
3246
- this.stop(), m(vo, this, !1), this.emit("timeout");
3247
- }
3248
3252
  function To() {
3249
- p(yo, this) && (window.clearTimeout(p(yo, this)), m(yo, this, null));
3253
+ this.stop(), m(yo, this, !1), this.emit("timeout");
3250
3254
  }
3251
3255
  function Eo() {
3252
- f(xo, this, To).call(this), m(vo, this, !0);
3256
+ p(bo, this) && (window.clearTimeout(p(bo, this)), m(bo, this, null));
3257
+ }
3258
+ function Do() {
3259
+ f(So, this, Eo).call(this), m(yo, this, !0);
3253
3260
  }
3254
3261
  //#endregion
3255
3262
  //#region ../../libs/player-next/src/utils/browser.ts
3256
- var Do = /\/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune\//i, Oo = navigator.userAgent.toLowerCase(), ko = Do.test(Oo), Ao = (e) => Mi.observedAttributes.includes(e), jo = `
3263
+ var Oo = /\/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune\//i, ko = navigator.userAgent.toLowerCase(), Ao = Oo.test(ko), jo = (e) => Mi.observedAttributes.includes(e), Mo = `
3257
3264
  <style>
3258
3265
  :host {
3259
3266
  container-type: inline-size;
@@ -3263,7 +3270,7 @@ var Do = /\/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Si
3263
3270
  display: flex;
3264
3271
  justify-content: center;
3265
3272
 
3266
- --vindral-volume-range-display: ${ko ? "none" : "flex"};
3273
+ --vindral-volume-range-display: ${Ao ? "none" : "flex"};
3267
3274
  --vindral-airplay-button-display: none;
3268
3275
  --vindral-play-overlay-display: none;
3269
3276
  --vindral-grid-item-offline-display: none;
@@ -3344,10 +3351,10 @@ var Do = /\/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Si
3344
3351
  --vindral-subtitle-offset: -48px;
3345
3352
  }
3346
3353
  </style>
3347
- `, Mo = (e) => {
3354
+ `, No = (e) => {
3348
3355
  let t = e ? "vindral-advanced-rendition-menu" : "vindral-rendition-levels-menu";
3349
3356
  return `
3350
- ${jo}
3357
+ ${Mo}
3351
3358
 
3352
3359
  <vindral-controller>
3353
3360
  <vindral-control-bar slot="top-bar">
@@ -3379,12 +3386,14 @@ var Do = /\/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Si
3379
3386
  <vindral-user-input-play-overlay slot="overlay"></vindral-user-input-play-overlay>
3380
3387
  <vindral-poster-overlay slot="overlay" disabled></vindral-poster-overlay>
3381
3388
 
3382
- <vindral-play-overlay id="play-overlay" slot="overlay" hidden></vindral-play-overlay>
3383
- <vindral-message id="vindral-message" slot="overlay" hidden></vindral-message>
3389
+ <vindral-center-overlay id="center-overlay" slot="overlay">
3390
+ <vindral-message id="vindral-message" hidden></vindral-message>
3391
+ <vindral-play-overlay id="play-overlay" hidden></vindral-play-overlay>
3392
+ </vindral-center-overlay>
3384
3393
  </vindral-controller>
3385
3394
  `;
3386
- }, No = `
3387
- ${jo}
3395
+ }, Po = `
3396
+ ${Mo}
3388
3397
 
3389
3398
  <style>
3390
3399
  #control-bar {
@@ -3403,55 +3412,57 @@ var Do = /\/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Si
3403
3412
  <vindral-buffering-icon></vindral-buffering-icon>
3404
3413
  </div>
3405
3414
 
3406
- <vindral-play-overlay id="play-overlay" slot="overlay" hidden></vindral-play-overlay>
3407
- <vindral-message id="vindral-message" slot="overlay" hidden></vindral-message>
3415
+ <vindral-center-overlay id="center-overlay" slot="overlay" disable-backdrop>
3416
+ <vindral-message id="vindral-message" hidden></vindral-message>
3417
+ <vindral-play-overlay id="play-overlay" hidden></vindral-play-overlay>
3418
+ </vindral-center-overlay>
3408
3419
  </vindral-controller>
3409
- `, Po = document.createElement("template"), Fo = /* @__PURE__ */ new WeakMap(), q = /* @__PURE__ */ new WeakMap(), J = /* @__PURE__ */ new WeakMap(), Io = /* @__PURE__ */ new WeakMap(), Lo = /* @__PURE__ */ new WeakMap(), Ro = /* @__PURE__ */ new WeakMap(), zo = /* @__PURE__ */ new WeakMap(), Bo = /* @__PURE__ */ new WeakMap(), Y = /* @__PURE__ */ new WeakSet(), Vo = /* @__PURE__ */ new WeakMap(), Ho = /* @__PURE__ */ new WeakMap(), Uo = /* @__PURE__ */ new WeakMap(), Wo = class extends HTMLElement {
3420
+ `, Fo = document.createElement("template"), Io = /* @__PURE__ */ new WeakMap(), q = /* @__PURE__ */ new WeakMap(), Lo = /* @__PURE__ */ new WeakMap(), Ro = /* @__PURE__ */ new WeakMap(), zo = /* @__PURE__ */ new WeakMap(), Bo = /* @__PURE__ */ new WeakMap(), Vo = /* @__PURE__ */ new WeakMap(), Ho = /* @__PURE__ */ new WeakMap(), Uo = /* @__PURE__ */ new WeakMap(), J = /* @__PURE__ */ new WeakSet(), Wo = /* @__PURE__ */ new WeakMap(), Go = /* @__PURE__ */ new WeakMap(), Ko = /* @__PURE__ */ new WeakMap(), qo = class extends HTMLElement {
3410
3421
  constructor() {
3411
- super(), h(this, Y), d(this, Fo, void 0), d(this, q, void 0), d(this, J, void 0), d(this, Io, void 0), d(this, Lo, void 0), d(this, Ro, /* @__PURE__ */ new Set()), d(this, zo, () => {
3422
+ super(), h(this, J), d(this, Io, void 0), d(this, q, void 0), d(this, Lo, void 0), d(this, Ro, void 0), d(this, zo, void 0), d(this, Bo, void 0), d(this, Vo, /* @__PURE__ */ new Set()), d(this, Ho, () => {
3412
3423
  Array.from(this.attributes).forEach((e) => {
3413
- p(Bo, this).call(this, e.name, e.value);
3424
+ p(Uo, this).call(this, e.name, e.value);
3414
3425
  });
3415
- }), d(this, Bo, (e, t) => {
3416
- Ao(e) && (v(t) ? p(q, this).setAttribute(e, t) : p(q, this).removeAttribute(e));
3417
- }), d(this, Vo, () => {
3426
+ }), d(this, Uo, (e, t) => {
3427
+ jo(e) && (v(t) ? p(q, this).setAttribute(e, t) : p(q, this).removeAttribute(e));
3428
+ }), d(this, Wo, () => {
3418
3429
  Array.from(this.children).forEach((e) => {
3419
- p(Ro, this).add(e);
3430
+ p(Vo, this).add(e);
3420
3431
  });
3421
- }), d(this, Ho, () => {
3432
+ }), d(this, Go, () => {
3422
3433
  let e = p(q, this).instance;
3423
3434
  e && (e.on("is live", (e) => {
3424
- e ? (this.removeAttribute(K.OFFLINE), p(J, this).setAttribute("hidden", "")) : (this.setAttribute(K.OFFLINE, ""), p(J, this).removeAttribute("hidden"), f(Y, this, Yo).call(this, "Stream is offline", "Please stand by"));
3435
+ e ? (this.removeAttribute(K.OFFLINE), f(J, this, $o).call(this)) : (this.setAttribute(K.OFFLINE, ""), f(J, this, Qo).call(this, "Stream is offline", "Please stand by"));
3425
3436
  }), e.on("channels", (e) => {
3426
3437
  let t = p(q, this).getAttribute("channel-id"), n = e.find((e) => e.channelId === t);
3427
- n && f(Y, this, Jo).call(this, n);
3438
+ n && f(J, this, Zo).call(this, n);
3428
3439
  }), e.on("channel switch", ({ channelId: t }) => {
3429
3440
  let n = e.channels.find((e) => e.channelId === t);
3430
- n && f(Y, this, Jo).call(this, n);
3441
+ n && f(J, this, Zo).call(this, n);
3431
3442
  }), e.on("error", (e) => {
3432
3443
  if (e.code() === "connection_failed") {
3433
- f(Y, this, Yo).call(this, "Stream is offline", "Please stand by");
3444
+ f(J, this, Qo).call(this, "Stream is offline", "Please stand by");
3434
3445
  return;
3435
3446
  }
3436
- e.isFatal() && (e.code() === "access_forbidden" ? f(Y, this, Yo).call(this, "Forbidden", "You do not have permission to view this stream") : e.code() === "connection_failed_will_not_attempt_again" ? f(Y, this, Yo).call(this, "Stream is offline", "Please stand by") : f(Y, this, Yo).call(this, "An error occurred", e.message), p(Io, this).removeAttribute("hidden"), this.setAttribute(K.OFFLINE, ""), p(q, this).dispatchEvent(new CustomEvent(_.EXIT_FULLSCREEN)), p(q, this).dispatchEvent(new CustomEvent(_.EXIT_PIP)));
3447
+ e.isFatal() && (e.code() === "access_forbidden" ? f(J, this, Qo).call(this, "Forbidden", "You do not have permission to view this stream") : e.code() === "connection_failed_will_not_attempt_again" ? f(J, this, Qo).call(this, "Stream is offline", "Please stand by") : f(J, this, Qo).call(this, "An error occurred", e.message), p(Ro, this).removeAttribute("hidden"), this.setAttribute(K.OFFLINE, ""), p(q, this).dispatchEvent(new CustomEvent(_.EXIT_FULLSCREEN)), p(q, this).dispatchEvent(new CustomEvent(_.EXIT_PIP)));
3437
3448
  }));
3438
- }), d(this, Uo, () => {
3439
- p(q, this).connect(), p(Io, this).setAttribute("hidden", ""), p(J, this).setAttribute("hidden", ""), p(q, this).focus();
3440
- }), m(Fo, this, this.attachShadow({ mode: "open" })), f(Y, this, Ko).call(this), m(q, this, p(Fo, this).querySelector("vindral-controller")), m(J, this, p(Fo, this).querySelector("#vindral-message")), m(Io, this, p(Fo, this).querySelector("#play-overlay"));
3449
+ }), d(this, Ko, () => {
3450
+ p(q, this).connect(), p(Ro, this).setAttribute("hidden", ""), f(J, this, $o).call(this), p(q, this).focus();
3451
+ }), m(Io, this, this.attachShadow({ mode: "open" })), f(J, this, Yo).call(this), m(q, this, p(Io, this).querySelector("vindral-controller")), m(Lo, this, p(Io, this).querySelector("#vindral-message")), m(Ro, this, p(Io, this).querySelector("#play-overlay")), m(zo, this, p(Io, this).querySelector("#center-overlay"));
3441
3452
  }
3442
3453
  connectedCallback() {
3443
- this.setAttribute(K.OFFLINE, ""), p(q, this).addEventListener("vindral-instance-ready", p(Ho, this)), f(Y, this, qo).call(this);
3454
+ this.setAttribute(K.OFFLINE, ""), p(q, this).addEventListener("vindral-instance-ready", p(Go, this)), f(J, this, Xo).call(this);
3444
3455
  }
3445
3456
  disconnectedCallback() {
3446
3457
  var e;
3447
- p(q, this).removeEventListener("vindral-instance-ready", p(Ho, this)), p(Io, this).removeEventListener("click", p(Uo, this)), (e = p(Lo, this)) == null || e.stop();
3458
+ p(q, this).removeEventListener("vindral-instance-ready", p(Go, this)), p(Ro, this).removeEventListener("click", p(Ko, this)), (e = p(Bo, this)) == null || e.stop();
3448
3459
  }
3449
3460
  attributeChangedCallback(e, t, n) {
3450
- if (t !== n) if (e === g.MEDIA || e === K.ADVANCED_RENDITION_MENU_ENABLED) f(Y, this, Ko).call(this);
3461
+ if (t !== n) if (e === g.MEDIA || e === K.ADVANCED_RENDITION_MENU_ENABLED) f(J, this, Yo).call(this);
3451
3462
  else if (e === K.REFRESH_POSTER_ENABLED) {
3452
- let e = p(Fo, this).querySelector("vindral-poster-overlay");
3463
+ let e = p(Io, this).querySelector("vindral-poster-overlay");
3453
3464
  e && (e.disabled = b(this.getAttribute(K.REFRESH_POSTER_ENABLED), !1) === !1);
3454
- } else p(Bo, this).call(this, e, n);
3465
+ } else p(Uo, this).call(this, e, n);
3455
3466
  }
3456
3467
  get instance() {
3457
3468
  return p(q, this).instance;
@@ -3460,40 +3471,40 @@ var Do = /\/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Si
3460
3471
  return p(q, this).airPlay;
3461
3472
  }
3462
3473
  };
3463
- function Go() {
3474
+ function Jo() {
3464
3475
  let e = ge(this.getAttribute(g.MEDIA)), t = b(this.getAttribute(K.ADVANCED_RENDITION_MENU_ENABLED), !1);
3465
- return e === "audio" ? No : Mo(t);
3476
+ return e === "audio" ? Po : No(t);
3466
3477
  }
3467
- function Ko() {
3468
- let e = p(Fo, this).hasChildNodes(), t = e ? p(q, this) : void 0, n = e ? p(Io, this) : void 0;
3469
- this.isConnected && t && t.removeEventListener("vindral-instance-ready", p(Ho, this)), this.isConnected && n && p(Lo, this) && n.removeEventListener("click", p(Uo, this)), Po.innerHTML = f(Y, this, Go).call(this);
3470
- let r = Po.content.cloneNode(!0);
3471
- m(q, this, r.querySelector("vindral-controller")), m(J, this, r.querySelector("#vindral-message")), m(Io, this, r.querySelector("#play-overlay")), p(Vo, this).call(this), p(Ro, this).forEach((e) => {
3478
+ function Yo() {
3479
+ let e = p(Io, this).hasChildNodes(), t = e ? p(q, this) : void 0, n = e ? p(Ro, this) : void 0;
3480
+ this.isConnected && t && t.removeEventListener("vindral-instance-ready", p(Go, this)), this.isConnected && n && p(Bo, this) && n.removeEventListener("click", p(Ko, this)), Fo.innerHTML = f(J, this, Jo).call(this);
3481
+ let r = Fo.content.cloneNode(!0);
3482
+ m(q, this, r.querySelector("vindral-controller")), m(Lo, this, r.querySelector("#vindral-message")), m(Ro, this, r.querySelector("#play-overlay")), m(zo, this, r.querySelector("#center-overlay")), p(Wo, this).call(this), p(Vo, this).forEach((e) => {
3472
3483
  p(q, this).appendChild(e);
3473
- }), p(zo, this).call(this), p(Fo, this).innerHTML = "", p(Fo, this).appendChild(r), this.isConnected && (p(q, this).addEventListener("vindral-instance-ready", p(Ho, this)), p(Lo, this) && p(Io, this).addEventListener("click", p(Uo, this)));
3484
+ }), p(Ho, this).call(this), p(Io, this).innerHTML = "", p(Io, this).appendChild(r), this.isConnected && (p(q, this).addEventListener("vindral-instance-ready", p(Go, this)), p(Bo, this) && p(Ro, this).addEventListener("click", p(Ko, this)));
3474
3485
  }
3475
- function qo() {
3486
+ function Xo() {
3476
3487
  var e;
3477
3488
  if (b(this.getAttribute(K.STREAM_POLL_ENABLED), !0) === !1) return;
3478
3489
  let t = this.getAttribute("url"), n = this.getAttribute("channel-id"), r = (e = this.getAttribute("authentication-token")) == null ? void 0 : e, i = this.hasAttribute("infinite-reconnect");
3479
3490
  if (!t || !n) {
3480
- this.setAttribute(K.OFFLINE, ""), f(Y, this, Yo).call(this, "Invalid options", "Please enter at least a channel id and url to start the stream");
3491
+ this.setAttribute(K.OFFLINE, ""), f(J, this, Qo).call(this, "Invalid options", "Please enter at least a channel id and url to start the stream");
3481
3492
  return;
3482
3493
  }
3483
- m(Lo, this, new So({
3494
+ m(Bo, this, new Co({
3484
3495
  url: t,
3485
3496
  channelId: n,
3486
3497
  authenticationToken: r,
3487
3498
  infiniteReconnect: i
3488
- })), p(Lo, this).on("live", (e) => {
3489
- p(q, this).connect(), this.removeAttribute("offline"), p(J, this).setAttribute("hidden", ""), f(Y, this, Jo).call(this, e);
3490
- }), p(Lo, this).on("timeout", () => {
3491
- p(J, this).setAttribute("hidden", ""), p(Io, this).removeAttribute("hidden");
3492
- }), p(Lo, this).on("error", (e) => {
3493
- this.setAttribute(K.OFFLINE, ""), f(Y, this, Yo).call(this, e.title, e.message);
3494
- }), p(Io, this).addEventListener("click", p(Uo, this)), this.hasAttribute("paused") && p(Lo, this).start();
3495
- }
3496
- function Jo(e) {
3499
+ })), p(Bo, this).on("live", (e) => {
3500
+ p(q, this).connect(), this.removeAttribute("offline"), f(J, this, $o).call(this), f(J, this, Zo).call(this, e);
3501
+ }), p(Bo, this).on("timeout", () => {
3502
+ f(J, this, $o).call(this), p(Ro, this).removeAttribute("hidden");
3503
+ }), p(Bo, this).on("error", (e) => {
3504
+ this.setAttribute(K.OFFLINE, ""), f(J, this, Qo).call(this, e.title, e.message);
3505
+ }), p(Ro, this).addEventListener("click", p(Ko, this)), this.hasAttribute("paused") && p(Bo, this).start();
3506
+ }
3507
+ function Zo(e) {
3497
3508
  let t = xe(this.getAttribute("title"), !1);
3498
3509
  if (!t) return;
3499
3510
  let n = this.getAttribute("poster"), r = typeof t == "string" ? t : e.name, i;
@@ -3507,16 +3518,19 @@ function Jo(e) {
3507
3518
  poster: i
3508
3519
  });
3509
3520
  }
3510
- function Yo(e, t) {
3511
- p(J, this).setAttribute("title", e), p(J, this).setAttribute("description", t);
3521
+ function Qo(e, t) {
3522
+ p(Lo, this).setAttribute("title", e), p(Lo, this).setAttribute("description", t), p(Lo, this).removeAttribute("hidden");
3512
3523
  let n = this.getAttribute("poster");
3513
- n && p(J, this).setAttribute("background-image", n), p(J, this).removeAttribute("hidden");
3524
+ n ? p(zo, this).setAttribute("poster", n) : p(zo, this).removeAttribute("poster"), p(zo, this).setAttribute("backdrop", "");
3525
+ }
3526
+ function $o() {
3527
+ p(Lo, this).setAttribute("hidden", ""), p(zo, this).removeAttribute("backdrop");
3514
3528
  }
3515
- e(Wo, "observedAttributes", [...Mi.observedAttributes, ...po]);
3529
+ e(qo, "observedAttributes", [...Mi.observedAttributes, ...mo]);
3516
3530
  //#endregion
3517
3531
  //#region ../../libs/player-next/src/components/PosterOverlay.ts
3518
- var Xo = document.createElement("template");
3519
- Xo.innerHTML = `
3532
+ var es = document.createElement("template");
3533
+ es.innerHTML = `
3520
3534
  <style>
3521
3535
  :host {
3522
3536
  display: var(--poster-overlay-display);
@@ -3525,8 +3539,8 @@ Xo.innerHTML = `
3525
3539
  left: 0;
3526
3540
  max-width: 100%;
3527
3541
  max-height: 100%;
3528
- min-width: 100%;
3529
- min-height: 100%;
3542
+ min-width: 100% !important;
3543
+ min-height: 100% !important;
3530
3544
  background-repeat: no-repeat;
3531
3545
  background-position: 50% 50%;
3532
3546
  background-size: contain;
@@ -3551,26 +3565,26 @@ Xo.innerHTML = `
3551
3565
  }
3552
3566
  </style>
3553
3567
  `;
3554
- var Zo = 6e3, Qo = /* @__PURE__ */ new WeakMap(), $o = /* @__PURE__ */ new WeakMap(), es = /* @__PURE__ */ new WeakMap(), ts = /* @__PURE__ */ new WeakMap(), ns = /* @__PURE__ */ new WeakSet(), rs = /* @__PURE__ */ new WeakMap(), is = class extends HTMLElement {
3568
+ var ts = 6e3, ns = /* @__PURE__ */ new WeakMap(), rs = /* @__PURE__ */ new WeakMap(), is = /* @__PURE__ */ new WeakMap(), as = /* @__PURE__ */ new WeakMap(), os = /* @__PURE__ */ new WeakSet(), ss = /* @__PURE__ */ new WeakMap(), cs = class extends HTMLElement {
3555
3569
  constructor() {
3556
- super(), h(this, ns), d(this, Qo, null), d(this, $o, null), d(this, es, null), d(this, ts, () => {
3557
- !document.hidden && this.hasAttribute("intersecting") && this.paused && !this.disabled ? f(ns, this, as).call(this) : f(ns, this, os).call(this);
3558
- }), d(this, rs, (e) => {
3570
+ super(), h(this, os), d(this, ns, null), d(this, rs, null), d(this, is, null), d(this, as, () => {
3571
+ !document.hidden && this.hasAttribute("intersecting") && this.paused && !this.disabled ? f(os, this, ls).call(this) : f(os, this, us).call(this);
3572
+ }), d(this, ss, (e) => {
3559
3573
  e.forEach((e) => {
3560
3574
  e.isIntersecting ? this.setAttribute("intersecting", "") : this.removeAttribute("intersecting");
3561
3575
  });
3562
- }), this.attachShadow({ mode: "open" }).appendChild(Xo.content.cloneNode(!0));
3576
+ }), this.attachShadow({ mode: "open" }).appendChild(es.content.cloneNode(!0));
3563
3577
  }
3564
3578
  connectedCallback() {
3565
3579
  var e;
3566
- m(Qo, this, this.closest("vindral-controller")), (e = p(Qo, this)) == null || e.connectListener(this), document.addEventListener("visibilitychange", p(ts, this)), m(es, this, new IntersectionObserver(p(rs, this))), p(es, this).observe(this);
3580
+ m(ns, this, this.closest("vindral-controller")), (e = p(ns, this)) == null || e.connectListener(this), document.addEventListener("visibilitychange", p(as, this)), m(is, this, new IntersectionObserver(p(ss, this))), p(is, this).observe(this);
3567
3581
  }
3568
3582
  disconnectedCallback() {
3569
3583
  var e, t;
3570
- (e = p(Qo, this)) == null || e.disconnectListener(this), document.removeEventListener("visibilitychange", p(ts, this)), (t = p(es, this)) == null || t.disconnect(), m(es, this, null), f(ns, this, os).call(this);
3584
+ (e = p(ns, this)) == null || e.disconnectListener(this), document.removeEventListener("visibilitychange", p(as, this)), (t = p(is, this)) == null || t.disconnect(), m(is, this, null), f(os, this, us).call(this);
3571
3585
  }
3572
3586
  attributeChangedCallback(e, t, n) {
3573
- t !== n && (e === g.POSTER_SRC && this.paused && !this.disabled && f(ns, this, ss).call(this), (e === g.PAUSED || e === "disabled" || e === "intersecting") && p(ts, this).call(this));
3587
+ t !== n && (e === g.POSTER_SRC && this.paused && !this.disabled && f(os, this, ds).call(this), (e === g.PAUSED || e === "disabled" || e === "intersecting") && p(as, this).call(this));
3574
3588
  }
3575
3589
  get disabled() {
3576
3590
  return this.hasAttribute("disabled");
@@ -3585,18 +3599,18 @@ var Zo = 6e3, Qo = /* @__PURE__ */ new WeakMap(), $o = /* @__PURE__ */ new WeakM
3585
3599
  return this.hasAttribute(g.PAUSED);
3586
3600
  }
3587
3601
  };
3588
- function as() {
3589
- p($o, this) === null && (f(ns, this, os).call(this), m($o, this, window.setInterval(() => f(ns, this, ss).call(this), Zo)));
3602
+ function ls() {
3603
+ p(rs, this) === null && (f(os, this, us).call(this), m(rs, this, window.setInterval(() => f(os, this, ds).call(this), ts)));
3590
3604
  }
3591
- function os() {
3592
- p($o, this) !== null && (clearInterval(p($o, this)), m($o, this, null)), this.style.backgroundImage = "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==')";
3605
+ function us() {
3606
+ p(rs, this) !== null && (clearInterval(p(rs, this)), m(rs, this, null)), this.style.backgroundImage = "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==')";
3593
3607
  }
3594
- function ss() {
3608
+ function ds() {
3595
3609
  if (!this.posterSrc) return;
3596
3610
  let e = new URL(this.posterSrc), t = new Image();
3597
3611
  e.searchParams.set("t", Date.now().toString()), t.src = e.toString(), t.onload = () => this.style.backgroundImage = `url(${e.toString()})`;
3598
3612
  }
3599
- e(is, "observedAttributes", [
3613
+ e(cs, "observedAttributes", [
3600
3614
  g.POSTER_SRC,
3601
3615
  g.PAUSED,
3602
3616
  "disabled",
@@ -3604,70 +3618,70 @@ e(is, "observedAttributes", [
3604
3618
  ]);
3605
3619
  //#endregion
3606
3620
  //#region ../../libs/player-next/src/components/RenditionLevelsMenu.ts
3607
- var cs, ls = "\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler icon-tabler-settings-filled\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"#2c3e50\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M14.647 4.081a.724 .724 0 0 0 1.08 .448c2.439 -1.485 5.23 1.305 3.745 3.744a.724 .724 0 0 0 .447 1.08c2.775 .673 2.775 4.62 0 5.294a.724 .724 0 0 0 -.448 1.08c1.485 2.439 -1.305 5.23 -3.744 3.745a.724 .724 0 0 0 -1.08 .447c-.673 2.775 -4.62 2.775 -5.294 0a.724 .724 0 0 0 -1.08 -.448c-2.439 1.485 -5.23 -1.305 -3.745 -3.744a.724 .724 0 0 0 -.447 -1.08c-2.775 -.673 -2.775 -4.62 0 -5.294a.724 .724 0 0 0 .448 -1.08c-1.485 -2.439 1.305 -5.23 3.744 -3.745a.722 .722 0 0 0 1.08 -.447c.673 -2.775 4.62 -2.775 5.294 0zm-2.647 4.919a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z\" stroke-width=\"0\" fill=\"currentColor\" />\n</svg>\n", us = document.createElement("template");
3608
- us.innerHTML = `
3621
+ var fs, ps = "\n<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler icon-tabler-settings-filled\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"#2c3e50\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M14.647 4.081a.724 .724 0 0 0 1.08 .448c2.439 -1.485 5.23 1.305 3.745 3.744a.724 .724 0 0 0 .447 1.08c2.775 .673 2.775 4.62 0 5.294a.724 .724 0 0 0 -.448 1.08c1.485 2.439 -1.305 5.23 -3.744 3.745a.724 .724 0 0 0 -1.08 .447c-.673 2.775 -4.62 2.775 -5.294 0a.724 .724 0 0 0 -1.08 -.448c-2.439 1.485 -5.23 -1.305 -3.745 -3.744a.724 .724 0 0 0 -.447 -1.08c-2.775 -.673 -2.775 -4.62 0 -5.294a.724 .724 0 0 0 .448 -1.08c-1.485 -2.439 1.305 -5.23 3.744 -3.745a.722 .722 0 0 0 1.08 -.447c.673 -2.775 4.62 -2.775 5.294 0zm-2.647 4.919a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z\" stroke-width=\"0\" fill=\"currentColor\" />\n</svg>\n", ms = document.createElement("template");
3622
+ ms.innerHTML = `
3609
3623
  <style>
3610
3624
  :host {
3611
3625
  display: var(--rendition-menu-display);
3612
3626
  }
3613
3627
  </style>
3614
3628
 
3615
- <slot name="button">${ls}</slot>
3629
+ <slot name="button">${ps}</slot>
3616
3630
  <slot name="listbox" hidden>
3617
3631
  <vindral-rendition-levels-menu-list id="listbox" part="listbox"></vindral-rendition-levels-menu-list>
3618
3632
  </slot>
3619
3633
  `;
3620
- var ds = /* @__PURE__ */ new WeakSet(), fs = class extends Re {
3634
+ var hs = /* @__PURE__ */ new WeakSet(), gs = class extends Re {
3621
3635
  constructor() {
3622
3636
  var e, t, n, r;
3623
- super(), h(this, ds), (e = this.shadowRoot) == null || e.appendChild(us.content.cloneNode(!0)), this.button = (t = this.shadowRoot) == null ? void 0 : t.querySelector("slot[name=button]"), this.listbox = (n = this.shadowRoot) == null ? void 0 : n.querySelector("[part=listbox]"), this.listboxSlot = (r = this.shadowRoot) == null ? void 0 : r.querySelector("slot[name=listbox]");
3637
+ super(), h(this, hs), (e = this.shadowRoot) == null || e.appendChild(ms.content.cloneNode(!0)), this.button = (t = this.shadowRoot) == null ? void 0 : t.querySelector("slot[name=button]"), this.listbox = (n = this.shadowRoot) == null ? void 0 : n.querySelector("[part=listbox]"), this.listboxSlot = (r = this.shadowRoot) == null ? void 0 : r.querySelector("slot[name=listbox]");
3624
3638
  }
3625
3639
  connectedCallback() {
3626
- super.connectedCallback(), f(ds, this, ps).call(this), this.setAttribute("aria-label", "Rendition levels");
3640
+ super.connectedCallback(), f(hs, this, _s).call(this), this.setAttribute("aria-label", "Rendition levels");
3627
3641
  }
3628
3642
  attributeChangedCallback(e, t, n) {
3629
- super.attributeChangedCallback(e, t, n), e === g.RENDITION_LEVELS && f(ds, this, ps).call(this);
3643
+ super.attributeChangedCallback(e, t, n), e === g.RENDITION_LEVELS && f(hs, this, _s).call(this);
3630
3644
  }
3631
3645
  };
3632
- cs = fs;
3633
- function ps() {
3646
+ fs = gs;
3647
+ function _s() {
3634
3648
  let e = this.getAttribute(g.RENDITION_LEVELS);
3635
3649
  !e || e === "[]" ? this.setAttribute("disabled", "") : this.removeAttribute("disabled");
3636
3650
  }
3637
- e(fs, "observedAttributes", [...y(cs, "observedAttributes", cs), g.RENDITION_LEVELS]);
3651
+ e(gs, "observedAttributes", [...y(fs, "observedAttributes", fs), g.RENDITION_LEVELS]);
3638
3652
  //#endregion
3639
3653
  //#region ../../libs/player-next/src/components/RenditionLevelsMenuList.ts
3640
- var ms = document.createElement("template");
3641
- ms.innerHTML = "\n <style>\n :host {\n font: inherit;\n cursor: default;\n padding: var(--padding-2);\n padding-top: var(--padding-3);\n border-radius: 0.25em;\n position: absolute;\n min-width: 140px;\n background: var(--bg-subtle);\n z-index: 1;\n overflow: auto;\n }\n\n :host([list-position=\"top\"]) {\n bottom: calc(100% + 0.5em);\n transform: translate(-50%);\n }\n\n :host([list-position=\"bottom\"]) {\n top: calc(100% + 0.5em);\n }\n\n :host::-webkit-scrollbar {\n width: 5px;\n padding-right: 5px;\n }\n\n :host::-webkit-scrollbar-thumb {\n background-color: var(--fg-extra-subtle);\n border-radius: 10px;\n border: 0;\n }\n\n :host::-webkit-scrollbar-track {\n border-radius: 10px;\n background-color: transparent;\n }\n\n .menu {\n display: grid;\n gap: var(--padding-1);\n }\n\n [role=\"menuitem\"] {\n flex: 1;\n position: relative;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 44px;\n padding: 0 var(--padding-5);\n border-radius: 4px;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n white-space: nowrap;\n text-align: left;\n }\n\n [role=\"menuitem\"]:hover {\n background: var(--bg-component-hover);\n }\n\n [role=\"menuitem\"][aria-selected=\"true\"] {\n background: var(--bg-component-active);\n }\n\n [role=\"menuitem\"][aria-selected=\"true\"]::before {\n content: url(\"data:image/svg+xml,%0A%20%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2078.369%2078.369%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M78.049%2019.015%2029.458%2067.606a1.094%201.094%200%200%201-1.548%200L.32%2040.015a1.094%201.094%200%200%201%200-1.547l6.704-6.704a1.095%201.095%200%200%201%201.548%200l20.113%2020.112%2041.113-41.113a1.095%201.095%200%200%201%201.548%200l6.703%206.704a1.094%201.094%200%200%201%200%201.548z%22%2F%3E%3C%2Fsvg%3E%0A\");\n position: absolute;\n left: calc(var(--padding-3) - var(--padding-1));\n top: calc(50% - 8px);\n }\n\n [role=\"menuitem\"]:focus-visible {\n box-shadow: inset 0 0 0 2px var(--fg-strong);\n outline: 0;\n }\n\n .menu-item-subtitle {\n font-size: 11px;\n opacity: 0.6;\n }\n\n .heading {\n text-transform: uppercase;\n margin-bottom: var(--padding-2);\n padding: 0 var(--padding-3);\n font-size: 11px;\n font-weight: bold;\n }\n </style>\n\n <slot>\n <div class=\"heading\">Max quality</div>\n <div class=\"menu\"></div>\n </slot>\n";
3642
- var hs = /* @__PURE__ */ new WeakMap(), gs = /* @__PURE__ */ new WeakMap(), _s = /* @__PURE__ */ new WeakMap(), vs = /* @__PURE__ */ new WeakMap(), ys = /* @__PURE__ */ new WeakMap(), bs = /* @__PURE__ */ new WeakMap(), X = /* @__PURE__ */ new WeakSet(), xs = class extends HTMLElement {
3654
+ var vs = document.createElement("template");
3655
+ vs.innerHTML = "\n <style>\n :host {\n font: inherit;\n cursor: default;\n padding: var(--padding-2) !important;\n padding-top: var(--padding-3) !important;\n border-radius: 0.25em;\n position: absolute;\n min-width: 140px !important;\n background: var(--bg-subtle);\n z-index: 1;\n overflow: auto;\n }\n\n :host([list-position=\"top\"]) {\n bottom: calc(100% + 0.5em);\n transform: translate(-50%);\n }\n\n :host([list-position=\"bottom\"]) {\n top: calc(100% + 0.5em);\n }\n\n :host::-webkit-scrollbar {\n width: 5px;\n padding-right: 5px;\n }\n\n :host::-webkit-scrollbar-thumb {\n background-color: var(--fg-extra-subtle);\n border-radius: 10px;\n border: 0;\n }\n\n :host::-webkit-scrollbar-track {\n border-radius: 10px;\n background-color: transparent;\n }\n\n .menu {\n display: grid;\n gap: var(--padding-1);\n }\n\n [role=\"menuitem\"] {\n flex: 1;\n position: relative;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 44px;\n padding: 0 var(--padding-5);\n border-radius: 4px;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n white-space: nowrap;\n text-align: left;\n }\n\n [role=\"menuitem\"]:hover {\n background: var(--bg-component-hover);\n }\n\n [role=\"menuitem\"][aria-selected=\"true\"] {\n background: var(--bg-component-active);\n }\n\n [role=\"menuitem\"][aria-selected=\"true\"]::before {\n content: url(\"data:image/svg+xml,%0A%20%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2078.369%2078.369%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M78.049%2019.015%2029.458%2067.606a1.094%201.094%200%200%201-1.548%200L.32%2040.015a1.094%201.094%200%200%201%200-1.547l6.704-6.704a1.095%201.095%200%200%201%201.548%200l20.113%2020.112%2041.113-41.113a1.095%201.095%200%200%201%201.548%200l6.703%206.704a1.094%201.094%200%200%201%200%201.548z%22%2F%3E%3C%2Fsvg%3E%0A\");\n position: absolute;\n left: calc(var(--padding-3) - var(--padding-1));\n top: calc(50% - 8px);\n }\n\n [role=\"menuitem\"]:focus-visible {\n box-shadow: inset 0 0 0 2px var(--fg-strong);\n outline: 0;\n }\n\n .menu-item-subtitle {\n font-size: 11px;\n opacity: 0.6;\n }\n\n .heading {\n text-transform: uppercase;\n margin-bottom: var(--padding-2);\n padding: 0 var(--padding-3);\n font-size: 11px;\n font-weight: bold;\n }\n </style>\n\n <slot>\n <div class=\"heading\">Max quality</div>\n <div class=\"menu\"></div>\n </slot>\n";
3656
+ var ys = /* @__PURE__ */ new WeakMap(), bs = /* @__PURE__ */ new WeakMap(), xs = /* @__PURE__ */ new WeakMap(), Ss = /* @__PURE__ */ new WeakMap(), Cs = /* @__PURE__ */ new WeakMap(), ws = /* @__PURE__ */ new WeakMap(), Y = /* @__PURE__ */ new WeakSet(), Ts = class extends HTMLElement {
3643
3657
  constructor() {
3644
- super(), h(this, X), d(this, hs, []), d(this, gs, 2 ** 53 - 1), d(this, _s, null), d(this, vs, []), d(this, ys, null), d(this, bs, null), e(this, "handleEvent", (e) => {
3658
+ super(), h(this, Y), d(this, ys, []), d(this, bs, 2 ** 53 - 1), d(this, xs, null), d(this, Ss, []), d(this, Cs, null), d(this, ws, null), e(this, "handleEvent", (e) => {
3645
3659
  switch (e.type) {
3646
3660
  case "keydown":
3647
- f(X, this, Ds).call(this, e);
3661
+ f(Y, this, js).call(this, e);
3648
3662
  break;
3649
3663
  }
3650
- }), this.attachShadow({ mode: "open" }).appendChild(ms.content.cloneNode(!0));
3664
+ }), this.attachShadow({ mode: "open" }).appendChild(vs.content.cloneNode(!0));
3651
3665
  }
3652
3666
  connectedCallback() {
3653
3667
  let e = this.getRootNode();
3654
3668
  if (e instanceof ShadowRoot) {
3655
3669
  var t;
3656
- m(ys, this, e.host.closest("vindral-controller")), (t = p(ys, this)) == null || t.connectListener(this), f(X, this, Ss).call(this), f(X, this, Cs).call(this), m(bs, this, e.host), this.addEventListener("keydown", this);
3670
+ m(Cs, this, e.host.closest("vindral-controller")), (t = p(Cs, this)) == null || t.connectListener(this), f(Y, this, Es).call(this), f(Y, this, Ds).call(this), m(ws, this, e.host), this.addEventListener("keydown", this);
3657
3671
  }
3658
3672
  }
3659
3673
  disconnectedCallback() {
3660
3674
  var e;
3661
- (e = p(ys, this)) == null || e.disconnectListener(this), this.removeEventListener("keydown", this);
3675
+ (e = p(Cs, this)) == null || e.disconnectListener(this), this.removeEventListener("keydown", this);
3662
3676
  }
3663
3677
  attributeChangedCallback(e, t, n) {
3664
3678
  t !== n && (e === g.RENDITION_LEVELS && n && (this.list = JSON.parse(n)), e === g.MAX_VIDEO_BITRATE && n && (this.maxVideoBitrate = n ? parseInt(n, 10) : 2 ** 53 - 1));
3665
3679
  }
3666
3680
  set list(e) {
3667
- m(hs, this, e), f(X, this, Cs).call(this);
3681
+ m(ys, this, e), f(Y, this, Ds).call(this);
3668
3682
  }
3669
3683
  set maxVideoBitrate(e) {
3670
- m(gs, this, e), f(X, this, Ts).call(this);
3684
+ m(bs, this, e), f(Y, this, ks).call(this);
3671
3685
  }
3672
3686
  get keysUsed() {
3673
3687
  return [
@@ -3683,10 +3697,10 @@ var hs = /* @__PURE__ */ new WeakMap(), gs = /* @__PURE__ */ new WeakMap(), _s =
3683
3697
  }
3684
3698
  focus() {
3685
3699
  var e;
3686
- (e = p(_s, this)) == null || e.focus();
3700
+ (e = p(xs, this)) == null || e.focus();
3687
3701
  }
3688
3702
  };
3689
- function Ss() {
3703
+ function Es() {
3690
3704
  new IntersectionObserver((e) => {
3691
3705
  e.forEach((e) => {
3692
3706
  if (e.intersectionRatio !== 1) if (e.intersectionRatio > 0) {
@@ -3695,50 +3709,50 @@ function Ss() {
3695
3709
  } else this.style.height = "auto";
3696
3710
  });
3697
3711
  }, {
3698
- root: p(ys, this),
3712
+ root: p(Cs, this),
3699
3713
  threshold: 0
3700
3714
  }).observe(this);
3701
3715
  }
3702
- function Cs() {
3716
+ function Ds() {
3703
3717
  var e;
3704
3718
  let t = (e = this.shadowRoot) == null ? void 0 : e.querySelector(".menu");
3705
- t && (m(vs, this, []), t.innerHTML = "", p(hs, this).sort((e, t) => {
3719
+ t && (m(Ss, this, []), t.innerHTML = "", p(ys, this).sort((e, t) => {
3706
3720
  var n, r;
3707
3721
  return (n = e.video) != null && n.bitRate && (r = t.video) != null && r.bitRate ? t.video.bitRate - e.video.bitRate : 0;
3708
3722
  }).forEach((e) => {
3709
3723
  var n, r, i, a, o, s, c, ee;
3710
3724
  let l = document.createElement("div");
3711
3725
  l.setAttribute("role", "menuitem"), l.setAttribute("value", String((n = e.video) == null ? void 0 : n.height)), l.classList.add("menu-item"), l.tabIndex = -1;
3712
- let te = f(X, this, ws).call(this, (r = e.video) == null ? void 0 : r.frameRate);
3726
+ let te = f(Y, this, Os).call(this, (r = e.video) == null ? void 0 : r.frameRate);
3713
3727
  l.textContent = e.video ? Te(e.video) : "";
3714
3728
  let u = document.createElement("span");
3715
- u.classList.add("menu-item-subtitle"), u.textContent = `${we(((i = (a = e.video) == null ? void 0 : a.bitRate) == null ? 0 : i) + ((o = (s = e.audio) == null ? void 0 : s.bitRate) == null ? 0 : o))}, ${te}p`, l.appendChild(u), l.addEventListener("click", () => f(X, this, Es).call(this, e)), p(vs, this).push({
3729
+ u.classList.add("menu-item-subtitle"), u.textContent = `${we(((i = (a = e.video) == null ? void 0 : a.bitRate) == null ? 0 : i) + ((o = (s = e.audio) == null ? void 0 : s.bitRate) == null ? 0 : o))}, ${te}p`, l.appendChild(u), l.addEventListener("click", () => f(Y, this, As).call(this, e)), p(Ss, this).push({
3716
3730
  el: l,
3717
3731
  id: (c = (ee = e.video) == null ? void 0 : ee.id) == null ? -1 : c
3718
3732
  }), t.appendChild(l);
3719
- }), f(X, this, Ts).call(this));
3733
+ }), f(Y, this, ks).call(this));
3720
3734
  }
3721
- function ws(e) {
3735
+ function Os(e) {
3722
3736
  return e ? e[0] % e[1] === 0 ? (e[0] / e[1]).toString() : (e[0] / e[1]).toFixed(2) : "";
3723
3737
  }
3724
- function Ts() {
3725
- p(_s, this) && (p(_s, this).removeAttribute("aria-selected"), p(_s, this).tabIndex = -1);
3726
- let e = p(hs, this).sort((e, t) => {
3738
+ function ks() {
3739
+ p(xs, this) && (p(xs, this).removeAttribute("aria-selected"), p(xs, this).tabIndex = -1);
3740
+ let e = p(ys, this).sort((e, t) => {
3727
3741
  var n, r;
3728
3742
  return (n = e.video) != null && n.bitRate && (r = t.video) != null && r.bitRate ? t.video.bitRate - e.video.bitRate : 0;
3729
- }), t = p(hs, this).filter((e) => {
3743
+ }), t = p(ys, this).filter((e) => {
3730
3744
  var t;
3731
- return ((t = e.video) == null ? void 0 : t.bitRate) && e.video.bitRate <= p(gs, this);
3745
+ return ((t = e.video) == null ? void 0 : t.bitRate) && e.video.bitRate <= p(bs, this);
3732
3746
  })[0] || e[e.length - 1];
3733
3747
  if (t) {
3734
- let e = p(vs, this).find((e) => {
3748
+ let e = p(Ss, this).find((e) => {
3735
3749
  var n;
3736
3750
  return e.id === ((n = t.video) == null ? void 0 : n.id);
3737
3751
  });
3738
- e && (e.el.tabIndex = 0, e.el.setAttribute("aria-selected", "true"), m(_s, this, e.el));
3752
+ e && (e.el.tabIndex = 0, e.el.setAttribute("aria-selected", "true"), m(xs, this, e.el));
3739
3753
  }
3740
3754
  }
3741
- function Es(e) {
3755
+ function As(e) {
3742
3756
  this.dispatchEvent(new Event("change", {
3743
3757
  bubbles: !0,
3744
3758
  composed: !0
@@ -3748,36 +3762,36 @@ function Es(e) {
3748
3762
  detail: e
3749
3763
  }));
3750
3764
  }
3751
- function Ds(e) {
3765
+ function js(e) {
3752
3766
  let { key: t, ctrlKey: n, altKey: r, metaKey: i } = e;
3753
3767
  if (!(n || r || i) && this.keysUsed.includes(t)) if (e.preventDefault(), e.stopPropagation(), t === "Tab" || t === "Escape") {
3754
3768
  var a;
3755
- (a = p(bs, this)) == null || a.hide();
3769
+ (a = p(ws, this)) == null || a.hide();
3756
3770
  } else if (t === "Enter" || t === " ") {
3757
3771
  var o;
3758
- (o = f(X, this, ks).call(this)) == null || (o = o.el) == null || o.click();
3759
- } else f(X, this, Os).call(this, e);
3772
+ (o = f(Y, this, Ns).call(this)) == null || (o = o.el) == null || o.click();
3773
+ } else f(Y, this, Ms).call(this, e);
3760
3774
  }
3761
- function Os(e) {
3775
+ function Ms(e) {
3762
3776
  var t;
3763
- let { key: n } = e, r = p(vs, this), i = (t = f(X, this, ks).call(this)) == null ? r[0] : t;
3777
+ let { key: n } = e, r = p(Ss, this), i = (t = f(Y, this, Ns).call(this)) == null ? r[0] : t;
3764
3778
  if (!i) return;
3765
3779
  let a = r.indexOf(i), o = Math.max(0, a);
3766
3780
  n === "ArrowDown" ? o++ : n === "ArrowUp" ? o-- : e.key === "Home" ? o = 0 : e.key === "End" && (o = r.length - 1), o < 0 && (o = r.length - 1), o > r.length - 1 && (o = 0);
3767
3781
  let s = r[o];
3768
- s && (f(X, this, As).call(this, s.id), s.el.focus());
3782
+ s && (f(Y, this, Ps).call(this, s.id), s.el.focus());
3769
3783
  }
3770
- function ks() {
3771
- return p(vs, this).find((e) => e.el.tabIndex === 0);
3784
+ function Ns() {
3785
+ return p(Ss, this).find((e) => e.el.tabIndex === 0);
3772
3786
  }
3773
- function As(e) {
3774
- for (let t of p(vs, this)) t.el.tabIndex = t.id === e ? 0 : -1;
3787
+ function Ps(e) {
3788
+ for (let t of p(Ss, this)) t.el.tabIndex = t.id === e ? 0 : -1;
3775
3789
  }
3776
- e(xs, "observedAttributes", [g.RENDITION_LEVELS, g.MAX_VIDEO_BITRATE]);
3790
+ e(Ts, "observedAttributes", [g.RENDITION_LEVELS, g.MAX_VIDEO_BITRATE]);
3777
3791
  //#endregion
3778
3792
  //#region ../../libs/player-next/src/components/ScrollOverlay.ts
3779
- var js = document.createElement("template");
3780
- js.innerHTML = `
3793
+ var Fs = document.createElement("template");
3794
+ Fs.innerHTML = `
3781
3795
  <style>
3782
3796
  :host {
3783
3797
  --scroll-overlay-offset: var(--vindral-scroll-overlay-offset, 0px);
@@ -3845,71 +3859,71 @@ js.innerHTML = `
3845
3859
  <div id="scroll-area"></div>
3846
3860
  <slot id="content"></slot>
3847
3861
  `;
3848
- var Ms = /* @__PURE__ */ new WeakMap(), Ns = /* @__PURE__ */ new WeakMap(), Ps = /* @__PURE__ */ new WeakMap(), Fs = /* @__PURE__ */ new WeakMap(), Is = /* @__PURE__ */ new WeakMap(), Ls = /* @__PURE__ */ new WeakMap(), Rs = /* @__PURE__ */ new WeakMap(), Z = /* @__PURE__ */ new WeakSet(), zs = /* @__PURE__ */ new WeakMap(), Bs = class extends HTMLElement {
3862
+ var X = /* @__PURE__ */ new WeakMap(), Is = /* @__PURE__ */ new WeakMap(), Ls = /* @__PURE__ */ new WeakMap(), Rs = /* @__PURE__ */ new WeakMap(), zs = /* @__PURE__ */ new WeakMap(), Bs = /* @__PURE__ */ new WeakMap(), Vs = /* @__PURE__ */ new WeakMap(), Z = /* @__PURE__ */ new WeakSet(), Hs = /* @__PURE__ */ new WeakMap(), Us = class extends HTMLElement {
3849
3863
  constructor() {
3850
- super(), h(this, Z), d(this, Ms, null), d(this, Ns, null), d(this, Ps, !1), d(this, Fs, !1), d(this, Is, !1), d(this, Ls, () => {
3864
+ super(), h(this, Z), d(this, X, null), d(this, Is, null), d(this, Ls, !1), d(this, Rs, !1), d(this, zs, !1), d(this, Bs, () => {
3851
3865
  this.open && (this.open = !1);
3852
- }), d(this, Rs, null), e(this, "handleEvent", (e) => {
3866
+ }), d(this, Vs, null), e(this, "handleEvent", (e) => {
3853
3867
  switch (e.type) {
3854
3868
  case "touchstart":
3855
- f(Z, this, Hs).call(this, e);
3869
+ f(Z, this, Gs).call(this, e);
3856
3870
  break;
3857
3871
  case "touchmove":
3858
- f(Z, this, Us).call(this, e);
3872
+ f(Z, this, Ks).call(this, e);
3859
3873
  break;
3860
3874
  case "touchend":
3861
- f(Z, this, Ws).call(this, e);
3875
+ f(Z, this, qs).call(this, e);
3862
3876
  break;
3863
3877
  }
3864
- }), d(this, zs, () => {
3865
- let e = p(Is, this);
3878
+ }), d(this, Hs, () => {
3879
+ let e = p(zs, this);
3866
3880
  if (this.scrollTop === 0) {
3867
- f(Z, this, Qs).call(this, e);
3881
+ f(Z, this, tc).call(this, e);
3868
3882
  return;
3869
3883
  }
3870
- if (!e && !f(Z, this, Gs).call(this)) {
3871
- f(Z, this, Xs).call(this), f(Z, this, Qs).call(this);
3884
+ if (!e && !f(Z, this, Js).call(this)) {
3885
+ f(Z, this, $s).call(this), f(Z, this, tc).call(this);
3872
3886
  return;
3873
3887
  }
3874
- !this.visible && this.scrollTop > 0 && !p(Ps, this) ? f(Z, this, $s).call(this) : !p(Ps, this) && f(Z, this, qs).call(this) && (this.open || (this.open = !0), e && !this.hasAttribute("snap-touch") && this.setAttribute("snap-touch", ""));
3875
- }), this.attachShadow({ mode: "open" }).appendChild(js.content.cloneNode(!0));
3888
+ !this.visible && this.scrollTop > 0 && !p(Ls, this) ? f(Z, this, nc).call(this) : !p(Ls, this) && f(Z, this, Xs).call(this) && (this.open || (this.open = !0), e && !this.hasAttribute("snap-touch") && this.setAttribute("snap-touch", ""));
3889
+ }), this.attachShadow({ mode: "open" }).appendChild(Fs.content.cloneNode(!0));
3876
3890
  }
3877
3891
  connectedCallback() {
3878
3892
  let e = this.getRootNode();
3879
3893
  if (e instanceof Document || e instanceof ShadowRoot) {
3880
3894
  var t, n, r;
3881
- m(Ms, this, e.querySelector("vindral-controller")), (t = p(Ms, this)) == null || t.connectListener(this), m(Ns, this, (n = this.shadowRoot) == null ? void 0 : n.querySelector("#scroll-area")), (r = p(Ns, this)) == null || r.addEventListener("click", p(Ls, this));
3895
+ m(X, this, e.querySelector("vindral-controller")), (t = p(X, this)) == null || t.connectListener(this), m(Is, this, (n = this.shadowRoot) == null ? void 0 : n.querySelector("#scroll-area")), (r = p(Is, this)) == null || r.addEventListener("click", p(Bs, this));
3882
3896
  let s = this.hasAttribute("touch-enabled");
3883
- if (m(Is, this, ce() && s), !p(Is, this)) this.setAttribute("snap", "");
3897
+ if (m(zs, this, ce() && s), !p(zs, this)) this.setAttribute("snap", "");
3884
3898
  else {
3885
3899
  var i, a, o;
3886
- (i = p(Ms, this)) == null || i.addEventListener("touchstart", this, { passive: !0 }), (a = p(Ms, this)) == null || a.addEventListener("touchmove", this, { passive: !1 }), (o = p(Ms, this)) == null || o.addEventListener("touchend", this, { passive: !0 });
3900
+ (i = p(X, this)) == null || i.addEventListener("touchstart", this, { passive: !0 }), (a = p(X, this)) == null || a.addEventListener("touchmove", this, { passive: !1 }), (o = p(X, this)) == null || o.addEventListener("touchend", this, { passive: !0 });
3887
3901
  }
3888
- this.addEventListener("scroll", p(zs, this));
3902
+ this.addEventListener("scroll", p(Hs, this));
3889
3903
  }
3890
3904
  }
3891
3905
  disconnectedCallback() {
3892
3906
  var e, t, n, r, i;
3893
- (e = p(Ns, this)) == null || e.removeEventListener("click", p(Ls, this)), this.removeEventListener("scroll", p(zs, this)), (t = p(Ms, this)) == null || t.removeEventListener("touchstart", this), (n = p(Ms, this)) == null || n.removeEventListener("touchmove", this), (r = p(Ms, this)) == null || r.removeEventListener("touchend", this), (i = p(Ms, this)) == null || i.disconnectListener(this);
3907
+ (e = p(Is, this)) == null || e.removeEventListener("click", p(Bs, this)), this.removeEventListener("scroll", p(Hs, this)), (t = p(X, this)) == null || t.removeEventListener("touchstart", this), (n = p(X, this)) == null || n.removeEventListener("touchmove", this), (r = p(X, this)) == null || r.removeEventListener("touchend", this), (i = p(X, this)) == null || i.disconnectListener(this);
3894
3908
  }
3895
3909
  attributeChangedCallback(e, t, n) {
3896
- if (t !== n && (e === g.USER_INTERACTING && n === null && f(Z, this, Ks).call(this) && setTimeout(() => {
3910
+ if (t !== n && (e === g.USER_INTERACTING && n === null && f(Z, this, Ys).call(this) && setTimeout(() => {
3897
3911
  this.open = !1;
3898
3912
  }, 300), e === "open")) if (n !== null) {
3899
3913
  var r;
3900
- m(Ps, this, !1), this.scrollTop > 0 && f(Z, this, $s).call(this), this.scrollTo({
3901
- top: (r = p(Ns, this)) == null ? void 0 : r.clientHeight,
3914
+ m(Ls, this, !1), this.scrollTop > 0 && f(Z, this, nc).call(this), this.scrollTo({
3915
+ top: (r = p(Is, this)) == null ? void 0 : r.clientHeight,
3902
3916
  behavior: "smooth"
3903
3917
  });
3904
- } else f(Z, this, Zs).call(this);
3918
+ } else f(Z, this, ec).call(this);
3905
3919
  }
3906
3920
  set open(e) {
3907
3921
  if (e) {
3908
3922
  this.setAttribute("open", "");
3909
3923
  return;
3910
3924
  }
3911
- let t = this.hasAttribute("open"), n = this.visible || f(Z, this, Ks).call(this);
3912
- t ? this.removeAttribute("open") : n ? f(Z, this, Zs).call(this) : (m(Ps, this, !1), this.removeAttribute("snap-touch"));
3925
+ let t = this.hasAttribute("open"), n = this.visible || f(Z, this, Ys).call(this);
3926
+ t ? this.removeAttribute("open") : n ? f(Z, this, ec).call(this) : (m(Ls, this, !1), this.removeAttribute("snap-touch"));
3913
3927
  }
3914
3928
  get open() {
3915
3929
  return this.hasAttribute("open");
@@ -3921,124 +3935,124 @@ var Ms = /* @__PURE__ */ new WeakMap(), Ns = /* @__PURE__ */ new WeakMap(), Ps =
3921
3935
  return this.hasAttribute("visible");
3922
3936
  }
3923
3937
  };
3924
- function Vs() {
3925
- return f(Z, this, Gs).call(this) || f(Z, this, Ys).call(this) || f(Z, this, Ks).call(this);
3938
+ function Ws() {
3939
+ return f(Z, this, Js).call(this) || f(Z, this, Qs).call(this) || f(Z, this, Ys).call(this);
3926
3940
  }
3927
- function Hs(e) {
3941
+ function Gs(e) {
3928
3942
  let t = e.touches[0];
3929
- t && (m(Fs, this, f(Z, this, Vs).call(this)), p(Fs, this) && (m(Ps, this, !1), m(Rs, this, t.clientY)));
3943
+ t && (m(Rs, this, f(Z, this, Ws).call(this)), p(Rs, this) && (m(Ls, this, !1), m(Vs, this, t.clientY)));
3930
3944
  }
3931
- function Us(e) {
3932
- if (!(!p(Fs, this) || p(Rs, this) === null || this.hasAttribute("snap-touch") && this.open) && (e.preventDefault(), e.touches[0])) {
3933
- let t = e.touches[0].clientY, n = p(Rs, this) - t;
3945
+ function Ks(e) {
3946
+ if (!(!p(Rs, this) || p(Vs, this) === null || this.hasAttribute("snap-touch") && this.open) && (e.preventDefault(), e.touches[0])) {
3947
+ let t = e.touches[0].clientY, n = p(Vs, this) - t;
3934
3948
  this.scrollTop = Math.max(0, n);
3935
3949
  }
3936
3950
  }
3937
- function Ws(e) {
3938
- p(Fs, this) && !p(Ps, this) && f(Z, this, Ks).call(this) && (!this.hasAttribute("snap-touch") || !this.open) && (this.open = !0), m(Rs, this, null), m(Fs, this, !1);
3951
+ function qs(e) {
3952
+ p(Rs, this) && !p(Ls, this) && f(Z, this, Ys).call(this) && (!this.hasAttribute("snap-touch") || !this.open) && (this.open = !0), m(Vs, this, null), m(Rs, this, !1);
3939
3953
  }
3940
- function Gs() {
3954
+ function Js() {
3941
3955
  return this.hasAttribute(g.USER_INTERACTING);
3942
3956
  }
3943
- function Ks() {
3957
+ function Ys() {
3944
3958
  return this.scrollTop > 0;
3945
3959
  }
3946
- function qs() {
3960
+ function Xs() {
3947
3961
  var e;
3948
- return Math.round(this.scrollTop) === this.scrollHeight - this.clientHeight || Math.round(this.scrollTop) === ((e = p(Ns, this)) == null ? void 0 : e.clientHeight);
3962
+ return Math.round(this.scrollTop) === this.scrollHeight - this.clientHeight || Math.round(this.scrollTop) === ((e = p(Is, this)) == null ? void 0 : e.clientHeight);
3949
3963
  }
3950
- function Js() {
3964
+ function Zs() {
3951
3965
  var e;
3952
- let t = (e = p(Ns, this)) == null ? void 0 : e.clientHeight;
3966
+ let t = (e = p(Is, this)) == null ? void 0 : e.clientHeight;
3953
3967
  return !t || this.clientHeight <= 0 ? 0 : Math.max(this.clientHeight - t, 0);
3954
3968
  }
3955
- function Ys() {
3969
+ function Qs() {
3956
3970
  let e = getComputedStyle(this), t = Number.parseFloat(e.getPropertyValue("--vindral-scroll-overlay-offset"));
3957
- return Number.isNaN(t) ? f(Z, this, Js).call(this) > 0 : t > 0;
3971
+ return Number.isNaN(t) ? f(Z, this, Zs).call(this) > 0 : t > 0;
3958
3972
  }
3959
- function Xs() {
3973
+ function $s() {
3960
3974
  let e = this.style.scrollBehavior;
3961
3975
  this.style.scrollBehavior = "auto", this.scrollTo({
3962
3976
  top: 0,
3963
3977
  behavior: "auto"
3964
3978
  }), this.style.scrollBehavior = e;
3965
3979
  }
3966
- function Zs() {
3967
- m(Ps, this, !0), this.removeAttribute("snap-touch"), f(Z, this, ec).call(this), this.scrollTo({
3980
+ function ec() {
3981
+ m(Ls, this, !0), this.removeAttribute("snap-touch"), f(Z, this, rc).call(this), this.scrollTo({
3968
3982
  top: 0,
3969
3983
  behavior: "smooth"
3970
3984
  });
3971
3985
  }
3972
- function Qs(e = !1) {
3973
- this.open = !1, e && this.removeAttribute("snap-touch"), m(Ps, this, !1), f(Z, this, ec).call(this);
3986
+ function tc(e = !1) {
3987
+ this.open = !1, e && this.removeAttribute("snap-touch"), m(Ls, this, !1), f(Z, this, rc).call(this);
3974
3988
  }
3975
- function $s() {
3989
+ function nc() {
3976
3990
  this.visible || (this.visible = !0, this.dispatchEvent(new CustomEvent(_.LOCK_UI, {
3977
3991
  bubbles: !0,
3978
3992
  composed: !0
3979
3993
  })));
3980
3994
  }
3981
- function ec() {
3995
+ function rc() {
3982
3996
  this.visible && (this.visible = !1, this.dispatchEvent(new CustomEvent(_.UNLOCK_UI, {
3983
3997
  bubbles: !0,
3984
3998
  composed: !0
3985
3999
  })));
3986
4000
  }
3987
- e(Bs, "observedAttributes", [
4001
+ e(Us, "observedAttributes", [
3988
4002
  g.USER_INTERACTING,
3989
4003
  "open",
3990
4004
  "touch-enabled"
3991
4005
  ]);
3992
4006
  //#endregion
3993
4007
  //#region ../../libs/player-next/src/components/SeekBar.ts
3994
- var tc = document.createElement("template");
3995
- tc.innerHTML = "\n <style>\n :host {\n --buffered: 0;\n --vindral-range-thickness: 3px;\n --vindral-range-hover-thickness: 5px;\n --vindral-range-thumb-size: 10px;\n --vindral-range-thumb-hover-size: 15px;\n --vindral-range-fill-color: linear-gradient(\n 90deg,\n #03a9f4 0%,\n #03a9f4 calc(100% - min(20%, 150px)),\n #b3e5fc 100%\n );\n --vindral-range-thumb-color: #03a9f4;\n display: var(--seek-bar-display);\n position: relative;\n }\n\n :host([data-no-duration]) {\n display: none;\n }\n\n #hover-preview {\n position: absolute;\n background-color: rgba(255, 255, 255, 0.6);\n opacity: 0;\n pointer-events: none;\n z-index: 1;\n }\n\n #time-tooltip {\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%) translateY(-8px);\n background: rgba(0, 0, 0, 0.8);\n color: white;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 12px;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 10;\n }\n\n @media (hover: none) {\n #time-tooltip {\n display: none;\n }\n }\n </style>\n\n <div id=\"buffered-track\"></div>\n <div id=\"hover-preview\"></div>\n <div id=\"time-tooltip\"></div>\n";
3996
- var Q = /* @__PURE__ */ new WeakMap(), nc = /* @__PURE__ */ new WeakMap(), rc = /* @__PURE__ */ new WeakMap(), ic = /* @__PURE__ */ new WeakMap(), ac = /* @__PURE__ */ new WeakMap(), oc = /* @__PURE__ */ new WeakMap(), sc = /* @__PURE__ */ new WeakMap(), cc = /* @__PURE__ */ new WeakMap(), $ = /* @__PURE__ */ new WeakSet(), lc = /* @__PURE__ */ new WeakMap(), uc = /* @__PURE__ */ new WeakMap(), dc = /* @__PURE__ */ new WeakMap(), fc = /* @__PURE__ */ new WeakMap(), pc = /* @__PURE__ */ new WeakMap(), mc = /* @__PURE__ */ new WeakMap(), hc = class extends jr {
4008
+ var ic = document.createElement("template");
4009
+ ic.innerHTML = "\n <style>\n :host {\n --buffered: 0;\n --vindral-range-thickness: 3px;\n --vindral-range-hover-thickness: 5px;\n --vindral-range-thumb-size: 10px;\n --vindral-range-thumb-hover-size: 15px;\n --vindral-range-fill-color: linear-gradient(\n 90deg,\n #03a9f4 0%,\n #03a9f4 calc(100% - min(20%, 150px)),\n #b3e5fc 100%\n );\n --vindral-range-thumb-color: #03a9f4;\n display: var(--seek-bar-display);\n position: relative;\n }\n\n :host([data-no-duration]) {\n display: none;\n }\n\n #hover-preview {\n position: absolute;\n background-color: rgba(255, 255, 255, 0.6);\n opacity: 0;\n pointer-events: none;\n z-index: 1;\n }\n\n #time-tooltip {\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%) translateY(-8px);\n background: rgba(0, 0, 0, 0.8);\n color: white;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 12px;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 10;\n }\n\n @media (hover: none) {\n #time-tooltip {\n display: none;\n }\n }\n </style>\n\n <div id=\"buffered-track\"></div>\n <div id=\"hover-preview\"></div>\n <div id=\"time-tooltip\"></div>\n";
4010
+ var Q = /* @__PURE__ */ new WeakMap(), ac = /* @__PURE__ */ new WeakMap(), oc = /* @__PURE__ */ new WeakMap(), sc = /* @__PURE__ */ new WeakMap(), cc = /* @__PURE__ */ new WeakMap(), lc = /* @__PURE__ */ new WeakMap(), uc = /* @__PURE__ */ new WeakMap(), dc = /* @__PURE__ */ new WeakMap(), $ = /* @__PURE__ */ new WeakSet(), fc = /* @__PURE__ */ new WeakMap(), pc = /* @__PURE__ */ new WeakMap(), mc = /* @__PURE__ */ new WeakMap(), hc = /* @__PURE__ */ new WeakMap(), gc = /* @__PURE__ */ new WeakMap(), _c = /* @__PURE__ */ new WeakMap(), vc = class extends jr {
3997
4011
  constructor() {
3998
4012
  var e, t, n;
3999
- super(), h(this, $), d(this, Q, void 0), d(this, nc, void 0), d(this, rc, void 0), d(this, ic, !1), d(this, ac, null), d(this, oc, null), d(this, sc, !1), d(this, cc, !1), d(this, lc, (e) => {
4000
- if (!f($, this, _c).call(this) || f($, this, vc).call(this)) {
4013
+ super(), h(this, $), d(this, Q, void 0), d(this, ac, void 0), d(this, oc, void 0), d(this, sc, !1), d(this, cc, null), d(this, lc, null), d(this, uc, !1), d(this, dc, !1), d(this, fc, (e) => {
4014
+ if (!f($, this, bc).call(this) || f($, this, xc).call(this)) {
4001
4015
  e.preventDefault();
4002
4016
  return;
4003
4017
  }
4004
- m(ic, this, !0), m(oc, this, e.pointerId);
4018
+ m(sc, this, !0), m(lc, this, e.pointerId);
4005
4019
  try {
4006
4020
  this.setPointerCapture(e.pointerId);
4007
4021
  } catch (e) {}
4008
- f($, this, xc).call(this, e);
4009
- }), d(this, uc, (e) => {
4010
- if (!(!f($, this, _c).call(this) || f($, this, vc).call(this))) {
4011
- if (p(ac, this) && (cancelAnimationFrame(p(ac, this)), m(ac, this, null)), p(ic, this) && e.pointerId === p(oc, this)) {
4012
- e.preventDefault(), f($, this, xc).call(this, e);
4022
+ f($, this, wc).call(this, e);
4023
+ }), d(this, pc, (e) => {
4024
+ if (!(!f($, this, bc).call(this) || f($, this, xc).call(this))) {
4025
+ if (p(cc, this) && (cancelAnimationFrame(p(cc, this)), m(cc, this, null)), p(sc, this) && e.pointerId === p(lc, this)) {
4026
+ e.preventDefault(), f($, this, wc).call(this, e);
4013
4027
  return;
4014
4028
  }
4015
- m(ac, this, requestAnimationFrame(() => {
4016
- if (e.pointerType !== "mouse" || p(ic, this) || !this.duration) {
4017
- p(rc, this).style.opacity = "0", m(ac, this, null);
4029
+ m(cc, this, requestAnimationFrame(() => {
4030
+ if (e.pointerType !== "mouse" || p(sc, this) || !this.duration) {
4031
+ p(oc, this).style.opacity = "0", m(cc, this, null);
4018
4032
  return;
4019
4033
  }
4020
- let t = f($, this, bc).call(this, e.clientX);
4021
- if (f($, this, Cc).call(this, t, e.clientX), t > this.range.valueAsNumber) {
4034
+ let t = f($, this, Cc).call(this, e.clientX);
4035
+ if (f($, this, Ec).call(this, t, e.clientX), t > this.range.valueAsNumber) {
4022
4036
  let e = this.range.valueAsNumber * 100, n = (t - this.range.valueAsNumber) * 100;
4023
- p(rc, this).style.transform = `translateX(${e}%) scaleX(${n / 100})`, p(rc, this).style.opacity = "1";
4024
- } else p(rc, this).style.opacity = "0";
4025
- m(ac, this, null);
4037
+ p(oc, this).style.transform = `translateX(${e}%) scaleX(${n / 100})`, p(oc, this).style.opacity = "1";
4038
+ } else p(oc, this).style.opacity = "0";
4039
+ m(cc, this, null);
4026
4040
  }));
4027
4041
  }
4028
- }), d(this, dc, (e) => {
4029
- if (e.pointerId === p(oc, this)) {
4042
+ }), d(this, mc, (e) => {
4043
+ if (e.pointerId === p(lc, this)) {
4030
4044
  try {
4031
4045
  this.releasePointerCapture(e.pointerId);
4032
4046
  } catch (e) {}
4033
- m(ic, this, !1), m(oc, this, null), e.pointerType !== "mouse" && (p(nc, this).style.opacity = "0"), p(cc, this) && f($, this, Ec).call(this) && (m(sc, this, !1), m(cc, this, !1));
4047
+ m(sc, this, !1), m(lc, this, null), e.pointerType !== "mouse" && (p(ac, this).style.opacity = "0"), p(dc, this) && f($, this, kc).call(this) && (m(uc, this, !1), m(dc, this, !1));
4034
4048
  }
4035
- }), d(this, fc, () => {
4036
- this.duration && !f($, this, vc).call(this) && (p(nc, this).style.opacity = "1");
4037
- }), d(this, pc, () => {
4038
- p(nc, this).style.opacity = "0", p(rc, this).style.opacity = "0";
4039
- }), d(this, mc, (e) => {
4040
- if (f($, this, vc).call(this) || !p(Q, this) || p(Q, this) <= 0 || !Number.isFinite(p(Q, this))) return;
4041
- let t = f($, this, gc).call(this);
4049
+ }), d(this, hc, () => {
4050
+ this.duration && !f($, this, xc).call(this) && (p(ac, this).style.opacity = "1");
4051
+ }), d(this, gc, () => {
4052
+ p(ac, this).style.opacity = "0", p(oc, this).style.opacity = "0";
4053
+ }), d(this, _c, (e) => {
4054
+ if (f($, this, xc).call(this) || !p(Q, this) || p(Q, this) <= 0 || !Number.isFinite(p(Q, this))) return;
4055
+ let t = f($, this, yc).call(this);
4042
4056
  if (t <= 0) return;
4043
4057
  let n = this.range.valueAsNumber * t, r = n;
4044
4058
  switch (e.preventDefault(), e.key) {
@@ -4046,43 +4060,43 @@ var Q = /* @__PURE__ */ new WeakMap(), nc = /* @__PURE__ */ new WeakMap(), rc =
4046
4060
  r = Math.max(0, n - 5);
4047
4061
  break;
4048
4062
  case "ArrowRight":
4049
- if (f($, this, Ec).call(this)) return;
4063
+ if (f($, this, kc).call(this)) return;
4050
4064
  r = Math.min(t, n + 5);
4051
4065
  break;
4052
4066
  case "Home":
4053
4067
  r = 0;
4054
4068
  break;
4055
4069
  case "End":
4056
- if (f($, this, Ec).call(this)) return;
4070
+ if (f($, this, kc).call(this)) return;
4057
4071
  r = t;
4058
4072
  break;
4059
4073
  default: return;
4060
4074
  }
4061
4075
  let i = Math.min(r / t, 1);
4062
- f($, this, Sc).call(this, i);
4063
- }), (e = this.shadowRoot) == null || e.appendChild(tc.content.cloneNode(!0)), m(nc, this, (t = this.shadowRoot) == null ? void 0 : t.getElementById("time-tooltip")), m(rc, this, (n = this.shadowRoot) == null ? void 0 : n.getElementById("hover-preview")), this.addEventListener("pointerdown", p(lc, this)), this.addEventListener("pointermove", p(uc, this)), this.addEventListener("pointerup", p(dc, this)), this.addEventListener("pointercancel", p(dc, this)), this.addEventListener("mouseenter", p(fc, this)), this.addEventListener("mouseleave", p(pc, this));
4076
+ f($, this, Tc).call(this, i);
4077
+ }), (e = this.shadowRoot) == null || e.appendChild(ic.content.cloneNode(!0)), m(ac, this, (t = this.shadowRoot) == null ? void 0 : t.getElementById("time-tooltip")), m(oc, this, (n = this.shadowRoot) == null ? void 0 : n.getElementById("hover-preview")), this.addEventListener("pointerdown", p(fc, this)), this.addEventListener("pointermove", p(pc, this)), this.addEventListener("pointerup", p(mc, this)), this.addEventListener("pointercancel", p(mc, this)), this.addEventListener("mouseenter", p(hc, this)), this.addEventListener("mouseleave", p(gc, this));
4064
4078
  }
4065
4079
  connectedCallback() {
4066
- super.connectedCallback(), this.setAttribute("aria-label", "Seek video position"), this.setAttribute("role", "slider"), f($, this, yc).call(this), this.addEventListener("keydown", p(mc, this)), f($, this, Ec).call(this) && (this.range.value = "1", f($, this, yc).call(this));
4080
+ super.connectedCallback(), this.setAttribute("aria-label", "Seek video position"), this.setAttribute("role", "slider"), f($, this, Sc).call(this), this.addEventListener("keydown", p(_c, this)), f($, this, kc).call(this) && (this.range.value = "1", f($, this, Sc).call(this));
4067
4081
  }
4068
4082
  disconnectedCallback() {
4069
- super.disconnectedCallback(), this.removeEventListener("pointerdown", p(lc, this)), this.removeEventListener("pointermove", p(uc, this)), this.removeEventListener("pointerup", p(dc, this)), this.removeEventListener("pointercancel", p(dc, this)), this.removeEventListener("mouseenter", p(fc, this)), this.removeEventListener("mouseleave", p(pc, this)), this.removeEventListener("keydown", p(mc, this)), m(oc, this, null);
4083
+ super.disconnectedCallback(), this.removeEventListener("pointerdown", p(fc, this)), this.removeEventListener("pointermove", p(pc, this)), this.removeEventListener("pointerup", p(mc, this)), this.removeEventListener("pointercancel", p(mc, this)), this.removeEventListener("mouseenter", p(hc, this)), this.removeEventListener("mouseleave", p(gc, this)), this.removeEventListener("keydown", p(_c, this)), m(lc, this, null);
4070
4084
  }
4071
4085
  attributeChangedCallback(e, t, n) {
4072
4086
  if (super.attributeChangedCallback(e, t, n), t !== n) switch (e) {
4073
4087
  case g.TIMESHIFT_POSITION:
4074
- if (f($, this, Ec).call(this)) {
4075
- p(ic, this) ? m(cc, this, !0) : (m(sc, this, !1), m(cc, this, !1)), this.range.value = "1", f($, this, yc).call(this);
4088
+ if (f($, this, kc).call(this)) {
4089
+ p(sc, this) ? m(dc, this, !0) : (m(uc, this, !1), m(dc, this, !1)), this.range.value = "1", f($, this, Sc).call(this);
4076
4090
  return;
4077
4091
  }
4078
4092
  if (p(Q, this)) {
4079
- m(cc, this, !1);
4093
+ m(dc, this, !1);
4080
4094
  let e = Math.max(parseFloat(n) / p(Q, this), 0);
4081
- this.range.value = e.toString(), f($, this, yc).call(this);
4095
+ this.range.value = e.toString(), f($, this, Sc).call(this);
4082
4096
  }
4083
4097
  break;
4084
4098
  case g.DURATION:
4085
- m(Q, this, parseFloat(n) || 0), f($, this, yc).call(this);
4099
+ m(Q, this, parseFloat(n) || 0), f($, this, Sc).call(this);
4086
4100
  break;
4087
4101
  }
4088
4102
  }
@@ -4100,68 +4114,68 @@ var Q = /* @__PURE__ */ new WeakMap(), nc = /* @__PURE__ */ new WeakMap(), rc =
4100
4114
  this.setAttribute(g.DURATION, e.toString());
4101
4115
  }
4102
4116
  };
4103
- function gc() {
4117
+ function yc() {
4104
4118
  return p(Q, this) ? p(Q, this) : 1;
4105
4119
  }
4106
- function _c() {
4120
+ function bc() {
4107
4121
  return !!p(Q, this) && p(Q, this) > 0 && Number.isFinite(p(Q, this));
4108
4122
  }
4109
- function vc() {
4110
- return p(sc, this);
4123
+ function xc() {
4124
+ return p(uc, this);
4111
4125
  }
4112
- function yc() {
4113
- let e = f($, this, gc).call(this);
4114
- !p(Q, this) || p(Q, this) <= 0 || !Number.isFinite(p(Q, this)) ? this.setAttribute("data-no-duration", "") : this.removeAttribute("data-no-duration"), p(ic, this) || (this.updateBar(), this.setAttribute("aria-valuetext", `${f($, this, Dc).call(this, this.range.valueAsNumber * e)} of ${f($, this, Dc).call(this, e)}`), !p(ic, this) && !f($, this, vc).call(this) && f($, this, Tc).call(this, this.range.valueAsNumber));
4126
+ function Sc() {
4127
+ let e = f($, this, yc).call(this);
4128
+ !p(Q, this) || p(Q, this) <= 0 || !Number.isFinite(p(Q, this)) ? this.setAttribute("data-no-duration", "") : this.removeAttribute("data-no-duration"), p(sc, this) || (this.updateBar(), this.setAttribute("aria-valuetext", `${f($, this, Ac).call(this, this.range.valueAsNumber * e)} of ${f($, this, Ac).call(this, e)}`), !p(sc, this) && !f($, this, xc).call(this) && f($, this, Oc).call(this, this.range.valueAsNumber));
4115
4129
  }
4116
- function bc(e) {
4130
+ function Cc(e) {
4117
4131
  let t = this.getBoundingClientRect(), n = (e - t.left) / t.width;
4118
4132
  return Math.max(0, Math.min(1, n));
4119
4133
  }
4120
- function xc(e) {
4121
- let t = f($, this, bc).call(this, e.clientX);
4122
- f($, this, Cc).call(this, t, e.clientX), p(ic, this) || (p(nc, this).style.opacity = "1"), f($, this, Sc).call(this, t);
4134
+ function wc(e) {
4135
+ let t = f($, this, Cc).call(this, e.clientX);
4136
+ f($, this, Ec).call(this, t, e.clientX), p(sc, this) || (p(ac, this).style.opacity = "1"), f($, this, Tc).call(this, t);
4123
4137
  }
4124
- function Sc(e) {
4125
- if (f($, this, vc).call(this) || f($, this, Tc).call(this, e)) return;
4126
- let t = e * f($, this, gc).call(this);
4127
- this.range.value = e.toString(), this.updateBar(), f($, this, wc).call(this, t);
4138
+ function Tc(e) {
4139
+ if (f($, this, xc).call(this) || f($, this, Oc).call(this, e)) return;
4140
+ let t = e * f($, this, yc).call(this);
4141
+ this.range.value = e.toString(), this.updateBar(), f($, this, Dc).call(this, t);
4128
4142
  }
4129
- function Cc(e, t) {
4143
+ function Ec(e, t) {
4130
4144
  if (!p(Q, this) || !Number.isFinite(p(Q, this))) return;
4131
4145
  let n = e * p(Q, this), r = p(Q, this) - n;
4132
- p(nc, this).textContent = `-${f($, this, Dc).call(this, r)}`;
4146
+ p(ac, this).textContent = `-${f($, this, Ac).call(this, r)}`;
4133
4147
  let i = this.getBoundingClientRect(), a = (t - i.left) / i.width * 100;
4134
- p(nc, this).style.left = `${Math.min(Math.max(a, 2), 98)}%`;
4148
+ p(ac, this).style.left = `${Math.min(Math.max(a, 2), 98)}%`;
4135
4149
  }
4136
- function wc(e) {
4150
+ function Dc(e) {
4137
4151
  this.dispatchEvent(new CustomEvent("seek", {
4138
4152
  bubbles: !0,
4139
4153
  composed: !0,
4140
4154
  detail: e
4141
4155
  }));
4142
4156
  }
4143
- function Tc(e) {
4144
- return p(sc, this) || f($, this, Ec).call(this) || e < .999 ? !1 : (m(sc, this, !0), m(cc, this, !1), this.dispatchEvent(new CustomEvent(_.GO_LIVE, {
4157
+ function Oc(e) {
4158
+ return p(uc, this) || f($, this, kc).call(this) || e < .999 ? !1 : (m(uc, this, !0), m(dc, this, !1), this.dispatchEvent(new CustomEvent(_.GO_LIVE, {
4145
4159
  bubbles: !0,
4146
4160
  composed: !0
4147
4161
  })), !0);
4148
4162
  }
4149
- function Ec() {
4163
+ function kc() {
4150
4164
  return !this.hasAttribute(g.TIMESHIFT_POSITION);
4151
4165
  }
4152
- function Dc(e) {
4166
+ function Ac(e) {
4153
4167
  let t = Math.floor(e / 3600), n = Math.floor(e % 3600 / 60), r = Math.floor(e % 60);
4154
4168
  return p(Q, this) && p(Q, this) >= 3600 ? `${t}:${n.toString().padStart(2, "0")}:${r.toString().padStart(2, "0")}` : `${n}:${r.toString().padStart(2, "0")}`;
4155
4169
  }
4156
- e(hc, "observedAttributes", [
4170
+ e(vc, "observedAttributes", [
4157
4171
  ...jr.observedAttributes,
4158
4172
  g.TIMESHIFT_POSITION,
4159
4173
  g.DURATION
4160
4174
  ]);
4161
4175
  //#endregion
4162
4176
  //#region ../../libs/player-next/src/components/UserInputPlayOverlay.ts
4163
- var Oc = document.createElement("template");
4164
- Oc.innerHTML = `
4177
+ var jc = document.createElement("template");
4178
+ jc.innerHTML = `
4165
4179
  <style>
4166
4180
  :host {
4167
4181
  display: var(--play-overlay-display);
@@ -4221,123 +4235,140 @@ Oc.innerHTML = `
4221
4235
  </slot>
4222
4236
  </slot>
4223
4237
  `;
4224
- var kc = /* @__PURE__ */ new WeakMap(), Ac = /* @__PURE__ */ new WeakMap(), jc = /* @__PURE__ */ new WeakMap(), Mc = /* @__PURE__ */ new WeakMap(), Nc = class extends HTMLElement {
4238
+ var Mc = /* @__PURE__ */ new WeakMap(), Nc = /* @__PURE__ */ new WeakMap(), Pc = /* @__PURE__ */ new WeakMap(), Fc = /* @__PURE__ */ new WeakMap(), Ic = class extends HTMLElement {
4225
4239
  constructor() {
4226
- super(), d(this, kc, null), d(this, Ac, () => {
4240
+ super(), d(this, Mc, null), d(this, Nc, () => {
4227
4241
  this.dispatchEvent(new CustomEvent(_.REQUEST_USER_INPUT, {
4228
4242
  bubbles: !0,
4229
4243
  composed: !0
4230
4244
  }));
4231
- }), d(this, jc, (e) => {
4245
+ }), d(this, Pc, (e) => {
4232
4246
  let { key: t } = e;
4233
4247
  if (!this.keysUsed.includes(t)) {
4234
- this.removeEventListener("keyup", p(jc, this));
4248
+ this.removeEventListener("keyup", p(Pc, this));
4235
4249
  return;
4236
4250
  }
4237
4251
  this.dispatchEvent(new CustomEvent(_.REQUEST_USER_INPUT, {
4238
4252
  bubbles: !0,
4239
4253
  composed: !0
4240
4254
  }));
4241
- }), d(this, Mc, (e) => {
4255
+ }), d(this, Fc, (e) => {
4242
4256
  let { metaKey: t, altKey: n, key: r } = e;
4243
4257
  if (t || n || !this.keysUsed.includes(r)) {
4244
- this.removeEventListener("keyup", p(jc, this));
4258
+ this.removeEventListener("keyup", p(Pc, this));
4245
4259
  return;
4246
4260
  }
4247
- this.addEventListener("keyup", p(jc, this), { once: !0 });
4248
- }), this.attachShadow({ mode: "open" }).appendChild(Oc.content.cloneNode(!0));
4261
+ this.addEventListener("keyup", p(Pc, this), { once: !0 });
4262
+ }), this.attachShadow({ mode: "open" }).appendChild(jc.content.cloneNode(!0));
4249
4263
  }
4250
4264
  get keysUsed() {
4251
4265
  return ["Enter", " "];
4252
4266
  }
4253
4267
  connectedCallback() {
4254
4268
  var e;
4255
- m(kc, this, this.closest("vindral-controller")), (e = p(kc, this)) == null || e.connectListener(this), this.setAttribute("aria-label", "Play"), this.setAttribute("role", "button"), this.enable();
4269
+ m(Mc, this, this.closest("vindral-controller")), (e = p(Mc, this)) == null || e.connectListener(this), this.setAttribute("aria-label", "Play"), this.setAttribute("role", "button"), this.enable();
4256
4270
  }
4257
4271
  enable() {
4258
- this.addEventListener("click", p(Ac, this)), this.addEventListener("keydown", p(Mc, this)), this.tabIndex = 0;
4272
+ this.addEventListener("click", p(Nc, this)), this.addEventListener("keydown", p(Fc, this)), this.tabIndex = 0;
4259
4273
  }
4260
4274
  disable() {
4261
- this.removeEventListener("click", p(Ac, this)), this.removeEventListener("keydown", p(Mc, this)), this.removeEventListener("keyup", p(jc, this)), this.tabIndex = -1;
4275
+ this.removeEventListener("click", p(Nc, this)), this.removeEventListener("keydown", p(Fc, this)), this.removeEventListener("keyup", p(Pc, this)), this.tabIndex = -1;
4262
4276
  }
4263
4277
  disconnectedCallback() {
4264
4278
  var e;
4265
- (e = p(kc, this)) == null || e.disconnectListener(this), this.disable();
4279
+ (e = p(Mc, this)) == null || e.disconnectListener(this), this.disable();
4266
4280
  }
4267
4281
  };
4268
- e(Nc, "observedAttributes", [
4282
+ e(Ic, "observedAttributes", [
4269
4283
  "hidden",
4270
4284
  g.NEEDS_USER_INPUT_VIDEO,
4271
4285
  g.NEEDS_USER_INPUT_AUDIO,
4272
4286
  g.PAUSED
4273
4287
  ]);
4274
4288
  //#endregion
4289
+ //#region ../../libs/player-next/src/components/VindralCenterOverlay.ts
4290
+ var Lc = document.createElement("template");
4291
+ Lc.innerHTML = "\n <style>\n :host {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n pointer-events: none;\n z-index: 1;\n }\n\n :host::before {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: -1;\n background-color: rgba(0, 0, 0, 0.3);\n background-image: var(--_backdrop-image, none);\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: contain;\n pointer-events: none;\n opacity: 0;\n transition: opacity 100ms;\n }\n\n :host([backdrop]:not([disable-backdrop]))::before {\n opacity: 1;\n }\n\n @media (prefers-reduced-motion: reduce) {\n :host::before {\n transition: none;\n }\n }\n </style>\n\n <slot></slot>\n";
4292
+ var Rc = class extends HTMLElement {
4293
+ constructor() {
4294
+ super(), this.attachShadow({ mode: "open" }).appendChild(Lc.content.cloneNode(!0));
4295
+ }
4296
+ attributeChangedCallback(e, t, n) {
4297
+ t !== n && e === "poster" && this.style.setProperty("--_backdrop-image", n ? `url("${n}")` : "none");
4298
+ }
4299
+ };
4300
+ e(Rc, "observedAttributes", [
4301
+ "backdrop",
4302
+ "poster",
4303
+ "disable-backdrop"
4304
+ ]);
4305
+ //#endregion
4275
4306
  //#region ../../libs/player-next/src/components/VindralMessage.ts
4276
- var Pc = document.createElement("template");
4277
- Pc.innerHTML = "\n <style>\n :host,\n #background {\n position: absolute;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: contain;\n font-size: 20px;\n color: var(--fg-strong);\n pointer-events: none;\n transition: opacity 100ms;\n background-color: rgba(0, 0, 0, 0.3);\n }\n\n :host([hidden]) {\n opacity: 0;\n }\n\n #message-container {\n position: absolute;\n left: 50%;\n bottom: calc(50% + var(--play-overlay-icon-size));\n transform: translateX(-50%);\n display: flex;\n flex-direction: column;\n align-items: center;\n width: max-content;\n max-width: 90%;\n pointer-events: none;\n }\n\n #title,\n #description {\n text-align: center;\n text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);\n margin: 0;\n }\n\n #title {\n margin-bottom: var(--padding-2);\n }\n\n @container (max-width: 600px) {\n :host {\n font-size: 15px;\n }\n #message-container {\n bottom: 0;\n top: var(--padding-1);\n }\n }\n\n @container (max-width: 400px) {\n :host {\n font-size: 12px;\n }\n #title {\n margin-bottom: 0;\n }\n }\n\n @container (max-width: 150px) {\n :host {\n font-size: 10px;\n }\n #title,\n #description {\n font-size: 1.2em;\n margin: 0;\n }\n }\n </style>\n\n <div id=\"background\"></div>\n <div id=\"message-container\">\n <h1 id=\"title\"></h1>\n <p id=\"description\"></p>\n </div>\n";
4278
- var Fc = /* @__PURE__ */ new WeakMap(), Ic = /* @__PURE__ */ new WeakMap(), Lc = /* @__PURE__ */ new WeakMap(), Rc = class extends HTMLElement {
4307
+ var zc = document.createElement("template");
4308
+ zc.innerHTML = "\n <style>\n :host {\n display: flex;\n flex-direction: column;\n align-items: center;\n max-width: 90%;\n color: var(--fg-strong);\n font-size: 20px;\n pointer-events: none;\n opacity: 1;\n transition:\n opacity 100ms,\n display 100ms allow-discrete;\n }\n\n :host([hidden]) {\n display: none;\n opacity: 0;\n }\n\n @starting-style {\n :host(:not([hidden])) {\n opacity: 0;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n :host {\n transition: none;\n }\n }\n\n #title,\n #description {\n text-align: center;\n text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);\n margin: 0;\n }\n\n #title {\n margin-bottom: var(--padding-2);\n }\n\n @container (max-width: 600px) {\n :host {\n font-size: 15px;\n }\n }\n\n @container (max-width: 400px) {\n :host {\n font-size: 12px;\n }\n #title {\n margin-bottom: 0;\n }\n }\n\n @container (max-width: 150px) {\n :host {\n font-size: 10px;\n }\n #title,\n #description {\n font-size: 1.2em;\n margin: 0;\n }\n }\n </style>\n\n <h1 id=\"title\"></h1>\n <p id=\"description\"></p>\n";
4309
+ var Bc = /* @__PURE__ */ new WeakMap(), Vc = /* @__PURE__ */ new WeakMap(), Hc = class extends HTMLElement {
4279
4310
  constructor() {
4280
- super(), d(this, Fc, void 0), d(this, Ic, void 0), d(this, Lc, void 0);
4311
+ super(), d(this, Bc, void 0), d(this, Vc, void 0);
4281
4312
  let e = this.attachShadow({ mode: "open" });
4282
- e.appendChild(Pc.content.cloneNode(!0)), m(Fc, this, e.querySelector("#title")), m(Ic, this, e.querySelector("#description")), m(Lc, this, e.querySelector("#background"));
4313
+ e.appendChild(zc.content.cloneNode(!0)), m(Bc, this, e.querySelector("#title")), m(Vc, this, e.querySelector("#description"));
4314
+ }
4315
+ connectedCallback() {
4316
+ this.hasAttribute("role") || (this.setAttribute("role", "alert"), this.setAttribute("aria-atomic", "true"));
4283
4317
  }
4284
- connectedCallback() {}
4285
- disconnectedCallback() {}
4286
4318
  attributeChangedCallback(e, t, n) {
4287
- t !== n && (e === "title" ? p(Fc, this).textContent = n : e === "description" ? p(Ic, this).textContent = n : e === "background-image" && (p(Lc, this).style.backgroundImage = `url(${n})`));
4319
+ t !== n && (e === "title" ? p(Bc, this).textContent = n : e === "description" && (p(Vc, this).textContent = n));
4288
4320
  }
4289
4321
  };
4290
- e(Rc, "observedAttributes", [
4322
+ e(Hc, "observedAttributes", [
4291
4323
  "title",
4292
4324
  "description",
4293
- "background-image",
4294
4325
  "hidden"
4295
4326
  ]);
4296
4327
  //#endregion
4297
4328
  //#region ../../libs/player-next/src/components/VindralPlayOverlay.ts
4298
- var zc = document.createElement("template");
4299
- zc.innerHTML = "\n <style>\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n pointer-events: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n :host(:focus-visible) {\n outline: none;\n outline: 0;\n }\n\n :host(:focus-visible) svg {\n outline: 0;\n }\n\n :host(:where(:focus)) svg {\n box-shadow: none;\n outline: 0;\n }\n\n :host(:active) svg {\n scale: 0.9;\n }\n\n slot#play {\n color: var(--fg-strong);\n pointer-events: auto;\n cursor: pointer;\n }\n\n slot#play > svg {\n width: var(--play-overlay-icon-size);\n height: var(--play-overlay-icon-size);\n }\n </style>\n\n <slot id=\"play\" name=\"icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z\" /></svg>\n</slot>\n";
4300
- var Bc = /* @__PURE__ */ new WeakMap(), Vc = class extends HTMLElement {
4329
+ var Uc = document.createElement("template");
4330
+ Uc.innerHTML = "\n <style>\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n opacity: 1;\n transition:\n opacity 100ms,\n display 100ms allow-discrete;\n }\n\n :host([hidden]) {\n display: none;\n opacity: 0;\n }\n\n @starting-style {\n :host(:not([hidden])) {\n opacity: 0;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n :host {\n transition: none;\n }\n }\n\n :host(:focus-visible) {\n outline: none;\n outline: 0;\n }\n\n :host(:focus-visible) svg {\n outline: 0;\n }\n\n :host(:where(:focus)) svg {\n box-shadow: none;\n outline: 0;\n }\n\n :host(:active) svg {\n scale: 0.9;\n }\n\n slot#play {\n color: var(--fg-strong);\n pointer-events: auto;\n cursor: pointer;\n }\n\n slot#play > svg {\n width: var(--play-overlay-icon-size);\n height: var(--play-overlay-icon-size);\n }\n </style>\n\n <slot id=\"play\" name=\"icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z\" /></svg>\n</slot>\n";
4331
+ var Wc = /* @__PURE__ */ new WeakMap(), Gc = class extends HTMLElement {
4301
4332
  constructor() {
4302
- super(), d(this, Bc, null), this.attachShadow({ mode: "open" }).appendChild(zc.content.cloneNode(!0));
4333
+ super(), d(this, Wc, null), this.attachShadow({ mode: "open" }).appendChild(Uc.content.cloneNode(!0));
4303
4334
  }
4304
4335
  connectedCallback() {
4305
4336
  var e;
4306
- m(Bc, this, this.closest("vindral-controller")), (e = p(Bc, this)) == null || e.connectListener(this), this.setAttribute("aria-label", "Play"), this.setAttribute("role", "button"), this.tabIndex = 0;
4337
+ m(Wc, this, this.closest("vindral-controller")), (e = p(Wc, this)) == null || e.connectListener(this), this.setAttribute("aria-label", "Play"), this.setAttribute("role", "button"), this.tabIndex = 0;
4307
4338
  }
4308
4339
  disconnectedCallback() {
4309
4340
  var e;
4310
- (e = p(Bc, this)) == null || e.disconnectListener(this);
4341
+ (e = p(Wc, this)) == null || e.disconnectListener(this);
4311
4342
  }
4312
4343
  attributeChangedCallback(e, t, n) {
4313
4344
  t !== n && e === "hidden" && !v(n) && this.focus();
4314
4345
  }
4315
4346
  };
4316
- e(Vc, "observedAttributes", ["hidden"]);
4347
+ e(Gc, "observedAttributes", ["hidden"]);
4317
4348
  //#endregion
4318
4349
  //#region ../../libs/player-next/src/components/VolumeRange.ts
4319
- var Hc, Uc = document.createElement("template");
4320
- Uc.innerHTML = "\n <style>\n :host {\n display: var(--volume-range-display);\n width: 80px;\n }\n\n @media (hover: hover) and (pointer: fine) {\n :host(:hover) {\n background: rgba(255, 255, 255, 0.15);\n }\n }\n\n :host(:active) {\n background: rgba(255, 255, 255, 0.25);\n }\n </style>\n";
4321
- var Wc = (e) => `${Math.round(e * 100)}%`, Gc = /* @__PURE__ */ new WeakMap(), Kc = class extends jr {
4350
+ var Kc, qc = document.createElement("template");
4351
+ qc.innerHTML = "\n <style>\n :host {\n display: var(--volume-range-display);\n width: 80px;\n }\n\n @media (hover: hover) and (pointer: fine) {\n :host(:hover) {\n background: rgba(255, 255, 255, 0.15);\n }\n }\n\n :host(:active) {\n background: rgba(255, 255, 255, 0.25);\n }\n </style>\n";
4352
+ var Jc = (e) => `${Math.round(e * 100)}%`, Yc = /* @__PURE__ */ new WeakMap(), Xc = class extends jr {
4322
4353
  constructor() {
4323
4354
  var e;
4324
- super(), d(this, Gc, () => {
4355
+ super(), d(this, Yc, () => {
4325
4356
  let e = this.range.valueAsNumber;
4326
4357
  this.dispatchEvent(new CustomEvent(_.SET_VOLUME, {
4327
4358
  bubbles: !0,
4328
4359
  composed: !0,
4329
4360
  detail: e
4330
4361
  }));
4331
- }), (e = this.shadowRoot) == null || e.appendChild(Uc.content.cloneNode(!0));
4362
+ }), (e = this.shadowRoot) == null || e.appendChild(qc.content.cloneNode(!0));
4332
4363
  }
4333
4364
  connectedCallback() {
4334
- super.connectedCallback(), this.range.addEventListener("input", p(Gc, this)), this.range.setAttribute("aria-label", "volume");
4365
+ super.connectedCallback(), this.range.addEventListener("input", p(Yc, this)), this.range.setAttribute("aria-label", "volume");
4335
4366
  }
4336
4367
  disconnectedCallback() {
4337
- super.disconnectedCallback(), this.range.removeEventListener("input", p(Gc, this));
4368
+ super.disconnectedCallback(), this.range.removeEventListener("input", p(Yc, this));
4338
4369
  }
4339
4370
  attributeChangedCallback(e, t, n) {
4340
- super.attributeChangedCallback(e, t, n), (e === g.MUTED || e === g.VOLUME) && (this.range.valueAsNumber = this.muted ? 0 : parseFloat(this.volume), this.range.setAttribute("aria-valuetext", Wc(this.range.valueAsNumber)), this.updateBar());
4371
+ super.attributeChangedCallback(e, t, n), (e === g.MUTED || e === g.VOLUME) && (this.range.valueAsNumber = this.muted ? 0 : parseFloat(this.volume), this.range.setAttribute("aria-valuetext", Jc(this.range.valueAsNumber)), this.updateBar());
4341
4372
  }
4342
4373
  get volume() {
4343
4374
  var e;
@@ -4347,15 +4378,15 @@ var Wc = (e) => `${Math.round(e * 100)}%`, Gc = /* @__PURE__ */ new WeakMap(), K
4347
4378
  return this.hasAttribute(g.MUTED);
4348
4379
  }
4349
4380
  };
4350
- Hc = Kc, e(Kc, "observedAttributes", [
4351
- ...y(Hc, "observedAttributes", Hc),
4381
+ Kc = Xc, e(Xc, "observedAttributes", [
4382
+ ...y(Kc, "observedAttributes", Kc),
4352
4383
  g.MUTED,
4353
4384
  g.VOLUME
4354
4385
  ]);
4355
4386
  //#endregion
4356
4387
  //#region ../../libs/player-next/src/registerComponents.ts
4357
- function qc() {
4358
- customElements.define("vindral-controller", Mi), customElements.define("vindral-control-bar", Fn), customElements.define("vindral-advanced-rendition-menu", Ge), customElements.define("vindral-advanced-rendition-menu-list", rt), customElements.define("vindral-play-button", fo), customElements.define("vindral-mute-button", ao), customElements.define("vindral-buffering-overlay", At), customElements.define("vindral-scroll-overlay", Bs), customElements.define("vindral-play-overlay", Vc), customElements.define("vindral-user-input-play-overlay", Nc), customElements.define("vindral-fullscreen-button", xa), customElements.define("vindral-rendition-levels-menu", fs), customElements.define("vindral-rendition-levels-menu-list", xs), customElements.define("vindral-channel-grid-button", On), customElements.define("vindral-channel-grid", en), customElements.define("vindral-channel-grid-item", Wt), customElements.define("vindral-pip-button", co), customElements.define("vindral-airplay-button", Ct), customElements.define("vindral-cast-button", Pt), customElements.define("vindral-cast-overlay", Bt), customElements.define("vindral-buffering-icon", Dt), customElements.define("vindral-language-menu", Ea), customElements.define("vindral-language-menu-list", Ba), customElements.define("vindral-message", Rc), customElements.define("vindral-volume-range", Kc), customElements.define("vindral-poster-overlay", is), customElements.define("vindral-player", Wo), customElements.define("vindral-seek-bar", hc), customElements.define("vindral-live-button", no);
4388
+ function Zc() {
4389
+ customElements.define("vindral-controller", Mi), customElements.define("vindral-control-bar", Fn), customElements.define("vindral-advanced-rendition-menu", Ge), customElements.define("vindral-advanced-rendition-menu-list", rt), customElements.define("vindral-play-button", po), customElements.define("vindral-mute-button", oo), customElements.define("vindral-buffering-overlay", At), customElements.define("vindral-scroll-overlay", Us), customElements.define("vindral-play-overlay", Gc), customElements.define("vindral-user-input-play-overlay", Ic), customElements.define("vindral-fullscreen-button", Sa), customElements.define("vindral-rendition-levels-menu", gs), customElements.define("vindral-rendition-levels-menu-list", Ts), customElements.define("vindral-channel-grid-button", On), customElements.define("vindral-channel-grid", en), customElements.define("vindral-channel-grid-item", Wt), customElements.define("vindral-pip-button", lo), customElements.define("vindral-airplay-button", Ct), customElements.define("vindral-cast-button", Pt), customElements.define("vindral-cast-overlay", Bt), customElements.define("vindral-buffering-icon", Dt), customElements.define("vindral-language-menu", Da), customElements.define("vindral-language-menu-list", Va), customElements.define("vindral-center-overlay", Rc), customElements.define("vindral-message", Hc), customElements.define("vindral-volume-range", Xc), customElements.define("vindral-poster-overlay", cs), customElements.define("vindral-player", qo), customElements.define("vindral-seek-bar", vc), customElements.define("vindral-live-button", ro);
4359
4390
  }
4360
4391
  //#endregion
4361
- export { qc as t };
4392
+ export { Zc as t };