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

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 (498) hide show
  1. package/cdn/{abort-C9UiBdVU.js → abort-0nUH9HXc.js} +1 -1
  2. package/cdn/{abort-C9UiBdVU.js.map → abort-0nUH9HXc.js.map} +1 -1
  3. package/cdn/{abort-DsTff8mS.js → abort-DQxwCs92.js} +1 -1
  4. package/cdn/{abort-DsTff8mS.js.map → abort-DQxwCs92.js.map} +1 -1
  5. package/cdn/audio-minimal-ui.dev.js +1 -4
  6. package/cdn/audio-minimal-ui.js +1 -1
  7. package/cdn/audio-minimal.dev.js +5 -7
  8. package/cdn/audio-minimal.dev.js.map +1 -1
  9. package/cdn/audio-minimal.js +1 -1
  10. package/cdn/audio-minimal.js.map +1 -1
  11. package/cdn/audio-ui.dev.js +1 -4
  12. package/cdn/audio-ui.js +1 -1
  13. package/cdn/audio.dev.js +5 -7
  14. package/cdn/audio.dev.js.map +1 -1
  15. package/cdn/audio.js +1 -1
  16. package/cdn/audio.js.map +1 -1
  17. package/cdn/background.dev.js +3 -3
  18. package/cdn/background.js +1 -1
  19. package/cdn/background.js.map +1 -1
  20. package/cdn/{compounds-CM_NP-ej.js → compounds-BHHGcL_P.js} +148 -63
  21. package/cdn/compounds-BHHGcL_P.js.map +1 -0
  22. package/cdn/compounds-DJyzXLOB.js +8 -0
  23. package/cdn/compounds-DJyzXLOB.js.map +1 -0
  24. package/cdn/{create-player-Bi6WUwDZ.js → create-player-B-gVAMdr.js} +183 -94
  25. package/cdn/create-player-B-gVAMdr.js.map +1 -0
  26. package/cdn/create-player-C5ui1T2i.js +7 -0
  27. package/cdn/create-player-C5ui1T2i.js.map +1 -0
  28. package/cdn/default-Djy9PEXm.js +2 -0
  29. package/cdn/default-Djy9PEXm.js.map +1 -0
  30. package/cdn/{default-XHZAb7gP.js → default-YzaLyoYg.js} +3 -1
  31. package/cdn/default-YzaLyoYg.js.map +1 -0
  32. package/cdn/hls-DEP0AzDp.js +41 -0
  33. package/cdn/hls-DEP0AzDp.js.map +1 -0
  34. package/cdn/{hls-BotloEPN.js → hls-DR-Xxpxv.js} +163 -23
  35. package/cdn/hls-DR-Xxpxv.js.map +1 -0
  36. package/cdn/hotkey-element-BvI78DTc.js +2 -0
  37. package/cdn/{hotkey-element-DRGCbVj9.js.map → hotkey-element-BvI78DTc.js.map} +1 -1
  38. package/cdn/{hotkey-element-317kwVH5.js → hotkey-element-oEdY8YLl.js} +24 -18
  39. package/cdn/{hotkey-element-317kwVH5.js.map → hotkey-element-oEdY8YLl.js.map} +1 -1
  40. package/cdn/live-video-minimal.dev.d.ts +1 -0
  41. package/cdn/live-video-minimal.dev.js +115 -0
  42. package/cdn/live-video-minimal.dev.js.map +1 -0
  43. package/cdn/live-video-minimal.js +2 -0
  44. package/cdn/live-video-minimal.js.map +1 -0
  45. package/cdn/live-video.dev.d.ts +1 -0
  46. package/cdn/live-video.dev.js +130 -0
  47. package/cdn/live-video.dev.js.map +1 -0
  48. package/cdn/live-video.js +2 -0
  49. package/cdn/live-video.js.map +1 -0
  50. package/cdn/media/dash-video.dev.js +8 -7
  51. package/cdn/media/dash-video.dev.js.map +1 -1
  52. package/cdn/media/dash-video.js +6 -6
  53. package/cdn/media/dash-video.js.map +1 -1
  54. package/cdn/media/hls-video.dev.js +4 -4
  55. package/cdn/media/hls-video.js +1 -1
  56. package/cdn/media/hls-video.js.map +1 -1
  57. package/cdn/media/mux-audio.dev.js +8 -6
  58. package/cdn/media/mux-audio.dev.js.map +1 -1
  59. package/cdn/media/mux-audio.js +1 -1
  60. package/cdn/media/mux-audio.js.map +1 -1
  61. package/cdn/media/mux-video.dev.js +8 -6
  62. package/cdn/media/mux-video.dev.js.map +1 -1
  63. package/cdn/media/mux-video.js +1 -1
  64. package/cdn/media/mux-video.js.map +1 -1
  65. package/cdn/media/native-hls-video.dev.js +4 -4
  66. package/cdn/media/native-hls-video.js +1 -1
  67. package/cdn/media/native-hls-video.js.map +1 -1
  68. package/cdn/media/simple-hls-video.dev.js +11 -5
  69. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  70. package/cdn/media/simple-hls-video.js +6 -6
  71. package/cdn/media/simple-hls-video.js.map +1 -1
  72. package/cdn/media-attach-mixin-DuquRhAk.js +2 -0
  73. package/cdn/{media-attach-mixin-C2wz0Qbd.js.map → media-attach-mixin-DuquRhAk.js.map} +1 -1
  74. package/cdn/{media-attach-mixin-CYoNe7Sh.js → media-attach-mixin-pV8deGiO.js} +2 -2
  75. package/cdn/{media-attach-mixin-CYoNe7Sh.js.map → media-attach-mixin-pV8deGiO.js.map} +1 -1
  76. package/cdn/{minimal-BnDnlwbj.js → minimal-CciG7Fsu.js} +3 -1
  77. package/cdn/minimal-CciG7Fsu.js.map +1 -0
  78. package/cdn/minimal-DSLrhnDm.js +2 -0
  79. package/cdn/minimal-DSLrhnDm.js.map +1 -0
  80. package/cdn/{minimal-ui-cy2oEbFm.js → minimal-ui-Bx-_SggT.js} +6 -5
  81. package/cdn/minimal-ui-Bx-_SggT.js.map +1 -0
  82. package/cdn/minimal-ui-CFO4ssL8.js +2 -0
  83. package/cdn/{minimal-ui-CroDYUGf.js.map → minimal-ui-CFO4ssL8.js.map} +1 -1
  84. package/cdn/minimal-ui-D6Pvbx1R.js +2 -0
  85. package/cdn/minimal-ui-D6Pvbx1R.js.map +1 -0
  86. package/cdn/{minimal-ui-DhxN21v5.js → minimal-ui-Dl-8ZL53.js} +5 -5
  87. package/cdn/{minimal-ui-DhxN21v5.js.map → minimal-ui-Dl-8ZL53.js.map} +1 -1
  88. package/cdn/{mux-B5K6kOzg.js → mux-D5M5HL6A.js} +753 -7
  89. package/cdn/mux-D5M5HL6A.js.map +1 -0
  90. package/cdn/mux-DH3Kxyot.js +27 -0
  91. package/cdn/mux-DH3Kxyot.js.map +1 -0
  92. package/cdn/native-hls-DN_aWn2z.js +2 -0
  93. package/cdn/native-hls-DN_aWn2z.js.map +1 -0
  94. package/cdn/native-hls-ak4v9DN6.js +371 -0
  95. package/cdn/native-hls-ak4v9DN6.js.map +1 -0
  96. package/cdn/player-BKKCelEs.js +2 -0
  97. package/cdn/player-BKKCelEs.js.map +1 -0
  98. package/cdn/{player-CatrGW7l.js → player-C_6YjMl7.js} +93 -8
  99. package/cdn/player-C_6YjMl7.js.map +1 -0
  100. package/cdn/player-CtegNw3g.js +2 -0
  101. package/cdn/{player-BK35-ndY.js.map → player-CtegNw3g.js.map} +1 -1
  102. package/cdn/{player-xstFHOgW.js → player-D468sScc.js} +3 -3
  103. package/cdn/{player-xstFHOgW.js.map → player-D468sScc.js.map} +1 -1
  104. package/cdn/{context-0rI_P6jf.js → predicate-BOcV_HDG.js} +23 -2
  105. package/cdn/predicate-BOcV_HDG.js.map +1 -0
  106. package/cdn/{context-CEFisYD0.js → predicate-Cad5WV4q.js} +2 -2
  107. package/cdn/predicate-Cad5WV4q.js.map +1 -0
  108. package/cdn/{shallow-equal-xh6Wj-hj.js → shallow-equal-D-fthE54.js} +1 -1
  109. package/cdn/{shallow-equal-xh6Wj-hj.js.map → shallow-equal-D-fthE54.js.map} +1 -1
  110. package/cdn/{shallow-equal-Daj3-_LC.js → shallow-equal-DSpD9PMp.js} +1 -1
  111. package/cdn/{shallow-equal-Daj3-_LC.js.map → shallow-equal-DSpD9PMp.js.map} +1 -1
  112. package/cdn/{skin-element-CDUkmCtS.js → skin-element-BcbrkgGs.js} +2 -2
  113. package/cdn/{skin-element-CDUkmCtS.js.map → skin-element-BcbrkgGs.js.map} +1 -1
  114. package/cdn/{skin-element-BGP23sop.js → skin-element-DesLkJKs.js} +2 -2
  115. package/cdn/{skin-element-BGP23sop.js.map → skin-element-DesLkJKs.js.map} +1 -1
  116. package/cdn/types-B_4Es-UH.js +20 -0
  117. package/cdn/types-B_4Es-UH.js.map +1 -0
  118. package/cdn/types-DRezN4yy.js +2 -0
  119. package/cdn/types-DRezN4yy.js.map +1 -0
  120. package/cdn/{ui-Em9rF9Ah.js → ui-CzxKbsyb.js} +7 -6
  121. package/cdn/ui-CzxKbsyb.js.map +1 -0
  122. package/cdn/ui-D6DV-Emw.js +2 -0
  123. package/cdn/{ui-QHwo6iyo.js.map → ui-D6DV-Emw.js.map} +1 -1
  124. package/cdn/ui-Dw-n2AMs.js +2 -0
  125. package/cdn/ui-Dw-n2AMs.js.map +1 -0
  126. package/cdn/{ui-AFHQtrqa.js → ui-S_eLj4ur.js} +6 -6
  127. package/cdn/{ui-AFHQtrqa.js.map → ui-S_eLj4ur.js.map} +1 -1
  128. package/cdn/{video-host-ycP7ckxU.js → video-host-BR_2vUZH.js} +82 -39
  129. package/cdn/video-host-BR_2vUZH.js.map +1 -0
  130. package/cdn/video-host-Bkh2OyyP.js +47 -0
  131. package/cdn/video-host-Bkh2OyyP.js.map +1 -0
  132. package/cdn/video-minimal-ui.dev.js +1 -4
  133. package/cdn/video-minimal-ui.js +1 -1
  134. package/cdn/video-minimal.dev.js +11 -7
  135. package/cdn/video-minimal.dev.js.map +1 -1
  136. package/cdn/video-minimal.js +1 -1
  137. package/cdn/video-minimal.js.map +1 -1
  138. package/cdn/video-ui.dev.js +1 -4
  139. package/cdn/video-ui.js +1 -1
  140. package/cdn/video.dev.js +11 -7
  141. package/cdn/video.dev.js.map +1 -1
  142. package/cdn/video.js +1 -1
  143. package/cdn/video.js.map +1 -1
  144. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  145. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  146. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  147. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  148. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  149. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  150. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  151. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  152. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  153. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  154. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  155. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  156. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  157. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  158. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  159. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  160. package/dist/default/define/audio/minimal-skin.css +2 -1
  161. package/dist/default/define/audio/skin.css +2 -1
  162. package/dist/default/define/background/skin.js +1 -1
  163. package/dist/default/define/live-audio/minimal-skin.css +779 -0
  164. package/dist/default/define/live-audio/minimal-skin.js +26 -0
  165. package/dist/default/define/live-audio/minimal-skin.js.map +1 -0
  166. package/dist/default/define/live-audio/minimal-skin.tailwind.js +29 -0
  167. package/dist/default/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  168. package/dist/default/define/live-audio/skin.css +795 -0
  169. package/dist/default/define/live-audio/skin.js +26 -0
  170. package/dist/default/define/live-audio/skin.js.map +1 -0
  171. package/dist/default/define/live-audio/skin.tailwind.js +28 -0
  172. package/dist/default/define/live-audio/skin.tailwind.js.map +1 -0
  173. package/dist/default/define/live-video/minimal-skin.css +1170 -0
  174. package/dist/default/define/live-video/minimal-skin.js +26 -0
  175. package/dist/default/define/live-video/minimal-skin.js.map +1 -0
  176. package/dist/default/define/live-video/minimal-skin.tailwind.js +30 -0
  177. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -0
  178. package/dist/default/define/live-video/skin.css +1160 -0
  179. package/dist/default/define/live-video/skin.js +26 -0
  180. package/dist/default/define/live-video/skin.js.map +1 -0
  181. package/dist/default/define/live-video/skin.tailwind.js +29 -0
  182. package/dist/default/define/live-video/skin.tailwind.js.map +1 -0
  183. package/dist/default/define/skin-element.js +1 -1
  184. package/dist/default/define/ui/cast-button.js +7 -0
  185. package/dist/default/define/ui/cast-button.js.map +1 -0
  186. package/dist/default/define/video/minimal-skin.css +8 -1
  187. package/dist/default/define/video/minimal-skin.js +1 -1
  188. package/dist/default/define/video/minimal-skin.js.map +1 -1
  189. package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
  190. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  191. package/dist/default/define/video/minimal-ui.js +2 -0
  192. package/dist/default/define/video/minimal-ui.js.map +1 -1
  193. package/dist/default/define/video/skin.css +8 -1
  194. package/dist/default/define/video/skin.js +1 -1
  195. package/dist/default/define/video/skin.js.map +1 -1
  196. package/dist/default/define/video/skin.tailwind.js +1 -1
  197. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  198. package/dist/default/define/video/ui.js +2 -0
  199. package/dist/default/define/video/ui.js.map +1 -1
  200. package/dist/default/icons/dist/render/default/index.js +2 -0
  201. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  202. package/dist/default/icons/dist/render/minimal/index.js +2 -0
  203. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  204. package/dist/default/index.js +3 -1
  205. package/dist/default/media/mux-audio/index.js +4 -1
  206. package/dist/default/media/mux-audio/index.js.map +1 -1
  207. package/dist/default/media/mux-video/index.js +4 -1
  208. package/dist/default/media/mux-video/index.js.map +1 -1
  209. package/dist/default/presets/live-audio.js +6 -0
  210. package/dist/default/presets/live-video.js +6 -0
  211. package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
  212. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  213. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  214. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  215. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +5 -0
  216. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  217. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  218. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  219. package/dist/default/ui/alert-dialog/alert-dialog-element.js +12 -6
  220. package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  221. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  222. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  223. package/dist/default/ui/cast-button/cast-button-element.js +24 -0
  224. package/dist/default/ui/cast-button/cast-button-element.js.map +1 -0
  225. package/dist/default/ui/error-dialog/error-dialog-element.js +4 -1
  226. package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -1
  227. package/dist/default/ui/gesture/gesture-element.js +10 -7
  228. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  229. package/dist/default/ui/hotkey/hotkey-element.js +10 -7
  230. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  231. package/dist/default/ui/media-button-element.js +4 -2
  232. package/dist/default/ui/media-button-element.js.map +1 -1
  233. package/dist/default/ui/popover/popover-element.js +14 -7
  234. package/dist/default/ui/popover/popover-element.js.map +1 -1
  235. package/dist/default/ui/slider/slider-element.js +8 -4
  236. package/dist/default/ui/slider/slider-element.js.map +1 -1
  237. package/dist/default/ui/slider/slider-preview-element.js +9 -6
  238. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  239. package/dist/default/ui/slider/slider-value-element.js +5 -4
  240. package/dist/default/ui/slider/slider-value-element.js.map +1 -1
  241. package/dist/default/ui/thumbnail/thumbnail-element.js +10 -5
  242. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
  243. package/dist/default/ui/time/time-element.js +8 -4
  244. package/dist/default/ui/time/time-element.js.map +1 -1
  245. package/dist/default/ui/time-slider/time-slider-element.js +12 -6
  246. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  247. package/dist/default/ui/tooltip/tooltip-element.js +16 -8
  248. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  249. package/dist/default/ui/tooltip/tooltip-group-element.js +7 -5
  250. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  251. package/dist/default/ui/volume-slider/volume-slider-element.js +10 -5
  252. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  253. package/dist/dev/_virtual/_rolldown/runtime.js +27 -0
  254. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  255. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  256. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  257. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  258. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  259. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  260. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  261. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  262. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  263. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  264. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  265. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  266. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  267. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  268. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  269. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  270. package/dist/dev/define/audio/minimal-skin.css +2 -1
  271. package/dist/dev/define/audio/minimal-skin.d.ts +2 -2
  272. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  273. package/dist/dev/define/audio/player.d.ts +2 -2
  274. package/dist/dev/define/audio/skin.css +2 -1
  275. package/dist/dev/define/audio/skin.d.ts +2 -2
  276. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  277. package/dist/dev/define/background/player.d.ts +2 -2
  278. package/dist/dev/define/background/skin.d.ts.map +1 -1
  279. package/dist/dev/define/background/skin.js +1 -1
  280. package/dist/dev/define/live-audio/minimal-skin.css +779 -0
  281. package/dist/dev/define/live-audio/minimal-skin.d.ts +17 -0
  282. package/dist/dev/define/live-audio/minimal-skin.d.ts.map +1 -0
  283. package/dist/dev/define/live-audio/minimal-skin.js +76 -0
  284. package/dist/dev/define/live-audio/minimal-skin.js.map +1 -0
  285. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts +14 -0
  286. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
  287. package/dist/dev/define/live-audio/minimal-skin.tailwind.js +79 -0
  288. package/dist/dev/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  289. package/dist/dev/define/live-audio/skin.css +795 -0
  290. package/dist/dev/define/live-audio/skin.d.ts +17 -0
  291. package/dist/dev/define/live-audio/skin.d.ts.map +1 -0
  292. package/dist/dev/define/live-audio/skin.js +83 -0
  293. package/dist/dev/define/live-audio/skin.js.map +1 -0
  294. package/dist/dev/define/live-audio/skin.tailwind.d.ts +14 -0
  295. package/dist/dev/define/live-audio/skin.tailwind.d.ts.map +1 -0
  296. package/dist/dev/define/live-audio/skin.tailwind.js +78 -0
  297. package/dist/dev/define/live-audio/skin.tailwind.js.map +1 -0
  298. package/dist/dev/define/live-video/minimal-skin.css +1170 -0
  299. package/dist/dev/define/live-video/minimal-skin.d.ts +17 -0
  300. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -0
  301. package/dist/dev/define/live-video/minimal-skin.js +112 -0
  302. package/dist/dev/define/live-video/minimal-skin.js.map +1 -0
  303. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts +14 -0
  304. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -0
  305. package/dist/dev/define/live-video/minimal-skin.tailwind.js +110 -0
  306. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -0
  307. package/dist/dev/define/live-video/skin.css +1160 -0
  308. package/dist/dev/define/live-video/skin.d.ts +17 -0
  309. package/dist/dev/define/live-video/skin.d.ts.map +1 -0
  310. package/dist/dev/define/live-video/skin.js +127 -0
  311. package/dist/dev/define/live-video/skin.js.map +1 -0
  312. package/dist/dev/define/live-video/skin.tailwind.d.ts +14 -0
  313. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -0
  314. package/dist/dev/define/live-video/skin.tailwind.js +111 -0
  315. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -0
  316. package/dist/dev/define/skin-element.d.ts +1 -1
  317. package/dist/dev/define/skin-element.d.ts.map +1 -1
  318. package/dist/dev/define/skin-element.js +1 -1
  319. package/dist/dev/define/ui/cast-button.d.ts +9 -0
  320. package/dist/dev/define/ui/cast-button.d.ts.map +1 -0
  321. package/dist/dev/define/ui/cast-button.js +7 -0
  322. package/dist/dev/define/ui/cast-button.js.map +1 -0
  323. package/dist/dev/define/video/minimal-skin.css +8 -1
  324. package/dist/dev/define/video/minimal-skin.d.ts +2 -2
  325. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  326. package/dist/dev/define/video/minimal-skin.js +6 -0
  327. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  328. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  329. package/dist/dev/define/video/minimal-skin.tailwind.js +5 -0
  330. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  331. package/dist/dev/define/video/minimal-ui.js +2 -0
  332. package/dist/dev/define/video/minimal-ui.js.map +1 -1
  333. package/dist/dev/define/video/player.d.ts +2 -2
  334. package/dist/dev/define/video/skin.css +8 -1
  335. package/dist/dev/define/video/skin.d.ts +2 -2
  336. package/dist/dev/define/video/skin.d.ts.map +1 -1
  337. package/dist/dev/define/video/skin.js +6 -0
  338. package/dist/dev/define/video/skin.js.map +1 -1
  339. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  340. package/dist/dev/define/video/skin.tailwind.js +5 -0
  341. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  342. package/dist/dev/define/video/ui.js +2 -0
  343. package/dist/dev/define/video/ui.js.map +1 -1
  344. package/dist/dev/icons/dist/render/default/index.js +2 -0
  345. package/dist/dev/icons/dist/render/default/index.js.map +1 -1
  346. package/dist/dev/icons/dist/render/minimal/index.js +2 -0
  347. package/dist/dev/icons/dist/render/minimal/index.js.map +1 -1
  348. package/dist/dev/index.d.ts +13 -3
  349. package/dist/dev/index.d.ts.map +1 -0
  350. package/dist/dev/index.js +3 -1
  351. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  352. package/dist/dev/media/container-element.d.ts +2 -2
  353. package/dist/dev/media/dash-video/index.d.ts +2 -2
  354. package/dist/dev/media/hls-video/index.d.ts +2 -2
  355. package/dist/dev/media/mux-audio/index.d.ts +2 -2
  356. package/dist/dev/media/mux-audio/index.js +4 -1
  357. package/dist/dev/media/mux-audio/index.js.map +1 -1
  358. package/dist/dev/media/mux-video/index.d.ts +2 -2
  359. package/dist/dev/media/mux-video/index.js +4 -1
  360. package/dist/dev/media/mux-video/index.js.map +1 -1
  361. package/dist/dev/media/native-hls-video/index.d.ts +2 -2
  362. package/dist/dev/media/simple-hls-video/index.d.ts +2 -2
  363. package/dist/dev/player/context.d.ts +1 -1
  364. package/dist/dev/player/player-controller.d.ts +1 -1
  365. package/dist/dev/player/player-controller.d.ts.map +1 -1
  366. package/dist/dev/presets/live-audio.d.ts +6 -0
  367. package/dist/dev/presets/live-audio.js +6 -0
  368. package/dist/dev/presets/live-video.d.ts +6 -0
  369. package/dist/dev/presets/live-video.js +6 -0
  370. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
  371. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  372. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  373. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  374. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +5 -0
  375. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  376. package/dist/dev/store/container-mixin.d.ts +1 -1
  377. package/dist/dev/store/provider-mixin.d.ts +1 -1
  378. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.d.ts.map +1 -1
  379. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  380. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  381. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.d.ts +2 -2
  382. package/dist/dev/ui/alert-dialog/alert-dialog-element.d.ts.map +1 -1
  383. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +12 -6
  384. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  385. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.d.ts +2 -2
  386. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -1
  387. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  388. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  389. package/dist/dev/ui/captions-button/captions-button-element.d.ts +4 -4
  390. package/dist/dev/ui/captions-button/captions-button-element.d.ts.map +1 -1
  391. package/dist/dev/ui/cast-button/cast-button-element.d.ts +19 -0
  392. package/dist/dev/ui/cast-button/cast-button-element.d.ts.map +1 -0
  393. package/dist/dev/ui/cast-button/cast-button-element.js +24 -0
  394. package/dist/dev/ui/cast-button/cast-button-element.js.map +1 -0
  395. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -1
  396. package/dist/dev/ui/error-dialog/error-dialog-element.js +4 -1
  397. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -1
  398. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +4 -4
  399. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  400. package/dist/dev/ui/gesture/gesture-element.js +10 -7
  401. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  402. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts.map +1 -1
  403. package/dist/dev/ui/hotkey/hotkey-element.js +10 -7
  404. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  405. package/dist/dev/ui/media-button-element.d.ts +1 -1
  406. package/dist/dev/ui/media-button-element.js +4 -2
  407. package/dist/dev/ui/media-button-element.js.map +1 -1
  408. package/dist/dev/ui/media-element.d.ts +2 -2
  409. package/dist/dev/ui/mute-button/mute-button-element.d.ts +4 -4
  410. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  411. package/dist/dev/ui/pip-button/pip-button-element.d.ts +4 -4
  412. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  413. package/dist/dev/ui/play-button/play-button-element.d.ts +5 -5
  414. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  415. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +3 -3
  416. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  417. package/dist/dev/ui/popover/popover-element.d.ts +3 -3
  418. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  419. package/dist/dev/ui/popover/popover-element.js +14 -7
  420. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  421. package/dist/dev/ui/poster/poster-element.d.ts +4 -4
  422. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  423. package/dist/dev/ui/seek-button/seek-button-element.d.ts +4 -4
  424. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -1
  425. package/dist/dev/ui/slider/slider-element.d.ts +2 -2
  426. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -1
  427. package/dist/dev/ui/slider/slider-element.js +8 -4
  428. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  429. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
  430. package/dist/dev/ui/slider/slider-preview-element.js +9 -6
  431. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  432. package/dist/dev/ui/slider/slider-value-element.d.ts.map +1 -1
  433. package/dist/dev/ui/slider/slider-value-element.js +5 -4
  434. package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
  435. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts.map +1 -1
  436. package/dist/dev/ui/thumbnail/thumbnail-element.js +10 -5
  437. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
  438. package/dist/dev/ui/time/time-element.d.ts +2 -2
  439. package/dist/dev/ui/time/time-element.d.ts.map +1 -1
  440. package/dist/dev/ui/time/time-element.js +8 -4
  441. package/dist/dev/ui/time/time-element.js.map +1 -1
  442. package/dist/dev/ui/time-slider/time-slider-element.d.ts +2 -2
  443. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -1
  444. package/dist/dev/ui/time-slider/time-slider-element.js +12 -6
  445. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  446. package/dist/dev/ui/tooltip/tooltip-element.d.ts +3 -3
  447. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  448. package/dist/dev/ui/tooltip/tooltip-element.js +16 -8
  449. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  450. package/dist/dev/ui/tooltip/tooltip-group-element.d.ts.map +1 -1
  451. package/dist/dev/ui/tooltip/tooltip-group-element.js +7 -5
  452. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  453. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +2 -2
  454. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
  455. package/dist/dev/ui/volume-slider/volume-slider-element.js +10 -5
  456. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  457. package/package.json +31 -10
  458. package/cdn/compounds-CM_NP-ej.js.map +0 -1
  459. package/cdn/compounds-Vvz-YfXP.js +0 -8
  460. package/cdn/compounds-Vvz-YfXP.js.map +0 -1
  461. package/cdn/context-0rI_P6jf.js.map +0 -1
  462. package/cdn/context-CEFisYD0.js.map +0 -1
  463. package/cdn/create-player-Bi6WUwDZ.js.map +0 -1
  464. package/cdn/create-player-CKuX8YI5.js +0 -7
  465. package/cdn/create-player-CKuX8YI5.js.map +0 -1
  466. package/cdn/default-C8KsZ0zK.js +0 -2
  467. package/cdn/default-C8KsZ0zK.js.map +0 -1
  468. package/cdn/default-XHZAb7gP.js.map +0 -1
  469. package/cdn/hls-BotloEPN.js.map +0 -1
  470. package/cdn/hls-CBpGTZXU.js +0 -41
  471. package/cdn/hls-CBpGTZXU.js.map +0 -1
  472. package/cdn/hotkey-element-DRGCbVj9.js +0 -2
  473. package/cdn/media-attach-mixin-C2wz0Qbd.js +0 -2
  474. package/cdn/minimal-BnDnlwbj.js.map +0 -1
  475. package/cdn/minimal-CqBxBoLe.js +0 -2
  476. package/cdn/minimal-CqBxBoLe.js.map +0 -1
  477. package/cdn/minimal-ui-C_G24FML.js +0 -2
  478. package/cdn/minimal-ui-C_G24FML.js.map +0 -1
  479. package/cdn/minimal-ui-CroDYUGf.js +0 -2
  480. package/cdn/minimal-ui-cy2oEbFm.js.map +0 -1
  481. package/cdn/mux-B5K6kOzg.js.map +0 -1
  482. package/cdn/mux-DJhfbcCw.js +0 -25
  483. package/cdn/mux-DJhfbcCw.js.map +0 -1
  484. package/cdn/native-hls-CU2F7L5C.js +0 -123
  485. package/cdn/native-hls-CU2F7L5C.js.map +0 -1
  486. package/cdn/native-hls-DKcYYWRt.js +0 -2
  487. package/cdn/native-hls-DKcYYWRt.js.map +0 -1
  488. package/cdn/player-BK35-ndY.js +0 -2
  489. package/cdn/player-C7ajkBi4.js +0 -2
  490. package/cdn/player-C7ajkBi4.js.map +0 -1
  491. package/cdn/player-CatrGW7l.js.map +0 -1
  492. package/cdn/ui-B7vt9mp-.js +0 -2
  493. package/cdn/ui-B7vt9mp-.js.map +0 -1
  494. package/cdn/ui-Em9rF9Ah.js.map +0 -1
  495. package/cdn/ui-QHwo6iyo.js +0 -2
  496. package/cdn/video-host-CPRJVRi3.js +0 -47
  497. package/cdn/video-host-CPRJVRi3.js.map +0 -1
  498. package/cdn/video-host-ycP7ckxU.js.map +0 -1
