@videojs/html 10.0.0-beta.10 → 10.0.0-beta.12

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 (814) 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 -11
  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 -56
  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 -3
  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-Cwxvswyv.js → create-player-BoPlCSNw.js} +103 -19
  18. package/cdn/create-player-BoPlCSNw.js.map +1 -0
  19. package/cdn/create-player-CA3KLZMe.js +7 -0
  20. package/cdn/create-player-CA3KLZMe.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-CSc5c0ZR.js +57 -0
  26. package/cdn/delegate-CSc5c0ZR.js.map +1 -0
  27. package/cdn/delegate-jczJeizF.js +2 -0
  28. package/cdn/delegate-jczJeizF.js.map +1 -0
  29. package/cdn/hls-C6htsSW4.js +28661 -0
  30. package/cdn/hls-C6htsSW4.js.map +1 -0
  31. package/cdn/hls-DQ4glyHe.js +41 -0
  32. package/cdn/hls-DQ4glyHe.js.map +1 -0
  33. package/cdn/{listen-BXAYCbZA.js → listen-BkAEGXCe.js} +1 -1
  34. package/cdn/{listen-BXAYCbZA.js.map → listen-BkAEGXCe.js.map} +1 -1
  35. package/cdn/{listen-DX5vU4s4.js → listen-UqQNdlqV.js} +1 -1
  36. package/cdn/{listen-DX5vU4s4.js.map → listen-UqQNdlqV.js.map} +1 -1
  37. package/cdn/media/dash-video.dev.js +10 -15
  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 -28334
  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 +2593 -2263
  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-BIrlT_tz.js +2 -0
  55. package/cdn/{media-attach-mixin-tFNcHnvo.js.map → media-attach-mixin-BIrlT_tz.js.map} +1 -1
  56. package/cdn/{media-attach-mixin-ChyNp2eK.js → media-attach-mixin-Dsn4gxJA.js} +2 -2
  57. package/cdn/{media-attach-mixin-ChyNp2eK.js.map → media-attach-mixin-Dsn4gxJA.js.map} +1 -1
  58. package/cdn/{proxy-2oO2ph3m.js → media-props-mixin-BuVUebRp.js} +6 -6
  59. package/cdn/media-props-mixin-BuVUebRp.js.map +1 -0
  60. package/cdn/{proxy-dR7IDk37.js → media-props-mixin-DxsM38Bx.js} +42 -46
  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-Dzvu8Tzs.js +2 -0
  67. package/cdn/{player-BHhLXO-R.js.map → player-Dzvu8Tzs.js.map} +1 -1
  68. package/cdn/{player-DEfj0RU6.js → player-rkxd0mpV.js} +3 -3
  69. package/cdn/{player-DEfj0RU6.js.map → player-rkxd0mpV.js.map} +1 -1
  70. package/cdn/{poster-Dd0F1rRd.js → poster-BPMPXyn3.js} +4 -5
  71. package/cdn/{poster-Dd0F1rRd.js.map → poster-BPMPXyn3.js.map} +1 -1
  72. package/cdn/poster-DqjXzMK_.js +2 -0
  73. package/cdn/{poster-DwQ3RAch.js.map → poster-DqjXzMK_.js.map} +1 -1
  74. package/cdn/{context-DTY0nOpS.js → safe-define-D26LrTu4.js} +79 -2
  75. package/cdn/safe-define-D26LrTu4.js.map +1 -0
  76. package/cdn/safe-define-EEn8NTOG.js +14 -0
  77. package/cdn/safe-define-EEn8NTOG.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 -12
  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-DgJ0rAfC.js → volume-slider-BEXiB6_j.js} +245 -14
  91. package/cdn/volume-slider-BEXiB6_j.js.map +1 -0
  92. package/cdn/volume-slider-CQ0Yq947.js +9 -0
  93. package/cdn/volume-slider-CQ0Yq947.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 +4 -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 +2 -3
  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 +2 -3
  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 +2 -3
  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 +2 -3
  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 +2 -3
  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 +2 -3
  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 +2 -3
  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 +2 -3
  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 +2 -3
  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 +2 -3
  366. package/dist/default/ui/popover/popover-element.js.map +1 -1
  367. package/dist/default/ui/poster/poster-element.js +2 -3
  368. package/dist/default/ui/poster/poster-element.js.map +1 -1
  369. package/dist/default/ui/seek-button/seek-button-element.js +2 -3
  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 +2 -3
  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 +2 -3
  390. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
  391. package/dist/default/ui/time/time-element.js +2 -3
  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 +2 -3
  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 +2 -3
  402. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  403. package/dist/default/ui/tooltip/tooltip-group-element.js +2 -3
  404. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  405. package/dist/default/ui/volume-slider/volume-slider-element.js +2 -3
  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 -1
  563. package/dist/dev/index.js +4 -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.d.ts +1 -1
  680. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.js +1 -2
  681. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.js.map +1 -1
  682. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +2 -3
  683. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  684. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.d.ts +1 -1
  685. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.js +1 -2
  686. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.js.map +1 -1
  687. package/dist/dev/ui/alert-dialog/context.js +2 -5
  688. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  689. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +2 -3
  690. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  691. package/dist/dev/ui/captions-button/captions-button-element.d.ts +1 -1
  692. package/dist/dev/ui/captions-button/captions-button-element.js +2 -3
  693. package/dist/dev/ui/captions-button/captions-button-element.js.map +1 -1
  694. package/dist/dev/ui/context-part-element.d.ts +1 -1
  695. package/dist/dev/ui/context-part-element.js +1 -2
  696. package/dist/dev/ui/context-part-element.js.map +1 -1
  697. package/dist/dev/ui/controls/context.js +2 -5
  698. package/dist/dev/ui/controls/context.js.map +1 -1
  699. package/dist/dev/ui/controls/controls-element.js +2 -3
  700. package/dist/dev/ui/controls/controls-element.js.map +1 -1
  701. package/dist/dev/ui/controls/controls-group-element.d.ts +1 -1
  702. package/dist/dev/ui/controls/controls-group-element.js +1 -2
  703. package/dist/dev/ui/controls/controls-group-element.js.map +1 -1
  704. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts +16 -0
  705. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -0
  706. package/dist/dev/ui/error-dialog/error-dialog-element.js +76 -0
  707. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -0
  708. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +1 -1
  709. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +2 -3
  710. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  711. package/dist/dev/ui/media-button-element.d.ts +1 -1
  712. package/dist/dev/ui/media-button-element.js +1 -2
  713. package/dist/dev/ui/media-button-element.js.map +1 -1
  714. package/dist/dev/ui/media-element.js +1 -2
  715. package/dist/dev/ui/media-element.js.map +1 -1
  716. package/dist/dev/ui/media-ui-element.d.ts +1 -1
  717. package/dist/dev/ui/media-ui-element.js +1 -2
  718. package/dist/dev/ui/media-ui-element.js.map +1 -1
  719. package/dist/dev/ui/mute-button/mute-button-element.d.ts +1 -1
  720. package/dist/dev/ui/mute-button/mute-button-element.js +2 -3
  721. package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -1
  722. package/dist/dev/ui/pip-button/pip-button-element.d.ts +1 -1
  723. package/dist/dev/ui/pip-button/pip-button-element.js +2 -3
  724. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
  725. package/dist/dev/ui/play-button/play-button-element.d.ts +1 -1
  726. package/dist/dev/ui/play-button/play-button-element.js +2 -3
  727. package/dist/dev/ui/play-button/play-button-element.js.map +1 -1
  728. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +1 -1
  729. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +2 -3
  730. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  731. package/dist/dev/ui/popover/popover-element.d.ts +1 -1
  732. package/dist/dev/ui/popover/popover-element.js +2 -3
  733. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  734. package/dist/dev/ui/poster/poster-element.d.ts +1 -1
  735. package/dist/dev/ui/poster/poster-element.js +2 -3
  736. package/dist/dev/ui/poster/poster-element.js.map +1 -1
  737. package/dist/dev/ui/seek-button/seek-button-element.d.ts +1 -1
  738. package/dist/dev/ui/seek-button/seek-button-element.js +2 -3
  739. package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -1
  740. package/dist/dev/ui/slider/context.d.ts +1 -1
  741. package/dist/dev/ui/slider/context.js +2 -5
  742. package/dist/dev/ui/slider/context.js.map +1 -1
  743. package/dist/dev/ui/slider/slider-buffer-element.d.ts +1 -1
  744. package/dist/dev/ui/slider/slider-buffer-element.js +1 -2
  745. package/dist/dev/ui/slider/slider-buffer-element.js.map +1 -1
  746. package/dist/dev/ui/slider/slider-element.d.ts +1 -1
  747. package/dist/dev/ui/slider/slider-element.js +2 -3
  748. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  749. package/dist/dev/ui/slider/slider-fill-element.d.ts +1 -1
  750. package/dist/dev/ui/slider/slider-fill-element.js +1 -2
  751. package/dist/dev/ui/slider/slider-fill-element.js.map +1 -1
  752. package/dist/dev/ui/slider/slider-preview-element.js +1 -2
  753. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  754. package/dist/dev/ui/slider/slider-thumb-element.js +1 -2
  755. package/dist/dev/ui/slider/slider-thumb-element.js.map +1 -1
  756. package/dist/dev/ui/slider/slider-thumbnail-element.js +1 -2
  757. package/dist/dev/ui/slider/slider-thumbnail-element.js.map +1 -1
  758. package/dist/dev/ui/slider/slider-track-element.d.ts +1 -1
  759. package/dist/dev/ui/slider/slider-track-element.js +1 -2
  760. package/dist/dev/ui/slider/slider-track-element.js.map +1 -1
  761. package/dist/dev/ui/slider/slider-value-element.js +1 -2
  762. package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
  763. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts +1 -1
  764. package/dist/dev/ui/thumbnail/thumbnail-element.js +2 -3
  765. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
  766. package/dist/dev/ui/time/time-element.d.ts +1 -1
  767. package/dist/dev/ui/time/time-element.js +2 -3
  768. package/dist/dev/ui/time/time-element.js.map +1 -1
  769. package/dist/dev/ui/time/time-group-element.js +1 -2
  770. package/dist/dev/ui/time/time-group-element.js.map +1 -1
  771. package/dist/dev/ui/time/time-separator-element.js +1 -2
  772. package/dist/dev/ui/time/time-separator-element.js.map +1 -1
  773. package/dist/dev/ui/time-slider/time-slider-element.d.ts +1 -1
  774. package/dist/dev/ui/time-slider/time-slider-element.js +2 -3
  775. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  776. package/dist/dev/ui/tooltip/context.js +2 -5
  777. package/dist/dev/ui/tooltip/context.js.map +1 -1
  778. package/dist/dev/ui/tooltip/tooltip-element.d.ts +1 -1
  779. package/dist/dev/ui/tooltip/tooltip-element.js +2 -3
  780. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  781. package/dist/dev/ui/tooltip/tooltip-group-element.js +2 -3
  782. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  783. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +1 -1
  784. package/dist/dev/ui/volume-slider/volume-slider-element.js +2 -3
  785. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  786. package/dist/dev/utils/media-props-mixin.js +44 -0
  787. package/dist/dev/utils/media-props-mixin.js.map +1 -0
  788. package/package.json +12 -12
  789. package/cdn/context-C_e06fGU.js +0 -13
  790. package/cdn/context-C_e06fGU.js.map +0 -1
  791. package/cdn/context-DTY0nOpS.js.map +0 -1
  792. package/cdn/create-player-BTIU8EwT.js +0 -7
  793. package/cdn/create-player-BTIU8EwT.js.map +0 -1
  794. package/cdn/create-player-Cwxvswyv.js.map +0 -1
  795. package/cdn/media-attach-mixin-tFNcHnvo.js +0 -2
  796. package/cdn/player-BHhLXO-R.js +0 -2
  797. package/cdn/poster-DwQ3RAch.js +0 -2
  798. package/cdn/predicate-BG-dj_kF.js +0 -26
  799. package/cdn/predicate-BG-dj_kF.js.map +0 -1
  800. package/cdn/predicate-Y9jDHLpX.js +0 -2
  801. package/cdn/predicate-Y9jDHLpX.js.map +0 -1
  802. package/cdn/proxy-2oO2ph3m.js.map +0 -1
  803. package/cdn/proxy-6KS6wy69.js +0 -2
  804. package/cdn/proxy-6KS6wy69.js.map +0 -1
  805. package/cdn/proxy-XzDf9gyk.js +0 -66
  806. package/cdn/proxy-XzDf9gyk.js.map +0 -1
  807. package/cdn/proxy-dR7IDk37.js.map +0 -1
  808. package/cdn/safe-define-B8lHgj_K.js +0 -9
  809. package/cdn/safe-define-B8lHgj_K.js.map +0 -1
  810. package/cdn/safe-define-GrHW3P9e.js +0 -2
  811. package/cdn/safe-define-GrHW3P9e.js.map +0 -1
  812. package/cdn/volume-slider-DgJ0rAfC.js.map +0 -1
  813. package/cdn/volume-slider-Pd0AMTCH.js +0 -8
  814. package/cdn/volume-slider-Pd0AMTCH.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/icon-state.js"],"sourcesContent":["//#region src/shared/tailwind/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t},\n\tpip: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-pip:block group-data-pip:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD,KAAK;EACJ,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
