@videojs/html 10.0.0-beta.28 → 10.0.0-beta.29

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 (533) hide show
  1. package/cdn/{adapter-XTen-YVQ.js → adapter-CEnNWvii.js} +17 -4
  2. package/cdn/adapter-CEnNWvii.js.map +1 -0
  3. package/cdn/adapter-DaKW8NzI.js +2 -0
  4. package/cdn/adapter-DaKW8NzI.js.map +1 -0
  5. package/cdn/audio-headless.dev.js +1 -1
  6. package/cdn/audio-headless.js +1 -1
  7. package/cdn/audio-minimal-ui.dev.js +2 -2
  8. package/cdn/audio-minimal-ui.js +1 -1
  9. package/cdn/audio-minimal.dev.js +5 -5
  10. package/cdn/audio-minimal.dev.js.map +1 -1
  11. package/cdn/audio-minimal.js +1 -1
  12. package/cdn/audio-minimal.js.map +1 -1
  13. package/cdn/audio-ui.dev.js +2 -2
  14. package/cdn/audio-ui.js +1 -1
  15. package/cdn/audio.dev.js +5 -5
  16. package/cdn/audio.dev.js.map +1 -1
  17. package/cdn/audio.js +1 -1
  18. package/cdn/audio.js.map +1 -1
  19. package/cdn/background.dev.js +1 -1
  20. package/cdn/background.js +1 -1
  21. package/cdn/background.js.map +1 -1
  22. package/cdn/compounds-C4YYLyL2.js +8 -0
  23. package/cdn/compounds-C4YYLyL2.js.map +1 -0
  24. package/cdn/{compounds-nk9RJtBK.js → compounds-C73u1MeO.js} +63 -59
  25. package/cdn/compounds-C73u1MeO.js.map +1 -0
  26. package/cdn/create-player-BU8LDJDL.js +2 -0
  27. package/cdn/create-player-BU8LDJDL.js.map +1 -0
  28. package/cdn/{create-player-DK9WOywd.js → create-player-Db1CIvlK.js} +58 -46
  29. package/cdn/create-player-Db1CIvlK.js.map +1 -0
  30. package/cdn/{default-BqQDVloS.js → default-A3aM0skz.js} +2 -2
  31. package/cdn/default-A3aM0skz.js.map +1 -0
  32. package/cdn/default-BDyhiTCm.js +2 -0
  33. package/cdn/default-BDyhiTCm.js.map +1 -0
  34. package/cdn/{default-I2LasfxC.js → default-C1_k1NeB.js} +2 -2
  35. package/cdn/default-C1_k1NeB.js.map +1 -0
  36. package/cdn/default-DHrMd4ie.js +2 -0
  37. package/cdn/default-DHrMd4ie.js.map +1 -0
  38. package/cdn/error-surface-BID4D3DW.js +59 -0
  39. package/cdn/error-surface-BID4D3DW.js.map +1 -0
  40. package/cdn/{select-tracks-nRPBa1NC.js → error-surface-D0bo71gD.js} +442 -48
  41. package/cdn/error-surface-D0bo71gD.js.map +1 -0
  42. package/cdn/gesture-element-CeRy1IVs.js +2 -0
  43. package/cdn/gesture-element-CeRy1IVs.js.map +1 -0
  44. package/cdn/{gesture-element-6Ld1YwIL.js → gesture-element-DB67OYCE.js} +3 -3
  45. package/cdn/gesture-element-DB67OYCE.js.map +1 -0
  46. package/cdn/{hls-js-C4P_b2tT.js → hls-js-CiE4wOrG.js} +2 -2
  47. package/cdn/{hls-js-C4P_b2tT.js.map → hls-js-CiE4wOrG.js.map} +1 -1
  48. package/cdn/{hls-js-CATW7NBm.js → hls-js-DBKRCbQm.js} +2 -2
  49. package/cdn/{hls-js-CATW7NBm.js.map → hls-js-DBKRCbQm.js.map} +1 -1
  50. package/cdn/{hls-js-BEuVm0u9.js → hls-js-DX2NGCAr.js} +2 -2
  51. package/cdn/{hls-js-BEuVm0u9.js.map → hls-js-DX2NGCAr.js.map} +1 -1
  52. package/cdn/{hls-js-WCNy9MVh.js → hls-js-JeH8yvsP.js} +2 -2
  53. package/cdn/{hls-js-WCNy9MVh.js.map → hls-js-JeH8yvsP.js.map} +1 -1
  54. package/cdn/i18n-CpBDXf6M.js +2 -0
  55. package/cdn/{i18n-Dc7WM2xd.js.map → i18n-CpBDXf6M.js.map} +1 -1
  56. package/cdn/{i18n-Ch4t6EjV.js → i18n-D0nhPa0m.js} +2 -2
  57. package/cdn/{i18n-Ch4t6EjV.js.map → i18n-D0nhPa0m.js.map} +1 -1
  58. package/cdn/{live-button-element-DaHgnYdw.js → live-button-element-Co8z2LkI.js} +2 -2
  59. package/cdn/{live-button-element-DaHgnYdw.js.map → live-button-element-Co8z2LkI.js.map} +1 -1
  60. package/cdn/{live-button-element-Bae44kBN.js → live-button-element-zE-8uoR2.js} +3 -3
  61. package/cdn/{live-button-element-Bae44kBN.js.map → live-button-element-zE-8uoR2.js.map} +1 -1
  62. package/cdn/live-video-minimal.dev.js +11 -9
  63. package/cdn/live-video-minimal.dev.js.map +1 -1
  64. package/cdn/live-video-minimal.js +1 -1
  65. package/cdn/live-video-minimal.js.map +1 -1
  66. package/cdn/live-video.dev.js +12 -10
  67. package/cdn/live-video.dev.js.map +1 -1
  68. package/cdn/live-video.js +1 -1
  69. package/cdn/live-video.js.map +1 -1
  70. package/cdn/media/hls-audio.dev.js +1 -1
  71. package/cdn/media/hls-audio.js +1 -1
  72. package/cdn/media/hls-background-video.dev.js +1 -1
  73. package/cdn/media/hls-background-video.js +1 -1
  74. package/cdn/media/hls-video.dev.js +1 -1
  75. package/cdn/media/hls-video.js +1 -1
  76. package/cdn/media/mux-audio/hls-js.dev.js +1 -1
  77. package/cdn/media/mux-audio/hls-js.js +1 -1
  78. package/cdn/media/mux-audio/spf.dev.js +2 -2
  79. package/cdn/media/mux-audio/spf.js +1 -1
  80. package/cdn/media/mux-audio.dev.js +1 -1
  81. package/cdn/media/mux-audio.js +1 -1
  82. package/cdn/media/mux-background-video.dev.js +1 -1
  83. package/cdn/media/mux-background-video.js +1 -1
  84. package/cdn/media/mux-data.dev.js +1 -1
  85. package/cdn/media/mux-data.dev.js.map +1 -1
  86. package/cdn/media/mux-data.js +1 -1
  87. package/cdn/media/mux-data.js.map +1 -1
  88. package/cdn/media/mux-video/hls-js.dev.js +1 -1
  89. package/cdn/media/mux-video/hls-js.js +1 -1
  90. package/cdn/media/mux-video/spf.dev.js +2 -2
  91. package/cdn/media/mux-video/spf.js +1 -1
  92. package/cdn/media/mux-video.dev.js +1 -1
  93. package/cdn/media/mux-video.js +1 -1
  94. package/cdn/media/vimeo-video.dev.js +27 -5
  95. package/cdn/media/vimeo-video.dev.js.map +1 -1
  96. package/cdn/media/vimeo-video.js +1 -1
  97. package/cdn/media/vimeo-video.js.map +1 -1
  98. package/cdn/{media-Uxm0d3Vx.js → media-BI8caj07.js} +3 -3
  99. package/cdn/{media-Uxm0d3Vx.js.map → media-BI8caj07.js.map} +1 -1
  100. package/cdn/{media-COIe3uI5.js → media-BNuI0Im7.js} +19 -6
  101. package/cdn/media-BNuI0Im7.js.map +1 -0
  102. package/cdn/media-CQxFuDcv.js +2 -0
  103. package/cdn/{media-CPVSKLdk.js.map → media-CQxFuDcv.js.map} +1 -1
  104. package/cdn/media-D4tG62L5.js +2 -0
  105. package/cdn/{media-BTipOcKo.js.map → media-D4tG62L5.js.map} +1 -1
  106. package/cdn/{media-oa3nyL2o.js → media-DI6DvYm3.js} +3 -3
  107. package/cdn/{media-oa3nyL2o.js.map → media-DI6DvYm3.js.map} +1 -1
  108. package/cdn/media-DU3Xf5XR.js +2 -0
  109. package/cdn/media-DU3Xf5XR.js.map +1 -0
  110. package/cdn/media-mYKOAsk3.js +825 -0
  111. package/cdn/media-mYKOAsk3.js.map +1 -0
  112. package/cdn/media-zReLnePj.js +2 -0
  113. package/cdn/media-zReLnePj.js.map +1 -0
  114. package/cdn/{minimal-DQCLKRyR.js → minimal-3OmH0xQS.js} +2 -2
  115. package/cdn/minimal-3OmH0xQS.js.map +1 -0
  116. package/cdn/{minimal-DLosvq31.js → minimal-6w_Vyyl9.js} +2 -2
  117. package/cdn/minimal-6w_Vyyl9.js.map +1 -0
  118. package/cdn/minimal-BWLTn7oQ.js +2 -0
  119. package/cdn/minimal-BWLTn7oQ.js.map +1 -0
  120. package/cdn/minimal-DIGrklyh.js +2 -0
  121. package/cdn/minimal-DIGrklyh.js.map +1 -0
  122. package/cdn/{minimal-ui-CRKvUmB8.js → minimal-ui-BCIESK8f.js} +8 -8
  123. package/cdn/{minimal-ui-CRKvUmB8.js.map → minimal-ui-BCIESK8f.js.map} +1 -1
  124. package/cdn/minimal-ui-BXrq3z4U.js +2 -0
  125. package/cdn/{minimal-ui-Et2Wcn7r.js.map → minimal-ui-BXrq3z4U.js.map} +1 -1
  126. package/cdn/{minimal-ui-BpHxIo4z.js → minimal-ui-DEalpMk6.js} +4 -4
  127. package/cdn/{minimal-ui-BpHxIo4z.js.map → minimal-ui-DEalpMk6.js.map} +1 -1
  128. package/cdn/{minimal-ui-8iRZf_72.js → minimal-ui-vY3QgohH.js} +2 -2
  129. package/cdn/{minimal-ui-8iRZf_72.js.map → minimal-ui-vY3QgohH.js.map} +1 -1
  130. package/cdn/{player-DM9rUXg-.js → player-B3GlPF90.js} +2 -2
  131. package/cdn/{player-DM9rUXg-.js.map → player-B3GlPF90.js.map} +1 -1
  132. package/cdn/player-CtTC7qa5.js +2 -0
  133. package/cdn/{player-rCFqzWrA.js.map → player-CtTC7qa5.js.map} +1 -1
  134. package/cdn/player-DKkph8UM.js +2 -0
  135. package/cdn/{player-BRQLp5bX.js.map → player-DKkph8UM.js.map} +1 -1
  136. package/cdn/{player-CKTAtwit.js → player-DPDmTRvg.js} +2 -2
  137. package/cdn/{player-CKTAtwit.js.map → player-DPDmTRvg.js.map} +1 -1
  138. package/cdn/player-DrDd7LJi.js +2 -0
  139. package/cdn/{player-BloX4l6F.js.map → player-DrDd7LJi.js.map} +1 -1
  140. package/cdn/{player-B2oraRyD.js → player-L5UpZmT4.js} +2 -2
  141. package/cdn/{player-B2oraRyD.js.map → player-L5UpZmT4.js.map} +1 -1
  142. package/cdn/{poster-element-BGr1VQJB.js → poster-element-B5tdJ2ub.js} +179 -38
  143. package/cdn/poster-element-B5tdJ2ub.js.map +1 -0
  144. package/cdn/poster-element-B8QwXSU_.js +2 -0
  145. package/cdn/poster-element-B8QwXSU_.js.map +1 -0
  146. package/cdn/{error-surface-drmCvBVW.js → relocation-pipelines-Dh8CcgHw.js} +5 -343
  147. package/cdn/relocation-pipelines-Dh8CcgHw.js.map +1 -0
  148. package/cdn/relocation-pipelines-DunE4gcV.js +2 -0
  149. package/cdn/relocation-pipelines-DunE4gcV.js.map +1 -0
  150. package/cdn/{seek-button-element-XMTLIxZj.js → seek-button-element-5co-k0Dx.js} +4 -4
  151. package/cdn/seek-button-element-5co-k0Dx.js.map +1 -0
  152. package/cdn/{seek-button-element-FlgBVoGM.js → seek-button-element-B8TkILg-.js} +2 -2
  153. package/cdn/{seek-button-element-FlgBVoGM.js.map → seek-button-element-B8TkILg-.js.map} +1 -1
  154. package/cdn/shallow-equal-C7S8rj2f.js +16 -0
  155. package/cdn/shallow-equal-C7S8rj2f.js.map +1 -0
  156. package/cdn/shallow-equal-KV1zFqZi.js +2 -0
  157. package/cdn/shallow-equal-KV1zFqZi.js.map +1 -0
  158. package/cdn/{skin-element-DL-Kqa5f.js → skin-element-DrkI8xuM.js} +2 -2
  159. package/cdn/{skin-element-DL-Kqa5f.js.map → skin-element-DrkI8xuM.js.map} +1 -1
  160. package/cdn/{skin-element-DNytI-uu.js → skin-element-DvX6Bxsv.js} +2 -2
  161. package/cdn/{skin-element-DNytI-uu.js.map → skin-element-DvX6Bxsv.js.map} +1 -1
  162. package/cdn/{text-element-DeWBNKXb.js → text-element-BoY6AhMn.js} +2 -2
  163. package/cdn/{text-element-DeWBNKXb.js.map → text-element-BoY6AhMn.js.map} +1 -1
  164. package/cdn/{text-element-D88ArbZz.js → text-element-cg6l21cd.js} +2 -2
  165. package/cdn/{text-element-D88ArbZz.js.map → text-element-cg6l21cd.js.map} +1 -1
  166. package/cdn/time-slider-chapters-element-BfLjdnU4.js +2 -0
  167. package/cdn/time-slider-chapters-element-BfLjdnU4.js.map +1 -0
  168. package/cdn/{time-slider-chapters-element-DJ0abZXI.js → time-slider-chapters-element-CznFQWFm.js} +5 -5
  169. package/cdn/time-slider-chapters-element-CznFQWFm.js.map +1 -0
  170. package/cdn/{ui-BU3_2gDQ.js → ui-BwzqkJNK.js} +7 -7
  171. package/cdn/{ui-BU3_2gDQ.js.map → ui-BwzqkJNK.js.map} +1 -1
  172. package/cdn/ui-DayfItun.js +2 -0
  173. package/cdn/{ui-C0isALTQ.js.map → ui-DayfItun.js.map} +1 -1
  174. package/cdn/ui-PSnD-pv8.js +2 -0
  175. package/cdn/{ui-DVpkE1MN.js.map → ui-PSnD-pv8.js.map} +1 -1
  176. package/cdn/{ui-BsaWWE4y.js → ui-fnKp94a7.js} +9 -9
  177. package/cdn/{ui-BsaWWE4y.js.map → ui-fnKp94a7.js.map} +1 -1
  178. package/cdn/video-headless.dev.js +1 -1
  179. package/cdn/video-headless.js +1 -1
  180. package/cdn/video-minimal-ui.dev.js +2 -2
  181. package/cdn/video-minimal-ui.js +1 -1
  182. package/cdn/video-minimal.dev.js +8 -6
  183. package/cdn/video-minimal.dev.js.map +1 -1
  184. package/cdn/video-minimal.js +1 -1
  185. package/cdn/video-minimal.js.map +1 -1
  186. package/cdn/video-ui.dev.js +2 -2
  187. package/cdn/video-ui.js +1 -1
  188. package/cdn/video.dev.js +9 -7
  189. package/cdn/video.dev.js.map +1 -1
  190. package/cdn/video.js +1 -1
  191. package/cdn/video.js.map +1 -1
  192. package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
  193. package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
  194. package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
  195. package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
  196. package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
  197. package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
  198. package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
  199. package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
  200. package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
  201. package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
  202. package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
  203. package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
  204. package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
  205. package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
  206. package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
  207. package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  208. package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
  209. package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
  210. package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
  211. package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  212. package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  213. package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
  214. package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  215. package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
  216. package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
  217. package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  218. package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  219. package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
  220. package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
  221. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  222. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  223. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  224. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  225. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  226. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  227. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  228. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  229. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  230. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  231. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  232. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  233. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  234. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  235. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  236. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  237. package/dist/default/define/audio/minimal-skin.css +103 -101
  238. package/dist/default/define/audio/skin.css +68 -69
  239. package/dist/default/define/live-audio/minimal-skin.css +103 -101
  240. package/dist/default/define/live-audio/skin.css +68 -69
  241. package/dist/default/define/live-video/minimal-skin.css +140 -120
  242. package/dist/default/define/live-video/minimal-skin.js +1 -1
  243. package/dist/default/define/live-video/minimal-skin.js.map +1 -1
  244. package/dist/default/define/live-video/minimal-skin.tailwind.js +1 -1
  245. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
  246. package/dist/default/define/live-video/skin.css +89 -76
  247. package/dist/default/define/live-video/skin.js +1 -1
  248. package/dist/default/define/live-video/skin.js.map +1 -1
  249. package/dist/default/define/live-video/skin.tailwind.js +1 -1
  250. package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
  251. package/dist/default/define/ui/gesture.js +7 -0
  252. package/dist/default/define/ui/gesture.js.map +1 -0
  253. package/dist/default/define/video/minimal-skin.css +140 -120
  254. package/dist/default/define/video/minimal-skin.js +1 -1
  255. package/dist/default/define/video/minimal-skin.js.map +1 -1
  256. package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
  257. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  258. package/dist/default/define/video/skin.css +89 -76
  259. package/dist/default/define/video/skin.js +1 -1
  260. package/dist/default/define/video/skin.js.map +1 -1
  261. package/dist/default/define/video/skin.tailwind.js +1 -1
  262. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  263. package/dist/default/icons/dist/element/default/icons.js +1 -1
  264. package/dist/default/icons/dist/element/default/icons.js.map +1 -1
  265. package/dist/default/icons/dist/element/minimal/icons.js +1 -1
  266. package/dist/default/icons/dist/element/minimal/icons.js.map +1 -1
  267. package/dist/default/icons/dist/html/default/airplay-exit.js +1 -1
  268. package/dist/default/icons/dist/html/default/airplay-exit.js.map +1 -1
  269. package/dist/default/icons/dist/html/minimal/airplay-exit.js +1 -1
  270. package/dist/default/icons/dist/html/minimal/airplay-exit.js.map +1 -1
  271. package/dist/default/icons/dist/render/default/index.js +1 -1
  272. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  273. package/dist/default/icons/dist/render/minimal/index.js +1 -1
  274. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  275. package/dist/default/media/hls-background-video/media.js +18 -0
  276. package/dist/default/media/hls-background-video/media.js.map +1 -1
  277. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
  278. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  279. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
  280. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  281. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +10 -10
  282. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  283. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  284. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  285. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
  286. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  287. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  288. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  289. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  290. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  291. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  292. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  293. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
  294. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  295. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  296. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  297. package/dist/default/store/provider-mixin.js +22 -8
  298. package/dist/default/store/provider-mixin.js.map +1 -1
  299. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
  300. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
  301. package/dist/default/ui/captions-radio-group/captions-radio-group-element.js +1 -1
  302. package/dist/default/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
  303. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  304. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  305. package/dist/default/ui/menu/context.js.map +1 -1
  306. package/dist/default/ui/menu/menu-element.js +28 -27
  307. package/dist/default/ui/menu/menu-element.js.map +1 -1
  308. package/dist/default/ui/menu/menu-radio-group-element.js +14 -14
  309. package/dist/default/ui/menu/menu-radio-group-element.js.map +1 -1
  310. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
  311. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
  312. package/dist/default/ui/poster/poster-element.js +138 -8
  313. package/dist/default/ui/poster/poster-element.js.map +1 -1
  314. package/dist/default/ui/quality-radio-group/quality-radio-group-element.js +1 -1
  315. package/dist/default/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
  316. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  317. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
  318. package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
  319. package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
  320. package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
  321. package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
  322. package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
  323. package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
  324. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
  325. package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
  326. package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
  327. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
  328. package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
  329. package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
  330. package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
  331. package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
  332. package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  333. package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
  334. package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
  335. package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
  336. package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  337. package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  338. package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
  339. package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  340. package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
  341. package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
  342. package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  343. package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  344. package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
  345. package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
  346. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  347. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  348. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  349. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  350. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  351. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  352. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  353. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  354. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  355. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  356. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  357. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  358. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  359. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  360. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  361. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  362. package/dist/dev/define/audio/minimal-skin.css +103 -101
  363. package/dist/dev/define/audio/skin.css +68 -69
  364. package/dist/dev/define/live-audio/minimal-skin.css +103 -101
  365. package/dist/dev/define/live-audio/skin.css +68 -69
  366. package/dist/dev/define/live-video/minimal-skin.css +140 -120
  367. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -1
  368. package/dist/dev/define/live-video/minimal-skin.js +3 -1
  369. package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
  370. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  371. package/dist/dev/define/live-video/minimal-skin.tailwind.js +3 -1
  372. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
  373. package/dist/dev/define/live-video/skin.css +89 -76
  374. package/dist/dev/define/live-video/skin.d.ts.map +1 -1
  375. package/dist/dev/define/live-video/skin.js +3 -1
  376. package/dist/dev/define/live-video/skin.js.map +1 -1
  377. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -1
  378. package/dist/dev/define/live-video/skin.tailwind.js +4 -2
  379. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
  380. package/dist/dev/define/ui/gesture.d.ts +8 -0
  381. package/dist/dev/define/ui/gesture.d.ts.map +1 -0
  382. package/dist/dev/define/ui/gesture.js +7 -0
  383. package/dist/dev/define/ui/gesture.js.map +1 -0
  384. package/dist/dev/define/video/minimal-skin.css +140 -120
  385. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  386. package/dist/dev/define/video/minimal-skin.js +3 -1
  387. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  388. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  389. package/dist/dev/define/video/minimal-skin.tailwind.js +3 -1
  390. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  391. package/dist/dev/define/video/skin.css +89 -76
  392. package/dist/dev/define/video/skin.d.ts.map +1 -1
  393. package/dist/dev/define/video/skin.js +3 -1
  394. package/dist/dev/define/video/skin.js.map +1 -1
  395. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  396. package/dist/dev/define/video/skin.tailwind.js +4 -2
  397. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  398. package/dist/dev/media/hls-background-video/media.d.ts +16 -0
  399. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
  400. package/dist/dev/media/hls-background-video/media.js +18 -0
  401. package/dist/dev/media/hls-background-video/media.js.map +1 -1
  402. package/dist/dev/packages/icons/dist/element/default/icons.js +1 -1
  403. package/dist/dev/packages/icons/dist/element/default/icons.js.map +1 -1
  404. package/dist/dev/packages/icons/dist/element/minimal/icons.js +1 -1
  405. package/dist/dev/packages/icons/dist/element/minimal/icons.js.map +1 -1
  406. package/dist/dev/packages/icons/dist/html/default/airplay-exit.js +1 -1
  407. package/dist/dev/packages/icons/dist/html/default/airplay-exit.js.map +1 -1
  408. package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js +1 -1
  409. package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js.map +1 -1
  410. package/dist/dev/packages/icons/dist/render/default/index.js +1 -1
  411. package/dist/dev/packages/icons/dist/render/default/index.js.map +1 -1
  412. package/dist/dev/packages/icons/dist/render/minimal/index.js +1 -1
  413. package/dist/dev/packages/icons/dist/render/minimal/index.js.map +1 -1
  414. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js +3 -1
  415. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  416. package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js +8 -1
  417. package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  418. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js +10 -10
  419. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  420. package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  421. package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  422. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
  423. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  424. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  425. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  426. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  427. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  428. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  429. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  430. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
  431. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  432. package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  433. package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  434. package/dist/dev/store/provider-mixin.d.ts.map +1 -1
  435. package/dist/dev/store/provider-mixin.js +24 -8
  436. package/dist/dev/store/provider-mixin.js.map +1 -1
  437. package/dist/dev/store/types.d.ts +2 -2
  438. package/dist/dev/store/types.d.ts.map +1 -1
  439. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
  440. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
  441. package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js +1 -1
  442. package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
  443. package/dist/dev/ui/gesture/gesture-element.d.ts +7 -7
  444. package/dist/dev/ui/gesture/gesture-element.d.ts.map +1 -1
  445. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  446. package/dist/dev/ui/hotkey/hotkey-element.d.ts +6 -6
  447. package/dist/dev/ui/hotkey/hotkey-element.d.ts.map +1 -1
  448. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  449. package/dist/dev/ui/menu/context.d.ts +8 -8
  450. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  451. package/dist/dev/ui/menu/context.js.map +1 -1
  452. package/dist/dev/ui/menu/menu-element.d.ts.map +1 -1
  453. package/dist/dev/ui/menu/menu-element.js +28 -27
  454. package/dist/dev/ui/menu/menu-element.js.map +1 -1
  455. package/dist/dev/ui/menu/menu-radio-group-element.d.ts +1 -1
  456. package/dist/dev/ui/menu/menu-radio-group-element.d.ts.map +1 -1
  457. package/dist/dev/ui/menu/menu-radio-group-element.js +14 -14
  458. package/dist/dev/ui/menu/menu-radio-group-element.js.map +1 -1
  459. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
  460. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
  461. package/dist/dev/ui/poster/poster-element.d.ts +20 -18
  462. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  463. package/dist/dev/ui/poster/poster-element.js +145 -8
  464. package/dist/dev/ui/poster/poster-element.js.map +1 -1
  465. package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js +1 -1
  466. package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
  467. package/dist/dev/ui/slider/slider-preview-element.d.ts +2 -2
  468. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
  469. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  470. package/docs/README.md +1 -1
  471. package/docs/concepts/skins.md +91 -78
  472. package/docs/how-to/customize-skins.md +411 -377
  473. package/docs/reference/menu.md +3 -19
  474. package/docs/reference/popover.md +2 -2
  475. package/docs/reference/poster.md +211 -21
  476. package/docs/reference/slider.md +1 -1
  477. package/docs/reference/time-slider.md +1 -1
  478. package/docs/reference/tooltip.md +6 -6
  479. package/docs/reference/volume-slider.md +1 -1
  480. package/package.json +14 -9
  481. package/cdn/adapter-Bk03SAxn.js +0 -2
  482. package/cdn/adapter-Bk03SAxn.js.map +0 -1
  483. package/cdn/adapter-XTen-YVQ.js.map +0 -1
  484. package/cdn/compounds-BEO1d3ZM.js +0 -8
  485. package/cdn/compounds-BEO1d3ZM.js.map +0 -1
  486. package/cdn/compounds-nk9RJtBK.js.map +0 -1
  487. package/cdn/create-player-DK9WOywd.js.map +0 -1
  488. package/cdn/create-player-hSdQMP5p.js +0 -2
  489. package/cdn/create-player-hSdQMP5p.js.map +0 -1
  490. package/cdn/default-BqQDVloS.js.map +0 -1
  491. package/cdn/default-CXWVp2oG.js +0 -2
  492. package/cdn/default-CXWVp2oG.js.map +0 -1
  493. package/cdn/default-Dw6cIEqT.js +0 -2
  494. package/cdn/default-Dw6cIEqT.js.map +0 -1
  495. package/cdn/default-I2LasfxC.js.map +0 -1
  496. package/cdn/error-surface-DCT1m2p1.js +0 -2
  497. package/cdn/error-surface-DCT1m2p1.js.map +0 -1
  498. package/cdn/error-surface-drmCvBVW.js.map +0 -1
  499. package/cdn/gesture-element-6Ld1YwIL.js.map +0 -1
  500. package/cdn/gesture-element-BC48ucj9.js +0 -2
  501. package/cdn/gesture-element-BC48ucj9.js.map +0 -1
  502. package/cdn/i18n-Dc7WM2xd.js +0 -2
  503. package/cdn/media-BTipOcKo.js +0 -2
  504. package/cdn/media-Bmablv4g.js +0 -2
  505. package/cdn/media-Bmablv4g.js.map +0 -1
  506. package/cdn/media-COIe3uI5.js.map +0 -1
  507. package/cdn/media-CPVSKLdk.js +0 -2
  508. package/cdn/media-Dq4zmIJa.js +0 -2
  509. package/cdn/media-Dq4zmIJa.js.map +0 -1
  510. package/cdn/media-suYcjCG2.js +0 -445
  511. package/cdn/media-suYcjCG2.js.map +0 -1
  512. package/cdn/minimal-BedCvMBG.js +0 -2
  513. package/cdn/minimal-BedCvMBG.js.map +0 -1
  514. package/cdn/minimal-BoP112ye.js +0 -2
  515. package/cdn/minimal-BoP112ye.js.map +0 -1
  516. package/cdn/minimal-DLosvq31.js.map +0 -1
  517. package/cdn/minimal-DQCLKRyR.js.map +0 -1
  518. package/cdn/minimal-ui-Et2Wcn7r.js +0 -2
  519. package/cdn/player-BRQLp5bX.js +0 -2
  520. package/cdn/player-BloX4l6F.js +0 -2
  521. package/cdn/player-rCFqzWrA.js +0 -2
  522. package/cdn/poster-element-BGr1VQJB.js.map +0 -1
  523. package/cdn/poster-element-DBmgOyep.js +0 -2
  524. package/cdn/poster-element-DBmgOyep.js.map +0 -1
  525. package/cdn/seek-button-element-XMTLIxZj.js.map +0 -1
  526. package/cdn/select-tracks-nRPBa1NC.js.map +0 -1
  527. package/cdn/select-tracks-xV1s28xD.js +0 -59
  528. package/cdn/select-tracks-xV1s28xD.js.map +0 -1
  529. package/cdn/time-slider-chapters-element-DJ0abZXI.js.map +0 -1
  530. package/cdn/time-slider-chapters-element-DW8YyJn8.js +0 -2
  531. package/cdn/time-slider-chapters-element-DW8YyJn8.js.map +0 -1
  532. package/cdn/ui-C0isALTQ.js +0 -2
  533. package/cdn/ui-DVpkE1MN.js +0 -2