@@ -13,6 +13,13 @@ var GestureElement = class extends MediaElement {
13
13
  this.pointer = void 0;
14
14
  this.region = void 0;
15
15
  this.disabled = false;
16
+ this.#player = new PlayerController(this, playerContext);
17
+ this.#container = new ContextConsumer(this, {
18
+ context: containerContext,
19
+ callback: () => this.requestUpdate(),
20
+ subscribe: true
21
+ });
22
+ this.#cleanup = null;
16
23
  }
17
24
  static {
18
25
  this.tagName = "media-gesture";
@@ -27,13 +34,9 @@ var GestureElement = class extends MediaElement {
27
34
  disabled: { type: Boolean }
28
35
  };
29
36
  }
30
- #player = new PlayerController(this, playerContext);
31
- #container = new ContextConsumer(this, {
32
- context: containerContext,
33
- callback: () => this.requestUpdate(),
34
- subscribe: true
35
- });
36
- #cleanup = null;
37
+ #player;
38
+ #container;
39
+ #cleanup;
37
40
  connectedCallback() {
38
41
  super.connectedCallback();
39
42
  this.style.display = "none";
@@ -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;;;iBAhBe;;;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,UAAmB,IAAI,iBAAiB,MAAM,cAAc;CAC5D,aAAsB,IAAI,gBAAgB,MAAM;EAC9C,SAAS;EACT,gBAAgB,KAAK,eAAe;EACpC,WAAW;EACZ,CAAC;CACF,WAAgC;CAEhC,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 };\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 +1 @@
1
- {"version":3,"file":"aria-key-shortcuts-controller.d.ts","names":[],"sources":["../../../../src/ui/hotkey/aria-key-shortcuts-controller.ts"],"mappings":";;;;;cASa,0BAAA,YAAsC,kBAAA;EAAA;cAIrC,IAAA,EAAM,oBAAA,EAAsB,MAAA;EAAA,IAMpC,KAAA,CAAA;EAMJ,aAAA,CAAA;EACA,gBAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"aria-key-shortcuts-controller.d.ts","names":[],"sources":["../../../../src/ui/hotkey/aria-key-shortcuts-controller.ts"],"mappings":";;;;;cASa,0BAAA,YAAsC,kBAAA;EAAA;EAIjD,WAAA,CAAY,IAAA,EAAM,oBAAA,EAAsB,MAAA;EAAA,IAMpC,KAAA,CAAA;EAMJ,aAAA,CAAA;EACA,gBAAA,CAAA;AAAA"}
@@ -12,6 +12,13 @@ var HotkeyElement = class extends MediaElement {
12
12
  this.value = void 0;
13
13
  this.disabled = false;
14
14
  this.target = "player";
15
+ this.#player = new PlayerController(this, playerContext);
16
+ this.#container = new ContextConsumer(this, {
17
+ context: containerContext,
18
+ callback: () => this.requestUpdate(),
19
+ subscribe: true
20
+ });
21
+ this.#cleanup = null;
15
22
  }