1
+ {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/icon-state.js"],"sourcesContent":["//#region src/shared/tailwind/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t},\n\tpip: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-pip:block group-data-pip:opacity-100\"\n\t}\n};\n//#endregion\nexport { iconState };\n\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD,KAAK;EACJ,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
@@ -22,7 +22,7 @@ const tooltipState = {
22
22
  exit: "hidden group-has-data-pip/pip-tip:block"
23
23
  }
24
24
  };
25
-
26
25
  //#endregion
27
26
  export { tooltipState };
27
+
28
28
  //# sourceMappingURL=tooltip-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/tooltip-state.js"],"sourcesContent":["//#region src/shared/tailwind/tooltip-state.ts\nconst tooltipState = {\n\tplay: {\n\t\twrapper: \"contents group/play-tip\",\n\t\treplay: \"hidden group-has-data-ended/play-tip:block\",\n\t\tplay: \"hidden group-[:has([data-paused]):not(:has([data-ended]))]/play-tip:block\",\n\t\tpause: \"hidden group-[:not(:has([data-paused])):not(:has([data-ended]))]/play-tip:block\"\n\t},\n\tfullscreen: {\n\t\twrapper: \"contents group/fullscreen-tip\",\n\t\tenter: \"hidden group-[:not(:has([data-fullscreen]))]/fullscreen-tip:block\",\n\t\texit: \"hidden group-has-data-fullscreen/fullscreen-tip:block\"\n\t},\n\tcaptions: {\n\t\twrapper: \"contents group/captions-tip\",\n\t\tenable: \"hidden group-[:not(:has([data-active]))]/captions-tip:block\",\n\t\tdisable: \"hidden group-has-data-active/captions-tip:block\"\n\t},\n\tpip: {\n\t\twrapper: \"contents group/pip-tip\",\n\t\tenter: \"hidden group-[:not(:has([data-pip]))]/pip-tip:block\",\n\t\texit: \"hidden group-has-data-pip/pip-tip:block\"\n\t}\n};\n\n//#endregion\nexport { tooltipState };\n//# sourceMappingURL=tooltip-state.js.map"],"mappings":";AACA,MAAM,eAAe;CACpB,MAAM;EACL,SAAS;EACT,QAAQ;EACR,MAAM;EACN,OAAO;EACP;CACD,YAAY;EACX,SAAS;EACT,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,SAAS;EACT,QAAQ;EACR,SAAS;EACT;CACD,KAAK;EACJ,SAAS;EACT,OAAO;EACP,MAAM;EACN;CACD"}
1
+ {"version":3,"file":"tooltip-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/tooltip-state.js"],"sourcesContent":["//#region src/shared/tailwind/tooltip-state.ts\nconst tooltipState = {\n\tplay: {\n\t\twrapper: \"contents group/play-tip\",\n\t\treplay: \"hidden group-has-data-ended/play-tip:block\",\n\t\tplay: \"hidden group-[:has([data-paused]):not(:has([data-ended]))]/play-tip:block\",\n\t\tpause: \"hidden group-[:not(:has([data-paused])):not(:has([data-ended]))]/play-tip:block\"\n\t},\n\tfullscreen: {\n\t\twrapper: \"contents group/fullscreen-tip\",\n\t\tenter: \"hidden group-[:not(:has([data-fullscreen]))]/fullscreen-tip:block\",\n\t\texit: \"hidden group-has-data-fullscreen/fullscreen-tip:block\"\n\t},\n\tcaptions: {\n\t\twrapper: \"contents group/captions-tip\",\n\t\tenable: \"hidden group-[:not(:has([data-active]))]/captions-tip:block\",\n\t\tdisable: \"hidden group-has-data-active/captions-tip:block\"\n\t},\n\tpip: {\n\t\twrapper: \"contents group/pip-tip\",\n\t\tenter: \"hidden group-[:not(:has([data-pip]))]/pip-tip:block\",\n\t\texit: \"hidden group-has-data-pip/pip-tip:block\"\n\t}\n};\n//#endregion\nexport { tooltipState };\n\n//# sourceMappingURL=tooltip-state.js.map"],"mappings":";AACA,MAAM,eAAe;CACpB,MAAM;EACL,SAAS;EACT,QAAQ;EACR,MAAM;EACN,OAAO;EACP;CACD,YAAY;EACX,SAAS;EACT,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,SAAS;EACT,QAAQ;EACR,SAAS;EACT;CACD,KAAK;EACJ,SAAS;EACT,OAAO;EACP,MAAM;EACN;CACD"}
@@ -1,5 +1,4 @@
1
1
  import { ContextConsumer } from "@videojs/element/context";
2
-
3
2
  //#region src/store/container-mixin.ts
