@videojs/html 10.0.0-beta.23 → 10.0.0-beta.24

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 (1129) hide show
  1. package/README.md +6 -0
  2. package/cdn/audio-minimal-ui.dev.js +2 -1
  3. package/cdn/audio-minimal-ui.js +1 -1
  4. package/cdn/audio-minimal.dev.js +22 -18
  5. package/cdn/audio-minimal.dev.js.map +1 -1
  6. package/cdn/audio-minimal.js +1 -1
  7. package/cdn/audio-minimal.js.map +1 -1
  8. package/cdn/audio-ui.dev.js +2 -1
  9. package/cdn/audio-ui.js +1 -1
  10. package/cdn/audio.dev.js +22 -17
  11. package/cdn/audio.dev.js.map +1 -1
  12. package/cdn/audio.js +1 -1
  13. package/cdn/audio.js.map +1 -1
  14. package/cdn/background.dev.js +4 -4
  15. package/cdn/background.dev.js.map +1 -1
  16. package/cdn/background.js +1 -1
  17. package/cdn/background.js.map +1 -1
  18. package/cdn/base-CaXY3kMA.js +66 -0
  19. package/cdn/base-CaXY3kMA.js.map +1 -0
  20. package/cdn/base-JIGv_MlJ.js +2 -0
  21. package/cdn/base-JIGv_MlJ.js.map +1 -0
  22. package/cdn/compounds-CJ9NGNJr.js +8 -0
  23. package/cdn/compounds-CJ9NGNJr.js.map +1 -0
  24. package/cdn/{compounds-BHHGcL_P.js → compounds-DxdDY3jr.js} +2753 -500
  25. package/cdn/compounds-DxdDY3jr.js.map +1 -0
  26. package/cdn/create-player-B2W5yr5I.js +7 -0
  27. package/cdn/create-player-B2W5yr5I.js.map +1 -0
  28. package/cdn/{create-player-B-gVAMdr.js → create-player-_WED6HtK.js} +92 -12
  29. package/cdn/create-player-_WED6HtK.js.map +1 -0
  30. package/cdn/default-BtA2xVd7.js +33 -0
  31. package/cdn/default-BtA2xVd7.js.map +1 -0
  32. package/cdn/default-Ci15Ic2n.js +2 -0
  33. package/cdn/default-Ci15Ic2n.js.map +1 -0
  34. package/cdn/default-Ciudg7Lh.js +32 -0
  35. package/cdn/default-Ciudg7Lh.js.map +1 -0
  36. package/cdn/default-CmbctS5n.js +2 -0
  37. package/cdn/default-CmbctS5n.js.map +1 -0
  38. package/cdn/{hls-DEP0AzDp.js → hls-CoCXCB8b.js} +3 -3
  39. package/cdn/hls-CoCXCB8b.js.map +1 -0
  40. package/cdn/{hls-DR-Xxpxv.js → hls-DjqAxSvY.js} +84 -9
  41. package/cdn/hls-DjqAxSvY.js.map +1 -0
  42. package/cdn/{hotkey-element-oEdY8YLl.js → hotkey-element-89VAnCrc.js} +27 -38
  43. package/cdn/hotkey-element-89VAnCrc.js.map +1 -0
  44. package/cdn/hotkey-element-CmUxzW-C.js +2 -0
  45. package/cdn/hotkey-element-CmUxzW-C.js.map +1 -0
  46. package/cdn/live-button-element-BMneBAzX.js +208 -0
  47. package/cdn/live-button-element-BMneBAzX.js.map +1 -0
  48. package/cdn/live-button-element-CPEl1qK3.js +2 -0
  49. package/cdn/live-button-element-CPEl1qK3.js.map +1 -0
  50. package/cdn/live-video-minimal.dev.js +86 -8
  51. package/cdn/live-video-minimal.dev.js.map +1 -1
  52. package/cdn/live-video-minimal.js +1 -1
  53. package/cdn/live-video-minimal.js.map +1 -1
  54. package/cdn/live-video.dev.js +69 -5
  55. package/cdn/live-video.dev.js.map +1 -1
  56. package/cdn/live-video.js +1 -1
  57. package/cdn/live-video.js.map +1 -1
  58. package/cdn/media/dash-video.dev.js +3 -3
  59. package/cdn/media/dash-video.js +1 -1
  60. package/cdn/media/hls-video.dev.js +4 -4
  61. package/cdn/media/hls-video.js +1 -1
  62. package/cdn/media/mux-audio.dev.js +4 -4
  63. package/cdn/media/mux-audio.js +1 -1
  64. package/cdn/media/mux-video.dev.js +4 -4
  65. package/cdn/media/mux-video.js +1 -1
  66. package/cdn/media/native-hls-video.dev.js +4 -4
  67. package/cdn/media/native-hls-video.js +1 -1
  68. package/cdn/media/simple-hls-video.dev.js +3602 -2636
  69. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  70. package/cdn/media/simple-hls-video.js +7 -7
  71. package/cdn/media/simple-hls-video.js.map +1 -1
  72. package/cdn/{media-attach-mixin-DuquRhAk.js → media-attach-mixin-0gzahJxP.js} +2 -2
  73. package/cdn/{media-attach-mixin-DuquRhAk.js.map → media-attach-mixin-0gzahJxP.js.map} +1 -1
  74. package/cdn/{media-attach-mixin-pV8deGiO.js → media-attach-mixin-C1KQy-y8.js} +2 -2
  75. package/cdn/{media-attach-mixin-pV8deGiO.js.map → media-attach-mixin-C1KQy-y8.js.map} +1 -1
  76. package/cdn/minimal-BGKTRgLy.js +2 -0
  77. package/cdn/minimal-BGKTRgLy.js.map +1 -0
  78. package/cdn/minimal-BY8ZmNCh.js +33 -0
  79. package/cdn/minimal-BY8ZmNCh.js.map +1 -0
  80. package/cdn/minimal-D-o7FGL2.js +2 -0
  81. package/cdn/minimal-D-o7FGL2.js.map +1 -0
  82. package/cdn/minimal-b3s_qClU.js +32 -0
  83. package/cdn/minimal-b3s_qClU.js.map +1 -0
  84. package/cdn/minimal-ui-B0PWg1gR.js +2 -0
  85. package/cdn/minimal-ui-B0PWg1gR.js.map +1 -0
  86. package/cdn/minimal-ui-B6AtFmJO.js +2 -0
  87. package/cdn/minimal-ui-B6AtFmJO.js.map +1 -0
  88. package/cdn/minimal-ui-BjQUqQ_m.js +26 -0
  89. package/cdn/minimal-ui-BjQUqQ_m.js.map +1 -0
  90. package/cdn/minimal-ui-C2NRTvWx.js +38 -0
  91. package/cdn/minimal-ui-C2NRTvWx.js.map +1 -0
  92. package/cdn/{mux-DH3Kxyot.js → mux-CJn4lTbv.js} +3 -3
  93. package/cdn/{mux-DH3Kxyot.js.map → mux-CJn4lTbv.js.map} +1 -1
  94. package/cdn/{mux-D5M5HL6A.js → mux-wKbnuUQu.js} +3 -3
  95. package/cdn/{mux-D5M5HL6A.js.map → mux-wKbnuUQu.js.map} +1 -1
  96. package/cdn/{native-hls-DN_aWn2z.js → native-hls-1-isweaY.js} +2 -2
  97. package/cdn/{native-hls-DN_aWn2z.js.map → native-hls-1-isweaY.js.map} +1 -1
  98. package/cdn/{native-hls-ak4v9DN6.js → native-hls-D4f2-E9D.js} +2 -2
  99. package/cdn/{native-hls-ak4v9DN6.js.map → native-hls-D4f2-E9D.js.map} +1 -1
  100. package/cdn/playback-rate-button-element-Ck7CCs0t.js +2 -0
  101. package/cdn/playback-rate-button-element-Ck7CCs0t.js.map +1 -0
  102. package/cdn/playback-rate-button-element-DN78puhg.js +79 -0
  103. package/cdn/playback-rate-button-element-DN78puhg.js.map +1 -0
  104. package/cdn/player-9_6BPhTP.js +16 -0
  105. package/cdn/player-9_6BPhTP.js.map +1 -0
  106. package/cdn/player-C6DIXZpP.js +16 -0
  107. package/cdn/player-C6DIXZpP.js.map +1 -0
  108. package/cdn/{player-D468sScc.js → player-ClV0UtoS.js} +3 -3
  109. package/cdn/{player-D468sScc.js.map → player-ClV0UtoS.js.map} +1 -1
  110. package/cdn/player-D7lHFQo6.js +2 -0
  111. package/cdn/player-D7lHFQo6.js.map +1 -0
  112. package/cdn/player-DzqwkiTI.js +2 -0
  113. package/cdn/{player-CtegNw3g.js.map → player-DzqwkiTI.js.map} +1 -1
  114. package/cdn/player-_4EjFnET.js +2 -0
  115. package/cdn/player-_4EjFnET.js.map +1 -0
  116. package/cdn/poster-element-DmfmTRCV.js +2 -0
  117. package/cdn/poster-element-DmfmTRCV.js.map +1 -0
  118. package/cdn/{player-C_6YjMl7.js → poster-element-IdY3MYJj.js} +6 -17
  119. package/cdn/poster-element-IdY3MYJj.js.map +1 -0
  120. package/cdn/{predicate-BOcV_HDG.js → predicate-Dqd8wbW6.js} +5 -2
  121. package/cdn/predicate-Dqd8wbW6.js.map +1 -0
  122. package/cdn/{predicate-Cad5WV4q.js → predicate-Dxl3IuYh.js} +2 -2
  123. package/cdn/predicate-Dxl3IuYh.js.map +1 -0
  124. package/cdn/seek-button-element-BkC8xrVR.js +394 -0
  125. package/cdn/seek-button-element-BkC8xrVR.js.map +1 -0
  126. package/cdn/seek-button-element-C0uAXebE.js +2 -0
  127. package/cdn/seek-button-element-C0uAXebE.js.map +1 -0
  128. package/cdn/skin-element-D0TDGWJH.js +2 -0
  129. package/cdn/skin-element-D0TDGWJH.js.map +1 -0
  130. package/cdn/skin-element-mgqcAutZ.js +55 -0
  131. package/cdn/skin-element-mgqcAutZ.js.map +1 -0
  132. package/cdn/ui-BH0azXYN.js +2 -0
  133. package/cdn/ui-BH0azXYN.js.map +1 -0
  134. package/cdn/ui-B_E6hb1k.js +33 -0
  135. package/cdn/ui-B_E6hb1k.js.map +1 -0
  136. package/cdn/ui-ByhUcpaY.js +2 -0
  137. package/cdn/ui-ByhUcpaY.js.map +1 -0
  138. package/cdn/ui-DG0AlJbU.js +42 -0
  139. package/cdn/ui-DG0AlJbU.js.map +1 -0
  140. package/cdn/{video-host-BR_2vUZH.js → video-host-BU9t26fe.js} +3 -3
  141. package/cdn/{video-host-BR_2vUZH.js.map → video-host-BU9t26fe.js.map} +1 -1
  142. package/cdn/{video-host-Bkh2OyyP.js → video-host-CvYvXa8l.js} +2 -2
  143. package/cdn/{video-host-Bkh2OyyP.js.map → video-host-CvYvXa8l.js.map} +1 -1
  144. package/cdn/video-minimal-ui.dev.js +2 -1
  145. package/cdn/video-minimal-ui.js +1 -1
  146. package/cdn/video-minimal.dev.js +83 -18
  147. package/cdn/video-minimal.dev.js.map +1 -1
  148. package/cdn/video-minimal.js +1 -1
  149. package/cdn/video-minimal.js.map +1 -1
  150. package/cdn/video-ui.dev.js +2 -1
  151. package/cdn/video-ui.js +1 -1
  152. package/cdn/video.dev.js +56 -15
  153. package/cdn/video.dev.js.map +1 -1
  154. package/cdn/video.js +1 -1
  155. package/cdn/video.js.map +1 -1
  156. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  157. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  158. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  159. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  160. package/dist/default/_virtual/inline-css_src/define/background/skin.js +1 -1
  161. package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -1
  162. package/dist/default/_virtual/inline-css_src/define/global.js +6 -0
  163. package/dist/default/_virtual/inline-css_src/define/global.js.map +1 -0
  164. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  165. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  166. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  167. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  168. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  169. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  170. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  171. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  172. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  173. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  174. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  175. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  176. package/dist/default/define/audio/minimal-skin.css +225 -107
  177. package/dist/default/define/audio/minimal-skin.js +1 -1
  178. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  179. package/dist/default/define/audio/minimal-skin.tailwind.js +3 -2
  180. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  181. package/dist/default/define/audio/minimal-ui.js +8 -3
  182. package/dist/default/define/audio/minimal-ui.js.map +1 -1
  183. package/dist/default/define/audio/skin.css +251 -107
  184. package/dist/default/define/audio/skin.js +1 -1
  185. package/dist/default/define/audio/skin.js.map +1 -1
  186. package/dist/default/define/audio/skin.tailwind.js +2 -1
  187. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  188. package/dist/default/define/audio/ui.js +10 -1
  189. package/dist/default/define/audio/ui.js.map +1 -1
  190. package/dist/default/define/background/skin.css +4 -2
  191. package/dist/default/define/{base.css → global.css} +12 -8
  192. package/dist/default/define/live-audio/minimal-skin.css +225 -107
  193. package/dist/default/define/live-audio/minimal-skin.js +2 -2
  194. package/dist/default/define/live-audio/minimal-skin.js.map +1 -1
  195. package/dist/default/define/live-audio/minimal-skin.tailwind.js +2 -2
  196. package/dist/default/define/live-audio/minimal-skin.tailwind.js.map +1 -1
  197. package/dist/default/define/live-audio/minimal-ui.js +26 -0
  198. package/dist/default/define/live-audio/minimal-ui.js.map +1 -0
  199. package/dist/default/define/live-audio/player.js +18 -0
  200. package/dist/default/define/live-audio/player.js.map +1 -0
  201. package/dist/default/define/live-audio/skin.css +251 -107
  202. package/dist/default/define/live-audio/skin.js +2 -2
  203. package/dist/default/define/live-audio/skin.js.map +1 -1
  204. package/dist/default/define/live-audio/skin.tailwind.js +2 -2
  205. package/dist/default/define/live-audio/skin.tailwind.js.map +1 -1
  206. package/dist/default/define/live-audio/ui.js +30 -0
  207. package/dist/default/define/live-audio/ui.js.map +1 -0
  208. package/dist/default/define/live-video/minimal-skin.css +569 -146
  209. package/dist/default/define/live-video/minimal-skin.js +2 -2
  210. package/dist/default/define/live-video/minimal-skin.js.map +1 -1
  211. package/dist/default/define/live-video/minimal-skin.tailwind.js +3 -2
  212. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
  213. package/dist/default/define/live-video/minimal-ui.js +44 -0
  214. package/dist/default/define/live-video/minimal-ui.js.map +1 -0
  215. package/dist/default/define/live-video/player.js +18 -0
  216. package/dist/default/define/live-video/player.js.map +1 -0
  217. package/dist/default/define/live-video/skin.css +579 -144
  218. package/dist/default/define/live-video/skin.js +2 -2
  219. package/dist/default/define/live-video/skin.js.map +1 -1
  220. package/dist/default/define/live-video/skin.tailwind.js +3 -3
  221. package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
  222. package/dist/default/define/live-video/ui.js +44 -0
  223. package/dist/default/define/live-video/ui.js.map +1 -0
  224. package/dist/default/define/shared.css +4 -0
  225. package/dist/default/define/skin-element.js +2 -2
  226. package/dist/default/define/skin-element.js.map +1 -1
  227. package/dist/default/define/tailwind.css +66 -0
  228. package/dist/default/define/ui/compounds.js +43 -1
  229. package/dist/default/define/ui/compounds.js.map +1 -1
  230. package/dist/default/define/ui/menu.js +6 -0
  231. package/dist/default/define/ui/menu.js.map +1 -0
  232. package/dist/default/define/ui/playback-rate-menu.js +13 -0
  233. package/dist/default/define/ui/playback-rate-menu.js.map +1 -0
  234. package/dist/default/define/ui/seek-indicator-value.js +7 -0
  235. package/dist/default/define/ui/seek-indicator-value.js.map +1 -0
  236. package/dist/default/define/ui/seek-indicator.js +9 -0
  237. package/dist/default/define/ui/seek-indicator.js.map +1 -0
  238. package/dist/default/define/ui/status-announcer.js +7 -0
  239. package/dist/default/define/ui/status-announcer.js.map +1 -0
  240. package/dist/default/define/ui/status-indicator-value.js +7 -0
  241. package/dist/default/define/ui/status-indicator-value.js.map +1 -0
  242. package/dist/default/define/ui/status-indicator.js +9 -0
  243. package/dist/default/define/ui/status-indicator.js.map +1 -0
  244. package/dist/default/define/ui/volume-indicator-fill.js +7 -0
  245. package/dist/default/define/ui/volume-indicator-fill.js.map +1 -0
  246. package/dist/default/define/ui/volume-indicator-value.js +7 -0
  247. package/dist/default/define/ui/volume-indicator-value.js.map +1 -0
  248. package/dist/default/define/ui/volume-indicator.js +11 -0
  249. package/dist/default/define/ui/volume-indicator.js.map +1 -0
  250. package/dist/default/define/video/minimal-skin.css +569 -146
  251. package/dist/default/define/video/minimal-skin.js +1 -1
  252. package/dist/default/define/video/minimal-skin.js.map +1 -1
  253. package/dist/default/define/video/minimal-skin.tailwind.js +4 -2
  254. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  255. package/dist/default/define/video/minimal-ui.js +13 -3
  256. package/dist/default/define/video/minimal-ui.js.map +1 -1
  257. package/dist/default/define/video/skin.css +579 -144
  258. package/dist/default/define/video/skin.js +1 -1
  259. package/dist/default/define/video/skin.js.map +1 -1
  260. package/dist/default/define/video/skin.tailwind.js +3 -2
  261. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  262. package/dist/default/define/video/ui.js +11 -1
  263. package/dist/default/define/video/ui.js.map +1 -1
  264. package/dist/default/icons/default/index.js +19 -0
  265. package/dist/default/icons/dist/element/base.js +66 -0
  266. package/dist/default/icons/dist/element/base.js.map +1 -0
  267. package/dist/default/icons/dist/element/default/icons.js +25 -0
  268. package/dist/default/icons/dist/element/default/icons.js.map +1 -0
  269. package/dist/default/icons/dist/element/default/index.js +10 -0
  270. package/dist/default/icons/dist/element/default/index.js.map +1 -0
  271. package/dist/default/icons/dist/element/index.js +11 -0
  272. package/dist/default/icons/dist/element/index.js.map +1 -0
  273. package/dist/default/icons/dist/element/minimal/icons.js +25 -0
  274. package/dist/default/icons/dist/element/minimal/icons.js.map +1 -0
  275. package/dist/default/icons/dist/element/minimal/index.js +10 -0
  276. package/dist/default/icons/dist/element/minimal/index.js.map +1 -0
  277. package/dist/default/icons/dist/html/default/captions-off.js +6 -0
  278. package/dist/default/icons/dist/html/default/captions-off.js.map +1 -0
  279. package/dist/default/icons/dist/html/default/captions-on.js +6 -0
  280. package/dist/default/icons/dist/html/default/captions-on.js.map +1 -0
  281. package/dist/default/icons/dist/html/default/cast-enter.js +6 -0
  282. package/dist/default/icons/dist/html/default/cast-enter.js.map +1 -0
  283. package/dist/default/icons/dist/html/default/cast-exit.js +6 -0
  284. package/dist/default/icons/dist/html/default/cast-exit.js.map +1 -0
  285. package/dist/default/icons/dist/html/default/check.js +6 -0
  286. package/dist/default/icons/dist/html/default/check.js.map +1 -0
  287. package/dist/default/icons/dist/html/default/chevron.js +6 -0
  288. package/dist/default/icons/dist/html/default/chevron.js.map +1 -0
  289. package/dist/default/icons/dist/html/default/fullscreen-enter.js +6 -0
  290. package/dist/default/icons/dist/html/default/fullscreen-enter.js.map +1 -0
  291. package/dist/default/icons/dist/html/default/fullscreen-exit.js +6 -0
  292. package/dist/default/icons/dist/html/default/fullscreen-exit.js.map +1 -0
  293. package/dist/default/icons/dist/html/default/pause.js +6 -0
  294. package/dist/default/icons/dist/html/default/pause.js.map +1 -0
  295. package/dist/default/icons/dist/html/default/pip-enter.js +6 -0
  296. package/dist/default/icons/dist/html/default/pip-enter.js.map +1 -0
  297. package/dist/default/icons/dist/html/default/pip-exit.js +6 -0
  298. package/dist/default/icons/dist/html/default/pip-exit.js.map +1 -0
  299. package/dist/default/icons/dist/html/default/play.js +6 -0
  300. package/dist/default/icons/dist/html/default/play.js.map +1 -0
  301. package/dist/default/icons/dist/html/default/restart.js +6 -0
  302. package/dist/default/icons/dist/html/default/restart.js.map +1 -0
  303. package/dist/default/icons/dist/html/default/seek.js +6 -0
  304. package/dist/default/icons/dist/html/default/seek.js.map +1 -0
  305. package/dist/default/icons/dist/html/default/spinner.js +6 -0
  306. package/dist/default/icons/dist/html/default/spinner.js.map +1 -0
  307. package/dist/default/icons/dist/html/default/volume-high.js +6 -0
  308. package/dist/default/icons/dist/html/default/volume-high.js.map +1 -0
  309. package/dist/default/icons/dist/html/default/volume-low.js +6 -0
  310. package/dist/default/icons/dist/html/default/volume-low.js.map +1 -0
  311. package/dist/default/icons/dist/html/default/volume-off.js +6 -0
  312. package/dist/default/icons/dist/html/default/volume-off.js.map +1 -0
  313. package/dist/default/icons/dist/html/minimal/captions-off.js +6 -0
  314. package/dist/default/icons/dist/html/minimal/captions-off.js.map +1 -0
  315. package/dist/default/icons/dist/html/minimal/captions-on.js +6 -0
  316. package/dist/default/icons/dist/html/minimal/captions-on.js.map +1 -0
  317. package/dist/default/icons/dist/html/minimal/cast-enter.js +6 -0
  318. package/dist/default/icons/dist/html/minimal/cast-enter.js.map +1 -0
  319. package/dist/default/icons/dist/html/minimal/cast-exit.js +6 -0
  320. package/dist/default/icons/dist/html/minimal/cast-exit.js.map +1 -0
  321. package/dist/default/icons/dist/html/minimal/check.js +6 -0
  322. package/dist/default/icons/dist/html/minimal/check.js.map +1 -0
  323. package/dist/default/icons/dist/html/minimal/chevron.js +6 -0
  324. package/dist/default/icons/dist/html/minimal/chevron.js.map +1 -0
  325. package/dist/default/icons/dist/html/minimal/fullscreen-enter.js +6 -0
  326. package/dist/default/icons/dist/html/minimal/fullscreen-enter.js.map +1 -0
  327. package/dist/default/icons/dist/html/minimal/fullscreen-exit.js +6 -0
  328. package/dist/default/icons/dist/html/minimal/fullscreen-exit.js.map +1 -0
  329. package/dist/default/icons/dist/html/minimal/pause.js +6 -0
  330. package/dist/default/icons/dist/html/minimal/pause.js.map +1 -0
  331. package/dist/default/icons/dist/html/minimal/pip-enter.js +6 -0
  332. package/dist/default/icons/dist/html/minimal/pip-enter.js.map +1 -0
  333. package/dist/default/icons/dist/html/minimal/pip-exit.js +6 -0
  334. package/dist/default/icons/dist/html/minimal/pip-exit.js.map +1 -0
  335. package/dist/default/icons/dist/html/minimal/play.js +6 -0
  336. package/dist/default/icons/dist/html/minimal/play.js.map +1 -0
  337. package/dist/default/icons/dist/html/minimal/restart.js +6 -0
  338. package/dist/default/icons/dist/html/minimal/restart.js.map +1 -0
  339. package/dist/default/icons/dist/html/minimal/seek.js +6 -0
  340. package/dist/default/icons/dist/html/minimal/seek.js.map +1 -0
  341. package/dist/default/icons/dist/html/minimal/spinner.js +6 -0
  342. package/dist/default/icons/dist/html/minimal/spinner.js.map +1 -0
  343. package/dist/default/icons/dist/html/minimal/volume-high.js +6 -0
  344. package/dist/default/icons/dist/html/minimal/volume-high.js.map +1 -0
  345. package/dist/default/icons/dist/html/minimal/volume-low.js +6 -0
  346. package/dist/default/icons/dist/html/minimal/volume-low.js.map +1 -0
  347. package/dist/default/icons/dist/html/minimal/volume-off.js +6 -0
  348. package/dist/default/icons/dist/html/minimal/volume-off.js.map +1 -0
  349. package/dist/default/icons/dist/render/default/index.js +17 -15
  350. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  351. package/dist/default/icons/dist/render/minimal/index.js +17 -15
  352. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  353. package/dist/default/icons/element/default/index.js +1 -0
  354. package/dist/default/icons/element/index.js +1 -0
  355. package/dist/default/icons/element/minimal/index.js +1 -0
  356. package/dist/default/icons/index.js +19 -0
  357. package/dist/default/icons/minimal/index.js +19 -0
  358. package/dist/default/index.js +25 -1
  359. package/dist/default/player/context.js.map +1 -1
  360. package/dist/default/presets/live-audio.js +2 -1
  361. package/dist/default/presets/live-video.js +2 -1
  362. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +3 -2
  363. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  364. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  365. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  366. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -2
  367. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  368. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  369. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  370. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -1
  371. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  372. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js +40 -0
  373. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -0
  374. package/dist/default/skins/dist/default/default/tailwind/components/menu.js +12 -0
  375. package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -0
  376. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  377. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  378. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +1 -1
  379. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
  380. package/dist/default/skins/dist/default/default/tailwind/components/reset.js +7 -0
  381. package/dist/default/skins/dist/default/default/tailwind/components/reset.js.map +1 -0
  382. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -1
  383. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  384. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +1 -1
  385. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  386. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +13 -4
  387. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  388. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +4 -2
  389. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  390. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  391. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  392. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +3 -2
  393. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  394. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  395. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  396. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
  397. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  398. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js +41 -0
  399. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -0
  400. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +12 -0
  401. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -0
  402. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +1 -1
  403. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -1
  404. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +1 -1
  405. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
  406. package/dist/default/skins/dist/default/minimal/tailwind/components/reset.js +7 -0
  407. package/dist/default/skins/dist/default/minimal/tailwind/components/reset.js.map +1 -0
  408. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -1
  409. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  410. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  411. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  412. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -4
  413. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  414. package/dist/default/store/provider-mixin.js +8 -3
  415. package/dist/default/store/provider-mixin.js.map +1 -1
  416. package/dist/default/ui/controls/controls-element.js +13 -1
  417. package/dist/default/ui/controls/controls-element.js.map +1 -1
  418. package/dist/default/ui/gesture/gesture-element.js +2 -1
  419. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  420. package/dist/default/ui/hotkey/hotkey-element.js +1 -0
  421. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  422. package/dist/default/ui/input-indicators/input-indicator-element.js +110 -0
  423. package/dist/default/ui/input-indicators/input-indicator-element.js.map +1 -0
  424. package/dist/default/ui/input-indicators/live-indicator.js +32 -0
  425. package/dist/default/ui/input-indicators/live-indicator.js.map +1 -0
  426. package/dist/default/ui/live-button/live-button-element.js +97 -0
  427. package/dist/default/ui/live-button/live-button-element.js.map +1 -0
  428. package/dist/default/ui/menu/context.js +10 -0
  429. package/dist/default/ui/menu/context.js.map +1 -0
  430. package/dist/default/ui/menu/menu-back-element.js +57 -0
  431. package/dist/default/ui/menu/menu-back-element.js.map +1 -0
  432. package/dist/default/ui/menu/menu-checkbox-item-element.js +78 -0
  433. package/dist/default/ui/menu/menu-checkbox-item-element.js.map +1 -0
  434. package/dist/default/ui/menu/menu-element.js +285 -0
  435. package/dist/default/ui/menu/menu-element.js.map +1 -0
  436. package/dist/default/ui/menu/menu-group-element.js +35 -0
  437. package/dist/default/ui/menu/menu-group-element.js.map +1 -0
  438. package/dist/default/ui/menu/menu-item-element.js +96 -0
  439. package/dist/default/ui/menu/menu-item-element.js.map +1 -0
  440. package/dist/default/ui/menu/menu-item-indicator-element.js +34 -0
  441. package/dist/default/ui/menu/menu-item-indicator-element.js.map +1 -0
  442. package/dist/default/ui/menu/menu-label-element.js +20 -0
  443. package/dist/default/ui/menu/menu-label-element.js.map +1 -0
  444. package/dist/default/ui/menu/menu-radio-group-element.js +51 -0
  445. package/dist/default/ui/menu/menu-radio-group-element.js.map +1 -0
  446. package/dist/default/ui/menu/menu-radio-item-element.js +84 -0
  447. package/dist/default/ui/menu/menu-radio-item-element.js.map +1 -0
  448. package/dist/default/ui/menu/menu-separator-element.js +24 -0
  449. package/dist/default/ui/menu/menu-separator-element.js.map +1 -0
  450. package/dist/default/ui/menu/menu-view-element.js +16 -0
  451. package/dist/default/ui/menu/menu-view-element.js.map +1 -0
  452. package/dist/default/ui/playback-rate-menu/playback-rate-menu-element.js +47 -0
  453. package/dist/default/ui/playback-rate-menu/playback-rate-menu-element.js.map +1 -0
  454. package/dist/default/ui/playback-rate-menu/playback-rate-menu-trigger-element.js +85 -0
  455. package/dist/default/ui/playback-rate-menu/playback-rate-menu-trigger-element.js.map +1 -0
  456. package/dist/default/ui/playback-rate-menu/playback-rate-options-element.js +113 -0
  457. package/dist/default/ui/playback-rate-menu/playback-rate-options-element.js.map +1 -0
  458. package/dist/default/ui/popover/popover-element.js +30 -9
  459. package/dist/default/ui/popover/popover-element.js.map +1 -1
  460. package/dist/default/ui/position-controller.js +11 -6
  461. package/dist/default/ui/position-controller.js.map +1 -1
  462. package/dist/default/ui/seek-indicator/seek-indicator-element.js +44 -0
  463. package/dist/default/ui/seek-indicator/seek-indicator-element.js.map +1 -0
  464. package/dist/default/ui/seek-indicator/seek-indicator-value-element.js +11 -0
  465. package/dist/default/ui/seek-indicator/seek-indicator-value-element.js.map +1 -0
  466. package/dist/default/ui/status-announcer/status-announcer-element.js +70 -0
  467. package/dist/default/ui/status-announcer/status-announcer-element.js.map +1 -0
  468. package/dist/default/ui/status-indicator/status-indicator-element.js +53 -0
  469. package/dist/default/ui/status-indicator/status-indicator-element.js.map +1 -0
  470. package/dist/default/ui/status-indicator/status-indicator-value-element.js +11 -0
  471. package/dist/default/ui/status-indicator/status-indicator-value-element.js.map +1 -0
  472. package/dist/default/ui/tooltip/tooltip-element.js +27 -8
  473. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  474. package/dist/default/ui/volume-indicator/volume-indicator-element.js +46 -0
  475. package/dist/default/ui/volume-indicator/volume-indicator-element.js.map +1 -0
  476. package/dist/default/ui/volume-indicator/volume-indicator-fill-element.js +11 -0
  477. package/dist/default/ui/volume-indicator/volume-indicator-fill-element.js.map +1 -0
  478. package/dist/default/ui/volume-indicator/volume-indicator-value-element.js +11 -0
  479. package/dist/default/ui/volume-indicator/volume-indicator-value-element.js.map +1 -0
  480. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  481. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  482. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  483. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  484. package/dist/dev/_virtual/inline-css_src/define/background/skin.js +1 -1
  485. package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -1
  486. package/dist/dev/_virtual/inline-css_src/define/global.js +6 -0
  487. package/dist/dev/_virtual/inline-css_src/define/global.js.map +1 -0
  488. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  489. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  490. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  491. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  492. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  493. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  494. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  495. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  496. package/dist/dev/_virtual/inline-css_src/define/shared.js +1 -1
  497. package/dist/dev/_virtual/inline-css_src/define/shared.js.map +1 -1
  498. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  499. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  500. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  501. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  502. package/dist/dev/define/audio/minimal-skin.css +225 -107
  503. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  504. package/dist/dev/define/audio/minimal-skin.js +18 -14
  505. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  506. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
  507. package/dist/dev/define/audio/minimal-skin.tailwind.js +29 -23
  508. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  509. package/dist/dev/define/audio/minimal-ui.js +8 -3
  510. package/dist/dev/define/audio/minimal-ui.js.map +1 -1
  511. package/dist/dev/define/audio/skin.css +251 -107
  512. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  513. package/dist/dev/define/audio/skin.js +18 -13
  514. package/dist/dev/define/audio/skin.js.map +1 -1
  515. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
  516. package/dist/dev/define/audio/skin.tailwind.js +27 -21
  517. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  518. package/dist/dev/define/audio/ui.js +10 -1
  519. package/dist/dev/define/audio/ui.js.map +1 -1
  520. package/dist/dev/define/background/skin.css +4 -2
  521. package/dist/dev/define/{base.css → global.css} +12 -8
  522. package/dist/dev/define/live-audio/minimal-skin.css +225 -107
  523. package/dist/dev/define/live-audio/minimal-skin.d.ts.map +1 -1
  524. package/dist/dev/define/live-audio/minimal-skin.js +6 -4
  525. package/dist/dev/define/live-audio/minimal-skin.js.map +1 -1
  526. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
  527. package/dist/dev/define/live-audio/minimal-skin.tailwind.js +12 -10
  528. package/dist/dev/define/live-audio/minimal-skin.tailwind.js.map +1 -1
  529. package/dist/dev/define/live-audio/minimal-ui.d.ts +1 -0
  530. package/dist/dev/define/live-audio/minimal-ui.js +26 -0
  531. package/dist/dev/define/live-audio/minimal-ui.js.map +1 -0
  532. package/dist/dev/define/live-audio/player.d.ts +17 -0
  533. package/dist/dev/define/live-audio/player.d.ts.map +1 -0
  534. package/dist/dev/define/live-audio/player.js +18 -0
  535. package/dist/dev/define/live-audio/player.js.map +1 -0
  536. package/dist/dev/define/live-audio/skin.css +251 -107
  537. package/dist/dev/define/live-audio/skin.d.ts.map +1 -1
  538. package/dist/dev/define/live-audio/skin.js +6 -4
  539. package/dist/dev/define/live-audio/skin.js.map +1 -1
  540. package/dist/dev/define/live-audio/skin.tailwind.d.ts.map +1 -1
  541. package/dist/dev/define/live-audio/skin.tailwind.js +11 -9
  542. package/dist/dev/define/live-audio/skin.tailwind.js.map +1 -1
  543. package/dist/dev/define/live-audio/ui.d.ts +1 -0
  544. package/dist/dev/define/live-audio/ui.js +30 -0
  545. package/dist/dev/define/live-audio/ui.js.map +1 -0
  546. package/dist/dev/define/live-video/minimal-skin.css +569 -146
  547. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -1
  548. package/dist/dev/define/live-video/minimal-skin.js +53 -5
  549. package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
  550. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  551. package/dist/dev/define/live-video/minimal-skin.tailwind.js +60 -9
  552. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
  553. package/dist/dev/define/live-video/minimal-ui.d.ts +1 -0
  554. package/dist/dev/define/live-video/minimal-ui.js +44 -0
  555. package/dist/dev/define/live-video/minimal-ui.js.map +1 -0
  556. package/dist/dev/define/live-video/player.d.ts +17 -0
  557. package/dist/dev/define/live-video/player.d.ts.map +1 -0
  558. package/dist/dev/define/live-video/player.js +18 -0
  559. package/dist/dev/define/live-video/player.js.map +1 -0
  560. package/dist/dev/define/live-video/skin.css +579 -144
  561. package/dist/dev/define/live-video/skin.d.ts.map +1 -1
  562. package/dist/dev/define/live-video/skin.js +36 -2
  563. package/dist/dev/define/live-video/skin.js.map +1 -1
  564. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -1
  565. package/dist/dev/define/live-video/skin.tailwind.js +57 -8
  566. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
  567. package/dist/dev/define/live-video/ui.d.ts +1 -0
  568. package/dist/dev/define/live-video/ui.js +44 -0
  569. package/dist/dev/define/live-video/ui.js.map +1 -0
  570. package/dist/dev/define/shared.css +4 -0
  571. package/dist/dev/define/skin-element.js +2 -2
  572. package/dist/dev/define/skin-element.js.map +1 -1
  573. package/dist/dev/define/tailwind.css +66 -0
  574. package/dist/dev/define/ui/compounds.d.ts +3 -1
  575. package/dist/dev/define/ui/compounds.d.ts.map +1 -1
  576. package/dist/dev/define/ui/compounds.js +43 -1
  577. package/dist/dev/define/ui/compounds.js.map +1 -1
  578. package/dist/dev/define/ui/menu.d.ts +25 -0
  579. package/dist/dev/define/ui/menu.d.ts.map +1 -0
  580. package/dist/dev/define/ui/menu.js +6 -0
  581. package/dist/dev/define/ui/menu.js.map +1 -0
  582. package/dist/dev/define/ui/playback-rate-menu.d.ts +13 -0
  583. package/dist/dev/define/ui/playback-rate-menu.d.ts.map +1 -0
  584. package/dist/dev/define/ui/playback-rate-menu.js +13 -0
  585. package/dist/dev/define/ui/playback-rate-menu.js.map +1 -0
  586. package/dist/dev/define/ui/seek-indicator-value.d.ts +9 -0
  587. package/dist/dev/define/ui/seek-indicator-value.d.ts.map +1 -0
  588. package/dist/dev/define/ui/seek-indicator-value.js +7 -0
  589. package/dist/dev/define/ui/seek-indicator-value.js.map +1 -0
  590. package/dist/dev/define/ui/seek-indicator.d.ts +11 -0
  591. package/dist/dev/define/ui/seek-indicator.d.ts.map +1 -0
  592. package/dist/dev/define/ui/seek-indicator.js +9 -0
  593. package/dist/dev/define/ui/seek-indicator.js.map +1 -0
  594. package/dist/dev/define/ui/status-announcer.d.ts +9 -0
  595. package/dist/dev/define/ui/status-announcer.d.ts.map +1 -0
  596. package/dist/dev/define/ui/status-announcer.js +7 -0
  597. package/dist/dev/define/ui/status-announcer.js.map +1 -0
  598. package/dist/dev/define/ui/status-indicator-value.d.ts +9 -0
  599. package/dist/dev/define/ui/status-indicator-value.d.ts.map +1 -0
  600. package/dist/dev/define/ui/status-indicator-value.js +7 -0
  601. package/dist/dev/define/ui/status-indicator-value.js.map +1 -0
  602. package/dist/dev/define/ui/status-indicator.d.ts +11 -0
  603. package/dist/dev/define/ui/status-indicator.d.ts.map +1 -0
  604. package/dist/dev/define/ui/status-indicator.js +9 -0
  605. package/dist/dev/define/ui/status-indicator.js.map +1 -0
  606. package/dist/dev/define/ui/volume-indicator-fill.d.ts +9 -0
  607. package/dist/dev/define/ui/volume-indicator-fill.d.ts.map +1 -0
  608. package/dist/dev/define/ui/volume-indicator-fill.js +7 -0
  609. package/dist/dev/define/ui/volume-indicator-fill.js.map +1 -0
  610. package/dist/dev/define/ui/volume-indicator-value.d.ts +9 -0
  611. package/dist/dev/define/ui/volume-indicator-value.d.ts.map +1 -0
  612. package/dist/dev/define/ui/volume-indicator-value.js +7 -0
  613. package/dist/dev/define/ui/volume-indicator-value.js.map +1 -0
  614. package/dist/dev/define/ui/volume-indicator.d.ts +13 -0
  615. package/dist/dev/define/ui/volume-indicator.d.ts.map +1 -0
  616. package/dist/dev/define/ui/volume-indicator.js +11 -0
  617. package/dist/dev/define/ui/volume-indicator.js.map +1 -0
  618. package/dist/dev/define/video/minimal-skin.css +569 -146
  619. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  620. package/dist/dev/define/video/minimal-skin.js +79 -14
  621. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  622. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  623. package/dist/dev/define/video/minimal-skin.tailwind.js +93 -21
  624. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  625. package/dist/dev/define/video/minimal-ui.js +13 -3
  626. package/dist/dev/define/video/minimal-ui.js.map +1 -1
  627. package/dist/dev/define/video/skin.css +579 -144
  628. package/dist/dev/define/video/skin.d.ts.map +1 -1
  629. package/dist/dev/define/video/skin.js +52 -11
  630. package/dist/dev/define/video/skin.js.map +1 -1
  631. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  632. package/dist/dev/define/video/skin.tailwind.js +89 -19
  633. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  634. package/dist/dev/define/video/ui.js +11 -1
  635. package/dist/dev/define/video/ui.js.map +1 -1
  636. package/dist/dev/icons/default/index.d.ts +2 -0
  637. package/dist/dev/icons/default/index.js +19 -0
  638. package/dist/dev/icons/element/default/index.d.ts +1 -0
  639. package/dist/dev/icons/element/default/index.js +1 -0
  640. package/dist/dev/icons/element/index.d.ts +1 -0
  641. package/dist/dev/icons/element/index.js +1 -0
  642. package/dist/dev/icons/element/minimal/index.d.ts +1 -0
  643. package/dist/dev/icons/element/minimal/index.js +1 -0
  644. package/dist/dev/icons/index.d.ts +2 -0
  645. package/dist/dev/icons/index.js +19 -0
  646. package/dist/dev/icons/minimal/index.d.ts +2 -0
  647. package/dist/dev/icons/minimal/index.js +19 -0
  648. package/dist/dev/index.d.ts +26 -2
  649. package/dist/dev/index.js +25 -1
  650. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/index.d.ts +2 -0
  651. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/context-request-event.d.ts +61 -0
  652. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/context-request-event.d.ts.map +1 -0
  653. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/controllers/context-consumer.d.ts +1 -0
  654. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/controllers/context-provider.d.ts +22 -0
  655. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/controllers/context-provider.d.ts.map +1 -0
  656. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/create-context.d.ts +19 -0
  657. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/create-context.d.ts.map +1 -0
  658. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/decorators/consume.d.ts +1 -0
  659. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/decorators/provide.d.ts +1 -0
  660. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/value-notifier.d.ts +1 -0
  661. package/dist/dev/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts +116 -0
  662. package/dist/dev/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts.map +1 -0
  663. package/dist/dev/packages/icons/dist/element/base.js +66 -0
  664. package/dist/dev/packages/icons/dist/element/base.js.map +1 -0
  665. package/dist/dev/packages/icons/dist/element/default/icons.js +25 -0
  666. package/dist/dev/packages/icons/dist/element/default/icons.js.map +1 -0
  667. package/dist/dev/packages/icons/dist/element/default/index.d.ts +1 -0
  668. package/dist/dev/packages/icons/dist/element/default/index.js +10 -0
  669. package/dist/dev/packages/icons/dist/element/default/index.js.map +1 -0
  670. package/dist/dev/packages/icons/dist/element/index.d.ts +1 -0
  671. package/dist/dev/packages/icons/dist/element/index.js +11 -0
  672. package/dist/dev/packages/icons/dist/element/index.js.map +1 -0
  673. package/dist/dev/packages/icons/dist/element/minimal/icons.js +25 -0
  674. package/dist/dev/packages/icons/dist/element/minimal/icons.js.map +1 -0
  675. package/dist/dev/packages/icons/dist/element/minimal/index.d.ts +1 -0
  676. package/dist/dev/packages/icons/dist/element/minimal/index.js +10 -0
  677. package/dist/dev/packages/icons/dist/element/minimal/index.js.map +1 -0
  678. package/dist/dev/packages/icons/dist/html/default/captions-off.js +6 -0
  679. package/dist/dev/packages/icons/dist/html/default/captions-off.js.map +1 -0
  680. package/dist/dev/packages/icons/dist/html/default/captions-on.js +6 -0
  681. package/dist/dev/packages/icons/dist/html/default/captions-on.js.map +1 -0
  682. package/dist/dev/packages/icons/dist/html/default/cast-enter.js +6 -0
  683. package/dist/dev/packages/icons/dist/html/default/cast-enter.js.map +1 -0
  684. package/dist/dev/packages/icons/dist/html/default/cast-exit.js +6 -0
  685. package/dist/dev/packages/icons/dist/html/default/cast-exit.js.map +1 -0
  686. package/dist/dev/packages/icons/dist/html/default/check.js +6 -0
  687. package/dist/dev/packages/icons/dist/html/default/check.js.map +1 -0
  688. package/dist/dev/packages/icons/dist/html/default/chevron.js +6 -0
  689. package/dist/dev/packages/icons/dist/html/default/chevron.js.map +1 -0
  690. package/dist/dev/packages/icons/dist/html/default/fullscreen-enter.js +6 -0
  691. package/dist/dev/packages/icons/dist/html/default/fullscreen-enter.js.map +1 -0
  692. package/dist/dev/packages/icons/dist/html/default/fullscreen-exit.js +6 -0
  693. package/dist/dev/packages/icons/dist/html/default/fullscreen-exit.js.map +1 -0
  694. package/dist/dev/packages/icons/dist/html/default/index.d.ts +23 -0
  695. package/dist/dev/packages/icons/dist/html/default/index.d.ts.map +1 -0
  696. package/dist/dev/packages/icons/dist/html/default/pause.js +6 -0
  697. package/dist/dev/packages/icons/dist/html/default/pause.js.map +1 -0
  698. package/dist/dev/packages/icons/dist/html/default/pip-enter.js +6 -0
  699. package/dist/dev/packages/icons/dist/html/default/pip-enter.js.map +1 -0
  700. package/dist/dev/packages/icons/dist/html/default/pip-exit.js +6 -0
  701. package/dist/dev/packages/icons/dist/html/default/pip-exit.js.map +1 -0
  702. package/dist/dev/packages/icons/dist/html/default/play.js +6 -0
  703. package/dist/dev/packages/icons/dist/html/default/play.js.map +1 -0
  704. package/dist/dev/packages/icons/dist/html/default/restart.js +6 -0
  705. package/dist/dev/packages/icons/dist/html/default/restart.js.map +1 -0
  706. package/dist/dev/packages/icons/dist/html/default/seek.js +6 -0
  707. package/dist/dev/packages/icons/dist/html/default/seek.js.map +1 -0
  708. package/dist/dev/packages/icons/dist/html/default/spinner.js +6 -0
  709. package/dist/dev/packages/icons/dist/html/default/spinner.js.map +1 -0
  710. package/dist/dev/packages/icons/dist/html/default/volume-high.js +6 -0
  711. package/dist/dev/packages/icons/dist/html/default/volume-high.js.map +1 -0
  712. package/dist/dev/packages/icons/dist/html/default/volume-low.js +6 -0
  713. package/dist/dev/packages/icons/dist/html/default/volume-low.js.map +1 -0
  714. package/dist/dev/packages/icons/dist/html/default/volume-off.js +6 -0
  715. package/dist/dev/packages/icons/dist/html/default/volume-off.js.map +1 -0
  716. package/dist/dev/packages/icons/dist/html/minimal/captions-off.js +6 -0
  717. package/dist/dev/packages/icons/dist/html/minimal/captions-off.js.map +1 -0
  718. package/dist/dev/packages/icons/dist/html/minimal/captions-on.js +6 -0
  719. package/dist/dev/packages/icons/dist/html/minimal/captions-on.js.map +1 -0
  720. package/dist/dev/packages/icons/dist/html/minimal/cast-enter.js +6 -0
  721. package/dist/dev/packages/icons/dist/html/minimal/cast-enter.js.map +1 -0
  722. package/dist/dev/packages/icons/dist/html/minimal/cast-exit.js +6 -0
  723. package/dist/dev/packages/icons/dist/html/minimal/cast-exit.js.map +1 -0
  724. package/dist/dev/packages/icons/dist/html/minimal/check.js +6 -0
  725. package/dist/dev/packages/icons/dist/html/minimal/check.js.map +1 -0
  726. package/dist/dev/packages/icons/dist/html/minimal/chevron.js +6 -0
  727. package/dist/dev/packages/icons/dist/html/minimal/chevron.js.map +1 -0
  728. package/dist/dev/packages/icons/dist/html/minimal/fullscreen-enter.js +6 -0
  729. package/dist/dev/packages/icons/dist/html/minimal/fullscreen-enter.js.map +1 -0
  730. package/dist/dev/packages/icons/dist/html/minimal/fullscreen-exit.js +6 -0
  731. package/dist/dev/packages/icons/dist/html/minimal/fullscreen-exit.js.map +1 -0
  732. package/dist/dev/packages/icons/dist/html/minimal/index.d.ts +23 -0
  733. package/dist/dev/packages/icons/dist/html/minimal/index.d.ts.map +1 -0
  734. package/dist/dev/packages/icons/dist/html/minimal/pause.js +6 -0
  735. package/dist/dev/packages/icons/dist/html/minimal/pause.js.map +1 -0
  736. package/dist/dev/packages/icons/dist/html/minimal/pip-enter.js +6 -0
  737. package/dist/dev/packages/icons/dist/html/minimal/pip-enter.js.map +1 -0
  738. package/dist/dev/packages/icons/dist/html/minimal/pip-exit.js +6 -0
  739. package/dist/dev/packages/icons/dist/html/minimal/pip-exit.js.map +1 -0
  740. package/dist/dev/packages/icons/dist/html/minimal/play.js +6 -0
  741. package/dist/dev/packages/icons/dist/html/minimal/play.js.map +1 -0
  742. package/dist/dev/packages/icons/dist/html/minimal/restart.js +6 -0
  743. package/dist/dev/packages/icons/dist/html/minimal/restart.js.map +1 -0
  744. package/dist/dev/packages/icons/dist/html/minimal/seek.js +6 -0
  745. package/dist/dev/packages/icons/dist/html/minimal/seek.js.map +1 -0
  746. package/dist/dev/packages/icons/dist/html/minimal/spinner.js +6 -0
  747. package/dist/dev/packages/icons/dist/html/minimal/spinner.js.map +1 -0
  748. package/dist/dev/packages/icons/dist/html/minimal/volume-high.js +6 -0
  749. package/dist/dev/packages/icons/dist/html/minimal/volume-high.js.map +1 -0
  750. package/dist/dev/packages/icons/dist/html/minimal/volume-low.js +6 -0
  751. package/dist/dev/packages/icons/dist/html/minimal/volume-low.js.map +1 -0
  752. package/dist/dev/packages/icons/dist/html/minimal/volume-off.js +6 -0
  753. package/dist/dev/packages/icons/dist/html/minimal/volume-off.js.map +1 -0
  754. package/dist/dev/packages/icons/dist/render/default/index.js +32 -0
  755. package/dist/dev/packages/icons/dist/render/default/index.js.map +1 -0
  756. package/dist/dev/packages/icons/dist/render/minimal/index.js +32 -0
  757. package/dist/dev/packages/icons/dist/render/minimal/index.js.map +1 -0
  758. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/audio.tailwind.js +3 -2
  759. package/dist/dev/packages/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -0
  760. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/buffering.js +1 -1
  761. package/dist/dev/packages/skins/dist/default/default/tailwind/components/buffering.js.map +1 -0
  762. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  763. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js +13 -0
  764. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js.map +1 -0
  765. package/dist/dev/packages/skins/dist/default/default/tailwind/components/controls.js +7 -0
  766. package/dist/dev/packages/skins/dist/default/default/tailwind/components/controls.js.map +1 -0
  767. package/dist/dev/packages/skins/dist/default/default/tailwind/components/error.js.map +1 -0
  768. package/dist/dev/packages/skins/dist/default/default/tailwind/components/icon.js +9 -0
  769. package/dist/dev/packages/skins/dist/default/default/tailwind/components/icon.js.map +1 -0
  770. package/dist/dev/packages/skins/dist/default/default/tailwind/components/input-feedback.js +40 -0
  771. package/dist/dev/packages/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -0
  772. package/dist/dev/packages/skins/dist/default/default/tailwind/components/menu.js +12 -0
  773. package/dist/dev/packages/skins/dist/default/default/tailwind/components/menu.js.map +1 -0
  774. package/dist/dev/packages/skins/dist/default/default/tailwind/components/overlay.js.map +1 -0
  775. package/dist/dev/packages/skins/dist/default/default/tailwind/components/playback-rate.js +6 -0
  776. package/dist/dev/packages/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -0
  777. package/dist/dev/packages/skins/dist/default/default/tailwind/components/popup.js.map +1 -0
  778. package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  779. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/preview.js +1 -1
  780. package/dist/dev/packages/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  781. package/dist/dev/packages/skins/dist/default/default/tailwind/components/reset.js +7 -0
  782. package/dist/dev/packages/skins/dist/default/default/tailwind/components/reset.js.map +1 -0
  783. package/dist/dev/packages/skins/dist/default/default/tailwind/components/root.js +8 -0
  784. package/dist/dev/packages/skins/dist/default/default/tailwind/components/root.js.map +1 -0
  785. package/dist/dev/packages/skins/dist/default/default/tailwind/components/seek.js.map +1 -0
  786. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/slider.js +1 -1
  787. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -0
  788. package/dist/dev/packages/skins/dist/default/default/tailwind/components/surface.js.map +1 -0
  789. package/dist/dev/packages/skins/dist/default/default/tailwind/components/time.js.map +1 -0
  790. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/video.tailwind.js +13 -4
  791. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -0
  792. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/audio.tailwind.js +4 -2
  793. package/dist/dev/packages/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -0
  794. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/buffering.js +1 -1
  795. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -0
  796. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -0
  797. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button.js +13 -0
  798. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button.js.map +1 -0
  799. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/controls.js +7 -0
  800. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -0
  801. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
  802. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/icon.js +9 -0
  803. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -0
  804. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/input-feedback.js +41 -0
  805. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -0
  806. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/menu.js +12 -0
  807. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -0
  808. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -0
  809. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  810. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  811. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -0
  812. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  813. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/preview.js +1 -1
  814. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  815. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/reset.js +7 -0
  816. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/reset.js.map +1 -0
  817. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/root.js +8 -0
  818. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/root.js.map +1 -0
  819. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -0
  820. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/slider.js +1 -1
  821. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -0
  822. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/time.js.map +1 -0
  823. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/video.tailwind.js +6 -4
  824. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -0
  825. package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  826. package/dist/dev/player/context.d.ts +2 -1
  827. package/dist/dev/player/context.d.ts.map +1 -1
  828. package/dist/dev/player/context.js.map +1 -1
  829. package/dist/dev/presets/live-audio.d.ts +2 -1
  830. package/dist/dev/presets/live-audio.js +2 -1
  831. package/dist/dev/presets/live-video.d.ts +2 -1
  832. package/dist/dev/presets/live-video.js +2 -1
  833. package/dist/dev/store/provider-mixin.d.ts.map +1 -1
  834. package/dist/dev/store/provider-mixin.js +8 -3
  835. package/dist/dev/store/provider-mixin.js.map +1 -1
  836. package/dist/dev/ui/controls/controls-element.d.ts.map +1 -1
  837. package/dist/dev/ui/controls/controls-element.js +13 -1
  838. package/dist/dev/ui/controls/controls-element.js.map +1 -1
  839. package/dist/dev/ui/gesture/gesture-element.js +2 -1
  840. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  841. package/dist/dev/ui/hotkey/hotkey-element.js +1 -0
  842. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  843. package/dist/dev/ui/input-indicators/input-indicator-element.d.ts +37 -0
  844. package/dist/dev/ui/input-indicators/input-indicator-element.d.ts.map +1 -0
  845. package/dist/dev/ui/input-indicators/input-indicator-element.js +110 -0
  846. package/dist/dev/ui/input-indicators/input-indicator-element.js.map +1 -0
  847. package/dist/dev/ui/input-indicators/live-indicator.d.ts +18 -0
  848. package/dist/dev/ui/input-indicators/live-indicator.d.ts.map +1 -0
  849. package/dist/dev/ui/input-indicators/live-indicator.js +32 -0
  850. package/dist/dev/ui/input-indicators/live-indicator.js.map +1 -0
  851. package/dist/dev/ui/live-button/live-button-element.d.ts +38 -0
  852. package/dist/dev/ui/live-button/live-button-element.d.ts.map +1 -0
  853. package/dist/dev/ui/live-button/live-button-element.js +98 -0
  854. package/dist/dev/ui/live-button/live-button-element.js.map +1 -0
  855. package/dist/dev/ui/menu/context.d.ts +25 -0
  856. package/dist/dev/ui/menu/context.d.ts.map +1 -0
  857. package/dist/dev/ui/menu/context.js +10 -0
  858. package/dist/dev/ui/menu/context.js.map +1 -0
  859. package/dist/dev/ui/menu/menu-back-element.d.ts +20 -0
  860. package/dist/dev/ui/menu/menu-back-element.d.ts.map +1 -0
  861. package/dist/dev/ui/menu/menu-back-element.js +57 -0
  862. package/dist/dev/ui/menu/menu-back-element.js.map +1 -0
  863. package/dist/dev/ui/menu/menu-checkbox-item-element.d.ts +24 -0
  864. package/dist/dev/ui/menu/menu-checkbox-item-element.d.ts.map +1 -0
  865. package/dist/dev/ui/menu/menu-checkbox-item-element.js +78 -0
  866. package/dist/dev/ui/menu/menu-checkbox-item-element.js.map +1 -0
  867. package/dist/dev/ui/menu/menu-element.d.ts +52 -0
  868. package/dist/dev/ui/menu/menu-element.d.ts.map +1 -0
  869. package/dist/dev/ui/menu/menu-element.js +285 -0
  870. package/dist/dev/ui/menu/menu-element.js.map +1 -0
  871. package/dist/dev/ui/menu/menu-group-element.d.ts +18 -0
  872. package/dist/dev/ui/menu/menu-group-element.d.ts.map +1 -0
  873. package/dist/dev/ui/menu/menu-group-element.js +35 -0
  874. package/dist/dev/ui/menu/menu-group-element.js.map +1 -0
  875. package/dist/dev/ui/menu/menu-item-element.d.ts +25 -0
  876. package/dist/dev/ui/menu/menu-item-element.d.ts.map +1 -0
  877. package/dist/dev/ui/menu/menu-item-element.js +96 -0
  878. package/dist/dev/ui/menu/menu-item-element.js.map +1 -0
  879. package/dist/dev/ui/menu/menu-item-indicator-element.d.ts +22 -0
  880. package/dist/dev/ui/menu/menu-item-indicator-element.d.ts.map +1 -0
  881. package/dist/dev/ui/menu/menu-item-indicator-element.js +34 -0
  882. package/dist/dev/ui/menu/menu-item-indicator-element.js.map +1 -0
  883. package/dist/dev/ui/menu/menu-label-element.d.ts +15 -0
  884. package/dist/dev/ui/menu/menu-label-element.d.ts.map +1 -0
  885. package/dist/dev/ui/menu/menu-label-element.js +20 -0
  886. package/dist/dev/ui/menu/menu-label-element.js.map +1 -0
  887. package/dist/dev/ui/menu/menu-radio-group-element.d.ts +22 -0
  888. package/dist/dev/ui/menu/menu-radio-group-element.d.ts.map +1 -0
  889. package/dist/dev/ui/menu/menu-radio-group-element.js +51 -0
  890. package/dist/dev/ui/menu/menu-radio-group-element.js.map +1 -0
  891. package/dist/dev/ui/menu/menu-radio-item-element.d.ts +24 -0
  892. package/dist/dev/ui/menu/menu-radio-item-element.d.ts.map +1 -0
  893. package/dist/dev/ui/menu/menu-radio-item-element.js +84 -0
  894. package/dist/dev/ui/menu/menu-radio-item-element.js.map +1 -0
  895. package/dist/dev/ui/menu/menu-separator-element.d.ts +12 -0
  896. package/dist/dev/ui/menu/menu-separator-element.d.ts.map +1 -0
  897. package/dist/dev/ui/menu/menu-separator-element.js +24 -0
  898. package/dist/dev/ui/menu/menu-separator-element.js.map +1 -0
  899. package/dist/dev/ui/menu/menu-view-element.d.ts +11 -0
  900. package/dist/dev/ui/menu/menu-view-element.d.ts.map +1 -0
  901. package/dist/dev/ui/menu/menu-view-element.js +16 -0
  902. package/dist/dev/ui/menu/menu-view-element.js.map +1 -0
  903. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-element.d.ts +53 -0
  904. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-element.d.ts.map +1 -0
  905. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-element.js +48 -0
  906. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-element.js.map +1 -0
  907. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger-element.d.ts +35 -0
  908. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger-element.d.ts.map +1 -0
  909. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger-element.js +86 -0
  910. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger-element.js.map +1 -0
  911. package/dist/dev/ui/playback-rate-menu/playback-rate-options-element.d.ts +31 -0
  912. package/dist/dev/ui/playback-rate-menu/playback-rate-options-element.d.ts.map +1 -0
  913. package/dist/dev/ui/playback-rate-menu/playback-rate-options-element.js +114 -0
  914. package/dist/dev/ui/playback-rate-menu/playback-rate-options-element.js.map +1 -0
  915. package/dist/dev/ui/popover/popover-element.d.ts +6 -0
  916. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  917. package/dist/dev/ui/popover/popover-element.js +30 -9
  918. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  919. package/dist/dev/ui/position-controller.js +11 -6
  920. package/dist/dev/ui/position-controller.js.map +1 -1
  921. package/dist/dev/ui/seek-indicator/seek-indicator-element.d.ts +25 -0
  922. package/dist/dev/ui/seek-indicator/seek-indicator-element.d.ts.map +1 -0
  923. package/dist/dev/ui/seek-indicator/seek-indicator-element.js +44 -0
  924. package/dist/dev/ui/seek-indicator/seek-indicator-element.js.map +1 -0
  925. package/dist/dev/ui/seek-indicator/seek-indicator-value-element.d.ts +9 -0
  926. package/dist/dev/ui/seek-indicator/seek-indicator-value-element.d.ts.map +1 -0
  927. package/dist/dev/ui/seek-indicator/seek-indicator-value-element.js +11 -0
  928. package/dist/dev/ui/seek-indicator/seek-indicator-value-element.js.map +1 -0
  929. package/dist/dev/ui/status-announcer/status-announcer-element.d.ts +23 -0
  930. package/dist/dev/ui/status-announcer/status-announcer-element.d.ts.map +1 -0
  931. package/dist/dev/ui/status-announcer/status-announcer-element.js +70 -0
  932. package/dist/dev/ui/status-announcer/status-announcer-element.js.map +1 -0
  933. package/dist/dev/ui/status-indicator/status-indicator-element.d.ts +29 -0
  934. package/dist/dev/ui/status-indicator/status-indicator-element.d.ts.map +1 -0
  935. package/dist/dev/ui/status-indicator/status-indicator-element.js +53 -0
  936. package/dist/dev/ui/status-indicator/status-indicator-element.js.map +1 -0
  937. package/dist/dev/ui/status-indicator/status-indicator-value-element.d.ts +9 -0
  938. package/dist/dev/ui/status-indicator/status-indicator-value-element.d.ts.map +1 -0
  939. package/dist/dev/ui/status-indicator/status-indicator-value-element.js +11 -0
  940. package/dist/dev/ui/status-indicator/status-indicator-value-element.js.map +1 -0
  941. package/dist/dev/ui/tooltip/tooltip-element.d.ts +6 -0
  942. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  943. package/dist/dev/ui/tooltip/tooltip-element.js +27 -8
  944. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  945. package/dist/dev/ui/volume-indicator/volume-indicator-element.d.ts +25 -0
  946. package/dist/dev/ui/volume-indicator/volume-indicator-element.d.ts.map +1 -0
  947. package/dist/dev/ui/volume-indicator/volume-indicator-element.js +46 -0
  948. package/dist/dev/ui/volume-indicator/volume-indicator-element.js.map +1 -0
  949. package/dist/dev/ui/volume-indicator/volume-indicator-fill-element.d.ts +9 -0
  950. package/dist/dev/ui/volume-indicator/volume-indicator-fill-element.d.ts.map +1 -0
  951. package/dist/dev/ui/volume-indicator/volume-indicator-fill-element.js +11 -0
  952. package/dist/dev/ui/volume-indicator/volume-indicator-fill-element.js.map +1 -0
  953. package/dist/dev/ui/volume-indicator/volume-indicator-value-element.d.ts +9 -0
  954. package/dist/dev/ui/volume-indicator/volume-indicator-value-element.d.ts.map +1 -0
  955. package/dist/dev/ui/volume-indicator/volume-indicator-value-element.js +11 -0
  956. package/dist/dev/ui/volume-indicator/volume-indicator-value-element.js.map +1 -0
  957. package/docs/README.md +7 -0
  958. package/docs/concepts/accessibility.md +60 -0
  959. package/docs/concepts/browser-support.md +37 -0
  960. package/docs/concepts/features.md +129 -0
  961. package/docs/concepts/overview.md +118 -0
  962. package/docs/concepts/presets.md +207 -0
  963. package/docs/concepts/skins.md +2006 -0
  964. package/docs/concepts/ui-components.md +59 -0
  965. package/docs/concepts/v10-roadmap.md +75 -0
  966. package/docs/concepts/why-videojs.md +113 -0
  967. package/docs/how-to/build-with-ai.md +39 -0
  968. package/docs/how-to/build-your-own-component.md +217 -0
  969. package/docs/how-to/customize-skins.md +5711 -0
  970. package/docs/how-to/installation.md +172 -0
  971. package/docs/llms.txt +88 -0
  972. package/docs/reference/buffering-indicator.md +152 -0
  973. package/docs/reference/captions-button.md +216 -0
  974. package/docs/reference/container-mixin.md +69 -0
  975. package/docs/reference/controls.md +248 -0
  976. package/docs/reference/create-selector.md +59 -0
  977. package/docs/reference/feature-buffer.md +52 -0
  978. package/docs/reference/feature-controls.md +70 -0
  979. package/docs/reference/feature-error.md +60 -0
  980. package/docs/reference/feature-fullscreen.md +90 -0
  981. package/docs/reference/feature-live.md +60 -0
  982. package/docs/reference/feature-pip.md +90 -0
  983. package/docs/reference/feature-playback-rate.md +70 -0
  984. package/docs/reference/feature-playback.md +110 -0
  985. package/docs/reference/feature-remote-playback.md +70 -0
  986. package/docs/reference/feature-source.md +70 -0
  987. package/docs/reference/feature-stream-type.md +46 -0
  988. package/docs/reference/feature-text-tracks.md +100 -0
  989. package/docs/reference/feature-time.md +80 -0
  990. package/docs/reference/feature-volume.md +90 -0
  991. package/docs/reference/fullscreen-button.md +229 -0
  992. package/docs/reference/html-create-player.md +449 -0
  993. package/docs/reference/media-attach-mixin.md +83 -0
  994. package/docs/reference/mute-button.md +301 -0
  995. package/docs/reference/pip-button.md +229 -0
  996. package/docs/reference/play-button.md +251 -0
  997. package/docs/reference/playback-rate-button.md +170 -0
  998. package/docs/reference/player-container.md +126 -0
  999. package/docs/reference/player-context.md +50 -0
  1000. package/docs/reference/player-controller.md +276 -0
  1001. package/docs/reference/player-provider.md +114 -0
  1002. package/docs/reference/popover.md +460 -0
  1003. package/docs/reference/poster.md +158 -0
  1004. package/docs/reference/provider-mixin.md +71 -0
  1005. package/docs/reference/seek-button.md +223 -0
  1006. package/docs/reference/slider.md +862 -0
  1007. package/docs/reference/snapshot-controller.md +208 -0
  1008. package/docs/reference/store-controller.md +180 -0
  1009. package/docs/reference/thumbnail.md +364 -0
  1010. package/docs/reference/time-slider.md +794 -0
  1011. package/docs/reference/time.md +488 -0
  1012. package/docs/reference/tooltip.md +547 -0
  1013. package/docs/reference/volume-slider.md +783 -0
  1014. package/package.json +23 -10
  1015. package/cdn/compounds-BHHGcL_P.js.map +0 -1
  1016. package/cdn/compounds-DJyzXLOB.js +0 -8
  1017. package/cdn/compounds-DJyzXLOB.js.map +0 -1
  1018. package/cdn/create-player-B-gVAMdr.js.map +0 -1
  1019. package/cdn/create-player-C5ui1T2i.js +0 -7
  1020. package/cdn/create-player-C5ui1T2i.js.map +0 -1
  1021. package/cdn/default-Djy9PEXm.js +0 -2
  1022. package/cdn/default-Djy9PEXm.js.map +0 -1
  1023. package/cdn/default-YzaLyoYg.js +0 -30
  1024. package/cdn/default-YzaLyoYg.js.map +0 -1
  1025. package/cdn/hls-DEP0AzDp.js.map +0 -1
  1026. package/cdn/hls-DR-Xxpxv.js.map +0 -1
  1027. package/cdn/hotkey-element-BvI78DTc.js +0 -2
  1028. package/cdn/hotkey-element-BvI78DTc.js.map +0 -1
  1029. package/cdn/hotkey-element-oEdY8YLl.js.map +0 -1
  1030. package/cdn/minimal-CciG7Fsu.js +0 -30
  1031. package/cdn/minimal-CciG7Fsu.js.map +0 -1
  1032. package/cdn/minimal-DSLrhnDm.js +0 -2
  1033. package/cdn/minimal-DSLrhnDm.js.map +0 -1
  1034. package/cdn/minimal-ui-Bx-_SggT.js +0 -29
  1035. package/cdn/minimal-ui-Bx-_SggT.js.map +0 -1
  1036. package/cdn/minimal-ui-CFO4ssL8.js +0 -2
  1037. package/cdn/minimal-ui-CFO4ssL8.js.map +0 -1
  1038. package/cdn/minimal-ui-D6Pvbx1R.js +0 -2
  1039. package/cdn/minimal-ui-D6Pvbx1R.js.map +0 -1
  1040. package/cdn/minimal-ui-Dl-8ZL53.js +0 -22
  1041. package/cdn/minimal-ui-Dl-8ZL53.js.map +0 -1
  1042. package/cdn/player-BKKCelEs.js +0 -2
  1043. package/cdn/player-BKKCelEs.js.map +0 -1
  1044. package/cdn/player-C_6YjMl7.js.map +0 -1
  1045. package/cdn/player-CtegNw3g.js +0 -2
  1046. package/cdn/predicate-BOcV_HDG.js.map +0 -1
  1047. package/cdn/predicate-Cad5WV4q.js.map +0 -1
  1048. package/cdn/skin-element-BcbrkgGs.js +0 -55
  1049. package/cdn/skin-element-BcbrkgGs.js.map +0 -1
  1050. package/cdn/skin-element-DesLkJKs.js +0 -2
  1051. package/cdn/skin-element-DesLkJKs.js.map +0 -1
  1052. package/cdn/ui-CzxKbsyb.js +0 -32
  1053. package/cdn/ui-CzxKbsyb.js.map +0 -1
  1054. package/cdn/ui-D6DV-Emw.js +0 -2
  1055. package/cdn/ui-D6DV-Emw.js.map +0 -1
  1056. package/cdn/ui-Dw-n2AMs.js +0 -2
  1057. package/cdn/ui-Dw-n2AMs.js.map +0 -1
  1058. package/cdn/ui-S_eLj4ur.js +0 -25
  1059. package/cdn/ui-S_eLj4ur.js.map +0 -1
  1060. package/dist/default/_virtual/inline-css_src/define/base.js +0 -6
  1061. package/dist/default/_virtual/inline-css_src/define/base.js.map +0 -1
  1062. package/dist/dev/_virtual/inline-css_src/define/base.js +0 -6
  1063. package/dist/dev/_virtual/inline-css_src/define/base.js.map +0 -1
  1064. package/dist/dev/icons/dist/render/default/index.js +0 -30
  1065. package/dist/dev/icons/dist/render/default/index.js.map +0 -1
  1066. package/dist/dev/icons/dist/render/minimal/index.js +0 -30
  1067. package/dist/dev/icons/dist/render/minimal/index.js.map +0 -1
  1068. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +0 -1
  1069. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +0 -1
  1070. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +0 -1
  1071. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +0 -12
  1072. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +0 -1
  1073. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +0 -7
  1074. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +0 -1
  1075. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +0 -1
  1076. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +0 -9
  1077. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +0 -1
  1078. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +0 -1
  1079. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +0 -6
  1080. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +0 -1
  1081. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +0 -1
  1082. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +0 -1
  1083. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +0 -1
  1084. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +0 -7
  1085. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +0 -1
  1086. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +0 -1
  1087. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +0 -1
  1088. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +0 -1
  1089. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +0 -1
  1090. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +0 -1
  1091. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +0 -1
  1092. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +0 -1
  1093. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +0 -1
  1094. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +0 -12
  1095. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +0 -1
  1096. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +0 -7
  1097. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +0 -1
  1098. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
  1099. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +0 -9
  1100. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +0 -1
  1101. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +0 -1
  1102. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +0 -6
  1103. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +0 -1
  1104. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +0 -1
  1105. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +0 -1
  1106. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +0 -1
  1107. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +0 -7
  1108. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +0 -1
  1109. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +0 -1
  1110. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +0 -1
  1111. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +0 -1
  1112. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +0 -1
  1113. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +0 -1
  1114. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/button-group.js +0 -0
  1115. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/error.js +0 -0
  1116. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/overlay.js +0 -0
  1117. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/popup.js +0 -0
  1118. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/poster.js +0 -0
  1119. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/seek.js +0 -0
  1120. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/surface.js +0 -0
  1121. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/time.js +0 -0
  1122. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/button-group.js +0 -0
  1123. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/error.js +0 -0
  1124. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/overlay.js +0 -0
  1125. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/popup.js +0 -0
  1126. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/poster.js +0 -0
  1127. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/seek.js +0 -0
  1128. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/time.js +0 -0
  1129. /package/dist/dev/{skins → packages/skins}/dist/default/shared/tailwind/icon-state.js +0 -0
