@videojs/html 10.0.0-beta.11 → 10.0.0-beta.13

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 (788) hide show
  1. package/cdn/abort-C7q_G_dT.js +2 -0
  2. package/cdn/abort-C7q_G_dT.js.map +1 -0
  3. package/cdn/abort-JT-ewLFq.js +22 -0
  4. package/cdn/abort-JT-ewLFq.js.map +1 -0
  5. package/cdn/audio-minimal.dev.js +23 -12
  6. package/cdn/audio-minimal.dev.js.map +1 -1
  7. package/cdn/audio-minimal.js +1 -1
  8. package/cdn/audio-minimal.js.map +1 -1
  9. package/cdn/audio.dev.js +72 -57
  10. package/cdn/audio.dev.js.map +1 -1
  11. package/cdn/audio.js +1 -1
  12. package/cdn/audio.js.map +1 -1
  13. package/cdn/background.dev.js +3 -4
  14. package/cdn/background.dev.js.map +1 -1
  15. package/cdn/background.js +1 -1
  16. package/cdn/background.js.map +1 -1
  17. package/cdn/{create-player-AcfnN3li.js → create-player-C2h3JeGl.js} +103 -19
  18. package/cdn/create-player-C2h3JeGl.js.map +1 -0
  19. package/cdn/create-player-i0Q36S9_.js +7 -0
  20. package/cdn/create-player-i0Q36S9_.js.map +1 -0
  21. package/cdn/{default-cLso8BHO.js → default-CKnlVEjQ.js} +1 -1
  22. package/cdn/{default-cLso8BHO.js.map → default-CKnlVEjQ.js.map} +1 -1
  23. package/cdn/{default-GgKND7a8.js → default-CnBlD9BM.js} +1 -1
  24. package/cdn/{default-GgKND7a8.js.map → default-CnBlD9BM.js.map} +1 -1
  25. package/cdn/{delegate-CzAcT1xm.js → delegate-AoR5Pt_6.js} +16 -3
  26. package/cdn/delegate-AoR5Pt_6.js.map +1 -0
  27. package/cdn/delegate-odoSeh7c.js +2 -0
  28. package/cdn/delegate-odoSeh7c.js.map +1 -0
  29. package/cdn/hls-CNDMNsEo.js +41 -0
  30. package/cdn/hls-CNDMNsEo.js.map +1 -0
  31. package/cdn/hls-DHwATYV2.js +28663 -0
  32. package/cdn/hls-DHwATYV2.js.map +1 -0
  33. package/cdn/{listen-YSH3Jfyk.js → listen-BkAEGXCe.js} +1 -1
  34. package/cdn/{listen-YSH3Jfyk.js.map → listen-BkAEGXCe.js.map} +1 -1
  35. package/cdn/{listen-4jqsRSKo.js → listen-UqQNdlqV.js} +1 -1
  36. package/cdn/{listen-4jqsRSKo.js.map → listen-UqQNdlqV.js.map} +1 -1
  37. package/cdn/media/dash-video.dev.js +10 -17
  38. package/cdn/media/dash-video.dev.js.map +1 -1
  39. package/cdn/media/dash-video.js +3 -3
  40. package/cdn/media/dash-video.js.map +1 -1
  41. package/cdn/media/hls-video.dev.js +5 -28336
  42. package/cdn/media/hls-video.dev.js.map +1 -1
  43. package/cdn/media/hls-video.js +1 -40
  44. package/cdn/media/hls-video.js.map +1 -1
  45. package/cdn/media/mux-video.dev.d.ts +1 -0
  46. package/cdn/media/mux-video.dev.js +3122 -0
  47. package/cdn/media/mux-video.dev.js.map +1 -0
  48. package/cdn/media/mux-video.js +25 -0
  49. package/cdn/media/mux-video.js.map +1 -0
  50. package/cdn/media/simple-hls-video.dev.js +2286 -2094
  51. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  52. package/cdn/media/simple-hls-video.js +58 -1
  53. package/cdn/media/simple-hls-video.js.map +1 -1
  54. package/cdn/media-attach-mixin-ByJOWMNT.js +2 -0
  55. package/cdn/{media-attach-mixin-D5_nfJpa.js.map → media-attach-mixin-ByJOWMNT.js.map} +1 -1
  56. package/cdn/{media-attach-mixin-U_KQB_9O.js → media-attach-mixin-CkU58gjb.js} +2 -2
  57. package/cdn/{media-attach-mixin-U_KQB_9O.js.map → media-attach-mixin-CkU58gjb.js.map} +1 -1
  58. package/cdn/{custom-media-element-DqevSVgS.js → media-props-mixin-BuVUebRp.js} +2 -2
  59. package/cdn/media-props-mixin-BuVUebRp.js.map +1 -0
  60. package/cdn/{custom-media-element-moFa3UZp.js → media-props-mixin-DxsM38Bx.js} +44 -2
  61. package/cdn/media-props-mixin-DxsM38Bx.js.map +1 -0
  62. package/cdn/{minimal-BJfleQcQ.js → minimal-CKMdOXWm.js} +1 -1
  63. package/cdn/{minimal-BJfleQcQ.js.map → minimal-CKMdOXWm.js.map} +1 -1
  64. package/cdn/{minimal-DBMdC_0I.js → minimal-fA2p2Jrn.js} +1 -1
  65. package/cdn/{minimal-DBMdC_0I.js.map → minimal-fA2p2Jrn.js.map} +1 -1
  66. package/cdn/{player-CvrOeLpy.js → player-BWRklsUx.js} +3 -3
  67. package/cdn/{player-CvrOeLpy.js.map → player-BWRklsUx.js.map} +1 -1
  68. package/cdn/player-DOTrw60d.js +2 -0
  69. package/cdn/{player-C46h14iP.js.map → player-DOTrw60d.js.map} +1 -1
  70. package/cdn/poster-CRi_NWaR.js +2 -0
  71. package/cdn/{poster-odJ4iwIv.js.map → poster-CRi_NWaR.js.map} +1 -1
  72. package/cdn/{poster-Olv5zDI_.js → poster-Ds1EOmmU.js} +4 -5
  73. package/cdn/{poster-Olv5zDI_.js.map → poster-Ds1EOmmU.js.map} +1 -1
  74. package/cdn/{context-Be8C5kVd.js → safe-define-Bw8JF08z.js} +22 -4
  75. package/cdn/safe-define-Bw8JF08z.js.map +1 -0
  76. package/cdn/safe-define-t0AGOouq.js +14 -0
  77. package/cdn/safe-define-t0AGOouq.js.map +1 -0
  78. package/cdn/shallow-equal-CaIo44Co.js +15 -0
  79. package/cdn/shallow-equal-CaIo44Co.js.map +1 -0
  80. package/cdn/shallow-equal-zo2IZwso.js +2 -0
  81. package/cdn/shallow-equal-zo2IZwso.js.map +1 -0
  82. package/cdn/video-minimal.dev.js +24 -13
  83. package/cdn/video-minimal.dev.js.map +1 -1
  84. package/cdn/video-minimal.js +1 -1
  85. package/cdn/video-minimal.js.map +1 -1
  86. package/cdn/video.dev.js +107 -92
  87. package/cdn/video.dev.js.map +1 -1
  88. package/cdn/video.js +1 -1
  89. package/cdn/video.js.map +1 -1
  90. package/cdn/volume-slider-C7rEWi11.js +9 -0
  91. package/cdn/volume-slider-C7rEWi11.js.map +1 -0
  92. package/cdn/{volume-slider-D7BOdSDF.js → volume-slider-Dz_ND_4U.js} +245 -14
  93. package/cdn/volume-slider-Dz_ND_4U.js.map +1 -0
  94. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +2 -2
  95. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  96. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +2 -2
  97. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  98. package/dist/default/_virtual/inline-css_src/define/background/skin.js +1 -1
  99. package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -1
  100. package/dist/default/_virtual/inline-css_src/define/base.js +1 -1
  101. package/dist/default/_virtual/inline-css_src/define/base.js.map +1 -1
  102. package/dist/default/_virtual/inline-css_src/define/shared.js +1 -1
  103. package/dist/default/_virtual/inline-css_src/define/shared.js.map +1 -1
  104. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +2 -2
  105. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  106. package/dist/default/_virtual/inline-css_src/define/video/skin.js +2 -2
  107. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  108. package/dist/default/define/audio/minimal-skin.css +81 -59
  109. package/dist/default/define/audio/minimal-skin.js +5 -4
  110. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  111. package/dist/default/define/audio/minimal-skin.tailwind.js +6 -5
  112. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  113. package/dist/default/define/audio/player.js +1 -2
  114. package/dist/default/define/audio/player.js.map +1 -1
  115. package/dist/default/define/audio/skin.css +54 -42
  116. package/dist/default/define/audio/skin.js +5 -4
  117. package/dist/default/define/audio/skin.js.map +1 -1
  118. package/dist/default/define/audio/skin.tailwind.js +7 -5
  119. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  120. package/dist/default/define/background/player.js +1 -2
  121. package/dist/default/define/background/player.js.map +1 -1
  122. package/dist/default/define/background/skin.js +1 -2
  123. package/dist/default/define/background/skin.js.map +1 -1
  124. package/dist/default/define/background/video.js +1 -2
  125. package/dist/default/define/media/background-video.js +1 -2
  126. package/dist/default/define/media/background-video.js.map +1 -1
  127. package/dist/default/define/media/container.js +1 -2
  128. package/dist/default/define/media/container.js.map +1 -1
  129. package/dist/default/define/media/dash-video.js +1 -2
  130. package/dist/default/define/media/dash-video.js.map +1 -1
  131. package/dist/default/define/media/hls-video.js +1 -2
  132. package/dist/default/define/media/hls-video.js.map +1 -1
  133. package/dist/default/define/media/mux-video.js +13 -0
  134. package/dist/default/define/media/mux-video.js.map +1 -0
  135. package/dist/default/define/media/native-hls-video.js +13 -0
  136. package/dist/default/define/media/native-hls-video.js.map +1 -0
  137. package/dist/default/define/media/simple-hls-video.js +3 -3
  138. package/dist/default/define/media/simple-hls-video.js.map +1 -1
  139. package/dist/default/define/safe-define.js +4 -2
  140. package/dist/default/define/safe-define.js.map +1 -1
  141. package/dist/default/define/skin-mixin.js +30 -11
  142. package/dist/default/define/skin-mixin.js.map +1 -1
  143. package/dist/default/define/ui/alert-dialog-close.js +1 -2
  144. package/dist/default/define/ui/alert-dialog-close.js.map +1 -1
  145. package/dist/default/define/ui/alert-dialog-description.js +1 -2
  146. package/dist/default/define/ui/alert-dialog-description.js.map +1 -1
  147. package/dist/default/define/ui/alert-dialog-title.js +1 -2
  148. package/dist/default/define/ui/alert-dialog-title.js.map +1 -1
  149. package/dist/default/define/ui/alert-dialog.js +1 -2
  150. package/dist/default/define/ui/alert-dialog.js.map +1 -1
  151. package/dist/default/define/ui/buffering-indicator.js +1 -2
  152. package/dist/default/define/ui/buffering-indicator.js.map +1 -1
  153. package/dist/default/define/ui/captions-button.js +3 -3
  154. package/dist/default/define/ui/captions-button.js.map +1 -1
  155. package/dist/default/define/ui/controls-group.js +1 -2
  156. package/dist/default/define/ui/controls-group.js.map +1 -1
  157. package/dist/default/define/ui/controls.js +1 -2
  158. package/dist/default/define/ui/controls.js.map +1 -1
  159. package/dist/default/define/ui/error-dialog.js +13 -0
  160. package/dist/default/define/ui/error-dialog.js.map +1 -0
  161. package/dist/default/define/ui/fullscreen-button.js +1 -2
  162. package/dist/default/define/ui/fullscreen-button.js.map +1 -1
  163. package/dist/default/define/ui/mute-button.js +1 -2
  164. package/dist/default/define/ui/mute-button.js.map +1 -1
  165. package/dist/default/define/ui/pip-button.js +1 -2
  166. package/dist/default/define/ui/pip-button.js.map +1 -1
  167. package/dist/default/define/ui/play-button.js +1 -2
  168. package/dist/default/define/ui/play-button.js.map +1 -1
  169. package/dist/default/define/ui/playback-rate-button.js +1 -2
  170. package/dist/default/define/ui/playback-rate-button.js.map +1 -1
  171. package/dist/default/define/ui/popover.js +1 -2
  172. package/dist/default/define/ui/popover.js.map +1 -1
  173. package/dist/default/define/ui/poster.js +1 -2
  174. package/dist/default/define/ui/poster.js.map +1 -1
  175. package/dist/default/define/ui/seek-button.js +1 -2
  176. package/dist/default/define/ui/seek-button.js.map +1 -1
  177. package/dist/default/define/ui/slider-buffer.js +1 -2
  178. package/dist/default/define/ui/slider-buffer.js.map +1 -1
  179. package/dist/default/define/ui/slider-fill.js +1 -2
  180. package/dist/default/define/ui/slider-fill.js.map +1 -1
  181. package/dist/default/define/ui/slider-thumb.js +1 -2
  182. package/dist/default/define/ui/slider-thumb.js.map +1 -1
  183. package/dist/default/define/ui/slider-thumbnail.js +1 -2
  184. package/dist/default/define/ui/slider-thumbnail.js.map +1 -1
  185. package/dist/default/define/ui/slider-track.js +1 -2
  186. package/dist/default/define/ui/slider-track.js.map +1 -1
  187. package/dist/default/define/ui/slider-value.js +1 -2
  188. package/dist/default/define/ui/slider-value.js.map +1 -1
  189. package/dist/default/define/ui/slider.js +1 -2
  190. package/dist/default/define/ui/slider.js.map +1 -1
  191. package/dist/default/define/ui/thumbnail.js +1 -2
  192. package/dist/default/define/ui/thumbnail.js.map +1 -1
  193. package/dist/default/define/ui/time-group.js +1 -2
  194. package/dist/default/define/ui/time-group.js.map +1 -1
  195. package/dist/default/define/ui/time-separator.js +1 -2
  196. package/dist/default/define/ui/time-separator.js.map +1 -1
  197. package/dist/default/define/ui/time-slider.js +1 -2
  198. package/dist/default/define/ui/time-slider.js.map +1 -1
  199. package/dist/default/define/ui/time.js +1 -2
  200. package/dist/default/define/ui/time.js.map +1 -1
  201. package/dist/default/define/ui/tooltip-group.js +1 -2
  202. package/dist/default/define/ui/tooltip-group.js.map +1 -1
  203. package/dist/default/define/ui/tooltip.js +1 -2
  204. package/dist/default/define/ui/tooltip.js.map +1 -1
  205. package/dist/default/define/ui/volume-slider.js +1 -2
  206. package/dist/default/define/ui/volume-slider.js.map +1 -1
  207. package/dist/default/define/video/minimal-skin.css +156 -75
  208. package/dist/default/define/video/minimal-skin.js +5 -4
  209. package/dist/default/define/video/minimal-skin.js.map +1 -1
  210. package/dist/default/define/video/minimal-skin.tailwind.js +6 -7
  211. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  212. package/dist/default/define/video/player.js +1 -2
  213. package/dist/default/define/video/player.js.map +1 -1
  214. package/dist/default/define/video/skin.css +114 -58
  215. package/dist/default/define/video/skin.js +5 -4
  216. package/dist/default/define/video/skin.js.map +1 -1
  217. package/dist/default/define/video/skin.tailwind.js +6 -6
  218. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  219. package/dist/default/icons/dist/render/default/index.js +1 -1
  220. package/dist/default/icons/dist/render/minimal/index.js +1 -1
  221. package/dist/default/index.js +3 -4
  222. package/dist/default/media/background-video/index.js +1 -2
  223. package/dist/default/media/background-video/index.js.map +1 -1
  224. package/dist/default/media/container-element.js +1 -2
  225. package/dist/default/media/container-element.js.map +1 -1
  226. package/dist/default/media/dash-video/index.js +4 -12
  227. package/dist/default/media/dash-video/index.js.map +1 -1
  228. package/dist/default/media/hls-video/index.js +4 -12
  229. package/dist/default/media/hls-video/index.js.map +1 -1
  230. package/dist/default/media/mux-video/index.js +18 -0
  231. package/dist/default/media/mux-video/index.js.map +1 -0
  232. package/dist/default/media/native-hls-video/index.js +18 -0
  233. package/dist/default/media/native-hls-video/index.js.map +1 -0
  234. package/dist/default/media/simple-hls-video/index.js +4 -12
  235. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  236. package/dist/default/player/context.js +1 -2
  237. package/dist/default/player/context.js.map +1 -1
  238. package/dist/default/player/create-player.js +1 -2
  239. package/dist/default/player/create-player.js.map +1 -1
  240. package/dist/default/player/player-controller.js +1 -2
  241. package/dist/default/player/player-controller.js.map +1 -1
  242. package/dist/default/presets/audio.js +1 -2
  243. package/dist/default/presets/background.js +1 -2
  244. package/dist/default/presets/video.js +1 -2
  245. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +14 -18
  246. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  247. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  248. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  249. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  250. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  251. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -4
  252. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  253. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +2 -3
  254. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  255. package/dist/default/skins/dist/default/default/tailwind/components/error.js +2 -3
  256. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  257. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -2
  258. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  259. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  260. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  261. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  262. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  263. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +4 -5
  264. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  265. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +1 -2
  266. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  267. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +2 -3
  268. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
  269. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -3
  270. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  271. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -2
  272. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  273. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +2 -3
  274. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  275. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +2 -3
  276. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  277. package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
  278. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  279. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +25 -20
  280. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  281. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +15 -16
  282. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  283. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  284. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  285. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  286. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  287. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +2 -3
  288. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  289. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  290. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  291. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +2 -3
  292. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  293. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  294. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  295. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  296. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  297. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +1 -1
  298. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -1
  299. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +2 -3
  300. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  301. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +1 -2
  302. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  303. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +2 -3
  304. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
  305. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  306. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  307. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -2
  308. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  309. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  310. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  311. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  312. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  313. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +23 -18
  314. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  315. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +1 -1
  316. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  317. package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js +1 -1
  318. package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -1
  319. package/dist/default/store/container-mixin.js +1 -2
  320. package/dist/default/store/container-mixin.js.map +1 -1
  321. package/dist/default/store/media-attach-mixin.js +1 -2
  322. package/dist/default/store/media-attach-mixin.js.map +1 -1
  323. package/dist/default/store/provider-mixin.js +1 -2
  324. package/dist/default/store/provider-mixin.js.map +1 -1
  325. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js +1 -2
  326. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  327. package/dist/default/ui/alert-dialog/alert-dialog-description-element.js +1 -2
  328. package/dist/default/ui/alert-dialog/alert-dialog-description-element.js.map +1 -1
  329. package/dist/default/ui/alert-dialog/alert-dialog-element.js +1 -2
  330. package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  331. package/dist/default/ui/alert-dialog/alert-dialog-title-element.js +1 -2
  332. package/dist/default/ui/alert-dialog/alert-dialog-title-element.js.map +1 -1
  333. package/dist/default/ui/alert-dialog/context.js +2 -5
  334. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  335. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +1 -2
  336. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  337. package/dist/default/ui/captions-button/captions-button-element.js +1 -2
  338. package/dist/default/ui/captions-button/captions-button-element.js.map +1 -1
  339. package/dist/default/ui/context-part-element.js +1 -2
  340. package/dist/default/ui/context-part-element.js.map +1 -1
  341. package/dist/default/ui/controls/context.js +2 -5
  342. package/dist/default/ui/controls/context.js.map +1 -1
  343. package/dist/default/ui/controls/controls-element.js +1 -2
  344. package/dist/default/ui/controls/controls-element.js.map +1 -1
  345. package/dist/default/ui/controls/controls-group-element.js +1 -2
  346. package/dist/default/ui/controls/controls-group-element.js.map +1 -1
  347. package/dist/default/ui/error-dialog/error-dialog-element.js +76 -0
  348. package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -0
  349. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +1 -2
  350. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  351. package/dist/default/ui/media-button-element.js +1 -2
  352. package/dist/default/ui/media-button-element.js.map +1 -1
  353. package/dist/default/ui/media-element.js +1 -2
  354. package/dist/default/ui/media-element.js.map +1 -1
  355. package/dist/default/ui/media-ui-element.js +1 -2
  356. package/dist/default/ui/media-ui-element.js.map +1 -1
  357. package/dist/default/ui/mute-button/mute-button-element.js +1 -2
  358. package/dist/default/ui/mute-button/mute-button-element.js.map +1 -1
  359. package/dist/default/ui/pip-button/pip-button-element.js +1 -2
  360. package/dist/default/ui/pip-button/pip-button-element.js.map +1 -1
  361. package/dist/default/ui/play-button/play-button-element.js +1 -2
  362. package/dist/default/ui/play-button/play-button-element.js.map +1 -1
  363. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  364. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  365. package/dist/default/ui/popover/popover-element.js +1 -2
  366. package/dist/default/ui/popover/popover-element.js.map +1 -1
  367. package/dist/default/ui/poster/poster-element.js +1 -2
  368. package/dist/default/ui/poster/poster-element.js.map +1 -1
  369. package/dist/default/ui/seek-button/seek-button-element.js +1 -2
  370. package/dist/default/ui/seek-button/seek-button-element.js.map +1 -1
  371. package/dist/default/ui/slider/context.js +2 -5
  372. package/dist/default/ui/slider/context.js.map +1 -1
  373. package/dist/default/ui/slider/slider-buffer-element.js +1 -2
  374. package/dist/default/ui/slider/slider-buffer-element.js.map +1 -1
  375. package/dist/default/ui/slider/slider-element.js +1 -2
  376. package/dist/default/ui/slider/slider-element.js.map +1 -1
  377. package/dist/default/ui/slider/slider-fill-element.js +1 -2
  378. package/dist/default/ui/slider/slider-fill-element.js.map +1 -1
  379. package/dist/default/ui/slider/slider-preview-element.js +1 -2
  380. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  381. package/dist/default/ui/slider/slider-thumb-element.js +1 -2
  382. package/dist/default/ui/slider/slider-thumb-element.js.map +1 -1
  383. package/dist/default/ui/slider/slider-thumbnail-element.js +1 -2
  384. package/dist/default/ui/slider/slider-thumbnail-element.js.map +1 -1
  385. package/dist/default/ui/slider/slider-track-element.js +1 -2
  386. package/dist/default/ui/slider/slider-track-element.js.map +1 -1
  387. package/dist/default/ui/slider/slider-value-element.js +1 -2
  388. package/dist/default/ui/slider/slider-value-element.js.map +1 -1
  389. package/dist/default/ui/thumbnail/thumbnail-element.js +1 -2
  390. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
  391. package/dist/default/ui/time/time-element.js +1 -2
  392. package/dist/default/ui/time/time-element.js.map +1 -1
  393. package/dist/default/ui/time/time-group-element.js +1 -2
  394. package/dist/default/ui/time/time-group-element.js.map +1 -1
  395. package/dist/default/ui/time/time-separator-element.js +1 -2
  396. package/dist/default/ui/time/time-separator-element.js.map +1 -1
  397. package/dist/default/ui/time-slider/time-slider-element.js +1 -2
  398. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  399. package/dist/default/ui/tooltip/context.js +2 -5
  400. package/dist/default/ui/tooltip/context.js.map +1 -1
  401. package/dist/default/ui/tooltip/tooltip-element.js +1 -2
  402. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  403. package/dist/default/ui/tooltip/tooltip-group-element.js +1 -2
  404. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  405. package/dist/default/ui/volume-slider/volume-slider-element.js +1 -2
  406. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  407. package/dist/default/utils/media-props-mixin.js +44 -0
  408. package/dist/default/utils/media-props-mixin.js.map +1 -0
  409. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +2 -2
  410. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  411. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +2 -2
  412. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  413. package/dist/dev/_virtual/inline-css_src/define/background/skin.js +1 -1
  414. package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -1
  415. package/dist/dev/_virtual/inline-css_src/define/base.js +1 -1
  416. package/dist/dev/_virtual/inline-css_src/define/base.js.map +1 -1
  417. package/dist/dev/_virtual/inline-css_src/define/shared.js +1 -1
  418. package/dist/dev/_virtual/inline-css_src/define/shared.js.map +1 -1
  419. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +2 -2
  420. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  421. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +2 -2
  422. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  423. package/dist/dev/define/audio/minimal-skin.css +81 -59
  424. package/dist/dev/define/audio/minimal-skin.d.ts +2 -2
  425. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  426. package/dist/dev/define/audio/minimal-skin.js +20 -7
  427. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  428. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts +1 -1
  429. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
  430. package/dist/dev/define/audio/minimal-skin.tailwind.js +19 -6
  431. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  432. package/dist/dev/define/audio/player.js +1 -2
  433. package/dist/dev/define/audio/player.js.map +1 -1
  434. package/dist/dev/define/audio/skin.css +54 -42
  435. package/dist/dev/define/audio/skin.d.ts +2 -2
  436. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  437. package/dist/dev/define/audio/skin.js +69 -52
  438. package/dist/dev/define/audio/skin.js.map +1 -1
  439. package/dist/dev/define/audio/skin.tailwind.d.ts +1 -1
  440. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
  441. package/dist/dev/define/audio/skin.tailwind.js +71 -53
  442. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  443. package/dist/dev/define/background/player.js +1 -2
  444. package/dist/dev/define/background/player.js.map +1 -1
  445. package/dist/dev/define/background/skin.js +1 -2
  446. package/dist/dev/define/background/skin.js.map +1 -1
  447. package/dist/dev/define/background/video.js +1 -2
  448. package/dist/dev/define/media/background-video.js +1 -2
  449. package/dist/dev/define/media/background-video.js.map +1 -1
  450. package/dist/dev/define/media/container.js +1 -2
  451. package/dist/dev/define/media/container.js.map +1 -1
  452. package/dist/dev/define/media/dash-video.js +1 -2
  453. package/dist/dev/define/media/dash-video.js.map +1 -1
  454. package/dist/dev/define/media/hls-video.js +1 -2
  455. package/dist/dev/define/media/hls-video.js.map +1 -1
  456. package/dist/dev/define/media/mux-video.d.ts +14 -0
  457. package/dist/dev/define/media/mux-video.d.ts.map +1 -0
  458. package/dist/dev/define/media/mux-video.js +13 -0
  459. package/dist/dev/define/media/mux-video.js.map +1 -0
  460. package/dist/dev/define/media/native-hls-video.d.ts +14 -0
  461. package/dist/dev/define/media/native-hls-video.d.ts.map +1 -0
  462. package/dist/dev/define/media/native-hls-video.js +13 -0
  463. package/dist/dev/define/media/native-hls-video.js.map +1 -0
  464. package/dist/dev/define/media/simple-hls-video.d.ts.map +1 -1
  465. package/dist/dev/define/media/simple-hls-video.js +3 -3
  466. package/dist/dev/define/media/simple-hls-video.js.map +1 -1
  467. package/dist/dev/define/safe-define.js +4 -2
  468. package/dist/dev/define/safe-define.js.map +1 -1
  469. package/dist/dev/define/skin-mixin.d.ts +4 -3
  470. package/dist/dev/define/skin-mixin.d.ts.map +1 -1
  471. package/dist/dev/define/skin-mixin.js +30 -11
  472. package/dist/dev/define/skin-mixin.js.map +1 -1
  473. package/dist/dev/define/ui/alert-dialog-close.js +1 -2
  474. package/dist/dev/define/ui/alert-dialog-close.js.map +1 -1
  475. package/dist/dev/define/ui/alert-dialog-description.js +1 -2
  476. package/dist/dev/define/ui/alert-dialog-description.js.map +1 -1
  477. package/dist/dev/define/ui/alert-dialog-title.js +1 -2
  478. package/dist/dev/define/ui/alert-dialog-title.js.map +1 -1
  479. package/dist/dev/define/ui/alert-dialog.js +1 -2
  480. package/dist/dev/define/ui/alert-dialog.js.map +1 -1
  481. package/dist/dev/define/ui/buffering-indicator.js +1 -2
  482. package/dist/dev/define/ui/buffering-indicator.js.map +1 -1
  483. package/dist/dev/define/ui/captions-button.d.ts.map +1 -1
  484. package/dist/dev/define/ui/captions-button.js +3 -3
  485. package/dist/dev/define/ui/captions-button.js.map +1 -1
  486. package/dist/dev/define/ui/controls-group.js +1 -2
  487. package/dist/dev/define/ui/controls-group.js.map +1 -1
  488. package/dist/dev/define/ui/controls.js +1 -2
  489. package/dist/dev/define/ui/controls.js.map +1 -1
  490. package/dist/dev/define/ui/error-dialog.d.ts +9 -0
  491. package/dist/dev/define/ui/error-dialog.d.ts.map +1 -0
  492. package/dist/dev/define/ui/error-dialog.js +13 -0
  493. package/dist/dev/define/ui/error-dialog.js.map +1 -0
  494. package/dist/dev/define/ui/fullscreen-button.js +1 -2
  495. package/dist/dev/define/ui/fullscreen-button.js.map +1 -1
  496. package/dist/dev/define/ui/mute-button.js +1 -2
  497. package/dist/dev/define/ui/mute-button.js.map +1 -1
  498. package/dist/dev/define/ui/pip-button.js +1 -2
  499. package/dist/dev/define/ui/pip-button.js.map +1 -1
  500. package/dist/dev/define/ui/play-button.js +1 -2
  501. package/dist/dev/define/ui/play-button.js.map +1 -1
  502. package/dist/dev/define/ui/playback-rate-button.js +1 -2
  503. package/dist/dev/define/ui/playback-rate-button.js.map +1 -1
  504. package/dist/dev/define/ui/popover.js +1 -2
  505. package/dist/dev/define/ui/popover.js.map +1 -1
  506. package/dist/dev/define/ui/poster.js +1 -2
  507. package/dist/dev/define/ui/poster.js.map +1 -1
  508. package/dist/dev/define/ui/seek-button.js +1 -2
  509. package/dist/dev/define/ui/seek-button.js.map +1 -1
  510. package/dist/dev/define/ui/slider-buffer.js +1 -2
  511. package/dist/dev/define/ui/slider-buffer.js.map +1 -1
  512. package/dist/dev/define/ui/slider-fill.js +1 -2
  513. package/dist/dev/define/ui/slider-fill.js.map +1 -1
  514. package/dist/dev/define/ui/slider-thumb.js +1 -2
  515. package/dist/dev/define/ui/slider-thumb.js.map +1 -1
  516. package/dist/dev/define/ui/slider-thumbnail.js +1 -2
  517. package/dist/dev/define/ui/slider-thumbnail.js.map +1 -1
  518. package/dist/dev/define/ui/slider-track.js +1 -2
  519. package/dist/dev/define/ui/slider-track.js.map +1 -1
  520. package/dist/dev/define/ui/slider-value.js +1 -2
  521. package/dist/dev/define/ui/slider-value.js.map +1 -1
  522. package/dist/dev/define/ui/slider.js +1 -2
  523. package/dist/dev/define/ui/slider.js.map +1 -1
  524. package/dist/dev/define/ui/thumbnail.js +1 -2
  525. package/dist/dev/define/ui/thumbnail.js.map +1 -1
  526. package/dist/dev/define/ui/time-group.js +1 -2
  527. package/dist/dev/define/ui/time-group.js.map +1 -1
  528. package/dist/dev/define/ui/time-separator.js +1 -2
  529. package/dist/dev/define/ui/time-separator.js.map +1 -1
  530. package/dist/dev/define/ui/time-slider.js +1 -2
  531. package/dist/dev/define/ui/time-slider.js.map +1 -1
  532. package/dist/dev/define/ui/time.js +1 -2
  533. package/dist/dev/define/ui/time.js.map +1 -1
  534. package/dist/dev/define/ui/tooltip-group.js +1 -2
  535. package/dist/dev/define/ui/tooltip-group.js.map +1 -1
  536. package/dist/dev/define/ui/tooltip.js +1 -2
  537. package/dist/dev/define/ui/tooltip.js.map +1 -1
  538. package/dist/dev/define/ui/volume-slider.js +1 -2
  539. package/dist/dev/define/ui/volume-slider.js.map +1 -1
  540. package/dist/dev/define/video/minimal-skin.css +156 -75
  541. package/dist/dev/define/video/minimal-skin.d.ts +2 -2
  542. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  543. package/dist/dev/define/video/minimal-skin.js +21 -8
  544. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  545. package/dist/dev/define/video/minimal-skin.tailwind.d.ts +1 -1
  546. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  547. package/dist/dev/define/video/minimal-skin.tailwind.js +22 -11
  548. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  549. package/dist/dev/define/video/player.js +1 -2
  550. package/dist/dev/define/video/player.js.map +1 -1
  551. package/dist/dev/define/video/skin.css +114 -58
  552. package/dist/dev/define/video/skin.d.ts +2 -2
  553. package/dist/dev/define/video/skin.d.ts.map +1 -1
  554. package/dist/dev/define/video/skin.js +103 -86
  555. package/dist/dev/define/video/skin.js.map +1 -1
  556. package/dist/dev/define/video/skin.tailwind.d.ts +1 -1
  557. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  558. package/dist/dev/define/video/skin.tailwind.js +104 -88
  559. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  560. package/dist/dev/icons/dist/render/default/index.js +1 -1
  561. package/dist/dev/icons/dist/render/minimal/index.js +1 -1
  562. package/dist/dev/index.d.ts +3 -2
  563. package/dist/dev/index.js +3 -4
  564. package/dist/dev/media/background-video/index.js +1 -2
  565. package/dist/dev/media/background-video/index.js.map +1 -1
  566. package/dist/dev/media/container-element.js +1 -2
  567. package/dist/dev/media/container-element.js.map +1 -1
  568. package/dist/dev/media/dash-video/index.d.ts +0 -2
  569. package/dist/dev/media/dash-video/index.d.ts.map +1 -1
  570. package/dist/dev/media/dash-video/index.js +4 -12
  571. package/dist/dev/media/dash-video/index.js.map +1 -1
  572. package/dist/dev/media/hls-video/index.d.ts +0 -2
  573. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  574. package/dist/dev/media/hls-video/index.js +4 -12
  575. package/dist/dev/media/hls-video/index.js.map +1 -1
  576. package/dist/dev/media/mux-video/index.d.ts +11 -0
  577. package/dist/dev/media/mux-video/index.d.ts.map +1 -0
  578. package/dist/dev/media/mux-video/index.js +18 -0
  579. package/dist/dev/media/mux-video/index.js.map +1 -0
  580. package/dist/dev/media/native-hls-video/index.d.ts +11 -0
  581. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -0
  582. package/dist/dev/media/native-hls-video/index.js +18 -0
  583. package/dist/dev/media/native-hls-video/index.js.map +1 -0
  584. package/dist/dev/media/simple-hls-video/index.d.ts +0 -2
  585. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  586. package/dist/dev/media/simple-hls-video/index.js +4 -12
  587. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  588. package/dist/dev/player/context.js +1 -2
  589. package/dist/dev/player/context.js.map +1 -1
  590. package/dist/dev/player/create-player.js +1 -2
  591. package/dist/dev/player/create-player.js.map +1 -1
  592. package/dist/dev/player/player-controller.js +1 -2
  593. package/dist/dev/player/player-controller.js.map +1 -1
  594. package/dist/dev/presets/audio.js +1 -2
  595. package/dist/dev/presets/background.js +1 -2
  596. package/dist/dev/presets/video.js +1 -2
  597. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +14 -18
  598. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  599. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  600. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  601. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  602. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  603. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -4
  604. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  605. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +2 -3
  606. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  607. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +2 -3
  608. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  609. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -2
  610. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  611. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  612. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  613. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  614. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  615. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +4 -5
  616. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  617. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +1 -2
  618. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  619. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +2 -3
  620. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
  621. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +2 -3
  622. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  623. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -2
  624. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  625. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +2 -3
  626. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  627. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +2 -3
  628. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  629. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
  630. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  631. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +25 -20
  632. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  633. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +15 -16
  634. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  635. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  636. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  637. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  638. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  639. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +2 -3
  640. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  641. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  642. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  643. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +2 -3
  644. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  645. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  646. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  647. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  648. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  649. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +1 -1
  650. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -1
  651. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +2 -3
  652. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  653. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +1 -2
  654. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  655. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +2 -3
  656. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
  657. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  658. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  659. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -2
  660. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  661. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  662. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  663. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  664. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  665. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +23 -18
  666. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  667. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +1 -1
  668. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  669. package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js +1 -1
  670. package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -1
  671. package/dist/dev/store/container-mixin.js +1 -2
  672. package/dist/dev/store/container-mixin.js.map +1 -1
  673. package/dist/dev/store/media-attach-mixin.js +1 -2
  674. package/dist/dev/store/media-attach-mixin.js.map +1 -1
  675. package/dist/dev/store/provider-mixin.js +1 -2
  676. package/dist/dev/store/provider-mixin.js.map +1 -1
  677. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js +1 -2
  678. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  679. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.js +1 -2
  680. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.js.map +1 -1
  681. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +1 -2
  682. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  683. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.js +1 -2
  684. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.js.map +1 -1
  685. package/dist/dev/ui/alert-dialog/context.js +2 -5
  686. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  687. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +1 -2
  688. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  689. package/dist/dev/ui/captions-button/captions-button-element.js +1 -2
  690. package/dist/dev/ui/captions-button/captions-button-element.js.map +1 -1
  691. package/dist/dev/ui/context-part-element.js +1 -2
  692. package/dist/dev/ui/context-part-element.js.map +1 -1
  693. package/dist/dev/ui/controls/context.js +2 -5
  694. package/dist/dev/ui/controls/context.js.map +1 -1
  695. package/dist/dev/ui/controls/controls-element.js +1 -2
  696. package/dist/dev/ui/controls/controls-element.js.map +1 -1
  697. package/dist/dev/ui/controls/controls-group-element.js +1 -2
  698. package/dist/dev/ui/controls/controls-group-element.js.map +1 -1
  699. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts +16 -0
  700. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -0
  701. package/dist/dev/ui/error-dialog/error-dialog-element.js +76 -0
  702. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -0
  703. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +1 -2
  704. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  705. package/dist/dev/ui/media-button-element.js +1 -2
  706. package/dist/dev/ui/media-button-element.js.map +1 -1
  707. package/dist/dev/ui/media-element.js +1 -2
  708. package/dist/dev/ui/media-element.js.map +1 -1
  709. package/dist/dev/ui/media-ui-element.js +1 -2
  710. package/dist/dev/ui/media-ui-element.js.map +1 -1
  711. package/dist/dev/ui/mute-button/mute-button-element.js +1 -2
  712. package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -1
  713. package/dist/dev/ui/pip-button/pip-button-element.js +1 -2
  714. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
  715. package/dist/dev/ui/play-button/play-button-element.js +1 -2
  716. package/dist/dev/ui/play-button/play-button-element.js.map +1 -1
  717. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  718. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  719. package/dist/dev/ui/popover/popover-element.js +1 -2
  720. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  721. package/dist/dev/ui/poster/poster-element.js +1 -2
  722. package/dist/dev/ui/poster/poster-element.js.map +1 -1
  723. package/dist/dev/ui/seek-button/seek-button-element.js +1 -2
  724. package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -1
  725. package/dist/dev/ui/slider/context.js +2 -5
  726. package/dist/dev/ui/slider/context.js.map +1 -1
  727. package/dist/dev/ui/slider/slider-buffer-element.js +1 -2
  728. package/dist/dev/ui/slider/slider-buffer-element.js.map +1 -1
  729. package/dist/dev/ui/slider/slider-element.js +1 -2
  730. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  731. package/dist/dev/ui/slider/slider-fill-element.js +1 -2
  732. package/dist/dev/ui/slider/slider-fill-element.js.map +1 -1
  733. package/dist/dev/ui/slider/slider-preview-element.js +1 -2
  734. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  735. package/dist/dev/ui/slider/slider-thumb-element.js +1 -2
  736. package/dist/dev/ui/slider/slider-thumb-element.js.map +1 -1
  737. package/dist/dev/ui/slider/slider-thumbnail-element.js +1 -2
  738. package/dist/dev/ui/slider/slider-thumbnail-element.js.map +1 -1
  739. package/dist/dev/ui/slider/slider-track-element.js +1 -2
  740. package/dist/dev/ui/slider/slider-track-element.js.map +1 -1
  741. package/dist/dev/ui/slider/slider-value-element.js +1 -2
  742. package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
  743. package/dist/dev/ui/thumbnail/thumbnail-element.js +1 -2
  744. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
  745. package/dist/dev/ui/time/time-element.js +1 -2
  746. package/dist/dev/ui/time/time-element.js.map +1 -1
  747. package/dist/dev/ui/time/time-group-element.js +1 -2
  748. package/dist/dev/ui/time/time-group-element.js.map +1 -1
  749. package/dist/dev/ui/time/time-separator-element.js +1 -2
  750. package/dist/dev/ui/time/time-separator-element.js.map +1 -1
  751. package/dist/dev/ui/time-slider/time-slider-element.js +1 -2
  752. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  753. package/dist/dev/ui/tooltip/context.js +2 -5
  754. package/dist/dev/ui/tooltip/context.js.map +1 -1
  755. package/dist/dev/ui/tooltip/tooltip-element.js +1 -2
  756. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  757. package/dist/dev/ui/tooltip/tooltip-group-element.js +1 -2
  758. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  759. package/dist/dev/ui/volume-slider/volume-slider-element.js +1 -2
  760. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  761. package/dist/dev/utils/media-props-mixin.js +44 -0
  762. package/dist/dev/utils/media-props-mixin.js.map +1 -0
  763. package/package.json +10 -10
  764. package/cdn/context-Be8C5kVd.js.map +0 -1
  765. package/cdn/context-CUBywtsB.js +0 -14
  766. package/cdn/context-CUBywtsB.js.map +0 -1
  767. package/cdn/create-player-AcfnN3li.js.map +0 -1
  768. package/cdn/create-player-s_qISCpw.js +0 -7
  769. package/cdn/create-player-s_qISCpw.js.map +0 -1
  770. package/cdn/custom-media-element-DqevSVgS.js.map +0 -1
  771. package/cdn/custom-media-element-moFa3UZp.js.map +0 -1
  772. package/cdn/delegate-CzAcT1xm.js.map +0 -1
  773. package/cdn/delegate-Uc-6tQDR.js +0 -2
  774. package/cdn/delegate-Uc-6tQDR.js.map +0 -1
  775. package/cdn/media-attach-mixin-D5_nfJpa.js +0 -2
  776. package/cdn/player-C46h14iP.js +0 -2
  777. package/cdn/poster-odJ4iwIv.js +0 -2
  778. package/cdn/predicate-BG-dj_kF.js +0 -26
  779. package/cdn/predicate-BG-dj_kF.js.map +0 -1
  780. package/cdn/predicate-Y9jDHLpX.js +0 -2
  781. package/cdn/predicate-Y9jDHLpX.js.map +0 -1
  782. package/cdn/safe-define-B8lHgj_K.js +0 -9
  783. package/cdn/safe-define-B8lHgj_K.js.map +0 -1
  784. package/cdn/safe-define-GrHW3P9e.js +0 -2
  785. package/cdn/safe-define-GrHW3P9e.js.map +0 -1
  786. package/cdn/volume-slider-D7BOdSDF.js.map +0 -1
  787. package/cdn/volume-slider-DPeFF5tt.js +0 -8
  788. package/cdn/volume-slider-DPeFF5tt.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import { MediaElement } from "./media-element.js";
