@videojs/html 10.0.0-beta.22 → 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 (436) 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 +4 -6
  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-DD3MYkSc.js → compounds-BHHGcL_P.js} +146 -64
  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-BKLw7l1a.js → create-player-B-gVAMdr.js} +200 -175
  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/hls-DEP0AzDp.js +41 -0
  29. package/cdn/hls-DEP0AzDp.js.map +1 -0
  30. package/cdn/{hls-CcSAx_3I.js → hls-DR-Xxpxv.js} +161 -21
  31. package/cdn/hls-DR-Xxpxv.js.map +1 -0
  32. package/cdn/hotkey-element-BvI78DTc.js +2 -0
  33. package/cdn/{hotkey-element-DWWkfH3A.js.map → hotkey-element-BvI78DTc.js.map} +1 -1
  34. package/cdn/{hotkey-element-BONs_FyJ.js → hotkey-element-oEdY8YLl.js} +24 -18
  35. package/cdn/{hotkey-element-BONs_FyJ.js.map → hotkey-element-oEdY8YLl.js.map} +1 -1
  36. package/cdn/live-video-minimal.dev.d.ts +1 -0
  37. package/cdn/live-video-minimal.dev.js +115 -0
  38. package/cdn/live-video-minimal.dev.js.map +1 -0
  39. package/cdn/live-video-minimal.js +2 -0
  40. package/cdn/live-video-minimal.js.map +1 -0
  41. package/cdn/live-video.dev.d.ts +1 -0
  42. package/cdn/live-video.dev.js +130 -0
  43. package/cdn/live-video.dev.js.map +1 -0
  44. package/cdn/live-video.js +2 -0
  45. package/cdn/live-video.js.map +1 -0
  46. package/cdn/media/dash-video.dev.js +8 -7
  47. package/cdn/media/dash-video.dev.js.map +1 -1
  48. package/cdn/media/dash-video.js +6 -6
  49. package/cdn/media/dash-video.js.map +1 -1
  50. package/cdn/media/hls-video.dev.js +4 -4
  51. package/cdn/media/hls-video.js +1 -1
  52. package/cdn/media/hls-video.js.map +1 -1
  53. package/cdn/media/mux-audio.dev.js +8 -6
  54. package/cdn/media/mux-audio.dev.js.map +1 -1
  55. package/cdn/media/mux-audio.js +1 -1
  56. package/cdn/media/mux-audio.js.map +1 -1
  57. package/cdn/media/mux-video.dev.js +8 -6
  58. package/cdn/media/mux-video.dev.js.map +1 -1
  59. package/cdn/media/mux-video.js +1 -1
  60. package/cdn/media/mux-video.js.map +1 -1
  61. package/cdn/media/native-hls-video.dev.js +4 -4
  62. package/cdn/media/native-hls-video.js +1 -1
  63. package/cdn/media/native-hls-video.js.map +1 -1
  64. package/cdn/media/simple-hls-video.dev.js +11 -5
  65. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  66. package/cdn/media/simple-hls-video.js +6 -6
  67. package/cdn/media/simple-hls-video.js.map +1 -1
  68. package/cdn/media-attach-mixin-DuquRhAk.js +2 -0
  69. package/cdn/{media-attach-mixin-C2wz0Qbd.js.map → media-attach-mixin-DuquRhAk.js.map} +1 -1
  70. package/cdn/{media-attach-mixin-CYoNe7Sh.js → media-attach-mixin-pV8deGiO.js} +2 -2
  71. package/cdn/{media-attach-mixin-CYoNe7Sh.js.map → media-attach-mixin-pV8deGiO.js.map} +1 -1
  72. package/cdn/{minimal-AX_y2YBU.js → minimal-CciG7Fsu.js} +1 -1
  73. package/cdn/{minimal-AX_y2YBU.js.map → minimal-CciG7Fsu.js.map} +1 -1
  74. package/cdn/{minimal-Bc74CFqg.js → minimal-DSLrhnDm.js} +1 -1
  75. package/cdn/{minimal-Bc74CFqg.js.map → minimal-DSLrhnDm.js.map} +1 -1
  76. package/cdn/{minimal-ui-yKur3jyD.js → minimal-ui-Bx-_SggT.js} +5 -5
  77. package/cdn/{minimal-ui-yKur3jyD.js.map → minimal-ui-Bx-_SggT.js.map} +1 -1
  78. package/cdn/minimal-ui-CFO4ssL8.js +2 -0
  79. package/cdn/{minimal-ui-hC8-_9_F.js.map → minimal-ui-CFO4ssL8.js.map} +1 -1
  80. package/cdn/minimal-ui-D6Pvbx1R.js +2 -0
  81. package/cdn/{minimal-ui-lnw8AjaS.js.map → minimal-ui-D6Pvbx1R.js.map} +1 -1
  82. package/cdn/{minimal-ui-CE1sVxKB.js → minimal-ui-Dl-8ZL53.js} +5 -5
  83. package/cdn/{minimal-ui-CE1sVxKB.js.map → minimal-ui-Dl-8ZL53.js.map} +1 -1
  84. package/cdn/{mux-BhHIeG3e.js → mux-D5M5HL6A.js} +55 -20
  85. package/cdn/mux-D5M5HL6A.js.map +1 -0
  86. package/cdn/{mux-BgWl50KW.js → mux-DH3Kxyot.js} +10 -10
  87. package/cdn/mux-DH3Kxyot.js.map +1 -0
  88. package/cdn/native-hls-DN_aWn2z.js +2 -0
  89. package/cdn/native-hls-DN_aWn2z.js.map +1 -0
  90. package/cdn/native-hls-ak4v9DN6.js +371 -0
  91. package/cdn/native-hls-ak4v9DN6.js.map +1 -0
  92. package/cdn/player-BKKCelEs.js +2 -0
  93. package/cdn/player-BKKCelEs.js.map +1 -0
  94. package/cdn/{player-DX5Ka0vt.js → player-C_6YjMl7.js} +16 -12
  95. package/cdn/player-C_6YjMl7.js.map +1 -0
  96. package/cdn/player-CtegNw3g.js +2 -0
  97. package/cdn/{player-ChdQN3H5.js.map → player-CtegNw3g.js.map} +1 -1
  98. package/cdn/{player-BVGWmIbQ.js → player-D468sScc.js} +3 -3
  99. package/cdn/{player-BVGWmIbQ.js.map → player-D468sScc.js.map} +1 -1
  100. package/cdn/{context-0rI_P6jf.js → predicate-BOcV_HDG.js} +23 -2
  101. package/cdn/predicate-BOcV_HDG.js.map +1 -0
  102. package/cdn/{context-CEFisYD0.js → predicate-Cad5WV4q.js} +2 -2
  103. package/cdn/predicate-Cad5WV4q.js.map +1 -0
  104. package/cdn/{shallow-equal-xh6Wj-hj.js → shallow-equal-D-fthE54.js} +1 -1
  105. package/cdn/{shallow-equal-xh6Wj-hj.js.map → shallow-equal-D-fthE54.js.map} +1 -1
  106. package/cdn/{shallow-equal-Daj3-_LC.js → shallow-equal-DSpD9PMp.js} +1 -1
  107. package/cdn/{shallow-equal-Daj3-_LC.js.map → shallow-equal-DSpD9PMp.js.map} +1 -1
  108. package/cdn/{skin-element-D3iVinGP.js → skin-element-BcbrkgGs.js} +2 -2
  109. package/cdn/{skin-element-D3iVinGP.js.map → skin-element-BcbrkgGs.js.map} +1 -1
  110. package/cdn/{skin-element-DM82PPxz.js → skin-element-DesLkJKs.js} +2 -2
  111. package/cdn/{skin-element-DM82PPxz.js.map → skin-element-DesLkJKs.js.map} +1 -1
  112. package/cdn/types-B_4Es-UH.js +20 -0
  113. package/cdn/types-B_4Es-UH.js.map +1 -0
  114. package/cdn/types-DRezN4yy.js +2 -0
  115. package/cdn/types-DRezN4yy.js.map +1 -0
  116. package/cdn/{ui-CZ4yl3t3.js → ui-CzxKbsyb.js} +6 -6
  117. package/cdn/{ui-CZ4yl3t3.js.map → ui-CzxKbsyb.js.map} +1 -1
  118. package/cdn/ui-D6DV-Emw.js +2 -0
  119. package/cdn/{ui-BGvi0TNr.js.map → ui-D6DV-Emw.js.map} +1 -1
  120. package/cdn/ui-Dw-n2AMs.js +2 -0
  121. package/cdn/{ui-BN57BxYZ.js.map → ui-Dw-n2AMs.js.map} +1 -1
  122. package/cdn/{ui-CKR6dVbQ.js → ui-S_eLj4ur.js} +6 -6
  123. package/cdn/{ui-CKR6dVbQ.js.map → ui-S_eLj4ur.js.map} +1 -1
  124. package/cdn/{video-host-BtD61mpF.js → video-host-BR_2vUZH.js} +29 -16
  125. package/cdn/{video-host-BtD61mpF.js.map → video-host-BR_2vUZH.js.map} +1 -1
  126. package/cdn/{video-host-LeB1FKfO.js → video-host-Bkh2OyyP.js} +10 -10
  127. package/cdn/{video-host-LeB1FKfO.js.map → video-host-Bkh2OyyP.js.map} +1 -1
  128. package/cdn/video-minimal-ui.dev.js +1 -4
  129. package/cdn/video-minimal-ui.js +1 -1
  130. package/cdn/video-minimal.dev.js +5 -7
  131. package/cdn/video-minimal.dev.js.map +1 -1
  132. package/cdn/video-minimal.js +1 -1
  133. package/cdn/video-minimal.js.map +1 -1
  134. package/cdn/video-ui.dev.js +1 -4
  135. package/cdn/video-ui.js +1 -1
  136. package/cdn/video.dev.js +4 -6
  137. package/cdn/video.dev.js.map +1 -1
  138. package/cdn/video.js +1 -1
  139. package/cdn/video.js.map +1 -1
  140. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  141. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  142. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  143. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  144. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  145. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  146. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  147. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  148. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  149. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  150. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  151. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  152. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  153. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  154. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  155. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  156. package/dist/default/define/audio/minimal-skin.css +2 -1
  157. package/dist/default/define/audio/skin.css +2 -1
  158. package/dist/default/define/background/skin.js +1 -1
  159. package/dist/default/define/live-audio/minimal-skin.css +779 -0
  160. package/dist/default/define/live-audio/minimal-skin.js +26 -0
  161. package/dist/default/define/live-audio/minimal-skin.js.map +1 -0
  162. package/dist/default/define/live-audio/minimal-skin.tailwind.js +29 -0
  163. package/dist/default/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  164. package/dist/default/define/live-audio/skin.css +795 -0
  165. package/dist/default/define/live-audio/skin.js +26 -0
  166. package/dist/default/define/live-audio/skin.js.map +1 -0
  167. package/dist/default/define/live-audio/skin.tailwind.js +28 -0
  168. package/dist/default/define/live-audio/skin.tailwind.js.map +1 -0
  169. package/dist/default/define/live-video/minimal-skin.css +1170 -0
  170. package/dist/default/define/live-video/minimal-skin.js +26 -0
  171. package/dist/default/define/live-video/minimal-skin.js.map +1 -0
  172. package/dist/default/define/live-video/minimal-skin.tailwind.js +30 -0
  173. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -0
  174. package/dist/default/define/live-video/skin.css +1160 -0
  175. package/dist/default/define/live-video/skin.js +26 -0
  176. package/dist/default/define/live-video/skin.js.map +1 -0
  177. package/dist/default/define/live-video/skin.tailwind.js +29 -0
  178. package/dist/default/define/live-video/skin.tailwind.js.map +1 -0
  179. package/dist/default/define/skin-element.js +1 -1
  180. package/dist/default/define/video/minimal-skin.css +2 -1
  181. package/dist/default/define/video/skin.css +2 -1
  182. package/dist/default/index.js +2 -1
  183. package/dist/default/media/mux-audio/index.js +4 -1
  184. package/dist/default/media/mux-audio/index.js.map +1 -1
  185. package/dist/default/media/mux-video/index.js +4 -1
  186. package/dist/default/media/mux-video/index.js.map +1 -1
  187. package/dist/default/presets/live-audio.js +6 -0
  188. package/dist/default/presets/live-video.js +6 -0
  189. package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
  190. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  191. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  192. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  193. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  194. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  195. package/dist/default/ui/alert-dialog/alert-dialog-element.js +12 -6
  196. package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  197. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  198. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  199. package/dist/default/ui/cast-button/cast-button-element.js +2 -2
  200. package/dist/default/ui/cast-button/cast-button-element.js.map +1 -1
  201. package/dist/default/ui/error-dialog/error-dialog-element.js +4 -1
  202. package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -1
  203. package/dist/default/ui/gesture/gesture-element.js +10 -7
  204. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  205. package/dist/default/ui/hotkey/hotkey-element.js +10 -7
  206. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  207. package/dist/default/ui/media-button-element.js +4 -2
  208. package/dist/default/ui/media-button-element.js.map +1 -1
  209. package/dist/default/ui/popover/popover-element.js +14 -7
  210. package/dist/default/ui/popover/popover-element.js.map +1 -1
  211. package/dist/default/ui/slider/slider-element.js +8 -4
  212. package/dist/default/ui/slider/slider-element.js.map +1 -1
  213. package/dist/default/ui/slider/slider-preview-element.js +9 -6
  214. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  215. package/dist/default/ui/slider/slider-value-element.js +5 -4
  216. package/dist/default/ui/slider/slider-value-element.js.map +1 -1
  217. package/dist/default/ui/thumbnail/thumbnail-element.js +10 -5
  218. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
  219. package/dist/default/ui/time/time-element.js +8 -4
  220. package/dist/default/ui/time/time-element.js.map +1 -1
  221. package/dist/default/ui/time-slider/time-slider-element.js +12 -6
  222. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  223. package/dist/default/ui/tooltip/tooltip-element.js +16 -8
  224. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  225. package/dist/default/ui/tooltip/tooltip-group-element.js +7 -5
  226. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  227. package/dist/default/ui/volume-slider/volume-slider-element.js +10 -5
  228. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  229. package/dist/dev/_virtual/_rolldown/runtime.js +27 -0
  230. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  231. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  232. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  233. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  234. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  235. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  236. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  237. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  238. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  239. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  240. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  241. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  242. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  243. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  244. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  245. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  246. package/dist/dev/define/audio/minimal-skin.css +2 -1
  247. package/dist/dev/define/audio/minimal-skin.d.ts +2 -2
  248. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  249. package/dist/dev/define/audio/player.d.ts +2 -2
  250. package/dist/dev/define/audio/skin.css +2 -1
  251. package/dist/dev/define/audio/skin.d.ts +2 -2
  252. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  253. package/dist/dev/define/background/player.d.ts +2 -2
  254. package/dist/dev/define/background/skin.d.ts.map +1 -1
  255. package/dist/dev/define/background/skin.js +1 -1
  256. package/dist/dev/define/live-audio/minimal-skin.css +779 -0
  257. package/dist/dev/define/live-audio/minimal-skin.d.ts +17 -0
  258. package/dist/dev/define/live-audio/minimal-skin.d.ts.map +1 -0
  259. package/dist/dev/define/live-audio/minimal-skin.js +76 -0
  260. package/dist/dev/define/live-audio/minimal-skin.js.map +1 -0
  261. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts +14 -0
  262. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
  263. package/dist/dev/define/live-audio/minimal-skin.tailwind.js +79 -0
  264. package/dist/dev/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  265. package/dist/dev/define/live-audio/skin.css +795 -0
  266. package/dist/dev/define/live-audio/skin.d.ts +17 -0
  267. package/dist/dev/define/live-audio/skin.d.ts.map +1 -0
  268. package/dist/dev/define/live-audio/skin.js +83 -0
  269. package/dist/dev/define/live-audio/skin.js.map +1 -0
  270. package/dist/dev/define/live-audio/skin.tailwind.d.ts +14 -0
  271. package/dist/dev/define/live-audio/skin.tailwind.d.ts.map +1 -0
  272. package/dist/dev/define/live-audio/skin.tailwind.js +78 -0
  273. package/dist/dev/define/live-audio/skin.tailwind.js.map +1 -0
  274. package/dist/dev/define/live-video/minimal-skin.css +1170 -0
  275. package/dist/dev/define/live-video/minimal-skin.d.ts +17 -0
  276. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -0
  277. package/dist/dev/define/live-video/minimal-skin.js +112 -0
  278. package/dist/dev/define/live-video/minimal-skin.js.map +1 -0
  279. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts +14 -0
  280. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -0
  281. package/dist/dev/define/live-video/minimal-skin.tailwind.js +110 -0
  282. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -0
  283. package/dist/dev/define/live-video/skin.css +1160 -0
  284. package/dist/dev/define/live-video/skin.d.ts +17 -0
  285. package/dist/dev/define/live-video/skin.d.ts.map +1 -0
  286. package/dist/dev/define/live-video/skin.js +127 -0
  287. package/dist/dev/define/live-video/skin.js.map +1 -0
  288. package/dist/dev/define/live-video/skin.tailwind.d.ts +14 -0
  289. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -0
  290. package/dist/dev/define/live-video/skin.tailwind.js +111 -0
  291. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -0
  292. package/dist/dev/define/skin-element.d.ts +1 -1
  293. package/dist/dev/define/skin-element.d.ts.map +1 -1
  294. package/dist/dev/define/skin-element.js +1 -1
  295. package/dist/dev/define/video/minimal-skin.css +2 -1
  296. package/dist/dev/define/video/minimal-skin.d.ts +2 -2
  297. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  298. package/dist/dev/define/video/player.d.ts +2 -2
  299. package/dist/dev/define/video/skin.css +2 -1
  300. package/dist/dev/define/video/skin.d.ts +2 -2
  301. package/dist/dev/define/video/skin.d.ts.map +1 -1
  302. package/dist/dev/index.d.ts +12 -3
  303. package/dist/dev/index.d.ts.map +1 -0
  304. package/dist/dev/index.js +2 -1
  305. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  306. package/dist/dev/media/container-element.d.ts +2 -2
  307. package/dist/dev/media/dash-video/index.d.ts +2 -2
  308. package/dist/dev/media/hls-video/index.d.ts +2 -2
  309. package/dist/dev/media/mux-audio/index.d.ts +2 -2
  310. package/dist/dev/media/mux-audio/index.js +4 -1
  311. package/dist/dev/media/mux-audio/index.js.map +1 -1
  312. package/dist/dev/media/mux-video/index.d.ts +2 -2
  313. package/dist/dev/media/mux-video/index.js +4 -1
  314. package/dist/dev/media/mux-video/index.js.map +1 -1
  315. package/dist/dev/media/native-hls-video/index.d.ts +2 -2
  316. package/dist/dev/media/simple-hls-video/index.d.ts +2 -2
  317. package/dist/dev/player/context.d.ts +1 -1
  318. package/dist/dev/player/player-controller.d.ts +1 -1
  319. package/dist/dev/player/player-controller.d.ts.map +1 -1
  320. package/dist/dev/presets/live-audio.d.ts +6 -0
  321. package/dist/dev/presets/live-audio.js +6 -0
  322. package/dist/dev/presets/live-video.d.ts +6 -0
  323. package/dist/dev/presets/live-video.js +6 -0
  324. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
  325. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  326. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  327. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  328. package/dist/dev/store/container-mixin.d.ts +1 -1
  329. package/dist/dev/store/provider-mixin.d.ts +1 -1
  330. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.d.ts.map +1 -1
  331. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  332. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  333. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.d.ts +2 -2
  334. package/dist/dev/ui/alert-dialog/alert-dialog-element.d.ts.map +1 -1
  335. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +12 -6
  336. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  337. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.d.ts +2 -2
  338. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -1
  339. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  340. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  341. package/dist/dev/ui/captions-button/captions-button-element.d.ts +4 -4
  342. package/dist/dev/ui/captions-button/captions-button-element.d.ts.map +1 -1
  343. package/dist/dev/ui/cast-button/cast-button-element.d.ts +6 -6
  344. package/dist/dev/ui/cast-button/cast-button-element.d.ts.map +1 -1
  345. package/dist/dev/ui/cast-button/cast-button-element.js +2 -2
  346. package/dist/dev/ui/cast-button/cast-button-element.js.map +1 -1
  347. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -1
  348. package/dist/dev/ui/error-dialog/error-dialog-element.js +4 -1
  349. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -1
  350. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +4 -4
  351. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  352. package/dist/dev/ui/gesture/gesture-element.js +10 -7
  353. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  354. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts.map +1 -1
  355. package/dist/dev/ui/hotkey/hotkey-element.js +10 -7
  356. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  357. package/dist/dev/ui/media-button-element.d.ts +1 -1
  358. package/dist/dev/ui/media-button-element.js +4 -2
  359. package/dist/dev/ui/media-button-element.js.map +1 -1
  360. package/dist/dev/ui/media-element.d.ts +2 -2
  361. package/dist/dev/ui/mute-button/mute-button-element.d.ts +4 -4
  362. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  363. package/dist/dev/ui/pip-button/pip-button-element.d.ts +4 -4
  364. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  365. package/dist/dev/ui/play-button/play-button-element.d.ts +5 -5
  366. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  367. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +3 -3
  368. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  369. package/dist/dev/ui/popover/popover-element.d.ts +3 -3
  370. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  371. package/dist/dev/ui/popover/popover-element.js +14 -7
  372. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  373. package/dist/dev/ui/poster/poster-element.d.ts +4 -4
  374. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  375. package/dist/dev/ui/seek-button/seek-button-element.d.ts +4 -4
  376. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -1
  377. package/dist/dev/ui/slider/slider-element.d.ts +2 -2
  378. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -1
  379. package/dist/dev/ui/slider/slider-element.js +8 -4
  380. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  381. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
  382. package/dist/dev/ui/slider/slider-preview-element.js +9 -6
  383. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  384. package/dist/dev/ui/slider/slider-value-element.d.ts.map +1 -1
  385. package/dist/dev/ui/slider/slider-value-element.js +5 -4
  386. package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
  387. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts.map +1 -1
  388. package/dist/dev/ui/thumbnail/thumbnail-element.js +10 -5
  389. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
  390. package/dist/dev/ui/time/time-element.d.ts +2 -2
  391. package/dist/dev/ui/time/time-element.d.ts.map +1 -1
  392. package/dist/dev/ui/time/time-element.js +8 -4
  393. package/dist/dev/ui/time/time-element.js.map +1 -1
  394. package/dist/dev/ui/time-slider/time-slider-element.d.ts +2 -2
  395. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -1
  396. package/dist/dev/ui/time-slider/time-slider-element.js +12 -6
  397. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  398. package/dist/dev/ui/tooltip/tooltip-element.d.ts +3 -3
  399. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  400. package/dist/dev/ui/tooltip/tooltip-element.js +16 -8
  401. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  402. package/dist/dev/ui/tooltip/tooltip-group-element.d.ts.map +1 -1
  403. package/dist/dev/ui/tooltip/tooltip-group-element.js +7 -5
  404. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  405. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +2 -2
  406. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
  407. package/dist/dev/ui/volume-slider/volume-slider-element.js +10 -5
  408. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  409. package/package.json +31 -10
  410. package/cdn/compounds-CCgS3IGo.js +0 -8
  411. package/cdn/compounds-CCgS3IGo.js.map +0 -1
  412. package/cdn/compounds-DD3MYkSc.js.map +0 -1
  413. package/cdn/context-0rI_P6jf.js.map +0 -1
  414. package/cdn/context-CEFisYD0.js.map +0 -1
  415. package/cdn/create-player-B-PGzhq2.js +0 -7
  416. package/cdn/create-player-B-PGzhq2.js.map +0 -1
  417. package/cdn/create-player-BKLw7l1a.js.map +0 -1
  418. package/cdn/hls-CcSAx_3I.js.map +0 -1
  419. package/cdn/hls-Dl2v35sW.js +0 -41
  420. package/cdn/hls-Dl2v35sW.js.map +0 -1
  421. package/cdn/hotkey-element-DWWkfH3A.js +0 -2
  422. package/cdn/media-attach-mixin-C2wz0Qbd.js +0 -2
  423. package/cdn/minimal-ui-hC8-_9_F.js +0 -2
  424. package/cdn/minimal-ui-lnw8AjaS.js +0 -2
  425. package/cdn/mux-BgWl50KW.js.map +0 -1
  426. package/cdn/mux-BhHIeG3e.js.map +0 -1
  427. package/cdn/native-hls-lhip4tV9.js +0 -123
  428. package/cdn/native-hls-lhip4tV9.js.map +0 -1
  429. package/cdn/native-hls-odPBXxK7.js +0 -2
  430. package/cdn/native-hls-odPBXxK7.js.map +0 -1
  431. package/cdn/player-B7jISTmQ.js +0 -2
  432. package/cdn/player-B7jISTmQ.js.map +0 -1
  433. package/cdn/player-ChdQN3H5.js +0 -2
  434. package/cdn/player-DX5Ka0vt.js.map +0 -1
  435. package/cdn/ui-BGvi0TNr.js +0 -2
  436. package/cdn/ui-BN57BxYZ.js +0 -2
