@hanifhan1f/vidstack 1.12.33 → 1.12.35

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.
Files changed (210) hide show
  1. package/cdn/with-layouts/chunks/{vidstack-BCLumCST.js → vidstack-BEgmmcDO.js} +56 -52
  2. package/cdn/with-layouts/chunks/{vidstack-DJyGEdCH.js → vidstack-t3PBZMbl.js} +1 -1
  3. package/cdn/with-layouts/vidstack.js +1 -1
  4. package/dev/chunks/{vidstack-B__DfQsT.js → vidstack-BReSQAMt.js} +10 -6
  5. package/dev/define/templates/vidstack-audio-layout.js +1 -1
  6. package/dev/define/templates/vidstack-video-layout.js +7 -5
  7. package/dev/define/vidstack-player-default-layout.js +1 -1
  8. package/dev/define/vidstack-player-layouts.js +1 -1
  9. package/dev/vidstack-elements.js +1 -1
  10. package/dev/vidstack.js +0 -4
  11. package/elements.d.ts +1 -1
  12. package/global/player.d.ts +1 -1
  13. package/global/plyr.d.ts +2 -2
  14. package/index.d.ts +2 -2
  15. package/package.json +1 -1
  16. package/prod/chunks/{vidstack-BnEo_Sla.js → vidstack-B0glDgAI.js} +10 -6
  17. package/prod/define/templates/vidstack-audio-layout.js +1 -1
  18. package/prod/define/templates/vidstack-video-layout.js +7 -5
  19. package/prod/define/vidstack-player-default-layout.js +1 -1
  20. package/prod/define/vidstack-player-layouts.js +1 -1
  21. package/prod/vidstack-elements.js +1 -1
  22. package/server/chunks/{vidstack-BIGdJnUK.js → vidstack-nANS1jfu.js} +16 -10
  23. package/server/define/vidstack-player-default-layout.js +1 -1
  24. package/server/define/vidstack-player-layouts.js +1 -1
  25. package/server/vidstack-elements.js +1 -1
  26. package/types/{vidstack-DYLKXUvI.d.ts → vidstack-CZqFq0VF.d.ts} +13 -1
  27. package/cdn/chunks/vidstack-8JHLDxl5.js +0 -1
  28. package/cdn/chunks/vidstack-BF7lZRtq.js +0 -3
  29. package/cdn/chunks/vidstack-BYgY9wmd.js +0 -1
  30. package/cdn/chunks/vidstack-BYpysj84.js +0 -1
  31. package/cdn/chunks/vidstack-Bjo5esRp.js +0 -1
  32. package/cdn/chunks/vidstack-BkxGdzTJ.js +0 -16
  33. package/cdn/chunks/vidstack-BuL67v3q.js +0 -1
  34. package/cdn/chunks/vidstack-Bzk6lVKb.js +0 -1
  35. package/cdn/chunks/vidstack-C0msPRTd.js +0 -3
  36. package/cdn/chunks/vidstack-C1FlyyzK.js +0 -1
  37. package/cdn/chunks/vidstack-CIjxJCz3.js +0 -1
  38. package/cdn/chunks/vidstack-CioT3Yw2.js +0 -1
  39. package/cdn/chunks/vidstack-Cj0I-Rec.js +0 -1
  40. package/cdn/chunks/vidstack-CmpbA3Yd.js +0 -16
  41. package/cdn/chunks/vidstack-CnWKPIKT.js +0 -16
  42. package/cdn/chunks/vidstack-CrqkytHl.js +0 -1
  43. package/cdn/chunks/vidstack-D0M8R0ZU.js +0 -1
  44. package/cdn/chunks/vidstack-D40FSa5B.js +0 -3
  45. package/cdn/chunks/vidstack-D84Fzc__.js +0 -16
  46. package/cdn/chunks/vidstack-DD2JwFVU.js +0 -1
  47. package/cdn/chunks/vidstack-DQvyz7Mm.js +0 -1
  48. package/cdn/chunks/vidstack-Dd9fqVv6.js +0 -1
  49. package/cdn/chunks/vidstack-DfDZuHNP.js +0 -1
  50. package/cdn/chunks/vidstack-uMxrPflF.js +0 -1
  51. package/cdn/chunks/vidstack-xjJ-ui_l.js +0 -1
  52. package/cdn/chunks/vidstack-zemsqC5d.js +0 -1
  53. package/cdn/providers/vidstack-audio-2Dt_Ivbp.js +0 -1
  54. package/cdn/providers/vidstack-audio-BOGYlExy.js +0 -1
  55. package/cdn/providers/vidstack-dash-CUtD4e6q.js +0 -1
  56. package/cdn/providers/vidstack-dash-D4ZARr66.js +0 -1
  57. package/cdn/providers/vidstack-google-cast-BdORATUX.js +0 -1
  58. package/cdn/providers/vidstack-hls-8-552IuX.js +0 -1
  59. package/cdn/providers/vidstack-hls-R25Kb6DP.js +0 -1
  60. package/cdn/providers/vidstack-html-BvVaN2VT.js +0 -1
  61. package/cdn/providers/vidstack-html-DaAUJYsD.js +0 -1
  62. package/cdn/providers/vidstack-video-BnwQZKER.js +0 -1
  63. package/cdn/providers/vidstack-video-Csvox7SO.js +0 -1
  64. package/cdn/providers/vidstack-vimeo-D4Z96kg2.js +0 -1
  65. package/cdn/providers/vidstack-vimeo-gJmBqtLK.js +0 -1
  66. package/cdn/providers/vidstack-youtube-Chl_dTAz.js +0 -1
  67. package/cdn/providers/vidstack-youtube-DiND6h3s.js +0 -1
  68. package/cdn/with-layouts/chunks/vidstack-4liSokT6.js +0 -1
  69. package/cdn/with-layouts/chunks/vidstack-B97B8XDc.js +0 -3
  70. package/cdn/with-layouts/chunks/vidstack-BD5YoTt5.js +0 -937
  71. package/cdn/with-layouts/chunks/vidstack-BGhRKayG.js +0 -914
  72. package/cdn/with-layouts/chunks/vidstack-BL_lNyW_.js +0 -1
  73. package/cdn/with-layouts/chunks/vidstack-BMhNagfl.js +0 -1
  74. package/cdn/with-layouts/chunks/vidstack-BP3ybDy9.js +0 -912
  75. package/cdn/with-layouts/chunks/vidstack-BbFHhcVG.js +0 -1
  76. package/cdn/with-layouts/chunks/vidstack-BjOOdDcQ.js +0 -1
  77. package/cdn/with-layouts/chunks/vidstack-C5AP9wid.js +0 -1
  78. package/cdn/with-layouts/chunks/vidstack-CS2aNc61.js +0 -1
  79. package/cdn/with-layouts/chunks/vidstack-CXEcXyBI.js +0 -1
  80. package/cdn/with-layouts/chunks/vidstack-Ciq-n5rg.js +0 -1
  81. package/cdn/with-layouts/chunks/vidstack-CmuGllcj.js +0 -1
  82. package/cdn/with-layouts/chunks/vidstack-CyNByJUW.js +0 -912
  83. package/cdn/with-layouts/chunks/vidstack-D-3_fAsK.js +0 -1
  84. package/cdn/with-layouts/chunks/vidstack-DCaNJN4T.js +0 -1
  85. package/cdn/with-layouts/chunks/vidstack-DKqYI_HJ.js +0 -1
  86. package/cdn/with-layouts/chunks/vidstack-DLGH9jfs.js +0 -1
  87. package/cdn/with-layouts/chunks/vidstack-DLVdcWrK.js +0 -3
  88. package/cdn/with-layouts/chunks/vidstack-DPO7J4-v.js +0 -3
  89. package/cdn/with-layouts/chunks/vidstack-DWjB11vV.js +0 -1
  90. package/cdn/with-layouts/chunks/vidstack-Dd3L-eQj.js +0 -1
  91. package/cdn/with-layouts/chunks/vidstack-Dh2GOjra.js +0 -1
  92. package/cdn/with-layouts/chunks/vidstack-DhNpv7SU.js +0 -1
  93. package/cdn/with-layouts/chunks/vidstack-QW5tTAS4.js +0 -897
  94. package/cdn/with-layouts/chunks/vidstack-T2rZVigk.js +0 -912
  95. package/cdn/with-layouts/chunks/vidstack-Xe_d7ovA.js +0 -1
  96. package/cdn/with-layouts/chunks/vidstack-wt2OT4N7.js +0 -1
  97. package/cdn/with-layouts/providers/vidstack-audio-Bw1csc6N.js +0 -1
  98. package/cdn/with-layouts/providers/vidstack-audio-CwoQJvl2.js +0 -1
  99. package/cdn/with-layouts/providers/vidstack-dash-CJsKJfLI.js +0 -1
  100. package/cdn/with-layouts/providers/vidstack-dash-DHRMFG4Y.js +0 -1
  101. package/cdn/with-layouts/providers/vidstack-google-cast-BSYJYn-o.js +0 -1
  102. package/cdn/with-layouts/providers/vidstack-hls-DG1rTEqu.js +0 -1
  103. package/cdn/with-layouts/providers/vidstack-hls-ji26kFdQ.js +0 -1
  104. package/cdn/with-layouts/providers/vidstack-html-BvHMxtoe.js +0 -1
  105. package/cdn/with-layouts/providers/vidstack-html-CoKFAYW5.js +0 -1
  106. package/cdn/with-layouts/providers/vidstack-video-1Uj5cNP2.js +0 -1
  107. package/cdn/with-layouts/providers/vidstack-video-CIxFJ9Z1.js +0 -1
  108. package/cdn/with-layouts/providers/vidstack-vimeo-CNLKOGMa.js +0 -1
  109. package/cdn/with-layouts/providers/vidstack-vimeo-DACTbJaQ.js +0 -1
  110. package/cdn/with-layouts/providers/vidstack-youtube-D1e-LE-8.js +0 -1
  111. package/cdn/with-layouts/providers/vidstack-youtube-RoLp-I6u.js +0 -1
  112. package/dev/chunks/vidstack-03oQOdB7.js +0 -58
  113. package/dev/chunks/vidstack-0XhA3AD_.js +0 -5181
  114. package/dev/chunks/vidstack-44ILR0Cb.js +0 -1521
  115. package/dev/chunks/vidstack-B4XOm7dP.js +0 -104
  116. package/dev/chunks/vidstack-BJsZjPkB.js +0 -204
  117. package/dev/chunks/vidstack-BXSB7eI9.js +0 -58
  118. package/dev/chunks/vidstack-BaGbgcvz.js +0 -107
  119. package/dev/chunks/vidstack-Blfm1k-4.js +0 -1520
  120. package/dev/chunks/vidstack-Bo8BNFJ2.js +0 -2986
  121. package/dev/chunks/vidstack-Bs54kFSz.js +0 -66
  122. package/dev/chunks/vidstack-C3N4zIuV.js +0 -254
  123. package/dev/chunks/vidstack-C4aPQ7hZ.js +0 -1482
  124. package/dev/chunks/vidstack-C6OqdJO7.js +0 -114
  125. package/dev/chunks/vidstack-CAL4iu_K.js +0 -1482
  126. package/dev/chunks/vidstack-CEjYxSqZ.js +0 -297
  127. package/dev/chunks/vidstack-CJCnHmKE.js +0 -104
  128. package/dev/chunks/vidstack-CQdFhXSo.js +0 -204
  129. package/dev/chunks/vidstack-CSryZFvY.js +0 -1521
  130. package/dev/chunks/vidstack-C_rvOKWp.js +0 -33
  131. package/dev/chunks/vidstack-CaudO1jl.js +0 -109
  132. package/dev/chunks/vidstack-CcQdBWil.js +0 -58
  133. package/dev/chunks/vidstack-Cky9ors4.js +0 -297
  134. package/dev/chunks/vidstack-DAOcbKGP.js +0 -254
  135. package/dev/chunks/vidstack-DD_3HszA.js +0 -1520
  136. package/dev/chunks/vidstack-DKaohJzR.js +0 -5181
  137. package/dev/chunks/vidstack-DLXCqdYV.js +0 -3010
  138. package/dev/chunks/vidstack-DS7nRfge.js +0 -204
  139. package/dev/chunks/vidstack-DWtK42Sh.js +0 -1483
  140. package/dev/chunks/vidstack-D_LvMxPr.js +0 -204
  141. package/dev/chunks/vidstack-Db1-Hg_U.js +0 -297
  142. package/dev/chunks/vidstack-DrczgsqN.js +0 -297
  143. package/dev/chunks/vidstack-EoLRQZbs.js +0 -2986
  144. package/dev/chunks/vidstack-FKkY62Dr.js +0 -104
  145. package/dev/chunks/vidstack-el2dbO0m.js +0 -5181
  146. package/dev/chunks/vidstack-rvhuswgi.js +0 -2986
  147. package/prod/chunks/vidstack-BAqdCFIm.js +0 -4771
  148. package/prod/chunks/vidstack-BHqGlnGz.js +0 -1482
  149. package/prod/chunks/vidstack-BP49Gz0m.js +0 -58
  150. package/prod/chunks/vidstack-BRZe2BNi.js +0 -107
  151. package/prod/chunks/vidstack-BRnfTkxi.js +0 -297
  152. package/prod/chunks/vidstack-BaaRY-9x.js +0 -201
  153. package/prod/chunks/vidstack-BexQYZop.js +0 -2976
  154. package/prod/chunks/vidstack-BpLd9ASW.js +0 -246
  155. package/prod/chunks/vidstack-C-yd_bAJ.js +0 -4771
  156. package/prod/chunks/vidstack-C05ipjAK.js +0 -1520
  157. package/prod/chunks/vidstack-CA4tDJdF.js +0 -33
  158. package/prod/chunks/vidstack-CFXAYpuh.js +0 -1521
  159. package/prod/chunks/vidstack-CIvL96_j.js +0 -297
  160. package/prod/chunks/vidstack-CYVCrFjx.js +0 -201
  161. package/prod/chunks/vidstack-Cs0fH84E.js +0 -1521
  162. package/prod/chunks/vidstack-D7hJcnN-.js +0 -297
  163. package/prod/chunks/vidstack-DDePVDjt.js +0 -2976
  164. package/prod/chunks/vidstack-DESBVLFp.js +0 -104
  165. package/prod/chunks/vidstack-DMDDSV3t.js +0 -104
  166. package/prod/chunks/vidstack-DXfGRhxZ.js +0 -201
  167. package/prod/chunks/vidstack-D_atbNqH.js +0 -3000
  168. package/prod/chunks/vidstack-DcMkaIHJ.js +0 -2976
  169. package/prod/chunks/vidstack-DnRxQoqP.js +0 -104
  170. package/prod/chunks/vidstack-DwenML7x.js +0 -4771
  171. package/prod/chunks/vidstack-IDWYvfna.js +0 -58
  172. package/prod/chunks/vidstack-Ko2EJadT.js +0 -1483
  173. package/prod/chunks/vidstack-MbEMbVfP.js +0 -109
  174. package/prod/chunks/vidstack-ShUhyBfI.js +0 -201
  175. package/prod/chunks/vidstack-SnIdjCkV.js +0 -58
  176. package/prod/chunks/vidstack-V1jwkH0s.js +0 -66
  177. package/prod/chunks/vidstack-V9U6gsde.js +0 -1482
  178. package/prod/chunks/vidstack-XA3zT5W9.js +0 -297
  179. package/prod/chunks/vidstack-bdt7uOlN.js +0 -114
  180. package/prod/chunks/vidstack-kdaDngIm.js +0 -1520
  181. package/prod/chunks/vidstack-oNEzlviH.js +0 -246
  182. package/server/chunks/vidstack-B2Bc9g7_.js +0 -2000
  183. package/server/chunks/vidstack-B4CWj0Hp.js +0 -381
  184. package/server/chunks/vidstack-B8P1aUCK.js +0 -1503
  185. package/server/chunks/vidstack-B8_v1VQn.js +0 -3059
  186. package/server/chunks/vidstack-BGgfNYAH.js +0 -141
  187. package/server/chunks/vidstack-BGmwlunt.js +0 -3035
  188. package/server/chunks/vidstack-BO8FLks6.js +0 -295
  189. package/server/chunks/vidstack-BosyhF3p.js +0 -207
  190. package/server/chunks/vidstack-C19bj3Wq.js +0 -307
  191. package/server/chunks/vidstack-C8F1EUBn.js +0 -104
  192. package/server/chunks/vidstack-CFTkUXGK.js +0 -295
  193. package/server/chunks/vidstack-CQMB7Msg.js +0 -1502
  194. package/server/chunks/vidstack-CWho6PlG.js +0 -141
  195. package/server/chunks/vidstack-CdBfecZT.js +0 -205
  196. package/server/chunks/vidstack-Cv_Art04.js +0 -4635
  197. package/server/chunks/vidstack-DE4b5Bgx.js +0 -2002
  198. package/server/chunks/vidstack-Db22EuE_.js +0 -207
  199. package/server/chunks/vidstack-DbvCOsqU.js +0 -107
  200. package/server/chunks/vidstack-DgHfFDiw.js +0 -1962
  201. package/server/chunks/vidstack-DhF59-Up.js +0 -4635
  202. package/server/chunks/vidstack-DnkB7eGO.js +0 -207
  203. package/server/chunks/vidstack-DoHmOxNm.js +0 -295
  204. package/server/chunks/vidstack-DsnTqzpL.js +0 -29
  205. package/server/chunks/vidstack-DzWvfg1d.js +0 -1503
  206. package/server/chunks/vidstack-FHGkN5xj.js +0 -566
  207. package/server/chunks/vidstack-PnFpou7g.js +0 -3035
  208. package/server/chunks/vidstack-f5-aflD2.js +0 -104
  209. package/server/chunks/vidstack-gEJMQpTE.js +0 -2001
  210. package/server/chunks/vidstack-n4zAyLEV.js +0 -2139