@@ -494,22 +494,6 @@ Description
494
494
 
495
495
  Initial open state (uncontrolled).
496
496
 
497
- `isSubmenu`
498
-
499
- `boolean`
500
-
501
- `false`
502
-
503
-
504
-
505
- Attribute
506
-
507
- `is-submenu`
508
-
509
- Description
510
-
511
- True when this menu instance is nested inside a parent menu's content.
512
-
513
497
  `open`
514
498
 
515
499
  `boolean`
@@ -626,7 +610,7 @@ Present when the menu is open.
626
610
 
627
611
  `data-side`
628
612
 
629
- `undefined | 'top' | 'bottom' | 'left'...`
613
+ `undefined | 'left' | 'right' | 'top' ...`
630
614
 
631
615
 
632
616
 
@@ -636,11 +620,11 @@ Rendered positioning side after collision handling. Absent on submenus.
636
620
 
637
621
  Type
638
622
 
639
- `undefined | 'top' | 'bottom' | 'left' | 'right'`
623
+ `undefined | 'left' | 'right' | 'top' | 'bottom'`
640
624
 
641
625
  `data-align`
642
626
 
643
- `undefined | 'start' | 'center' | 'end'`
627
+ `undefined | 'center' | 'start' | 'end'`
644
628
 
645
629
 