2
2
  import { applyElementProps, applyStateDataAttrs, createButton } from "@videojs/core/dom";
3
-
4
3
  //#region src/ui/media-button-element.ts
5
4
  /** Abstract base for HTML custom elements that render a media-control button. */
6
5
  var MediaButtonElement = class extends MediaElement {
@@ -44,7 +43,7 @@ var MediaButtonElement = class extends MediaElement {
44
43
  applyStateDataAttrs(this, state, this.stateAttrMap);
45
44
  }
46
45
  };
47
-
48
46
  //#endregion
49
47
  export { MediaButtonElement };
48
+
50
49
  //# sourceMappingURL=media-button-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-button-element.js","names":["#disconnect"],"sources":["../../../src/ui/media-button-element.ts"],"sourcesContent":["import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-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 MediaUIComponent> 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 #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\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 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, this.core.getAttrs?.(state) ?? {});\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAQA,IAAsB,qBAAtB,cAAgF,aAAa;;;kBAMhF;eACH;;;oBAN6C;GACnD,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAWD,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKA,aAAc,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,MAAKA,WAAY,QAAQ,CAAC;;CAO3E,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKA,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,OAAK,KAAK,WAAW,KAAK;;CAG5B,AAAmB,OAAO,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,KAAK,KAAK,WAAW,MAAM,IAAI,EAAE,CAAC;AAC1D,sBAAoB,MAAM,OAAO,KAAK,aAAa"}