@@ -1 +1 @@
1
- import{ao as m,e as c}from"./vidstack-Dy1Hfo7P.js";import{c as p,a as r}from"./vidstack-BP3ybDy9.js";import"./vidstack-CwzW7rJU.js";import"./vidstack-CaW6KGwN.js";import"./vidstack-DeLOZ-hK.js";import"./vidstack-CROJF16Z.js";import"./vidstack-C_AxqLKV.js";import"./vidstack-DRH_1tFW.js";import"./vidstack-BfBBPhXV.js";import"./vidstack-Bxv1Qnxe.js";import"https://cdn.vidstack.io/icons";const d=r('<svg viewBox="0 0 32 32" fill="none" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"></svg>');function l(o,s){const n=p(d);n.innerHTML=m,o.append(n);const e=document.createElement("span");e.classList.add("vds-google-cast-info"),o.append(e);const t=document.createElement("span");t.classList.add("vds-google-cast-device-name"),c(()=>{const{remotePlaybackInfo:i}=s,a=i();return a?.deviceName&&(t.textContent=a.deviceName,e.append("Google Cast on ",t)),()=>{e.textContent=""}})}export{l as insertContent};
1
+ import{ao as m,e as c}from"./vidstack-Dy1Hfo7P.js";import{c as p,a as r}from"./vidstack-BEgmmcDO.js";import"./vidstack-CwzW7rJU.js";import"./vidstack-CaW6KGwN.js";import"./vidstack-DeLOZ-hK.js";import"./vidstack-CROJF16Z.js";import"./vidstack-C_AxqLKV.js";import"./vidstack-DRH_1tFW.js";import"./vidstack-BfBBPhXV.js";import"./vidstack-Bxv1Qnxe.js";import"https://cdn.vidstack.io/icons";const d=r('<svg viewBox="0 0 32 32" fill="none" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"></svg>');function l(o,s){const n=p(d);n.innerHTML=m,o.append(n);const e=document.createElement("span");e.classList.add("vds-google-cast-info"),o.append(e);const t=document.createElement("span");t.classList.add("vds-google-cast-device-name"),c(()=>{const{remotePlaybackInfo:i}=s,a=i();return a?.deviceName&&(t.textContent=a.deviceName,e.append("Google Cast on ",t)),()=>{e.textContent=""}})}export{l as insertContent};
@@ -1 +1 @@
1
- import"./chunks/vidstack-BCLumCST.js";import"https://cdn.vidstack.io/icons";import"./chunks/vidstack-Dy1Hfo7P.js";import"./chunks/vidstack-CwzW7rJU.js";import"./chunks/vidstack-CaW6KGwN.js";import"./chunks/vidstack-DeLOZ-hK.js";import"./chunks/vidstack-CROJF16Z.js";import"./chunks/vidstack-C_AxqLKV.js";import"./chunks/vidstack-DRH_1tFW.js";import"./chunks/vidstack-BfBBPhXV.js";import"./chunks/vidstack-Bxv1Qnxe.js";
1
+ import"./chunks/vidstack-BEgmmcDO.js";import"https://cdn.vidstack.io/icons";import"./chunks/vidstack-Dy1Hfo7P.js";import"./chunks/vidstack-CwzW7rJU.js";import"./chunks/vidstack-CaW6KGwN.js";import"./chunks/vidstack-DeLOZ-hK.js";import"./chunks/vidstack-CROJF16Z.js";import"./chunks/vidstack-C_AxqLKV.js";import"./chunks/vidstack-DRH_1tFW.js";import"./chunks/vidstack-BfBBPhXV.js";import"./chunks/vidstack-Bxv1Qnxe.js";
@@ -36,7 +36,8 @@ const defaultLayoutProps = {
36
36
  smallWhen: false,
37
37
  thumbnails: null,
38
38
  translations: null,
39
- when: false
39
+ when: false,
40
+ guestMode: false
40
41
  };
41
42
 