646
630
 
@@ -392,7 +392,7 @@ Present when the popover is open.
392
392
 
393
393
  `data-side`
394
394
 
395
- `'top' | 'bottom' | 'left' | 'right'`
395
+ `'left' | 'right' | 'top' | 'bottom'`
396
396
 
397
397
 
398
398
 
@@ -402,7 +402,7 @@ Indicates the rendered side of the popover after collision handling.
402
402
 
403
403
  `data-align`
404
404
 
405
- `'start' | 'center' | 'end'`
405
+ `'center' | 'start' | 'end'`
406
406
 
407
407
 
408
408
 
@@ -4,43 +4,138 @@ Poster image component that displays a thumbnail until video playback starts
4
4
 
5
5
  ## Anatomy
6
6
 
7
- Import the component:
8
-
9
7
  html
10
8
 
11
9
  ```
12
10
  <media-poster>
13
- <img src="poster.jpg" alt="Video preview" />
11
+ <img alt="" />
14
12
  </media-poster>
15
13
  ```
16
14
 
17
15
  ## Behavior
18
16
 
19
- The poster is visible before playback starts. Once the user plays or seeks, the poster hides permanently — pausing does not bring it back. The poster reappears when a new source is loaded.
17
+ The poster shows before playback starts. Once the user plays or seeks, it hides; pausing does not bring it back. Loading a new source shows it again.
18
+
19
+ You can set the poster URL on the player. This is useful when you want to change the poster from inside a skin, or keep all your media metadata in one place:
20
+
21
+ html
22
+
23
+ ```
24
+ <video-player poster="poster.jpg"></video-player>
25
+ ```
26
+
27
+ ## Supply your own image
28
+
29
+ The component fills in a source only when you leave one out. `srcset`, `sizes`, `loading`, `<picture>`, and framework image components all stay available.
30
+
31
+ `<media-poster>` renders no image of its own. It fills in the `src` of the image you put inside it:
32
+
33
+ html
34
+
35
+ ```
36
+ <media-poster>
37
+ <img alt="" />
38
+ </media-poster>
39
+ ```
40
+
41
+ Give that image a `src`, a `srcset`, or `<source>` candidates and it is yours; the component leaves it alone:
42
+
43
+ html
44
+
45
+ ```
46
+ <media-poster>
47
+ <img src="poster.jpg" srcset="poster-480.jpg 480w, poster-1080.jpg 1080w" alt="Keynote speaker" />
48
+ </media-poster>
49
+ ```
50
+
51
+ Inside a skin, slot your image instead. The skin carries a plain one that yours replaces:
52
+
53
+ html
54
+
55
+ ```
56
+ <video-skin>
57
+ <video src="video.mp4" playsinline></video>
58
+ <img slot="poster" src="poster.jpg" alt="Keynote speaker" />
59
+ </video-skin>
60
+ ```
61
+
62
+ A skin can only style an `<img>` you slot directly. Wrap one in a `<picture>` or a framework component and its sizing is yours.
20
63
 