4
3
  /**
5
4
  * Create a mixin that consumes player context and registers itself as the
@@ -45,7 +44,7 @@ function createContainerMixin(config) {
45
44
  return PlayerContainerElement;
46
45
  };
47
46
  }
48
-
49
47
  //#endregion
50
48
  export { createContainerMixin };
49
+
51
50
  //# sourceMappingURL=container-mixin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-mixin.js","names":["#contextStore","#setContainer"],"sources":["../../../src/store/container-mixin.ts"],"sourcesContent":["import type { MediaContainer, PlayerStore } from '@videojs/core/dom';\nimport { ContextConsumer } from '@videojs/element/context';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, PlayerContext } from '../player/context';\nimport type { PlayerConsumer, PlayerConsumerConstructor } from './types';\n\nexport interface ContainerMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n containerContext: ContainerContext;\n}\n\nexport type ContainerMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerConsumerConstructor<Store>;\n\n/**\n * Create a mixin that consumes player context and registers itself as the\n * container element with the provider via `containerContext`.\n *\n * @param config - Container configuration with player and container contexts.\n */\nexport function createContainerMixin<Store extends PlayerStore>(\n config: ContainerMixinConfig<Store>\n): ContainerMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerContainerElement extends BaseClass implements PlayerConsumer<Store>, MediaContainer {\n #contextStore: Store | null = null;\n #setContainer: ((container: MediaContainer | null) => void) | null = null;\n\n constructor(...args: any[]) {\n super(...args);\n\n new ContextConsumer(this, {\n context: config.playerContext,\n callback: (value) => {\n this.#contextStore = value ?? null;\n },\n subscribe: true,\n });\n\n new ContextConsumer(this, {\n context: config.containerContext,\n callback: (value) => {\n this.#setContainer = value?.setContainer ?? null;\n if (this.isConnected) this.#setContainer?.(this);\n },\n subscribe: true,\n });\n }\n\n get store(): Store | null {\n return this.#contextStore;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#setContainer?.(this);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#setContainer?.(null);\n }\n }\n\n return PlayerContainerElement;\n };\n}\n"],"mappings":";;;;;;;;;AAqBA,SAAgB,qBACd,QACuB;AACvB,SAA+C,cAAqB;EAClE,MAAM,+BAA+B,UAA2D;GAC9F,gBAA8B;GAC9B,gBAAqE;GAErE,YAAY,GAAG,MAAa;AAC1B,UAAM,GAAG,KAAK;AAEd,QAAI,gBAAgB,MAAM;KACxB,SAAS,OAAO;KAChB,WAAW,UAAU;AACnB,YAAKA,eAAgB,SAAS;;KAEhC,WAAW;KACZ,CAAC;AAEF,QAAI,gBAAgB,MAAM;KACxB,SAAS,OAAO;KAChB,WAAW,UAAU;AACnB,YAAKC,eAAgB,OAAO,gBAAgB;AAC5C,UAAI,KAAK,YAAa,OAAKA,eAAgB,KAAK;;KAElD,WAAW;KACZ,CAAC;;GAGJ,IAAI,QAAsB;AACxB,WAAO,MAAKD;;GAGd,AAAS,oBAAoB;AAC3B,UAAM,mBAAmB;AACzB,UAAKC,eAAgB,KAAK;;GAG5B,AAAS,uBAAuB;AAC9B,UAAM,sBAAsB;AAC5B,UAAKA,eAAgB,KAAK;;;AAI9B,SAAO"}
1
+ {"version":3,"file":"container-mixin.js","names":["#contextStore","#setContainer"],"sources":["../../../src/store/container-mixin.ts"],"sourcesContent":["import type { MediaContainer, PlayerStore } from '@videojs/core/dom';\nimport { ContextConsumer } from '@videojs/element/context';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, PlayerContext } from '../player/context';\nimport type { PlayerConsumer, PlayerConsumerConstructor } from './types';\n\nexport interface ContainerMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n containerContext: ContainerContext;\n}\n\nexport type ContainerMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerConsumerConstructor<Store>;\n\n/**\n * Create a mixin that consumes player context and registers itself as the\n * container element with the provider via `containerContext`.\n *\n * @param config - Container configuration with player and container contexts.\n */\nexport function createContainerMixin<Store extends PlayerStore>(\n config: ContainerMixinConfig<Store>\n): ContainerMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerContainerElement extends BaseClass implements PlayerConsumer<Store>, MediaContainer {\n #contextStore: Store | null = null;\n #setContainer: ((container: MediaContainer | null) => void) | null = null;\n\n constructor(...args: any[]) {\n super(...args);\n\n new ContextConsumer(this, {\n context: config.playerContext,\n callback: (value) => {\n this.#contextStore = value ?? null;\n },\n subscribe: true,\n });\n\n new ContextConsumer(this, {\n context: config.containerContext,\n callback: (value) => {\n this.#setContainer = value?.setContainer ?? null;\n if (this.isConnected) this.#setContainer?.(this);\n },\n subscribe: true,\n });\n }\n\n get store(): Store | null {\n return this.#contextStore;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#setContainer?.(this);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#setContainer?.(null);\n }\n }\n\n return PlayerContainerElement;\n };\n}\n"],"mappings":";;;;;;;;AAqBA,SAAgB,qBACd,QACuB;AACvB,SAA+C,cAAqB;EAClE,MAAM,+BAA+B,UAA2D;GAC9F,gBAA8B;GAC9B,gBAAqE;GAErE,YAAY,GAAG,MAAa;AAC1B,UAAM,GAAG,KAAK;AAEd,QAAI,gBAAgB,MAAM;KACxB,SAAS,OAAO;KAChB,WAAW,UAAU;AACnB,YAAA,eAAqB,SAAS;;KAEhC,WAAW;KACZ,CAAC;AAEF,QAAI,gBAAgB,MAAM;KACxB,SAAS,OAAO;KAChB,WAAW,UAAU;AACnB,YAAA,eAAqB,OAAO,gBAAgB;AAC5C,UAAI,KAAK,YAAa,OAAA,eAAqB,KAAK;;KAElD,WAAW;KACZ,CAAC;;GAGJ,IAAI,QAAsB;AACxB,WAAO,MAAA;;GAGT,oBAA6B;AAC3B,UAAM,mBAAmB;AACzB,UAAA,eAAqB,KAAK;;GAG5B,uBAAgC;AAC9B,UAAM,sBAAsB;AAC5B,UAAA,eAAqB,KAAK;;;AAI9B,SAAO"}
@@ -1,6 +1,5 @@
1
1
  import { mediaContext } from "../player/context.js";
2
2
  import { ContextEvent } from "@videojs/element/context";
3
-
4
3
  //#region src/store/media-attach-mixin.ts
5
4
  /**
6
5
  * Create a mixin that consumes `mediaContext` and registers the
@@ -39,7 +38,7 @@ function createMediaAttachMixin(context) {
39
38
  };
40
39
  }
41
40
  const MediaAttachMixin = createMediaAttachMixin(mediaContext);
42
-
43
41
  //#endregion
44
42
  export { MediaAttachMixin, createMediaAttachMixin };
43
+
45
44
  //# sourceMappingURL=media-attach-mixin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-attach-mixin.js","names":["#unsubscribe","#setMedia"],"sources":["../../../src/store/media-attach-mixin.ts"],"sourcesContent":["import type { Media } from '@videojs/core/dom';\nimport { ContextEvent } from '@videojs/element/context';\nimport type { CustomElement } from '@videojs/utils/dom';\nimport type { AnyConstructor, Constructor } from '@videojs/utils/types';\nimport { type MediaContext, mediaContext } from '../player/context';\n\nexport type MediaAttachMixin = <Class extends AnyConstructor<HTMLElement>>(BaseClass: Class) => Class;\n\n/**\n * Create a mixin that consumes `mediaContext` and registers the\n * element as the media with the provider.\n *\n * Uses the raw context-request protocol so it works with any\n * `HTMLElement` subclass — no `ReactiveControllerHost` required.\n *\n * @param context - The media context to consume.\n */\nexport function createMediaAttachMixin(context: MediaContext): MediaAttachMixin {\n return <Class extends AnyConstructor<HTMLElement>>(BaseClass: Class) => {\n class MediaAttachElement extends (BaseClass as unknown as Constructor<CustomElement>) {\n #setMedia: ((media: Media | null) => void) | null = null;\n #unsubscribe: (() => void) | null = null;\n\n getMediaTarget(): Media | null {\n return this as unknown as Media;\n }\n\n override connectedCallback() {\n super.connectedCallback?.();\n\n this.dispatchEvent(\n new ContextEvent(\n context,\n this,\n (value, unsubscribe) => {\n if (unsubscribe) this.#unsubscribe = unsubscribe;\n this.#setMedia = value?.setMedia ?? null;\n if (this.isConnected) {\n this.#setMedia?.(this.getMediaTarget());\n }\n },\n true\n )\n );\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback?.();\n this.#setMedia?.(null);\n this.#unsubscribe?.();\n this.#unsubscribe = null;\n this.#setMedia = null;\n }\n }\n\n return MediaAttachElement as unknown as Class;\n };\n}\n\nexport const MediaAttachMixin = createMediaAttachMixin(mediaContext);\n"],"mappings":";;;;;;;;;;;;;AAiBA,SAAgB,uBAAuB,SAAyC;AAC9E,SAAmD,cAAqB;EACtE,MAAM,2BAA4B,UAAoD;GACpF,YAAoD;GACpD,eAAoC;GAEpC,iBAA+B;AAC7B,WAAO;;GAGT,AAAS,oBAAoB;AAC3B,UAAM,qBAAqB;AAE3B,SAAK,cACH,IAAI,aACF,SACA,OACC,OAAO,gBAAgB;AACtB,SAAI,YAAa,OAAKA,cAAe;AACrC,WAAKC,WAAY,OAAO,YAAY;AACpC,SAAI,KAAK,YACP,OAAKA,WAAY,KAAK,gBAAgB,CAAC;OAG3C,KACD,CACF;;GAGH,AAAS,uBAAuB;AAC9B,UAAM,wBAAwB;AAC9B,UAAKA,WAAY,KAAK;AACtB,UAAKD,eAAgB;AACrB,UAAKA,cAAe;AACpB,UAAKC,WAAY;;;AAIrB,SAAO;;;AAIX,MAAa,mBAAmB,uBAAuB,aAAa"}
1
+ {"version":3,"file":"media-attach-mixin.js","names":["#unsubscribe","#setMedia"],"sources":["../../../src/store/media-attach-mixin.ts"],"sourcesContent":["import type { Media } from '@videojs/core/dom';\nimport { ContextEvent } from '@videojs/element/context';\nimport type { CustomElement } from '@videojs/utils/dom';\nimport type { AnyConstructor, Constructor } from '@videojs/utils/types';\nimport { type MediaContext, mediaContext } from '../player/context';\n\nexport type MediaAttachMixin = <Class extends AnyConstructor<HTMLElement>>(BaseClass: Class) => Class;\n\n/**\n * Create a mixin that consumes `mediaContext` and registers the\n * element as the media with the provider.\n *\n * Uses the raw context-request protocol so it works with any\n * `HTMLElement` subclass — no `ReactiveControllerHost` required.\n *\n * @param context - The media context to consume.\n */\nexport function createMediaAttachMixin(context: MediaContext): MediaAttachMixin {\n return <Class extends AnyConstructor<HTMLElement>>(BaseClass: Class) => {\n class MediaAttachElement extends (BaseClass as unknown as Constructor<CustomElement>) {\n #setMedia: ((media: Media | null) => void) | null = null;\n #unsubscribe: (() => void) | null = null;\n\n getMediaTarget(): Media | null {\n return this as unknown as Media;\n }\n\n override connectedCallback() {\n super.connectedCallback?.();\n\n this.dispatchEvent(\n new ContextEvent(\n context,\n this,\n (value, unsubscribe) => {\n if (unsubscribe) this.#unsubscribe = unsubscribe;\n this.#setMedia = value?.setMedia ?? null;\n if (this.isConnected) {\n this.#setMedia?.(this.getMediaTarget());\n }\n },\n true\n )\n );\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback?.();\n this.#setMedia?.(null);\n this.#unsubscribe?.();\n this.#unsubscribe = null;\n this.#setMedia = null;\n }\n }\n\n return MediaAttachElement as unknown as Class;\n };\n}\n\nexport const MediaAttachMixin = createMediaAttachMixin(mediaContext);\n"],"mappings":";;;;;;;;;;;;AAiBA,SAAgB,uBAAuB,SAAyC;AAC9E,SAAmD,cAAqB;EACtE,MAAM,2BAA4B,UAAoD;GACpF,YAAoD;GACpD,eAAoC;GAEpC,iBAA+B;AAC7B,WAAO;;GAGT,oBAA6B;AAC3B,UAAM,qBAAqB;AAE3B,SAAK,cACH,IAAI,aACF,SACA,OACC,OAAO,gBAAgB;AACtB,SAAI,YAAa,OAAA,cAAoB;AACrC,WAAA,WAAiB,OAAO,YAAY;AACpC,SAAI,KAAK,YACP,OAAA,WAAiB,KAAK,gBAAgB,CAAC;OAG3C,KACD,CACF;;GAGH,uBAAgC;AAC9B,UAAM,wBAAwB;AAC9B,UAAA,WAAiB,KAAK;AACtB,UAAA,eAAqB;AACrB,UAAA,cAAoB;AACpB,UAAA,WAAiB;;;AAIrB,SAAO;;;AAIX,MAAa,mBAAmB,uBAAuB,aAAa"}
@@ -1,6 +1,5 @@
1
1
  import { ContextProvider } from "@videojs/element/context";
2
2
  import { isNull } from "@videojs/utils/predicate";
3
-
4
3
  //#region src/store/provider-mixin.ts
5
4
  /**
6
5
  * Create a mixin that provides player context to descendant elements and
@@ -123,7 +122,7 @@ function createProviderMixin(config) {
123
122
  return PlayerProviderElement;
124
123
  };
125
124
  }
126
-
127
125
  //#endregion
128
126
  export { createProviderMixin };
127
+
129
128
  //# sourceMappingURL=provider-mixin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-mixin.js","names":["#media","#mediaProvider","#setMedia","#tryAttach","#container","#containerProvider","#setContainer","#store","#playerProvider","#queueFallbackDiscovery","#detachStore","#detach","#fallbackQueued"],"sources":["../../../src/store/provider-mixin.ts"],"sourcesContent":["import type { Media, MediaContainer, PlayerStore, PlayerTarget } from '@videojs/core/dom';\nimport { ContextProvider } from '@videojs/element/context';\nimport { isNull } from '@videojs/utils/predicate';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, MediaContext, PlayerContext } from '../player/context';\nimport type { PlayerProvider, PlayerProviderConstructor } from './types';\n\nexport interface ProviderMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n mediaContext: MediaContext;\n containerContext: ContainerContext;\n factory: () => Store;\n}\n\nexport type ProviderMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerProviderConstructor<Store>;\n\n/**\n * Create a mixin that provides player context to descendant elements and\n * owns the `store.attach()` lifecycle.\n *\n * Media and container elements register themselves via media/container\n * contexts that carry both the current value and a setter. When a media\n * element is available, the provider calls `store.attach({ media, container })`.\n *\n * As a fallback for plain `<video>`/`<audio>` that can't consume context,\n * the provider queries its subtree after a microtask.\n *\n * @param config - Provider configuration with contexts and store factory.\n */\nexport function createProviderMixin<Store extends PlayerStore>(\n config: ProviderMixinConfig<Store>\n): ProviderMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerProviderElement extends BaseClass implements PlayerProvider<Store> {\n #store: Store | null = config.factory();\n #detach: (() => void) | null = null;\n #media: Media | null = null;\n #container: MediaContainer | null = null;\n #fallbackQueued = false;\n\n #setMedia = (media: Media | null): void => {\n if (this.#media === media) return;\n this.#media = media;\n this.#mediaProvider.setValue({ media, setMedia: this.#setMedia });\n this.#tryAttach();\n };\n\n #setContainer = (container: MediaContainer | null): void => {\n if (this.#container === container) return;\n this.#container = container;\n this.#containerProvider.setValue({ container, setContainer: this.#setContainer });\n this.#tryAttach();\n };\n\n #playerProvider = new ContextProvider(this, {\n context: config.playerContext,\n initialValue: this.store,\n });\n\n #mediaProvider = new ContextProvider(this, {\n context: config.mediaContext,\n initialValue: { media: this.#media, setMedia: this.#setMedia },\n });\n\n #containerProvider = new ContextProvider(this, {\n context: config.containerContext,\n initialValue: { container: this.#container, setContainer: this.#setContainer },\n });\n\n get store(): Store {\n if (isNull(this.#store)) {\n this.#store = config.factory();\n }\n\n return this.#store;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#playerProvider.setValue(this.store);\n this.#mediaProvider.setValue({ media: this.#media, setMedia: this.#setMedia });\n this.#containerProvider.setValue({ container: this.#container, setContainer: this.#setContainer });\n this.#tryAttach();\n this.#queueFallbackDiscovery();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#detachStore();\n }\n\n override destroyCallback() {\n this.#detachStore();\n this.#store?.destroy();\n this.#store = null;\n super.destroyCallback();\n }\n\n #tryAttach(): void {\n const store = this.#store;\n if (!store) return;\n\n if (!this.#media) {\n this.#detachStore();\n return;\n }\n\n const target: PlayerTarget = {\n media: this.#media,\n container: this.#container,\n };\n\n const hasMediaChanged = store.target?.media !== target.media;\n const hasContainerChanged = store.target?.container !== target.container;\n\n if (hasMediaChanged || hasContainerChanged) {\n this.#detachStore();\n this.#detach = store.attach(target);\n }\n }\n\n #detachStore(): void {\n this.#detach?.();\n this.#detach = null;\n }\n\n #queueFallbackDiscovery(): void {\n if (this.#media || this.#fallbackQueued) return;\n this.#fallbackQueued = true;\n\n queueMicrotask(() => {\n this.#fallbackQueued = false;\n\n // Context already registered media — skip fallback.\n if (this.#media) return;\n\n const media = this.querySelector<HTMLMediaElement>('video, audio');\n if (media) {\n this.#setMedia(media);\n }\n });\n }\n }\n\n return PlayerProviderElement;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA+BA,SAAgB,oBACd,QACsB;AACtB,SAA+C,cAAqB;EAClE,MAAM,8BAA8B,UAA2C;GAC7E,SAAuB,OAAO,SAAS;GACvC,UAA+B;GAC/B,SAAuB;GACvB,aAAoC;GACpC,kBAAkB;GAElB,aAAa,UAA8B;AACzC,QAAI,MAAKA,UAAW,MAAO;AAC3B,UAAKA,QAAS;AACd,UAAKC,cAAe,SAAS;KAAE;KAAO,UAAU,MAAKC;KAAW,CAAC;AACjE,UAAKC,WAAY;;GAGnB,iBAAiB,cAA2C;AAC1D,QAAI,MAAKC,cAAe,UAAW;AACnC,UAAKA,YAAa;AAClB,UAAKC,kBAAmB,SAAS;KAAE;KAAW,cAAc,MAAKC;KAAe,CAAC;AACjF,UAAKH,WAAY;;GAGnB,kBAAkB,IAAI,gBAAgB,MAAM;IAC1C,SAAS,OAAO;IAChB,cAAc,KAAK;IACpB,CAAC;GAEF,iBAAiB,IAAI,gBAAgB,MAAM;IACzC,SAAS,OAAO;IAChB,cAAc;KAAE,OAAO,MAAKH;KAAQ,UAAU,MAAKE;KAAW;IAC/D,CAAC;GAEF,qBAAqB,IAAI,gBAAgB,MAAM;IAC7C,SAAS,OAAO;IAChB,cAAc;KAAE,WAAW,MAAKE;KAAY,cAAc,MAAKE;KAAe;IAC/E,CAAC;GAEF,IAAI,QAAe;AACjB,QAAI,OAAO,MAAKC,MAAO,CACrB,OAAKA,QAAS,OAAO,SAAS;AAGhC,WAAO,MAAKA;;GAGd,AAAS,oBAAoB;AAC3B,UAAM,mBAAmB;AACzB,UAAKC,eAAgB,SAAS,KAAK,MAAM;AACzC,UAAKP,cAAe,SAAS;KAAE,OAAO,MAAKD;KAAQ,UAAU,MAAKE;KAAW,CAAC;AAC9E,UAAKG,kBAAmB,SAAS;KAAE,WAAW,MAAKD;KAAY,cAAc,MAAKE;KAAe,CAAC;AAClG,UAAKH,WAAY;AACjB,UAAKM,wBAAyB;;GAGhC,AAAS,uBAAuB;AAC9B,UAAM,sBAAsB;AAC5B,UAAKC,aAAc;;GAGrB,AAAS,kBAAkB;AACzB,UAAKA,aAAc;AACnB,UAAKH,OAAQ,SAAS;AACtB,UAAKA,QAAS;AACd,UAAM,iBAAiB;;GAGzB,aAAmB;IACjB,MAAM,QAAQ,MAAKA;AACnB,QAAI,CAAC,MAAO;AAEZ,QAAI,CAAC,MAAKP,OAAQ;AAChB,WAAKU,aAAc;AACnB;;IAGF,MAAM,SAAuB;KAC3B,OAAO,MAAKV;KACZ,WAAW,MAAKI;KACjB;IAED,MAAM,kBAAkB,MAAM,QAAQ,UAAU,OAAO;IACvD,MAAM,sBAAsB,MAAM,QAAQ,cAAc,OAAO;AAE/D,QAAI,mBAAmB,qBAAqB;AAC1C,WAAKM,aAAc;AACnB,WAAKC,SAAU,MAAM,OAAO,OAAO;;;GAIvC,eAAqB;AACnB,UAAKA,UAAW;AAChB,UAAKA,SAAU;;GAGjB,0BAAgC;AAC9B,QAAI,MAAKX,SAAU,MAAKY,eAAiB;AACzC,UAAKA,iBAAkB;AAEvB,yBAAqB;AACnB,WAAKA,iBAAkB;AAGvB,SAAI,MAAKZ,MAAQ;KAEjB,MAAM,QAAQ,KAAK,cAAgC,eAAe;AAClE,SAAI,MACF,OAAKE,SAAU,MAAM;MAEvB;;;AAIN,SAAO"}
1
+ {"version":3,"file":"provider-mixin.js","names":["#media","#mediaProvider","#setMedia","#tryAttach","#container","#containerProvider","#setContainer","#store","#playerProvider","#queueFallbackDiscovery","#detachStore","#detach","#fallbackQueued"],"sources":["../../../src/store/provider-mixin.ts"],"sourcesContent":["import type { Media, MediaContainer, PlayerStore, PlayerTarget } from '@videojs/core/dom';\nimport { ContextProvider } from '@videojs/element/context';\nimport { isNull } from '@videojs/utils/predicate';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, MediaContext, PlayerContext } from '../player/context';\nimport type { PlayerProvider, PlayerProviderConstructor } from './types';\n\nexport interface ProviderMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n mediaContext: MediaContext;\n containerContext: ContainerContext;\n factory: () => Store;\n}\n\nexport type ProviderMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerProviderConstructor<Store>;\n\n/**\n * Create a mixin that provides player context to descendant elements and\n * owns the `store.attach()` lifecycle.\n *\n * Media and container elements register themselves via media/container\n * contexts that carry both the current value and a setter. When a media\n * element is available, the provider calls `store.attach({ media, container })`.\n *\n * As a fallback for plain `<video>`/`<audio>` that can't consume context,\n * the provider queries its subtree after a microtask.\n *\n * @param config - Provider configuration with contexts and store factory.\n */\nexport function createProviderMixin<Store extends PlayerStore>(\n config: ProviderMixinConfig<Store>\n): ProviderMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerProviderElement extends BaseClass implements PlayerProvider<Store> {\n #store: Store | null = config.factory();\n #detach: (() => void) | null = null;\n #media: Media | null = null;\n #container: MediaContainer | null = null;\n #fallbackQueued = false;\n\n #setMedia = (media: Media | null): void => {\n if (this.#media === media) return;\n this.#media = media;\n this.#mediaProvider.setValue({ media, setMedia: this.#setMedia });\n this.#tryAttach();\n };\n\n #setContainer = (container: MediaContainer | null): void => {\n if (this.#container === container) return;\n this.#container = container;\n this.#containerProvider.setValue({ container, setContainer: this.#setContainer });\n this.#tryAttach();\n };\n\n #playerProvider = new ContextProvider(this, {\n context: config.playerContext,\n initialValue: this.store,\n });\n\n #mediaProvider = new ContextProvider(this, {\n context: config.mediaContext,\n initialValue: { media: this.#media, setMedia: this.#setMedia },\n });\n\n #containerProvider = new ContextProvider(this, {\n context: config.containerContext,\n initialValue: { container: this.#container, setContainer: this.#setContainer },\n });\n\n get store(): Store {\n if (isNull(this.#store)) {\n this.#store = config.factory();\n }\n\n return this.#store;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#playerProvider.setValue(this.store);\n this.#mediaProvider.setValue({ media: this.#media, setMedia: this.#setMedia });\n this.#containerProvider.setValue({ container: this.#container, setContainer: this.#setContainer });\n this.#tryAttach();\n this.#queueFallbackDiscovery();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#detachStore();\n }\n\n override destroyCallback() {\n this.#detachStore();\n this.#store?.destroy();\n this.#store = null;\n super.destroyCallback();\n }\n\n #tryAttach(): void {\n const store = this.#store;\n if (!store) return;\n\n if (!this.#media) {\n this.#detachStore();\n return;\n }\n\n const target: PlayerTarget = {\n media: this.#media,\n container: this.#container,\n };\n\n const hasMediaChanged = store.target?.media !== target.media;\n const hasContainerChanged = store.target?.container !== target.container;\n\n if (hasMediaChanged || hasContainerChanged) {\n this.#detachStore();\n this.#detach = store.attach(target);\n }\n }\n\n #detachStore(): void {\n this.#detach?.();\n this.#detach = null;\n }\n\n #queueFallbackDiscovery(): void {\n if (this.#media || this.#fallbackQueued) return;\n this.#fallbackQueued = true;\n\n queueMicrotask(() => {\n this.#fallbackQueued = false;\n\n // Context already registered media — skip fallback.\n if (this.#media) return;\n\n const media = this.querySelector<HTMLMediaElement>('video, audio');\n if (media) {\n this.#setMedia(media);\n }\n });\n }\n }\n\n return PlayerProviderElement;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA+BA,SAAgB,oBACd,QACsB;AACtB,SAA+C,cAAqB;EAClE,MAAM,8BAA8B,UAA2C;GAC7E,SAAuB,OAAO,SAAS;GACvC,UAA+B;GAC/B,SAAuB;GACvB,aAAoC;GACpC,kBAAkB;GAElB,aAAa,UAA8B;AACzC,QAAI,MAAA,UAAgB,MAAO;AAC3B,UAAA,QAAc;AACd,UAAA,cAAoB,SAAS;KAAE;KAAO,UAAU,MAAA;KAAgB,CAAC;AACjE,UAAA,WAAiB;;GAGnB,iBAAiB,cAA2C;AAC1D,QAAI,MAAA,cAAoB,UAAW;AACnC,UAAA,YAAkB;AAClB,UAAA,kBAAwB,SAAS;KAAE;KAAW,cAAc,MAAA;KAAoB,CAAC;AACjF,UAAA,WAAiB;;GAGnB,kBAAkB,IAAI,gBAAgB,MAAM;IAC1C,SAAS,OAAO;IAChB,cAAc,KAAK;IACpB,CAAC;GAEF,iBAAiB,IAAI,gBAAgB,MAAM;IACzC,SAAS,OAAO;IAChB,cAAc;KAAE,OAAO,MAAA;KAAa,UAAU,MAAA;KAAgB;IAC/D,CAAC;GAEF,qBAAqB,IAAI,gBAAgB,MAAM;IAC7C,SAAS,OAAO;IAChB,cAAc;KAAE,WAAW,MAAA;KAAiB,cAAc,MAAA;KAAoB;IAC/E,CAAC;GAEF,IAAI,QAAe;AACjB,QAAI,OAAO,MAAA,MAAY,CACrB,OAAA,QAAc,OAAO,SAAS;AAGhC,WAAO,MAAA;;GAGT,oBAA6B;AAC3B,UAAM,mBAAmB;AACzB,UAAA,eAAqB,SAAS,KAAK,MAAM;AACzC,UAAA,cAAoB,SAAS;KAAE,OAAO,MAAA;KAAa,UAAU,MAAA;KAAgB,CAAC;AAC9E,UAAA,kBAAwB,SAAS;KAAE,WAAW,MAAA;KAAiB,cAAc,MAAA;KAAoB,CAAC;AAClG,UAAA,WAAiB;AACjB,UAAA,wBAA8B;;GAGhC,uBAAgC;AAC9B,UAAM,sBAAsB;AAC5B,UAAA,aAAmB;;GAGrB,kBAA2B;AACzB,UAAA,aAAmB;AACnB,UAAA,OAAa,SAAS;AACtB,UAAA,QAAc;AACd,UAAM,iBAAiB;;GAGzB,aAAmB;IACjB,MAAM,QAAQ,MAAA;AACd,QAAI,CAAC,MAAO;AAEZ,QAAI,CAAC,MAAA,OAAa;AAChB,WAAA,aAAmB;AACnB;;IAGF,MAAM,SAAuB;KAC3B,OAAO,MAAA;KACP,WAAW,MAAA;KACZ;IAED,MAAM,kBAAkB,MAAM,QAAQ,UAAU,OAAO;IACvD,MAAM,sBAAsB,MAAM,QAAQ,cAAc,OAAO;AAE/D,QAAI,mBAAmB,qBAAqB;AAC1C,WAAA,aAAmB;AACnB,WAAA,SAAe,MAAM,OAAO,OAAO;;;GAIvC,eAAqB;AACnB,UAAA,UAAgB;AAChB,UAAA,SAAe;;GAGjB,0BAAgC;AAC9B,QAAI,MAAA,SAAe,MAAA,eAAsB;AACzC,UAAA,iBAAuB;AAEvB,yBAAqB;AACnB,WAAA,iBAAuB;AAGvB,SAAI,MAAA,MAAa;KAEjB,MAAM,QAAQ,KAAK,cAAgC,eAAe;AAClE,SAAI,MACF,OAAA,SAAe,MAAM;MAEvB;;;AAIN,SAAO"}
@@ -2,7 +2,6 @@ import { MediaElement } from "../media-element.js";
2
2
  import { alertDialogContext } from "./context.js";
3
3
  import { applyElementProps, applyStateDataAttrs, createButton } from "@videojs/core/dom";
4
4
  import { ContextConsumer } from "@videojs/element/context";
5
-
6
5
  //#region src/ui/alert-dialog/alert-dialog-close-element.ts
7
6
  var AlertDialogCloseElement = class extends MediaElement {
8
7
  constructor(..._args) {
@@ -40,7 +39,7 @@ var AlertDialogCloseElement = class extends MediaElement {
40
39
  if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);
41
40
  }
42
41
  };
43
-
44
42
  //#endregion
45
43
  export { AlertDialogCloseElement };
44
+
46
45
  //# sourceMappingURL=alert-dialog-close-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-close-element.js","names":["#ctx","#disconnect"],"sources":["../../../../src/ui/alert-dialog/alert-dialog-close-element.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs, createButton } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { alertDialogContext } from './context';\n\nexport class AlertDialogCloseElement extends MediaElement {\n static readonly tagName = 'media-alert-dialog-close';\n\n static override properties = {\n disabled: { type: Boolean },\n } satisfies PropertyDeclarationMap<'disabled'>;\n\n disabled = false;\n\n readonly #ctx = new ContextConsumer(this, { context: alertDialogContext, subscribe: true });\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.#ctx.value?.close(),\n isDisabled: () => this.disabled,\n });\n\n applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n const ctx = this.#ctx.value;\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,0BAAb,cAA6C,aAAa;;;kBAO7C;;;iBANe;;;oBAEG,EAC3B,UAAU,EAAE,MAAM,SAAS,EAC5B;;CAID,CAASA,MAAO,IAAI,gBAAgB,MAAM;EAAE,SAAS;EAAoB,WAAW;EAAM,CAAC;CAE3F,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AACzB,QAAKC,aAAc,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,MAAKD,IAAK,OAAO,OAAO;GAC1C,kBAAkB,KAAK;GACxB,CAAC;AAEF,oBAAkB,MAAM,aAAa,EAAE,QAAQ,MAAKC,WAAY,QAAQ,CAAC;;CAG3E,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKA,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;EACtB,MAAM,MAAM,MAAKD,IAAK;AACtB,MAAI,IAAK,qBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
1
+ {"version":3,"file":"alert-dialog-close-element.js","names":["#ctx","#disconnect"],"sources":["../../../../src/ui/alert-dialog/alert-dialog-close-element.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs, createButton } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { alertDialogContext } from './context';\n\nexport class AlertDialogCloseElement extends MediaElement {\n static readonly tagName = 'media-alert-dialog-close';\n\n static override properties = {\n disabled: { type: Boolean },\n } satisfies PropertyDeclarationMap<'disabled'>;\n\n disabled = false;\n\n readonly #ctx = new ContextConsumer(this, { context: alertDialogContext, subscribe: true });\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.#ctx.value?.close(),\n isDisabled: () => this.disabled,\n });\n\n applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n const ctx = this.#ctx.value;\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,0BAAb,cAA6C,aAAa;;;kBAO7C;;;iBANe;;;oBAEG,EAC3B,UAAU,EAAE,MAAM,SAAS,EAC5B;;CAID,OAAgB,IAAI,gBAAgB,MAAM;EAAE,SAAS;EAAoB,WAAW;EAAM,CAAC;CAE3F,cAAsC;CAEtC,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,QAAA,aAAmB,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,MAAA,IAAU,OAAO,OAAO;GAC1C,kBAAkB,KAAK;GACxB,CAAC;AAEF,oBAAkB,MAAM,aAAa,EAAE,QAAQ,MAAA,WAAiB,QAAQ,CAAC;;CAG3E,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;;CAGrB,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EACtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,IAAK,qBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
@@ -1,7 +1,6 @@
1
1
  import { alertDialogContext } from "./context.js";
2
2
  import { ContextPartElement } from "../context-part-element.js";
3
3
  import { ContextConsumer } from "@videojs/element/context";
4
-
5
4
  //#region src/ui/alert-dialog/alert-dialog-description-element.ts
6
5
  var AlertDialogDescriptionElement = class extends ContextPartElement {
7
6
  constructor(..._args) {
@@ -20,7 +19,7 @@ var AlertDialogDescriptionElement = class extends ContextPartElement {
20
19
  if (descriptionId) this.id = descriptionId;
21
20
  }
22
21
  };
23
-
24
22
  //#endregion
25
23
  export { AlertDialogDescriptionElement };
24
+
26
25
  //# sourceMappingURL=alert-dialog-description-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-description-element.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-description-element.ts"],"sourcesContent":["import type { AlertDialogState } from '@videojs/core';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { alertDialogContext } from './context';\n\nexport class AlertDialogDescriptionElement extends ContextPartElement<AlertDialogState> {\n static readonly tagName = 'media-alert-dialog-description';\n\n protected readonly consumer = new ContextConsumer(this, { context: alertDialogContext, subscribe: true });\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n const descriptionId = this.consumer.value?.state.descriptionId;\n if (descriptionId) this.id = descriptionId;\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,gCAAb,cAAmD,mBAAqC;;;kBAGxD,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAoB,WAAW;GAAM,CAAC;;;iBAF/E;;CAI1B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EACrB,MAAM,gBAAgB,KAAK,SAAS,OAAO,MAAM;AACjD,MAAI,cAAe,MAAK,KAAK"}
1
+ {"version":3,"file":"alert-dialog-description-element.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-description-element.ts"],"sourcesContent":["import type { AlertDialogState } from '@videojs/core';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { alertDialogContext } from './context';\n\nexport class AlertDialogDescriptionElement extends ContextPartElement<AlertDialogState> {\n static readonly tagName = 'media-alert-dialog-description';\n\n protected readonly consumer = new ContextConsumer(this, { context: alertDialogContext, subscribe: true });\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n const descriptionId = this.consumer.value?.state.descriptionId;\n if (descriptionId) this.id = descriptionId;\n }\n}\n"],"mappings":";;;;AAOA,IAAa,gCAAb,cAAmD,mBAAqC;;;kBAGxD,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAoB,WAAW;GAAM,CAAC;;;iBAF/E;;CAI1B,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;EACrB,MAAM,gBAAgB,KAAK,SAAS,OAAO,MAAM;AACjD,MAAI,cAAe,MAAK,KAAK"}
@@ -1,10 +1,9 @@
1
1
  import { MediaElement } from "../media-element.js";
2
2
  import { alertDialogContext } from "./context.js";
3
+ import { AlertDialogCore, AlertDialogDataAttrs } from "@videojs/core";
3
4
  import { applyElementProps, applyStateDataAttrs, createAlertDialog, createTransition } from "@videojs/core/dom";
4
5
  import { ContextProvider } from "@videojs/element/context";
5
6
  import { SnapshotController } from "@videojs/store/html";
6
- import { AlertDialogCore, AlertDialogDataAttrs } from "@videojs/core";
7
-
8
7
  //#region src/ui/alert-dialog/alert-dialog-element.ts
9
8
  let idCounter = 0;
10
9
  var AlertDialogElement = class extends MediaElement {
@@ -67,7 +66,7 @@ var AlertDialogElement = class extends MediaElement {
67
66
  });
68
67
  }
69
68
  };
70
-
71
69
  //#endregion
72
70
  export { AlertDialogElement };
71
+
73
72
  //# sourceMappingURL=alert-dialog-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-element.js","names":["#core","#provider","#titleId","#descriptionId","#dialog","#snapshot"],"sources":["../../../../src/ui/alert-dialog/alert-dialog-element.ts"],"sourcesContent":["import { AlertDialogCore, AlertDialogDataAttrs, type AlertDialogInput } from '@videojs/core';\nimport {\n type AlertDialogApi,\n applyElementProps,\n applyStateDataAttrs,\n createAlertDialog,\n createTransition,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { SnapshotController } from '@videojs/store/html';\n\nimport { MediaElement } from '../media-element';\nimport { alertDialogContext } from './context';\n\nlet idCounter = 0;\n\nexport class AlertDialogElement extends MediaElement {\n static readonly tagName = 'media-alert-dialog';\n\n static override properties = {\n open: { type: Boolean },\n } satisfies PropertyDeclarationMap<'open'>;\n\n open = false;\n\n readonly #core = new AlertDialogCore();\n readonly #provider = new ContextProvider(this, { context: alertDialogContext });\n readonly #titleId = `vjs-alert-dialog-title-${idCounter++}`;\n readonly #descriptionId = `vjs-alert-dialog-desc-${idCounter++}`;\n\n #dialog: AlertDialogApi | null = null;\n #snapshot: SnapshotController<AlertDialogInput> | null = null;\n\n constructor() {\n super();\n this.#core.setTitleId(this.#titleId);\n this.#core.setDescriptionId(this.#descriptionId);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#dialog = createAlertDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen } }));\n },\n });\n\n // Register self as the dialog element.\n this.#dialog.setElement(this);\n\n if (this.#snapshot) {\n this.#snapshot.track(this.#dialog.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#dialog.input);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#dialog?.destroy();\n this.#dialog = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n\n // Sync controlled open state.\n if (this.#dialog && changed.has('open')) {\n const { active: inputOpen } = this.#dialog.input.current;\n if (this.open !== inputOpen) {\n if (this.open) {\n this.#dialog.open();\n } else {\n this.#dialog.close();\n }\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#dialog) return;\n\n const input = this.#dialog.input.current;\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, AlertDialogDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: AlertDialogDataAttrs,\n close: () => this.#dialog?.close(),\n });\n }\n}\n"],"mappings":";;;;;;;;AAeA,IAAI,YAAY;AAEhB,IAAa,qBAAb,cAAwC,aAAa;;iBACzB;;;oBAEG,EAC3B,MAAM,EAAE,MAAM,SAAS,EACxB;;CAID,CAASA,OAAQ,IAAI,iBAAiB;CACtC,CAASC,WAAY,IAAI,gBAAgB,MAAM,EAAE,SAAS,oBAAoB,CAAC;CAC/E,CAASC,UAAW,0BAA0B;CAC9C,CAASC,gBAAiB,yBAAyB;CAEnD,UAAiC;CACjC,YAAyD;CAEzD,cAAc;AACZ,SAAO;cAXF;AAYL,QAAKH,KAAM,WAAW,MAAKE,QAAS;AACpC,QAAKF,KAAM,iBAAiB,MAAKG,cAAe;;CAGlD,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,SAAU,kBAAkB;GAC/B,YAAY,kBAAkB;GAC9B,eAAe,aAAsB;AACnC,SAAK,OAAO;AACZ,SAAK,cAAc,IAAI,YAAY,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,EAAE,CAAC,CAAC;;GAErF,CAAC;AAGF,QAAKA,OAAQ,WAAW,KAAK;AAE7B,MAAI,MAAKC,SACP,OAAKA,SAAU,MAAM,MAAKD,OAAQ,MAAM;MAExC,OAAKC,WAAY,IAAI,mBAAmB,MAAM,MAAKD,OAAQ,MAAM;;CAIrE,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKA,QAAS,SAAS;AACvB,QAAKA,SAAU;;CAGjB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AAGzB,MAAI,MAAKA,UAAW,QAAQ,IAAI,OAAO,EAAE;GACvC,MAAM,EAAE,QAAQ,cAAc,MAAKA,OAAQ,MAAM;AACjD,OAAI,KAAK,SAAS,UAChB,KAAI,KAAK,KACP,OAAKA,OAAQ,MAAM;OAEnB,OAAKA,OAAQ,OAAO;;;CAM5B,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;AACtB,MAAI,CAAC,MAAKA,OAAS;EAEnB,MAAM,QAAQ,MAAKA,OAAQ,MAAM;AACjC,QAAKJ,KAAM,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAKA,KAAM,UAAU;AAEnC,oBAAkB,MAAM,MAAKA,KAAM,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,qBAAqB;AAEtD,QAAKC,SAAU,SAAS;GACtB;GACA,cAAc;GACd,aAAa,MAAKG,QAAS,OAAO;GACnC,CAAC"}
1
+ {"version":3,"file":"alert-dialog-element.js","names":["#core","#provider","#titleId","#descriptionId","#dialog","#snapshot"],"sources":["../../../../src/ui/alert-dialog/alert-dialog-element.ts"],"sourcesContent":["import { AlertDialogCore, AlertDialogDataAttrs, type AlertDialogInput } from '@videojs/core';\nimport {\n type AlertDialogApi,\n applyElementProps,\n applyStateDataAttrs,\n createAlertDialog,\n createTransition,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { SnapshotController } from '@videojs/store/html';\n\nimport { MediaElement } from '../media-element';\nimport { alertDialogContext } from './context';\n\nlet idCounter = 0;\n\nexport class AlertDialogElement extends MediaElement {\n static readonly tagName = 'media-alert-dialog';\n\n static override properties = {\n open: { type: Boolean },\n } satisfies PropertyDeclarationMap<'open'>;\n\n open = false;\n\n readonly #core = new AlertDialogCore();\n readonly #provider = new ContextProvider(this, { context: alertDialogContext });\n readonly #titleId = `vjs-alert-dialog-title-${idCounter++}`;\n readonly #descriptionId = `vjs-alert-dialog-desc-${idCounter++}`;\n\n #dialog: AlertDialogApi | null = null;\n #snapshot: SnapshotController<AlertDialogInput> | null = null;\n\n constructor() {\n super();\n this.#core.setTitleId(this.#titleId);\n this.#core.setDescriptionId(this.#descriptionId);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#dialog = createAlertDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen } }));\n },\n });\n\n // Register self as the dialog element.\n this.#dialog.setElement(this);\n\n if (this.#snapshot) {\n this.#snapshot.track(this.#dialog.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#dialog.input);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#dialog?.destroy();\n this.#dialog = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n\n // Sync controlled open state.\n if (this.#dialog && changed.has('open')) {\n const { active: inputOpen } = this.#dialog.input.current;\n if (this.open !== inputOpen) {\n if (this.open) {\n this.#dialog.open();\n } else {\n this.#dialog.close();\n }\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#dialog) return;\n\n const input = this.#dialog.input.current;\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, AlertDialogDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: AlertDialogDataAttrs,\n close: () => this.#dialog?.close(),\n });\n }\n}\n"],"mappings":";;;;;;;AAeA,IAAI,YAAY;AAEhB,IAAa,qBAAb,cAAwC,aAAa;;iBACzB;;;oBAEG,EAC3B,MAAM,EAAE,MAAM,SAAS,EACxB;;CAID,QAAiB,IAAI,iBAAiB;CACtC,YAAqB,IAAI,gBAAgB,MAAM,EAAE,SAAS,oBAAoB,CAAC;CAC/E,WAAoB,0BAA0B;CAC9C,iBAA0B,yBAAyB;CAEnD,UAAiC;CACjC,YAAyD;CAEzD,cAAc;AACZ,SAAO;cAXF;AAYL,QAAA,KAAW,WAAW,MAAA,QAAc;AACpC,QAAA,KAAW,iBAAiB,MAAA,cAAoB;;CAGlD,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,QAAA,SAAe,kBAAkB;GAC/B,YAAY,kBAAkB;GAC9B,eAAe,aAAsB;AACnC,SAAK,OAAO;AACZ,SAAK,cAAc,IAAI,YAAY,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,EAAE,CAAC,CAAC;;GAErF,CAAC;AAGF,QAAA,OAAa,WAAW,KAAK;AAE7B,MAAI,MAAA,SACF,OAAA,SAAe,MAAM,MAAA,OAAa,MAAM;MAExC,OAAA,WAAiB,IAAI,mBAAmB,MAAM,MAAA,OAAa,MAAM;;CAIrE,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,QAAc,SAAS;AACvB,QAAA,SAAe;;CAGjB,WAA8B,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AAGzB,MAAI,MAAA,UAAgB,QAAQ,IAAI,OAAO,EAAE;GACvC,MAAM,EAAE,QAAQ,cAAc,MAAA,OAAa,MAAM;AACjD,OAAI,KAAK,SAAS,UAChB,KAAI,KAAK,KACP,OAAA,OAAa,MAAM;OAEnB,OAAA,OAAa,OAAO;;;CAM5B,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;AACtB,MAAI,CAAC,MAAA,OAAc;EAEnB,MAAM,QAAQ,MAAA,OAAa,MAAM;AACjC,QAAA,KAAW,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAA,KAAW,UAAU;AAEnC,oBAAkB,MAAM,MAAA,KAAW,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,qBAAqB;AAEtD,QAAA,SAAe,SAAS;GACtB;GACA,cAAc;GACd,aAAa,MAAA,QAAc,OAAO;GACnC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { alertDialogContext } from "./context.js";
2
2
  import { ContextPartElement } from "../context-part-element.js";
3
3
  import { ContextConsumer } from "@videojs/element/context";
4
-
5
4
  //#region src/ui/alert-dialog/alert-dialog-title-element.ts
6
5
  var AlertDialogTitleElement = class extends ContextPartElement {
7
6
  constructor(..._args) {
@@ -20,7 +19,7 @@ var AlertDialogTitleElement = class extends ContextPartElement {
20
19
  if (titleId) this.id = titleId;
21
20
  }
22
21
  };
23
-
24
22
  //#endregion
25
23
  export { AlertDialogTitleElement };
24
+
26
25
  //# sourceMappingURL=alert-dialog-title-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-title-element.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-title-element.ts"],"sourcesContent":["import type { AlertDialogState } from '@videojs/core';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { alertDialogContext } from './context';\n\nexport class AlertDialogTitleElement extends ContextPartElement<AlertDialogState> {\n static readonly tagName = 'media-alert-dialog-title';\n\n protected readonly consumer = new ContextConsumer(this, { context: alertDialogContext, subscribe: true });\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n const titleId = this.consumer.value?.state.titleId;\n if (titleId) this.id = titleId;\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,0BAAb,cAA6C,mBAAqC;;;kBAGlD,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAoB,WAAW;GAAM,CAAC;;;iBAF/E;;CAI1B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EACrB,MAAM,UAAU,KAAK,SAAS,OAAO,MAAM;AAC3C,MAAI,QAAS,MAAK,KAAK"}
1
+ {"version":3,"file":"alert-dialog-title-element.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-title-element.ts"],"sourcesContent":["import type { AlertDialogState } from '@videojs/core';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { alertDialogContext } from './context';\n\nexport class AlertDialogTitleElement extends ContextPartElement<AlertDialogState> {\n static readonly tagName = 'media-alert-dialog-title';\n\n protected readonly consumer = new ContextConsumer(this, { context: alertDialogContext, subscribe: true });\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n const titleId = this.consumer.value?.state.titleId;\n if (titleId) this.id = titleId;\n }\n}\n"],"mappings":";;;;AAOA,IAAa,0BAAb,cAA6C,mBAAqC;;;kBAGlD,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAoB,WAAW;GAAM,CAAC;;;iBAF/E;;CAI1B,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;EACrB,MAAM,UAAU,KAAK,SAAS,OAAO,MAAM;AAC3C,MAAI,QAAS,MAAK,KAAK"}
@@ -1,9 +1,6 @@
1
1
  import { createContext } from "@videojs/element/context";
2
-
3
- //#region src/ui/alert-dialog/context.ts
4
- const ALERT_DIALOG_CONTEXT_KEY = Symbol("@videojs/alert-dialog");
5
- const alertDialogContext = createContext(ALERT_DIALOG_CONTEXT_KEY);
6
-
2
+ const alertDialogContext = createContext(Symbol("@videojs/alert-dialog"));
7
3
  //#endregion
8
4
  export { alertDialogContext };
5
+
9
6
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/alert-dialog/context.ts"],"sourcesContent":["import type { AlertDialogState, StateAttrMap } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nexport interface AlertDialogContextValue {\n state: AlertDialogState;\n stateAttrMap: StateAttrMap<AlertDialogState>;\n close: () => void;\n}\n\nconst ALERT_DIALOG_CONTEXT_KEY = Symbol('@videojs/alert-dialog');\n\nexport const alertDialogContext = createContext<AlertDialogContextValue>(ALERT_DIALOG_CONTEXT_KEY);\n"],"mappings":";;;AASA,MAAM,2BAA2B,OAAO,wBAAwB;AAEhE,MAAa,qBAAqB,cAAuC,yBAAyB"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/alert-dialog/context.ts"],"sourcesContent":["import type { AlertDialogState, StateAttrMap } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nexport interface AlertDialogContextValue {\n state: AlertDialogState;\n stateAttrMap: StateAttrMap<AlertDialogState>;\n close: () => void;\n}\n\nconst ALERT_DIALOG_CONTEXT_KEY = Symbol('@videojs/alert-dialog');\n\nexport const alertDialogContext = createContext<AlertDialogContextValue>(ALERT_DIALOG_CONTEXT_KEY);\n"],"mappings":";AAWA,MAAa,qBAAqB,cAFD,OAAO,wBAAwB,CAEkC"}
@@ -1,9 +1,8 @@
1
1
  import { playerContext } from "../../player/context.js";
2
2
  import { MediaElement } from "../media-element.js";
3
3
  import { PlayerController } from "../../player/player-controller.js";
4
- import { applyStateDataAttrs, selectPlayback } from "@videojs/core/dom";
5
4
  import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from "@videojs/core";
6
-
5
+ import { applyStateDataAttrs, selectPlayback } from "@videojs/core/dom";
7
6
  //#region src/ui/buffering-indicator/buffering-indicator-element.ts
8
7
  var BufferingIndicatorElement = class extends MediaElement {
9
8
  constructor(..._args) {
@@ -41,7 +40,7 @@ var BufferingIndicatorElement = class extends MediaElement {
41
40
  applyStateDataAttrs(this, this.#core.state.current, BufferingIndicatorDataAttrs);
42
41
  }
43
42
  };
44
-
45
43
  //#endregion
46
44
  export { BufferingIndicatorElement };
45
+
47
46
  //# sourceMappingURL=buffering-indicator-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffering-indicator-element.js","names":["#core","#state","#disconnect"],"sources":["../../../../src/ui/buffering-indicator/buffering-indicator-element.ts"],"sourcesContent":["import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class BufferingIndicatorElement extends MediaElement {\n static readonly tagName = 'media-buffering-indicator';\n\n static override properties = {\n delay: { type: Number },\n } satisfies PropertyDeclarationMap<keyof BufferingIndicatorCore.Props>;\n\n delay = BufferingIndicatorCore.defaultProps.delay;\n\n readonly #core = new BufferingIndicatorCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n this.#core.state.subscribe(() => this.requestUpdate(), {\n signal: this.#disconnect.signal,\n });\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.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.#state.value;\n\n if (!media) return;\n\n this.#core.update(media);\n applyStateDataAttrs(this, this.#core.state.current, BufferingIndicatorDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,4BAAb,cAA+C,aAAa;;;eAOlD,uBAAuB,aAAa;;;iBANlB;;;oBAEG,EAC3B,OAAO,EAAE,MAAM,QAAQ,EACxB;;CAID,CAASA,OAAQ,IAAI,wBAAwB;CAC7C,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAE3E,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,aAAc,IAAI,iBAAiB;AAExC,QAAKF,KAAM,MAAM,gBAAgB,KAAK,eAAe,EAAE,EACrD,QAAQ,MAAKE,WAAY,QAC1B,CAAC;;CAOJ,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKA,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAKF,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKC,MAAO;AAE1B,MAAI,CAAC,MAAO;AAEZ,QAAKD,KAAM,OAAO,MAAM;AACxB,sBAAoB,MAAM,MAAKA,KAAM,MAAM,SAAS,4BAA4B"}
1
+ {"version":3,"file":"buffering-indicator-element.js","names":["#core","#state","#disconnect"],"sources":["../../../../src/ui/buffering-indicator/buffering-indicator-element.ts"],"sourcesContent":["import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class BufferingIndicatorElement extends MediaElement {\n static readonly tagName = 'media-buffering-indicator';\n\n static override properties = {\n delay: { type: Number },\n } satisfies PropertyDeclarationMap<keyof BufferingIndicatorCore.Props>;\n\n delay = BufferingIndicatorCore.defaultProps.delay;\n\n readonly #core = new BufferingIndicatorCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n this.#core.state.subscribe(() => this.requestUpdate(), {\n signal: this.#disconnect.signal,\n });\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.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.#state.value;\n\n if (!media) return;\n\n this.#core.update(media);\n applyStateDataAttrs(this, this.#core.state.current, BufferingIndicatorDataAttrs);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,4BAAb,cAA+C,aAAa;;;eAOlD,uBAAuB,aAAa;;;iBANlB;;;oBAEG,EAC3B,OAAO,EAAE,MAAM,QAAQ,EACxB;;CAID,QAAiB,IAAI,wBAAwB;CAC7C,SAAkB,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAE3E,cAAsC;CAEtC,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,QAAA,aAAmB,IAAI,iBAAiB;AAExC,QAAA,KAAW,MAAM,gBAAgB,KAAK,eAAe,EAAE,EACrD,QAAQ,MAAA,WAAiB,QAC1B,CAAC;;CAOJ,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;;CAGrB,WAA8B,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAA,KAAW,SAAS,KAAK;;CAG3B,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAA,MAAY;AAE1B,MAAI,CAAC,MAAO;AAEZ,QAAA,KAAW,OAAO,MAAM;AACxB,sBAAoB,MAAM,MAAA,KAAW,MAAM,SAAS,4BAA4B"}
@@ -1,9 +1,8 @@
1
1
  import { playerContext } from "../../player/context.js";
2
2
  import { PlayerController } from "../../player/player-controller.js";
3
3
  import { MediaButtonElement } from "../media-button-element.js";
4
- import { selectTextTrack } from "@videojs/core/dom";
5
4
  import { CaptionsButtonCore, CaptionsButtonDataAttrs } from "@videojs/core";
6
-
5
+ import { selectTextTrack } from "@videojs/core/dom";
7
6
  //#region src/ui/captions-button/captions-button-element.ts
8
7
  var CaptionsButtonElement = class extends MediaButtonElement {
9
8
  constructor(..._args) {
@@ -19,7 +18,7 @@ var CaptionsButtonElement = class extends MediaButtonElement {
19
18
  this.core.toggle(state);
20
19
  }
21
20
  };
22
-
23
21
  //#endregion
24
22
  export { CaptionsButtonElement };
23
+
25
24
  //# sourceMappingURL=captions-button-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"captions-button-element.js","names":[],"sources":["../../../../src/ui/captions-button/captions-button-element.ts"],"sourcesContent":["import { CaptionsButtonCore, CaptionsButtonDataAttrs, type MediaTextTrackState } from '@videojs/core';\nimport { selectTextTrack } 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 CaptionsButtonElement extends MediaButtonElement<CaptionsButtonCore> {\n static readonly tagName = 'media-captions-button';\n\n protected readonly core = new CaptionsButtonCore();\n protected readonly stateAttrMap = CaptionsButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTextTrack);\n\n protected activate(state: MediaTextTrackState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAa,wBAAb,cAA2C,mBAAuC;;;cAGtD,IAAI,oBAAoB;sBAChB;oBACF,IAAI,iBAAiB,MAAM,eAAe,gBAAgB;;;iBAJhE;;CAM1B,AAAU,SAAS,OAAkC;AACnD,OAAK,KAAK,OAAO,MAAM"}
1
+ {"version":3,"file":"captions-button-element.js","names":[],"sources":["../../../../src/ui/captions-button/captions-button-element.ts"],"sourcesContent":["import { CaptionsButtonCore, CaptionsButtonDataAttrs, type MediaTextTrackState } from '@videojs/core';\nimport { selectTextTrack } 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 CaptionsButtonElement extends MediaButtonElement<CaptionsButtonCore> {\n static readonly tagName = 'media-captions-button';\n\n protected readonly core = new CaptionsButtonCore();\n protected readonly stateAttrMap = CaptionsButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTextTrack);\n\n protected activate(state: MediaTextTrackState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,wBAAb,cAA2C,mBAAuC;;;cAGtD,IAAI,oBAAoB;sBAChB;oBACF,IAAI,iBAAiB,MAAM,eAAe,gBAAgB;;;iBAJhE;;CAM1B,SAAmB,OAAkC;AACnD,OAAK,KAAK,OAAO,MAAM"}
@@ -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/context-part-element.ts
5
4
  /**
6
5
  * Abstract base for compound-component part elements that consume a parent
@@ -22,7 +21,7 @@ var ContextPartElement = class extends MediaElement {
22
21
  if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);
23
22
  }
24
23
  };
25
-
26
24
  //#endregion
27
25
  export { ContextPartElement };
26
+
28
27
  //# sourceMappingURL=context-part-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-part-element.js","names":[],"sources":["../../../src/ui/context-part-element.ts"],"sourcesContent":["import type { StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport { MediaElement } from './media-element';\n\n/** Shape that compound context values must satisfy for parts to consume. */\nexport interface PartContextValue<State extends object> {\n state: State;\n stateAttrMap: StateAttrMap<State>;\n}\n\n/**\n * Abstract base for compound-component part elements that consume a parent\n * context and apply data attributes from `ctx.state` + `ctx.stateAttrMap`.\n *\n * Subclasses only need to declare the `consumer` property:\n *\n * ```ts\n * export class SliderTrackElement extends ContextPartElement<SliderState> {\n * static readonly tagName = 'media-slider-track';\n * protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n * }\n * ```\n */\nexport abstract class ContextPartElement<State extends object> extends MediaElement {\n protected abstract readonly consumer: { value?: PartContextValue<State> | undefined };\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n const ctx = this.consumer.value;\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAyBA,IAAsB,qBAAtB,cAAuE,aAAa;CAGlF,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;EACtB,MAAM,MAAM,KAAK,SAAS;AAC1B,MAAI,IAAK,qBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
1
+ {"version":3,"file":"context-part-element.js","names":[],"sources":["../../../src/ui/context-part-element.ts"],"sourcesContent":["import type { StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport { MediaElement } from './media-element';\n\n/** Shape that compound context values must satisfy for parts to consume. */\nexport interface PartContextValue<State extends object> {\n state: State;\n stateAttrMap: StateAttrMap<State>;\n}\n\n/**\n * Abstract base for compound-component part elements that consume a parent\n * context and apply data attributes from `ctx.state` + `ctx.stateAttrMap`.\n *\n * Subclasses only need to declare the `consumer` property:\n *\n * ```ts\n * export class SliderTrackElement extends ContextPartElement<SliderState> {\n * static readonly tagName = 'media-slider-track';\n * protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n * }\n * ```\n */\nexport abstract class ContextPartElement<State extends object> extends MediaElement {\n protected abstract readonly consumer: { value?: PartContextValue<State> | undefined };\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n const ctx = this.consumer.value;\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAyBA,IAAsB,qBAAtB,cAAuE,aAAa;CAGlF,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EACtB,MAAM,MAAM,KAAK,SAAS;AAC1B,MAAI,IAAK,qBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
@@ -1,9 +1,6 @@
1
1
  import { createContext } from "@videojs/element/context";
2
-
3
- //#region src/ui/controls/context.ts
4
- const CONTROLS_CONTEXT_KEY = Symbol("@videojs/controls");
5
- const controlsContext = createContext(CONTROLS_CONTEXT_KEY);
6
-
2
+ const controlsContext = createContext(Symbol("@videojs/controls"));
7
3
  //#endregion
8
4
  export { controlsContext };
5
+
9
6
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/controls/context.ts"],"sourcesContent":["import type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst CONTROLS_CONTEXT_KEY = Symbol('@videojs/controls');\n\nexport const controlsContext = createContext<ControlsContextValue>(CONTROLS_CONTEXT_KEY);\n"],"mappings":";;;AAQA,MAAM,uBAAuB,OAAO,oBAAoB;AAExD,MAAa,kBAAkB,cAAoC,qBAAqB"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/controls/context.ts"],"sourcesContent":["import type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst CONTROLS_CONTEXT_KEY = Symbol('@videojs/controls');\n\nexport const controlsContext = createContext<ControlsContextValue>(CONTROLS_CONTEXT_KEY);\n"],"mappings":";AAUA,MAAa,kBAAkB,cAFF,OAAO,oBAAoB,CAEgC"}
@@ -2,10 +2,9 @@ import { playerContext } from "../../player/context.js";
2
2
  import { MediaElement } from "../media-element.js";
3
3
  import { PlayerController } from "../../player/player-controller.js";
4
4
  import { controlsContext } from "./context.js";
5
+ import { ControlsCore, ControlsDataAttrs } from "@videojs/core";
5
6
  import { applyStateDataAttrs, selectControls } from "@videojs/core/dom";
6
7
  import { ContextProvider } from "@videojs/element/context";
7
- import { ControlsCore, ControlsDataAttrs } from "@videojs/core";
8
-
9
8
  //#region src/ui/controls/controls-element.ts
10
9
  var ControlsElement = class extends MediaElement {
11
10
  static {
@@ -30,7 +29,7 @@ var ControlsElement = class extends MediaElement {
30
29
  });
31
30
  }
32
31
  };
33
-
34
32
  //#endregion
35
33
  export { ControlsElement };
34
+
36
35
  //# sourceMappingURL=controls-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls-element.js","names":["#core","#mediaState","#provider"],"sources":["../../../../src/ui/controls/controls-element.ts"],"sourcesContent":["import { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { controlsContext } from './context';\n\nexport class ControlsElement extends MediaElement {\n static readonly tagName = 'media-controls';\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const media = this.#mediaState.value;\n if (!media) return;\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n }\n}\n"],"mappings":";;;;;;;;;AAUA,IAAa,kBAAb,cAAqC,aAAa;;iBACtB;;CAE1B,CAASA,OAAQ,IAAI,cAAc;CACnC,CAASC,aAAc,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAChF,CAASC,WAAY,IAAI,gBAAgB,MAAM,EAAE,SAAS,iBAAiB,CAAC;CAE5E,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;;CAO3B,AAAmB,OAAO,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,QAAQ,MAAKD,WAAY;AAC/B,MAAI,CAAC,MAAO;AAEZ,QAAKD,KAAM,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAKA,KAAM,UAAU;AAEnC,sBAAoB,MAAM,OAAO,kBAAkB;AAEnD,QAAKE,SAAU,SAAS;GACtB;GACA,cAAc;GACf,CAAC"}
1
+ {"version":3,"file":"controls-element.js","names":["#core","#mediaState","#provider"],"sources":["../../../../src/ui/controls/controls-element.ts"],"sourcesContent":["import { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { controlsContext } from './context';\n\nexport class ControlsElement extends MediaElement {\n static readonly tagName = 'media-controls';\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const media = this.#mediaState.value;\n if (!media) return;\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n }\n}\n"],"mappings":";;;;;;;;AAUA,IAAa,kBAAb,cAAqC,aAAa;;iBACtB;;CAE1B,QAAiB,IAAI,cAAc;CACnC,cAAuB,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAChF,YAAqB,IAAI,gBAAgB,MAAM,EAAE,SAAS,iBAAiB,CAAC;CAE5E,oBAAmC;AACjC,QAAM,mBAAmB;;CAO3B,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,QAAQ,MAAA,WAAiB;AAC/B,MAAI,CAAC,MAAO;AAEZ,QAAA,KAAW,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAA,KAAW,UAAU;AAEnC,sBAAoB,MAAM,OAAO,kBAAkB;AAEnD,QAAA,SAAe,SAAS;GACtB;GACA,cAAc;GACf,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { ContextPartElement } from "../context-part-element.js";
2
2
  import { controlsContext } from "./context.js";
3
3
  import { ContextConsumer } from "@videojs/element/context";
4
-
5
4
  //#region src/ui/controls/controls-group-element.ts
6
5
  var ControlsGroupElement = class extends ContextPartElement {
7
6
  constructor(..._args) {
@@ -19,7 +18,7 @@ var ControlsGroupElement = class extends ContextPartElement {
19
18
  if (this.hasAttribute("aria-label") || this.hasAttribute("aria-labelledby")) this.setAttribute("role", "group");
20
19
  }
21
20
  };
22
-
23
21
  //#endregion
24
22
  export { ControlsGroupElement };
23
+
25
24
  //# sourceMappingURL=controls-group-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls-group-element.js","names":[],"sources":["../../../../src/ui/controls/controls-group-element.ts"],"sourcesContent":["import type { ControlsState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { controlsContext } from './context';\n\nexport class ControlsGroupElement extends ContextPartElement<ControlsState> {\n static readonly tagName = 'media-controls-group';\n\n protected readonly consumer = new ContextConsumer(this, { context: controlsContext, subscribe: true });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.hasAttribute('aria-label') || this.hasAttribute('aria-labelledby')) {\n this.setAttribute('role', 'group');\n }\n }\n}\n"],"mappings":";;;;;AAMA,IAAa,uBAAb,cAA0C,mBAAkC;;;kBAG5C,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAiB,WAAW;GAAM,CAAC;;;iBAF5E;;CAI1B,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,MAAI,KAAK,aAAa,aAAa,IAAI,KAAK,aAAa,kBAAkB,CACzE,MAAK,aAAa,QAAQ,QAAQ"}
1
+ {"version":3,"file":"controls-group-element.js","names":[],"sources":["../../../../src/ui/controls/controls-group-element.ts"],"sourcesContent":["import type { ControlsState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { controlsContext } from './context';\n\nexport class ControlsGroupElement extends ContextPartElement<ControlsState> {\n static readonly tagName = 'media-controls-group';\n\n protected readonly consumer = new ContextConsumer(this, { context: controlsContext, subscribe: true });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.hasAttribute('aria-label') || this.hasAttribute('aria-labelledby')) {\n this.setAttribute('role', 'group');\n }\n }\n}\n"],"mappings":";;;;AAMA,IAAa,uBAAb,cAA0C,mBAAkC;;;kBAG5C,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAiB,WAAW;GAAM,CAAC;;;iBAF5E;;CAI1B,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,MAAI,KAAK,aAAa,aAAa,IAAI,KAAK,aAAa,kBAAkB,CACzE,MAAK,aAAa,QAAQ,QAAQ"}
@@ -0,0 +1,76 @@
1
+ import { playerContext } from "../../player/context.js";
2
+ import { MediaElement } from "../media-element.js";
3
+ import { PlayerController } from "../../player/player-controller.js";
4
+ import { alertDialogContext } from "../alert-dialog/context.js";
5
+ import { AlertDialogDataAttrs, ErrorDialogCore } from "@videojs/core";
6
+ import { applyElementProps, applyStateDataAttrs, createAlertDialog, createTransition, selectError } from "@videojs/core/dom";
7
+ import { ContextProvider } from "@videojs/element/context";
8
+ import { SnapshotController } from "@videojs/store/html";
9
+ //#region src/ui/error-dialog/error-dialog-element.ts
10
+ const FALLBACK_MESSAGE = "An error occurred. Please try again.";
11
+ let idCounter = 0;
12
+ var ErrorDialogElement = class extends MediaElement {
13
+ static {
14
+ this.tagName = "media-error-dialog";
15
+ }
16
+ #core = new ErrorDialogCore();
17
+ #provider = new ContextProvider(this, { context: alertDialogContext });
18
+ #titleId = `vjs-error-dialog-title-${idCounter++}`;
19
+ #descriptionId = `vjs-error-dialog-desc-${idCounter++}`;
20
+ #errorState = new PlayerController(this, playerContext, selectError);
21
+ #dialog = null;
22
+ #snapshot = null;
23
+ #lastErrorMessage = null;
24
+ constructor() {
25
+ super();
26
+ this.#core.setTitleId(this.#titleId);
27
+ this.#core.setDescriptionId(this.#descriptionId);
28
+ }
29
+ connectedCallback() {
30
+ super.connectedCallback();
31
+ this.#dialog = createAlertDialog({
32
+ transition: createTransition(),
33
+ onOpenChange: (nextOpen) => {
34
+ if (!nextOpen) this.#errorState.value?.dismissError();
35
+ }
36
+ });
37
+ this.#dialog.setElement(this);
38
+ if (this.#snapshot) this.#snapshot.track(this.#dialog.input);
39
+ else this.#snapshot = new SnapshotController(this, this.#dialog.input);
40
+ }
41
+ disconnectedCallback() {
42
+ super.disconnectedCallback();
43
+ this.#dialog?.destroy();
44
+ this.#dialog = null;
45
+ }
46
+ willUpdate(_changed) {
47
+ super.willUpdate(_changed);
48
+ if (!this.#dialog) return;
49
+ const errorState = this.#errorState.value;
50
+ const hasError = Boolean(errorState?.error);
51
+ const { active: isOpen } = this.#dialog.input.current;
52
+ if (errorState?.error) this.#lastErrorMessage = errorState.error.message?.trim() || null;
53
+ const desc = this.querySelector("media-alert-dialog-description");
54
+ if (desc) desc.textContent = this.#lastErrorMessage ?? FALLBACK_MESSAGE;
55
+ if (hasError && !isOpen) this.#dialog.open();
56
+ else if (!hasError && isOpen) this.#dialog.close();
57
+ }
58
+ update(_changed) {
59
+ super.update(_changed);
60
+ if (!this.#dialog) return;
61
+ const input = this.#dialog.input.current;
62
+ this.#core.setInput(input);
63
+ const state = this.#core.getState();
64
+ applyElementProps(this, this.#core.getAttrs(state));
65
+ applyStateDataAttrs(this, state, AlertDialogDataAttrs);
66
+ this.#provider.setValue({
67
+ state,
68
+ stateAttrMap: AlertDialogDataAttrs,
69
+ close: () => this.#dialog?.close()
70
+ });
71
+ }
72
+ };
73
+ //#endregion
74
+ export { ErrorDialogElement };
75
+
76
+ //# sourceMappingURL=error-dialog-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-dialog-element.js","names":["#core","#provider","#titleId","#descriptionId","#errorState","#dialog","#snapshot","#lastErrorMessage"],"sources":["../../../../src/ui/error-dialog/error-dialog-element.ts"],"sourcesContent":["import { AlertDialogDataAttrs, type AlertDialogInput, ErrorDialogCore } from '@videojs/core';\nimport {\n type AlertDialogApi,\n applyElementProps,\n applyStateDataAttrs,\n createAlertDialog,\n createTransition,\n selectError,\n} from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { SnapshotController } from '@videojs/store/html';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { alertDialogContext } from '../alert-dialog/context';\nimport { MediaElement } from '../media-element';\n\nconst FALLBACK_MESSAGE = 'An error occurred. Please try again.';\n\nlet idCounter = 0;\n\nexport class ErrorDialogElement extends MediaElement {\n static readonly tagName = 'media-error-dialog';\n\n readonly #core = new ErrorDialogCore();\n readonly #provider = new ContextProvider(this, { context: alertDialogContext });\n readonly #titleId = `vjs-error-dialog-title-${idCounter++}`;\n readonly #descriptionId = `vjs-error-dialog-desc-${idCounter++}`;\n readonly #errorState = new PlayerController(this, playerContext, selectError);\n\n #dialog: AlertDialogApi | null = null;\n #snapshot: SnapshotController<AlertDialogInput> | null = null;\n #lastErrorMessage: string | null = null;\n\n constructor() {\n super();\n this.#core.setTitleId(this.#titleId);\n this.#core.setDescriptionId(this.#descriptionId);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#dialog = createAlertDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => {\n if (!nextOpen) {\n this.#errorState.value?.dismissError();\n }\n },\n });\n\n this.#dialog.setElement(this);\n\n if (this.#snapshot) {\n this.#snapshot.track(this.#dialog.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#dialog.input);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#dialog?.destroy();\n this.#dialog = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n if (!this.#dialog) return;\n\n const errorState = this.#errorState.value;\n const hasError = Boolean(errorState?.error);\n const { active: isOpen } = this.#dialog.input.current;\n\n if (errorState?.error) {\n const message = errorState.error.message?.trim();\n this.#lastErrorMessage = message || null;\n }\n\n // Set description text before opening so content is ready for the transition.\n const desc = this.querySelector('media-alert-dialog-description');\n if (desc) {\n desc.textContent = this.#lastErrorMessage ?? FALLBACK_MESSAGE;\n }\n\n if (hasError && !isOpen) {\n this.#dialog.open();\n } else if (!hasError && isOpen) {\n this.#dialog.close();\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#dialog) return;\n\n const input = this.#dialog.input.current;\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, AlertDialogDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: AlertDialogDataAttrs,\n close: () => this.#dialog?.close(),\n });\n }\n}\n"],"mappings":";;;;;;;;;AAkBA,MAAM,mBAAmB;AAEzB,IAAI,YAAY;AAEhB,IAAa,qBAAb,cAAwC,aAAa;;iBACzB;;CAE1B,QAAiB,IAAI,iBAAiB;CACtC,YAAqB,IAAI,gBAAgB,MAAM,EAAE,SAAS,oBAAoB,CAAC;CAC/E,WAAoB,0BAA0B;CAC9C,iBAA0B,yBAAyB;CACnD,cAAuB,IAAI,iBAAiB,MAAM,eAAe,YAAY;CAE7E,UAAiC;CACjC,YAAyD;CACzD,oBAAmC;CAEnC,cAAc;AACZ,SAAO;AACP,QAAA,KAAW,WAAW,MAAA,QAAc;AACpC,QAAA,KAAW,iBAAiB,MAAA,cAAoB;;CAGlD,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,QAAA,SAAe,kBAAkB;GAC/B,YAAY,kBAAkB;GAC9B,eAAe,aAAsB;AACnC,QAAI,CAAC,SACH,OAAA,WAAiB,OAAO,cAAc;;GAG3C,CAAC;AAEF,QAAA,OAAa,WAAW,KAAK;AAE7B,MAAI,MAAA,SACF,OAAA,SAAe,MAAM,MAAA,OAAa,MAAM;MAExC,OAAA,WAAiB,IAAI,mBAAmB,MAAM,MAAA,OAAa,MAAM;;CAIrE,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,QAAc,SAAS;AACvB,QAAA,SAAe;;CAGjB,WAA8B,UAAgC;AAC5D,QAAM,WAAW,SAAS;AAC1B,MAAI,CAAC,MAAA,OAAc;EAEnB,MAAM,aAAa,MAAA,WAAiB;EACpC,MAAM,WAAW,QAAQ,YAAY,MAAM;EAC3C,MAAM,EAAE,QAAQ,WAAW,MAAA,OAAa,MAAM;AAE9C,MAAI,YAAY,MAEd,OAAA,mBADgB,WAAW,MAAM,SAAS,MAAM,IACZ;EAItC,MAAM,OAAO,KAAK,cAAc,iCAAiC;AACjE,MAAI,KACF,MAAK,cAAc,MAAA,oBAA0B;AAG/C,MAAI,YAAY,CAAC,OACf,OAAA,OAAa,MAAM;WACV,CAAC,YAAY,OACtB,OAAA,OAAa,OAAO;;CAIxB,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;AACtB,MAAI,CAAC,MAAA,OAAc;EAEnB,MAAM,QAAQ,MAAA,OAAa,MAAM;AACjC,QAAA,KAAW,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAA,KAAW,UAAU;AAEnC,oBAAkB,MAAM,MAAA,KAAW,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,qBAAqB;AAEtD,QAAA,SAAe,SAAS;GACtB;GACA,cAAc;GACd,aAAa,MAAA,QAAc,OAAO;GACnC,CAAC"}