@@ -7,19 +7,21 @@ import "./components/buffering.js";
7
7
  import "./components/button.js";
8
8
  import { buttonGroup } from "./components/button-group.js";
9
9
  import "./components/icon.js";
10
+ import "./components/menu.js";
11
+ import "./components/playback-rate.js";
10
12
  import "./components/seek.js";
11
13
  import { slider as slider$1 } from "./components/slider.js";
12
14
  import { time as time$1 } from "./components/time.js";
13
15
  import { preview as preview$1 } from "./components/preview.js";
16
+ import "./components/input-feedback.js";
14
17
  import "./components/overlay.js";
15
- import "./components/playback-rate.js";
16
18
  import "./components/poster.js";
17
19
  import { cn } from "@videojs/utils/style";
18
20
  //#region ../skins/dist/default/minimal/tailwind/video.tailwind.js
19
21
  const root = (isShadowDOM) => cn(root$1, "bg-black overflow-clip", "after:absolute after:pointer-events-none after:rounded-[inherit] after:z-10", "after:inset-0 after:ring-1 after:ring-inset after:ring-black/15 dark:after:ring-white/15", {
20
22
  "[&_::slotted(video)]:block [&_::slotted(video)]:w-full [&_::slotted(video)]:h-full [&_::slotted(video)]:rounded-(--media-video-border-radius) [&_::slotted(video)]:[object-fit:var(--media-object-fit,cover)] [&_::slotted(video)]:[object-position:var(--media-object-position,center)]": isShadowDOM,
21
23
  "[&_video]:block [&_video]:w-full [&_video]:h-full [&_video]:rounded-[inherit] [&_video]:[object-fit:var(--media-object-fit,contain)] [&_video]:[object-position:var(--media-object-position,center)]": !isShadowDOM
22
- }, "[--media-video-border-radius:var(--media-border-radius,0.75rem)]", "[--media-controls-background-color:transparent]", "[--media-controls-transition-duration:100ms]", "[--media-controls-transition-timing-function:ease-out]", "[--media-error-dialog-transition-duration:150ms]", "[--media-error-dialog-transition-delay:100ms]", "[--media-error-dialog-transition-timing-function:ease-out]", "[--media-popup-transition-duration:100ms]", "[--media-popup-transition-timing-function:ease-out]", "[--media-tooltip-background-color:oklch(1_0_0/0.1)]", "[--media-tooltip-border-color:transparent]", "[--media-tooltip-backdrop-filter:blur(16px)_saturate(1.5)]", "[--media-tooltip-text-color:currentColor]", "[--media-tooltip-side-offset:0.5rem]", "[--media-popover-side-offset:1.5rem]", "motion-reduce:[--media-error-dialog-transition-duration:50ms]", "motion-reduce:[--media-error-dialog-transition-delay:0ms]", "motion-reduce:[--media-popup-transition-duration:0ms]", "[@media(prefers-reduced-transparency:reduce)]:[--media-controls-background-color:oklch(0_0_0)]", "contrast-more:[--media-controls-background-color:oklch(0_0_0)]", "[@media(prefers-reduced-transparency:reduce)]:[--media-tooltip-background-color:oklch(0_0_0)]", "contrast-more:[--media-tooltip-background-color:oklch(0_0_0)]", "@2xl/media-root:[&>*]:[--media-popover-side-offset:0rem]", "[@media(pointer:fine)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:300ms]", "[@media(pointer:coarse)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:150ms]", "motion-reduce:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:50ms]", "[--media-caption-track-y:-0.5rem]", "[--media-caption-track-delay:25ms]", "[--media-caption-track-duration:var(--media-controls-transition-duration)]", "has-[[data-controls][data-visible]]:[--media-caption-track-y:-5rem]", "@2xl/media-root:has-[[data-controls][data-visible]]:[&>*]:[--media-caption-track-y:-3rem]", !isShadowDOM ? [
24
+ }, "[--media-video-border-radius:var(--media-border-radius,0.75rem)]", "[--media-controls-background-color:transparent]", "[--media-controls-transition-duration:100ms]", "[--media-controls-transition-timing-function:ease-out]", "[--media-error-dialog-transition-duration:150ms]", "[--media-error-dialog-transition-delay:100ms]", "[--media-error-dialog-transition-timing-function:ease-out]", "[--media-popup-transition-duration:100ms]", "[--media-popup-transition-timing-function:ease-out]", "[--media-tooltip-background-color:oklch(1_0_0/0.1)]", "[--media-tooltip-border-color:transparent]", "[--media-tooltip-backdrop-filter:blur(16px)_saturate(1.5)]", "[--media-tooltip-text-color:currentColor]", "[--media-tooltip-side-offset:0.5rem]", "[--media-tooltip-boundary-offset:0.5rem]", "[--media-popover-side-offset:1.5rem]", "[--media-popover-boundary-offset:0.5rem]", "motion-reduce:[--media-error-dialog-transition-duration:50ms]", "motion-reduce:[--media-error-dialog-transition-delay:0ms]", "motion-reduce:[--media-popup-transition-duration:0ms]", "[@media(prefers-reduced-transparency:reduce)]:[--media-controls-background-color:oklch(0_0_0)]", "contrast-more:[--media-controls-background-color:oklch(0_0_0)]", "[@media(prefers-reduced-transparency:reduce)]:[--media-tooltip-background-color:oklch(0_0_0)]", "contrast-more:[--media-tooltip-background-color:oklch(0_0_0)]", "@2xl/media-root:*:[--media-popover-side-offset:0.5rem]", "pointer-fine:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:300ms]", "pointer-coarse:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:150ms]", "motion-reduce:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:50ms]", "[--media-caption-track-y:-0.5rem]", "[--media-caption-track-delay:25ms]", "[--media-caption-track-duration:var(--media-controls-transition-duration)]", "has-[[data-controls][data-visible]]:[--media-caption-track-y:-5rem]", "@2xl/media-root:has-[[data-controls][data-visible]]:*:[--media-caption-track-y:-3rem]", !isShadowDOM ? [
23
25
  "[&_video::-webkit-media-text-track-container]:transition-[translate]",
24
26
  "[&_video::-webkit-media-text-track-container]:duration-(--media-caption-track-duration)",
25
27
  "[&_video::-webkit-media-text-track-container]:ease-out",
@@ -32,7 +34,7 @@ const root = (isShadowDOM) => cn(root$1, "bg-black overflow-clip", "after:absolu
32
34
  "[&:fullscreen_video]:object-contain": !isShadowDOM,
33
35
  "[&:fullscreen_::slotted(video)]:object-contain": isShadowDOM
34
36
  });
35
- const controls = cn(controls$1, "absolute bottom-1 inset-x-1", "p-1 gap-x-2 flex-wrap rounded-xl", "text-white z-10", "peer-data-open/error:hidden", "ease-(--media-controls-transition-timing-function)", "duration-(--media-controls-transition-duration)", "[@media(pointer:fine)]:will-change-[translate,filter,opacity]", "[@media(pointer:fine)]:transition-[translate,filter,opacity]", "[@media(pointer:coarse)]:will-change-[translate,opacity]", "[@media(pointer:coarse)]:transition-[translate,opacity]", "not-data-visible:opacity-0 not-data-visible:pointer-events-none", "motion-safe:not-data-visible:translate-y-full", "[@media(pointer:fine)]:motion-safe:not-data-visible:blur-sm", "@2xl/media-root:flex-nowrap @2xl/media-root:bottom-2 @2xl/media-root:inset-x-2");
37
+ const controls = cn(controls$1, "absolute bottom-1 inset-x-1", "p-1 gap-x-2 flex-wrap rounded-xl", "mx-auto max-w-4xl", "text-white z-10", "peer-data-open/error:hidden", "ease-(--media-controls-transition-timing-function)", "duration-(--media-controls-transition-duration)", "pointer-fine:will-change-[translate,filter,opacity]", "pointer-fine:transition-[translate,filter,opacity]", "pointer-coarse:will-change-[translate,opacity]", "pointer-coarse:transition-[translate,opacity]", "not-data-visible:opacity-0 not-data-visible:pointer-events-none", "motion-safe:not-data-visible:translate-y-full", "pointer-fine:motion-safe:not-data-visible:blur-sm", "@2xl/media-root:flex-nowrap @2xl/media-root:bottom-2 @2xl/media-root:inset-x-2", "@2xl/media-root:*:[--media-popover-side-offset:0rem]");
36
38
  const buttonGroupStart = cn(buttonGroup, "flex-1 @2xl/media-root:flex-none");
37
39
  const buttonGroupEnd = cn(buttonGroup, "flex-1 justify-end @2xl/media-root:flex-none");
38
40
  const time = {
@@ -47,7 +49,7 @@ const error = {
47
49
  };
48
50
  const preview = {
49
51
  ...preview$1,
50
- root: cn("[--media-preview-max-width:11rem] [--media-preview-padding:-0.5rem] [--media-preview-inset:calc(100cqi-100%)]", "absolute [left:clamp(calc(var(--media-preview-max-width)/2+var(--media-preview-padding)),var(--media-slider-pointer),calc(100%-var(--media-preview-max-width)/2-var(--media-preview-padding)+var(--media-preview-inset)))] bottom-full -translate-x-1/2", "@2xl/media-root:bottom-[calc(100%+0.25rem)] @2xl/media-root:[left:var(--media-slider-pointer)]", "opacity-0 scale-80 blur-sm origin-bottom", "transition-[scale,opacity,filter] duration-150", "group-data-pointing/slider:opacity-100 group-data-pointing/slider:scale-100 group-data-pointing/slider:blur-none", "[&:has([role=img][data-hidden])]:opacity-0 [&:has([role=img][data-hidden])]:scale-80 [&:has([role=img][data-hidden])]:blur-sm", "[&:has([role=img][data-loading])]:max-h-24", preview$1.root),
52
+ root: cn("[--media-preview-max-width:11rem] [--media-preview-padding:-0.5rem] [--media-preview-inset:calc(100cqi-100%)]", "absolute [left:clamp(calc(var(--media-preview-max-width)/2+var(--media-preview-padding)),var(--media-slider-pointer),calc(100%-var(--media-preview-max-width)/2-var(--media-preview-padding)+var(--media-preview-inset)))] bottom-full -translate-x-1/2", "@2xl/media-root:bottom-[calc(100%+0.25rem)] @2xl/media-root:[left:var(--media-slider-pointer)]", "opacity-0 scale-80 blur-sm origin-bottom", "transition-[scale,opacity,filter] duration-150", "group-data-pointing/slider:opacity-100 group-data-pointing/slider:scale-100 group-data-pointing/slider:blur-none", "has-[[role=img][data-hidden]]:opacity-0 has-[[role=img][data-hidden]]:scale-80 has-[[role=img][data-hidden]]:blur-sm", "has-[[role=img][data-loading]]:max-h-24", preview$1.root),
51
53
  thumbnailWrapper: cn(preview$1.thumbnailWrapper, "after:absolute after:inset-0 after:rounded-[inherit]", "after:ring-1 after:ring-black/5 after:shadow-sm after:shadow-black/20"),
52
54
  thumbnail: cn(preview$1.thumbnail, "max-w-(--media-preview-max-width)")
53
55
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.tailwind.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/video.tailwind.js"],"sourcesContent":["import { controls as controls$1 } from \"./components/controls.js\";\nimport { error as error$1 } from \"./components/error.js\";\nimport { popup as popup$1 } from \"./components/popup.js\";\nimport { root as root$1 } from \"./components/root.js\";\nimport { iconState } from \"../../shared/tailwind/icon-state.js\";\nimport { bufferingIndicator } from \"./components/buffering.js\";\nimport { button } from \"./components/button.js\";\nimport { buttonGroup } from \"./components/button-group.js\";\nimport { icon, iconContainer, iconFlipped, iconHidden } from \"./components/icon.js\";\nimport { menu } from \"./components/menu.js\";\nimport { playbackRate } from \"./components/playback-rate.js\";\nimport { seek } from \"./components/seek.js\";\nimport { slider as slider$1 } from \"./components/slider.js\";\nimport { time as time$1 } from \"./components/time.js\";\nimport { preview as preview$1 } from \"./components/preview.js\";\nimport { inputFeedback } from \"./components/input-feedback.js\";\nimport { overlay } from \"./components/overlay.js\";\nimport { poster } from \"./components/poster.js\";\nimport { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/video.tailwind.ts\nconst root = (isShadowDOM) => cn(root$1, \"bg-black overflow-clip\", \"after:absolute after:pointer-events-none after:rounded-[inherit] after:z-10\", \"after:inset-0 after:ring-1 after:ring-inset after:ring-black/15 dark:after:ring-white/15\", {\n\t\"[&_::slotted(video)]:block [&_::slotted(video)]:w-full [&_::slotted(video)]:h-full [&_::slotted(video)]:rounded-(--media-video-border-radius) [&_::slotted(video)]:[object-fit:var(--media-object-fit,cover)] [&_::slotted(video)]:[object-position:var(--media-object-position,center)]\": isShadowDOM,\n\t\"[&_video]:block [&_video]:w-full [&_video]:h-full [&_video]:rounded-[inherit] [&_video]:[object-fit:var(--media-object-fit,contain)] [&_video]:[object-position:var(--media-object-position,center)]\": !isShadowDOM\n}, \"[--media-video-border-radius:var(--media-border-radius,0.75rem)]\", \"[--media-controls-background-color:transparent]\", \"[--media-controls-transition-duration:100ms]\", \"[--media-controls-transition-timing-function:ease-out]\", \"[--media-error-dialog-transition-duration:150ms]\", \"[--media-error-dialog-transition-delay:100ms]\", \"[--media-error-dialog-transition-timing-function:ease-out]\", \"[--media-popup-transition-duration:100ms]\", \"[--media-popup-transition-timing-function:ease-out]\", \"[--media-tooltip-background-color:oklch(1_0_0/0.1)]\", \"[--media-tooltip-border-color:transparent]\", \"[--media-tooltip-backdrop-filter:blur(16px)_saturate(1.5)]\", \"[--media-tooltip-text-color:currentColor]\", \"[--media-tooltip-side-offset:0.5rem]\", \"[--media-tooltip-boundary-offset:0.5rem]\", \"[--media-popover-side-offset:1.5rem]\", \"[--media-popover-boundary-offset:0.5rem]\", \"motion-reduce:[--media-error-dialog-transition-duration:50ms]\", \"motion-reduce:[--media-error-dialog-transition-delay:0ms]\", \"motion-reduce:[--media-popup-transition-duration:0ms]\", \"[@media(prefers-reduced-transparency:reduce)]:[--media-controls-background-color:oklch(0_0_0)]\", \"contrast-more:[--media-controls-background-color:oklch(0_0_0)]\", \"[@media(prefers-reduced-transparency:reduce)]:[--media-tooltip-background-color:oklch(0_0_0)]\", \"contrast-more:[--media-tooltip-background-color:oklch(0_0_0)]\", \"@2xl/media-root:*:[--media-popover-side-offset:0.5rem]\", \"pointer-fine:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:300ms]\", \"pointer-coarse:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:150ms]\", \"motion-reduce:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:50ms]\", \"[--media-caption-track-y:-0.5rem]\", \"[--media-caption-track-delay:25ms]\", \"[--media-caption-track-duration:var(--media-controls-transition-duration)]\", \"has-[[data-controls][data-visible]]:[--media-caption-track-y:-5rem]\", \"@2xl/media-root:has-[[data-controls][data-visible]]:*:[--media-caption-track-y:-3rem]\", !isShadowDOM ? [\n\t\"[&_video::-webkit-media-text-track-container]:transition-[translate]\",\n\t\"[&_video::-webkit-media-text-track-container]:duration-(--media-caption-track-duration)\",\n\t\"[&_video::-webkit-media-text-track-container]:ease-out\",\n\t\"[&_video::-webkit-media-text-track-container]:delay-(--media-caption-track-delay)\",\n\t\"[&_video::-webkit-media-text-track-container]:translate-y-(--media-caption-track-y)\",\n\t\"[&_video::-webkit-media-text-track-container]:scale-98\",\n\t\"[&_video::-webkit-media-text-track-container]:z-1\",\n\t\"[&_video::-webkit-media-text-track-container]:font-[inherit]\"\n] : [], \"[&:fullscreen]:[--media-border-radius:0]\", {\n\t\"[&:fullscreen_video]:object-contain\": !isShadowDOM,\n\t\"[&:fullscreen_::slotted(video)]:object-contain\": isShadowDOM\n});\nconst controls = cn(controls$1, \"absolute bottom-1 inset-x-1\", \"p-1 gap-x-2 flex-wrap rounded-xl\", \"mx-auto max-w-4xl\", \"text-white z-10\", \"peer-data-open/error:hidden\", \"ease-(--media-controls-transition-timing-function)\", \"duration-(--media-controls-transition-duration)\", \"pointer-fine:will-change-[translate,filter,opacity]\", \"pointer-fine:transition-[translate,filter,opacity]\", \"pointer-coarse:will-change-[translate,opacity]\", \"pointer-coarse:transition-[translate,opacity]\", \"not-data-visible:opacity-0 not-data-visible:pointer-events-none\", \"motion-safe:not-data-visible:translate-y-full\", \"pointer-fine:motion-safe:not-data-visible:blur-sm\", \"@2xl/media-root:flex-nowrap @2xl/media-root:bottom-2 @2xl/media-root:inset-x-2\", \"@2xl/media-root:*:[--media-popover-side-offset:0rem]\");\nconst buttonGroupStart = cn(buttonGroup, \"flex-1 @2xl/media-root:flex-none\");\nconst buttonGroupEnd = cn(buttonGroup, \"flex-1 justify-end @2xl/media-root:flex-none\");\nconst time = {\n\t...time$1,\n\tcontrols: cn(time$1.controls, \"grow-0 shrink-0 basis-full order-[-1] px-2.5\", \"@2xl/media-root:grow @2xl/media-root:shrink @2xl/media-root:basis-0 @2xl/media-root:order-[unset]\")\n};\nconst error = {\n\t...error$1,\n\troot: cn(error$1.root, \"pointer-events-none outline-none\"),\n\tdialog: cn(error$1.dialog, \"pointer-events-auto\"),\n\ttitle: cn(error$1.title, \"text-lg\")\n};\nconst preview = {\n\t...preview$1,\n\troot: cn(\"[--media-preview-max-width:11rem] [--media-preview-padding:-0.5rem] [--media-preview-inset:calc(100cqi-100%)]\", \"absolute [left:clamp(calc(var(--media-preview-max-width)/2+var(--media-preview-padding)),var(--media-slider-pointer),calc(100%-var(--media-preview-max-width)/2-var(--media-preview-padding)+var(--media-preview-inset)))] bottom-full -translate-x-1/2\", \"@2xl/media-root:bottom-[calc(100%+0.25rem)] @2xl/media-root:[left:var(--media-slider-pointer)]\", \"opacity-0 scale-80 blur-sm origin-bottom\", \"transition-[scale,opacity,filter] duration-150\", \"group-data-pointing/slider:opacity-100 group-data-pointing/slider:scale-100 group-data-pointing/slider:blur-none\", \"has-[[role=img][data-hidden]]:opacity-0 has-[[role=img][data-hidden]]:scale-80 has-[[role=img][data-hidden]]:blur-sm\", \"has-[[role=img][data-loading]]:max-h-24\", preview$1.root),\n\tthumbnailWrapper: cn(preview$1.thumbnailWrapper, \"after:absolute after:inset-0 after:rounded-[inherit]\", \"after:ring-1 after:ring-black/5 after:shadow-sm after:shadow-black/20\"),\n\tthumbnail: cn(preview$1.thumbnail, \"max-w-(--media-preview-max-width)\")\n};\nconst slider = {\n\t...slider$1,\n\ttrack: cn(slider$1.track, \"ring-1 ring-black/5\")\n};\nconst popup = {\n\t...popup$1,\n\tvolume: cn(popup$1.popover, \"py-3 px-0 bg-transparent rounded-xl\", \"[@media(prefers-reduced-transparency:reduce)]:bg-(--media-controls-background-color)\", \"contrast-more:bg-(--media-controls-background-color)\")\n};\n//#endregion\nexport { bufferingIndicator, button, buttonGroup, buttonGroupEnd, buttonGroupStart, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, inputFeedback, menu, overlay, playbackRate, popup, poster, preview, root, seek, slider, time };\n\n//# sourceMappingURL=video.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,QAAQ,gBAAgB,GAAG,QAAQ,0BAA0B,+EAA+E,4FAA4F;CAC7O,4RAA4R;CAC5R,wMAAwM,CAAC;CACzM,EAAE,oEAAoE,mDAAmD,gDAAgD,0DAA0D,oDAAoD,iDAAiD,8DAA8D,6CAA6C,uDAAuD,uDAAuD,8CAA8C,8DAA8D,6CAA6C,wCAAwC,4CAA4C,wCAAwC,4CAA4C,iEAAiE,6DAA6D,yDAAyD,kGAAkG,kEAAkE,iGAAiG,iEAAiE,0DAA0D,uGAAuG,yGAAyG,uGAAuG,qCAAqC,sCAAsC,8EAA8E,uEAAuE,yFAAyF,CAAC,cAAc;CACxhE;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAG,EAAE,EAAE,4CAA4C;CACnD,uCAAuC,CAAC;CACxC,kDAAkD;CAClD,CAAC;AACF,MAAM,WAAW,GAAG,YAAY,+BAA+B,oCAAoC,qBAAqB,mBAAmB,+BAA+B,sDAAsD,mDAAmD,uDAAuD,sDAAsD,kDAAkD,iDAAiD,mEAAmE,iDAAiD,qDAAqD,kFAAkF,uDAAuD;AACrxB,MAAM,mBAAmB,GAAG,aAAa,mCAAmC;AAC5E,MAAM,iBAAiB,GAAG,aAAa,+CAA+C;AACtF,MAAM,OAAO;CACZ,GAAG;CACH,UAAU,GAAG,OAAO,UAAU,gDAAgD,oGAAoG;CAClL;AACD,MAAM,QAAQ;CACb,GAAG;CACH,MAAM,GAAG,QAAQ,MAAM,mCAAmC;CAC1D,QAAQ,GAAG,QAAQ,QAAQ,sBAAsB;CACjD,OAAO,GAAG,QAAQ,OAAO,UAAU;CACnC;AACD,MAAM,UAAU;CACf,GAAG;CACH,MAAM,GAAG,iHAAiH,2PAA2P,kGAAkG,4CAA4C,kDAAkD,oHAAoH,wHAAwH,2CAA2C,UAAU,KAAK;CAC31B,kBAAkB,GAAG,UAAU,kBAAkB,wDAAwD,wEAAwE;CACjL,WAAW,GAAG,UAAU,WAAW,oCAAoC;CACvE;AACD,MAAM,SAAS;CACd,GAAG;CACH,OAAO,GAAG,SAAS,OAAO,sBAAsB;CAChD;AACD,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,QAAQ,SAAS,uCAAuC,wFAAwF,uDAAuD;CAClN"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../../skins/dist/default/shared/tailwind/icon-state.js"],"sourcesContent":["//#region src/shared/tailwind/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t},\n\tpip: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-pip:block group-data-pip:opacity-100\"\n\t},\n\tcast: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-[cast-state=connected]:block group-not-data-[cast-state=connected]:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-[cast-state=connected]:block group-data-[cast-state=connected]:opacity-100\"\n\t}\n};\n//#endregion\nexport { iconState };\n\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD,KAAK;EACJ,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD,MAAM;EACL,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD"}
@@ -1,4 +1,4 @@
1
- import { AnyPlayerStore, Media, MediaContainer, PlayerStore } from "@videojs/core/dom";
1
+ import { AnyPlayerStore, Media, MediaContainer, PlayerStore, PopupGroup } from "@videojs/core/dom";
2
2
  import { ReactiveControllerHost } from "@videojs/element";
3
3
  import { Context, ContextConsumer } from "@videojs/element/context";
4
4
 
@@ -23,6 +23,7 @@ declare const CONTAINER_CONTEXT_KEY: unique symbol;
23
23
  interface ContainerContextValue {
24
24
  container: MediaContainer | null;
25
25
  setContainer: (container: MediaContainer | null) => void;
26
+ popupGroup?: PopupGroup;
26
27
  }
27
28
  type ContainerContext = Context<typeof CONTAINER_CONTEXT_KEY, ContainerContextValue>;
28
29
  type ContainerContextConsumer = ContextConsumer<ContainerContext, ReactiveControllerHost & HTMLElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","names":[],"sources":["../../../src/player/context.ts"],"mappings":";;;;;cAQa,kBAAA;AAAA,KAED,kBAAA,eAAiC,WAAA,GAAc,cAAA,IAAkB,KAAA;AAAA,KAEjE,aAAA,eAA4B,WAAA,GAAc,cAAA,IAAkB,OAAA,QAC/D,kBAAA,EACP,kBAAA,CAAmB,KAAA;;;;;AAJrB;cAYa,aAAA,EAAa,OAAA,QAAA,kBAAA,EAAA,cAAA;AAAA,cAMb,iBAAA;AAAA,UAEI,iBAAA;EACf,KAAA,EAAO,KAAA;EACP,QAAA,GAAW,KAAA,EAAO,KAAA;AAAA;AAAA,KAGR,YAAA,GAAe,OAAA,QAAe,iBAAA,EAAmB,iBAAA;AAAA,cAEhD,YAAA,EAAY,OAAA,QAAA,iBAAA,EAAA,iBAAA;AAAA,cAMZ,qBAAA;AAAA,UAEI,qBAAA;EACf,SAAA,EAAW,cAAA;EACX,YAAA,GAAe,SAAA,EAAW,cAAA;AAAA;AAAA,KAGhB,gBAAA,GAAmB,OAAA,QAAe,qBAAA,EAAuB,qBAAA;AAAA,KAEzD,wBAAA,GAA2B,eAAA,CAAgB,gBAAA,EAAkB,sBAAA,GAAyB,WAAA;AAAA,cAErF,gBAAA,EAAgB,OAAA,QAAA,qBAAA,EAAA,qBAAA"}
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../src/player/context.ts"],"mappings":";;;;;cAQa,kBAAA;AAAA,KAED,kBAAA,eAAiC,WAAA,GAAc,cAAA,IAAkB,KAAA;AAAA,KAEjE,aAAA,eAA4B,WAAA,GAAc,cAAA,IAAkB,OAAA,QAC/D,kBAAA,EACP,kBAAA,CAAmB,KAAA;;;;;AAJrB;cAYa,aAAA,EAAa,OAAA,QAAA,kBAAA,EAAA,cAAA;AAAA,cAMb,iBAAA;AAAA,UAEI,iBAAA;EACf,KAAA,EAAO,KAAA;EACP,QAAA,GAAW,KAAA,EAAO,KAAA;AAAA;AAAA,KAGR,YAAA,GAAe,OAAA,QAAe,iBAAA,EAAmB,iBAAA;AAAA,cAEhD,YAAA,EAAY,OAAA,QAAA,iBAAA,EAAA,iBAAA;AAAA,cAMZ,qBAAA;AAAA,UAEI,qBAAA;EACf,SAAA,EAAW,cAAA;EACX,YAAA,GAAe,SAAA,EAAW,cAAA;EAC1B,UAAA,GAAa,UAAA;AAAA;AAAA,KAGH,gBAAA,GAAmB,OAAA,QAAe,qBAAA,EAAuB,qBAAA;AAAA,KAEzD,wBAAA,GAA2B,eAAA,CAAgB,gBAAA,EAAkB,sBAAA,GAAyB,WAAA;AAAA,cAErF,gBAAA,EAAgB,OAAA,QAAA,qBAAA,EAAA,qBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../src/player/context.ts"],"sourcesContent":["import type { AnyPlayerStore, Media, MediaContainer, PlayerStore } from '@videojs/core/dom';\nimport type { ReactiveControllerHost } from '@videojs/element';\nimport { type Context, type ContextConsumer, createContext } from '@videojs/element/context';\n\n// ----------------------------------------\n// Player Context\n// ----------------------------------------\n\nexport const PLAYER_CONTEXT_KEY = Symbol.for('@videojs/player');\n\nexport type PlayerContextValue<Store extends PlayerStore = AnyPlayerStore> = Store;\n\nexport type PlayerContext<Store extends PlayerStore = AnyPlayerStore> = Context<\n typeof PLAYER_CONTEXT_KEY,\n PlayerContextValue<Store>\n>;\n\n/**\n * The default player context instance for consuming the player store in controllers.\n *\n * @public\n */\nexport const playerContext = createContext<PlayerContextValue, typeof PLAYER_CONTEXT_KEY>(PLAYER_CONTEXT_KEY);\n\n// ----------------------------------------\n// Media Context\n// ----------------------------------------\n\nexport const MEDIA_CONTEXT_KEY = Symbol.for('@videojs/media');\n\nexport interface MediaContextValue {\n media: Media | null;\n setMedia: (media: Media | null) => void;\n}\n\nexport type MediaContext = Context<typeof MEDIA_CONTEXT_KEY, MediaContextValue>;\n\nexport const mediaContext = createContext<MediaContextValue, typeof MEDIA_CONTEXT_KEY>(MEDIA_CONTEXT_KEY);\n\n// ----------------------------------------\n// Container Context\n// ----------------------------------------\n\nexport const CONTAINER_CONTEXT_KEY = Symbol.for('@videojs/container');\n\nexport interface ContainerContextValue {\n container: MediaContainer | null;\n setContainer: (container: MediaContainer | null) => void;\n}\n\nexport type ContainerContext = Context<typeof CONTAINER_CONTEXT_KEY, ContainerContextValue>;\n\nexport type ContainerContextConsumer = ContextConsumer<ContainerContext, ReactiveControllerHost & HTMLElement>;\n\nexport const containerContext = createContext<ContainerContextValue, typeof CONTAINER_CONTEXT_KEY>(\n CONTAINER_CONTEXT_KEY\n);\n"],"mappings":";;AAQA,MAAa,qBAAqB,OAAO,IAAI,kBAAkB;;;;;;AAc/D,MAAa,gBAAgB,cAA6D,mBAAmB;AAM7G,MAAa,oBAAoB,OAAO,IAAI,iBAAiB;AAS7D,MAAa,eAAe,cAA2D,kBAAkB;AAMzG,MAAa,wBAAwB,OAAO,IAAI,qBAAqB;AAWrE,MAAa,mBAAmB,cAC9B,sBACD"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../src/player/context.ts"],"sourcesContent":["import type { AnyPlayerStore, Media, MediaContainer, PlayerStore, PopupGroup } from '@videojs/core/dom';\nimport type { ReactiveControllerHost } from '@videojs/element';\nimport { type Context, type ContextConsumer, createContext } from '@videojs/element/context';\n\n// ----------------------------------------\n// Player Context\n// ----------------------------------------\n\nexport const PLAYER_CONTEXT_KEY = Symbol.for('@videojs/player');\n\nexport type PlayerContextValue<Store extends PlayerStore = AnyPlayerStore> = Store;\n\nexport type PlayerContext<Store extends PlayerStore = AnyPlayerStore> = Context<\n typeof PLAYER_CONTEXT_KEY,\n PlayerContextValue<Store>\n>;\n\n/**\n * The default player context instance for consuming the player store in controllers.\n *\n * @public\n */\nexport const playerContext = createContext<PlayerContextValue, typeof PLAYER_CONTEXT_KEY>(PLAYER_CONTEXT_KEY);\n\n// ----------------------------------------\n// Media Context\n// ----------------------------------------\n\nexport const MEDIA_CONTEXT_KEY = Symbol.for('@videojs/media');\n\nexport interface MediaContextValue {\n media: Media | null;\n setMedia: (media: Media | null) => void;\n}\n\nexport type MediaContext = Context<typeof MEDIA_CONTEXT_KEY, MediaContextValue>;\n\nexport const mediaContext = createContext<MediaContextValue, typeof MEDIA_CONTEXT_KEY>(MEDIA_CONTEXT_KEY);\n\n// ----------------------------------------\n// Container Context\n// ----------------------------------------\n\nexport const CONTAINER_CONTEXT_KEY = Symbol.for('@videojs/container');\n\nexport interface ContainerContextValue {\n container: MediaContainer | null;\n setContainer: (container: MediaContainer | null) => void;\n popupGroup?: PopupGroup;\n}\n\nexport type ContainerContext = Context<typeof CONTAINER_CONTEXT_KEY, ContainerContextValue>;\n\nexport type ContainerContextConsumer = ContextConsumer<ContainerContext, ReactiveControllerHost & HTMLElement>;\n\nexport const containerContext = createContext<ContainerContextValue, typeof CONTAINER_CONTEXT_KEY>(\n CONTAINER_CONTEXT_KEY\n);\n"],"mappings":";;AAQA,MAAa,qBAAqB,OAAO,IAAI,kBAAkB;;;;;;AAc/D,MAAa,gBAAgB,cAA6D,mBAAmB;AAM7G,MAAa,oBAAoB,OAAO,IAAI,iBAAiB;AAS7D,MAAa,eAAe,cAA2D,kBAAkB;AAMzG,MAAa,wBAAwB,OAAO,IAAI,qBAAqB;AAYrE,MAAa,mBAAmB,cAC9B,sBACD"}
@@ -1,6 +1,7 @@
1
1
  import { MinimalLiveAudioSkinElement } from "../define/live-audio/minimal-skin.js";
2
2
  import { MinimalLiveAudioSkinTailwindElement } from "../define/live-audio/minimal-skin.tailwind.js";
3
+ import { LiveAudioPlayerElement } from "../define/live-audio/player.js";
3
4
  import { LiveAudioSkinElement } from "../define/live-audio/skin.js";
4
5
  import { LiveAudioSkinTailwindElement } from "../define/live-audio/skin.tailwind.js";
5
6
  import { liveAudioFeatures } from "@videojs/core/dom";
6
- export { LiveAudioSkinElement, LiveAudioSkinTailwindElement, MinimalLiveAudioSkinElement, MinimalLiveAudioSkinTailwindElement, liveAudioFeatures };
7
+ export { LiveAudioPlayerElement, LiveAudioSkinElement, LiveAudioSkinTailwindElement, MinimalLiveAudioSkinElement, MinimalLiveAudioSkinTailwindElement, liveAudioFeatures };
@@ -1,6 +1,7 @@
1
+ import { LiveAudioPlayerElement } from "../define/live-audio/player.js";
1
2
  import { MinimalLiveAudioSkinTailwindElement } from "../define/live-audio/minimal-skin.tailwind.js";
2
3
  import { MinimalLiveAudioSkinElement } from "../define/live-audio/minimal-skin.js";
3
4
  import { LiveAudioSkinTailwindElement } from "../define/live-audio/skin.tailwind.js";
4
5
  import { LiveAudioSkinElement } from "../define/live-audio/skin.js";
5
6
  import { liveAudioFeatures } from "@videojs/core/dom";
6
- export { LiveAudioSkinElement, LiveAudioSkinTailwindElement, MinimalLiveAudioSkinElement, MinimalLiveAudioSkinTailwindElement, liveAudioFeatures };
7
+ export { LiveAudioPlayerElement, LiveAudioSkinElement, LiveAudioSkinTailwindElement, MinimalLiveAudioSkinElement, MinimalLiveAudioSkinTailwindElement, liveAudioFeatures };
@@ -1,6 +1,7 @@
1
1
  import { MinimalLiveVideoSkinElement } from "../define/live-video/minimal-skin.js";
2
2
  import { MinimalLiveVideoSkinTailwindElement } from "../define/live-video/minimal-skin.tailwind.js";
3
+ import { LiveVideoPlayerElement } from "../define/live-video/player.js";
3
4
  import { LiveVideoSkinElement } from "../define/live-video/skin.js";
4
5
  import { LiveVideoSkinTailwindElement } from "../define/live-video/skin.tailwind.js";
5
6
  import { liveVideoFeatures } from "@videojs/core/dom";
6
- export { LiveVideoSkinElement, LiveVideoSkinTailwindElement, MinimalLiveVideoSkinElement, MinimalLiveVideoSkinTailwindElement, liveVideoFeatures };
7
+ export { LiveVideoPlayerElement, LiveVideoSkinElement, LiveVideoSkinTailwindElement, MinimalLiveVideoSkinElement, MinimalLiveVideoSkinTailwindElement, liveVideoFeatures };
@@ -1,6 +1,7 @@
1
+ import { LiveVideoPlayerElement } from "../define/live-video/player.js";
1
2
  import { MinimalLiveVideoSkinTailwindElement } from "../define/live-video/minimal-skin.tailwind.js";
2
3
  import { MinimalLiveVideoSkinElement } from "../define/live-video/minimal-skin.js";
3
4
  import { LiveVideoSkinTailwindElement } from "../define/live-video/skin.tailwind.js";
4
5
  import { LiveVideoSkinElement } from "../define/live-video/skin.js";
5
6
  import { liveVideoFeatures } from "@videojs/core/dom";
6
- export { LiveVideoSkinElement, LiveVideoSkinTailwindElement, MinimalLiveVideoSkinElement, MinimalLiveVideoSkinTailwindElement, liveVideoFeatures };
7
+ export { LiveVideoPlayerElement, LiveVideoSkinElement, LiveVideoSkinTailwindElement, MinimalLiveVideoSkinElement, MinimalLiveVideoSkinTailwindElement, liveVideoFeatures };
@@ -1 +1 @@
1
- {"version":3,"file":"provider-mixin.d.ts","names":[],"sources":["../../../src/store/provider-mixin.ts"],"mappings":";;;;;;UAOiB,mBAAA,eAAkC,WAAA;EACjD,aAAA,EAAe,aAAA,CAAc,KAAA;EAC7B,YAAA,EAAc,YAAA;EACd,gBAAA,EAAkB,gBAAA;EAClB,OAAA,QAAe,KAAA;AAAA;AAAA,KAGL,aAAA,eAA4B,WAAA,mBAA8B,uBAAA,EACpE,SAAA,EAAW,KAAA,KACR,KAAA,GAAQ,yBAAA,CAA0B,KAAA;;;;;;;;;;;;;;iBAevB,mBAAA,eAAkC,WAAA,CAAA,CAChD,MAAA,EAAQ,mBAAA,CAAoB,KAAA,IAC3B,aAAA,CAAc,KAAA"}
1
+ {"version":3,"file":"provider-mixin.d.ts","names":[],"sources":["../../../src/store/provider-mixin.ts"],"mappings":";;;;;;UAaiB,mBAAA,eAAkC,WAAA;EACjD,aAAA,EAAe,aAAA,CAAc,KAAA;EAC7B,YAAA,EAAc,YAAA;EACd,gBAAA,EAAkB,gBAAA;EAClB,OAAA,QAAe,KAAA;AAAA;AAAA,KAGL,aAAA,eAA4B,WAAA,mBAA8B,uBAAA,EACpE,SAAA,EAAW,KAAA,KACR,KAAA,GAAQ,yBAAA,CAA0B,KAAA;;;;;;;;;;;;;;iBAevB,mBAAA,eAAkC,WAAA,CAAA,CAChD,MAAA,EAAQ,mBAAA,CAAoB,KAAA,IAC3B,aAAA,CAAc,KAAA"}
@@ -1,3 +1,4 @@
1
+ import { createPopupGroup } from "@videojs/core/dom";
1
2
  import { ContextProvider } from "@videojs/element/context";
2
3
  import { isNull } from "@videojs/utils/predicate";
3
4
  //#region src/store/provider-mixin.ts
@@ -21,6 +22,7 @@ function createProviderMixin(config) {
21
22
  #detach = null;
22
23
  #media = null;
23
24
  #container = null;
25
+ #popupGroup = createPopupGroup();
24
26
  #fallbackQueued = false;
25
27
  #setMedia = (media) => {
26
28
  if (this.#media === media) return;
@@ -36,7 +38,8 @@ function createProviderMixin(config) {
36
38
  this.#container = container;
37
39
  this.#containerProvider.setValue({
38
40
  container,
39
- setContainer: this.#setContainer
41
+ setContainer: this.#setContainer,
42
+ popupGroup: this.#popupGroup
40
43
  });
41
44
  this.#tryAttach();
42
45
  };
@@ -55,7 +58,8 @@ function createProviderMixin(config) {
55
58
  context: config.containerContext,
56
59
  initialValue: {
57
60
  container: this.#container,
58
- setContainer: this.#setContainer
61
+ setContainer: this.#setContainer,
62
+ popupGroup: this.#popupGroup
59
63
  }
60
64
  });
61
65
  get store() {
@@ -71,7 +75,8 @@ function createProviderMixin(config) {
71
75
  });
72
76
  this.#containerProvider.setValue({
73
77
  container: this.#container,
74
- setContainer: this.#setContainer
78
+ setContainer: this.#setContainer,
79
+ popupGroup: this.#popupGroup
75
80
  });