21
64
  ## Styling
22
65
 
23
- Style the poster with the `[data-visible]` attribute:
66
+ Attribute
67
+
68
+ Values
69
+
70
+ Description
71
+
72
+ `data-visible`
73
+
74
+ Present / absent
75
+
76
+ Present before playback starts
77
+
78
+ `data-loading`
79
+
80
+ Present / absent
81
+
82
+ Present while the image is fetching
83
+
84
+ `data-loaded`
85
+
86
+ Present / absent
87
+
88
+ Present once the image has loaded
89
+
90
+ `data-error`
91
+
92
+ Present / absent
93
+
94
+ Present when the image failed
95
+
96
+ The three load attributes track the image on screen, including one you supplied yourself.
24
97
 
25
98
  css
26
99
 
27
100
  ```
28
101
  media-poster:not([data-visible]) {
29
- display: none;
102
+ opacity: 0;
30
103
  }
31
104
  ```
32
105
 
33
- You control the child `<img>` this means `srcset`, `sizes`, `loading="lazy"`, and framework image components all work naturally.
106
+ The image is an ordinary child, so style it as a descendant:
107
+
108
+ css
109
+
110
+ ```
111
+ media-poster img {
112
+ object-fit: cover;
113
+ }
114
+ ```
115
+
116
+ From inside a skin’s shadow root, an image slotted from outside needs `::slotted(img)` as well.
34
117
 