16
23
  static {
17
24
  this.tagName = "media-hotkey";
@@ -25,13 +32,9 @@ var HotkeyElement = class extends MediaElement {
25
32
  target: { type: String }
26
33
  };
27
34
  }
28
- #player = new PlayerController(this, playerContext);
29
- #container = new ContextConsumer(this, {
30
- context: containerContext,
31
- callback: () => this.requestUpdate(),
32
- subscribe: true
33
- });
34
- #cleanup = null;
35
+ #player;
36
+ #container;
37
+ #cleanup;
35
38
  connectedCallback() {
36
39
  super.connectedCallback();
37
40
  this.style.display = "none";
@@ -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;;;iBAdN;;;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,UAAmB,IAAI,iBAAiB,MAAM,cAAc;CAC5D,aAAsB,IAAI,gBAAgB,MAAM;EAC9C,SAAS;EACT,gBAAgB,KAAK,eAAe;EACpC,WAAW;EACZ,CAAC;CACF,WAAgC;CAEhC,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 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,7 +1,7 @@
1
1
  import { MediaElement } from "./media-element.js";
2
2
  import { PlayerController } from "../player/player-controller.js";
3
- import { State } from "@videojs/store";
4
3
  import { PropertyDeclarationMap, PropertyValues } from "@videojs/element";
4
+ import { State } from "@videojs/store";
5
5
  import { ButtonState, InferComponentState, InferMediaState, MediaButtonComponent, StateAttrMap } from "@videojs/core";
6
6
 
7
7
  //#region src/ui/media-button-element.d.ts
@@ -9,6 +9,8 @@ var MediaButtonElement = class extends MediaElement {
9
9
  this.disabled = false;
10
10
  this.label = "";
11
11
  this.hotkeyAction = void 0;
12
+ this.#disconnect = null;
13
+ this.#hotkeyRegistry = null;
12
14
  }
13
15
  static {
14
16
  this.properties = {
@@ -19,8 +21,8 @@ var MediaButtonElement = class extends MediaElement {
19
21
  get $state() {
20
22
  return this.core.state;
21
23
  }
22
- #disconnect = null;
23
- #hotkeyRegistry = null;
24
+ #disconnect;
25
+ #hotkeyRegistry;
24
26
  connectedCallback() {
25
27
  super.connectedCallback();
26
28
  if (this.destroyed) return;
@@ -1 +1 @@
1
- {"version":3,"file":"media-button-element.js","names":["#hotkeyRegistry","#disconnect"],"sources":["../../../src/ui/media-button-element.ts"],"sourcesContent":["import type {\n ButtonState,\n InferComponentState,\n InferMediaState,\n MediaButtonComponent,\n StateAttrMap,\n} from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport type { State } from '@videojs/store';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { AriaKeyShortcutsController } from './hotkey/aria-key-shortcuts-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that render a media-control button. */\nexport abstract class MediaButtonElement<Core extends MediaButtonComponent> extends MediaElement {\n static override properties: PropertyDeclarationMap = {\n label: { type: String },\n disabled: { type: Boolean },\n };\n\n disabled = false;\n label = '';\n\n protected abstract readonly core: Core;\n protected abstract readonly stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n protected abstract readonly mediaState: PlayerController<any, InferMediaState<Core> | undefined>;\n\n protected abstract activate(state: InferMediaState<Core>): void;\n\n /** Override to set the hotkey action name for `aria-keyshortcuts`. */\n protected readonly hotkeyAction: string | undefined = undefined;\n\n get $state(): State<ButtonState> {\n return this.core.state;\n }\n\n #disconnect: AbortController | null = null;\n #hotkeyRegistry: AriaKeyShortcutsController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n if (this.hotkeyAction && !this.#hotkeyRegistry) {\n this.#hotkeyRegistry = new AriaKeyShortcutsController(this, this.hotkeyAction);\n }\n\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.activate(this.mediaState.value!),\n isDisabled: () => this.disabled || !this.mediaState.value,\n });\n\n applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n /** Returns the button's current label derived from media state. */\n getLabel(): string | undefined {\n return this.core.state.current.label || undefined;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.core.setProps?.(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyElementProps(this, {\n ...this.core.getAttrs?.(state),\n 'aria-keyshortcuts': this.#hotkeyRegistry?.value,\n });\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAgBA,IAAsB,qBAAtB,cAAoF,aAAa;;;kBAMpF;eACH;sBAS8C,KAAA;;;oBAfD;GACnD,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAcD,IAAI,SAA6B;AAC/B,SAAO,KAAK,KAAK;;CAGnB,cAAsC;CACtC,kBAAqD;CAErD,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,MAAI,KAAK,UAAW;AAEpB,MAAI,KAAK,gBAAgB,CAAC,MAAA,eACxB,OAAA,iBAAuB,IAAI,2BAA2B,MAAM,KAAK,aAAa;AAGhF,QAAA,aAAmB,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,KAAK,SAAS,KAAK,WAAW,MAAO;GACvD,kBAAkB,KAAK,YAAY,CAAC,KAAK,WAAW;GACrD,CAAC;AAEF,oBAAkB,MAAM,aAAa,EAAE,QAAQ,MAAA,WAAiB,QAAQ,CAAC;AAEzE,MAAe,CAAC,KAAK,WAAW,SAAS,KAAK,WAAW,YACvD,mBAAkB,KAAK,WAAW,KAAK,WAAW,YAAY;;CAIlE,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;;;CAIrB,WAA+B;AAC7B,SAAO,KAAK,KAAK,MAAM,QAAQ,SAAS,KAAA;;CAG1C,WAA8B,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,OAAK,KAAK,WAAW,KAAK;;CAG5B,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,KAAK,WAAW;AAE9B,MAAI,CAAC,MAAO;AAEZ,OAAK,KAAK,SAAS,MAAM;EACzB,MAAM,QAAQ,KAAK,KAAK,UAAU;AAClC,oBAAkB,MAAM;GACtB,GAAG,KAAK,KAAK,WAAW,MAAM;GAC9B,qBAAqB,MAAA,gBAAsB;GAC5C,CAAC;AACF,sBAAoB,MAAM,OAAO,KAAK,aAAa"}
1
+ {"version":3,"file":"media-button-element.js","names":["#hotkeyRegistry","#disconnect"],"sources":["../../../src/ui/media-button-element.ts"],"sourcesContent":["import type {\n ButtonState,\n InferComponentState,\n InferMediaState,\n MediaButtonComponent,\n StateAttrMap,\n} from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport type { State } from '@videojs/store';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { AriaKeyShortcutsController } from './hotkey/aria-key-shortcuts-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that render a media-control button. */\nexport abstract class MediaButtonElement<Core extends MediaButtonComponent> extends MediaElement {\n static override properties: PropertyDeclarationMap = {\n label: { type: String },\n disabled: { type: Boolean },\n };\n\n disabled = false;\n label = '';\n\n protected abstract readonly core: Core;\n protected abstract readonly stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n protected abstract readonly mediaState: PlayerController<any, InferMediaState<Core> | undefined>;\n\n protected abstract activate(state: InferMediaState<Core>): void;\n\n /** Override to set the hotkey action name for `aria-keyshortcuts`. */\n protected readonly hotkeyAction: string | undefined = undefined;\n\n get $state(): State<ButtonState> {\n return this.core.state;\n }\n\n #disconnect: AbortController | null = null;\n #hotkeyRegistry: AriaKeyShortcutsController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n if (this.hotkeyAction && !this.#hotkeyRegistry) {\n this.#hotkeyRegistry = new AriaKeyShortcutsController(this, this.hotkeyAction);\n }\n\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.activate(this.mediaState.value!),\n isDisabled: () => this.disabled || !this.mediaState.value,\n });\n\n applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n /** Returns the button's current label derived from media state. */\n getLabel(): string | undefined {\n return this.core.state.current.label || undefined;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.core.setProps?.(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyElementProps(this, {\n ...this.core.getAttrs?.(state),\n 'aria-keyshortcuts': this.#hotkeyRegistry?.value,\n });\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAgBA,IAAsB,qBAAtB,cAAoF,aAAa;;;kBAMpF;eACH;sBAS8C,KAAA;qBAMhB;yBACe;;;oBAtBA;GACnD,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAcD,IAAI,SAA6B;AAC/B,SAAO,KAAK,KAAK;;CAGnB;CACA;CAEA,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,MAAI,KAAK,UAAW;AAEpB,MAAI,KAAK,gBAAgB,CAAC,MAAA,eACxB,OAAA,iBAAuB,IAAI,2BAA2B,MAAM,KAAK,aAAa;AAGhF,QAAA,aAAmB,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,KAAK,SAAS,KAAK,WAAW,MAAO;GACvD,kBAAkB,KAAK,YAAY,CAAC,KAAK,WAAW;GACrD,CAAC;AAEF,oBAAkB,MAAM,aAAa,EAAE,QAAQ,MAAA,WAAiB,QAAQ,CAAC;AAEzE,MAAe,CAAC,KAAK,WAAW,SAAS,KAAK,WAAW,YACvD,mBAAkB,KAAK,WAAW,KAAK,WAAW,YAAY;;CAIlE,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;;;CAIrB,WAA+B;AAC7B,SAAO,KAAK,KAAK,MAAM,QAAQ,SAAS,KAAA;;CAG1C,WAA8B,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,OAAK,KAAK,WAAW,KAAK;;CAG5B,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,KAAK,WAAW;AAE9B,MAAI,CAAC,MAAO;AAEZ,OAAK,KAAK,SAAS,MAAM;EACzB,MAAM,QAAQ,KAAK,KAAK,UAAU;AAClC,oBAAkB,MAAM;GACtB,GAAG,KAAK,KAAK,WAAW,MAAM;GAC9B,qBAAqB,MAAA,gBAAsB;GAC5C,CAAC;AACF,sBAAoB,MAAM,OAAO,KAAK,aAAa"}
@@ -1,9 +1,9 @@
1
- import * as _videojs_element0 from "@videojs/element";
1
+ import * as _$_videojs_element0 from "@videojs/element";
2
2
  import { ReactiveElement } from "@videojs/element";
3
3
  import { Constructor } from "@videojs/utils/types";
4
4
 
5
5
  //#region src/ui/media-element.d.ts
6
- declare const MediaElement_base: typeof ReactiveElement & (new (...args: any[]) => _videojs_element0.Destroyable);
6
+ declare const MediaElement_base: typeof ReactiveElement & (new (...args: any[]) => _$_videojs_element0.Destroyable);
7
7
  /** Base class for interactive media UI elements. */
8
8
  declare class MediaElement extends MediaElement_base {}
9
9
  interface MediaElementConstructor extends Constructor<MediaElement> {}
@@ -1,6 +1,6 @@
1
1
  import { PlayerController } from "../../player/player-controller.js";
2
2
  import { MediaButtonElement } from "../media-button-element.js";
3
- import * as _videojs_core_dom0 from "@videojs/core/dom";
3
+ import { index_d_exports } from "../../index.js";
4
4
  import { MediaVolumeState, MuteButtonCore } from "@videojs/core";
5
5
 
6
6
  //#region src/ui/mute-button/mute-button-element.d.ts
@@ -8,10 +8,10 @@ declare class MuteButtonElement extends MediaButtonElement<MuteButtonCore> {
8
8
  static readonly tagName = "media-mute-button";
9
9
  protected readonly core: MuteButtonCore;
10
10
  protected readonly stateAttrMap: {
11
- readonly muted: "data-muted";
12
- readonly volumeLevel: "data-volume-level";
11
+ readonly muted: 'data-muted';
12
+ readonly volumeLevel: 'data-volume-level';
13
13
  };
14
- protected readonly mediaState: PlayerController<_videojs_core_dom0.AnyPlayerStore, MediaVolumeState | undefined>;
14
+ protected readonly mediaState: PlayerController<index_d_exports.AnyPlayerStore, MediaVolumeState | undefined>;
15
15
  protected readonly hotkeyAction = "toggleMuted";
16
16
  protected activate(state: MediaVolumeState): void;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mute-button-element.d.ts","names":[],"sources":["../../../../src/ui/mute-button/mute-button-element.ts"],"mappings":";;;;;;cAOa,iBAAA,SAA0B,kBAAA,CAAmB,cAAA;EAAA,gBACxC,OAAA;EAAA,mBAEG,IAAA,EAAI,cAAA;EAAA,mBACJ,YAAA;IAAA;;;qBACA,UAAA,EAAU,gBAAA,CAFN,kBAAA,CAEM,cAAA,EAAA,gBAAA;EAAA,mBACD,YAAA;EAAA,UAElB,QAAA,CAAS,KAAA,EAAO,gBAAA;AAAA"}
1
+ {"version":3,"file":"mute-button-element.d.ts","names":[],"sources":["../../../../src/ui/mute-button/mute-button-element.ts"],"mappings":";;;;;;cAOa,iBAAA,SAA0B,kBAAA,CAAmB,cAAA;EAAA,gBACxC,OAAA;EAAA,mBAEG,IAAA,EAAI,cAAA;EAAA,mBACJ,YAAA;IAAA;;;qBACA,UAAA,EAAU,gBAAA,CAFN,eAAA,CAEM,cAAA,EAAA,gBAAA;EAAA,mBACD,YAAA;EAAA,UAElB,QAAA,CAAS,KAAA,EAAO,gBAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { PlayerController } from "../../player/player-controller.js";
2
2
  import { MediaButtonElement } from "../media-button-element.js";
3
- import * as _videojs_core_dom0 from "@videojs/core/dom";
3
+ import { index_d_exports } from "../../index.js";
4
4
  import { MediaPictureInPictureState, PiPButtonCore } from "@videojs/core";
5
5
 
6
6
  //#region src/ui/pip-button/pip-button-element.d.ts
@@ -8,10 +8,10 @@ declare class PiPButtonElement extends MediaButtonElement<PiPButtonCore> {
8
8
  static readonly tagName = "media-pip-button";
9
9
  protected readonly core: PiPButtonCore;
10
10
  protected readonly stateAttrMap: {
11
- readonly pip: "data-pip";
12
- readonly availability: "data-availability";
11
+ readonly pip: 'data-pip';
12
+ readonly availability: 'data-availability';
13
13
  };
14
- protected readonly mediaState: PlayerController<_videojs_core_dom0.AnyPlayerStore, MediaPictureInPictureState | undefined>;
14
+ protected readonly mediaState: PlayerController<index_d_exports.AnyPlayerStore, MediaPictureInPictureState | undefined>;
15
15
  protected readonly hotkeyAction = "togglePictureInPicture";
16
16
  protected activate(state: MediaPictureInPictureState): void;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pip-button-element.d.ts","names":[],"sources":["../../../../src/ui/pip-button/pip-button-element.ts"],"mappings":";;;;;;cAOa,gBAAA,SAAyB,kBAAA,CAAmB,aAAA;EAAA,gBACvC,OAAA;EAAA,mBAEG,IAAA,EAAI,aAAA;EAAA,mBACJ,YAAA;IAAA;;;qBACA,UAAA,EAAU,gBAAA,CAFN,kBAAA,CAEM,cAAA,EAAA,0BAAA;EAAA,mBACD,YAAA;EAAA,UAElB,QAAA,CAAS,KAAA,EAAO,0BAAA;AAAA"}
1
+ {"version":3,"file":"pip-button-element.d.ts","names":[],"sources":["../../../../src/ui/pip-button/pip-button-element.ts"],"mappings":";;;;;;cAOa,gBAAA,SAAyB,kBAAA,CAAmB,aAAA;EAAA,gBACvC,OAAA;EAAA,mBAEG,IAAA,EAAI,aAAA;EAAA,mBACJ,YAAA;IAAA;;;qBACA,UAAA,EAAU,gBAAA,CAFN,eAAA,CAEM,cAAA,EAAA,0BAAA;EAAA,mBACD,YAAA;EAAA,UAElB,QAAA,CAAS,KAAA,EAAO,0BAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { PlayerController } from "../../player/player-controller.js";
2
2
  import { MediaButtonElement } from "../media-button-element.js";
3
- import * as _videojs_core_dom0 from "@videojs/core/dom";
3
+ import { index_d_exports } from "../../index.js";
4
4
  import { MediaPlaybackState, PlayButtonCore } from "@videojs/core";
5
5
 
6
6
  //#region src/ui/play-button/play-button-element.d.ts
@@ -8,11 +8,11 @@ declare class PlayButtonElement extends MediaButtonElement<PlayButtonCore> {
8
8
  static readonly tagName = "media-play-button";
9
9
  protected readonly core: PlayButtonCore;
10
10
  protected readonly stateAttrMap: {
11
- readonly paused: "data-paused";
12
- readonly ended: "data-ended";
13
- readonly started: "data-started";
11
+ readonly paused: 'data-paused';
12
+ readonly ended: 'data-ended';
13
+ readonly started: 'data-started';
14
14
  };
15
- protected readonly mediaState: PlayerController<_videojs_core_dom0.AnyPlayerStore, MediaPlaybackState | undefined>;
15
+ protected readonly mediaState: PlayerController<index_d_exports.AnyPlayerStore, MediaPlaybackState | undefined>;
16
16
  protected readonly hotkeyAction = "togglePaused";
17
17
  protected activate(state: MediaPlaybackState): void;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"play-button-element.d.ts","names":[],"sources":["../../../../src/ui/play-button/play-button-element.ts"],"mappings":";;;;;;cAOa,iBAAA,SAA0B,kBAAA,CAAmB,cAAA;EAAA,gBACxC,OAAA;EAAA,mBAEG,IAAA,EAAI,cAAA;EAAA,mBACJ,YAAA;IAAA;;;;qBACA,UAAA,EAAU,gBAAA,CAFN,kBAAA,CAEM,cAAA,EAAA,kBAAA;EAAA,mBACD,YAAA;EAAA,UAElB,QAAA,CAAS,KAAA,EAAO,kBAAA;AAAA"}
1
+ {"version":3,"file":"play-button-element.d.ts","names":[],"sources":["../../../../src/ui/play-button/play-button-element.ts"],"mappings":";;;;;;cAOa,iBAAA,SAA0B,kBAAA,CAAmB,cAAA;EAAA,gBACxC,OAAA;EAAA,mBAEG,IAAA,EAAI,cAAA;EAAA,mBACJ,YAAA;IAAA;;;;qBACA,UAAA,EAAU,gBAAA,CAFN,eAAA,CAEM,cAAA,EAAA,kBAAA;EAAA,mBACD,YAAA;EAAA,UAElB,QAAA,CAAS,KAAA,EAAO,kBAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { PlayerController } from "../../player/player-controller.js";
2
2
  import { MediaButtonElement } from "../media-button-element.js";
3
- import * as _videojs_core_dom0 from "@videojs/core/dom";
3
+ import { index_d_exports } from "../../index.js";
4
4
  import { MediaPlaybackRateState, PlaybackRateButtonCore } from "@videojs/core";
5
5
 
6
6
  //#region src/ui/playback-rate-button/playback-rate-button-element.d.ts
@@ -8,9 +8,9 @@ declare class PlaybackRateButtonElement extends MediaButtonElement<PlaybackRateB
8
8
  static readonly tagName = "media-playback-rate-button";
9
9
  protected readonly core: PlaybackRateButtonCore;
10
10
  protected readonly stateAttrMap: {
11
- readonly rate: "data-rate";
11
+ readonly rate: 'data-rate';
12
12
  };
13
- protected readonly mediaState: PlayerController<_videojs_core_dom0.AnyPlayerStore, MediaPlaybackRateState | undefined>;
13
+ protected readonly mediaState: PlayerController<index_d_exports.AnyPlayerStore, MediaPlaybackRateState | undefined>;
14
14
  protected activate(state: MediaPlaybackRateState): void;
15
15
  }
16
16
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"playback-rate-button-element.d.ts","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button-element.ts"],"mappings":";;;;;;cAOa,yBAAA,SAAkC,kBAAA,CAAmB,sBAAA;EAAA,gBAChD,OAAA;EAAA,mBAEG,IAAA,EAAI,sBAAA;EAAA,mBACJ,YAAA;IAAA;;qBACA,UAAA,EAAU,gBAAA,CAFN,kBAAA,CAEM,cAAA,EAAA,sBAAA;EAAA,UAEnB,QAAA,CAAS,KAAA,EAAO,sBAAA;AAAA"}
1
+ {"version":3,"file":"playback-rate-button-element.d.ts","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button-element.ts"],"mappings":";;;;;;cAOa,yBAAA,SAAkC,kBAAA,CAAmB,sBAAA;EAAA,gBAChD,OAAA;EAAA,mBAEG,IAAA,EAAI,sBAAA;EAAA,mBACJ,YAAA;IAAA;;qBACA,UAAA,EAAU,gBAAA,CAFN,eAAA,CAEM,cAAA,EAAA,sBAAA;EAAA,UAEnB,QAAA,CAAS,KAAA,EAAO,sBAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { MediaElement } from "../media-element.js";
2
2
  import { PropertyValues } from "@videojs/element";
3
- import * as _videojs_core0 from "@videojs/core";
3
+ import * as _$_videojs_core0 from "@videojs/core";
4
4
  import { PopoverProps } from "@videojs/core";
5
5
 
6
6
  //#region src/ui/popover/popover-element.d.ts
@@ -46,8 +46,8 @@ declare class PopoverElement extends MediaElement {
46
46
  };
47
47
  open: boolean;
48
48
  defaultOpen: boolean;
49
- side: _videojs_core0.PopoverSide;
50
- align: _videojs_core0.PopoverAlign;
49
+ side: _$_videojs_core0.PopoverSide;
50
+ align: _$_videojs_core0.PopoverAlign;
51
51
  modal: PopoverProps['modal'];
52
52
  closeOnEscape: boolean;
53
53
  closeOnOutsideClick: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"popover-element.d.ts","names":[],"sources":["../../../../src/ui/popover/popover-element.ts"],"mappings":";;;;;;cAoBa,cAAA,SAAuB,YAAA;EAAA;kBAClB,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAahB,IAAA;EACA,WAAA;EACA,IAAA,iBAAI,WAAA;EACJ,KAAA,EADI,cAAA,CACC,YAAA;EACL,KAAA,EAAO,YAAA;EACP,aAAA;EACA,mBAAA;EACA,WAAA;EACA,KAAA;EACA,UAAA;EAYS,iBAAA,CAAA;EAAA,UAmCU,YAAA,CAAa,OAAA,EAAS,cAAA;EAUhC,oBAAA,CAAA;EAMA,eAAA,CAAA;EAAA,UAMU,UAAA,CAAW,OAAA,EAAS,cAAA;EAAA,UAiBpB,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
1
+ {"version":3,"file":"popover-element.d.ts","names":[],"sources":["../../../../src/ui/popover/popover-element.ts"],"mappings":";;;;;;cAoBa,cAAA,SAAuB,YAAA;EAAA;kBAClB,OAAA;EAAA,OAEA,UAAA;;MACN,IAAA,EAAI,kBAAA;IAAA;;MACG,IAAA,EAAI,kBAAA;MAAW,SAAA;IAAA;;MACtB,IAAA,EAAI,iBAAA;IAAA;;MACH,IAAA,EAAI,iBAAA;IAAA;;MACJ,IAAA,EAAI,kBAAA;IAAA;;MACI,IAAA,EAAI,kBAAA;MAAW,SAAA;IAAA;;MACT,IAAA,EAAI,kBAAA;MAAW,SAAA;IAAA;;MACvB,IAAA,EAAI,kBAAA;MAAW,SAAA;IAAA;;MACrB,IAAA,EAAI,iBAAA;IAAA;;MACC,IAAA,EAAI,iBAAA;MAAU,SAAA;IAAA;EAAA;EAG9B,IAAA;EACA,WAAA;EACA,IAAA,EALoB,gBAAA,CAKhB,WAAA;EACJ,KAAA,EADI,gBAAA,CACC,YAAA;EACL,KAAA,EAAO,YAAA;EACP,aAAA;EACA,mBAAA;EACA,WAAA;EACA,KAAA;EACA,UAAA;EAYS,iBAAA,CAAA;EAAA,UAmCU,YAAA,CAAa,OAAA,EAAS,cAAA;EAUhC,oBAAA,CAAA;EAMA,eAAA,CAAA;EAAA,UAMU,UAAA,CAAW,OAAA,EAAS,cAAA;EAAA,UAiBpB,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
@@ -18,6 +18,13 @@ var PopoverElement = class extends MediaElement {
18
18
  this.openOnHover = PopoverCore.defaultProps.openOnHover;
19
19
  this.delay = PopoverCore.defaultProps.delay;
20
20
  this.closeDelay = PopoverCore.defaultProps.closeDelay;
21
+ this.#core = new PopoverCore();
22
+ this.#position = new PositionController(this);
23
+ this.#popover = null;
24
+ this.#snapshot = null;
25
+ this.#disconnect = null;
26
+ this.#triggerAbort = null;
27
+ this.#currentTrigger = null;
21
28
  }
22
29
  static {
23
30
  this.tagName = "media-popover";
@@ -51,13 +58,13 @@ var PopoverElement = class extends MediaElement {
51
58
  }
52
59
  };
53
60
  }
54
- #core = new PopoverCore();
55
- #position = new PositionController(this);
56
- #popover = null;
57
- #snapshot = null;
58
- #disconnect = null;
59
- #triggerAbort = null;
60
- #currentTrigger = null;
61
+ #core;
62
+ #position;
63
+ #popover;
64
+ #snapshot;
65
+ #disconnect;
66
+ #triggerAbort;
67
+ #currentTrigger;
61
68
  connectedCallback() {
62
69
  super.connectedCallback();
63
70
  if (this.destroyed) return;
@@ -1 +1 @@
1
- {"version":3,"file":"popover-element.js","names":["#core","#position","#disconnect","#popover","#snapshot","#cleanupTrigger","#syncTrigger","#currentTrigger","#triggerAbort"],"sources":["../../../../src/ui/popover/popover-element.ts"],"sourcesContent":["import { PopoverCore, PopoverDataAttrs, type PopoverInput, type PopoverProps } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createPopover,\n createTransition,\n getAnchorNameStyle,\n getAnchorPositionStyle,\n getPopupPositionRect,\n type PopoverApi,\n type PopoverChangeDetails,\n resolveOffsets,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { SnapshotController } from '@videojs/store/html';\nimport { applyStyles, supportsAnchorPositioning, tryHidePopover, tryShowPopover } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { PositionController } from '../position-controller';\n\nexport class PopoverElement extends MediaElement {\n static readonly tagName = 'media-popover';\n\n static override properties = {\n open: { type: Boolean },\n defaultOpen: { type: Boolean, attribute: 'default-open' },\n side: { type: String },\n align: { type: String },\n modal: { type: Boolean },\n closeOnEscape: { type: Boolean, attribute: 'close-on-escape' },\n closeOnOutsideClick: { type: Boolean, attribute: 'close-on-outside-click' },\n openOnHover: { type: Boolean, attribute: 'open-on-hover' },\n delay: { type: Number },\n closeDelay: { type: Number, attribute: 'close-delay' },\n } satisfies PropertyDeclarationMap<keyof PopoverCore.Props>;\n\n open = PopoverCore.defaultProps.open;\n defaultOpen = PopoverCore.defaultProps.defaultOpen;\n side = PopoverCore.defaultProps.side;\n align = PopoverCore.defaultProps.align;\n modal: PopoverProps['modal'] = PopoverCore.defaultProps.modal;\n closeOnEscape = PopoverCore.defaultProps.closeOnEscape;\n closeOnOutsideClick = PopoverCore.defaultProps.closeOnOutsideClick;\n openOnHover = PopoverCore.defaultProps.openOnHover;\n delay = PopoverCore.defaultProps.delay;\n closeDelay = PopoverCore.defaultProps.closeDelay;\n\n readonly #core = new PopoverCore();\n readonly #position = new PositionController(this);\n #popover: PopoverApi | null = null;\n #snapshot: SnapshotController<PopoverInput> | null = null;\n\n // Cleanup controllers\n #disconnect: AbortController | null = null;\n #triggerAbort: AbortController | null = null;\n #currentTrigger: HTMLElement | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n\n this.#popover = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen, ...details } }));\n },\n closeOnEscape: () => this.closeOnEscape,\n closeOnOutsideClick: () => this.closeOnOutsideClick,\n openOnHover: () => this.openOnHover,\n delay: () => this.delay,\n closeDelay: () => this.closeDelay,\n });\n\n // Register self as the popup element — the element IS the popup.\n this.#popover.setPopupElement(this);\n\n // Apply popup event handlers (pointerenter/leave, focusout) to self.\n applyElementProps(this, this.#popover.popupProps, { signal: this.#disconnect.signal });\n\n // Subscribe to interaction state for reactive updates.\n // Reuse the controller across connect/disconnect cycles to avoid\n // leaking stale controllers in the host's controller set.\n if (this.#snapshot) {\n this.#snapshot.track(this.#popover.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#popover.input);\n }\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n\n // Uncontrolled mode: open if `defaultOpen` is set. Controlled `open`\n // is already synced by `willUpdate` on the first render cycle.\n if (this.defaultOpen && !this.open) {\n this.#popover?.open();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#cleanupTrigger();\n this.#popover?.destroy();\n super.destroyCallback();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n // Sync controlled open state\n if (this.#popover && changed.has('open')) {\n const { active: interactionOpen } = this.#popover.input.current;\n if (this.open !== interactionOpen) {\n if (this.open) {\n this.#popover.open();\n } else {\n this.#popover.close();\n }\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#popover) return;\n\n // Discover trigger via commandfor linkage.\n const triggerEl = this.#position.findTrigger();\n this.#syncTrigger(triggerEl);\n\n // Derive state from core + input.\n const input = this.#popover.input.current;\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n // Apply popup ARIA and data attributes to self.\n applyElementProps(this, this.#core.getPopupAttrs(state));\n applyStateDataAttrs(this, state, PopoverDataAttrs);\n\n // Show/hide via Popover API AFTER data attributes are applied so\n // `data-starting-style` is present before the first visible frame.\n if (state.open) {\n tryShowPopover(this);\n } else {\n tryHidePopover(this);\n }\n\n // Apply trigger ARIA and anchor-name to the discovered trigger.\n if (this.#currentTrigger) {\n applyElementProps(this.#currentTrigger, this.#core.getTriggerAttrs(state, this.id));\n applyStyles(this.#currentTrigger, getAnchorNameStyle(this.id));\n }\n\n // Skip positioning when closed — no rects to measure.\n if (!state.open) {\n this.#position.cleanup();\n return;\n }\n\n // Apply positioning styles to self.\n const posOpts = { side: state.side, align: state.align };\n\n if (supportsAnchorPositioning()) {\n // Native CSS Anchor Positioning — no JS rect measurements needed.\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts));\n } else {\n // JS fallback: measure rects and resolve CSS var offsets.\n const triggerRect = this.#currentTrigger?.getBoundingClientRect();\n const selfRect = getPopupPositionRect(this);\n const boundaryRect = document.documentElement.getBoundingClientRect();\n const offsets = resolveOffsets(this);\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts, triggerRect, selfRect, boundaryRect, offsets));\n }\n\n this.#position.sync(this.#currentTrigger);\n }\n\n // --- Trigger management ---\n\n #syncTrigger(triggerEl: HTMLElement | null): void {\n if (triggerEl === this.#currentTrigger) return;\n\n this.#position.cleanup();\n this.#cleanupTrigger();\n this.#currentTrigger = triggerEl;\n this.#popover?.setTriggerElement(triggerEl);\n\n if (triggerEl && this.#popover) {\n this.#triggerAbort = new AbortController();\n applyElementProps(triggerEl, this.#popover.triggerProps, { signal: this.#triggerAbort.signal });\n }\n }\n\n #cleanupTrigger(): void {\n if (this.#currentTrigger) {\n // Remove ARIA attributes and anchor-name style from the old trigger.\n applyElementProps(this.#currentTrigger, {\n 'aria-expanded': undefined,\n 'aria-haspopup': undefined,\n 'aria-controls': undefined,\n });\n this.#currentTrigger.style.removeProperty('anchor-name');\n }\n\n this.#triggerAbort?.abort();\n this.#triggerAbort = null;\n this.#currentTrigger = null;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"popover-element.js","names":["#core","#position","#disconnect","#popover","#snapshot","#cleanupTrigger","#syncTrigger","#currentTrigger","#triggerAbort"],"sources":["../../../../src/ui/popover/popover-element.ts"],"sourcesContent":["import { PopoverCore, PopoverDataAttrs, type PopoverInput, type PopoverProps } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createPopover,\n createTransition,\n getAnchorNameStyle,\n getAnchorPositionStyle,\n getPopupPositionRect,\n type PopoverApi,\n type PopoverChangeDetails,\n resolveOffsets,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { SnapshotController } from '@videojs/store/html';\nimport { applyStyles, supportsAnchorPositioning, tryHidePopover, tryShowPopover } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { PositionController } from '../position-controller';\n\nexport class PopoverElement extends MediaElement {\n static readonly tagName = 'media-popover';\n\n static override properties = {\n open: { type: Boolean },\n defaultOpen: { type: Boolean, attribute: 'default-open' },\n side: { type: String },\n align: { type: String },\n modal: { type: Boolean },\n closeOnEscape: { type: Boolean, attribute: 'close-on-escape' },\n closeOnOutsideClick: { type: Boolean, attribute: 'close-on-outside-click' },\n openOnHover: { type: Boolean, attribute: 'open-on-hover' },\n delay: { type: Number },\n closeDelay: { type: Number, attribute: 'close-delay' },\n } satisfies PropertyDeclarationMap<keyof PopoverCore.Props>;\n\n open = PopoverCore.defaultProps.open;\n defaultOpen = PopoverCore.defaultProps.defaultOpen;\n side = PopoverCore.defaultProps.side;\n align = PopoverCore.defaultProps.align;\n modal: PopoverProps['modal'] = PopoverCore.defaultProps.modal;\n closeOnEscape = PopoverCore.defaultProps.closeOnEscape;\n closeOnOutsideClick = PopoverCore.defaultProps.closeOnOutsideClick;\n openOnHover = PopoverCore.defaultProps.openOnHover;\n delay = PopoverCore.defaultProps.delay;\n closeDelay = PopoverCore.defaultProps.closeDelay;\n\n readonly #core = new PopoverCore();\n readonly #position = new PositionController(this);\n #popover: PopoverApi | null = null;\n #snapshot: SnapshotController<PopoverInput> | null = null;\n\n // Cleanup controllers\n #disconnect: AbortController | null = null;\n #triggerAbort: AbortController | null = null;\n #currentTrigger: HTMLElement | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n\n this.#popover = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen, ...details } }));\n },\n closeOnEscape: () => this.closeOnEscape,\n closeOnOutsideClick: () => this.closeOnOutsideClick,\n openOnHover: () => this.openOnHover,\n delay: () => this.delay,\n closeDelay: () => this.closeDelay,\n });\n\n // Register self as the popup element — the element IS the popup.\n this.#popover.setPopupElement(this);\n\n // Apply popup event handlers (pointerenter/leave, focusout) to self.\n applyElementProps(this, this.#popover.popupProps, { signal: this.#disconnect.signal });\n\n // Subscribe to interaction state for reactive updates.\n // Reuse the controller across connect/disconnect cycles to avoid\n // leaking stale controllers in the host's controller set.\n if (this.#snapshot) {\n this.#snapshot.track(this.#popover.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#popover.input);\n }\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n\n // Uncontrolled mode: open if `defaultOpen` is set. Controlled `open`\n // is already synced by `willUpdate` on the first render cycle.\n if (this.defaultOpen && !this.open) {\n this.#popover?.open();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#cleanupTrigger();\n this.#popover?.destroy();\n super.destroyCallback();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n // Sync controlled open state\n if (this.#popover && changed.has('open')) {\n const { active: interactionOpen } = this.#popover.input.current;\n if (this.open !== interactionOpen) {\n if (this.open) {\n this.#popover.open();\n } else {\n this.#popover.close();\n }\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#popover) return;\n\n // Discover trigger via commandfor linkage.\n const triggerEl = this.#position.findTrigger();\n this.#syncTrigger(triggerEl);\n\n // Derive state from core + input.\n const input = this.#popover.input.current;\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n // Apply popup ARIA and data attributes to self.\n applyElementProps(this, this.#core.getPopupAttrs(state));\n applyStateDataAttrs(this, state, PopoverDataAttrs);\n\n // Show/hide via Popover API AFTER data attributes are applied so\n // `data-starting-style` is present before the first visible frame.\n if (state.open) {\n tryShowPopover(this);\n } else {\n tryHidePopover(this);\n }\n\n // Apply trigger ARIA and anchor-name to the discovered trigger.\n if (this.#currentTrigger) {\n applyElementProps(this.#currentTrigger, this.#core.getTriggerAttrs(state, this.id));\n applyStyles(this.#currentTrigger, getAnchorNameStyle(this.id));\n }\n\n // Skip positioning when closed — no rects to measure.\n if (!state.open) {\n this.#position.cleanup();\n return;\n }\n\n // Apply positioning styles to self.\n const posOpts = { side: state.side, align: state.align };\n\n if (supportsAnchorPositioning()) {\n // Native CSS Anchor Positioning — no JS rect measurements needed.\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts));\n } else {\n // JS fallback: measure rects and resolve CSS var offsets.\n const triggerRect = this.#currentTrigger?.getBoundingClientRect();\n const selfRect = getPopupPositionRect(this);\n const boundaryRect = document.documentElement.getBoundingClientRect();\n const offsets = resolveOffsets(this);\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts, triggerRect, selfRect, boundaryRect, offsets));\n }\n\n this.#position.sync(this.#currentTrigger);\n }\n\n // --- Trigger management ---\n\n #syncTrigger(triggerEl: HTMLElement | null): void {\n if (triggerEl === this.#currentTrigger) return;\n\n this.#position.cleanup();\n this.#cleanupTrigger();\n this.#currentTrigger = triggerEl;\n this.#popover?.setTriggerElement(triggerEl);\n\n if (triggerEl && this.#popover) {\n this.#triggerAbort = new AbortController();\n applyElementProps(triggerEl, this.#popover.triggerProps, { signal: this.#triggerAbort.signal });\n }\n }\n\n #cleanupTrigger(): void {\n if (this.#currentTrigger) {\n // Remove ARIA attributes and anchor-name style from the old trigger.\n applyElementProps(this.#currentTrigger, {\n 'aria-expanded': undefined,\n 'aria-haspopup': undefined,\n 'aria-controls': undefined,\n });\n this.#currentTrigger.style.removeProperty('anchor-name');\n }\n\n this.#triggerAbort?.abort();\n this.#triggerAbort = null;\n this.#currentTrigger = null;\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { PlayerController } from "../../player/player-controller.js";
2
2
  import { MediaUIElement } from "../media-ui-element.js";
3
- import * as _videojs_core_dom0 from "@videojs/core/dom";
4
- import * as _videojs_core0 from "@videojs/core";
3
+ import { index_d_exports } from "../../index.js";
4
+ import * as _$_videojs_core0 from "@videojs/core";
5
5
  import { PosterCore } from "@videojs/core";
6
6
 
7
7
  //#region src/ui/poster/poster-element.d.ts
@@ -9,9 +9,9 @@ declare class PosterElement extends MediaUIElement<PosterCore> {
9
9
  static readonly tagName = "media-poster";
10
10
  protected readonly core: PosterCore;
11
11
  protected readonly stateAttrMap: {
12
- readonly visible: "data-visible";
12
+ readonly visible: 'data-visible';
13
13
  };
14
- protected readonly mediaState: PlayerController<_videojs_core_dom0.AnyPlayerStore, _videojs_core0.MediaPlaybackState | undefined>;
14
+ protected readonly mediaState: PlayerController<index_d_exports.AnyPlayerStore, _$_videojs_core0.MediaPlaybackState | undefined>;
15
15
  }
16
16
  //#endregion
17
17
  export { PosterElement };
@@ -1 +1 @@
1
- {"version":3,"file":"poster-element.d.ts","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"mappings":";;;;;;;cAOa,aAAA,SAAsB,cAAA,CAAe,UAAA;EAAA,gBAChC,OAAA;EAAA,mBAEG,IAAA,EAAI,UAAA;EAAA,mBACJ,YAAA;IAAA;;qBACA,UAAA,EAAU,gBAAA,CAFN,kBAAA,CAEM,cAAA,EAAA,cAAA,CAAA,kBAAA;AAAA"}
1
+ {"version":3,"file":"poster-element.d.ts","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"mappings":";;;;;;;cAOa,aAAA,SAAsB,cAAA,CAAe,UAAA;EAAA,gBAChC,OAAA;EAAA,mBAEG,IAAA,EAAI,UAAA;EAAA,mBACJ,YAAA;IAAA;;qBACA,UAAA,EAAU,gBAAA,CAFN,eAAA,CAEM,cAAA,EAAA,gBAAA,CAAA,kBAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { PlayerController } from "../../player/player-controller.js";
2
2
  import { MediaButtonElement } from "../media-button-element.js";
3
- import * as _videojs_core_dom0 from "@videojs/core/dom";
3
+ import { index_d_exports } from "../../index.js";
4
4
  import { PropertyDeclarationMap } from "@videojs/element";
5
5
  import { MediaTimeState, SeekButtonCore } from "@videojs/core";
6
6
 
@@ -11,10 +11,10 @@ declare class SeekButtonElement extends MediaButtonElement<SeekButtonCore> {
11
11
  seconds: number;
12
12
  protected readonly core: SeekButtonCore;
13
13
  protected readonly stateAttrMap: {
14
- readonly seeking: "data-seeking";
15
- readonly direction: "data-direction";
14
+ readonly seeking: 'data-seeking';
15
+ readonly direction: 'data-direction';
16
16
  };
17
- protected readonly mediaState: PlayerController<_videojs_core_dom0.AnyPlayerStore, MediaTimeState | undefined>;
17
+ protected readonly mediaState: PlayerController<index_d_exports.AnyPlayerStore, MediaTimeState | undefined>;
18
18
  protected activate(state: MediaTimeState): void;
19
19
  }
20
20
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"seek-button-element.d.ts","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"mappings":";;;;;;;cAQa,iBAAA,SAA0B,kBAAA,CAAmB,cAAA;EAAA,gBACxC,OAAA;EAAA,OAEA,UAAA,EAAY,sBAAA;EAK5B,OAAA;EAAA,mBAEmB,IAAA,EAAI,cAAA;EAAA,mBACJ,YAAA;IAAA;;;qBACA,UAAA,EAAU,gBAAA,CAFN,kBAAA,CAEM,cAAA,EAAA,cAAA;EAAA,UAEnB,QAAA,CAAS,KAAA,EAAO,cAAA;AAAA"}
1
+ {"version":3,"file":"seek-button-element.d.ts","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"mappings":";;;;;;;cAQa,iBAAA,SAA0B,kBAAA,CAAmB,cAAA;EAAA,gBACxC,OAAA;EAAA,OAEA,UAAA,EAAY,sBAAA;EAK5B,OAAA;EAAA,mBAEmB,IAAA,EAAI,cAAA;EAAA,mBACJ,YAAA;IAAA;;;qBACA,UAAA,EAAU,gBAAA,CAFN,eAAA,CAEM,cAAA,EAAA,cAAA;EAAA,UAEnB,QAAA,CAAS,KAAA,EAAO,cAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  import { MediaElement } from "../media-element.js";
2
2
  import { PropertyValues } from "@videojs/element";
3
- import * as _videojs_core0 from "@videojs/core";
3
+ import * as _$_videojs_core0 from "@videojs/core";
4
4
 
5
5
  //#region src/ui/slider/slider-element.d.ts
6
6
  declare class SliderElement extends MediaElement {
@@ -37,7 +37,7 @@ declare class SliderElement extends MediaElement {
37
37
  attribute: string;
38
38
  };
39
39
  };
40
- label: string | ((state: _videojs_core0.SliderState) => string);
40
+ label: string | ((state: _$_videojs_core0.SliderState) => string);
41
41
  value: number;
42
42
  min: number;
43
43
  max: number;
@@ -1 +1 @@
1
- {"version":3,"file":"slider-element.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-element.ts"],"mappings":";;;;;cAea,aAAA,SAAsB,YAAA;EAAA;kBACjB,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhB,KAAA,aAAK,KAAA,iBAAA,WAAA;EACL,KAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,SAAA;EACA,WAAA;EACA,QAAA;EACA,cAAA;EAQS,iBAAA,CAAA;EAuCA,oBAAA,CAAA;EAMA,eAAA,CAAA;EAAA,UAKU,UAAA,CAAW,QAAA,EAAU,cAAA;EAAA,UAKrB,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
1
+ {"version":3,"file":"slider-element.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-element.ts"],"mappings":";;;;;cAea,aAAA,SAAsB,YAAA;EAAA;kBACjB,OAAA;EAAA,OAEA,UAAA;;MACL,IAAA,EAAI,iBAAA;IAAA;;MACJ,IAAA,EAAI,iBAAA;IAAA;;MACN,IAAA,EAAI,iBAAA;IAAA;;MACJ,IAAA,EAAI,iBAAA;IAAA;;MACH,IAAA,EAAI,iBAAA;IAAA;;MACC,IAAA,EAAI,iBAAA;MAAU,SAAA;IAAA;;MACZ,IAAA,EAAI,iBAAA;IAAA;;MACP,IAAA,EAAI,kBAAA;IAAA;;MACE,IAAA,EAAI,iBAAA;MAAU,SAAA;IAAA;EAAA;EAGlC,KAAA,aAAK,KAAA,EAHmB,gBAAA,CAGnB,WAAA;EACL,KAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,SAAA;EACA,WAAA;EACA,QAAA;EACA,cAAA;EAQS,iBAAA,CAAA;EAuCA,oBAAA,CAAA;EAMA,eAAA,CAAA;EAAA,UAKU,UAAA,CAAW,QAAA,EAAU,cAAA;EAAA,UAKrB,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
@@ -17,6 +17,10 @@ var SliderElement = class extends MediaElement {
17
17
  this.orientation = SliderCore.defaultProps.orientation;
18
18
  this.disabled = SliderCore.defaultProps.disabled;
19
19
  this.thumbAlignment = SliderCore.defaultProps.thumbAlignment;
20
+ this.#core = new SliderCore();
21
+ this.#provider = new ContextProvider(this, { context: sliderContext });
22
+ this.#slider = null;
23
+ this.#disconnect = null;
20
24
  }
21
25
  static {
22
26
  this.tagName = "media-slider";
@@ -40,10 +44,10 @@ var SliderElement = class extends MediaElement {
40
44
  }
41
45
  };
42
46
  }
43
- #core = new SliderCore();
44
- #provider = new ContextProvider(this, { context: sliderContext });
45
- #slider = null;
46
- #disconnect = null;
47
+ #core;
48
+ #provider;
49
+ #slider;
50
+ #disconnect;
47
51
  connectedCallback() {
48
52
  super.connectedCallback();
49
53
  if (this.destroyed) return;
@@ -1 +1 @@
1
- {"version":3,"file":"slider-element.js","names":["#core","#provider","#disconnect","#slider"],"sources":["../../../../src/ui/slider/slider-element.ts"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getSliderCSSVars,\n type SliderApi,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderElement extends MediaElement {\n static readonly tagName = 'media-slider';\n\n static override properties = {\n label: { type: String },\n value: { type: Number },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<keyof SliderCore.Props>;\n\n label = SliderCore.defaultProps.label;\n value = SliderCore.defaultProps.value;\n min = SliderCore.defaultProps.min;\n max = SliderCore.defaultProps.max;\n step = SliderCore.defaultProps.step;\n largeStep = SliderCore.defaultProps.largeStep;\n orientation = SliderCore.defaultProps.orientation;\n disabled = SliderCore.defaultProps.disabled;\n thumbAlignment = SliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new SliderCore();\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled: () => this.disabled,\n getPercent: () => this.#core.percentFromValue(this.value),\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-change', { detail: { value: this.value }, bubbles: true }));\n },\n onValueCommit: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-commit', { detail: { value: this.value }, bubbles: true }));\n },\n onDragStart: () => {\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps(this);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#slider) return;\n\n this.#core.setInput(this.#slider.input.current);\n const state = this.#core.getSliderState(this.value);\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n\n applyStyles(this, cssVars);\n\n // Apply state data attributes to the root element.\n applyStateDataAttrs(this, state, SliderDataAttrs);\n\n // Provide context to child elements (thumb, value, track, etc.).\n this.#provider.setValue({\n state,\n stateAttrMap: SliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: this.#core.getAttrs(state),\n thumbProps: this.#slider.thumbProps,\n });\n }\n}\n"],"mappings":";;;;;;;AAeA,IAAa,gBAAb,cAAmC,aAAa;;;eAetC,WAAW,aAAa;eACxB,WAAW,aAAa;aAC1B,WAAW,aAAa;aACxB,WAAW,aAAa;cACvB,WAAW,aAAa;mBACnB,WAAW,aAAa;qBACtB,WAAW,aAAa;kBAC3B,WAAW,aAAa;wBAClB,WAAW,aAAa;;;iBAtBf;;;oBAEG;GAC3B,OAAO,EAAE,MAAM,QAAQ;GACvB,OAAO,EAAE,MAAM,QAAQ;GACvB,KAAK,EAAE,MAAM,QAAQ;GACrB,KAAK,EAAE,MAAM,QAAQ;GACrB,MAAM,EAAE,MAAM,QAAQ;GACtB,WAAW;IAAE,MAAM;IAAQ,WAAW;IAAc;GACpD,aAAa,EAAE,MAAM,QAAQ;GAC7B,UAAU,EAAE,MAAM,SAAS;GAC3B,gBAAgB;IAAE,MAAM;IAAQ,WAAW;IAAmB;GAC/D;;CAYD,QAAiB,IAAI,YAAY;CACjC,YAAqB,IAAI,gBAAgB,MAAM,EAAE,SAAS,eAAe,CAAC;CAE1E,UAA4B;CAC5B,cAAsC;CAEtC,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,MAAI,KAAK,UAAW;AAEpB,QAAA,aAAmB,IAAI,iBAAiB;EACxC,MAAM,SAAS,MAAA,WAAiB;AAEhC,QAAA,SAAe,aAAa;GAC1B,kBAAkB;GAClB,uBAAuB,KAAK,cAA2B,qBAAqB;GAC5E,sBAAsB,KAAK;GAC3B,aAAa,MAAM,KAAK;GACxB,kBAAkB,KAAK;GACvB,kBAAkB,MAAA,KAAW,iBAAiB,KAAK,MAAM;GACzD,sBAAsB,MAAA,KAAW,gBAAgB;GACjD,2BAA2B,MAAA,KAAW,qBAAqB;GAC3D,gBAAgB,YAAY;AAC1B,SAAK,QAAQ,MAAA,KAAW,iBAAiB,QAAQ;AACjD,SAAK,cAAc,IAAI,YAAY,gBAAgB;KAAE,QAAQ,EAAE,OAAO,KAAK,OAAO;KAAE,SAAS;KAAM,CAAC,CAAC;;GAEvG,gBAAgB,YAAY;AAC1B,SAAK,QAAQ,MAAA,KAAW,iBAAiB,QAAQ;AACjD,SAAK,cAAc,IAAI,YAAY,gBAAgB;KAAE,QAAQ,EAAE,OAAO,KAAK,OAAO;KAAE,SAAS;KAAM,CAAC,CAAC;;GAEvG,mBAAmB;AACjB,SAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,MAAM,CAAC,CAAC;;GAEtE,iBAAiB;AACf,SAAK,cAAc,IAAI,YAAY,YAAY,EAAE,SAAS,MAAM,CAAC,CAAC;;GAEpE,gBAAgB,KAAK,WAAW,cAAc,MAAA,KAAW,0BAA0B,KAAK,WAAW,UAAU;GAC7G,gBAAgB,KAAK,eAAe;GACrC,CAAC;AAEF,oBAAkB,MAAM,MAAA,OAAa,WAAW,EAAE,QAAQ,CAAC;AAC3D,cAAY,MAAM,MAAA,OAAa,UAAU;AACzC,QAAA,OAAa,MAAM,gBAAgB,KAAK,eAAe,EAAE,EAAE,QAAQ,CAAC;;CAGtE,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;;CAGrB,kBAAiC;AAC/B,QAAA,QAAc,SAAS;AACvB,QAAM,iBAAiB;;CAGzB,WAA8B,UAAgC;AAC5D,QAAM,WAAW,SAAS;AAC1B,QAAA,KAAW,SAAS,KAAK;;CAG3B,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;AACtB,MAAI,CAAC,MAAA,OAAc;AAEnB,QAAA,KAAW,SAAS,MAAA,OAAa,MAAM,QAAQ;EAC/C,MAAM,QAAQ,MAAA,KAAW,eAAe,KAAK,MAAM;EAEnD,MAAM,UAAU,iBAAiB,MAAA,OAAa,mBAAmB,MAAM,CAAC;AAExE,cAAY,MAAM,QAAQ;AAG1B,sBAAoB,MAAM,OAAO,gBAAgB;AAGjD,QAAA,SAAe,SAAS;GACtB;GACA,cAAc;GACd,cAAc,MAAA,KAAW,iBAAiB,MAAM,eAAe;GAC/D,YAAY,MAAA,KAAW,SAAS,MAAM;GACtC,YAAY,MAAA,OAAa;GAC1B,CAAC"}
1
+ {"version":3,"file":"slider-element.js","names":["#core","#provider","#disconnect","#slider"],"sources":["../../../../src/ui/slider/slider-element.ts"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getSliderCSSVars,\n type SliderApi,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderElement extends MediaElement {\n static readonly tagName = 'media-slider';\n\n static override properties = {\n label: { type: String },\n value: { type: Number },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<keyof SliderCore.Props>;\n\n label = SliderCore.defaultProps.label;\n value = SliderCore.defaultProps.value;\n min = SliderCore.defaultProps.min;\n max = SliderCore.defaultProps.max;\n step = SliderCore.defaultProps.step;\n largeStep = SliderCore.defaultProps.largeStep;\n orientation = SliderCore.defaultProps.orientation;\n disabled = SliderCore.defaultProps.disabled;\n thumbAlignment = SliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new SliderCore();\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled: () => this.disabled,\n getPercent: () => this.#core.percentFromValue(this.value),\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-change', { detail: { value: this.value }, bubbles: true }));\n },\n onValueCommit: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-commit', { detail: { value: this.value }, bubbles: true }));\n },\n onDragStart: () => {\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps(this);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#slider) return;\n\n this.#core.setInput(this.#slider.input.current);\n const state = this.#core.getSliderState(this.value);\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n\n applyStyles(this, cssVars);\n\n // Apply state data attributes to the root element.\n applyStateDataAttrs(this, state, SliderDataAttrs);\n\n // Provide context to child elements (thumb, value, track, etc.).\n this.#provider.setValue({\n state,\n stateAttrMap: SliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: this.#core.getAttrs(state),\n thumbProps: this.#slider.thumbProps,\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slider-preview-element.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-preview-element.ts"],"mappings":";;;;;cASa,oBAAA,SAA6B,YAAA;EAAA;kBACxB,OAAA;EAAA,OAEA,UAAA;;;;;EAIhB,QAAA,EAAU,qBAAA;EAUD,iBAAA,CAAA;EAWA,oBAAA,CAAA;EAAA,UAUU,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
1
+ {"version":3,"file":"slider-preview-element.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-preview-element.ts"],"mappings":";;;;;cASa,oBAAA,SAA6B,YAAA;EAAA;kBACxB,OAAA;EAAA,OAEA,UAAA;;MACF,IAAA,EAAI,iBAAA;IAAA;EAAA;EAGlB,QAAA,EAAU,qBAAA;EAUD,iBAAA,CAAA;EAWA,oBAAA,CAAA;EAAA,UAUU,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
@@ -8,6 +8,12 @@ var SliderPreviewElement = class extends MediaElement {
8
8
  constructor(..._args) {
9
9
  super(..._args);
10
10
  this.overflow = "clamp";
11
+ this.#ctx = new ContextConsumer(this, {
12
+ context: sliderContext,
13
+ subscribe: true
14
+ });
15
+ this.#resizeObserver = null;
16
+ this.#width = 0;
11
17
  }
12
18
  static {
13
19
  this.tagName = "media-slider-preview";
@@ -15,12 +21,9 @@ var SliderPreviewElement = class extends MediaElement {
15
21
  static {
16
22
  this.properties = { overflow: { type: String } };
17
23
  }
18
- #ctx = new ContextConsumer(this, {
19
- context: sliderContext,
20
- subscribe: true
21
- });
22
- #resizeObserver = null;
23
- #width = 0;
24
+ #ctx;
25
+ #resizeObserver;
26
+ #width;
24
27
  connectedCallback() {
25
28
  super.connectedCallback();
26
29
  this.#resizeObserver = new ResizeObserver(([entry]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"slider-preview-element.js","names":["#ctx","#resizeObserver","#width","#applyPosition"],"sources":["../../../../src/ui/slider/slider-preview-element.ts"],"sourcesContent":["import type { SliderPreviewOverflow } from '@videojs/core/dom';\nimport { applyStateDataAttrs, getSliderPreviewStyle } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderPreviewElement extends MediaElement {\n static readonly tagName = 'media-slider-preview';\n\n static override properties = {\n overflow: { type: String },\n } satisfies PropertyDeclarationMap<'overflow'>;\n\n overflow: SliderPreviewOverflow = 'clamp';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #resizeObserver: ResizeObserver | null = null;\n #width = 0;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#resizeObserver = new ResizeObserver(([entry]) => {\n this.#width = entry!.contentRect.width;\n this.#applyPosition();\n });\n\n this.#resizeObserver.observe(this);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = null;\n }\n\n #applyPosition(): void {\n applyStyles(this, getSliderPreviewStyle(this.#width, this.overflow));\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n\n this.#applyPosition();\n }\n}\n"],"mappings":";;;;;;AASA,IAAa,uBAAb,cAA0C,aAAa;;;kBAOnB;;;iBANR;;;oBAEG,EAC3B,UAAU,EAAE,MAAM,QAAQ,EAC3B;;CAID,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,kBAAyC;CACzC,SAAS;CAET,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,QAAA,iBAAuB,IAAI,gBAAgB,CAAC,WAAW;AACrD,SAAA,QAAc,MAAO,YAAY;AACjC,SAAA,eAAqB;IACrB;AAEF,QAAA,eAAqB,QAAQ,KAAK;;CAGpC,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,gBAAsB,YAAY;AAClC,QAAA,iBAAuB;;CAGzB,iBAAuB;AACrB,cAAY,MAAM,sBAAsB,MAAA,OAAa,KAAK,SAAS,CAAC;;CAGtE,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,IAAK,qBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa;AAE/D,QAAA,eAAqB"}
1
+ {"version":3,"file":"slider-preview-element.js","names":["#ctx","#resizeObserver","#width","#applyPosition"],"sources":["../../../../src/ui/slider/slider-preview-element.ts"],"sourcesContent":["import type { SliderPreviewOverflow } from '@videojs/core/dom';\nimport { applyStateDataAttrs, getSliderPreviewStyle } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderPreviewElement extends MediaElement {\n static readonly tagName = 'media-slider-preview';\n\n static override properties = {\n overflow: { type: String },\n } satisfies PropertyDeclarationMap<'overflow'>;\n\n overflow: SliderPreviewOverflow = 'clamp';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #resizeObserver: ResizeObserver | null = null;\n #width = 0;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#resizeObserver = new ResizeObserver(([entry]) => {\n this.#width = entry!.contentRect.width;\n this.#applyPosition();\n });\n\n this.#resizeObserver.observe(this);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = null;\n }\n\n #applyPosition(): void {\n applyStyles(this, getSliderPreviewStyle(this.#width, this.overflow));\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n\n this.#applyPosition();\n }\n}\n"],"mappings":";;;;;;AASA,IAAa,uBAAb,cAA0C,aAAa;;;kBAOnB;cAElB,IAAI,gBAAgB,MAAM;GACxC,SAAS;GACT,WAAW;GACZ,CAAC;yBAEuC;gBAChC;;;iBAdiB;;;oBAEG,EAC3B,UAAU,EAAE,MAAM,QAAQ,EAC3B;;CAID;CAKA;CACA;CAEA,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,QAAA,iBAAuB,IAAI,gBAAgB,CAAC,WAAW;AACrD,SAAA,QAAc,MAAO,YAAY;AACjC,SAAA,eAAqB;IACrB;AAEF,QAAA,eAAqB,QAAQ,KAAK;;CAGpC,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,gBAAsB,YAAY;AAClC,QAAA,iBAAuB;;CAGzB,iBAAuB;AACrB,cAAY,MAAM,sBAAsB,MAAA,OAAa,KAAK,SAAS,CAAC;;CAGtE,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,IAAK,qBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa;AAE/D,QAAA,eAAqB"}