76
81
  this.#tryAttach();
77
82
  this.#queueFallbackDiscovery();
@@ -1 +1 @@
1
- {"version":3,"file":"provider-mixin.js","names":["#media","#mediaProvider","#setMedia","#tryAttach","#container","#containerProvider","#setContainer","#store","#playerProvider","#queueFallbackDiscovery","#detachStore","#detach","#fallbackQueued"],"sources":["../../../src/store/provider-mixin.ts"],"sourcesContent":["import type { Media, MediaContainer, PlayerStore, PlayerTarget } from '@videojs/core/dom';\nimport { ContextProvider } from '@videojs/element/context';\nimport { isNull } from '@videojs/utils/predicate';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, MediaContext, PlayerContext } from '../player/context';\nimport type { PlayerProvider, PlayerProviderConstructor } from './types';\n\nexport interface ProviderMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n mediaContext: MediaContext;\n containerContext: ContainerContext;\n factory: () => Store;\n}\n\nexport type ProviderMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerProviderConstructor<Store>;\n\n/**\n * Create a mixin that provides player context to descendant elements and\n * owns the `store.attach()` lifecycle.\n *\n * Media and container elements register themselves via media/container\n * contexts that carry both the current value and a setter. When a media\n * element is available, the provider calls `store.attach({ media, container })`.\n *\n * As a fallback for plain `<video>`/`<audio>` that can't consume context,\n * the provider queries its subtree after a microtask.\n *\n * @param config - Provider configuration with contexts and store factory.\n */\nexport function createProviderMixin<Store extends PlayerStore>(\n config: ProviderMixinConfig<Store>\n): ProviderMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerProviderElement extends BaseClass implements PlayerProvider<Store> {\n #store: Store | null = config.factory();\n #detach: (() => void) | null = null;\n #media: Media | null = null;\n #container: MediaContainer | null = null;\n #fallbackQueued = false;\n\n #setMedia = (media: Media | null): void => {\n if (this.#media === media) return;\n this.#media = media;\n this.#mediaProvider.setValue({ media, setMedia: this.#setMedia });\n this.#tryAttach();\n };\n\n #setContainer = (container: MediaContainer | null): void => {\n if (this.#container === container) return;\n this.#container = container;\n this.#containerProvider.setValue({ container, setContainer: this.#setContainer });\n this.#tryAttach();\n };\n\n #playerProvider = new ContextProvider(this, {\n context: config.playerContext,\n initialValue: this.store,\n });\n\n #mediaProvider = new ContextProvider(this, {\n context: config.mediaContext,\n initialValue: { media: this.#media, setMedia: this.#setMedia },\n });\n\n #containerProvider = new ContextProvider(this, {\n context: config.containerContext,\n initialValue: { container: this.#container, setContainer: this.#setContainer },\n });\n\n get store(): Store {\n if (isNull(this.#store)) {\n this.#store = config.factory();\n }\n\n return this.#store;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#playerProvider.setValue(this.store);\n this.#mediaProvider.setValue({ media: this.#media, setMedia: this.#setMedia });\n this.#containerProvider.setValue({ container: this.#container, setContainer: this.#setContainer });\n this.#tryAttach();\n this.#queueFallbackDiscovery();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#detachStore();\n }\n\n override destroyCallback() {\n this.#detachStore();\n this.#store?.destroy();\n this.#store = null;\n super.destroyCallback();\n }\n\n #tryAttach(): void {\n const store = this.#store;\n if (!store) return;\n\n if (!this.#media) {\n this.#detachStore();\n return;\n }\n\n const target: PlayerTarget = {\n media: this.#media,\n container: this.#container,\n };\n\n const hasMediaChanged = store.target?.media !== target.media;\n const hasContainerChanged = store.target?.container !== target.container;\n\n if (hasMediaChanged || hasContainerChanged) {\n this.#detachStore();\n this.#detach = store.attach(target);\n }\n }\n\n #detachStore(): void {\n this.#detach?.();\n this.#detach = null;\n }\n\n #queueFallbackDiscovery(): void {\n if (this.#media || this.#fallbackQueued) return;\n this.#fallbackQueued = true;\n\n queueMicrotask(() => {\n this.#fallbackQueued = false;\n\n // Context already registered media — skip fallback.\n if (this.#media) return;\n\n const media = this.querySelector<HTMLMediaElement>('video, audio');\n if (media) {\n this.#setMedia(media);\n }\n });\n }\n }\n\n return PlayerProviderElement;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA+BA,SAAgB,oBACd,QACsB;AACtB,SAA+C,cAAqB;EAClE,MAAM,8BAA8B,UAA2C;GAC7E,SAAuB,OAAO,SAAS;GACvC,UAA+B;GAC/B,SAAuB;GACvB,aAAoC;GACpC,kBAAkB;GAElB,aAAa,UAA8B;AACzC,QAAI,MAAA,UAAgB,MAAO;AAC3B,UAAA,QAAc;AACd,UAAA,cAAoB,SAAS;KAAE;KAAO,UAAU,MAAA;KAAgB,CAAC;AACjE,UAAA,WAAiB;;GAGnB,iBAAiB,cAA2C;AAC1D,QAAI,MAAA,cAAoB,UAAW;AACnC,UAAA,YAAkB;AAClB,UAAA,kBAAwB,SAAS;KAAE;KAAW,cAAc,MAAA;KAAoB,CAAC;AACjF,UAAA,WAAiB;;GAGnB,kBAAkB,IAAI,gBAAgB,MAAM;IAC1C,SAAS,OAAO;IAChB,cAAc,KAAK;IACpB,CAAC;GAEF,iBAAiB,IAAI,gBAAgB,MAAM;IACzC,SAAS,OAAO;IAChB,cAAc;KAAE,OAAO,MAAA;KAAa,UAAU,MAAA;KAAgB;IAC/D,CAAC;GAEF,qBAAqB,IAAI,gBAAgB,MAAM;IAC7C,SAAS,OAAO;IAChB,cAAc;KAAE,WAAW,MAAA;KAAiB,cAAc,MAAA;KAAoB;IAC/E,CAAC;GAEF,IAAI,QAAe;AACjB,QAAI,OAAO,MAAA,MAAY,CACrB,OAAA,QAAc,OAAO,SAAS;AAGhC,WAAO,MAAA;;GAGT,oBAA6B;AAC3B,UAAM,mBAAmB;AACzB,UAAA,eAAqB,SAAS,KAAK,MAAM;AACzC,UAAA,cAAoB,SAAS;KAAE,OAAO,MAAA;KAAa,UAAU,MAAA;KAAgB,CAAC;AAC9E,UAAA,kBAAwB,SAAS;KAAE,WAAW,MAAA;KAAiB,cAAc,MAAA;KAAoB,CAAC;AAClG,UAAA,WAAiB;AACjB,UAAA,wBAA8B;;GAGhC,uBAAgC;AAC9B,UAAM,sBAAsB;AAC5B,UAAA,aAAmB;;GAGrB,kBAA2B;AACzB,UAAA,aAAmB;AACnB,UAAA,OAAa,SAAS;AACtB,UAAA,QAAc;AACd,UAAM,iBAAiB;;GAGzB,aAAmB;IACjB,MAAM,QAAQ,MAAA;AACd,QAAI,CAAC,MAAO;AAEZ,QAAI,CAAC,MAAA,OAAa;AAChB,WAAA,aAAmB;AACnB;;IAGF,MAAM,SAAuB;KAC3B,OAAO,MAAA;KACP,WAAW,MAAA;KACZ;IAED,MAAM,kBAAkB,MAAM,QAAQ,UAAU,OAAO;IACvD,MAAM,sBAAsB,MAAM,QAAQ,cAAc,OAAO;AAE/D,QAAI,mBAAmB,qBAAqB;AAC1C,WAAA,aAAmB;AACnB,WAAA,SAAe,MAAM,OAAO,OAAO;;;GAIvC,eAAqB;AACnB,UAAA,UAAgB;AAChB,UAAA,SAAe;;GAGjB,0BAAgC;AAC9B,QAAI,MAAA,SAAe,MAAA,eAAsB;AACzC,UAAA,iBAAuB;AAEvB,yBAAqB;AACnB,WAAA,iBAAuB;AAGvB,SAAI,MAAA,MAAa;KAEjB,MAAM,QAAQ,KAAK,cAAgC,eAAe;AAClE,SAAI,MACF,OAAA,SAAe,MAAM;MAEvB;;;AAIN,SAAO"}
1
+ {"version":3,"file":"provider-mixin.js","names":["#media","#mediaProvider","#setMedia","#tryAttach","#container","#containerProvider","#setContainer","#popupGroup","#store","#playerProvider","#queueFallbackDiscovery","#detachStore","#detach","#fallbackQueued"],"sources":["../../../src/store/provider-mixin.ts"],"sourcesContent":["import {\n createPopupGroup,\n type Media,\n type MediaContainer,\n type PlayerStore,\n type PlayerTarget,\n} from '@videojs/core/dom';\nimport { ContextProvider } from '@videojs/element/context';\nimport { isNull } from '@videojs/utils/predicate';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, MediaContext, PlayerContext } from '../player/context';\nimport type { PlayerProvider, PlayerProviderConstructor } from './types';\n\nexport interface ProviderMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n mediaContext: MediaContext;\n containerContext: ContainerContext;\n factory: () => Store;\n}\n\nexport type ProviderMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerProviderConstructor<Store>;\n\n/**\n * Create a mixin that provides player context to descendant elements and\n * owns the `store.attach()` lifecycle.\n *\n * Media and container elements register themselves via media/container\n * contexts that carry both the current value and a setter. When a media\n * element is available, the provider calls `store.attach({ media, container })`.\n *\n * As a fallback for plain `<video>`/`<audio>` that can't consume context,\n * the provider queries its subtree after a microtask.\n *\n * @param config - Provider configuration with contexts and store factory.\n */\nexport function createProviderMixin<Store extends PlayerStore>(\n config: ProviderMixinConfig<Store>\n): ProviderMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerProviderElement extends BaseClass implements PlayerProvider<Store> {\n #store: Store | null = config.factory();\n #detach: (() => void) | null = null;\n #media: Media | null = null;\n #container: MediaContainer | null = null;\n #popupGroup = createPopupGroup();\n #fallbackQueued = false;\n\n #setMedia = (media: Media | null): void => {\n if (this.#media === media) return;\n this.#media = media;\n this.#mediaProvider.setValue({ media, setMedia: this.#setMedia });\n this.#tryAttach();\n };\n\n #setContainer = (container: MediaContainer | null): void => {\n if (this.#container === container) return;\n this.#container = container;\n this.#containerProvider.setValue({\n container,\n setContainer: this.#setContainer,\n popupGroup: this.#popupGroup,\n });\n this.#tryAttach();\n };\n\n #playerProvider = new ContextProvider(this, {\n context: config.playerContext,\n initialValue: this.store,\n });\n\n #mediaProvider = new ContextProvider(this, {\n context: config.mediaContext,\n initialValue: { media: this.#media, setMedia: this.#setMedia },\n });\n\n #containerProvider = new ContextProvider(this, {\n context: config.containerContext,\n initialValue: {\n container: this.#container,\n setContainer: this.#setContainer,\n popupGroup: this.#popupGroup,\n },\n });\n\n get store(): Store {\n if (isNull(this.#store)) {\n this.#store = config.factory();\n }\n\n return this.#store;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#playerProvider.setValue(this.store);\n this.#mediaProvider.setValue({ media: this.#media, setMedia: this.#setMedia });\n this.#containerProvider.setValue({\n container: this.#container,\n setContainer: this.#setContainer,\n popupGroup: this.#popupGroup,\n });\n this.#tryAttach();\n this.#queueFallbackDiscovery();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#detachStore();\n }\n\n override destroyCallback() {\n this.#detachStore();\n this.#store?.destroy();\n this.#store = null;\n super.destroyCallback();\n }\n\n #tryAttach(): void {\n const store = this.#store;\n if (!store) return;\n\n if (!this.#media) {\n this.#detachStore();\n return;\n }\n\n const target: PlayerTarget = {\n media: this.#media,\n container: this.#container,\n };\n\n const hasMediaChanged = store.target?.media !== target.media;\n const hasContainerChanged = store.target?.container !== target.container;\n\n if (hasMediaChanged || hasContainerChanged) {\n this.#detachStore();\n this.#detach = store.attach(target);\n }\n }\n\n #detachStore(): void {\n this.#detach?.();\n this.#detach = null;\n }\n\n #queueFallbackDiscovery(): void {\n if (this.#media || this.#fallbackQueued) return;\n this.#fallbackQueued = true;\n\n queueMicrotask(() => {\n this.#fallbackQueued = false;\n\n // Context already registered media — skip fallback.\n if (this.#media) return;\n\n const media = this.querySelector<HTMLMediaElement>('video, audio');\n if (media) {\n this.#setMedia(media);\n }\n });\n }\n }\n\n return PlayerProviderElement;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAqCA,SAAgB,oBACd,QACsB;AACtB,SAA+C,cAAqB;EAClE,MAAM,8BAA8B,UAA2C;GAC7E,SAAuB,OAAO,SAAS;GACvC,UAA+B;GAC/B,SAAuB;GACvB,aAAoC;GACpC,cAAc,kBAAkB;GAChC,kBAAkB;GAElB,aAAa,UAA8B;AACzC,QAAI,MAAA,UAAgB,MAAO;AAC3B,UAAA,QAAc;AACd,UAAA,cAAoB,SAAS;KAAE;KAAO,UAAU,MAAA;KAAgB,CAAC;AACjE,UAAA,WAAiB;;GAGnB,iBAAiB,cAA2C;AAC1D,QAAI,MAAA,cAAoB,UAAW;AACnC,UAAA,YAAkB;AAClB,UAAA,kBAAwB,SAAS;KAC/B;KACA,cAAc,MAAA;KACd,YAAY,MAAA;KACb,CAAC;AACF,UAAA,WAAiB;;GAGnB,kBAAkB,IAAI,gBAAgB,MAAM;IAC1C,SAAS,OAAO;IAChB,cAAc,KAAK;IACpB,CAAC;GAEF,iBAAiB,IAAI,gBAAgB,MAAM;IACzC,SAAS,OAAO;IAChB,cAAc;KAAE,OAAO,MAAA;KAAa,UAAU,MAAA;KAAgB;IAC/D,CAAC;GAEF,qBAAqB,IAAI,gBAAgB,MAAM;IAC7C,SAAS,OAAO;IAChB,cAAc;KACZ,WAAW,MAAA;KACX,cAAc,MAAA;KACd,YAAY,MAAA;KACb;IACF,CAAC;GAEF,IAAI,QAAe;AACjB,QAAI,OAAO,MAAA,MAAY,CACrB,OAAA,QAAc,OAAO,SAAS;AAGhC,WAAO,MAAA;;GAGT,oBAA6B;AAC3B,UAAM,mBAAmB;AACzB,UAAA,eAAqB,SAAS,KAAK,MAAM;AACzC,UAAA,cAAoB,SAAS;KAAE,OAAO,MAAA;KAAa,UAAU,MAAA;KAAgB,CAAC;AAC9E,UAAA,kBAAwB,SAAS;KAC/B,WAAW,MAAA;KACX,cAAc,MAAA;KACd,YAAY,MAAA;KACb,CAAC;AACF,UAAA,WAAiB;AACjB,UAAA,wBAA8B;;GAGhC,uBAAgC;AAC9B,UAAM,sBAAsB;AAC5B,UAAA,aAAmB;;GAGrB,kBAA2B;AACzB,UAAA,aAAmB;AACnB,UAAA,OAAa,SAAS;AACtB,UAAA,QAAc;AACd,UAAM,iBAAiB;;GAGzB,aAAmB;IACjB,MAAM,QAAQ,MAAA;AACd,QAAI,CAAC,MAAO;AAEZ,QAAI,CAAC,MAAA,OAAa;AAChB,WAAA,aAAmB;AACnB;;IAGF,MAAM,SAAuB;KAC3B,OAAO,MAAA;KACP,WAAW,MAAA;KACZ;IAED,MAAM,kBAAkB,MAAM,QAAQ,UAAU,OAAO;IACvD,MAAM,sBAAsB,MAAM,QAAQ,cAAc,OAAO;AAE/D,QAAI,mBAAmB,qBAAqB;AAC1C,WAAA,aAAmB;AACnB,WAAA,SAAe,MAAM,OAAO,OAAO;;;GAIvC,eAAqB;AACnB,UAAA,UAAgB;AAChB,UAAA,SAAe;;GAGjB,0BAAgC;AAC9B,QAAI,MAAA,SAAe,MAAA,eAAsB;AACzC,UAAA,iBAAuB;AAEvB,yBAAqB;AACnB,WAAA,iBAAuB;AAGvB,SAAI,MAAA,MAAa;KAEjB,MAAM,QAAQ,KAAK,cAAgC,eAAe;AAClE,SAAI,MACF,OAAA,SAAe,MAAM;MAEvB;;;AAIN,SAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"controls-element.d.ts","names":[],"sources":["../../../../src/ui/controls/controls-element.ts"],"mappings":";;;;cAUa,eAAA,SAAwB,YAAA;EAAA;kBACnB,OAAA;EAMP,iBAAA,CAAA;EAAA,UAQU,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
1
+ {"version":3,"file":"controls-element.d.ts","names":[],"sources":["../../../../src/ui/controls/controls-element.ts"],"mappings":";;;;cAWa,eAAA,SAAwB,YAAA;EAAA;kBACnB,OAAA;EAOP,iBAAA,CAAA;EAAA,UAQU,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
@@ -4,7 +4,8 @@ import { PlayerController } from "../../player/player-controller.js";
4
4
  import { controlsContext } from "./context.js";
5
5
  import { applyStateDataAttrs, logMissingFeature, selectControls } from "@videojs/core/dom";
6
6
  import { ContextProvider } from "@videojs/element/context";
7
- import { ControlsCore, ControlsDataAttrs } from "@videojs/core";
7
+ import { isFunction } from "@videojs/utils/predicate";
8
+ import { ControlsCore, ControlsDataAttrs, POPUP_HOST_SELECTOR } from "@videojs/core";
8
9
  //#region src/ui/controls/controls-element.ts
9
10
  var ControlsElement = class extends MediaElement {
10
11
  static {
@@ -13,6 +14,7 @@ var ControlsElement = class extends MediaElement {
13
14
  #core = new ControlsCore();
14
15
  #mediaState = new PlayerController(this, playerContext, selectControls);
15
16
  #provider = new ContextProvider(this, { context: controlsContext });
17
+ #visible = true;
16
18
  connectedCallback() {
17
19
  super.connectedCallback();
18
20
  if (!this.#mediaState.value && this.#mediaState.displayName) logMissingFeature(this.localName, this.#mediaState.displayName);
@@ -28,6 +30,16 @@ var ControlsElement = class extends MediaElement {
28
30
  state,
29
31
  stateAttrMap: ControlsDataAttrs
30
32
  });
33
+ const wasVisible = this.#visible;
34
+ this.#visible = state.visible;
35
+ if (wasVisible && !state.visible) this.#closeOwnedOverlays();
36
+ }
37
+ #closeOwnedOverlays() {
38
+ for (const element of this.querySelectorAll(POPUP_HOST_SELECTOR)) {
39
+ const host = element;
40
+ if (!isFunction(host.close)) continue;
41
+ host.close("imperative-action");
42
+ }
31
43
  }
32
44
  };
33
45
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"controls-element.js","names":["#core","#mediaState","#provider"],"sources":["../../../../src/ui/controls/controls-element.ts"],"sourcesContent":["import { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { controlsContext } from './context';\n\nexport class ControlsElement extends MediaElement {\n static readonly tagName = 'media-controls';\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const media = this.#mediaState.value;\n if (!media) return;\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n }\n}\n"],"mappings":";;;;;;;;AAUA,IAAa,kBAAb,cAAqC,aAAa;;iBACtB;;CAE1B,QAAiB,IAAI,cAAc;CACnC,cAAuB,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAChF,YAAqB,IAAI,gBAAgB,MAAM,EAAE,SAAS,iBAAiB,CAAC;CAE5E,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,MAAA,WAAiB,SAAS,MAAA,WAAiB,YACzD,mBAAkB,KAAK,WAAW,MAAA,WAAiB,YAAY;;CAInE,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,QAAQ,MAAA,WAAiB;AAC/B,MAAI,CAAC,MAAO;AAEZ,QAAA,KAAW,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAA,KAAW,UAAU;AAEnC,sBAAoB,MAAM,OAAO,kBAAkB;AAEnD,QAAA,SAAe,SAAS;GACtB;GACA,cAAc;GACf,CAAC"}
1
+ {"version":3,"file":"controls-element.js","names":["#core","#mediaState","#provider","#visible","#closeOwnedOverlays"],"sources":["../../../../src/ui/controls/controls-element.ts"],"sourcesContent":["import { ControlsCore, ControlsDataAttrs, POPUP_HOST_SELECTOR } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { isFunction } from '@videojs/utils/predicate';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { controlsContext } from './context';\n\nexport class ControlsElement extends MediaElement {\n static readonly tagName = 'media-controls';\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n #visible = true;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const media = this.#mediaState.value;\n if (!media) return;\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n\n const wasVisible = this.#visible;\n this.#visible = state.visible;\n\n if (wasVisible && !state.visible) {\n this.#closeOwnedOverlays();\n }\n }\n\n #closeOwnedOverlays(): void {\n for (const element of this.querySelectorAll(POPUP_HOST_SELECTOR)) {\n const host = element as Element & { close?: unknown };\n if (!isFunction(host.close)) continue;\n\n host.close('imperative-action');\n }\n }\n}\n"],"mappings":";;;;;;;;;AAWA,IAAa,kBAAb,cAAqC,aAAa;;iBACtB;;CAE1B,QAAiB,IAAI,cAAc;CACnC,cAAuB,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAChF,YAAqB,IAAI,gBAAgB,MAAM,EAAE,SAAS,iBAAiB,CAAC;CAC5E,WAAW;CAEX,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,MAAA,WAAiB,SAAS,MAAA,WAAiB,YACzD,mBAAkB,KAAK,WAAW,MAAA,WAAiB,YAAY;;CAInE,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,QAAQ,MAAA,WAAiB;AAC/B,MAAI,CAAC,MAAO;AAEZ,QAAA,KAAW,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAA,KAAW,UAAU;AAEnC,sBAAoB,MAAM,OAAO,kBAAkB;AAEnD,QAAA,SAAe,SAAS;GACtB;GACA,cAAc;GACf,CAAC;EAEF,MAAM,aAAa,MAAA;AACnB,QAAA,UAAgB,MAAM;AAEtB,MAAI,cAAc,CAAC,MAAM,QACvB,OAAA,oBAA0B;;CAI9B,sBAA4B;AAC1B,OAAK,MAAM,WAAW,KAAK,iBAAiB,oBAAoB,EAAE;GAChE,MAAM,OAAO;AACb,OAAI,CAAC,WAAW,KAAK,MAAM,CAAE;AAE7B,QAAK,MAAM,oBAAoB"}
@@ -71,7 +71,8 @@ var GestureElement = class extends MediaElement {
71
71
  pointer: this.pointer,
72
72
  region: this.region,
73
73
  disabled: this.disabled,
74
- action: this.action
74
+ action: this.action,
75
+ value: this.value
75
76
  };
76
77
  if (this.type === "doubletap") this.#cleanup = createDoubleTapGesture(container, onActivate, options);
77
78
  else this.#cleanup = createTapGesture(container, onActivate, options);
@@ -1 +1 @@
1
- {"version":3,"file":"gesture-element.js","names":["#player","#container","#register","#unregister","#cleanup"],"sources":["../../../../src/ui/gesture/gesture-element.ts"],"sourcesContent":["import {\n createDoubleTapGesture,\n createTapGesture,\n type GestureActionName,\n type GesturePointerType,\n type GestureRegion,\n resolveGestureAction,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class GestureElement extends MediaElement {\n static readonly tagName = 'media-gesture';\n\n static override properties: PropertyDeclarationMap = {\n type: { type: String },\n action: { type: String },\n value: { type: Number },\n pointer: { type: String },\n region: { type: String },\n disabled: { type: Boolean },\n };\n\n type: 'tap' | 'doubletap' | (string & {}) = '';\n action: GestureActionName | (string & {}) = '';\n value: number | undefined = undefined;\n pointer: GesturePointerType | undefined = undefined;\n region: GestureRegion | undefined = undefined;\n disabled = false;\n\n readonly #player = new PlayerController(this, playerContext);\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.requestUpdate(),\n subscribe: true,\n });\n #cleanup: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.display = 'none';\n this.#register();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#unregister();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Re-register when attributes change.\n if (this.isConnected) {\n this.#unregister();\n this.#register();\n }\n }\n\n #register(): void {\n const store = this.#player.value;\n const container = this.#container.value?.container;\n if (!this.type || !this.action || !store || !container) return;\n\n const resolver = resolveGestureAction(this.action);\n if (!resolver) return;\n\n const { value } = this;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = {\n pointer: this.pointer,\n region: this.region,\n disabled: this.disabled,\n action: this.action,\n };\n\n if (this.type === 'doubletap') {\n this.#cleanup = createDoubleTapGesture(container, onActivate, options);\n } else {\n this.#cleanup = createTapGesture(container, onActivate, options);\n }\n }\n\n #unregister(): void {\n this.#cleanup?.();\n this.#cleanup = null;\n }\n}\n"],"mappings":";;;;;;AAeA,IAAa,iBAAb,cAAoC,aAAa;;;cAYH;gBACA;eAChB,KAAA;iBACc,KAAA;gBACN,KAAA;kBACzB;iBAEQ,IAAI,iBAAiB,MAAM,cAAc;oBACtC,IAAI,gBAAgB,MAAM;GAC9C,SAAS;GACT,gBAAgB,KAAK,eAAe;GACpC,WAAW;GACZ,CAAC;kBAC8B;;;iBAxBN;;;oBAE2B;GACnD,MAAM,EAAE,MAAM,QAAQ;GACtB,QAAQ,EAAE,MAAM,QAAQ;GACxB,OAAO,EAAE,MAAM,QAAQ;GACvB,SAAS,EAAE,MAAM,QAAQ;GACzB,QAAQ,EAAE,MAAM,QAAQ;GACxB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CASD;CACA;CAKA;CAEA,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,OAAK,MAAM,UAAU;AACrB,QAAA,UAAgB;;CAGlB,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB;;CAGpB,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;AAGrB,MAAI,KAAK,aAAa;AACpB,SAAA,YAAkB;AAClB,SAAA,UAAgB;;;CAIpB,YAAkB;EAChB,MAAM,QAAQ,MAAA,OAAa;EAC3B,MAAM,YAAY,MAAA,UAAgB,OAAO;AACzC,MAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,UAAW;EAExD,MAAM,WAAW,qBAAqB,KAAK,OAAO;AAClD,MAAI,CAAC,SAAU;EAEf,MAAM,EAAE,UAAU;EAElB,MAAM,cAAc,UAAwB;AAC1C,YAAS;IAAE;IAAO;IAAO;IAAO,CAAC;;EAGnC,MAAM,UAAU;GACd,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,QAAQ,KAAK;GACd;AAED,MAAI,KAAK,SAAS,YAChB,OAAA,UAAgB,uBAAuB,WAAW,YAAY,QAAQ;MAEtE,OAAA,UAAgB,iBAAiB,WAAW,YAAY,QAAQ;;CAIpE,cAAoB;AAClB,QAAA,WAAiB;AACjB,QAAA,UAAgB"}
1
+ {"version":3,"file":"gesture-element.js","names":["#player","#container","#register","#unregister","#cleanup"],"sources":["../../../../src/ui/gesture/gesture-element.ts"],"sourcesContent":["import {\n createDoubleTapGesture,\n createTapGesture,\n type GestureActionName,\n type GesturePointerType,\n type GestureRegion,\n resolveGestureAction,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class GestureElement extends MediaElement {\n static readonly tagName = 'media-gesture';\n\n static override properties: PropertyDeclarationMap = {\n type: { type: String },\n action: { type: String },\n value: { type: Number },\n pointer: { type: String },\n region: { type: String },\n disabled: { type: Boolean },\n };\n\n type: 'tap' | 'doubletap' | (string & {}) = '';\n action: GestureActionName | (string & {}) = '';\n value: number | undefined = undefined;\n pointer: GesturePointerType | undefined = undefined;\n region: GestureRegion | undefined = undefined;\n disabled = false;\n\n readonly #player = new PlayerController(this, playerContext);\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.requestUpdate(),\n subscribe: true,\n });\n #cleanup: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.display = 'none';\n this.#register();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#unregister();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Re-register when attributes change.\n if (this.isConnected) {\n this.#unregister();\n this.#register();\n }\n }\n\n #register(): void {\n const store = this.#player.value;\n const container = this.#container.value?.container;\n if (!this.type || !this.action || !store || !container) return;\n\n const resolver = resolveGestureAction(this.action);\n if (!resolver) return;\n\n const { value } = this;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = {\n pointer: this.pointer,\n region: this.region,\n disabled: this.disabled,\n action: this.action,\n value: this.value,\n };\n\n if (this.type === 'doubletap') {\n this.#cleanup = createDoubleTapGesture(container, onActivate, options);\n } else {\n this.#cleanup = createTapGesture(container, onActivate, options);\n }\n }\n\n #unregister(): void {\n this.#cleanup?.();\n this.#cleanup = null;\n }\n}\n"],"mappings":";;;;;;AAeA,IAAa,iBAAb,cAAoC,aAAa;;;cAYH;gBACA;eAChB,KAAA;iBACc,KAAA;gBACN,KAAA;kBACzB;iBAEQ,IAAI,iBAAiB,MAAM,cAAc;oBACtC,IAAI,gBAAgB,MAAM;GAC9C,SAAS;GACT,gBAAgB,KAAK,eAAe;GACpC,WAAW;GACZ,CAAC;kBAC8B;;;iBAxBN;;;oBAE2B;GACnD,MAAM,EAAE,MAAM,QAAQ;GACtB,QAAQ,EAAE,MAAM,QAAQ;GACxB,OAAO,EAAE,MAAM,QAAQ;GACvB,SAAS,EAAE,MAAM,QAAQ;GACzB,QAAQ,EAAE,MAAM,QAAQ;GACxB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CASD;CACA;CAKA;CAEA,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,OAAK,MAAM,UAAU;AACrB,QAAA,UAAgB;;CAGlB,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB;;CAGpB,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;AAGrB,MAAI,KAAK,aAAa;AACpB,SAAA,YAAkB;AAClB,SAAA,UAAgB;;;CAIpB,YAAkB;EAChB,MAAM,QAAQ,MAAA,OAAa;EAC3B,MAAM,YAAY,MAAA,UAAgB,OAAO;AACzC,MAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,UAAW;EAExD,MAAM,WAAW,qBAAqB,KAAK,OAAO;AAClD,MAAI,CAAC,SAAU;EAEf,MAAM,EAAE,UAAU;EAElB,MAAM,cAAc,UAAwB;AAC1C,YAAS;IAAE;IAAO;IAAO;IAAO,CAAC;;EAGnC,MAAM,UAAU;GACd,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,QAAQ,KAAK;GACb,OAAO,KAAK;GACb;AAED,MAAI,KAAK,SAAS,YAChB,OAAA,UAAgB,uBAAuB,WAAW,YAAY,QAAQ;MAEtE,OAAA,UAAgB,iBAAiB,WAAW,YAAY,QAAQ;;CAIpE,cAAoB;AAClB,QAAA,WAAiB;AACjB,QAAA,UAAgB"}
@@ -61,6 +61,7 @@ var HotkeyElement = class extends MediaElement {
61
61
  this.#cleanup = createHotkey(container, {
62
62
  keys: this.keys,
63
63
  action,
64
+ value,
64
65
  target: this.target,
65
66
  disabled: this.disabled,
66
67
  repeatable: !isHotkeyToggleAction(action),
@@ -1 +1 @@
1
- {"version":3,"file":"hotkey-element.js","names":["#player","#container","#register","#unregister","#cleanup"],"sources":["../../../../src/ui/hotkey/hotkey-element.ts"],"sourcesContent":["import { createHotkey, type HotkeyActionName, isHotkeyToggleAction, resolveHotkeyAction } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class HotkeyElement extends MediaElement {\n static readonly tagName = 'media-hotkey';\n\n static override properties: PropertyDeclarationMap = {\n keys: { type: String },\n action: { type: String },\n value: { type: Number },\n disabled: { type: Boolean },\n target: { type: String },\n };\n\n keys = '';\n action: HotkeyActionName | (string & {}) = '';\n value: number | undefined = undefined;\n disabled = false;\n target: 'player' | 'document' = 'player';\n\n readonly #player = new PlayerController(this, playerContext);\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.requestUpdate(),\n subscribe: true,\n });\n #cleanup: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.display = 'none';\n this.#register();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#unregister();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Re-register when attributes change.\n if (this.isConnected) {\n this.#unregister();\n this.#register();\n }\n }\n\n #register(): void {\n const store = this.#player.value;\n const container = this.#container.value?.container;\n if (!this.keys || !this.action || !store || !container) return;\n\n const resolver = resolveHotkeyAction(this.action);\n if (!resolver) return;\n\n const { value, action } = this;\n\n this.#cleanup = createHotkey(container, {\n keys: this.keys,\n action,\n target: this.target,\n disabled: this.disabled,\n repeatable: !isHotkeyToggleAction(action),\n onActivate: (_event, key) => {\n resolver({ store, key, value });\n },\n });\n }\n\n #unregister(): void {\n this.#cleanup?.();\n this.#cleanup = null;\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,gBAAb,cAAmC,aAAa;;;cAWvC;gBACoC;eACf,KAAA;kBACjB;gBACqB;iBAEb,IAAI,iBAAiB,MAAM,cAAc;oBACtC,IAAI,gBAAgB,MAAM;GAC9C,SAAS;GACT,gBAAgB,KAAK,eAAe;GACpC,WAAW;GACZ,CAAC;kBAC8B;;;iBAtBN;;;oBAE2B;GACnD,MAAM,EAAE,MAAM,QAAQ;GACtB,QAAQ,EAAE,MAAM,QAAQ;GACxB,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC3B,QAAQ,EAAE,MAAM,QAAQ;GACzB;;CAQD;CACA;CAKA;CAEA,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,OAAK,MAAM,UAAU;AACrB,QAAA,UAAgB;;CAGlB,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB;;CAGpB,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;AAGrB,MAAI,KAAK,aAAa;AACpB,SAAA,YAAkB;AAClB,SAAA,UAAgB;;;CAIpB,YAAkB;EAChB,MAAM,QAAQ,MAAA,OAAa;EAC3B,MAAM,YAAY,MAAA,UAAgB,OAAO;AACzC,MAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,UAAW;EAExD,MAAM,WAAW,oBAAoB,KAAK,OAAO;AACjD,MAAI,CAAC,SAAU;EAEf,MAAM,EAAE,OAAO,WAAW;AAE1B,QAAA,UAAgB,aAAa,WAAW;GACtC,MAAM,KAAK;GACX;GACA,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,YAAY,CAAC,qBAAqB,OAAO;GACzC,aAAa,QAAQ,QAAQ;AAC3B,aAAS;KAAE;KAAO;KAAK;KAAO,CAAC;;GAElC,CAAC;;CAGJ,cAAoB;AAClB,QAAA,WAAiB;AACjB,QAAA,UAAgB"}
1
+ {"version":3,"file":"hotkey-element.js","names":["#player","#container","#register","#unregister","#cleanup"],"sources":["../../../../src/ui/hotkey/hotkey-element.ts"],"sourcesContent":["import { createHotkey, type HotkeyActionName, isHotkeyToggleAction, resolveHotkeyAction } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class HotkeyElement extends MediaElement {\n static readonly tagName = 'media-hotkey';\n\n static override properties: PropertyDeclarationMap = {\n keys: { type: String },\n action: { type: String },\n value: { type: Number },\n disabled: { type: Boolean },\n target: { type: String },\n };\n\n keys = '';\n action: HotkeyActionName | (string & {}) = '';\n value: number | undefined = undefined;\n disabled = false;\n target: 'player' | 'document' = 'player';\n\n readonly #player = new PlayerController(this, playerContext);\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.requestUpdate(),\n subscribe: true,\n });\n #cleanup: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.display = 'none';\n this.#register();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#unregister();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Re-register when attributes change.\n if (this.isConnected) {\n this.#unregister();\n this.#register();\n }\n }\n\n #register(): void {\n const store = this.#player.value;\n const container = this.#container.value?.container;\n if (!this.keys || !this.action || !store || !container) return;\n\n const resolver = resolveHotkeyAction(this.action);\n if (!resolver) return;\n\n const { value, action } = this;\n\n this.#cleanup = createHotkey(container, {\n keys: this.keys,\n action,\n value,\n target: this.target,\n disabled: this.disabled,\n repeatable: !isHotkeyToggleAction(action),\n onActivate: (_event, key) => {\n resolver({ store, key, value });\n },\n });\n }\n\n #unregister(): void {\n this.#cleanup?.();\n this.#cleanup = null;\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,gBAAb,cAAmC,aAAa;;;cAWvC;gBACoC;eACf,KAAA;kBACjB;gBACqB;iBAEb,IAAI,iBAAiB,MAAM,cAAc;oBACtC,IAAI,gBAAgB,MAAM;GAC9C,SAAS;GACT,gBAAgB,KAAK,eAAe;GACpC,WAAW;GACZ,CAAC;kBAC8B;;;iBAtBN;;;oBAE2B;GACnD,MAAM,EAAE,MAAM,QAAQ;GACtB,QAAQ,EAAE,MAAM,QAAQ;GACxB,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC3B,QAAQ,EAAE,MAAM,QAAQ;GACzB;;CAQD;CACA;CAKA;CAEA,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,OAAK,MAAM,UAAU;AACrB,QAAA,UAAgB;;CAGlB,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB;;CAGpB,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;AAGrB,MAAI,KAAK,aAAa;AACpB,SAAA,YAAkB;AAClB,SAAA,UAAgB;;;CAIpB,YAAkB;EAChB,MAAM,QAAQ,MAAA,OAAa;EAC3B,MAAM,YAAY,MAAA,UAAgB,OAAO;AACzC,MAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,UAAW;EAExD,MAAM,WAAW,oBAAoB,KAAK,OAAO;AACjD,MAAI,CAAC,SAAU;EAEf,MAAM,EAAE,OAAO,WAAW;AAE1B,QAAA,UAAgB,aAAa,WAAW;GACtC,MAAM,KAAK;GACX;GACA;GACA,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,YAAY,CAAC,qBAAqB,OAAO;GACzC,aAAa,QAAQ,QAAQ;AAC3B,aAAS;KAAE;KAAO;KAAK;KAAO,CAAC;;GAElC,CAAC;;CAGJ,cAAoB;AAClB,QAAA,WAAiB;AACjB,QAAA,UAAgB"}
@@ -0,0 +1,37 @@
1
+ import { MediaElement } from "../media-element.js";
2
+ import { CONTAINER_CONTEXT_KEY, ContainerContextValue } from "../../player/context.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { Context as Context$1 } from "../../node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/create-context.js";
5
+ import { LiveIndicator } from "./live-indicator.js";
6
+ import { index_d_exports } from "../../index.js";
7
+ import { TransitionApi } from "@videojs/core/dom";
8
+ import { PropertyValues } from "@videojs/element";
9
+ import { State } from "@videojs/store";
10
+ import { ContextConsumer } from "@videojs/element/context";
11
+ import { IndicatorLifecycleState, InputActionEvent, MediaSnapshot } from "@videojs/core";
12
+
13
+ //#region src/ui/input-indicators/input-indicator-element.d.ts
14
+ /** Shared imperative API for status / volume / seek indicator cores. */
15
+ interface InputIndicatorCoreApi<IndicatorState extends IndicatorLifecycleState> {
16
+ readonly state: State<IndicatorState>;
17
+ destroy(): void;
18
+ close(): void;
19
+ processEvent(event: InputActionEvent, snapshot: MediaSnapshot): boolean;
20
+ }
21
+ declare abstract class InputIndicatorElement<IndicatorState extends IndicatorLifecycleState> extends MediaElement {
22
+ #private;
23
+ protected abstract get core(): InputIndicatorCoreApi<IndicatorState>;
24
+ protected abstract get transition(): TransitionApi;
25
+ protected abstract get liveIndicator(): LiveIndicator<IndicatorState>;
26
+ protected abstract syncCoreProps(): void;
27
+ protected readonly player: PlayerController<index_d_exports.AnyPlayerStore, index_d_exports.AnyPlayerStore>;
28
+ protected readonly container: ContextConsumer<Context$1<typeof CONTAINER_CONTEXT_KEY, ContainerContextValue>, this>;
29
+ connectedCallback(): void;
30
+ disconnectedCallback(): void;
31
+ destroyCallback(): void;
32
+ protected willUpdate(changed: PropertyValues): void;
33
+ protected update(changed: PropertyValues): void;
34
+ }
35
+ //#endregion
36
+ export { InputIndicatorElement };
37
+ //# sourceMappingURL=input-indicator-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-indicator-element.d.ts","names":[],"sources":["../../../../src/ui/input-indicators/input-indicator-element.ts"],"mappings":";;;;;;;;;;;;;;UAwBiB,qBAAA,wBAA6C,uBAAA;EAAA,SACnD,KAAA,EAAO,KAAA,CAAW,cAAA;EAC3B,OAAA;EACA,KAAA;EACA,YAAA,CAAa,KAAA,EAAO,gBAAA,EAAkB,QAAA,EAAU,aAAA;AAAA;AAAA,uBAG5B,qBAAA,wBAA6C,uBAAA,UAAiC,YAAA;EAAA;yBAC3E,IAAA,CAAA,GAAQ,qBAAA,CAAsB,cAAA;EAAA,uBAC9B,UAAA,CAAA,GAAc,aAAA;EAAA,uBACd,aAAA,CAAA,GAAiB,aAAA,CAAc,cAAA;EAAA,mBAEnC,aAAA,CAAA;EAAA,mBAEA,MAAA,EAAM,gBAAA,CAJ4B,eAAA,CAI5B,cAAA,EAAA,eAAA,CAAA,cAAA;EAAA,mBACN,SAAA,EAAS,eAAA,CAAA,SAAA,QADH,qBAAA,EACG,qBAAA;EAqBnB,iBAAA,CAAA;EAaA,oBAAA,CAAA;EAUA,eAAA,CAAA;EAAA,UASU,UAAA,CAAW,OAAA,EAAS,cAAA;EAAA,UAKpB,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
@@ -0,0 +1,110 @@
1
+ import { containerContext, playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { getIndicatorVisibilityCoordinator, getMediaSnapshot, subscribeToInputActions } from "@videojs/core/dom";
5
+ import { ContextConsumer } from "@videojs/element/context";
6
+ import { getRenderedIndicatorState, isIndicatorPresent } from "@videojs/core";
7
+ //#region src/ui/input-indicators/input-indicator-element.ts
8
+ var InputIndicatorElement = class extends MediaElement {
9
+ constructor(..._args) {
10
+ super(..._args);
11
+ this.player = new PlayerController(this, playerContext);
12
+ this.container = new ContextConsumer(this, {
13
+ context: containerContext,
14
+ callback: () => this.#reconnect(),
15
+ subscribe: true
16
+ });
17
+ this.#disconnect = null;
18
+ this.#inputActionUnsubscribe = null;
19
+ this.#visibilityUnsubscribe = null;
20
+ this.#visibilityHandle = null;
21
+ this.#lastGeneration = 0;
22
+ this.#snapshot = null;
23
+ }
24
+ #disconnect;
25
+ #inputActionUnsubscribe;
26
+ #visibilityUnsubscribe;
27
+ #visibilityHandle;
28
+ #lastGeneration;
29
+ #snapshot;
30
+ #getVisibilityHandle() {
31
+ return this.#visibilityHandle ??= { close: () => this.core.close() };
32
+ }
33
+ #payloadSnapshot() {
34
+ return this.#snapshot ?? this.core.state.current;
35
+ }
36
+ connectedCallback() {
37
+ super.connectedCallback();
38
+ if (this.destroyed) return;
39
+ this.#snapshot = this.core.state.current;
40
+ this.#disconnect = new AbortController();
41
+ this.core.state.subscribe(() => this.requestUpdate(), { signal: this.#disconnect.signal });
42
+ this.transition.state.subscribe(() => this.requestUpdate(), { signal: this.#disconnect.signal });
43
+ this.hidden = true;
44
+ this.#reconnect();
45
+ }
46
+ disconnectedCallback() {
47
+ super.disconnectedCallback();
48
+ this.#inputActionUnsubscribe?.();
49
+ this.#visibilityUnsubscribe?.();
50
+ this.#inputActionUnsubscribe = null;
51
+ this.#visibilityUnsubscribe = null;
52
+ this.#disconnect?.abort();
53
+ this.#disconnect = null;
54
+ }
55
+ destroyCallback() {
56
+ this.#inputActionUnsubscribe?.();
57
+ this.#visibilityUnsubscribe?.();
58
+ this.core.destroy();
59
+ this.transition.destroy();
60
+ this.liveIndicator.remove();
61
+ super.destroyCallback();
62
+ }
63
+ willUpdate(changed) {
64
+ super.willUpdate(changed);
65
+ this.syncCoreProps();
66
+ }
67
+ update(changed) {
68
+ super.update(changed);
69
+ this.#syncTransition();
70
+ const currentState = this.core.state.current;
71
+ const transitionState = this.transition.state.current;
72
+ if (!isIndicatorPresent(currentState, transitionState)) {
73
+ this.liveIndicator.remove();
74
+ return;
75
+ }
76
+ const state = getRenderedIndicatorState(currentState, this.#payloadSnapshot(), transitionState);
77
+ this.liveIndicator.render(state);
78
+ }
79
+ #syncTransition() {
80
+ const currentState = this.core.state.current;
81
+ if (currentState.open) {
82
+ this.#snapshot = currentState;
83
+ if (this.#lastGeneration !== currentState.generation) {
84
+ this.#lastGeneration = currentState.generation;
85
+ this.transition.open();
86
+ }
87
+ return;
88
+ }
89
+ const { active, status } = this.transition.state.current;
90
+ if (active && status !== "ending") this.transition.close(this.liveIndicator.element);
91
+ }
92
+ #reconnect() {
93
+ this.#inputActionUnsubscribe?.();
94
+ this.#visibilityUnsubscribe?.();
95
+ this.#inputActionUnsubscribe = null;
96
+ this.#visibilityUnsubscribe = null;
97
+ const container = this.container.value?.container;
98
+ if (!container) return;
99
+ const visibility = getIndicatorVisibilityCoordinator(container);
100
+ const visibilityHandle = this.#getVisibilityHandle();
101
+ this.#visibilityUnsubscribe = visibility.register(visibilityHandle);
102
+ this.#inputActionUnsubscribe = subscribeToInputActions(container, (event) => {
103
+ if (this.core.processEvent(event, getMediaSnapshot(this.player.value))) visibility.show(visibilityHandle);
104
+ });
105
+ }
106
+ };
107
+ //#endregion
108
+ export { InputIndicatorElement };
109
+
110
+ //# sourceMappingURL=input-indicator-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-indicator-element.js","names":["#reconnect","#visibilityHandle","#snapshot","#disconnect","#inputActionUnsubscribe","#visibilityUnsubscribe","#syncTransition","#payloadSnapshot","#lastGeneration","#getVisibilityHandle"],"sources":["../../../../src/ui/input-indicators/input-indicator-element.ts"],"sourcesContent":["import {\n getRenderedIndicatorState,\n type IndicatorLifecycleState,\n type IndicatorVisibilityHandle,\n type InputActionEvent,\n isIndicatorPresent,\n type MediaSnapshot,\n} from '@videojs/core';\nimport {\n getIndicatorVisibilityCoordinator,\n getMediaSnapshot,\n subscribeToInputActions,\n type TransitionApi,\n} from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport type { State as StoreState } from '@videojs/store';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport type { LiveIndicator } from './live-indicator';\n\n/** Shared imperative API for status / volume / seek indicator cores. */\nexport interface InputIndicatorCoreApi<IndicatorState extends IndicatorLifecycleState> {\n readonly state: StoreState<IndicatorState>;\n destroy(): void;\n close(): void;\n processEvent(event: InputActionEvent, snapshot: MediaSnapshot): boolean;\n}\n\nexport abstract class InputIndicatorElement<IndicatorState extends IndicatorLifecycleState> extends MediaElement {\n protected abstract get core(): InputIndicatorCoreApi<IndicatorState>;\n protected abstract get transition(): TransitionApi;\n protected abstract get liveIndicator(): LiveIndicator<IndicatorState>;\n\n protected abstract syncCoreProps(): void;\n\n protected readonly player = new PlayerController(this, playerContext);\n protected readonly container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.#reconnect(),\n subscribe: true,\n });\n\n #disconnect: AbortController | null = null;\n #inputActionUnsubscribe: (() => void) | null = null;\n #visibilityUnsubscribe: (() => void) | null = null;\n #visibilityHandle: IndicatorVisibilityHandle | null = null;\n #lastGeneration = 0;\n #snapshot: IndicatorState | null = null;\n\n #getVisibilityHandle(): IndicatorVisibilityHandle {\n return (this.#visibilityHandle ??= { close: () => this.core.close() });\n }\n\n #payloadSnapshot(): IndicatorState {\n return this.#snapshot ?? this.core.state.current;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#snapshot = this.core.state.current;\n\n this.#disconnect = new AbortController();\n this.core.state.subscribe(() => this.requestUpdate(), { signal: this.#disconnect.signal });\n this.transition.state.subscribe(() => this.requestUpdate(), { signal: this.#disconnect.signal });\n this.hidden = true;\n this.#reconnect();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#inputActionUnsubscribe?.();\n this.#visibilityUnsubscribe?.();\n this.#inputActionUnsubscribe = null;\n this.#visibilityUnsubscribe = null;\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#inputActionUnsubscribe?.();\n this.#visibilityUnsubscribe?.();\n this.core.destroy();\n this.transition.destroy();\n this.liveIndicator.remove();\n super.destroyCallback();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.syncCoreProps();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n this.#syncTransition();\n\n const currentState = this.core.state.current;\n const transitionState = this.transition.state.current;\n const present = isIndicatorPresent(currentState, transitionState);\n\n if (!present) {\n this.liveIndicator.remove();\n return;\n }\n\n const state = getRenderedIndicatorState(currentState, this.#payloadSnapshot(), transitionState);\n this.liveIndicator.render(state);\n }\n\n #syncTransition(): void {\n const currentState = this.core.state.current;\n\n if (currentState.open) {\n this.#snapshot = currentState;\n if (this.#lastGeneration !== currentState.generation) {\n this.#lastGeneration = currentState.generation;\n void this.transition.open();\n }\n return;\n }\n\n const { active, status } = this.transition.state.current;\n if (active && status !== 'ending') {\n void this.transition.close(this.liveIndicator.element);\n }\n }\n\n #reconnect(): void {\n this.#inputActionUnsubscribe?.();\n this.#visibilityUnsubscribe?.();\n this.#inputActionUnsubscribe = null;\n this.#visibilityUnsubscribe = null;\n\n const container = this.container.value?.container;\n if (!container) return;\n\n const visibility = getIndicatorVisibilityCoordinator(container);\n const visibilityHandle = this.#getVisibilityHandle();\n this.#visibilityUnsubscribe = visibility.register(visibilityHandle);\n\n this.#inputActionUnsubscribe = subscribeToInputActions(container, (event) => {\n if (this.core.processEvent(event, getMediaSnapshot(this.player.value))) {\n visibility.show(visibilityHandle);\n }\n });\n }\n}\n"],"mappings":";;;;;;;AA+BA,IAAsB,wBAAtB,cAAoG,aAAa;;;gBAOnF,IAAI,iBAAiB,MAAM,cAAc;mBACtC,IAAI,gBAAgB,MAAM;GACvD,SAAS;GACT,gBAAgB,MAAA,WAAiB;GACjC,WAAW;GACZ,CAAC;qBAEoC;iCACS;gCACD;2BACQ;yBACpC;mBACiB;;CALnC;CACA;CACA;CACA;CACA;CACA;CAEA,uBAAkD;AAChD,SAAQ,MAAA,qBAA2B,EAAE,aAAa,KAAK,KAAK,OAAO,EAAE;;CAGvE,mBAAmC;AACjC,SAAO,MAAA,YAAkB,KAAK,KAAK,MAAM;;CAG3C,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,MAAI,KAAK,UAAW;AAEpB,QAAA,WAAiB,KAAK,KAAK,MAAM;AAEjC,QAAA,aAAmB,IAAI,iBAAiB;AACxC,OAAK,KAAK,MAAM,gBAAgB,KAAK,eAAe,EAAE,EAAE,QAAQ,MAAA,WAAiB,QAAQ,CAAC;AAC1F,OAAK,WAAW,MAAM,gBAAgB,KAAK,eAAe,EAAE,EAAE,QAAQ,MAAA,WAAiB,QAAQ,CAAC;AAChG,OAAK,SAAS;AACd,QAAA,WAAiB;;CAGnB,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,0BAAgC;AAChC,QAAA,yBAA+B;AAC/B,QAAA,yBAA+B;AAC/B,QAAA,wBAA8B;AAC9B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;;CAGrB,kBAAiC;AAC/B,QAAA,0BAAgC;AAChC,QAAA,yBAA+B;AAC/B,OAAK,KAAK,SAAS;AACnB,OAAK,WAAW,SAAS;AACzB,OAAK,cAAc,QAAQ;AAC3B,QAAM,iBAAiB;;CAGzB,WAA8B,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,OAAK,eAAe;;CAGtB,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;AACrB,QAAA,gBAAsB;EAEtB,MAAM,eAAe,KAAK,KAAK,MAAM;EACrC,MAAM,kBAAkB,KAAK,WAAW,MAAM;AAG9C,MAAI,CAFY,mBAAmB,cAAc,gBAAgB,EAEnD;AACZ,QAAK,cAAc,QAAQ;AAC3B;;EAGF,MAAM,QAAQ,0BAA0B,cAAc,MAAA,iBAAuB,EAAE,gBAAgB;AAC/F,OAAK,cAAc,OAAO,MAAM;;CAGlC,kBAAwB;EACtB,MAAM,eAAe,KAAK,KAAK,MAAM;AAErC,MAAI,aAAa,MAAM;AACrB,SAAA,WAAiB;AACjB,OAAI,MAAA,mBAAyB,aAAa,YAAY;AACpD,UAAA,iBAAuB,aAAa;AAC/B,SAAK,WAAW,MAAM;;AAE7B;;EAGF,MAAM,EAAE,QAAQ,WAAW,KAAK,WAAW,MAAM;AACjD,MAAI,UAAU,WAAW,SAClB,MAAK,WAAW,MAAM,KAAK,cAAc,QAAQ;;CAI1D,aAAmB;AACjB,QAAA,0BAAgC;AAChC,QAAA,yBAA+B;AAC/B,QAAA,yBAA+B;AAC/B,QAAA,wBAA8B;EAE9B,MAAM,YAAY,KAAK,UAAU,OAAO;AACxC,MAAI,CAAC,UAAW;EAEhB,MAAM,aAAa,kCAAkC,UAAU;EAC/D,MAAM,mBAAmB,MAAA,qBAA2B;AACpD,QAAA,wBAA8B,WAAW,SAAS,iBAAiB;AAEnE,QAAA,yBAA+B,wBAAwB,YAAY,UAAU;AAC3E,OAAI,KAAK,KAAK,aAAa,OAAO,iBAAiB,KAAK,OAAO,MAAM,CAAC,CACpE,YAAW,KAAK,iBAAiB;IAEnC"}
@@ -0,0 +1,18 @@
1
+ import { StateAttrMap } from "@videojs/core";
2
+
3
+ //#region src/ui/input-indicators/live-indicator.d.ts
4
+ interface LiveIndicatorOptions<State extends object> {
5
+ host: HTMLElement;
6
+ dataAttrs: StateAttrMap<State>;
7
+ render: (element: HTMLElement, state: State) => void;
8
+ }
9
+ declare class LiveIndicator<State extends object> {
10
+ #private;
11
+ constructor(options: LiveIndicatorOptions<State>);
12
+ get element(): HTMLElement;
13
+ render(state: State): HTMLElement;
14
+ remove(): void;
15
+ }
16
+ //#endregion
17
+ export { LiveIndicator };
18
+ //# sourceMappingURL=live-indicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-indicator.d.ts","names":[],"sources":["../../../../src/ui/input-indicators/live-indicator.ts"],"mappings":";;;UAGiB,oBAAA;EACf,IAAA,EAAM,WAAA;EACN,SAAA,EAAW,YAAA,CAAa,KAAA;EACxB,MAAA,GAAS,OAAA,EAAS,WAAA,EAAa,KAAA,EAAO,KAAA;AAAA;AAAA,cAG3B,aAAA;EAAA;EAKX,WAAA,CAAY,OAAA,EAAS,oBAAA,CAAqB,KAAA;EAAA,IAMtC,OAAA,CAAA,GAAW,WAAA;EAIf,MAAA,CAAO,KAAA,EAAO,KAAA,GAAQ,WAAA;EAQtB,MAAA,CAAA;AAAA"}
@@ -0,0 +1,32 @@
1
+ import { applyStateDataAttrs } from "@videojs/core/dom";
2
+ //#region src/ui/input-indicators/live-indicator.ts
3
+ var LiveIndicator = class {
4
+ #host;
5
+ #dataAttrs;
6
+ #render;
7
+ constructor(options) {
8
+ this.#host = options.host;
9
+ this.#dataAttrs = options.dataAttrs;
10
+ this.#render = options.render;
11
+ }
12
+ get element() {
13
+ return this.#host;
14
+ }
15
+ render(state) {
16
+ this.#host.hidden = false;
17
+ applyStateDataAttrs(this.#host, state, this.#dataAttrs);
18
+ this.#render(this.#host, state);
19
+ return this.#host;
20
+ }
21
+ remove() {
22
+ this.#host.hidden = true;
23
+ for (const key in this.#dataAttrs) {
24
+ const name = this.#dataAttrs[key];
25
+ if (name) this.#host.removeAttribute(name);
26
+ }
27
+ }
28
+ };
29
+ //#endregion
30
+ export { LiveIndicator };
31
+
32
+ //# sourceMappingURL=live-indicator.js.map