35
118
  ## Accessibility
36
119
 
37
- Unlike the native `<video poster>` attribute, this component allows you to provide accessible text alternatives for screen readers via the `alt` attribute on your child `<img>`. This means you can describe the poster image (e.g., `alt="Keynote speaker at a conference"`) or mark it as decorative with `alt=""` if it doesn’t convey meaningful information.
120
+ Unlike the native `<video poster>` attribute, this component lets you describe the poster for screen readers.
121
+
122
+ The image is decorative by default (`alt=""`), since a URL says nothing about what the image shows. When the poster carries meaning, say so:
123
+
124
+ html
125
+
126
+ ```
127
+ <media-poster>
128
+ <img src="poster.jpg" alt="Keynote speaker at a conference" />
129
+ </media-poster>
130
+ ```
131
+
132
+ Whether a poster is informative or decorative is your judgment, per the [WAI guidelines](https://www.w3.org/WAI/tutorials/images/decorative/).
38
133
 
39
134
  ## Examples
40
135
 
41
136
  ### Basic Usage
42
137
 
43
- ![Video thumbnail](https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.jpg)Play Pause
138
+ Play Pause
44
139
 
45
140
  index.html
46
141
 
@@ -50,7 +145,7 @@ index.ts
50
145
 
51
146
  ```
52
147
  <!-- biome-ignore-all lint/a11y/useMediaCaption: TODO -->
53
- <video-player class="video-player">
148
+ <video-player class="video-player" poster="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.jpg">
54
149
  <media-container>
55
150
  <video
56
151
  src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"
@@ -58,16 +153,13 @@ index.ts
58
153
  ></video>
59
154
 
60
155
  <media-poster class="media-poster">
61
- <img
62
- src="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.jpg"
63
- alt="Video thumbnail"
64
- />
65
- </media-poster>
66
-
67
- <media-play-button class="media-play-button">
68
- <span class="paused">Play</span>
69
- <span class="playing">Pause</span>
70
- </media-play-button>
156
+ <img alt="" />
157
+ </media-poster>
158
+
159
+ <media-play-button class="media-play-button">
160
+ <span class="paused">Play</span>
161
+ <span class="playing">Pause</span>
162
+ </media-play-button>
71
163
  </media-container>
72
164
  </video-player>
73
165
  ```
@@ -133,6 +225,28 @@ import '@videojs/html/ui/poster';
133
225
 
134
226
  ## API Reference
135
227
 
228
+ ### Props
229
+
230
+ Prop
231
+
232
+ Type
233
+
234
+ Default
235
+
236
+ Details
237
+
238
+ `src`
239
+
240
+ `string`
241
+
242
+ `—`
243
+
244
+
245
+
246
+ Attribute
247
+
248
+ `src`
249
+
136
250
  ### State
137
251
 
138
252
  State is reflected as data attributes for CSS styling.
@@ -147,6 +261,52 @@ Details
147
261
 
148
262
  `boolean`
149
263
 
264
+
265
+
266
+ Description
267
+
268
+ Whether the poster should be shown, which it is until playback starts.
269
+
270
+ `src`
271
+
272
+ `string`
273
+
274
+
275
+
276
+ Description
277
+
278
+ Resolved poster URL, empty when nothing supplied one.
279
+
280
+ `loading`
281
+
282
+ `boolean`
283
+
284
+
285
+
286
+ Description
287
+
288
+ Whether the poster image is fetching.
289
+
290
+ `loaded`
291
+
292
+ `boolean`
293
+
294
+
295
+
296
+ Description
297
+
298
+ Whether the poster image has decoded.
299
+
300
+ `error`
301
+
302
+ `boolean`
303
+
304
+
305
+
306
+ Description
307
+
308
+ Whether the poster image failed.
309
+
150
310
  ### Data attributes
151
311
 
152
312
  Attribute
@@ -155,4 +315,34 @@ Type
155
315
 
156
316
  Details
157
317
 
158
- `data-visible`
318
+ `data-visible`
319
+
320
+
321
+
322
+ Description
323
+
324
+ Present until playback starts.
325
+
326
+ `data-loading`
327
+
328
+
329
+
330
+ Description
331
+
332
+ Present while the poster image is fetching.
333
+
334
+ `data-loaded`
335
+
336
+
337
+
338
+ Description
339
+
340
+ Present once the poster image has decoded.
341
+
342
+ `data-error`
343
+
344
+
345
+
346
+ Description
347
+
348
+ Present when the poster image failed.
@@ -645,7 +645,7 @@ Attribute
645
645
 
646
646
  Description
647
647
 
648
- How the preview handles the slider boundaries. `'clamp'` keeps the preview within bounds, `'visible'` allows it to extend beyond the edges.
648
+ Whether the preview is clamped to the slider bounds.
649
649
 
650
650
  #### Data attributes
651
651
 
@@ -832,7 +832,7 @@ Attribute
832
832
 
833
833
  Description
834
834
 
835
- How the preview handles the slider boundaries. `'clamp'` keeps the preview within bounds, `'visible'` allows it to extend beyond the edges.
835
+ Whether the preview is clamped to the slider bounds.
836
836
 
837
837
  #### Data attributes
838
838
 
@@ -470,7 +470,7 @@ Present when the tooltip is open.
470
470
 
471
471
  `data-side`
472
472
 
473
- `'top' | 'bottom' | 'left' | 'right'`
473
+ `'left' | 'right' | 'top' | 'bottom'`
474
474
 
475
475
 
476
476
 
@@ -480,7 +480,7 @@ Indicates the rendered side of the tooltip after collision handling.
480
480
 
481
481
  `data-align`
482
482
 
483
- `'start' | 'center' | 'end'`
483
+ `'center' | 'start' | 'end'`
484
484
 
485
485
 
486
486
 
@@ -574,7 +574,7 @@ Present when the tooltip is open.
574
574
 
575
575
  `data-side`
576
576
 
577
- `'top' | 'bottom' | 'left' | 'right'`
577
+ `'left' | 'right' | 'top' | 'bottom'`
578
578
 
579
579
 
580
580
 
@@ -584,7 +584,7 @@ Indicates the rendered side of the tooltip after collision handling.
584
584
 
585
585
  `data-align`
586
586
 
587
- `'start' | 'center' | 'end'`
587
+ `'center' | 'start' | 'end'`
588
588
 
589
589
 
590
590
 
@@ -616,7 +616,7 @@ Present when the tooltip is open.
616
616
 
617
617
  `data-side`
618
618
 
619
- `'top' | 'bottom' | 'left' | 'right'`
619
+ `'left' | 'right' | 'top' | 'bottom'`
620
620
 
621
621
 
622
622
 
@@ -626,7 +626,7 @@ Indicates the rendered side of the tooltip after collision handling.
626
626
 
627
627
  `data-align`
628
628
 
629
- `'start' | 'center' | 'end'`
629
+ `'center' | 'start' | 'end'`
630
630
 
631
631
 
632
632
 
@@ -576,7 +576,7 @@ Attribute
576
576
 
577
577
  Description
578
578
 
579
- How the preview handles the slider boundaries. `'clamp'` keeps the preview within bounds, `'visible'` allows it to extend beyond the edges.
579
+ Whether the preview is clamped to the slider bounds.
580
580
 
581
581
  #### Data attributes
582
582
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@videojs/html",
3
3
  "type": "module",
4
- "version": "10.0.0-beta.28",
4
+ "version": "10.0.0-beta.29",
5
5
  "description": "HTML library for building media players",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -165,21 +165,23 @@
165
165
  }