1
+ {"version":3,"file":"media-button-element.js","names":["#disconnect"],"sources":["../../../src/ui/media-button-element.ts"],"sourcesContent":["import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-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 MediaUIComponent> 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 #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\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 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, this.core.getAttrs?.(state) ?? {});\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n"],"mappings":";;;;AAQA,IAAsB,qBAAtB,cAAgF,aAAa;;;kBAMhF;eACH;;;oBAN6C;GACnD,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAWD,cAAsC;CAEtC,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,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;;CAO3E,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;;CAGrB,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,KAAK,KAAK,WAAW,MAAM,IAAI,EAAE,CAAC;AAC1D,sBAAoB,MAAM,OAAO,KAAK,aAAa"}
@@ -1,9 +1,8 @@
1
1
  import { DestroyMixin, ReactiveElement } from "@videojs/element";
2
-
3
2
  //#region src/ui/media-element.ts
4
3
  /** Base class for interactive media UI elements. */
5
4
  var MediaElement = class extends DestroyMixin(ReactiveElement) {};
6
-
7
5
  //#endregion
8
6
  export { MediaElement };
7
+
9
8
  //# sourceMappingURL=media-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-element.js","names":[],"sources":["../../../src/ui/media-element.ts"],"sourcesContent":["import { DestroyMixin, ReactiveElement } from '@videojs/element';\nimport type { Constructor } from '@videojs/utils/types';\n\n/** Base class for interactive media UI elements. */\nexport class MediaElement extends DestroyMixin(ReactiveElement) {}\n\nexport interface MediaElementConstructor extends Constructor<MediaElement> {}\n"],"mappings":";;;;AAIA,IAAa,eAAb,cAAkC,aAAa,gBAAgB,CAAC"}