42
43
  class DefaultLayout extends Component {
@@ -138,13 +139,14 @@ function DefaultAirPlayButton({ tooltip }) {
138
139
  `;
139
140
  }
140
141
  function DefaultPlayButton({ tooltip }) {
141
- const { translations } = useDefaultLayoutContext(), $playText = $i18n(translations, "Play"), $pauseText = $i18n(translations, "Pause");
142
+ const { translations, guestMode } = useDefaultLayoutContext(), $playText = $i18n(translations, "Play"), $pauseText = $i18n(translations, "Pause");
142
143
  return html`
143
144
  <media-tooltip class="vds-play-tooltip vds-tooltip">
144
145
  <media-tooltip-trigger>
145
146
  <media-play-button
146
147
  class="vds-play-button vds-button"
147
148
  aria-label=${$i18n(translations, "Play")}
149
+ ?disabled=${$signal(guestMode)}
148
150
  >
149
151
  ${IconSlots(["play", "pause", "replay"])}
150
152
  </media-play-button>
@@ -240,7 +242,7 @@ function DefaultSeekButton({
240
242
  backward,
241
243
  tooltip
242
244
  }) {
243
- const { translations, seekStep } = useDefaultLayoutContext(), seekText = !backward ? "Seek Forward" : "Seek Backward", $label = $i18n(translations, seekText), $seconds = () => (backward ? -1 : 1) * seekStep();
245
+ const { translations, seekStep, guestMode } = useDefaultLayoutContext(), seekText = !backward ? "Seek Forward" : "Seek Backward", $label = $i18n(translations, seekText), $seconds = () => (backward ? -1 : 1) * seekStep();
244
246
  return html`
245
247
  <media-tooltip class="vds-seek-tooltip vds-tooltip">
246
248
  <media-tooltip-trigger>
@@ -248,6 +250,7 @@ function DefaultSeekButton({
248
250
  class="vds-seek-button vds-button"
249
251
  seconds=${$signal($seconds)}
250
252
  aria-label=${$label}
253
+ ?disabled=${$signal(guestMode)}
251
254
  >
252
255
  ${!backward ? IconSlot("seek-forward") : IconSlot("seek-backward")}
253
256
  </media-seek-button>
@@ -1532,8 +1535,9 @@ function DefaultTimeSlider() {
1532
1535
  sliderChaptersMinWidth,
1533
1536
  disableTimeSlider,
1534
1537
  seekStep,
1535
- noScrubGesture
1536
- } = useDefaultLayoutContext(), $label = $i18n(translations, "Seek"), $isDisabled = $signal(disableTimeSlider), $isChaptersDisabled = $signal(() => $width() < sliderChaptersMinWidth()), $thumbnails = $signal(thumbnails);
1538
+ noScrubGesture,
1539
+ guestMode
1540
+ } = useDefaultLayoutContext(), $label = $i18n(translations, "Seek"), $isDisabled = $signal(() => disableTimeSlider() || guestMode()), $isChaptersDisabled = $signal(() => $width() < sliderChaptersMinWidth()), $thumbnails = $signal(thumbnails);
1537
1541
  useResizeObserver($ref, () => {
1538
1542
  const el = $ref();
1539
1543
  el && $width.set(el.clientWidth);
@@ -1544,7 +1548,7 @@ function DefaultTimeSlider() {
1544
1548
  aria-label=${$label}
1545
1549
  key-step=${$signal(seekStep)}
1546
1550
  ?disabled=${$isDisabled}
1547
- ?no-swipe-gesture=${$signal(noScrubGesture)}
1551
+ ?no-swipe-gesture=${$signal(() => noScrubGesture() || guestMode())}
1548
1552
  ${ref($ref.set)}
1549
1553
  >
1550
1554
  <media-slider-chapters class="vds-slider-chapters" ?disabled=${$isChaptersDisabled}>
@@ -1,5 +1,5 @@
1
1
  import { signal, effect, toggleClass, Host, listenEvent } from '../../chunks/vidstack-C1PwJD_4.js';
2
- import { DefaultLayout, DefaultAnnouncer, DefaultCaptions, DefaultSeekButton, DefaultPlayButton, DefaultTimeSlider, DefaultTimeInvert, DefaultVolumePopup, DefaultCaptionButton, DefaultDownloadButton, DefaultAirPlayButton, DefaultChaptersMenu, DefaultSettingsMenu, useDefaultLayoutContext, DefaultControlsSpacer, i18n, DefaultChapterTitle, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-B__DfQsT.js';
2
+ import { DefaultLayout, DefaultAnnouncer, DefaultCaptions, DefaultSeekButton, DefaultPlayButton, DefaultTimeSlider, DefaultTimeInvert, DefaultVolumePopup, DefaultCaptionButton, DefaultDownloadButton, DefaultAirPlayButton, DefaultChaptersMenu, DefaultSettingsMenu, useDefaultLayoutContext, DefaultControlsSpacer, i18n, DefaultChapterTitle, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-BReSQAMt.js';
3
3
  import { useMediaContext, useMediaState } from '../../chunks/vidstack-BjxlZzGu.js';
4
4
  import { useTransitionActive, useResizeObserver, isHTMLElement } from '../../chunks/vidstack-C0SWkbs7.js';
5
5
  import { $signal, SlotManager } from '../../chunks/vidstack-0Of4tJ8D.js';
@@ -1,5 +1,5 @@
1
1
  import { computed, signal, effect, camelToKebabCase, Host } from '../../chunks/vidstack-C1PwJD_4.js';
2
- import { DefaultLayout, useDefaultLayoutContext, DefaultPlayButton, DefaultAnnouncer, DefaultCaptions, DefaultControlsSpacer, DefaultCaptionButton, DefaultDownloadButton, DefaultVolumePopup, DefaultTimeSlider, DefaultSeekButton, DefaultTimeInfo, DefaultFullscreenButton, DefaultTitle, DefaultPIPButton, DefaultChaptersMenu, DefaultSettingsMenu, DefaultEpisodeButton, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-B__DfQsT.js';
2
+ import { DefaultLayout, useDefaultLayoutContext, DefaultPlayButton, DefaultAnnouncer, DefaultCaptions, DefaultControlsSpacer, DefaultCaptionButton, DefaultDownloadButton, DefaultVolumePopup, DefaultTimeSlider, DefaultSeekButton, DefaultTimeInfo, DefaultFullscreenButton, DefaultTitle, DefaultPIPButton, DefaultChaptersMenu, DefaultSettingsMenu, DefaultEpisodeButton, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-BReSQAMt.js';
3
3
  import { useMediaContext, useMediaState } from '../../chunks/vidstack-BjxlZzGu.js';
4
4
  import { $signal, SlotManager } from '../../chunks/vidstack-0Of4tJ8D.js';
5
5
  import { LitElement } from '../../chunks/vidstack-CwTj4H1w.js';
@@ -403,11 +403,15 @@ function DefaultVideoMenus() {
403
403
  }
404
404
  function DefaultVideoGestures() {
405
405
  return $signal(() => {
406
- const { noGestures } = useDefaultLayoutContext();
406
+ const { noGestures, guestMode } = useDefaultLayoutContext();
407
407
  if (noGestures()) return null;
408
408
  return html`
409
409
  <div class="vds-gestures">
410
- <media-gesture class="vds-gesture" event="pointerup" action="toggle:paused"></media-gesture>
410
+ ${!guestMode() ? html`
411
+ <media-gesture class="vds-gesture" event="pointerup" action="toggle:paused"></media-gesture>
412
+ <media-gesture class="vds-gesture" event="dblpointerup" action="seek:-10"></media-gesture>
413
+ <media-gesture class="vds-gesture" event="dblpointerup" action="seek:10"></media-gesture>
414
+ ` : null}
411
415
  <media-gesture
412
416
  class="vds-gesture"
413
417
  event="pointerup"
@@ -418,8 +422,6 @@ function DefaultVideoGestures() {
418
422
  event="dblpointerup"
419
423
  action="toggle:fullscreen"
420
424
  ></media-gesture>
421
- <media-gesture class="vds-gesture" event="dblpointerup" action="seek:-10"></media-gesture>
422
- <media-gesture class="vds-gesture" event="dblpointerup" action="seek:10"></media-gesture>
423
425
  </div>
424
426
  `;
425
427
  });
@@ -1,7 +1,7 @@
1
1
  import { defineCustomElement } from '../chunks/vidstack-C1PwJD_4.js';
2
2
  import { MediaAudioLayoutElement } from './templates/vidstack-audio-layout.js';
3
3
  import { MediaVideoLayoutElement } from './templates/vidstack-video-layout.js';
4
- import '../chunks/vidstack-B__DfQsT.js';
4
+ import '../chunks/vidstack-BReSQAMt.js';
5
5
  import '../chunks/vidstack-BjxlZzGu.js';
6
6
  import '../chunks/vidstack-C0SWkbs7.js';
7
7
  import '@floating-ui/dom';
@@ -2,7 +2,7 @@ import { defineCustomElement } from '../chunks/vidstack-C1PwJD_4.js';
2
2
  import { MediaAudioLayoutElement } from './templates/vidstack-audio-layout.js';
3
3
  import { MediaVideoLayoutElement } from './templates/vidstack-video-layout.js';
4
4
  import { MediaPlyrLayoutElement } from './templates/plyr-layout.js';
5
- import '../chunks/vidstack-B__DfQsT.js';
5
+ import '../chunks/vidstack-BReSQAMt.js';
6
6
  import '../chunks/vidstack-BjxlZzGu.js';
7
7
  import '../chunks/vidstack-C0SWkbs7.js';
8
8
  import '@floating-ui/dom';
@@ -25,7 +25,7 @@ import './chunks/vidstack-Becy7l6h.js';
25
25
  import './chunks/vidstack-Dv_LIPFu.js';
26
26
  import './chunks/vidstack-Bpr4fI4n.js';
27
27
  import './chunks/vidstack-CzCQJ29U.js';
28
- import './chunks/vidstack-B__DfQsT.js';
28
+ import './chunks/vidstack-BReSQAMt.js';
29
29
  import './chunks/vidstack-0Of4tJ8D.js';
30
30
  import 'lit-html/directives/if-defined.js';
31
31
  import 'lit-html/directives/unsafe-svg.js';
package/dev/vidstack.js CHANGED
@@ -84,8 +84,4 @@ class SliderThumbnail extends Thumbnail {
84
84
  }
85
85
  }
86
86
 
87
- {
88
- console.warn("[vidstack] dev mode!");
89
- }
90
-
91
87
  export { LibASSTextRenderer, Slider, SliderThumbnail, Thumbnail };
package/elements.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  import { MaverickElementConstructor, Attributes, Component } from './types/vidstack-BOvzfZjK.js';
5
5
  export { defineCustomElement } from './types/vidstack-BOvzfZjK.js';
6
- import { Captions, Gesture, MediaProvider, MediaPlayer, MediaPlayerProps, MediaAnnouncer, Poster, PosterProps, Thumbnail, ThumbnailProps, Time, Controls, ControlsGroup, MediaPlayerQuery, DefaultLayoutProps, PlyrLayout, AirPlayButton, CaptionButton, FullscreenButton, GoogleCastButton, LiveButton, MuteButton, PIPButton, PlayButton, SeekButton, ToggleButton, ToggleButtonProps, Tooltip, TooltipTrigger, TooltipContent, AudioRadioGroup, CaptionsRadioGroup, Menu, MenuButton, MenuPortal, MenuPortalProps, MenuItem, MenuItems, ChaptersRadioGroup, SpeedRadioGroup, AudioGainRadioGroup, QualityRadioGroup, Radio, RadioGroup, Slider, SliderValue, SliderValueProps, SliderVideo, TimeSlider, SliderPreview, VolumeSlider, AudioGainSlider, SpeedSlider, QualitySlider, SliderChapters } from './types/vidstack-DYLKXUvI.js';
6
+ import { Captions, Gesture, MediaProvider, MediaPlayer, MediaPlayerProps, MediaAnnouncer, Poster, PosterProps, Thumbnail, ThumbnailProps, Time, Controls, ControlsGroup, MediaPlayerQuery, DefaultLayoutProps, PlyrLayout, AirPlayButton, CaptionButton, FullscreenButton, GoogleCastButton, LiveButton, MuteButton, PIPButton, PlayButton, SeekButton, ToggleButton, ToggleButtonProps, Tooltip, TooltipTrigger, TooltipContent, AudioRadioGroup, CaptionsRadioGroup, Menu, MenuButton, MenuPortal, MenuPortalProps, MenuItem, MenuItems, ChaptersRadioGroup, SpeedRadioGroup, AudioGainRadioGroup, QualityRadioGroup, Radio, RadioGroup, Slider, SliderValue, SliderValueProps, SliderVideo, TimeSlider, SliderPreview, VolumeSlider, AudioGainSlider, SpeedSlider, QualitySlider, SliderChapters } from './types/vidstack-CZqFq0VF.js';
7
7
  import * as lit_html from 'lit-html';
8
8
  import 'media-captions';
9
9
  import 'dashjs';
@@ -1,6 +1,6 @@
1
1
  import '../types/vidstack-BOvzfZjK.js';
2
2
  import { MediaAudioLayoutElement, MediaVideoLayoutElement, MediaPlyrLayoutElement, MediaPlayerElement } from '../elements.js';
3
- import { DefaultLayoutProps, PlyrLayoutProps, MediaPlayerProps, TextTrackInit } from '../types/vidstack-DYLKXUvI.js';
3
+ import { DefaultLayoutProps, PlyrLayoutProps, MediaPlayerProps, TextTrackInit } from '../types/vidstack-CZqFq0VF.js';
4
4
  import 'lit-html';
5
5
  import 'media-captions';
6
6
  import 'dashjs';
package/global/plyr.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { MediaPlayerState, MediaViewType, PlayerSrc, TextTrackInit, FileDownloadInfo, MediaEvents, MediaTextTrackChangeEvent, MediaControlsChangeEvent, MediaFullscreenChangeEvent, MediaRateChangeEvent, MediaCanPlayEvent, MediaTimeUpdateEvent, MediaVolumeChangeEvent, MediaPlayerProps, PlyrLayoutProps, LogLevel, PlyrLayoutTranslations } from '../types/vidstack-DYLKXUvI.js';
1
+ import { MediaPlayerState, MediaViewType, PlayerSrc, TextTrackInit, FileDownloadInfo, MediaEvents, MediaTextTrackChangeEvent, MediaControlsChangeEvent, MediaFullscreenChangeEvent, MediaRateChangeEvent, MediaCanPlayEvent, MediaTimeUpdateEvent, MediaVolumeChangeEvent, MediaPlayerProps, PlyrLayoutProps, LogLevel, PlyrLayoutTranslations } from '../types/vidstack-CZqFq0VF.js';
2
2
  import '../types/vidstack-BOvzfZjK.js';
3
3
  import { MediaPlayerElement, MediaProviderElement, MediaPlyrLayoutElement } from '../elements.js';
4
4
  import 'media-captions';
@@ -26,7 +26,7 @@ declare class Plyr implements PlyrProps, PlyrMethods {
26
26
  muted: boolean;
27
27
  loop: boolean;
28
28
  poster: string;
29
- get type(): "" | "google-cast" | "audio" | "video" | "dash" | "hls" | "vimeo" | "youtube";
29
+ get type(): "" | "video" | "audio" | "google-cast" | "dash" | "hls" | "vimeo" | "youtube";
30
30
  get isHTML5(): boolean;
31
31
  get isEmbed(): boolean;
32
32
  get buffered(): number;
package/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /// <reference path="./dom.d.ts" />
2
2
  /// <reference path="./google-cast.d.ts" />
3
3
 
4
- import { TextRenderer, TextTrack, TextTrackList, VideoQuality, MediaKeyShortcuts, AudioProvider, DASHProvider, GoogleCastProvider, HLSProvider, VideoProvider, VimeoProvider, YouTubeProvider, MediaProviderLoader, Src, MediaType, MediaContext, Thumbnail, SliderOrientation } from './types/vidstack-DYLKXUvI.js';
5
- export { AirPlayButton, AirPlayButtonEvents, AirPlayButtonProps, AnyMediaProvider, AudioGainRadioGroup, AudioGainRadioGroupChangeEvent, AudioGainRadioGroupEvents, AudioGainRadioGroupProps, AudioGainSlider, AudioGainSliderCSSVars, AudioGainSliderEvents, AudioGainSliderProps, AudioGainSliderState, AudioMimeType, AudioRadioGroup, AudioRadioGroupChangeEvent, AudioRadioGroupEvents, AudioRadioGroupProps, AudioRadioOption, AudioSrc, AudioSrcMeta, AudioTrack, AudioTrackAddEvent, AudioTrackChangeEvent, AudioTrackList, AudioTrackListEvent, AudioTrackListEvents, AudioTrackRemoveEvent, CaptionButton, CaptionButtonEvents, CaptionButtonProps, Captions, CaptionsProps, CaptionsRadioGroup, CaptionsRadioGroupChangeEvent, CaptionsRadioGroupEvents, CaptionsRadioGroupProps, CaptionsRadioOption, ChangeAudioTrackEventDetail, ChapterRadioGroupProps, ChaptersRadioGroup, ChaptersRadioGroupChangeEvent, ChaptersRadioGroupEvents, ChaptersRadioOption, Controls, ControlsChangeEvent, ControlsEvents, ControlsGroup, ControlsProps, DASHAdaptationSetRemovedNoCapabilitiesEvent, DASHAllTextTracksAddedEvent, DASHAstInFutureEvent, DASHBaseUrlsUpdatedEvent, DASHBufferLevelUpdatedEvent, DASHBufferLoadedEvent, DASHBufferStalledEvent, DASHBufferStateChangedEvent, DASHCanPlayEvent, DASHCanPlayThroughEvent, DASHCaptionContainerResizeEvent, DASHCaptionRenderedEvent, DASHConformanceViolationEvent, DASHConstructor, DASHConstructorLoader, DASHContentSteeringRequestCompletedEvent, DASHCueEnterEvent, DASHCueExitEvent, DASHDvbFontDownloadAddedEvent, DASHDvbFontDownloadCompleteEvent, DASHDvbFontDownloadFailedEvent, DASHDynamicToStaticEvent, DASHErrorEvent, DASHEventModeOnReceiveEvent, DASHEventModeOnStartEvent, DASHFragmentLoadingAbandonedEvent, DASHFragmentLoadingCompletedEvent, DASHFragmentLoadingProgressEvent, DASHFragmentLoadingStartedEvent, DASHInbandPrftEvent, DASHInstanceCallback, DASHInstanceEvent, DASHLibLoadErrorEvent, DASHLibLoadStartEvent, DASHLibLoadedEvent, DASHLibrary, DASHLogEvent, DASHManagedMediaSourceEndStreamingEvent, DASHManagedMediaSourceStartStreamingEvent, DASHManifestLoadedEvent, DASHManifestLoadingFinishedEvent, DASHManifestLoadingStartedEvent, DASHManifestValidityChangedEvent, DASHMediaEvent, DASHMetricAddedEvent, DASHMetricChangedEvent, DASHMetricUpdatedEvent, DASHMetricsChangedEvent, DASHMimeType, DASHNamespace, DASHNamespaceLoader, DASHPeriodSwitchCompletedEvent, DASHPeriodSwitchStartedEvent, DASHPlaybackEndedEvent, DASHPlaybackErrorEvent, DASHPlaybackLoadedDataEvent, DASHPlaybackMetaDataLoadedEvent, DASHPlaybackNotAllowedEvent, DASHPlaybackPausedEvent, DASHPlaybackPlayingEvent, DASHPlaybackProgressEvent, DASHPlaybackRateChangedEvent, DASHPlaybackSeekedEvent, DASHPlaybackSeekingEvent, DASHPlaybackStalledEvent, DASHPlaybackStartedEvent, DASHPlaybackTimeUpdatedEvent, DASHPlaybackVolumeChangedEvent, DASHPlaybackWaitingEvent, DASHProviderEvents, DASHQualityChangeRenderedEvent, DASHQualityChangeRequestedEvent, DASHRepresentationSwitchEvent, DASHSrc, DASHStreamActivatedEvent, DASHStreamDeactivatedEvent, DASHStreamInitializedEvent, DASHStreamInitializingEvent, DASHStreamTeardownCompleteEvent, DASHStreamUpdatedEvent, DASHTextTrackAddedEvent, DASHThroughputMeasurementStoredEvent, DASHTrackChangeRenderedEvent, DASHTtmlParsedEvent, DASHTtmlToParseEvent, DASHUnsupportedEvent, DEFAULT_AUDIO_GAINS, DEFAULT_PLAYBACK_RATES, DefaultLayoutProps, DefaultLayoutTranslations, DefaultLayoutWord, FileDownloadInfo, FindMediaPlayerEvent, FindMediaPlayerEventDetail, FullscreenAdapter, FullscreenButton, FullscreenButtonEvents, FullscreenButtonProps, FullscreenChangeEvent, FullscreenController, FullscreenErrorEvent, FullscreenEvents, Gesture, GestureAction, GestureEvent, GestureEventType, GestureEvents, GestureProps, GestureTriggerEvent, GestureWillTriggerEvent, GoogleCastButton, GoogleCastButtonEvents, GoogleCastButtonProps, GoogleCastEvent, GoogleCastEvents, GoogleCastLoadStartEvent, GoogleCastLoadedEvent, GoogleCastPromptError, GoogleCastPromptErrorCode, GoogleCastPromptErrorEvent, GoogleCastPromptEvent, HLSAudioTrackLoadedEvent, HLSAudioTrackLoadingEvent, HLSAudioTrackSwitchedEvent, HLSAudioTrackSwitchingEvent, HLSAudioTracksUpdatedEvent, HLSBackBufferReachedEvent, HLSBufferAppendedEvent, HLSBufferAppendingEvent, HLSBufferCodecsEvent, HLSBufferCreatedEvent, HLSBufferEosEvent, HLSBufferFlushedEvent, HLSBufferFlushingEvent, HLSBufferResetEvent, HLSConstructor, HLSConstructorLoader, HLSCuesParsedEvent, HLSDestroyingEvent, HLSErrorEvent, HLSFpsDropEvent, HLSFpsDropLevelCappingEvent, HLSFragBufferedDataEvent, HLSFragChangedEvent, HLSFragDecryptedEvent, HLSFragLoadEmergencyAbortedEvent, HLSFragLoadedEvent, HLSFragLoadingEvent, HLSFragParsedEvent, HLSFragParsingInitSegmentEvent, HLSFragParsingMetadataEvent, HLSFragParsingUserdataEvent, HLSInitPtsFoundEvent, HLSInstanceCallback, HLSInstanceEvent, HLSKeyLoadedEvent, HLSKeyLoadingEvent, HLSLevelLoadedEvent, HLSLevelLoadingEvent, HLSLevelPtsUpdatedEvent, HLSLevelSwitchedEvent, HLSLevelSwitchingEvent, HLSLevelUpdatedEvent, HLSLevelsUpdatedEvent, HLSLibLoadErrorEvent, HLSLibLoadStartEvent, HLSLibLoadedEvent, HLSLibrary, HLSManifestLoadedEvent, HLSManifestLoadingEvent, HLSManifestParsedEvent, HLSMediaAttachedEvent, HLSMediaAttachingEvent, HLSMediaDetachedEvent, HLSMediaDetachingEvent, HLSMediaEvent, HLSMimeType, HLSNonNativeTextTracksFoundEvent, HLSProviderEvents, HLSSrc, HLSSubtitleFragProcessedEvent, HLSSubtitleTrackLoadedEvent, HLSSubtitleTrackLoadingEvent, HLSSubtitleTrackSwitchEvent, HLSSubtitleTracksClearedEvent, HLSSubtitleTracksUpdatedEvent, HLSUnsupportedEvent, HTMLMediaSrc, List, ListAddEvent, ListEvents, ListItem, ListReadonlyChangeEvent, ListRemoveEvent, LiveButton, LiveButtonEvents, LiveButtonProps, LocalMediaStorage, LogEvent, LogEventDetail, Logger, LoggerEvents, MediaAbortEvent, MediaAirPlayRequestEvent, MediaAnnouncer, MediaAnnouncerEvents, MediaAnnouncerProps, MediaAnnouncerState, MediaAnnouncerTranslations, MediaAnnouncerWord, MediaAudioGainChangeEvent, MediaAudioGainChangeRequestEvent, MediaAudioTrackChangeEvent, MediaAudioTrackChangeRequestEvent, MediaAudioTracksChangeEvent, MediaAutoPlayChangeEvent, MediaAutoPlayEvent, MediaAutoPlayEventDetail, MediaAutoPlayFailEvent, MediaAutoPlayFailEventDetail, MediaCanLoadEvent, MediaCanLoadPosterEvent, MediaCanPlayDetail, MediaCanPlayEvent, MediaCanPlayThroughEvent, MediaClipEndChangeRequestEvent, MediaClipStartChangeRequestEvent, MediaControls, MediaControlsChangeEvent, MediaCrossOrigin, MediaDestroyEvent, MediaDurationChangeEvent, MediaDurationChangeRequestEvent, MediaEmptiedEvent, MediaEndEvent, MediaEndedEvent, MediaEnterFullscreenRequestEvent, MediaEnterPIPRequestEvent, MediaErrorCode, MediaErrorDetail, MediaErrorEvent, MediaEvent, MediaEvents, MediaExitFullscreenRequestEvent, MediaExitPIPRequestEvent, MediaFullscreenAdapter, MediaFullscreenChangeEvent, MediaFullscreenErrorEvent, MediaFullscreenRequestTarget, MediaGoogleCastRequestEvent, MediaHidePosterRequestEvent, MediaKeyShortcut, MediaKeyTarget, MediaKeysCallback, MediaLiveChangeEvent, MediaLiveEdgeChangeEvent, MediaLiveEdgeRequestEvent, MediaLoadStartEvent, MediaLoadedDataEvent, MediaLoadedMetadataEvent, MediaLoadingStrategy, MediaLoopChangeEvent, MediaLoopRequestEvent, MediaMuteRequestEvent, MediaOrientationChangeEvent, MediaOrientationLockRequestEvent, MediaOrientationUnlockRequestEvent, MediaPIPChangeEvent, MediaPIPErrorEvent, MediaPauseControlsRequestEvent, MediaPauseEvent, MediaPauseRequestEvent, MediaPlayEvent, MediaPlayFailEvent, MediaPlayRequestEvent, MediaPlayer, MediaPlayerConnectEvent, MediaPlayerEvents, MediaPlayerProps, MediaPlayerQuery, MediaPlayerState, MediaPlayingEvent, MediaPlaysInlineChangeEvent, MediaPosterChangeEvent, MediaPosterLoadingStrategy, MediaPosterStartLoadingRequestEvent, MediaProgressEvent, MediaProgressEventDetail, MediaProvider, MediaProviderAdapter, MediaProviderChangeEvent, MediaProviderLoaderChangeEvent, MediaProviderProps, MediaProviderSetupEvent, MediaProviderState, MediaQualitiesChangeEvent, MediaQualityChangeEvent, MediaQualityChangeRequestEvent, MediaRateChangeEvent, MediaRateChangeRequestEvent, MediaRemoteControl, MediaRemotePlaybackChangeEvent, MediaRemotePlaybackChangeEventDetail, MediaReplayEvent, MediaRequestEvents, MediaResumeControlsRequestEvent, MediaSeekRequestEvent, MediaSeekedEvent, MediaSeekingEvent, MediaSeekingRequestEvent, MediaShowPosterRequestEvent, MediaSourceChangeEvent, MediaSourcesChangeEvent, MediaSrc, MediaSrcObject, MediaStalledEvent, MediaStartLoadingRequestEvent, MediaStartedEvent, MediaState, MediaStateAccessors, MediaStorage, MediaStore, MediaStreamType, MediaStreamTypeChangeEvent, MediaSuspendEvent, MediaTextTrackChangeEvent, MediaTextTrackChangeRequestEvent, MediaTextTracksChangeEvent, MediaTimeChangeEvent, MediaTimeUpdateEvent, MediaTimeUpdateEventDetail, MediaTitleChangeEvent, MediaTypeChangeEvent, MediaUnmuteRequestEvent, MediaUserEvents, MediaUserLoopChangeRequestEvent, MediaViewType, MediaViewTypeChangeEvent, MediaVolumeChange, MediaVolumeChangeEvent, MediaVolumeChangeRequestEvent, MediaWaitingEvent, Menu, MenuButton, MenuButtonEvents, MenuButtonProps, MenuButtonSelectEvent, MenuCloseEvent, MenuEvents, MenuItem, MenuItems, MenuItemsProps, MenuOpenEvent, MenuPlacement, MenuPlacementAlign, MenuPlacementSide, MenuPortal, MenuPortalContext, MenuPortalProps, MenuProps, MuteButton, MuteButtonEvents, MuteButtonProps, MuxThumbnailStoryboard, MuxThumbnailTile, PIPButton, PIPButtonEvents, PIPButtonProps, PlayButton, PlayButtonEvents, PlayButtonProps, PlayerSrc, PlayerStore, PlyrControl, PlyrLayoutProps, PlyrLayoutTranslations, PlyrLayoutWord, PlyrMarker, Poster, PosterProps, PosterState, QualityRadioGroup, QualityRadioGroupChangeEvent, QualityRadioGroupEvents, QualityRadioGroupProps, QualityRadioOption, QualitySlider, QualitySliderCSSVars, QualitySliderEvents, QualitySliderProps, QualitySliderState, Radio, RadioChangeEvent, RadioEvents, RadioGroup, RadioGroupChangeEvent, RadioGroupEvents, RadioGroupProps, RadioOption, RadioProps, RadioSelectEvent, RemotePlaybackInfo, RemotePlaybackType, ScreenOrientationChangeEvent, ScreenOrientationChangeEventDetail, ScreenOrientationController, ScreenOrientationEvents, ScreenOrientationLockType, ScreenOrientationType, SeekButton, SeekButtonEvents, SeekButtonProps, SerializedVideoQuality, Slider, SliderCSSVars, SliderChapters, SliderChaptersCSSVars, SliderChaptersProps, SliderController, SliderControllerProps, SliderDelegate, SliderDragEndEvent, SliderDragStartEvent, SliderDragValueChangeEvent, SliderEvent, SliderEvents, SliderPointerValueChangeEvent, SliderPreview, SliderPreviewProps, SliderProps, SliderState, SliderStore, SliderValue, SliderValueChangeEvent, SliderValueProps, SliderVideo, SliderVideoCanPlayEvent, SliderVideoErrorEvent, SliderVideoEvents, SliderVideoProps, SliderVideoState, SpeedRadioGroup, SpeedRadioGroupChangeEvent, SpeedRadioGroupEvents, SpeedRadioGroupProps, SpeedSlider, SpeedSliderCSSVars, SpeedSliderEvents, SpeedSliderProps, SpeedSliderState, TextRenderers, TextTrackAddCueEvent, TextTrackAddEvent, TextTrackCueChangeEvent, TextTrackErrorEvent, TextTrackEvent, TextTrackEvents, TextTrackInit, TextTrackListEvent, TextTrackListEvents, TextTrackListModeChangeEvent, TextTrackLoadEvent, TextTrackLoadStartEvent, TextTrackModeChangeEvent, TextTrackReadyState, TextTrackRemoveCueEvent, TextTrackRemoveEvent, ThumbnailCoords, ThumbnailImage, ThumbnailImageInit, ThumbnailProps, ThumbnailSrc, ThumbnailState, ThumbnailStoryboard, ThumbnailTile, ThumbnailsLoader, Time, TimeProps, TimeSlider, TimeSliderCSSVars, TimeSliderEvents, TimeSliderProps, TimeSliderState, TimeState, ToggleButton, ToggleButtonProps, Tooltip, TooltipContent, TooltipContentProps, TooltipPlacement, TooltipPlacementAlign, TooltipPlacementSide, TooltipProps, TooltipTrigger, VTTContent, VTTCueInit, VTTRegionInit, VideoMimeType, VideoPresentationChangeEvent, VideoPresentationEvents, VideoQualityAddEvent, VideoQualityAutoChangeEvent, VideoQualityChangeEvent, VideoQualityChangeEventDetail, VideoQualityList, VideoQualityListEvent, VideoQualityListEvents, VideoQualityRemoveEvent, VideoSrc, VideoSrcMeta, VimeoSrc, VolumeSlider, VolumeSliderCSSVars, VolumeSliderEvents, VolumeSliderProps, VolumeSliderState, YouTubeSrc, boundTime, canFullscreen, getDownloadFile, isTrackCaptionKind, isVideoQualitySrc, mediaContext, mediaState, menuPortalContext, parseJSONCaptionsFile, sliderState, softResetMediaState, updateSliderPreviewPlacement, usePlyrLayoutClasses } from './types/vidstack-DYLKXUvI.js';
4
+ import { TextRenderer, TextTrack, TextTrackList, VideoQuality, MediaKeyShortcuts, AudioProvider, DASHProvider, GoogleCastProvider, HLSProvider, VideoProvider, VimeoProvider, YouTubeProvider, MediaProviderLoader, Src, MediaType, MediaContext, Thumbnail, SliderOrientation } from './types/vidstack-CZqFq0VF.js';
5
+ export { AirPlayButton, AirPlayButtonEvents, AirPlayButtonProps, AnyMediaProvider, AudioGainRadioGroup, AudioGainRadioGroupChangeEvent, AudioGainRadioGroupEvents, AudioGainRadioGroupProps, AudioGainSlider, AudioGainSliderCSSVars, AudioGainSliderEvents, AudioGainSliderProps, AudioGainSliderState, AudioMimeType, AudioRadioGroup, AudioRadioGroupChangeEvent, AudioRadioGroupEvents, AudioRadioGroupProps, AudioRadioOption, AudioSrc, AudioSrcMeta, AudioTrack, AudioTrackAddEvent, AudioTrackChangeEvent, AudioTrackList, AudioTrackListEvent, AudioTrackListEvents, AudioTrackRemoveEvent, CaptionButton, CaptionButtonEvents, CaptionButtonProps, Captions, CaptionsProps, CaptionsRadioGroup, CaptionsRadioGroupChangeEvent, CaptionsRadioGroupEvents, CaptionsRadioGroupProps, CaptionsRadioOption, ChangeAudioTrackEventDetail, ChapterRadioGroupProps, ChaptersRadioGroup, ChaptersRadioGroupChangeEvent, ChaptersRadioGroupEvents, ChaptersRadioOption, Controls, ControlsChangeEvent, ControlsEvents, ControlsGroup, ControlsProps, DASHAdaptationSetRemovedNoCapabilitiesEvent, DASHAllTextTracksAddedEvent, DASHAstInFutureEvent, DASHBaseUrlsUpdatedEvent, DASHBufferLevelUpdatedEvent, DASHBufferLoadedEvent, DASHBufferStalledEvent, DASHBufferStateChangedEvent, DASHCanPlayEvent, DASHCanPlayThroughEvent, DASHCaptionContainerResizeEvent, DASHCaptionRenderedEvent, DASHConformanceViolationEvent, DASHConstructor, DASHConstructorLoader, DASHContentSteeringRequestCompletedEvent, DASHCueEnterEvent, DASHCueExitEvent, DASHDvbFontDownloadAddedEvent, DASHDvbFontDownloadCompleteEvent, DASHDvbFontDownloadFailedEvent, DASHDynamicToStaticEvent, DASHErrorEvent, DASHEventModeOnReceiveEvent, DASHEventModeOnStartEvent, DASHFragmentLoadingAbandonedEvent, DASHFragmentLoadingCompletedEvent, DASHFragmentLoadingProgressEvent, DASHFragmentLoadingStartedEvent, DASHInbandPrftEvent, DASHInstanceCallback, DASHInstanceEvent, DASHLibLoadErrorEvent, DASHLibLoadStartEvent, DASHLibLoadedEvent, DASHLibrary, DASHLogEvent, DASHManagedMediaSourceEndStreamingEvent, DASHManagedMediaSourceStartStreamingEvent, DASHManifestLoadedEvent, DASHManifestLoadingFinishedEvent, DASHManifestLoadingStartedEvent, DASHManifestValidityChangedEvent, DASHMediaEvent, DASHMetricAddedEvent, DASHMetricChangedEvent, DASHMetricUpdatedEvent, DASHMetricsChangedEvent, DASHMimeType, DASHNamespace, DASHNamespaceLoader, DASHPeriodSwitchCompletedEvent, DASHPeriodSwitchStartedEvent, DASHPlaybackEndedEvent, DASHPlaybackErrorEvent, DASHPlaybackLoadedDataEvent, DASHPlaybackMetaDataLoadedEvent, DASHPlaybackNotAllowedEvent, DASHPlaybackPausedEvent, DASHPlaybackPlayingEvent, DASHPlaybackProgressEvent, DASHPlaybackRateChangedEvent, DASHPlaybackSeekedEvent, DASHPlaybackSeekingEvent, DASHPlaybackStalledEvent, DASHPlaybackStartedEvent, DASHPlaybackTimeUpdatedEvent, DASHPlaybackVolumeChangedEvent, DASHPlaybackWaitingEvent, DASHProviderEvents, DASHQualityChangeRenderedEvent, DASHQualityChangeRequestedEvent, DASHRepresentationSwitchEvent, DASHSrc, DASHStreamActivatedEvent, DASHStreamDeactivatedEvent, DASHStreamInitializedEvent, DASHStreamInitializingEvent, DASHStreamTeardownCompleteEvent, DASHStreamUpdatedEvent, DASHTextTrackAddedEvent, DASHThroughputMeasurementStoredEvent, DASHTrackChangeRenderedEvent, DASHTtmlParsedEvent, DASHTtmlToParseEvent, DASHUnsupportedEvent, DEFAULT_AUDIO_GAINS, DEFAULT_PLAYBACK_RATES, DefaultLayoutProps, DefaultLayoutTranslations, DefaultLayoutWord, FileDownloadInfo, FindMediaPlayerEvent, FindMediaPlayerEventDetail, FullscreenAdapter, FullscreenButton, FullscreenButtonEvents, FullscreenButtonProps, FullscreenChangeEvent, FullscreenController, FullscreenErrorEvent, FullscreenEvents, Gesture, GestureAction, GestureEvent, GestureEventType, GestureEvents, GestureProps, GestureTriggerEvent, GestureWillTriggerEvent, GoogleCastButton, GoogleCastButtonEvents, GoogleCastButtonProps, GoogleCastEvent, GoogleCastEvents, GoogleCastLoadStartEvent, GoogleCastLoadedEvent, GoogleCastPromptError, GoogleCastPromptErrorCode, GoogleCastPromptErrorEvent, GoogleCastPromptEvent, HLSAudioTrackLoadedEvent, HLSAudioTrackLoadingEvent, HLSAudioTrackSwitchedEvent, HLSAudioTrackSwitchingEvent, HLSAudioTracksUpdatedEvent, HLSBackBufferReachedEvent, HLSBufferAppendedEvent, HLSBufferAppendingEvent, HLSBufferCodecsEvent, HLSBufferCreatedEvent, HLSBufferEosEvent, HLSBufferFlushedEvent, HLSBufferFlushingEvent, HLSBufferResetEvent, HLSConstructor, HLSConstructorLoader, HLSCuesParsedEvent, HLSDestroyingEvent, HLSErrorEvent, HLSFpsDropEvent, HLSFpsDropLevelCappingEvent, HLSFragBufferedDataEvent, HLSFragChangedEvent, HLSFragDecryptedEvent, HLSFragLoadEmergencyAbortedEvent, HLSFragLoadedEvent, HLSFragLoadingEvent, HLSFragParsedEvent, HLSFragParsingInitSegmentEvent, HLSFragParsingMetadataEvent, HLSFragParsingUserdataEvent, HLSInitPtsFoundEvent, HLSInstanceCallback, HLSInstanceEvent, HLSKeyLoadedEvent, HLSKeyLoadingEvent, HLSLevelLoadedEvent, HLSLevelLoadingEvent, HLSLevelPtsUpdatedEvent, HLSLevelSwitchedEvent, HLSLevelSwitchingEvent, HLSLevelUpdatedEvent, HLSLevelsUpdatedEvent, HLSLibLoadErrorEvent, HLSLibLoadStartEvent, HLSLibLoadedEvent, HLSLibrary, HLSManifestLoadedEvent, HLSManifestLoadingEvent, HLSManifestParsedEvent, HLSMediaAttachedEvent, HLSMediaAttachingEvent, HLSMediaDetachedEvent, HLSMediaDetachingEvent, HLSMediaEvent, HLSMimeType, HLSNonNativeTextTracksFoundEvent, HLSProviderEvents, HLSSrc, HLSSubtitleFragProcessedEvent, HLSSubtitleTrackLoadedEvent, HLSSubtitleTrackLoadingEvent, HLSSubtitleTrackSwitchEvent, HLSSubtitleTracksClearedEvent, HLSSubtitleTracksUpdatedEvent, HLSUnsupportedEvent, HTMLMediaSrc, List, ListAddEvent, ListEvents, ListItem, ListReadonlyChangeEvent, ListRemoveEvent, LiveButton, LiveButtonEvents, LiveButtonProps, LocalMediaStorage, LogEvent, LogEventDetail, Logger, LoggerEvents, MediaAbortEvent, MediaAirPlayRequestEvent, MediaAnnouncer, MediaAnnouncerEvents, MediaAnnouncerProps, MediaAnnouncerState, MediaAnnouncerTranslations, MediaAnnouncerWord, MediaAudioGainChangeEvent, MediaAudioGainChangeRequestEvent, MediaAudioTrackChangeEvent, MediaAudioTrackChangeRequestEvent, MediaAudioTracksChangeEvent, MediaAutoPlayChangeEvent, MediaAutoPlayEvent, MediaAutoPlayEventDetail, MediaAutoPlayFailEvent, MediaAutoPlayFailEventDetail, MediaCanLoadEvent, MediaCanLoadPosterEvent, MediaCanPlayDetail, MediaCanPlayEvent, MediaCanPlayThroughEvent, MediaClipEndChangeRequestEvent, MediaClipStartChangeRequestEvent, MediaControls, MediaControlsChangeEvent, MediaCrossOrigin, MediaDestroyEvent, MediaDurationChangeEvent, MediaDurationChangeRequestEvent, MediaEmptiedEvent, MediaEndEvent, MediaEndedEvent, MediaEnterFullscreenRequestEvent, MediaEnterPIPRequestEvent, MediaErrorCode, MediaErrorDetail, MediaErrorEvent, MediaEvent, MediaEvents, MediaExitFullscreenRequestEvent, MediaExitPIPRequestEvent, MediaFullscreenAdapter, MediaFullscreenChangeEvent, MediaFullscreenErrorEvent, MediaFullscreenRequestTarget, MediaGoogleCastRequestEvent, MediaHidePosterRequestEvent, MediaKeyShortcut, MediaKeyTarget, MediaKeysCallback, MediaLiveChangeEvent, MediaLiveEdgeChangeEvent, MediaLiveEdgeRequestEvent, MediaLoadStartEvent, MediaLoadedDataEvent, MediaLoadedMetadataEvent, MediaLoadingStrategy, MediaLoopChangeEvent, MediaLoopRequestEvent, MediaMuteRequestEvent, MediaOrientationChangeEvent, MediaOrientationLockRequestEvent, MediaOrientationUnlockRequestEvent, MediaPIPChangeEvent, MediaPIPErrorEvent, MediaPauseControlsRequestEvent, MediaPauseEvent, MediaPauseRequestEvent, MediaPlayEvent, MediaPlayFailEvent, MediaPlayRequestEvent, MediaPlayer, MediaPlayerConnectEvent, MediaPlayerEvents, MediaPlayerProps, MediaPlayerQuery, MediaPlayerState, MediaPlayingEvent, MediaPlaysInlineChangeEvent, MediaPosterChangeEvent, MediaPosterLoadingStrategy, MediaPosterStartLoadingRequestEvent, MediaProgressEvent, MediaProgressEventDetail, MediaProvider, MediaProviderAdapter, MediaProviderChangeEvent, MediaProviderLoaderChangeEvent, MediaProviderProps, MediaProviderSetupEvent, MediaProviderState, MediaQualitiesChangeEvent, MediaQualityChangeEvent, MediaQualityChangeRequestEvent, MediaRateChangeEvent, MediaRateChangeRequestEvent, MediaRemoteControl, MediaRemotePlaybackChangeEvent, MediaRemotePlaybackChangeEventDetail, MediaReplayEvent, MediaRequestEvents, MediaResumeControlsRequestEvent, MediaSeekRequestEvent, MediaSeekedEvent, MediaSeekingEvent, MediaSeekingRequestEvent, MediaShowPosterRequestEvent, MediaSourceChangeEvent, MediaSourcesChangeEvent, MediaSrc, MediaSrcObject, MediaStalledEvent, MediaStartLoadingRequestEvent, MediaStartedEvent, MediaState, MediaStateAccessors, MediaStorage, MediaStore, MediaStreamType, MediaStreamTypeChangeEvent, MediaSuspendEvent, MediaTextTrackChangeEvent, MediaTextTrackChangeRequestEvent, MediaTextTracksChangeEvent, MediaTimeChangeEvent, MediaTimeUpdateEvent, MediaTimeUpdateEventDetail, MediaTitleChangeEvent, MediaTypeChangeEvent, MediaUnmuteRequestEvent, MediaUserEvents, MediaUserLoopChangeRequestEvent, MediaViewType, MediaViewTypeChangeEvent, MediaVolumeChange, MediaVolumeChangeEvent, MediaVolumeChangeRequestEvent, MediaWaitingEvent, Menu, MenuButton, MenuButtonEvents, MenuButtonProps, MenuButtonSelectEvent, MenuCloseEvent, MenuEvents, MenuItem, MenuItems, MenuItemsProps, MenuOpenEvent, MenuPlacement, MenuPlacementAlign, MenuPlacementSide, MenuPortal, MenuPortalContext, MenuPortalProps, MenuProps, MuteButton, MuteButtonEvents, MuteButtonProps, MuxThumbnailStoryboard, MuxThumbnailTile, PIPButton, PIPButtonEvents, PIPButtonProps, PlayButton, PlayButtonEvents, PlayButtonProps, PlayerSrc, PlayerStore, PlyrControl, PlyrLayoutProps, PlyrLayoutTranslations, PlyrLayoutWord, PlyrMarker, Poster, PosterProps, PosterState, QualityRadioGroup, QualityRadioGroupChangeEvent, QualityRadioGroupEvents, QualityRadioGroupProps, QualityRadioOption, QualitySlider, QualitySliderCSSVars, QualitySliderEvents, QualitySliderProps, QualitySliderState, Radio, RadioChangeEvent, RadioEvents, RadioGroup, RadioGroupChangeEvent, RadioGroupEvents, RadioGroupProps, RadioOption, RadioProps, RadioSelectEvent, RemotePlaybackInfo, RemotePlaybackType, ScreenOrientationChangeEvent, ScreenOrientationChangeEventDetail, ScreenOrientationController, ScreenOrientationEvents, ScreenOrientationLockType, ScreenOrientationType, SeekButton, SeekButtonEvents, SeekButtonProps, SerializedVideoQuality, Slider, SliderCSSVars, SliderChapters, SliderChaptersCSSVars, SliderChaptersProps, SliderController, SliderControllerProps, SliderDelegate, SliderDragEndEvent, SliderDragStartEvent, SliderDragValueChangeEvent, SliderEvent, SliderEvents, SliderPointerValueChangeEvent, SliderPreview, SliderPreviewProps, SliderProps, SliderState, SliderStore, SliderValue, SliderValueChangeEvent, SliderValueProps, SliderVideo, SliderVideoCanPlayEvent, SliderVideoErrorEvent, SliderVideoEvents, SliderVideoProps, SliderVideoState, SpeedRadioGroup, SpeedRadioGroupChangeEvent, SpeedRadioGroupEvents, SpeedRadioGroupProps, SpeedSlider, SpeedSliderCSSVars, SpeedSliderEvents, SpeedSliderProps, SpeedSliderState, TextRenderers, TextTrackAddCueEvent, TextTrackAddEvent, TextTrackCueChangeEvent, TextTrackErrorEvent, TextTrackEvent, TextTrackEvents, TextTrackInit, TextTrackListEvent, TextTrackListEvents, TextTrackListModeChangeEvent, TextTrackLoadEvent, TextTrackLoadStartEvent, TextTrackModeChangeEvent, TextTrackReadyState, TextTrackRemoveCueEvent, TextTrackRemoveEvent, ThumbnailCoords, ThumbnailImage, ThumbnailImageInit, ThumbnailProps, ThumbnailSrc, ThumbnailState, ThumbnailStoryboard, ThumbnailTile, ThumbnailsLoader, Time, TimeProps, TimeSlider, TimeSliderCSSVars, TimeSliderEvents, TimeSliderProps, TimeSliderState, TimeState, ToggleButton, ToggleButtonProps, Tooltip, TooltipContent, TooltipContentProps, TooltipPlacement, TooltipPlacementAlign, TooltipPlacementSide, TooltipProps, TooltipTrigger, VTTContent, VTTCueInit, VTTRegionInit, VideoMimeType, VideoPresentationChangeEvent, VideoPresentationEvents, VideoQualityAddEvent, VideoQualityAutoChangeEvent, VideoQualityChangeEvent, VideoQualityChangeEventDetail, VideoQualityList, VideoQualityListEvent, VideoQualityListEvents, VideoQualityRemoveEvent, VideoSrc, VideoSrcMeta, VimeoSrc, VolumeSlider, VolumeSliderCSSVars, VolumeSliderEvents, VolumeSliderProps, VolumeSliderState, YouTubeSrc, boundTime, canFullscreen, getDownloadFile, isTrackCaptionKind, isVideoQualitySrc, mediaContext, mediaState, menuPortalContext, parseJSONCaptionsFile, sliderState, softResetMediaState, updateSliderPreviewPlacement, usePlyrLayoutClasses } from './types/vidstack-CZqFq0VF.js';
6
6
  import { EventsTarget, Dispose, ViewController, ReadSignal, WriteSignal, Context } from './types/vidstack-BOvzfZjK.js';
7
7
  export { appendTriggerEvent, findTriggerEvent, hasTriggerEvent, isKeyboardClick, isKeyboardEvent, isPointerEvent, walkTriggerEventChain } from './types/vidstack-BOvzfZjK.js';
8
8
  import { VTTCue } from 'media-captions';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hanifhan1f/vidstack",
3
3
  "description": "UI component library for building high-quality, accessible video and audio experiences on the web.",
4
- "version": "1.12.33",
4
+ "version": "1.12.35",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "types": "index.d.ts",
@@ -36,7 +36,8 @@ const defaultLayoutProps = {
36
36
  smallWhen: false,
37
37
  thumbnails: null,
38
38
  translations: null,
39
- when: false
39
+ when: false,
40
+ guestMode: false
40
41
  };
41
42
 
42
43
  class DefaultLayout extends Component {
@@ -138,13 +139,14 @@ function DefaultAirPlayButton({ tooltip }) {
138
139
  `;
139
140
  }
140
141
  function DefaultPlayButton({ tooltip }) {
141
- const { translations } = useDefaultLayoutContext(), $playText = $i18n(translations, "Play"), $pauseText = $i18n(translations, "Pause");
142
+ const { translations, guestMode } = useDefaultLayoutContext(), $playText = $i18n(translations, "Play"), $pauseText = $i18n(translations, "Pause");
142
143
  return html`
143
144
  <media-tooltip class="vds-play-tooltip vds-tooltip">
144
145
  <media-tooltip-trigger>
145
146
  <media-play-button
146
147
  class="vds-play-button vds-button"
147
148
  aria-label=${$i18n(translations, "Play")}
149
+ ?disabled=${$signal(guestMode)}
148
150
  >
149
151
  ${IconSlots(["play", "pause", "replay"])}
150
152
  </media-play-button>
@@ -240,7 +242,7 @@ function DefaultSeekButton({
240
242
  backward,
241
243
  tooltip
242
244
  }) {
243
- const { translations, seekStep } = useDefaultLayoutContext(), seekText = !backward ? "Seek Forward" : "Seek Backward", $label = $i18n(translations, seekText), $seconds = () => (backward ? -1 : 1) * seekStep();
245
+ const { translations, seekStep, guestMode } = useDefaultLayoutContext(), seekText = !backward ? "Seek Forward" : "Seek Backward", $label = $i18n(translations, seekText), $seconds = () => (backward ? -1 : 1) * seekStep();
244
246
  return html`
245
247
  <media-tooltip class="vds-seek-tooltip vds-tooltip">
246
248
  <media-tooltip-trigger>
@@ -248,6 +250,7 @@ function DefaultSeekButton({
248
250
  class="vds-seek-button vds-button"
249
251
  seconds=${$signal($seconds)}
250
252
  aria-label=${$label}
253
+ ?disabled=${$signal(guestMode)}
251
254
  >
252
255
  ${!backward ? IconSlot("seek-forward") : IconSlot("seek-backward")}
253
256
  </media-seek-button>
@@ -1532,8 +1535,9 @@ function DefaultTimeSlider() {
1532
1535
  sliderChaptersMinWidth,
1533
1536
  disableTimeSlider,
1534
1537
  seekStep,
1535
- noScrubGesture
1536
- } = useDefaultLayoutContext(), $label = $i18n(translations, "Seek"), $isDisabled = $signal(disableTimeSlider), $isChaptersDisabled = $signal(() => $width() < sliderChaptersMinWidth()), $thumbnails = $signal(thumbnails);
1538
+ noScrubGesture,
1539
+ guestMode
1540
+ } = useDefaultLayoutContext(), $label = $i18n(translations, "Seek"), $isDisabled = $signal(() => disableTimeSlider() || guestMode()), $isChaptersDisabled = $signal(() => $width() < sliderChaptersMinWidth()), $thumbnails = $signal(thumbnails);
1537
1541
  useResizeObserver($ref, () => {
1538
1542
  const el = $ref();
1539
1543
  el && $width.set(el.clientWidth);
@@ -1544,7 +1548,7 @@ function DefaultTimeSlider() {
1544
1548
  aria-label=${$label}
1545
1549
  key-step=${$signal(seekStep)}
1546
1550
  ?disabled=${$isDisabled}
1547
- ?no-swipe-gesture=${$signal(noScrubGesture)}
1551
+ ?no-swipe-gesture=${$signal(() => noScrubGesture() || guestMode())}
1548
1552
  ${ref($ref.set)}
1549
1553
  >
1550
1554
  <media-slider-chapters class="vds-slider-chapters" ?disabled=${$isChaptersDisabled}>
@@ -1,5 +1,5 @@
1
1
  import { signal, effect, toggleClass, Host, listenEvent } from '../../chunks/vidstack-BNpgCJJ1.js';
2
- import { DefaultLayout, DefaultAnnouncer, DefaultCaptions, DefaultSeekButton, DefaultPlayButton, DefaultTimeSlider, DefaultTimeInvert, DefaultVolumePopup, DefaultCaptionButton, DefaultDownloadButton, DefaultAirPlayButton, DefaultChaptersMenu, DefaultSettingsMenu, useDefaultLayoutContext, DefaultControlsSpacer, i18n, DefaultChapterTitle, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-BnEo_Sla.js';
2
+ import { DefaultLayout, DefaultAnnouncer, DefaultCaptions, DefaultSeekButton, DefaultPlayButton, DefaultTimeSlider, DefaultTimeInvert, DefaultVolumePopup, DefaultCaptionButton, DefaultDownloadButton, DefaultAirPlayButton, DefaultChaptersMenu, DefaultSettingsMenu, useDefaultLayoutContext, DefaultControlsSpacer, i18n, DefaultChapterTitle, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-B0glDgAI.js';
3
3
  import { useMediaContext, useMediaState } from '../../chunks/vidstack-tt3O1zL6.js';
4
4
  import { useTransitionActive, useResizeObserver, isHTMLElement } from '../../chunks/vidstack-DB9WDRL5.js';
5
5
  import { $signal, SlotManager } from '../../chunks/vidstack-zfCm-GM5.js';
@@ -1,5 +1,5 @@
1
1
  import { computed, signal, effect, camelToKebabCase, Host } from '../../chunks/vidstack-BNpgCJJ1.js';
2
- import { DefaultLayout, useDefaultLayoutContext, DefaultPlayButton, DefaultAnnouncer, DefaultCaptions, DefaultControlsSpacer, DefaultCaptionButton, DefaultDownloadButton, DefaultVolumePopup, DefaultTimeSlider, DefaultSeekButton, DefaultTimeInfo, DefaultFullscreenButton, DefaultTitle, DefaultPIPButton, DefaultChaptersMenu, DefaultSettingsMenu, DefaultEpisodeButton, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-BnEo_Sla.js';
2
+ import { DefaultLayout, useDefaultLayoutContext, DefaultPlayButton, DefaultAnnouncer, DefaultCaptions, DefaultControlsSpacer, DefaultCaptionButton, DefaultDownloadButton, DefaultVolumePopup, DefaultTimeSlider, DefaultSeekButton, DefaultTimeInfo, DefaultFullscreenButton, DefaultTitle, DefaultPIPButton, DefaultChaptersMenu, DefaultSettingsMenu, DefaultEpisodeButton, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-B0glDgAI.js';
3
3
  import { useMediaContext, useMediaState } from '../../chunks/vidstack-tt3O1zL6.js';
4
4
  import { $signal, SlotManager } from '../../chunks/vidstack-zfCm-GM5.js';
5
5
  import { LitElement } from '../../chunks/vidstack-CwTj4H1w.js';
@@ -403,11 +403,15 @@ function DefaultVideoMenus() {
403
403
  }
404
404
  function DefaultVideoGestures() {
405
405
  return $signal(() => {
406
- const { noGestures } = useDefaultLayoutContext();
406
+ const { noGestures, guestMode } = useDefaultLayoutContext();
407
407
  if (noGestures()) return null;
408
408
  return html`
409
409
  <div class="vds-gestures">
410
- <media-gesture class="vds-gesture" event="pointerup" action="toggle:paused"></media-gesture>
410
+ ${!guestMode() ? html`
411
+ <media-gesture class="vds-gesture" event="pointerup" action="toggle:paused"></media-gesture>
412
+ <media-gesture class="vds-gesture" event="dblpointerup" action="seek:-10"></media-gesture>
413
+ <media-gesture class="vds-gesture" event="dblpointerup" action="seek:10"></media-gesture>
414
+ ` : null}
411
415
  <media-gesture
412
416
  class="vds-gesture"
413
417
  event="pointerup"
@@ -418,8 +422,6 @@ function DefaultVideoGestures() {
418
422
  event="dblpointerup"
419
423
  action="toggle:fullscreen"
420
424
  ></media-gesture>
421
- <media-gesture class="vds-gesture" event="dblpointerup" action="seek:-10"></media-gesture>
422
- <media-gesture class="vds-gesture" event="dblpointerup" action="seek:10"></media-gesture>
423
425
  </div>
424
426
  `;
425
427
  });
@@ -1,7 +1,7 @@
1
1
  import { defineCustomElement } from '../chunks/vidstack-BNpgCJJ1.js';
2
2
  import { MediaAudioLayoutElement } from './templates/vidstack-audio-layout.js';
3
3
  import { MediaVideoLayoutElement } from './templates/vidstack-video-layout.js';
4
- import '../chunks/vidstack-BnEo_Sla.js';
4
+ import '../chunks/vidstack-B0glDgAI.js';
5
5
  import '../chunks/vidstack-tt3O1zL6.js';
6
6
  import '../chunks/vidstack-DB9WDRL5.js';
7
7
  import '@floating-ui/dom';
@@ -2,7 +2,7 @@ import { defineCustomElement } from '../chunks/vidstack-BNpgCJJ1.js';
2
2
  import { MediaAudioLayoutElement } from './templates/vidstack-audio-layout.js';
3
3
  import { MediaVideoLayoutElement } from './templates/vidstack-video-layout.js';
4
4
  import { MediaPlyrLayoutElement } from './templates/plyr-layout.js';
5
- import '../chunks/vidstack-BnEo_Sla.js';
5
+ import '../chunks/vidstack-B0glDgAI.js';
6
6
  import '../chunks/vidstack-tt3O1zL6.js';
7
7
  import '../chunks/vidstack-DB9WDRL5.js';
8
8
  import '@floating-ui/dom';
@@ -25,7 +25,7 @@ import './chunks/vidstack-Fem0yF3c.js';
25
25
  import './chunks/vidstack-D5EzK014.js';
26
26
  import './chunks/vidstack-B01xzxC4.js';
27
27
  import './chunks/vidstack-C4PTiuot.js';
28
- import './chunks/vidstack-BnEo_Sla.js';
28
+ import './chunks/vidstack-B0glDgAI.js';
29
29
  import './chunks/vidstack-zfCm-GM5.js';
30
30
  import 'lit-html/directives/if-defined.js';
31
31
  import 'lit-html/directives/unsafe-svg.js';
@@ -35,7 +35,8 @@ const defaultLayoutProps = {
35
35
  smallWhen: false,
36
36
  thumbnails: null,
37
37
  translations: null,
38
- when: false
38
+ when: false,
39
+ guestMode: false
39
40
  };
40
41
 
41
42
  class DefaultLayout extends Component {
@@ -145,13 +146,14 @@ function DefaultAirPlayButton({ tooltip }) {
145
146
  `;
146
147
  }
147
148
  function DefaultPlayButton({ tooltip }) {
148
- const { translations } = useDefaultLayoutContext(), $playText = $i18n(translations, "Play"), $pauseText = $i18n(translations, "Pause");
149
+ const { translations, guestMode } = useDefaultLayoutContext(), $playText = $i18n(translations, "Play"), $pauseText = $i18n(translations, "Pause");
149
150
  return html`
150
151
  <media-tooltip class="vds-play-tooltip vds-tooltip">
151
152
  <media-tooltip-trigger>
152
153
  <media-play-button
153
154
  class="vds-play-button vds-button"
154
155
  aria-label=${$i18n(translations, "Play")}
156
+ ?disabled=${$signal(guestMode)}
155
157
  >
156
158
  ${IconSlots(["play", "pause", "replay"])}
157
159
  </media-play-button>
@@ -247,7 +249,7 @@ function DefaultSeekButton({
247
249
  backward,
248
250
  tooltip
249
251
  }) {
250
- const { translations, seekStep } = useDefaultLayoutContext(), seekText = !backward ? "Seek Forward" : "Seek Backward", $label = $i18n(translations, seekText), $seconds = () => (backward ? -1 : 1) * seekStep();
252
+ const { translations, seekStep, guestMode } = useDefaultLayoutContext(), seekText = !backward ? "Seek Forward" : "Seek Backward", $label = $i18n(translations, seekText), $seconds = () => (backward ? -1 : 1) * seekStep();
251
253
  return html`
252
254
  <media-tooltip class="vds-seek-tooltip vds-tooltip">
253
255
  <media-tooltip-trigger>
@@ -255,6 +257,7 @@ function DefaultSeekButton({
255
257
  class="vds-seek-button vds-button"
256
258
  seconds=${$signal($seconds)}
257
259
  aria-label=${$label}
260
+ ?disabled=${$signal(guestMode)}
258
261
  >
259
262
  ${!backward ? IconSlot("seek-forward") : IconSlot("seek-backward")}
260
263
  </media-seek-button>
@@ -1444,8 +1447,9 @@ function DefaultTimeSlider() {
1444
1447
  sliderChaptersMinWidth,
1445
1448
  disableTimeSlider,
1446
1449
  seekStep,
1447
- noScrubGesture
1448
- } = useDefaultLayoutContext(), $label = $i18n(translations, "Seek"), $isDisabled = $signal(disableTimeSlider), $isChaptersDisabled = $signal(() => $width() < sliderChaptersMinWidth()), $thumbnails = $signal(thumbnails);
1450
+ noScrubGesture,
1451
+ guestMode
1452
+ } = useDefaultLayoutContext(), $label = $i18n(translations, "Seek"), $isDisabled = $signal(() => disableTimeSlider() || guestMode()), $isChaptersDisabled = $signal(() => $width() < sliderChaptersMinWidth()), $thumbnails = $signal(thumbnails);
1449
1453
  useResizeObserver($ref, () => {
1450
1454
  const el = $ref();
1451
1455
  el && $width.set(el.clientWidth);
@@ -1456,7 +1460,7 @@ function DefaultTimeSlider() {
1456
1460
  aria-label=${$label}
1457
1461
  key-step=${$signal(seekStep)}
1458
1462
  ?disabled=${$isDisabled}
1459
- ?no-swipe-gesture=${$signal(noScrubGesture)}
1463
+ ?no-swipe-gesture=${$signal(() => noScrubGesture() || guestMode())}
1460
1464
  ${ref($ref.set)}
1461
1465
  >
1462
1466
  <media-slider-chapters class="vds-slider-chapters" ?disabled=${$isChaptersDisabled}>
@@ -2058,11 +2062,15 @@ function DefaultVideoMenus() {
2058
2062
  }
2059
2063
  function DefaultVideoGestures() {
2060
2064
  return $signal(() => {
2061
- const { noGestures } = useDefaultLayoutContext();
2065
+ const { noGestures, guestMode } = useDefaultLayoutContext();
2062
2066
  if (noGestures()) return null;
2063
2067
  return html`
2064
2068
  <div class="vds-gestures">
2065
- <media-gesture class="vds-gesture" event="pointerup" action="toggle:paused"></media-gesture>
2069
+ ${!guestMode() ? html`
2070
+ <media-gesture class="vds-gesture" event="pointerup" action="toggle:paused"></media-gesture>
2071
+ <media-gesture class="vds-gesture" event="dblpointerup" action="seek:-10"></media-gesture>
2072
+ <media-gesture class="vds-gesture" event="dblpointerup" action="seek:10"></media-gesture>
2073
+ ` : null}
2066
2074
  <media-gesture
2067
2075
  class="vds-gesture"
2068
2076
  event="pointerup"
@@ -2073,8 +2081,6 @@ function DefaultVideoGestures() {
2073
2081
  event="dblpointerup"
2074
2082
  action="toggle:fullscreen"
2075
2083
  ></media-gesture>
2076
- <media-gesture class="vds-gesture" event="dblpointerup" action="seek:-10"></media-gesture>
2077
- <media-gesture class="vds-gesture" event="dblpointerup" action="seek:10"></media-gesture>
2078
2084
  </div>
2079
2085
  `;
2080
2086
  });
@@ -1,4 +1,4 @@
1
- import '../chunks/vidstack-BIGdJnUK.js';
1
+ import '../chunks/vidstack-nANS1jfu.js';
2
2
  import '../chunks/vidstack-B8LynzY5.js';
3
3
  import '../chunks/vidstack-NpAD9hfP.js';
4
4
  import '@floating-ui/dom';
@@ -1,4 +1,4 @@
1
- import '../chunks/vidstack-BIGdJnUK.js';
1
+ import '../chunks/vidstack-nANS1jfu.js';
2
2
  import '../chunks/vidstack-za5Yh5DQ.js';
3
3
  import '../chunks/vidstack-B8LynzY5.js';
4
4
  import '../chunks/vidstack-NpAD9hfP.js';
@@ -4,7 +4,7 @@ export { MediaAnnouncerElement, MediaAudioGainRadioGroupElement, MediaAudioGainS
4
4
  export { MediaPlayerElement, MediaProviderElement } from './chunks/vidstack-O4BgIcQI.js';
5
5
  import { MediaThumbnailElement } from './chunks/vidstack-BK4xGWUK.js';
6
6
  export { MediaAirPlayButtonElement, MediaAudioRadioGroupElement, MediaCaptionButtonElement, MediaCaptionsRadioGroupElement, MediaFullscreenButtonElement, MediaLiveButtonElement, MediaMenuButtonElement, MediaMenuElement, MediaMenuItemElement, MediaMenuItemsElement, MediaMuteButtonElement, MediaPIPButtonElement, MediaPlayButtonElement, MediaPosterElement, MediaQualityRadioGroupElement, MediaRadioElement, MediaSeekButtonElement, MediaSliderPreviewElement, MediaSliderValueElement, MediaSpeedRadioGroupElement, MediaTimeElement, MediaTimeSliderElement, MediaVolumeSliderElement } from './chunks/vidstack-BK4xGWUK.js';
7
- export { MediaAudioLayoutElement, MediaVideoLayoutElement } from './chunks/vidstack-BIGdJnUK.js';
7
+ export { MediaAudioLayoutElement, MediaVideoLayoutElement } from './chunks/vidstack-nANS1jfu.js';
8
8
  export { MediaPlyrLayoutElement } from './chunks/vidstack-za5Yh5DQ.js';
9
9
  import { Slider } from './chunks/vidstack-COczNXom.js';
10
10
  import { useMediaContext } from './chunks/vidstack-NpAD9hfP.js';
@@ -2147,6 +2147,7 @@ interface VideoSrcMeta {
2147
2147
  bitrate?: number;
2148
2148
  framerate?: number;
2149
2149
  codec?: string;
2150
+ label?: string;
2150
2151
  }
2151
2152
  interface HLSSrc {
2152
2153
  src: string;
@@ -2166,7 +2167,7 @@ interface VimeoSrc {
2166
2167
  src: string;
2167
2168
  type: 'video/vimeo';
2168
2169
  }
2169
- declare function isVideoQualitySrc(src: Src): src is SetRequired<VideoSrc, 'width' | 'height'>;
2170
+ declare function isVideoQualitySrc(src: Src): src is SetRequired<VideoSrc, 'height' | 'label'>;
2170
2171
 
2171
2172
  interface MediaStorage {
2172
2173
  getVolume(): Promise<number | null>;
@@ -2365,6 +2366,7 @@ interface VideoQuality extends SelectListItem {
2365
2366
  readonly height: number;
2366
2367
  readonly bitrate: number | null;
2367
2368
  readonly codec: string | null;
2369
+ readonly label?: string;
2368
2370
  }
2369
2371
 
2370
2372
  declare class MediaPlayerDelegate {
@@ -7285,6 +7287,12 @@ interface DefaultLayoutEpisode {
7285
7287
  runtime?: number;
7286
7288
  episodeNumber?: number;
7287
7289
  seasonNumber?: number;
7290
+ /** Highlights this row as the episode currently playing (e.g. in fullscreen episode list). */
7291
+ isActive?: boolean;
7292
+ /** Watch progress 0–100 for a progress bar on the thumbnail. */
7293
+ progressPercent?: number;
7294
+ /** Approximate whole minutes remaining (used when not the active playing row). */
7295
+ timeLeft?: number;
7288
7296
  }
7289
7297
  interface DefaultLayoutProps {
7290
7298
  /**
@@ -7396,6 +7404,10 @@ interface DefaultLayoutProps {
7396
7404
  * keyboard shortcuts.
7397
7405
  */
7398
7406
  seekStep: number;
7407
+ /**
7408
+ * Disables interactive playback controls like play button and scrubbing, meant for read-only watch party guests.
7409
+ */
7410
+ guestMode: boolean;
7399
7411
  }
7400
7412
 
7401
7413
  type PlyrLayoutWord = 'Ad' | 'All' | 'AirPlay' | 'Audio' | 'Auto' | 'Buffered' | 'Captions' | 'Current time' | 'Default' | 'Disable captions' | 'Disabled' | 'Download' | 'Duration' | 'Enable captions' | 'Enabled' | 'End' | 'Enter Fullscreen' | 'Exit Fullscreen' | 'Forward' | 'Go back to previous menu' | 'LIVE' | 'Loop' | 'Mute' | 'Normal' | 'Pause' | 'Enter PiP' | 'Exit PiP' | 'Play' | 'Played' | 'Quality' | 'Reset' | 'Restart' | 'Rewind' | 'Seek' | 'Settings' | 'Speed' | 'Start' | 'Unmute' | 'Volume';
@@ -1 +0,0 @@
1
- import{ac as m,e as c}from"./vidstack-pFwe7gvT.js";import{c as p,a as r}from"./vidstack-CnWKPIKT.js";import"./vidstack-Cu8FqSS9.js";import"./vidstack-C0nMUcD9.js";import"./vidstack-DIPX97sJ.js";import"./vidstack-C51SKMUl.js";import"./vidstack-C_AxqLKV.js";import"./vidstack-DRH_1tFW.js";import"./vidstack-BfBBPhXV.js";import"./vidstack-CL95Hezv.js";import"https://cdn.vidstack.io/icons";const d=r('<svg viewBox="0 0 32 32" fill="none" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"></svg>');function l(o,s){const n=p(d);n.innerHTML=m,o.append(n);const e=document.createElement("span");e.classList.add("vds-google-cast-info"),o.append(e);const t=document.createElement("span");t.classList.add("vds-google-cast-device-name"),c(()=>{const{remotePlaybackInfo:i}=s,a=i();return a?.deviceName&&(t.textContent=a.deviceName,e.append("Google Cast on ",t)),()=>{e.textContent=""}})}export{l as insertContent};
@@ -1,3 +0,0 @@
1
- import{l,n as m,i as u,q as C,d as S,D as c,a as p,F as g}from"./vidstack-D40FSa5B.js";import{g as T}from"./vidstack-uMxrPflF.js";const b=Symbol(0),E=Symbol(0),A=Symbol(0),w=Symbol(0),O=Symbol(0),x=Symbol(0),N=Symbol(0),a={crossOrigin:b,readyState:E,updateActiveCues:A,canLoad:w,onModeChange:O,native:x,nativeHLS:N};function f(h,t){return t>=h.startTime&&t<h.endTime}function v(h,t,s){let e=null,i=C();function n(){const r=u(t)?[t]:t,o=h.toArray().find(d=>r.includes(d.kind)&&d.mode==="showing");if(o!==e){if(!o){s(null),e=null;return}o.readyState==2?s(o):(s(null),m(()=>{const d=l(o,"load",()=>{s(o),d()},{once:!0})},i)),e=o}}return n(),l(h,"mode-change",n)}function k(h,t,s){v(h,t,e=>{if(!e){s("");return}const i=()=>{const n=e?.activeCues[0];s(n?.text||"")};i(),l(e,"cue-change",i)})}class M extends S{static createId(t){return`vds-${t.type}-${t.kind}-${t.src??t.label??"?"}`}src;content;type;encoding;id="";label="";language="";kind;default=!1;#h=!1;#e=0;#i="disabled";#o={};#n=[];#t=[];#s=[];#r=new Set;[a.readyState]=0;[a.crossOrigin];[a.onModeChange]=null;[a.native]=null;get metadata(){return this.#o}get regions(){return this.#n}get cues(){return this.#t}get activeCues(){return this.#s}get readyState(){return this[a.readyState]}get mode(){return this.#i}set mode(t){this.setMode(t)}constructor(t){super();for(const s of Object.keys(t))this[s]=t[s];this.type||(this.type="vtt"),t.content?this.#f(t):t.src||(this[a.readyState]=2)}addCue(t,s){if(t.id){if(this.#r.has(t.id))return;this.#r.add(t.id)}let e=0,i=this.#t.length;for(e=0;e<i&&!(t.endTime<=this.#t[e].startTime);e++);e===i?this.#t.push(t):this.#t.splice(e,0,t),t instanceof TextTrackCue||this[a.native]?.track.addCue(t),this.dispatchEvent(new c("add-cue",{detail:t,trigger:s})),f(t,this.#e)&&this[a.updateActiveCues](this.#e,s)}removeCue(t,s){const e=this.#t.indexOf(t);if(e>=0){const i=this.#s.includes(t);t.id&&this.#r.delete(t.id),this.#t.splice(e,1),this[a.native]?.track.removeCue(t),this.dispatchEvent(new c("remove-cue",{detail:t,trigger:s})),i&&this[a.updateActiveCues](this.#e,s)}}setMode(t,s){this.#i!==t&&(this.#i=t,t==="disabled"?(this.#s=[],this.#u()):this.readyState===2?this[a.updateActiveCues](this.#e,s):this.#c(),this.dispatchEvent(new c("mode-change",{detail:this,trigger:s})),this[a.onModeChange]?.())}[a.updateActiveCues](t,s){if(this.#e=t,this.mode==="disabled"||!this.#t.length)return;const e=[];for(let n=0,r=this.#t.length;n<r;n++){const o=this.#t[n];f(o,t)&&e.push(o)}let i=e.length!==this.#s.length;if(!i){for(let n=0;n<e.length;n++)if(!this.#s.includes(e[n])){i=!0;break}}this.#s=e,i&&this.#u(s)}[a.canLoad](){this.#h=!0,this.#i!=="disabled"&&this.#c()}#f(t){import("https://cdn.jsdelivr.net/npm/media-captions@next/dist/prod.js").then(({parseText:s,VTTCue:e,VTTRegion:i})=>{if(!u(t.content)||t.type==="json")this.#l(t.content,e,i),this.readyState!==3&&this.#a();else{const n=t.content.split(`
2
- `).map(r=>r.trim()).join(`
3
- `).trim();s(n,{type:t.type}).then(({cues:r,regions:o})=>{this.#t=r,this.#n=o,this.#a()})}})}async#c(){if(!(!this.#h||this[a.readyState]>0)){if(this[a.readyState]=1,this.dispatchEvent(new c("load-start")),!this.src){this.#a();return}try{const{parseResponse:t,VTTCue:s,VTTRegion:e}=await import("https://cdn.jsdelivr.net/npm/media-captions@next/dist/prod.js"),i=this[a.crossOrigin]?.(),n=fetch(this.src,{headers:this.type==="json"?{"Content-Type":"application/json"}:void 0,credentials:T(i)});if(this.type==="json")this.#l(await(await n).text(),s,e);else{const{errors:r,metadata:o,regions:d,cues:y}=await t(n,{type:this.type,encoding:this.encoding});if(r[0]?.code===0)throw r[0];this.#o=o,this.#n=d,this.#t=y}this.#a()}catch(t){this.#d(t)}}}#a(){if(this[a.readyState]=2,!this.src||this.type!=="vtt"){const s=this[a.native];if(s&&!s.managed)for(const e of this.#t)s.track.addCue(e)}const t=new c("load");this[a.updateActiveCues](this.#e,t),this.dispatchEvent(t)}#d(t){this[a.readyState]=3,this.dispatchEvent(new c("error",{detail:t}))}#l(t,s,e){try{const{regions:i,cues:n}=j(t,s,e);this.#n=i,this.#t=n}catch(i){this.#d(i)}}#u(t){this.dispatchEvent(new c("cue-change",{trigger:t}))}}const _=/captions|subtitles/;function I(h){return _.test(h.kind)}function j(h,t,s){const e=u(h)?JSON.parse(h):h;let i=[],n=[];return e.regions&&s&&(i=e.regions.map(r=>Object.assign(new s,r))),(e.cues||p(e))&&(n=(p(e)?e:e.cues).filter(r=>g(r.startTime)&&g(r.endTime)).map(r=>Object.assign(new t(0,0,""),r))),{regions:i,cues:n}}export{a as T,M as a,v as b,f as c,I as i,k as w};
@@ -1 +0,0 @@
1
- import{s as e,l as r,e as a,p as o,i as n}from"./vidstack-D40FSa5B.js";import{a as c}from"./vidstack-D0M8R0ZU.js";class h{#t;src=e("");referrerPolicy=null;get iframe(){return this.#t}constructor(t){this.#t=t,t.setAttribute("frameBorder","0"),t.setAttribute("aria-hidden","true"),t.setAttribute("allow","autoplay; fullscreen; encrypted-media; picture-in-picture; accelerometer; gyroscope"),this.referrerPolicy!==null&&t.setAttribute("referrerpolicy",this.referrerPolicy)}setup(){r(window,"message",this.#i.bind(this)),r(this.#t,"load",this.onLoad.bind(this)),a(this.#s.bind(this))}#s(){const t=this.src();if(!t.length){this.#t.setAttribute("src","");return}const s=o(()=>this.buildParams());this.#t.setAttribute("src",c(t,s))}postMessage(t,s){this.#t.contentWindow?.postMessage(JSON.stringify(t),s??"*")}#i(t){const s=this.getOrigin();if((t.source===null||t.source===this.#t?.contentWindow)&&(!n(s)||s===t.origin)){try{const i=JSON.parse(t.data);i&&this.onMessage(i,t);return}catch{}t.data&&this.onMessage(t.data,t)}}}export{h as E};