166
166
  },
167
167
  "dependencies": {
168
- "@videojs/core": "10.0.0-beta.28",
169
- "@videojs/element": "10.0.0-beta.28",
170
- "@videojs/media": "10.0.0-beta.28",
171
- "@videojs/store": "10.0.0-beta.28",
172
- "@videojs/utils": "10.0.0-beta.28",
173
- "@videojs/spf": "10.0.0-beta.28"
168
+ "@videojs/core": "10.0.0-beta.29",
169
+ "@videojs/element": "10.0.0-beta.29",
170
+ "@videojs/media": "10.0.0-beta.29",
171
+ "@videojs/store": "10.0.0-beta.29",
172
+ "@videojs/utils": "10.0.0-beta.29",
173
+ "@videojs/spf": "10.0.0-beta.29"
174
174
  },
175
175
  "devDependencies": {
176
176
  "@testing-library/dom": "^10.4.1",
177
177
  "happy-dom": "^20.11.1",
178
178
  "tsdown": "^0.22.14",
179
+ "tsx": "^4.23.1",
179
180
  "typescript": "^6.0.2",
180
181
  "vitest": "^4.1.10",
181
- "@videojs/icons": "10.0.0-beta.28",
182
- "@videojs/skins": "10.0.0-beta.28"
182
+ "vjsc": "0.0.0",
183
+ "@videojs/skins": "10.0.0-beta.29",
184
+ "@videojs/icons": "10.0.0-beta.29"
183
185
  },