1
+ {"version":3,"file":"media-element.js","names":[],"sources":["../../../src/ui/media-element.ts"],"sourcesContent":["import { DestroyMixin, ReactiveElement } from '@videojs/element';\nimport type { Constructor } from '@videojs/utils/types';\n\n/** Base class for interactive media UI elements. */\nexport class MediaElement extends DestroyMixin(ReactiveElement) {}\n\nexport interface MediaElementConstructor extends Constructor<MediaElement> {}\n"],"mappings":";;;AAIA,IAAa,eAAb,cAAkC,aAAa,gBAAgB,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { MediaElement } from "./media-element.js";
2
2
  import { applyStateDataAttrs } from "@videojs/core/dom";
3
-
4
3
  //#region src/ui/media-ui-element.ts
5
4
  /** Abstract base for HTML custom elements that display media state with data attributes. */
6
5
  var MediaUIElement = class extends MediaElement {
@@ -16,7 +15,7 @@ var MediaUIElement = class extends MediaElement {
16
15
  applyStateDataAttrs(this, state, this.stateAttrMap);
17
16
  }
18
17
  };
19
-
20
18
  //#endregion
21
19
  export { MediaUIElement };
20
+
22
21
  //# sourceMappingURL=media-ui-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-ui-element.js","names":[],"sources":["../../../src/ui/media-ui-element.ts"],"sourcesContent":["import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that display media state with data attributes. */\nexport abstract class MediaUIElement<Core extends MediaUIComponent> extends MediaElement {\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 override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAQA,IAAsB,iBAAtB,cAA4E,aAAa;CAKvF,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;;CAO3B,AAAmB,OAAO,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,sBAAoB,MAAM,OAAO,KAAK,aAAa"}
1
+ {"version":3,"file":"media-ui-element.js","names":[],"sources":["../../../src/ui/media-ui-element.ts"],"sourcesContent":["import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that display media state with data attributes. */\nexport abstract class MediaUIElement<Core extends MediaUIComponent> extends MediaElement {\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 override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n"],"mappings":";;;;AAQA,IAAsB,iBAAtB,cAA4E,aAAa;CAKvF,oBAAmC;AACjC,QAAM,mBAAmB;;CAO3B,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,sBAAoB,MAAM,OAAO,KAAK,aAAa"}
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
3
3
  import { MediaButtonElement } from "../media-button-element.js";
4
4
  import { MuteButtonCore, MuteButtonDataAttrs } from "@videojs/core";
5
5
  import { selectVolume } from "@videojs/core/dom";
6
-
7
6
  //#region src/ui/mute-button/mute-button-element.ts
8
7
  var MuteButtonElement = class extends MediaButtonElement {
9
8
  constructor(..._args) {
@@ -19,7 +18,7 @@ var MuteButtonElement = class extends MediaButtonElement {
19
18
  this.core.toggle(state);
20
19
  }
21
20
  };
22
-
23
21
  //#endregion
24
22
  export { MuteButtonElement };
23
+
25
24
  //# sourceMappingURL=mute-button-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mute-button-element.js","names":[],"sources":["../../../../src/ui/mute-button/mute-button-element.ts"],"sourcesContent":["import { type MediaVolumeState, MuteButtonCore, MuteButtonDataAttrs } from '@videojs/core';\nimport { selectVolume } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class MuteButtonElement extends MediaButtonElement<MuteButtonCore> {\n static readonly tagName = 'media-mute-button';\n\n protected readonly core = new MuteButtonCore();\n protected readonly stateAttrMap = MuteButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectVolume);\n\n protected activate(state: MediaVolumeState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAa,oBAAb,cAAuC,mBAAmC;;;cAG9C,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,aAAa;;;iBAJ7D;;CAM1B,AAAU,SAAS,OAA+B;AAChD,OAAK,KAAK,OAAO,MAAM"}
1
+ {"version":3,"file":"mute-button-element.js","names":[],"sources":["../../../../src/ui/mute-button/mute-button-element.ts"],"sourcesContent":["import { type MediaVolumeState, MuteButtonCore, MuteButtonDataAttrs } from '@videojs/core';\nimport { selectVolume } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class MuteButtonElement extends MediaButtonElement<MuteButtonCore> {\n static readonly tagName = 'media-mute-button';\n\n protected readonly core = new MuteButtonCore();\n protected readonly stateAttrMap = MuteButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectVolume);\n\n protected activate(state: MediaVolumeState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,oBAAb,cAAuC,mBAAmC;;;cAG9C,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,aAAa;;;iBAJ7D;;CAM1B,SAAmB,OAA+B;AAChD,OAAK,KAAK,OAAO,MAAM"}
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
3
3
  import { MediaButtonElement } from "../media-button-element.js";
4
4
  import { PiPButtonCore, PiPButtonDataAttrs } from "@videojs/core";
5
5
  import { selectPiP } from "@videojs/core/dom";
6
-
7
6
  //#region src/ui/pip-button/pip-button-element.ts
8
7
  var PiPButtonElement = class extends MediaButtonElement {
9
8
  constructor(..._args) {
@@ -19,7 +18,7 @@ var PiPButtonElement = class extends MediaButtonElement {
19
18
  this.core.toggle(state);
20
19
  }
21
20
  };
22
-
23
21
  //#endregion
24
22
  export { PiPButtonElement };
23
+
25
24
  //# sourceMappingURL=pip-button-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pip-button-element.js","names":[],"sources":["../../../../src/ui/pip-button/pip-button-element.ts"],"sourcesContent":["import { type MediaPictureInPictureState, PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { selectPiP } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PiPButtonElement extends MediaButtonElement<PiPButtonCore> {\n static readonly tagName = 'media-pip-button';\n\n protected readonly core = new PiPButtonCore();\n protected readonly stateAttrMap = PiPButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPiP);\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAa,mBAAb,cAAsC,mBAAkC;;;cAG5C,IAAI,eAAe;sBACX;oBACF,IAAI,iBAAiB,MAAM,eAAe,UAAU;;;iBAJ1D;;CAM1B,AAAU,SAAS,OAAyC;AAC1D,OAAK,KAAK,OAAO,MAAM"}
1
+ {"version":3,"file":"pip-button-element.js","names":[],"sources":["../../../../src/ui/pip-button/pip-button-element.ts"],"sourcesContent":["import { type MediaPictureInPictureState, PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { selectPiP } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PiPButtonElement extends MediaButtonElement<PiPButtonCore> {\n static readonly tagName = 'media-pip-button';\n\n protected readonly core = new PiPButtonCore();\n protected readonly stateAttrMap = PiPButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPiP);\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,mBAAb,cAAsC,mBAAkC;;;cAG5C,IAAI,eAAe;sBACX;oBACF,IAAI,iBAAiB,MAAM,eAAe,UAAU;;;iBAJ1D;;CAM1B,SAAmB,OAAyC;AAC1D,OAAK,KAAK,OAAO,MAAM"}
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
3
3
  import { MediaButtonElement } from "../media-button-element.js";
4
4
  import { PlayButtonCore, PlayButtonDataAttrs } from "@videojs/core";
5
5
  import { selectPlayback } from "@videojs/core/dom";
6
-
7
6
  //#region src/ui/play-button/play-button-element.ts
8
7
  var PlayButtonElement = class extends MediaButtonElement {
9
8
  constructor(..._args) {
@@ -19,7 +18,7 @@ var PlayButtonElement = class extends MediaButtonElement {
19
18
  this.core.toggle(state);
20
19
  }
21
20
  };
22
-
23
21
  //#endregion
24
22
  export { PlayButtonElement };
23
+
25
24
  //# sourceMappingURL=play-button-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"play-button-element.js","names":[],"sources":["../../../../src/ui/play-button/play-button-element.ts"],"sourcesContent":["import { type MediaPlaybackState, PlayButtonCore, PlayButtonDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PlayButtonElement extends MediaButtonElement<PlayButtonCore> {\n static readonly tagName = 'media-play-button';\n\n protected readonly core = new PlayButtonCore();\n protected readonly stateAttrMap = PlayButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n\n protected activate(state: MediaPlaybackState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAa,oBAAb,cAAuC,mBAAmC;;;cAG9C,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,eAAe;;;iBAJ/D;;CAM1B,AAAU,SAAS,OAAiC;AAClD,OAAK,KAAK,OAAO,MAAM"}
1
+ {"version":3,"file":"play-button-element.js","names":[],"sources":["../../../../src/ui/play-button/play-button-element.ts"],"sourcesContent":["import { type MediaPlaybackState, PlayButtonCore, PlayButtonDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PlayButtonElement extends MediaButtonElement<PlayButtonCore> {\n static readonly tagName = 'media-play-button';\n\n protected readonly core = new PlayButtonCore();\n protected readonly stateAttrMap = PlayButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n\n protected activate(state: MediaPlaybackState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,oBAAb,cAAuC,mBAAmC;;;cAG9C,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,eAAe;;;iBAJ/D;;CAM1B,SAAmB,OAAiC;AAClD,OAAK,KAAK,OAAO,MAAM"}
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
3
3
  import { MediaButtonElement } from "../media-button-element.js";
4
4
  import { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from "@videojs/core";
5
5
  import { selectPlaybackRate } from "@videojs/core/dom";
6
-
7
6
  //#region src/ui/playback-rate-button/playback-rate-button-element.ts
8
7
  var PlaybackRateButtonElement = class extends MediaButtonElement {
9
8
  constructor(..._args) {
@@ -19,7 +18,7 @@ var PlaybackRateButtonElement = class extends MediaButtonElement {
19
18
  this.core.cycle(state);
20
19
  }
21
20
  };
22
-
23
21
  //#endregion
24
22
  export { PlaybackRateButtonElement };
23
+
25
24
  //# sourceMappingURL=playback-rate-button-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"playback-rate-button-element.js","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button-element.ts"],"sourcesContent":["import { type MediaPlaybackRateState, PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PlaybackRateButtonElement extends MediaButtonElement<PlaybackRateButtonCore> {\n static readonly tagName = 'media-playback-rate-button';\n\n protected readonly core = new PlaybackRateButtonCore();\n protected readonly stateAttrMap = PlaybackRateButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlaybackRate);\n\n protected activate(state: MediaPlaybackRateState): void {\n this.core.cycle(state);\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAa,4BAAb,cAA+C,mBAA2C;;;cAG9D,IAAI,wBAAwB;sBACpB;oBACF,IAAI,iBAAiB,MAAM,eAAe,mBAAmB;;;iBAJnE;;CAM1B,AAAU,SAAS,OAAqC;AACtD,OAAK,KAAK,MAAM,MAAM"}
1
+ {"version":3,"file":"playback-rate-button-element.js","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button-element.ts"],"sourcesContent":["import { type MediaPlaybackRateState, PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PlaybackRateButtonElement extends MediaButtonElement<PlaybackRateButtonCore> {\n static readonly tagName = 'media-playback-rate-button';\n\n protected readonly core = new PlaybackRateButtonCore();\n protected readonly stateAttrMap = PlaybackRateButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlaybackRate);\n\n protected activate(state: MediaPlaybackRateState): void {\n this.core.cycle(state);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,4BAAb,cAA+C,mBAA2C;;;cAG9D,IAAI,wBAAwB;sBACpB;oBACF,IAAI,iBAAiB,MAAM,eAAe,mBAAmB;;;iBAJnE;;CAM1B,SAAmB,OAAqC;AACtD,OAAK,KAAK,MAAM,MAAM"}
@@ -3,7 +3,6 @@ import { PopoverCore, PopoverDataAttrs } from "@videojs/core";
3
3
  import { applyElementProps, applyStateDataAttrs, createPopover, createTransition, getAnchorNameStyle, getAnchorPositionStyle, getPopupPositionRect, resolveOffsets } from "@videojs/core/dom";
4
4
  import { SnapshotController } from "@videojs/store/html";
5
5
  import { applyStyles, supportsAnchorPositioning, tryHidePopover, tryShowPopover } from "@videojs/utils/dom";
6
-
7
6
  //#region src/ui/popover/popover-element.ts
8
7
  var PopoverElement = class extends MediaElement {
9
8
  constructor(..._args) {
@@ -213,7 +212,7 @@ var PopoverElement = class extends MediaElement {
213
212
  this.#resizeObserver = null;
214
213
  }
215
214
  };
216
-
217
215
  //#endregion
218
216
  export { PopoverElement };
217
+
219
218
  //# sourceMappingURL=popover-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover-element.js","names":["#core","#disconnect","#popover","#snapshot","#cleanupPositioning","#cleanupTrigger","#findTrigger","#syncTrigger","#currentTrigger","#syncPositioning","#triggerAbort","#positionAbort","#positionTrigger","#positionFrame","#resizeObserver"],"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';\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 #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 #positionAbort: AbortController | null = null;\n #positionFrame = 0;\n #resizeObserver: ResizeObserver | null = null;\n #positionTrigger: 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.#cleanupPositioning();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#cleanupPositioning();\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.#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.#cleanupPositioning();\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.#syncPositioning();\n }\n\n // --- Trigger discovery ---\n\n #findTrigger(): HTMLElement | null {\n if (!this.id) return null;\n const root = this.getRootNode() as Document | ShadowRoot;\n return root.querySelector<HTMLElement>(`[commandfor=\"${this.id}\"]`);\n }\n\n #syncTrigger(triggerEl: HTMLElement | null): void {\n if (triggerEl === this.#currentTrigger) return;\n\n this.#cleanupPositioning();\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 #syncPositioning(): void {\n if (supportsAnchorPositioning()) return;\n\n const triggerEl = this.#currentTrigger;\n\n if (!triggerEl) return;\n if (this.#positionAbort && this.#positionTrigger === triggerEl) return;\n\n this.#cleanupPositioning();\n this.#positionAbort = new AbortController();\n this.#positionTrigger = triggerEl;\n const { signal } = this.#positionAbort;\n\n const reposition = () => {\n cancelAnimationFrame(this.#positionFrame);\n this.#positionFrame = requestAnimationFrame(() => {\n if (signal.aborted) return;\n this.requestUpdate();\n });\n };\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true, signal });\n window.addEventListener('resize', reposition, { signal });\n\n if (typeof ResizeObserver === 'function') {\n this.#resizeObserver = new ResizeObserver(() => {\n reposition();\n });\n this.#resizeObserver.observe(triggerEl);\n this.#resizeObserver.observe(this);\n }\n\n reposition();\n }\n\n #cleanupPositioning(): void {\n this.#positionAbort?.abort();\n this.#positionAbort = null;\n this.#positionTrigger = null;\n cancelAnimationFrame(this.#positionFrame);\n this.#positionFrame = 0;\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = null;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"popover-element.js","names":["#core","#disconnect","#popover","#snapshot","#cleanupPositioning","#cleanupTrigger","#findTrigger","#syncTrigger","#currentTrigger","#syncPositioning","#triggerAbort","#positionAbort","#positionTrigger","#positionFrame","#resizeObserver"],"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';\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 #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 #positionAbort: AbortController | null = null;\n #positionFrame = 0;\n #resizeObserver: ResizeObserver | null = null;\n #positionTrigger: 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.#cleanupPositioning();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#cleanupPositioning();\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.#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.#cleanupPositioning();\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.#syncPositioning();\n }\n\n // --- Trigger discovery ---\n\n #findTrigger(): HTMLElement | null {\n if (!this.id) return null;\n const root = this.getRootNode() as Document | ShadowRoot;\n return root.querySelector<HTMLElement>(`[commandfor=\"${this.id}\"]`);\n }\n\n #syncTrigger(triggerEl: HTMLElement | null): void {\n if (triggerEl === this.#currentTrigger) return;\n\n this.#cleanupPositioning();\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 #syncPositioning(): void {\n if (supportsAnchorPositioning()) return;\n\n const triggerEl = this.#currentTrigger;\n\n if (!triggerEl) return;\n if (this.#positionAbort && this.#positionTrigger === triggerEl) return;\n\n this.#cleanupPositioning();\n this.#positionAbort = new AbortController();\n this.#positionTrigger = triggerEl;\n const { signal } = this.#positionAbort;\n\n const reposition = () => {\n cancelAnimationFrame(this.#positionFrame);\n this.#positionFrame = requestAnimationFrame(() => {\n if (signal.aborted) return;\n this.requestUpdate();\n });\n };\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true, signal });\n window.addEventListener('resize', reposition, { signal });\n\n if (typeof ResizeObserver === 'function') {\n this.#resizeObserver = new ResizeObserver(() => {\n reposition();\n });\n this.#resizeObserver.observe(triggerEl);\n this.#resizeObserver.observe(this);\n }\n\n reposition();\n }\n\n #cleanupPositioning(): void {\n this.#positionAbort?.abort();\n this.#positionAbort = null;\n this.#positionTrigger = null;\n cancelAnimationFrame(this.#positionFrame);\n this.#positionFrame = 0;\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = null;\n }\n}\n"],"mappings":"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"}
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
3
3
  import { MediaUIElement } from "../media-ui-element.js";
4
4
  import { PosterCore, PosterDataAttrs } from "@videojs/core";
5
5
  import { selectPlayback } from "@videojs/core/dom";
6
-
7
6
  //#region src/ui/poster/poster-element.ts
8
7
  var PosterElement = class extends MediaUIElement {
9
8
  constructor(..._args) {
@@ -16,7 +15,7 @@ var PosterElement = class extends MediaUIElement {
16
15
  this.tagName = "media-poster";
17
16
  }
18
17
  };
19
-
20
18
  //#endregion
21
19
  export { PosterElement };
20
+
22
21
  //# sourceMappingURL=poster-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"poster-element.js","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"sourcesContent":["import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaUIElement } from '../media-ui-element';\n\nexport class PosterElement extends MediaUIElement<PosterCore> {\n static readonly tagName = 'media-poster';\n\n protected readonly core = new PosterCore();\n protected readonly stateAttrMap = PosterDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n}\n"],"mappings":";;;;;;;AAOA,IAAa,gBAAb,cAAmC,eAA2B;;;cAGlC,IAAI,YAAY;sBACR;oBACF,IAAI,iBAAiB,MAAM,eAAe,eAAe;;;iBAJ/D"}
1
+ {"version":3,"file":"poster-element.js","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"sourcesContent":["import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaUIElement } from '../media-ui-element';\n\nexport class PosterElement extends MediaUIElement<PosterCore> {\n static readonly tagName = 'media-poster';\n\n protected readonly core = new PosterCore();\n protected readonly stateAttrMap = PosterDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n}\n"],"mappings":";;;;;;AAOA,IAAa,gBAAb,cAAmC,eAA2B;;;cAGlC,IAAI,YAAY;sBACR;oBACF,IAAI,iBAAiB,MAAM,eAAe,eAAe;;;iBAJ/D"}
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
3
3
  import { MediaButtonElement } from "../media-button-element.js";
4
4
  import { SeekButtonCore, SeekButtonDataAttrs } from "@videojs/core";
5
5
  import { selectTime } from "@videojs/core/dom";
6
-
7
6
  //#region src/ui/seek-button/seek-button-element.ts
8
7
  var SeekButtonElement = class extends MediaButtonElement {
9
8
  constructor(..._args) {
@@ -26,7 +25,7 @@ var SeekButtonElement = class extends MediaButtonElement {
26
25
  this.core.seek(state);
27
26
  }
28
27
  };
29
-
30
28
  //#endregion
31
29
  export { SeekButtonElement };
30
+
32
31
  //# sourceMappingURL=seek-button-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"seek-button-element.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"sourcesContent":["import { type MediaTimeState, SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class SeekButtonElement extends MediaButtonElement<SeekButtonCore> {\n static readonly tagName = 'media-seek-button';\n\n static override properties: PropertyDeclarationMap = {\n ...MediaButtonElement.properties,\n seconds: { type: Number },\n };\n\n seconds = SeekButtonCore.defaultProps.seconds;\n\n protected readonly core = new SeekButtonCore();\n protected readonly stateAttrMap = SeekButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTime);\n\n protected activate(state: MediaTimeState): void {\n this.core.seek(state);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,oBAAb,cAAuC,mBAAmC;;;iBAQ9D,eAAe,aAAa;cAEZ,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,WAAW;;;iBAX3D;;;oBAE2B;GACnD,GAAG,mBAAmB;GACtB,SAAS,EAAE,MAAM,QAAQ;GAC1B;;CAQD,AAAU,SAAS,OAA6B;AAC9C,OAAK,KAAK,KAAK,MAAM"}
1
+ {"version":3,"file":"seek-button-element.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"sourcesContent":["import { type MediaTimeState, SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class SeekButtonElement extends MediaButtonElement<SeekButtonCore> {\n static readonly tagName = 'media-seek-button';\n\n static override properties: PropertyDeclarationMap = {\n ...MediaButtonElement.properties,\n seconds: { type: Number },\n };\n\n seconds = SeekButtonCore.defaultProps.seconds;\n\n protected readonly core = new SeekButtonCore();\n protected readonly stateAttrMap = SeekButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTime);\n\n protected activate(state: MediaTimeState): void {\n this.core.seek(state);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,oBAAb,cAAuC,mBAAmC;;;iBAQ9D,eAAe,aAAa;cAEZ,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,WAAW;;;iBAX3D;;;oBAE2B;GACnD,GAAG,mBAAmB;GACtB,SAAS,EAAE,MAAM,QAAQ;GAC1B;;CAQD,SAAmB,OAA6B;AAC9C,OAAK,KAAK,KAAK,MAAM"}
@@ -1,9 +1,6 @@
1
1
  import { createContext } from "@videojs/element/context";
2
-
3
- //#region src/ui/slider/context.ts
4
- const SLIDER_CONTEXT_KEY = Symbol("@videojs/slider");
5
- const sliderContext = createContext(SLIDER_CONTEXT_KEY);
6
-
2
+ const sliderContext = createContext(Symbol("@videojs/slider"));
7
3
  //#endregion
8
4
  export { sliderContext };
5
+
9
6
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.ts"],"sourcesContent":["import type { SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport { createContext } from '@videojs/element/context';\n\nexport interface SliderContextValue {\n /** Base slider state — children use this for data attributes and value display. */\n state: SliderState;\n /** Maps state keys to `data-*` attribute names for part elements. */\n stateAttrMap: StateAttrMap<SliderState>;\n /** Domain value at the current pointer position (e.g., seconds for time, percent for volume). */\n pointerValue: number;\n /** ARIA attributes for the thumb element (role, tabindex, aria-value*, etc.). */\n thumbAttrs: Record<string, string | number | boolean | undefined>;\n /** Keyboard and focus event handlers for the thumb element. */\n thumbProps: SliderThumbProps;\n /** Optional formatter for value display. Receives domain value and value type. */\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SLIDER_CONTEXT_KEY = Symbol('@videojs/slider');\n\nexport const sliderContext = createContext<SliderContextValue>(SLIDER_CONTEXT_KEY);\n"],"mappings":";;;AAmBA,MAAM,qBAAqB,OAAO,kBAAkB;AAEpD,MAAa,gBAAgB,cAAkC,mBAAmB"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.ts"],"sourcesContent":["import type { SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport { createContext } from '@videojs/element/context';\n\nexport interface SliderContextValue {\n /** Base slider state — children use this for data attributes and value display. */\n state: SliderState;\n /** Maps state keys to `data-*` attribute names for part elements. */\n stateAttrMap: StateAttrMap<SliderState>;\n /** Domain value at the current pointer position (e.g., seconds for time, percent for volume). */\n pointerValue: number;\n /** ARIA attributes for the thumb element (role, tabindex, aria-value*, etc.). */\n thumbAttrs: Record<string, string | number | boolean | undefined>;\n /** Keyboard and focus event handlers for the thumb element. */\n thumbProps: SliderThumbProps;\n /** Optional formatter for value display. Receives domain value and value type. */\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SLIDER_CONTEXT_KEY = Symbol('@videojs/slider');\n\nexport const sliderContext = createContext<SliderContextValue>(SLIDER_CONTEXT_KEY);\n"],"mappings":";AAqBA,MAAa,gBAAgB,cAFF,OAAO,kBAAkB,CAE8B"}
@@ -1,7 +1,6 @@
1
1
  import { ContextPartElement } from "../context-part-element.js";
2
2
  import { sliderContext } from "./context.js";
3
3
  import { ContextConsumer } from "@videojs/element/context";
4
-
5
4
  //#region src/ui/slider/slider-buffer-element.ts
6
5
  var SliderBufferElement = class extends ContextPartElement {
7
6
  constructor(..._args) {
@@ -15,7 +14,7 @@ var SliderBufferElement = class extends ContextPartElement {
15
14
  this.tagName = "media-slider-buffer";
16
15
  }
17
16
  };
18
-
19
17
  //#endregion
20
18
  export { SliderBufferElement };
19
+
21
20
  //# sourceMappingURL=slider-buffer-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-buffer-element.js","names":[],"sources":["../../../../src/ui/slider/slider-buffer-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderBufferElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-buffer';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAb,cAAyC,mBAAgC;;;kBAGzC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
1
+ {"version":3,"file":"slider-buffer-element.js","names":[],"sources":["../../../../src/ui/slider/slider-buffer-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderBufferElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-buffer';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,sBAAb,cAAyC,mBAAgC;;;kBAGzC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
@@ -4,7 +4,6 @@ import { SliderCore, SliderDataAttrs } from "@videojs/core";
4
4
  import { applyElementProps, applyStateDataAttrs, createSlider, getSliderCSSVars } from "@videojs/core/dom";
5
5
  import { ContextProvider } from "@videojs/element/context";
6
6
  import { applyStyles, isRTL } from "@videojs/utils/dom";
7
-
8
7
  //#region src/ui/slider/slider-element.ts
9
8
  var SliderElement = class extends MediaElement {
10
9
  constructor(..._args) {
@@ -116,7 +115,7 @@ var SliderElement = class extends MediaElement {
116
115
  });
117
116
  }
118
117
  };
119
-
120
118
  //#endregion
121
119
  export { SliderElement };
120
+
122
121
  //# sourceMappingURL=slider-element.js.map
@@ -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,7 +1,6 @@
1
1
  import { ContextPartElement } from "../context-part-element.js";
2
2
  import { sliderContext } from "./context.js";
3
3
  import { ContextConsumer } from "@videojs/element/context";
4
-
5
4
  //#region src/ui/slider/slider-fill-element.ts
6
5
  var SliderFillElement = class extends ContextPartElement {
7
6
  constructor(..._args) {
@@ -15,7 +14,7 @@ var SliderFillElement = class extends ContextPartElement {
15
14
  this.tagName = "media-slider-fill";
16
15
  }
17
16
  };
18
-
19
17
  //#endregion
20
18
  export { SliderFillElement };
19
+
21
20
  //# sourceMappingURL=slider-fill-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-fill-element.js","names":[],"sources":["../../../../src/ui/slider/slider-fill-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderFillElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-fill';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;;AAMA,IAAa,oBAAb,cAAuC,mBAAgC;;;kBAGvC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
1
+ {"version":3,"file":"slider-fill-element.js","names":[],"sources":["../../../../src/ui/slider/slider-fill-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderFillElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-fill';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,oBAAb,cAAuC,mBAAgC;;;kBAGvC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
@@ -3,7 +3,6 @@ import { sliderContext } from "./context.js";
3
3
  import { applyStateDataAttrs, getSliderPreviewStyle } from "@videojs/core/dom";
4
4
  import { ContextConsumer } from "@videojs/element/context";
5
5
  import { applyStyles } from "@videojs/utils/dom";
6
-
7
6
  //#region src/ui/slider/slider-preview-element.ts
8
7
  var SliderPreviewElement = class extends MediaElement {
9
8
  constructor(..._args) {
@@ -45,7 +44,7 @@ var SliderPreviewElement = class extends MediaElement {
45
44
  this.#applyPosition();
46
45
  }
47
46
  };
48
-
49
47
  //#endregion
50
48
  export { SliderPreviewElement };
49
+
51
50
  //# sourceMappingURL=slider-preview-element.js.map
@@ -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,CAASA,MAAO,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,kBAAyC;CACzC,SAAS;CAET,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,iBAAkB,IAAI,gBAAgB,CAAC,WAAW;AACrD,SAAKC,QAAS,MAAO,YAAY;AACjC,SAAKC,eAAgB;IACrB;AAEF,QAAKF,eAAgB,QAAQ,KAAK;;CAGpC,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKA,gBAAiB,YAAY;AAClC,QAAKA,iBAAkB;;CAGzB,iBAAuB;AACrB,cAAY,MAAM,sBAAsB,MAAKC,OAAQ,KAAK,SAAS,CAAC;;CAGtE,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAKF,IAAK;AACtB,MAAI,IAAK,qBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa;AAE/D,QAAKG,eAAgB"}
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"}
@@ -2,7 +2,6 @@ import { MediaElement } from "../media-element.js";
2
2
  import { sliderContext } from "./context.js";
3
3
  import { applyElementProps, applyStateDataAttrs } from "@videojs/core/dom";
4
4
  import { ContextConsumer } from "@videojs/element/context";
5
-
6
5
  //#region src/ui/slider/slider-thumb-element.ts
7
6
  var SliderThumbElement = class extends MediaElement {
8
7
  static {
@@ -37,7 +36,7 @@ var SliderThumbElement = class extends MediaElement {
37
36
  applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);
38
37
  }
39
38
  };
40
-
41
39
  //#endregion
42
40
  export { SliderThumbElement };
41
+
43
42
  //# sourceMappingURL=slider-thumb-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-thumb-element.js","names":["#ctx","#disconnect","#thumbPropsApplied"],"sources":["../../../../src/ui/slider/slider-thumb-element.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderThumbElement extends MediaElement {\n static readonly tagName = 'media-slider-thumb';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #disconnect: AbortController | null = null;\n #thumbPropsApplied = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n this.#thumbPropsApplied = false;\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n this.#thumbPropsApplied = false;\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 // Apply keyboard and focus handlers once — they don't change per slider instance.\n if (!this.#thumbPropsApplied && this.#disconnect) {\n applyElementProps(this, ctx.thumbProps, { signal: this.#disconnect.signal });\n this.#thumbPropsApplied = true;\n }\n\n // Apply ARIA attributes every update (values change as slider moves).\n applyElementProps(this, ctx.thumbAttrs);\n\n // Apply state data attributes.\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,qBAAb,cAAwC,aAAa;;iBACzB;;CAE1B,CAASA,MAAO,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,cAAsC;CACtC,qBAAqB;CAErB,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AACzB,QAAKC,aAAc,IAAI,iBAAiB;AACxC,QAAKC,oBAAqB;;CAG5B,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKD,YAAa,OAAO;AACzB,QAAKA,aAAc;AACnB,QAAKC,oBAAqB;;CAG5B,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAKF,IAAK;AACtB,MAAI,CAAC,IAAK;AAGV,MAAI,CAAC,MAAKE,qBAAsB,MAAKD,YAAa;AAChD,qBAAkB,MAAM,IAAI,YAAY,EAAE,QAAQ,MAAKA,WAAY,QAAQ,CAAC;AAC5E,SAAKC,oBAAqB;;AAI5B,oBAAkB,MAAM,IAAI,WAAW;AAGvC,sBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
1
+ {"version":3,"file":"slider-thumb-element.js","names":["#ctx","#disconnect","#thumbPropsApplied"],"sources":["../../../../src/ui/slider/slider-thumb-element.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderThumbElement extends MediaElement {\n static readonly tagName = 'media-slider-thumb';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #disconnect: AbortController | null = null;\n #thumbPropsApplied = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n this.#thumbPropsApplied = false;\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n this.#thumbPropsApplied = false;\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 // Apply keyboard and focus handlers once — they don't change per slider instance.\n if (!this.#thumbPropsApplied && this.#disconnect) {\n applyElementProps(this, ctx.thumbProps, { signal: this.#disconnect.signal });\n this.#thumbPropsApplied = true;\n }\n\n // Apply ARIA attributes every update (values change as slider moves).\n applyElementProps(this, ctx.thumbAttrs);\n\n // Apply state data attributes.\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,qBAAb,cAAwC,aAAa;;iBACzB;;CAE1B,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,cAAsC;CACtC,qBAAqB;CAErB,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,QAAA,aAAmB,IAAI,iBAAiB;AACxC,QAAA,oBAA0B;;CAG5B,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;AACnB,QAAA,oBAA0B;;CAG5B,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,CAAC,IAAK;AAGV,MAAI,CAAC,MAAA,qBAA2B,MAAA,YAAkB;AAChD,qBAAkB,MAAM,IAAI,YAAY,EAAE,QAAQ,MAAA,WAAiB,QAAQ,CAAC;AAC5E,SAAA,oBAA0B;;AAI5B,oBAAkB,MAAM,IAAI,WAAW;AAGvC,sBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
@@ -1,7 +1,6 @@
1
1
  import { sliderContext } from "./context.js";
2
2
  import { ThumbnailElement } from "../thumbnail/thumbnail-element.js";
3
3
  import { ContextConsumer } from "@videojs/element/context";
4
-
5
4
  //#region src/ui/slider/slider-thumbnail-element.ts
6
5
  var SliderThumbnailElement = class extends ThumbnailElement {
7
6
  static {
@@ -17,7 +16,7 @@ var SliderThumbnailElement = class extends ThumbnailElement {
17
16
  super.update(changed);
18
17
  }
19
18
  };
20
-
21
19
  //#endregion
22
20
  export { SliderThumbnailElement };
21
+
23
22
  //# sourceMappingURL=slider-thumbnail-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-thumbnail-element.js","names":["#ctx"],"sources":["../../../../src/ui/slider/slider-thumbnail-element.ts"],"sourcesContent":["import type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ThumbnailElement } from '../thumbnail/thumbnail-element';\nimport { sliderContext } from './context';\n\n// @ts-expect-error TS2417 — tagName narrows to a different literal for custom element registration.\nexport class SliderThumbnailElement extends ThumbnailElement {\n static override readonly tagName = 'media-slider-thumbnail';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n protected override update(changed: PropertyValues): void {\n const ctx = this.#ctx.value;\n if (ctx) this.time = ctx.pointerValue;\n super.update(changed);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,yBAAb,cAA4C,iBAAiB;;iBACxB;;CAEnC,CAASA,MAAO,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,AAAmB,OAAO,SAA+B;EACvD,MAAM,MAAM,MAAKA,IAAK;AACtB,MAAI,IAAK,MAAK,OAAO,IAAI;AACzB,QAAM,OAAO,QAAQ"}
1
+ {"version":3,"file":"slider-thumbnail-element.js","names":["#ctx"],"sources":["../../../../src/ui/slider/slider-thumbnail-element.ts"],"sourcesContent":["import type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ThumbnailElement } from '../thumbnail/thumbnail-element';\nimport { sliderContext } from './context';\n\n// @ts-expect-error TS2417 — tagName narrows to a different literal for custom element registration.\nexport class SliderThumbnailElement extends ThumbnailElement {\n static override readonly tagName = 'media-slider-thumbnail';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n protected override update(changed: PropertyValues): void {\n const ctx = this.#ctx.value;\n if (ctx) this.time = ctx.pointerValue;\n super.update(changed);\n }\n}\n"],"mappings":";;;;AAOA,IAAa,yBAAb,cAA4C,iBAAiB;;iBACxB;;CAEnC,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,OAA0B,SAA+B;EACvD,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,IAAK,MAAK,OAAO,IAAI;AACzB,QAAM,OAAO,QAAQ"}
@@ -1,7 +1,6 @@
1
1
  import { ContextPartElement } from "../context-part-element.js";
2
2
  import { sliderContext } from "./context.js";
3
3
  import { ContextConsumer } from "@videojs/element/context";
4
-
5
4
  //#region src/ui/slider/slider-track-element.ts
6
5
  var SliderTrackElement = class extends ContextPartElement {
7
6
  constructor(..._args) {
@@ -15,7 +14,7 @@ var SliderTrackElement = class extends ContextPartElement {
15
14
  this.tagName = "media-slider-track";
16
15
  }
17
16
  };
18
-
19
17
  //#endregion
20
18
  export { SliderTrackElement };
19
+
21
20
  //# sourceMappingURL=slider-track-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-track-element.js","names":[],"sources":["../../../../src/ui/slider/slider-track-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderTrackElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-track';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;;AAMA,IAAa,qBAAb,cAAwC,mBAAgC;;;kBAGxC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
1
+ {"version":3,"file":"slider-track-element.js","names":[],"sources":["../../../../src/ui/slider/slider-track-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderTrackElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-track';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,qBAAb,cAAwC,mBAAgC;;;kBAGxC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
@@ -2,7 +2,6 @@ import { MediaElement } from "../media-element.js";
2
2
  import { sliderContext } from "./context.js";
3
3
  import { applyStateDataAttrs } from "@videojs/core/dom";
4
4
  import { ContextConsumer } from "@videojs/element/context";
5
-
6
5
  //#region src/ui/slider/slider-value-element.ts
7
6
  var SliderValueElement = class extends MediaElement {
8
7
  constructor(..._args) {
@@ -32,7 +31,7 @@ var SliderValueElement = class extends MediaElement {
32
31
  applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);
33
32
  }
34
33
  };
35
-
36
34
  //#endregion
37
35
  export { SliderValueElement };
36
+
38
37
  //# sourceMappingURL=slider-value-element.js.map