@@ -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":"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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slider-value-element.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-value-element.ts"],"mappings":";;;;cAOa,kBAAA,SAA2B,YAAA;EAAA;kBACtB,OAAA;EAAA,OAEA,UAAA;;;;;EAIhB,IAAA;EAOS,iBAAA,CAAA;EAAA,UAKU,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
1
+ {"version":3,"file":"slider-value-element.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-value-element.ts"],"mappings":";;;;cAOa,kBAAA,SAA2B,YAAA;EAAA;kBACtB,OAAA;EAAA,OAEA,UAAA;;MACN,IAAA,EAAI,iBAAA;IAAA;EAAA;EAGd,IAAA;EAOS,iBAAA,CAAA;EAAA,UAKU,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}
@@ -7,6 +7,10 @@ var SliderValueElement = class extends MediaElement {
7
7
  constructor(..._args) {
8
8
  super(..._args);
9
9
  this.type = "current";
10
+ this.#ctx = new ContextConsumer(this, {
11
+ context: sliderContext,
12
+ subscribe: true
13
+ });
10
14
  }
11
15
  static {
12
16
  this.tagName = "media-slider-value";
@@ -14,10 +18,7 @@ var SliderValueElement = class extends MediaElement {
14
18
  static {
15
19
  this.properties = { type: { type: String } };
16
20
  }
17
- #ctx = new ContextConsumer(this, {
18
- context: sliderContext,
19
- subscribe: true
20
- });
21
+ #ctx;
21
22
  connectedCallback() {
22
23
  super.connectedCallback();
23
24
  this.setAttribute("aria-live", "off");
@@ -1 +1 @@
1
- {"version":3,"file":"slider-value-element.js","names":["#ctx"],"sources":["../../../../src/ui/slider/slider-value-element.ts"],"sourcesContent":["import { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderValueElement extends MediaElement {\n static readonly tagName = 'media-slider-value';\n\n static override properties = {\n type: { type: String },\n } satisfies PropertyDeclarationMap<'type'>;\n\n type: 'current' | 'pointer' = 'current';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-live', 'off');\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (!ctx) return;\n\n const value = this.type === 'pointer' ? ctx.pointerValue : ctx.state.value;\n\n this.textContent = ctx.formatValue ? ctx.formatValue(value, this.type) : String(Math.round(value));\n\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,qBAAb,cAAwC,aAAa;;;cAOrB;;;iBANJ;;;oBAEG,EAC3B,MAAM,EAAE,MAAM,QAAQ,EACvB;;CAID,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,OAAK,aAAa,aAAa,MAAM;;CAGvC,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,CAAC,IAAK;EAEV,MAAM,QAAQ,KAAK,SAAS,YAAY,IAAI,eAAe,IAAI,MAAM;AAErE,OAAK,cAAc,IAAI,cAAc,IAAI,YAAY,OAAO,KAAK,KAAK,GAAG,OAAO,KAAK,MAAM,MAAM,CAAC;AAElG,sBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
1
+ {"version":3,"file":"slider-value-element.js","names":["#ctx"],"sources":["../../../../src/ui/slider/slider-value-element.ts"],"sourcesContent":["import { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderValueElement extends MediaElement {\n static readonly tagName = 'media-slider-value';\n\n static override properties = {\n type: { type: String },\n } satisfies PropertyDeclarationMap<'type'>;\n\n type: 'current' | 'pointer' = 'current';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-live', 'off');\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (!ctx) return;\n\n const value = this.type === 'pointer' ? ctx.pointerValue : ctx.state.value;\n\n this.textContent = ctx.formatValue ? ctx.formatValue(value, this.type) : String(Math.round(value));\n\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,qBAAb,cAAwC,aAAa;;;cAOrB;cAEd,IAAI,gBAAgB,MAAM;GACxC,SAAS;GACT,WAAW;GACZ,CAAC;;;iBAXwB;;;oBAEG,EAC3B,MAAM,EAAE,MAAM,QAAQ,EACvB;;CAID;CAKA,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,OAAK,aAAa,aAAa,MAAM;;CAGvC,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,CAAC,IAAK;EAEV,MAAM,QAAQ,KAAK,SAAS,YAAY,IAAI,eAAe,IAAI,MAAM;AAErE,OAAK,cAAc,IAAI,cAAc,IAAI,YAAY,OAAO,KAAK,KAAK,GAAG,OAAO,KAAK,MAAM,MAAM,CAAC;AAElG,sBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail-element.d.ts","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail-element.ts"],"mappings":";;;;;cAyBa,gBAAA,SAAyB,YAAA;EAAA;kBACpB,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;;;;;;EAOhB,IAAA;EACA,WAAA,EAAa,aAAA,CAAc,KAAA;EAC3B,OAAA,EAAS,aAAA,CAAc,KAAA;EACvB,aAAA,EAAe,aAAA,CAAc,KAAA;;;;;;MA+BzB,UAAA,CAAA,GAAc,cAAA;EAAA,IAId,UAAA,CAAW,KAAA,EAAO,cAAA;EAKb,iBAAA,CAAA;EAWA,oBAAA,CAAA;EAIA,eAAA,CAAA;EAAA,UAKU,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
1
+ {"version":3,"file":"thumbnail-element.d.ts","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail-element.ts"],"mappings":";;;;;cAyBa,gBAAA,SAAyB,YAAA;EAAA;kBACpB,OAAA;EAAA,OAEA,UAAA;;MACN,IAAA,EAAI,iBAAA;IAAA;;MACG,IAAA,EAAI,iBAAA;MAAU,SAAA;IAAA;;MAClB,IAAA,EAAI,iBAAA;IAAA;;MACE,IAAA,EAAI,iBAAA;MAAU,SAAA;IAAA;EAAA;EAGjC,IAAA;EACA,WAAA,EAAa,aAAA,CAAc,KAAA;EAC3B,OAAA,EAAS,aAAA,CAAc,KAAA;EACvB,aAAA,EAAe,aAAA,CAAc,KAAA;EAW7B,WAAA,CAAA;EApBc;;;;EAAA,IAwCV,UAAA,CAAA,GAAc,cAAA;EAAA,IAId,UAAA,CAAW,KAAA,EAAO,cAAA;EAKb,iBAAA,CAAA;EAWA,oBAAA,CAAA;EAIA,eAAA,CAAA;EAAA,UAKU,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
@@ -30,16 +30,21 @@ var ThumbnailElement = class extends MediaElement {
30
30
  }
31
31
  };
32
32
  }
33
- #core = new ThumbnailCore();
34
- #img = document.createElement("img");
35
- #textTracks = new PlayerController(this, playerContext, selectTextTrack);
36
- #thumbnails = [];
33
+ #core;
34
+ #img;
35
+ #textTracks;
36
+ #thumbnails;
37
37
  #externalThumbnails;
38
38
  #lastTextTrack;
39
- #api = null;
39
+ #api;
40
40
  constructor() {
41
41
  super();
42
42
  this.time = 0;
43
+ this.#core = new ThumbnailCore();
44
+ this.#img = document.createElement("img");
45
+ this.#textTracks = new PlayerController(this, playerContext, selectTextTrack);
46
+ this.#thumbnails = [];
47
+ this.#api = null;
43
48
  const shadow = this.attachShadow({ mode: "open" });
44
49
  const style = document.createElement("style");
45
50
  style.textContent = SHADOW_CSS;