184
186
  "publishConfig": {
185
187
  "access": "public"
@@ -193,6 +195,9 @@
193
195
  "videojs"
194
196
  ],
195
197
  "scripts": {
198
+ "generate:vjsc": "vjsc generate",
199
+ "check:vjsc": "vjsc generate --check",
200
+ "prebuild": "pnpm run generate:vjsc",
196
201
  "build": "tsdown",
197
202
  "build:cdn": "node --import tsx ./scripts/build-cdn-locales.ts && tsdown --config tsdown.cdn.config.ts",
198
203
  "check:cdn": "node --import tsx ./scripts/check-cdn-self-contained.ts",
@@ -1,2 +0,0 @@
1
- import{a as e,i as t,n,o as r}from"./source-BjtVLlkW.js";const i={src:``,source:null};function a(a){class o extends a{static get alternativeMediaSuggestion(){return"Try the hls.js-backed Mux media instead: import the `hls-js` flavor in place of the `spf` one."}#e=i.source;get src(){return super.src}set src(e){super.src!==e&&(this.source=r(e)??(e?{src:e}:null))}get source(){return this.#e}set source(t){let n=t??null;n!==this.#e&&(this.#e=n,super.src=n&&(e(n)??n.src)||``,this.dispatchEvent?.(new Event(`sourcechange`)))}get contentData(){let e=n(this.#e),r=t(this.#e);return{...e&&{poster:e},...r&&{storyboard:r}}}}return o}export{a as t};
2
- //# sourceMappingURL=adapter-Bk03SAxn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter-Bk03SAxn.js","names":["#source"],"sources":["../../spf/dist/default/playback/adapters/mux-video/adapter.js"],"sourcesContent":["import { createMuxPosterURL, createMuxStoryboardURL, createMuxVideoURL, parseMuxVideoURL } from \"@videojs/media/dom/mux/source\";\n//#region src/playback/adapters/mux-video/adapter.ts\nconst muxMediaDefaultProps = {\n\tsrc: \"\",\n\tsource: null\n};\n/**\n* Mux identity over any SPF Media: the structured `source`, the `src` derived\n* from it, and the image URLs it describes.\n*\n* Everything here is Mux identity, so it carries no engine and both flavors get\n* it unchanged — the video Media over the full HLS engine, the audio-only Media\n* over the subtractive one. A mixin rather than a shared base class because each\n* flavor extends a different SPF Media, so there is no common class to put this\n* on, only a common `src` accessor to write through.\n*\n* Unlike the hls.js-backed `MuxMedia`, there is no inherited `source` to\n* delegate to — the SPF Medias know only `src` — so this owns the structured\n* source and dispatches `sourcechange` itself.\n*\n* @fires sourcechange - Fired when `source` changes, either directly or by parsing a new `src`. Read `source` for the new value.\n*/\nfunction MuxMediaMixin(BaseClass) {\n\tclass MuxMediaImpl extends BaseClass {\n\t\t/**\n\t\t* Named on the error copy when this engine can't play a source: the\n\t\t* hls.js-backed Mux Media plays the MPEG-TS and DRM-protected sources that\n\t\t* SPF does not, and it backs both `<mux-video>` and `<mux-audio>`.\n\t\t*\n\t\t* Names the flavor rather than an import path, because one Media is reached\n\t\t* through three of them — `@videojs/html`, `@videojs/react`, and this package\n\t\t* — and each has a different counterpart. The flavor suffix is the one thing\n\t\t* common to the layers a consumer imports elements and components from.\n\t\t*/\n\t\tstatic get alternativeMediaSuggestion() {\n\t\t\treturn \"Try the hls.js-backed Mux media instead: import the `hls-js` flavor in place of the `spf` one.\";\n\t\t}\n\t\t#source = muxMediaDefaultProps.source;\n\t\t/**\n\t\t* Media source URL. Setting a Mux stream URL\n\t\t* (`https://stream.mux.com/<playback-id>.m3u8?...`) extracts the playback ID\n\t\t* and query params into `source`; other URLs are kept as a plain `source.src`.\n\t\t*\n\t\t* Only playback options carry over. Mux identity comes from the URL, and the\n\t\t* signed `poster`, `storyboard`, and `drm` tokens are scoped to a playback ID,\n\t\t* so carrying them onto a different source would build rejected URLs.\n\t\t*/\n\t\tget src() {\n\t\t\treturn super.src;\n\t\t}\n\t\tset src(value) {\n\t\t\tif (super.src === value) return;\n\t\t\tthis.source = parseMuxVideoURL(value) ?? (value ? { src: value } : null);\n\t\t}\n\t\t/**\n\t\t* Structured Mux source. Setting it derives `src` from the playback ID, custom\n\t\t* domain, and `playback` params (appended as `snake_case` query params). A\n\t\t* `playback.token` replaces all other params — signed URLs bake them into the\n\t\t* token.\n\t\t*/\n\t\tget source() {\n\t\t\treturn this.#source;\n\t\t}\n\t\tset source(value) {\n\t\t\tconst source = value ?? null;\n\t\t\tif (source === this.#source) return;\n\t\t\tthis.#source = source;\n\t\t\tsuper.src = source && (createMuxVideoURL(source) ?? source.src) || \"\";\n\t\t\tthis.dispatchEvent?.(new Event(\"sourcechange\"));\n\t\t}\n\t\t/**\n\t\t* Image URLs `source` describes rather than plays: `poster` from its `poster`\n\t\t* params, `storyboard` from its `storyboard` params.\n\t\t*\n\t\t* Read-only and re-derived on read, so read it again after `sourcechange`.\n\t\t* Nothing here is applied for you.\n\t\t*/\n\t\tget contentData() {\n\t\t\tconst poster = createMuxPosterURL(this.#source);\n\t\t\tconst storyboard = createMuxStoryboardURL(this.#source);\n\t\t\treturn {\n\t\t\t\t...poster && { poster },\n\t\t\t\t...storyboard && { storyboard }\n\t\t\t};\n\t\t}\n\t}\n\treturn MuxMediaImpl;\n}\n//#endregion\nexport { MuxMediaMixin, muxMediaDefaultProps };\n\n//# sourceMappingURL=adapter.js.map"],"mappings":"yDAEA,MAAM,EAAuB,CAC5B,IAAK,GACL,OAAQ,IACT,EAiBA,SAAS,EAAc,EAAW,CACjC,MAAM,UAAqB,CAAU,CAWpC,WAAW,4BAA6B,CACvC,MAAO,gGACR,CACA,GAAU,EAAqB,OAU/B,IAAI,KAAM,CACT,OAAO,MAAM,GACd,CACA,IAAI,IAAI,EAAO,CACV,MAAM,MAAQ,IAClB,KAAK,OAAS,EAAiB,CAAK,IAAM,EAAQ,CAAE,IAAK,CAAM,EAAI,MACpE,CAOA,IAAI,QAAS,CACZ,OAAO,KAAKA,EACb,CACA,IAAI,OAAO,EAAO,CACjB,IAAM,EAAS,GAAS,KACpB,IAAW,KAAKA,KACpB,KAAKA,GAAU,EACf,MAAM,IAAM,IAAW,EAAkB,CAAM,GAAK,EAAO,MAAQ,GACnE,KAAK,gBAAgB,IAAI,MAAM,cAAc,CAAC,EAC/C,CAQA,IAAI,aAAc,CACjB,IAAM,EAAS,EAAmB,KAAKA,EAAO,EACxC,EAAa,EAAuB,KAAKA,EAAO,EACtD,MAAO,CACN,GAAG,GAAU,CAAE,QAAO,EACtB,GAAG,GAAc,CAAE,YAAW,CAC/B,CACD,CACD,CACA,OAAO,CACR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter-XTen-YVQ.js","names":["#source"],"sources":["../../spf/dist/dev/playback/adapters/mux-video/adapter.js"],"sourcesContent":["import { createMuxPosterURL, createMuxStoryboardURL, createMuxVideoURL, parseMuxVideoURL } from \"@videojs/media/dom/mux/source\";\n//#region src/playback/adapters/mux-video/adapter.ts\nconst muxMediaDefaultProps = {\n\tsrc: \"\",\n\tsource: null\n};\n/**\n* Mux identity over any SPF Media: the structured `source`, the `src` derived\n* from it, and the image URLs it describes.\n*\n* Everything here is Mux identity, so it carries no engine and both flavors get\n* it unchanged — the video Media over the full HLS engine, the audio-only Media\n* over the subtractive one. A mixin rather than a shared base class because each\n* flavor extends a different SPF Media, so there is no common class to put this\n* on, only a common `src` accessor to write through.\n*\n* Unlike the hls.js-backed `MuxMedia`, there is no inherited `source` to\n* delegate to — the SPF Medias know only `src` — so this owns the structured\n* source and dispatches `sourcechange` itself.\n*\n* @fires sourcechange - Fired when `source` changes, either directly or by parsing a new `src`. Read `source` for the new value.\n*/\nfunction MuxMediaMixin(BaseClass) {\n\tclass MuxMediaImpl extends BaseClass {\n\t\t/**\n\t\t* Named on the error copy when this engine can't play a source: the\n\t\t* hls.js-backed Mux Media plays the MPEG-TS and DRM-protected sources that\n\t\t* SPF does not, and it backs both `<mux-video>` and `<mux-audio>`.\n\t\t*\n\t\t* Names the flavor rather than an import path, because one Media is reached\n\t\t* through three of them — `@videojs/html`, `@videojs/react`, and this package\n\t\t* — and each has a different counterpart. The flavor suffix is the one thing\n\t\t* common to the layers a consumer imports elements and components from.\n\t\t*/\n\t\tstatic get alternativeMediaSuggestion() {\n\t\t\treturn \"Try the hls.js-backed Mux media instead: import the `hls-js` flavor in place of the `spf` one.\";\n\t\t}\n\t\t#source = muxMediaDefaultProps.source;\n\t\t/**\n\t\t* Media source URL. Setting a Mux stream URL\n\t\t* (`https://stream.mux.com/<playback-id>.m3u8?...`) extracts the playback ID\n\t\t* and query params into `source`; other URLs are kept as a plain `source.src`.\n\t\t*\n\t\t* Only playback options carry over. Mux identity comes from the URL, and the\n\t\t* signed `poster`, `storyboard`, and `drm` tokens are scoped to a playback ID,\n\t\t* so carrying them onto a different source would build rejected URLs.\n\t\t*/\n\t\tget src() {\n\t\t\treturn super.src;\n\t\t}\n\t\tset src(value) {\n\t\t\tif (super.src === value) return;\n\t\t\tthis.source = parseMuxVideoURL(value) ?? (value ? { src: value } : null);\n\t\t}\n\t\t/**\n\t\t* Structured Mux source. Setting it derives `src` from the playback ID, custom\n\t\t* domain, and `playback` params (appended as `snake_case` query params). A\n\t\t* `playback.token` replaces all other params — signed URLs bake them into the\n\t\t* token.\n\t\t*/\n\t\tget source() {\n\t\t\treturn this.#source;\n\t\t}\n\t\tset source(value) {\n\t\t\tconst source = value ?? null;\n\t\t\tif (source === this.#source) return;\n\t\t\tthis.#source = source;\n\t\t\tsuper.src = source && (createMuxVideoURL(source) ?? source.src) || \"\";\n\t\t\tthis.dispatchEvent?.(new Event(\"sourcechange\"));\n\t\t}\n\t\t/**\n\t\t* Image URLs `source` describes rather than plays: `poster` from its `poster`\n\t\t* params, `storyboard` from its `storyboard` params.\n\t\t*\n\t\t* Read-only and re-derived on read, so read it again after `sourcechange`.\n\t\t* Nothing here is applied for you.\n\t\t*/\n\t\tget contentData() {\n\t\t\tconst poster = createMuxPosterURL(this.#source);\n\t\t\tconst storyboard = createMuxStoryboardURL(this.#source);\n\t\t\treturn {\n\t\t\t\t...poster && { poster },\n\t\t\t\t...storyboard && { storyboard }\n\t\t\t};\n\t\t}\n\t}\n\treturn MuxMediaImpl;\n}\n//#endregion\nexport { MuxMediaMixin, muxMediaDefaultProps };\n\n//# sourceMappingURL=adapter.js.map"],"mappings":";;;AAEA,MAAM,uBAAuB;CAC5B,KAAK;CACL,QAAQ;AACT;;;;;;;;;;;;;;;;;AAiBA,SAAS,cAAc,WAAW;CACjC,MAAM,qBAAqB,UAAU;;;;;;;;;;;EAWpC,WAAW,6BAA6B;GACvC,OAAO;EACR;EACA,UAAU,qBAAqB;;;;;;;;;;EAU/B,IAAI,MAAM;GACT,OAAO,MAAM;EACd;EACA,IAAI,IAAI,OAAO;GACd,IAAI,MAAM,QAAQ,OAAO;GACzB,KAAK,SAAS,iBAAiB,KAAK,MAAM,QAAQ,EAAE,KAAK,MAAM,IAAI;EACpE;;;;;;;EAOA,IAAI,SAAS;GACZ,OAAO,KAAKA;EACb;EACA,IAAI,OAAO,OAAO;GACjB,MAAM,SAAS,SAAS;GACxB,IAAI,WAAW,KAAKA,SAAS;GAC7B,KAAKA,UAAU;GACf,MAAM,MAAM,WAAW,kBAAkB,MAAM,KAAK,OAAO,QAAQ;GACnE,KAAK,gBAAgB,IAAI,MAAM,cAAc,CAAC;EAC/C;;;;;;;;EAQA,IAAI,cAAc;GACjB,MAAM,SAAS,mBAAmB,KAAKA,OAAO;GAC9C,MAAM,aAAa,uBAAuB,KAAKA,OAAO;GACtD,OAAO;IACN,GAAG,UAAU,EAAE,OAAO;IACtB,GAAG,cAAc,EAAE,WAAW;GAC/B;EACD;CACD;CACA,OAAO;AACR"}