@videojs/html 10.0.0-beta.2 → 10.0.0-beta.22

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 (984) hide show
  1. package/cdn/abort-C9UiBdVU.js +2 -0
  2. package/cdn/abort-C9UiBdVU.js.map +1 -0
  3. package/cdn/abort-DsTff8mS.js +22 -0
  4. package/cdn/abort-DsTff8mS.js.map +1 -0
  5. package/cdn/audio-minimal-ui.dev.d.ts +1 -0
  6. package/cdn/audio-minimal-ui.dev.js +4 -0
  7. package/cdn/audio-minimal-ui.js +1 -0
  8. package/cdn/audio-minimal.dev.d.ts +1 -0
  9. package/cdn/audio-minimal.dev.js +93 -5331
  10. package/cdn/audio-minimal.dev.js.map +1 -1
  11. package/cdn/audio-minimal.js +1 -24
  12. package/cdn/audio-minimal.js.map +1 -1
  13. package/cdn/audio-ui.dev.d.ts +1 -0
  14. package/cdn/audio-ui.dev.js +4 -0
  15. package/cdn/audio-ui.js +1 -0
  16. package/cdn/audio.dev.d.ts +1 -0
  17. package/cdn/audio.dev.js +107 -5325
  18. package/cdn/audio.dev.js.map +1 -1
  19. package/cdn/audio.js +1 -24
  20. package/cdn/audio.js.map +1 -1
  21. package/cdn/background.dev.d.ts +1 -0
  22. package/cdn/background.dev.js +105 -2017
  23. package/cdn/background.dev.js.map +1 -1
  24. package/cdn/background.js +1 -18
  25. package/cdn/background.js.map +1 -1
  26. package/cdn/compounds-CCgS3IGo.js +8 -0
  27. package/cdn/compounds-CCgS3IGo.js.map +1 -0
  28. package/cdn/compounds-DD3MYkSc.js +4157 -0
  29. package/cdn/compounds-DD3MYkSc.js.map +1 -0
  30. package/cdn/context-0rI_P6jf.js +107 -0
  31. package/cdn/context-0rI_P6jf.js.map +1 -0
  32. package/cdn/context-CEFisYD0.js +14 -0
  33. package/cdn/context-CEFisYD0.js.map +1 -0
  34. package/cdn/create-player-B-PGzhq2.js +7 -0
  35. package/cdn/create-player-B-PGzhq2.js.map +1 -0
  36. package/cdn/create-player-BKLw7l1a.js +2246 -0
  37. package/cdn/create-player-BKLw7l1a.js.map +1 -0
  38. package/cdn/default-Djy9PEXm.js +2 -0
  39. package/cdn/default-Djy9PEXm.js.map +1 -0
  40. package/cdn/default-YzaLyoYg.js +30 -0
  41. package/cdn/default-YzaLyoYg.js.map +1 -0
  42. package/cdn/hls-CcSAx_3I.js +28632 -0
  43. package/cdn/hls-CcSAx_3I.js.map +1 -0
  44. package/cdn/hls-Dl2v35sW.js +41 -0
  45. package/cdn/hls-Dl2v35sW.js.map +1 -0
  46. package/cdn/hotkey-element-BONs_FyJ.js +369 -0
  47. package/cdn/hotkey-element-BONs_FyJ.js.map +1 -0
  48. package/cdn/hotkey-element-DWWkfH3A.js +2 -0
  49. package/cdn/hotkey-element-DWWkfH3A.js.map +1 -0
  50. package/cdn/listen-CJT7C4kM.js +9 -0
  51. package/cdn/listen-CJT7C4kM.js.map +1 -0
  52. package/cdn/listen-DFX-0NbX.js +2 -0
  53. package/cdn/listen-DFX-0NbX.js.map +1 -0
  54. package/cdn/media/dash-video.dev.d.ts +1 -0
  55. package/cdn/media/dash-video.dev.js +39153 -0
  56. package/cdn/media/dash-video.dev.js.map +1 -0
  57. package/cdn/media/dash-video.js +21 -0
  58. package/cdn/media/dash-video.js.map +1 -0
  59. package/cdn/media/hls-video.dev.d.ts +1 -0
  60. package/cdn/media/hls-video.dev.js +12 -28712
  61. package/cdn/media/hls-video.dev.js.map +1 -1
  62. package/cdn/media/hls-video.js +1 -82
  63. package/cdn/media/hls-video.js.map +1 -1
  64. package/cdn/media/mux-audio.dev.d.ts +1 -0
  65. package/cdn/media/mux-audio.dev.js +29 -0
  66. package/cdn/media/mux-audio.dev.js.map +1 -0
  67. package/cdn/media/mux-audio.js +2 -0
  68. package/cdn/media/mux-audio.js.map +1 -0
  69. package/cdn/media/mux-video.dev.d.ts +1 -0
  70. package/cdn/media/mux-video.dev.js +29 -0
  71. package/cdn/media/mux-video.dev.js.map +1 -0
  72. package/cdn/media/mux-video.js +2 -0
  73. package/cdn/media/mux-video.js.map +1 -0
  74. package/cdn/media/native-hls-video.dev.d.ts +1 -0
  75. package/cdn/media/native-hls-video.dev.js +19 -0
  76. package/cdn/media/native-hls-video.dev.js.map +1 -0
  77. package/cdn/media/native-hls-video.js +2 -0
  78. package/cdn/media/native-hls-video.js.map +1 -0
  79. package/cdn/media/simple-hls-video.dev.d.ts +1 -0
  80. package/cdn/media/simple-hls-video.dev.js +2887 -2605
  81. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  82. package/cdn/media/simple-hls-video.js +58 -43
  83. package/cdn/media/simple-hls-video.js.map +1 -1
  84. package/cdn/media-attach-mixin-C2wz0Qbd.js +2 -0
  85. package/cdn/media-attach-mixin-C2wz0Qbd.js.map +1 -0
  86. package/cdn/media-attach-mixin-CYoNe7Sh.js +67 -0
  87. package/cdn/media-attach-mixin-CYoNe7Sh.js.map +1 -0
  88. package/cdn/minimal-AX_y2YBU.js +30 -0
  89. package/cdn/minimal-AX_y2YBU.js.map +1 -0
  90. package/cdn/minimal-Bc74CFqg.js +2 -0
  91. package/cdn/minimal-Bc74CFqg.js.map +1 -0
  92. package/cdn/minimal-ui-CE1sVxKB.js +22 -0
  93. package/cdn/minimal-ui-CE1sVxKB.js.map +1 -0
  94. package/cdn/minimal-ui-hC8-_9_F.js +2 -0
  95. package/cdn/minimal-ui-hC8-_9_F.js.map +1 -0
  96. package/cdn/minimal-ui-lnw8AjaS.js +2 -0
  97. package/cdn/minimal-ui-lnw8AjaS.js.map +1 -0
  98. package/cdn/minimal-ui-yKur3jyD.js +29 -0
  99. package/cdn/minimal-ui-yKur3jyD.js.map +1 -0
  100. package/cdn/mux-BgWl50KW.js +27 -0
  101. package/cdn/mux-BgWl50KW.js.map +1 -0
  102. package/cdn/mux-BhHIeG3e.js +3783 -0
  103. package/cdn/mux-BhHIeG3e.js.map +1 -0
  104. package/cdn/native-hls-lhip4tV9.js +123 -0
  105. package/cdn/native-hls-lhip4tV9.js.map +1 -0
  106. package/cdn/native-hls-odPBXxK7.js +2 -0
  107. package/cdn/native-hls-odPBXxK7.js.map +1 -0
  108. package/cdn/pick-CERGq1No.js +2 -0
  109. package/cdn/pick-CERGq1No.js.map +1 -0
  110. package/cdn/pick-D-wCJ3iA.js +23 -0
  111. package/cdn/pick-D-wCJ3iA.js.map +1 -0
  112. package/cdn/player-B7jISTmQ.js +2 -0
  113. package/cdn/player-B7jISTmQ.js.map +1 -0
  114. package/cdn/player-BVGWmIbQ.js +16 -0
  115. package/cdn/player-BVGWmIbQ.js.map +1 -0
  116. package/cdn/player-ChdQN3H5.js +2 -0
  117. package/cdn/player-ChdQN3H5.js.map +1 -0
  118. package/cdn/player-DX5Ka0vt.js +463 -0
  119. package/cdn/player-DX5Ka0vt.js.map +1 -0
  120. package/cdn/shadow-styles-BYZ6q3Q4.js +3 -0
  121. package/cdn/shadow-styles-BYZ6q3Q4.js.map +1 -0
  122. package/cdn/shadow-styles-DKXFMmyD.js +41 -0
  123. package/cdn/shadow-styles-DKXFMmyD.js.map +1 -0
  124. package/cdn/shallow-equal-Daj3-_LC.js +15 -0
  125. package/cdn/shallow-equal-Daj3-_LC.js.map +1 -0
  126. package/cdn/shallow-equal-xh6Wj-hj.js +2 -0
  127. package/cdn/shallow-equal-xh6Wj-hj.js.map +1 -0
  128. package/cdn/skin-element-D3iVinGP.js +55 -0
  129. package/cdn/skin-element-D3iVinGP.js.map +1 -0
  130. package/cdn/skin-element-DM82PPxz.js +2 -0
  131. package/cdn/skin-element-DM82PPxz.js.map +1 -0
  132. package/cdn/ui-BGvi0TNr.js +2 -0
  133. package/cdn/ui-BGvi0TNr.js.map +1 -0
  134. package/cdn/ui-BN57BxYZ.js +2 -0
  135. package/cdn/ui-BN57BxYZ.js.map +1 -0
  136. package/cdn/ui-CKR6dVbQ.js +25 -0
  137. package/cdn/ui-CKR6dVbQ.js.map +1 -0
  138. package/cdn/ui-CZ4yl3t3.js +32 -0
  139. package/cdn/ui-CZ4yl3t3.js.map +1 -0
  140. package/cdn/video-host-BtD61mpF.js +440 -0
  141. package/cdn/video-host-BtD61mpF.js.map +1 -0
  142. package/cdn/video-host-LeB1FKfO.js +47 -0
  143. package/cdn/video-host-LeB1FKfO.js.map +1 -0
  144. package/cdn/video-minimal-ui.dev.d.ts +1 -0
  145. package/cdn/video-minimal-ui.dev.js +4 -0
  146. package/cdn/video-minimal-ui.js +1 -0
  147. package/cdn/video-minimal.dev.d.ts +1 -0
  148. package/cdn/video-minimal.dev.js +120 -5669
  149. package/cdn/video-minimal.dev.js.map +1 -1
  150. package/cdn/video-minimal.js +1 -24
  151. package/cdn/video-minimal.js.map +1 -1
  152. package/cdn/video-ui.dev.d.ts +1 -0
  153. package/cdn/video-ui.dev.js +4 -0
  154. package/cdn/video-ui.js +1 -0
  155. package/cdn/video.dev.d.ts +1 -0
  156. package/cdn/video.dev.js +142 -5739
  157. package/cdn/video.dev.js.map +1 -1
  158. package/cdn/video.js +1 -24
  159. package/cdn/video.js.map +1 -1
  160. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +2 -2
  161. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  162. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +2 -2
  163. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  164. package/dist/default/_virtual/inline-css_src/define/background/skin.js +6 -0
  165. package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -0
  166. package/dist/default/_virtual/inline-css_src/define/base.js +6 -0
  167. package/dist/default/_virtual/inline-css_src/define/base.js.map +1 -0
  168. package/dist/default/_virtual/inline-css_src/define/shared.js +6 -0
  169. package/dist/default/_virtual/inline-css_src/define/shared.js.map +1 -0
  170. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +2 -2
  171. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  172. package/dist/default/_virtual/inline-css_src/define/video/skin.js +2 -2
  173. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  174. package/dist/default/define/audio/minimal-skin.css +324 -182
  175. package/dist/default/define/audio/minimal-skin.js +10 -19
  176. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  177. package/dist/default/define/audio/minimal-skin.tailwind.js +11 -19
  178. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  179. package/dist/default/define/audio/minimal-ui.js +28 -0
  180. package/dist/default/define/audio/minimal-ui.js.map +1 -0
  181. package/dist/default/define/audio/player.js +1 -2
  182. package/dist/default/define/audio/player.js.map +1 -1
  183. package/dist/default/define/audio/skin.css +307 -174
  184. package/dist/default/define/audio/skin.js +10 -19
  185. package/dist/default/define/audio/skin.js.map +1 -1
  186. package/dist/default/define/audio/skin.tailwind.js +13 -21
  187. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  188. package/dist/default/define/audio/ui.js +32 -0
  189. package/dist/default/define/audio/ui.js.map +1 -0
  190. package/dist/default/define/background/player.js +1 -2
  191. package/dist/default/define/background/player.js.map +1 -1
  192. package/dist/default/define/background/skin.css +1 -1
  193. package/dist/default/define/background/skin.js +6 -4
  194. package/dist/default/define/background/skin.js.map +1 -1
  195. package/dist/default/define/background/video.js +1 -2
  196. package/dist/default/define/base.css +27 -0
  197. package/dist/default/define/media/background-video.js +1 -2
  198. package/dist/default/define/media/background-video.js.map +1 -1
  199. package/dist/default/define/media/container.js +1 -2
  200. package/dist/default/define/media/container.js.map +1 -1
  201. package/dist/default/define/media/dash-video.js +13 -0
  202. package/dist/default/define/media/dash-video.js.map +1 -0
  203. package/dist/default/define/media/hls-video.js +1 -2
  204. package/dist/default/define/media/hls-video.js.map +1 -1
  205. package/dist/default/define/media/mux-audio.js +13 -0
  206. package/dist/default/define/media/mux-audio.js.map +1 -0
  207. package/dist/default/define/media/mux-video.js +13 -0
  208. package/dist/default/define/media/mux-video.js.map +1 -0
  209. package/dist/default/define/media/native-hls-video.js +13 -0
  210. package/dist/default/define/media/native-hls-video.js.map +1 -0
  211. package/dist/default/define/media/simple-hls-video.js +3 -3
  212. package/dist/default/define/media/simple-hls-video.js.map +1 -1
  213. package/dist/default/define/safe-define.js +4 -2
  214. package/dist/default/define/safe-define.js.map +1 -1
  215. package/dist/default/define/shared.css +14 -0
  216. package/dist/default/define/skin-element.js +33 -0
  217. package/dist/default/define/skin-element.js.map +1 -0
  218. package/dist/default/define/ui/alert-dialog-close.js +1 -2
  219. package/dist/default/define/ui/alert-dialog-close.js.map +1 -1
  220. package/dist/default/define/ui/alert-dialog-description.js +1 -2
  221. package/dist/default/define/ui/alert-dialog-description.js.map +1 -1
  222. package/dist/default/define/ui/alert-dialog-title.js +1 -2
  223. package/dist/default/define/ui/alert-dialog-title.js.map +1 -1
  224. package/dist/default/define/ui/alert-dialog.js +1 -2
  225. package/dist/default/define/ui/alert-dialog.js.map +1 -1
  226. package/dist/default/define/ui/buffering-indicator.js +1 -2
  227. package/dist/default/define/ui/buffering-indicator.js.map +1 -1
  228. package/dist/default/define/ui/captions-button.js +3 -3
  229. package/dist/default/define/ui/captions-button.js.map +1 -1
  230. package/dist/default/define/ui/cast-button.js +7 -0
  231. package/dist/default/define/ui/cast-button.js.map +1 -0
  232. package/dist/default/define/ui/compounds.js +62 -0
  233. package/dist/default/define/ui/compounds.js.map +1 -0
  234. package/dist/default/define/ui/controls-group.js +1 -2
  235. package/dist/default/define/ui/controls-group.js.map +1 -1
  236. package/dist/default/define/ui/controls.js +3 -7
  237. package/dist/default/define/ui/controls.js.map +1 -1
  238. package/dist/default/define/ui/error-dialog.js +6 -0
  239. package/dist/default/define/ui/error-dialog.js.map +1 -0
  240. package/dist/default/define/ui/fullscreen-button.js +1 -2
  241. package/dist/default/define/ui/fullscreen-button.js.map +1 -1
  242. package/dist/default/define/ui/hotkey.js +7 -0
  243. package/dist/default/define/ui/hotkey.js.map +1 -0
  244. package/dist/default/define/ui/mute-button.js +1 -2
  245. package/dist/default/define/ui/mute-button.js.map +1 -1
  246. package/dist/default/define/ui/pip-button.js +1 -2
  247. package/dist/default/define/ui/pip-button.js.map +1 -1
  248. package/dist/default/define/ui/play-button.js +1 -2
  249. package/dist/default/define/ui/play-button.js.map +1 -1
  250. package/dist/default/define/ui/playback-rate-button.js +1 -2
  251. package/dist/default/define/ui/playback-rate-button.js.map +1 -1
  252. package/dist/default/define/ui/popover.js +1 -2
  253. package/dist/default/define/ui/popover.js.map +1 -1
  254. package/dist/default/define/ui/poster.js +1 -2
  255. package/dist/default/define/ui/poster.js.map +1 -1
  256. package/dist/default/define/ui/seek-button.js +1 -2
  257. package/dist/default/define/ui/seek-button.js.map +1 -1
  258. package/dist/default/define/ui/slider-buffer.js +1 -2
  259. package/dist/default/define/ui/slider-buffer.js.map +1 -1
  260. package/dist/default/define/ui/slider-fill.js +1 -2
  261. package/dist/default/define/ui/slider-fill.js.map +1 -1
  262. package/dist/default/define/ui/slider-thumb.js +1 -2
  263. package/dist/default/define/ui/slider-thumb.js.map +1 -1
  264. package/dist/default/define/ui/slider-thumbnail.js +1 -2
  265. package/dist/default/define/ui/slider-thumbnail.js.map +1 -1
  266. package/dist/default/define/ui/slider-track.js +1 -2
  267. package/dist/default/define/ui/slider-track.js.map +1 -1
  268. package/dist/default/define/ui/slider-value.js +1 -2
  269. package/dist/default/define/ui/slider-value.js.map +1 -1
  270. package/dist/default/define/ui/slider.js +3 -15
  271. package/dist/default/define/ui/slider.js.map +1 -1
  272. package/dist/default/define/ui/thumbnail.js +1 -2
  273. package/dist/default/define/ui/thumbnail.js.map +1 -1
  274. package/dist/default/define/ui/time-group.js +1 -2
  275. package/dist/default/define/ui/time-group.js.map +1 -1
  276. package/dist/default/define/ui/time-separator.js +1 -2
  277. package/dist/default/define/ui/time-separator.js.map +1 -1
  278. package/dist/default/define/ui/time-slider.js +3 -19
  279. package/dist/default/define/ui/time-slider.js.map +1 -1
  280. package/dist/default/define/ui/time.js +3 -9
  281. package/dist/default/define/ui/time.js.map +1 -1
  282. package/dist/default/define/ui/tooltip-group.js +1 -2
  283. package/dist/default/define/ui/tooltip-group.js.map +1 -1
  284. package/dist/default/define/ui/tooltip.js +1 -2
  285. package/dist/default/define/ui/tooltip.js.map +1 -1
  286. package/dist/default/define/ui/volume-slider.js +3 -15
  287. package/dist/default/define/ui/volume-slider.js.map +1 -1
  288. package/dist/default/define/video/minimal-skin.css +624 -328
  289. package/dist/default/define/video/minimal-skin.js +10 -23
  290. package/dist/default/define/video/minimal-skin.js.map +1 -1
  291. package/dist/default/define/video/minimal-skin.tailwind.js +13 -30
  292. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  293. package/dist/default/define/video/minimal-ui.js +41 -0
  294. package/dist/default/define/video/minimal-ui.js.map +1 -0
  295. package/dist/default/define/video/player.js +1 -2
  296. package/dist/default/define/video/player.js.map +1 -1
  297. package/dist/default/define/video/skin.css +592 -311
  298. package/dist/default/define/video/skin.js +10 -24
  299. package/dist/default/define/video/skin.js.map +1 -1
  300. package/dist/default/define/video/skin.tailwind.js +13 -28
  301. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  302. package/dist/default/define/video/ui.js +45 -0
  303. package/dist/default/define/video/ui.js.map +1 -0
  304. package/dist/default/icons/dist/render/default/index.js +5 -2
  305. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  306. package/dist/default/icons/dist/render/minimal/index.js +5 -2
  307. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  308. package/dist/default/index.js +11 -5
  309. package/dist/default/media/background-video/index.js +6 -3
  310. package/dist/default/media/background-video/index.js.map +1 -1
  311. package/dist/default/media/container-element.js +22 -4
  312. package/dist/default/media/container-element.js.map +1 -1
  313. package/dist/default/media/dash-video/index.js +9 -0
  314. package/dist/default/media/dash-video/index.js.map +1 -0
  315. package/dist/default/media/hls-video/index.js +12 -19
  316. package/dist/default/media/hls-video/index.js.map +1 -1
  317. package/dist/default/media/mux-audio/index.js +18 -0
  318. package/dist/default/media/mux-audio/index.js.map +1 -0
  319. package/dist/default/media/mux-video/index.js +18 -0
  320. package/dist/default/media/mux-video/index.js.map +1 -0
  321. package/dist/default/media/native-hls-video/index.js +9 -0
  322. package/dist/default/media/native-hls-video/index.js.map +1 -0
  323. package/dist/default/media/simple-hls-video/index.js +5 -17
  324. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  325. package/dist/default/player/context.js +7 -4
  326. package/dist/default/player/context.js.map +1 -1
  327. package/dist/default/player/create-player.js +12 -5
  328. package/dist/default/player/create-player.js.map +1 -1
  329. package/dist/default/player/player-controller.js +1 -2
  330. package/dist/default/player/player-controller.js.map +1 -1
  331. package/dist/default/presets/audio.js +1 -2
  332. package/dist/default/presets/background.js +1 -2
  333. package/dist/default/presets/video.js +1 -2
  334. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +17 -38
  335. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  336. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  337. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  338. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  339. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  340. package/dist/default/skins/dist/default/default/tailwind/components/button.js +5 -5
  341. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  342. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +2 -3
  343. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  344. package/dist/default/skins/dist/default/default/tailwind/components/error.js +4 -5
  345. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  346. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -2
  347. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  348. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  349. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  350. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  351. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  352. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +5 -6
  353. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  354. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +15 -0
  355. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  356. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +12 -0
  357. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  358. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -3
  359. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  360. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +2 -3
  361. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  362. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +2 -3
  363. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  364. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +2 -3
  365. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  366. package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
  367. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  368. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +41 -26
  369. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  370. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +18 -33
  371. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  372. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  373. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  374. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  375. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  376. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +5 -5
  377. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  378. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  379. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  380. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +4 -5
  381. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  382. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  383. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  384. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  385. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  386. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  387. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  388. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +5 -5
  389. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  390. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +15 -0
  391. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  392. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +13 -0
  393. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  394. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  395. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  396. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +2 -3
  397. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  398. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  399. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  400. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  401. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  402. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +45 -24
  403. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  404. package/dist/{dev/skins/dist/default/default/tailwind/components → default/skins/dist/default/shared/tailwind}/icon-state.js +12 -2
  405. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  406. package/dist/default/store/container-mixin.js +17 -62
  407. package/dist/default/store/container-mixin.js.map +1 -1
  408. package/dist/default/store/media-attach-mixin.js +44 -0
  409. package/dist/default/store/media-attach-mixin.js.map +1 -0
  410. package/dist/default/store/provider-mixin.js +100 -11
  411. package/dist/default/store/provider-mixin.js.map +1 -1
  412. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js +1 -2
  413. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  414. package/dist/default/ui/alert-dialog/alert-dialog-description-element.js +1 -2
  415. package/dist/default/ui/alert-dialog/alert-dialog-description-element.js.map +1 -1
  416. package/dist/default/ui/alert-dialog/alert-dialog-element.js +2 -2
  417. package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  418. package/dist/default/ui/alert-dialog/alert-dialog-title-element.js +1 -2
  419. package/dist/default/ui/alert-dialog/alert-dialog-title-element.js.map +1 -1
  420. package/dist/default/ui/alert-dialog/context.js +2 -5
  421. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  422. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +2 -2
  423. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  424. package/dist/default/ui/captions-button/captions-button-element.js +2 -2
  425. package/dist/default/ui/captions-button/captions-button-element.js.map +1 -1
  426. package/dist/default/ui/cast-button/cast-button-element.js +24 -0
  427. package/dist/default/ui/cast-button/cast-button-element.js.map +1 -0
  428. package/dist/default/ui/context-part-element.js +1 -2
  429. package/dist/default/ui/context-part-element.js.map +1 -1
  430. package/dist/default/ui/controls/context.js +2 -5
  431. package/dist/default/ui/controls/context.js.map +1 -1
  432. package/dist/default/ui/controls/controls-element.js +1 -2
  433. package/dist/default/ui/controls/controls-element.js.map +1 -1
  434. package/dist/default/ui/controls/controls-group-element.js +1 -2
  435. package/dist/default/ui/controls/controls-group-element.js.map +1 -1
  436. package/dist/default/ui/error-dialog/error-dialog-element.js +77 -0
  437. package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -0
  438. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +2 -2
  439. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  440. package/dist/default/ui/gesture/gesture-element.js +84 -0
  441. package/dist/default/ui/gesture/gesture-element.js.map +1 -0
  442. package/dist/default/ui/hotkey/aria-key-shortcuts-controller.js +28 -0
  443. package/dist/default/ui/hotkey/aria-key-shortcuts-controller.js.map +1 -0
  444. package/dist/default/ui/hotkey/hotkey-element.js +81 -0
  445. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -0
  446. package/dist/default/ui/media-button-element.js +17 -3
  447. package/dist/default/ui/media-button-element.js.map +1 -1
  448. package/dist/default/ui/media-element.js +1 -2
  449. package/dist/default/ui/media-element.js.map +1 -1
  450. package/dist/default/ui/media-ui-element.js +1 -2
  451. package/dist/default/ui/media-ui-element.js.map +1 -1
  452. package/dist/default/ui/mute-button/mute-button-element.js +2 -2
  453. package/dist/default/ui/mute-button/mute-button-element.js.map +1 -1
  454. package/dist/default/ui/pip-button/pip-button-element.js +2 -2
  455. package/dist/default/ui/pip-button/pip-button-element.js.map +1 -1
  456. package/dist/default/ui/play-button/play-button-element.js +2 -2
  457. package/dist/default/ui/play-button/play-button-element.js.map +1 -1
  458. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  459. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  460. package/dist/default/ui/popover/popover-element.js +13 -11
  461. package/dist/default/ui/popover/popover-element.js.map +1 -1
  462. package/dist/default/ui/position-controller.js +76 -0
  463. package/dist/default/ui/position-controller.js.map +1 -0
  464. package/dist/default/ui/poster/poster-element.js +1 -2
  465. package/dist/default/ui/poster/poster-element.js.map +1 -1
  466. package/dist/default/ui/seek-button/seek-button-element.js +1 -2
  467. package/dist/default/ui/seek-button/seek-button-element.js.map +1 -1
  468. package/dist/default/ui/slider/context.js +2 -5
  469. package/dist/default/ui/slider/context.js.map +1 -1
  470. package/dist/default/ui/slider/slider-buffer-element.js +1 -2
  471. package/dist/default/ui/slider/slider-buffer-element.js.map +1 -1
  472. package/dist/default/ui/slider/slider-element.js +2 -3
  473. package/dist/default/ui/slider/slider-element.js.map +1 -1
  474. package/dist/default/ui/slider/slider-fill-element.js +1 -2
  475. package/dist/default/ui/slider/slider-fill-element.js.map +1 -1
  476. package/dist/default/ui/slider/slider-preview-element.js +2 -3
  477. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  478. package/dist/default/ui/slider/slider-thumb-element.js +1 -2
  479. package/dist/default/ui/slider/slider-thumb-element.js.map +1 -1
  480. package/dist/default/ui/slider/slider-thumbnail-element.js +1 -2
  481. package/dist/default/ui/slider/slider-thumbnail-element.js.map +1 -1
  482. package/dist/default/ui/slider/slider-track-element.js +1 -2
  483. package/dist/default/ui/slider/slider-track-element.js.map +1 -1
  484. package/dist/default/ui/slider/slider-value-element.js +1 -2
  485. package/dist/default/ui/slider/slider-value-element.js.map +1 -1
  486. package/dist/default/ui/thumbnail/thumbnail-element.js +1 -2
  487. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
  488. package/dist/default/ui/time/time-element.js +13 -12
  489. package/dist/default/ui/time/time-element.js.map +1 -1
  490. package/dist/default/ui/time/time-group-element.js +1 -2
  491. package/dist/default/ui/time/time-group-element.js.map +1 -1
  492. package/dist/default/ui/time/time-separator-element.js +1 -2
  493. package/dist/default/ui/time/time-separator-element.js.map +1 -1
  494. package/dist/default/ui/time-slider/time-slider-element.js +7 -8
  495. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  496. package/dist/default/ui/tooltip/context.js +2 -5
  497. package/dist/default/ui/tooltip/context.js.map +1 -1
  498. package/dist/default/ui/tooltip/tooltip-element.js +25 -18
  499. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  500. package/dist/default/ui/tooltip/tooltip-group-element.js +5 -3
  501. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  502. package/dist/default/ui/volume-slider/volume-slider-element.js +27 -20
  503. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  504. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +2 -2
  505. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  506. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +2 -2
  507. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  508. package/dist/dev/_virtual/inline-css_src/define/background/skin.js +6 -0
  509. package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -0
  510. package/dist/dev/_virtual/inline-css_src/define/base.js +6 -0
  511. package/dist/dev/_virtual/inline-css_src/define/base.js.map +1 -0
  512. package/dist/dev/_virtual/inline-css_src/define/shared.js +6 -0
  513. package/dist/dev/_virtual/inline-css_src/define/shared.js.map +1 -0
  514. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +2 -2
  515. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  516. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +2 -2
  517. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  518. package/dist/dev/define/audio/minimal-skin.css +324 -182
  519. package/dist/dev/define/audio/minimal-skin.d.ts +6 -10
  520. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  521. package/dist/dev/define/audio/minimal-skin.js +85 -82
  522. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  523. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts +4 -10
  524. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
  525. package/dist/dev/define/audio/minimal-skin.tailwind.js +86 -84
  526. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  527. package/dist/dev/define/audio/minimal-ui.d.ts +1 -0
  528. package/dist/dev/define/audio/minimal-ui.js +28 -0
  529. package/dist/dev/define/audio/minimal-ui.js.map +1 -0
  530. package/dist/dev/define/audio/player.js +1 -2
  531. package/dist/dev/define/audio/player.js.map +1 -1
  532. package/dist/dev/define/audio/skin.css +307 -174
  533. package/dist/dev/define/audio/skin.d.ts +6 -10
  534. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  535. package/dist/dev/define/audio/skin.js +97 -74
  536. package/dist/dev/define/audio/skin.js.map +1 -1
  537. package/dist/dev/define/audio/skin.tailwind.d.ts +4 -10
  538. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
  539. package/dist/dev/define/audio/skin.tailwind.js +84 -78
  540. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  541. package/dist/dev/define/audio/ui.d.ts +1 -0
  542. package/dist/dev/define/audio/ui.js +32 -0
  543. package/dist/dev/define/audio/ui.js.map +1 -0
  544. package/dist/dev/define/background/player.js +1 -2
  545. package/dist/dev/define/background/player.js.map +1 -1
  546. package/dist/dev/define/background/skin.css +1 -1
  547. package/dist/dev/define/background/skin.d.ts.map +1 -1
  548. package/dist/dev/define/background/skin.js +8 -4
  549. package/dist/dev/define/background/skin.js.map +1 -1
  550. package/dist/dev/define/background/video.js +1 -2
  551. package/dist/dev/define/base.css +27 -0
  552. package/dist/dev/define/media/background-video.js +1 -2
  553. package/dist/dev/define/media/background-video.js.map +1 -1
  554. package/dist/dev/define/media/container.js +1 -2
  555. package/dist/dev/define/media/container.js.map +1 -1
  556. package/dist/dev/define/media/dash-video.d.ts +14 -0
  557. package/dist/dev/define/media/dash-video.d.ts.map +1 -0
  558. package/dist/dev/define/media/dash-video.js +13 -0
  559. package/dist/dev/define/media/dash-video.js.map +1 -0
  560. package/dist/dev/define/media/hls-video.js +1 -2
  561. package/dist/dev/define/media/hls-video.js.map +1 -1
  562. package/dist/dev/define/media/mux-audio.d.ts +14 -0
  563. package/dist/dev/define/media/mux-audio.d.ts.map +1 -0
  564. package/dist/dev/define/media/mux-audio.js +13 -0
  565. package/dist/dev/define/media/mux-audio.js.map +1 -0
  566. package/dist/dev/define/media/mux-video.d.ts +14 -0
  567. package/dist/dev/define/media/mux-video.d.ts.map +1 -0
  568. package/dist/dev/define/media/mux-video.js +13 -0
  569. package/dist/dev/define/media/mux-video.js.map +1 -0
  570. package/dist/dev/define/media/native-hls-video.d.ts +14 -0
  571. package/dist/dev/define/media/native-hls-video.d.ts.map +1 -0
  572. package/dist/dev/define/media/native-hls-video.js +13 -0
  573. package/dist/dev/define/media/native-hls-video.js.map +1 -0
  574. package/dist/dev/define/media/simple-hls-video.d.ts.map +1 -1
  575. package/dist/dev/define/media/simple-hls-video.js +3 -3
  576. package/dist/dev/define/media/simple-hls-video.js.map +1 -1
  577. package/dist/dev/define/safe-define.js +4 -2
  578. package/dist/dev/define/safe-define.js.map +1 -1
  579. package/dist/dev/define/shared.css +14 -0
  580. package/dist/dev/define/skin-element.d.ts +18 -0
  581. package/dist/dev/define/skin-element.d.ts.map +1 -0
  582. package/dist/dev/define/skin-element.js +33 -0
  583. package/dist/dev/define/skin-element.js.map +1 -0
  584. package/dist/dev/define/ui/alert-dialog-close.js +1 -2
  585. package/dist/dev/define/ui/alert-dialog-close.js.map +1 -1
  586. package/dist/dev/define/ui/alert-dialog-description.js +1 -2
  587. package/dist/dev/define/ui/alert-dialog-description.js.map +1 -1
  588. package/dist/dev/define/ui/alert-dialog-title.js +1 -2
  589. package/dist/dev/define/ui/alert-dialog-title.js.map +1 -1
  590. package/dist/dev/define/ui/alert-dialog.js +1 -2
  591. package/dist/dev/define/ui/alert-dialog.js.map +1 -1
  592. package/dist/dev/define/ui/buffering-indicator.js +1 -2
  593. package/dist/dev/define/ui/buffering-indicator.js.map +1 -1
  594. package/dist/dev/define/ui/captions-button.d.ts.map +1 -1
  595. package/dist/dev/define/ui/captions-button.js +3 -3
  596. package/dist/dev/define/ui/captions-button.js.map +1 -1
  597. package/dist/dev/define/ui/cast-button.d.ts +9 -0
  598. package/dist/dev/define/ui/cast-button.d.ts.map +1 -0
  599. package/dist/dev/define/ui/cast-button.js +7 -0
  600. package/dist/dev/define/ui/cast-button.js.map +1 -0
  601. package/dist/dev/define/ui/compounds.d.ts +12 -0
  602. package/dist/dev/define/ui/compounds.d.ts.map +1 -0
  603. package/dist/dev/define/ui/compounds.js +62 -0
  604. package/dist/dev/define/ui/compounds.js.map +1 -0
  605. package/dist/dev/define/ui/controls-group.js +1 -2
  606. package/dist/dev/define/ui/controls-group.js.map +1 -1
  607. package/dist/dev/define/ui/controls.d.ts +2 -0
  608. package/dist/dev/define/ui/controls.d.ts.map +1 -1
  609. package/dist/dev/define/ui/controls.js +3 -7
  610. package/dist/dev/define/ui/controls.js.map +1 -1
  611. package/dist/dev/define/ui/error-dialog.d.ts +15 -0
  612. package/dist/dev/define/ui/error-dialog.d.ts.map +1 -0
  613. package/dist/dev/define/ui/error-dialog.js +6 -0
  614. package/dist/dev/define/ui/error-dialog.js.map +1 -0
  615. package/dist/dev/define/ui/fullscreen-button.js +1 -2
  616. package/dist/dev/define/ui/fullscreen-button.js.map +1 -1
  617. package/dist/dev/define/ui/hotkey.d.ts +9 -0
  618. package/dist/dev/define/ui/hotkey.d.ts.map +1 -0
  619. package/dist/dev/define/ui/hotkey.js +7 -0
  620. package/dist/dev/define/ui/hotkey.js.map +1 -0
  621. package/dist/dev/define/ui/mute-button.js +1 -2
  622. package/dist/dev/define/ui/mute-button.js.map +1 -1
  623. package/dist/dev/define/ui/pip-button.js +1 -2
  624. package/dist/dev/define/ui/pip-button.js.map +1 -1
  625. package/dist/dev/define/ui/play-button.js +1 -2
  626. package/dist/dev/define/ui/play-button.js.map +1 -1
  627. package/dist/dev/define/ui/playback-rate-button.js +1 -2
  628. package/dist/dev/define/ui/playback-rate-button.js.map +1 -1
  629. package/dist/dev/define/ui/popover.js +1 -2
  630. package/dist/dev/define/ui/popover.js.map +1 -1
  631. package/dist/dev/define/ui/poster.js +1 -2
  632. package/dist/dev/define/ui/poster.js.map +1 -1
  633. package/dist/dev/define/ui/seek-button.js +1 -2
  634. package/dist/dev/define/ui/seek-button.js.map +1 -1
  635. package/dist/dev/define/ui/slider-buffer.js +1 -2
  636. package/dist/dev/define/ui/slider-buffer.js.map +1 -1
  637. package/dist/dev/define/ui/slider-fill.js +1 -2
  638. package/dist/dev/define/ui/slider-fill.js.map +1 -1
  639. package/dist/dev/define/ui/slider-thumb.js +1 -2
  640. package/dist/dev/define/ui/slider-thumb.js.map +1 -1
  641. package/dist/dev/define/ui/slider-thumbnail.js +1 -2
  642. package/dist/dev/define/ui/slider-thumbnail.js.map +1 -1
  643. package/dist/dev/define/ui/slider-track.js +1 -2
  644. package/dist/dev/define/ui/slider-track.js.map +1 -1
  645. package/dist/dev/define/ui/slider-value.js +1 -2
  646. package/dist/dev/define/ui/slider-value.js.map +1 -1
  647. package/dist/dev/define/ui/slider.d.ts +10 -0
  648. package/dist/dev/define/ui/slider.d.ts.map +1 -1
  649. package/dist/dev/define/ui/slider.js +3 -15
  650. package/dist/dev/define/ui/slider.js.map +1 -1
  651. package/dist/dev/define/ui/thumbnail.js +1 -2
  652. package/dist/dev/define/ui/thumbnail.js.map +1 -1
  653. package/dist/dev/define/ui/time-group.js +1 -2
  654. package/dist/dev/define/ui/time-group.js.map +1 -1
  655. package/dist/dev/define/ui/time-separator.js +1 -2
  656. package/dist/dev/define/ui/time-separator.js.map +1 -1
  657. package/dist/dev/define/ui/time-slider.d.ts +14 -0
  658. package/dist/dev/define/ui/time-slider.d.ts.map +1 -1
  659. package/dist/dev/define/ui/time-slider.js +3 -19
  660. package/dist/dev/define/ui/time-slider.js.map +1 -1
  661. package/dist/dev/define/ui/time.d.ts +4 -0
  662. package/dist/dev/define/ui/time.d.ts.map +1 -1
  663. package/dist/dev/define/ui/time.js +3 -9
  664. package/dist/dev/define/ui/time.js.map +1 -1
  665. package/dist/dev/define/ui/tooltip-group.js +1 -2
  666. package/dist/dev/define/ui/tooltip-group.js.map +1 -1
  667. package/dist/dev/define/ui/tooltip.js +1 -2
  668. package/dist/dev/define/ui/tooltip.js.map +1 -1
  669. package/dist/dev/define/ui/volume-slider.d.ts +10 -0
  670. package/dist/dev/define/ui/volume-slider.d.ts.map +1 -1
  671. package/dist/dev/define/ui/volume-slider.js +3 -15
  672. package/dist/dev/define/ui/volume-slider.js.map +1 -1
  673. package/dist/dev/define/video/minimal-skin.css +624 -328
  674. package/dist/dev/define/video/minimal-skin.d.ts +6 -10
  675. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  676. package/dist/dev/define/video/minimal-skin.js +119 -119
  677. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  678. package/dist/dev/define/video/minimal-skin.tailwind.d.ts +4 -10
  679. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  680. package/dist/dev/define/video/minimal-skin.tailwind.js +110 -129
  681. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  682. package/dist/dev/define/video/minimal-ui.d.ts +1 -0
  683. package/dist/dev/define/video/minimal-ui.js +41 -0
  684. package/dist/dev/define/video/minimal-ui.js.map +1 -0
  685. package/dist/dev/define/video/player.js +1 -2
  686. package/dist/dev/define/video/player.js.map +1 -1
  687. package/dist/dev/define/video/skin.css +592 -311
  688. package/dist/dev/define/video/skin.d.ts +6 -10
  689. package/dist/dev/define/video/skin.d.ts.map +1 -1
  690. package/dist/dev/define/video/skin.js +140 -116
  691. package/dist/dev/define/video/skin.js.map +1 -1
  692. package/dist/dev/define/video/skin.tailwind.d.ts +4 -10
  693. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  694. package/dist/dev/define/video/skin.tailwind.js +106 -121
  695. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  696. package/dist/dev/define/video/ui.d.ts +1 -0
  697. package/dist/dev/define/video/ui.js +45 -0
  698. package/dist/dev/define/video/ui.js.map +1 -0
  699. package/dist/dev/icons/dist/render/default/index.js +5 -2
  700. package/dist/dev/icons/dist/render/default/index.js.map +1 -1
  701. package/dist/dev/icons/dist/render/minimal/index.js +5 -2
  702. package/dist/dev/icons/dist/render/minimal/index.js.map +1 -1
  703. package/dist/dev/index.d.ts +13 -5
  704. package/dist/dev/index.js +11 -5
  705. package/dist/dev/media/background-video/index.d.ts +8 -1
  706. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  707. package/dist/dev/media/background-video/index.js +6 -3
  708. package/dist/dev/media/background-video/index.js.map +1 -1
  709. package/dist/dev/media/container-element.d.ts +3 -0
  710. package/dist/dev/media/container-element.d.ts.map +1 -1
  711. package/dist/dev/media/container-element.js +22 -4
  712. package/dist/dev/media/container-element.js.map +1 -1
  713. package/dist/dev/media/dash-video/index.d.ts +17 -0
  714. package/dist/dev/media/dash-video/index.d.ts.map +1 -0
  715. package/dist/dev/media/dash-video/index.js +9 -0
  716. package/dist/dev/media/dash-video/index.js.map +1 -0
  717. package/dist/dev/media/hls-video/index.d.ts +13 -6
  718. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  719. package/dist/dev/media/hls-video/index.js +12 -19
  720. package/dist/dev/media/hls-video/index.js.map +1 -1
  721. package/dist/dev/media/mux-audio/index.d.ts +19 -0
  722. package/dist/dev/media/mux-audio/index.d.ts.map +1 -0
  723. package/dist/dev/media/mux-audio/index.js +18 -0
  724. package/dist/dev/media/mux-audio/index.js.map +1 -0
  725. package/dist/dev/media/mux-video/index.d.ts +19 -0
  726. package/dist/dev/media/mux-video/index.d.ts.map +1 -0
  727. package/dist/dev/media/mux-video/index.js +18 -0
  728. package/dist/dev/media/mux-video/index.js.map +1 -0
  729. package/dist/dev/media/native-hls-video/index.d.ts +17 -0
  730. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -0
  731. package/dist/dev/media/native-hls-video/index.js +9 -0
  732. package/dist/dev/media/native-hls-video/index.js.map +1 -0
  733. package/dist/dev/media/simple-hls-video/index.d.ts +12 -6
  734. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  735. package/dist/dev/media/simple-hls-video/index.js +5 -17
  736. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  737. package/dist/dev/player/context.d.ts +19 -3
  738. package/dist/dev/player/context.d.ts.map +1 -1
  739. package/dist/dev/player/context.js +7 -4
  740. package/dist/dev/player/context.js.map +1 -1
  741. package/dist/dev/player/create-player.d.ts +1 -1
  742. package/dist/dev/player/create-player.js +12 -5
  743. package/dist/dev/player/create-player.js.map +1 -1
  744. package/dist/dev/player/player-controller.js +1 -2
  745. package/dist/dev/player/player-controller.js.map +1 -1
  746. package/dist/dev/presets/audio.js +1 -2
  747. package/dist/dev/presets/background.js +1 -2
  748. package/dist/dev/presets/video.js +1 -2
  749. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +17 -38
  750. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  751. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  752. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  753. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  754. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  755. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +5 -5
  756. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  757. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +2 -3
  758. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  759. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +4 -5
  760. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  761. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -2
  762. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  763. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  764. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  765. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  766. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  767. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +5 -6
  768. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  769. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +15 -0
  770. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  771. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +12 -0
  772. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  773. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +2 -3
  774. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  775. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +2 -3
  776. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  777. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +2 -3
  778. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  779. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +2 -3
  780. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  781. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
  782. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  783. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +41 -26
  784. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  785. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +18 -33
  786. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  787. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  788. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  789. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  790. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  791. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +5 -5
  792. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  793. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  794. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  795. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +4 -5
  796. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  797. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  798. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  799. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  800. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  801. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  802. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  803. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +5 -5
  804. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  805. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +15 -0
  806. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  807. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +13 -0
  808. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  809. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  810. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  811. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +2 -3
  812. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  813. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  814. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  815. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  816. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  817. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +45 -24
  818. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  819. package/dist/{default/skins/dist/default/default/tailwind/components → dev/skins/dist/default/shared/tailwind}/icon-state.js +12 -2
  820. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  821. package/dist/dev/store/container-mixin.d.ts +10 -5
  822. package/dist/dev/store/container-mixin.d.ts.map +1 -1
  823. package/dist/dev/store/container-mixin.js +17 -62
  824. package/dist/dev/store/container-mixin.js.map +1 -1
  825. package/dist/dev/store/media-attach-mixin.d.ts +19 -0
  826. package/dist/dev/store/media-attach-mixin.d.ts.map +1 -0
  827. package/dist/dev/store/media-attach-mixin.js +44 -0
  828. package/dist/dev/store/media-attach-mixin.js.map +1 -0
  829. package/dist/dev/store/provider-mixin.d.ts +19 -6
  830. package/dist/dev/store/provider-mixin.d.ts.map +1 -1
  831. package/dist/dev/store/provider-mixin.js +100 -11
  832. package/dist/dev/store/provider-mixin.js.map +1 -1
  833. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js +1 -2
  834. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  835. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.js +1 -2
  836. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.js.map +1 -1
  837. package/dist/dev/ui/alert-dialog/alert-dialog-element.d.ts.map +1 -1
  838. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +2 -2
  839. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  840. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.js +1 -2
  841. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.js.map +1 -1
  842. package/dist/dev/ui/alert-dialog/context.js +2 -5
  843. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  844. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -1
  845. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +2 -2
  846. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  847. package/dist/dev/ui/captions-button/captions-button-element.d.ts +1 -0
  848. package/dist/dev/ui/captions-button/captions-button-element.d.ts.map +1 -1
  849. package/dist/dev/ui/captions-button/captions-button-element.js +2 -2
  850. package/dist/dev/ui/captions-button/captions-button-element.js.map +1 -1
  851. package/dist/dev/ui/cast-button/cast-button-element.d.ts +19 -0
  852. package/dist/dev/ui/cast-button/cast-button-element.d.ts.map +1 -0
  853. package/dist/dev/ui/cast-button/cast-button-element.js +24 -0
  854. package/dist/dev/ui/cast-button/cast-button-element.js.map +1 -0
  855. package/dist/dev/ui/context-part-element.d.ts +1 -1
  856. package/dist/dev/ui/context-part-element.js +1 -2
  857. package/dist/dev/ui/context-part-element.js.map +1 -1
  858. package/dist/dev/ui/controls/context.js +2 -5
  859. package/dist/dev/ui/controls/context.js.map +1 -1
  860. package/dist/dev/ui/controls/controls-element.js +1 -2
  861. package/dist/dev/ui/controls/controls-element.js.map +1 -1
  862. package/dist/dev/ui/controls/controls-group-element.js +1 -2
  863. package/dist/dev/ui/controls/controls-group-element.js.map +1 -1
  864. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts +16 -0
  865. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -0
  866. package/dist/dev/ui/error-dialog/error-dialog-element.js +77 -0
  867. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -0
  868. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +1 -0
  869. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  870. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +2 -2
  871. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  872. package/dist/dev/ui/gesture/gesture-element.d.ts +22 -0
  873. package/dist/dev/ui/gesture/gesture-element.d.ts.map +1 -0
  874. package/dist/dev/ui/gesture/gesture-element.js +84 -0
  875. package/dist/dev/ui/gesture/gesture-element.js.map +1 -0
  876. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts +15 -0
  877. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts.map +1 -0
  878. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.js +28 -0
  879. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.js.map +1 -0
  880. package/dist/dev/ui/hotkey/hotkey-element.d.ts +21 -0
  881. package/dist/dev/ui/hotkey/hotkey-element.d.ts.map +1 -0
  882. package/dist/dev/ui/hotkey/hotkey-element.js +81 -0
  883. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -0
  884. package/dist/dev/ui/media-button-element.d.ts +8 -2
  885. package/dist/dev/ui/media-button-element.d.ts.map +1 -1
  886. package/dist/dev/ui/media-button-element.js +17 -3
  887. package/dist/dev/ui/media-button-element.js.map +1 -1
  888. package/dist/dev/ui/media-element.js +1 -2
  889. package/dist/dev/ui/media-element.js.map +1 -1
  890. package/dist/dev/ui/media-ui-element.js +1 -2
  891. package/dist/dev/ui/media-ui-element.js.map +1 -1
  892. package/dist/dev/ui/mute-button/mute-button-element.d.ts +1 -0
  893. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  894. package/dist/dev/ui/mute-button/mute-button-element.js +2 -2
  895. package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -1
  896. package/dist/dev/ui/pip-button/pip-button-element.d.ts +1 -0
  897. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  898. package/dist/dev/ui/pip-button/pip-button-element.js +2 -2
  899. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
  900. package/dist/dev/ui/play-button/play-button-element.d.ts +1 -0
  901. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  902. package/dist/dev/ui/play-button/play-button-element.js +2 -2
  903. package/dist/dev/ui/play-button/play-button-element.js.map +1 -1
  904. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  905. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  906. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  907. package/dist/dev/ui/popover/popover-element.js +13 -11
  908. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  909. package/dist/dev/ui/position-controller.js +76 -0
  910. package/dist/dev/ui/position-controller.js.map +1 -0
  911. package/dist/dev/ui/poster/poster-element.js +1 -2
  912. package/dist/dev/ui/poster/poster-element.js.map +1 -1
  913. package/dist/dev/ui/seek-button/seek-button-element.js +1 -2
  914. package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -1
  915. package/dist/dev/ui/slider/context.js +2 -5
  916. package/dist/dev/ui/slider/context.js.map +1 -1
  917. package/dist/dev/ui/slider/slider-buffer-element.js +1 -2
  918. package/dist/dev/ui/slider/slider-buffer-element.js.map +1 -1
  919. package/dist/dev/ui/slider/slider-element.js +2 -3
  920. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  921. package/dist/dev/ui/slider/slider-fill-element.js +1 -2
  922. package/dist/dev/ui/slider/slider-fill-element.js.map +1 -1
  923. package/dist/dev/ui/slider/slider-preview-element.d.ts +21 -0
  924. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -0
  925. package/dist/dev/ui/slider/slider-preview-element.js +2 -3
  926. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  927. package/dist/dev/ui/slider/slider-thumb-element.js +1 -2
  928. package/dist/dev/ui/slider/slider-thumb-element.js.map +1 -1
  929. package/dist/dev/ui/slider/slider-thumbnail-element.js +1 -2
  930. package/dist/dev/ui/slider/slider-thumbnail-element.js.map +1 -1
  931. package/dist/dev/ui/slider/slider-track-element.js +1 -2
  932. package/dist/dev/ui/slider/slider-track-element.js.map +1 -1
  933. package/dist/dev/ui/slider/slider-value-element.js +1 -2
  934. package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
  935. package/dist/dev/ui/thumbnail/thumbnail-element.js +1 -2
  936. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
  937. package/dist/dev/ui/time/time-element.d.ts +0 -1
  938. package/dist/dev/ui/time/time-element.d.ts.map +1 -1
  939. package/dist/dev/ui/time/time-element.js +13 -12
  940. package/dist/dev/ui/time/time-element.js.map +1 -1
  941. package/dist/dev/ui/time/time-group-element.js +1 -2
  942. package/dist/dev/ui/time/time-group-element.js.map +1 -1
  943. package/dist/dev/ui/time/time-separator-element.js +1 -2
  944. package/dist/dev/ui/time/time-separator-element.js.map +1 -1
  945. package/dist/dev/ui/time-slider/time-slider-element.d.ts +2 -2
  946. package/dist/dev/ui/time-slider/time-slider-element.js +7 -8
  947. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  948. package/dist/dev/ui/tooltip/context.js +2 -5
  949. package/dist/dev/ui/tooltip/context.js.map +1 -1
  950. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  951. package/dist/dev/ui/tooltip/tooltip-element.js +25 -18
  952. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  953. package/dist/dev/ui/tooltip/tooltip-group-element.js +5 -3
  954. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  955. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +5 -0
  956. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
  957. package/dist/dev/ui/volume-slider/volume-slider-element.js +27 -20
  958. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  959. package/package.json +25 -14
  960. package/cdn/audio-minimal.css +0 -1
  961. package/cdn/audio.css +0 -1
  962. package/cdn/background.css +0 -1
  963. package/cdn/video-minimal.css +0 -1
  964. package/cdn/video.css +0 -1
  965. package/dist/default/define/skin-mixin.js +0 -55
  966. package/dist/default/define/skin-mixin.js.map +0 -1
  967. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  968. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js +0 -28
  969. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js.map +0 -1
  970. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  971. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  972. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js +0 -28
  973. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +0 -1
  974. package/dist/dev/define/skin-mixin.d.ts +0 -21
  975. package/dist/dev/define/skin-mixin.d.ts.map +0 -1
  976. package/dist/dev/define/skin-mixin.js +0 -69
  977. package/dist/dev/define/skin-mixin.js.map +0 -1
  978. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  979. package/dist/dev/skins/dist/default/default/tailwind/components/tooltip-state.js +0 -28
  980. package/dist/dev/skins/dist/default/default/tailwind/components/tooltip-state.js.map +0 -1
  981. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  982. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  983. package/dist/dev/skins/dist/default/minimal/tailwind/components/tooltip-state.js +0 -28
  984. package/dist/dev/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +0 -1
@@ -1,8 +1,7 @@
1
1
  import { cn } from "@videojs/utils/style";
2
-
3
2
  //#region ../skins/dist/default/minimal/tailwind/components/slider.js
4
3
  const slider = {
5
- root: cn("group/slider relative flex flex-1 items-center justify-center rounded-full outline-none", "data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-5", "data-[orientation=vertical]:w-5 data-[orientation=vertical]:h-[4.5rem]"),
4
+ root: cn("group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer", "data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8", "data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-[4.5rem]"),
6
5
  track: cn("relative isolate overflow-hidden bg-current/20 rounded-[inherit] select-none", "data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-0.75", "data-[orientation=vertical]:w-0.75 data-[orientation=vertical]:h-full"),
7
6
  fill: {
8
7
  base: "absolute rounded-[inherit] pointer-events-none",
@@ -14,7 +13,7 @@ const slider = {
14
13
  interactive: cn("opacity-0 scale-70 origin-center", "group-hover/slider:opacity-100 group-hover/slider:scale-100", "group-focus-within/slider:opacity-100 group-focus-within/slider:scale-100")
15
14
  }
16
15
  };
17
-
18
16
  //#endregion
19
17
  export { slider };
18
+
20
19
  //# sourceMappingURL=slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/slider.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n\n//#region src/minimal/tailwind/components/slider.ts\nconst slider = {\n\troot: cn(\"group/slider relative flex flex-1 items-center justify-center rounded-full outline-none\", \"data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-5\", \"data-[orientation=vertical]:w-5 data-[orientation=vertical]:h-[4.5rem]\"),\n\ttrack: cn(\"relative isolate overflow-hidden bg-current/20 rounded-[inherit] select-none\", \"data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-0.75\", \"data-[orientation=vertical]:w-0.75 data-[orientation=vertical]:h-full\"),\n\tfill: {\n\t\tbase: \"absolute rounded-[inherit] pointer-events-none\",\n\t\tfill: cn(\"bg-current\", \"data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0\", \"data-[orientation=horizontal]:w-(--media-slider-fill,0)\", \"data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0\", \"data-[orientation=vertical]:h-(--media-slider-fill,0)\"),\n\t\tbuffer: cn(\"bg-current/20 duration-250 ease-out\", \"data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0\", \"data-[orientation=horizontal]:transition-[width] data-[orientation=horizontal]:w-(--media-slider-buffer,0)\", \"data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0\", \"data-[orientation=vertical]:transition-[height] data-[orientation=vertical]:h-(--media-slider-buffer)\")\n\t},\n\tthumb: {\n\t\tbase: cn(\"z-10 absolute size-3 -translate-x-1/2 -translate-y-1/2\", \"bg-current rounded-full\", \"shadow-[0_0_0_1px_var(--media-controls-current-shadow-color-subtle,oklch(0_0_0/0.1)),0_1px_3px_0_oklch(0_0_0/0.15),0_1px_2px_-1px_oklch(0_0_0/0.15)]\", \"transition-[opacity,scale,outline-offset] duration-150 ease-out select-none\", \"outline-2 outline-transparent -outline-offset-2\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill,0)\", \"data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill,0))]\"),\n\t\tinteractive: cn(\"opacity-0 scale-70 origin-center\", \"group-hover/slider:opacity-100 group-hover/slider:scale-100\", \"group-focus-within/slider:opacity-100 group-focus-within/slider:scale-100\")\n\t}\n};\n\n//#endregion\nexport { slider };\n//# sourceMappingURL=slider.js.map"],"mappings":";;;AAGA,MAAM,SAAS;CACd,MAAM,GAAG,2FAA2F,iHAAiH,yEAAyE;CAC9R,OAAO,GAAG,gFAAgF,6EAA6E,wEAAwE;CAC/O,MAAM;EACL,MAAM;EACN,MAAM,GAAG,cAAc,gFAAgF,2DAA2D,8EAA8E,wDAAwD;EACxS,QAAQ,GAAG,uCAAuC,gFAAgF,8GAA8G,8EAA8E,wGAAwG;EACta;CACD,OAAO;EACN,MAAM,GAAG,0DAA0D,2BAA2B,wJAAwJ,+EAA+E,mDAAmD,gEAAgE,oGAAoG,+GAA+G;EAC3oB,aAAa,GAAG,oCAAoC,+DAA+D,4EAA4E;EAC/L;CACD"}
1
+ {"version":3,"file":"slider.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/slider.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/slider.ts\nconst slider = {\n\troot: cn(\"group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer\", \"data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8\", \"data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-[4.5rem]\"),\n\ttrack: cn(\"relative isolate overflow-hidden bg-current/20 rounded-[inherit] select-none\", \"data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-0.75\", \"data-[orientation=vertical]:w-0.75 data-[orientation=vertical]:h-full\"),\n\tfill: {\n\t\tbase: \"absolute rounded-[inherit] pointer-events-none\",\n\t\tfill: cn(\"bg-current\", \"data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0\", \"data-[orientation=horizontal]:w-(--media-slider-fill,0)\", \"data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0\", \"data-[orientation=vertical]:h-(--media-slider-fill,0)\"),\n\t\tbuffer: cn(\"bg-current/20 duration-250 ease-out\", \"data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0\", \"data-[orientation=horizontal]:transition-[width] data-[orientation=horizontal]:w-(--media-slider-buffer,0)\", \"data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0\", \"data-[orientation=vertical]:transition-[height] data-[orientation=vertical]:h-(--media-slider-buffer)\")\n\t},\n\tthumb: {\n\t\tbase: cn(\"z-10 absolute size-3 -translate-x-1/2 -translate-y-1/2\", \"bg-current rounded-full\", \"shadow-[0_0_0_1px_var(--media-controls-current-shadow-color-subtle,oklch(0_0_0/0.1)),0_1px_3px_0_oklch(0_0_0/0.15),0_1px_2px_-1px_oklch(0_0_0/0.15)]\", \"transition-[opacity,scale,outline-offset] duration-150 ease-out select-none\", \"outline-2 outline-transparent -outline-offset-2\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill,0)\", \"data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill,0))]\"),\n\t\tinteractive: cn(\"opacity-0 scale-70 origin-center\", \"group-hover/slider:opacity-100 group-hover/slider:scale-100\", \"group-focus-within/slider:opacity-100 group-focus-within/slider:scale-100\")\n\t}\n};\n//#endregion\nexport { slider };\n\n//# sourceMappingURL=slider.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,0GAA0G,iHAAiH,yEAAyE;CAC7S,OAAO,GAAG,gFAAgF,6EAA6E,wEAAwE;CAC/O,MAAM;EACL,MAAM;EACN,MAAM,GAAG,cAAc,gFAAgF,2DAA2D,8EAA8E,wDAAwD;EACxS,QAAQ,GAAG,uCAAuC,gFAAgF,8GAA8G,8EAA8E,wGAAwG;EACta;CACD,OAAO;EACN,MAAM,GAAG,0DAA0D,2BAA2B,wJAAwJ,+EAA+E,mDAAmD,gEAAgE,oGAAoG,+GAA+G;EAC3oB,aAAa,GAAG,oCAAoC,+DAA+D,4EAA4E;EAC/L;CACD"}
@@ -1,14 +1,13 @@
1
1
  import { cn } from "@videojs/utils/style";
2
-
3
2
  //#region ../skins/dist/default/minimal/tailwind/components/time.js
4
3
  const time = {
5
4
  group: "flex items-center gap-1",
6
- current: cn("hidden tabular-nums", "@md/media-controls:inline"),
7
- separator: cn("hidden", "@md/media-controls:inline @md/media-controls:text-white/50"),
8
- duration: cn("tabular-nums", "@md/media-controls:text-current/60"),
9
- controls: cn("flex flex-row-reverse items-center flex-1 gap-3", "@md/media-controls:flex-row")
5
+ current: cn("hidden tabular-nums", "@2xl/media-root:inline"),
6
+ separator: cn("hidden", "@2xl/media-root:inline @2xl/media-root:text-current/60"),
7
+ duration: cn("tabular-nums", "@2xl/media-root:text-current/60"),
8
+ controls: cn("@container flex flex-row-reverse items-center flex-1 gap-3", "@2xl/media-root:flex-row")
10
9
  };
11
-
12
10
  //#endregion
13
11
  export { time };
12
+
14
13
  //# sourceMappingURL=time.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/time.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n\n//#region src/minimal/tailwind/components/time.ts\nconst time = {\n\tgroup: \"flex items-center gap-1\",\n\tcurrent: cn(\"hidden tabular-nums\", \"@md/media-controls:inline\"),\n\tseparator: cn(\"hidden\", \"@md/media-controls:inline @md/media-controls:text-white/50\"),\n\tduration: cn(\"tabular-nums\", \"@md/media-controls:text-current/60\"),\n\tcontrols: cn(\"flex flex-row-reverse items-center flex-1 gap-3\", \"@md/media-controls:flex-row\")\n};\n\n//#endregion\nexport { time };\n//# sourceMappingURL=time.js.map"],"mappings":";;;AAGA,MAAM,OAAO;CACZ,OAAO;CACP,SAAS,GAAG,uBAAuB,4BAA4B;CAC/D,WAAW,GAAG,UAAU,6DAA6D;CACrF,UAAU,GAAG,gBAAgB,qCAAqC;CAClE,UAAU,GAAG,mDAAmD,8BAA8B;CAC9F"}
1
+ {"version":3,"file":"time.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/time.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/time.ts\nconst time = {\n\tgroup: \"flex items-center gap-1\",\n\tcurrent: cn(\"hidden tabular-nums\", \"@2xl/media-root:inline\"),\n\tseparator: cn(\"hidden\", \"@2xl/media-root:inline @2xl/media-root:text-current/60\"),\n\tduration: cn(\"tabular-nums\", \"@2xl/media-root:text-current/60\"),\n\tcontrols: cn(\"@container flex flex-row-reverse items-center flex-1 gap-3\", \"@2xl/media-root:flex-row\")\n};\n//#endregion\nexport { time };\n\n//# sourceMappingURL=time.js.map"],"mappings":";;AAEA,MAAM,OAAO;CACZ,OAAO;CACP,SAAS,GAAG,uBAAuB,yBAAyB;CAC5D,WAAW,GAAG,UAAU,yDAAyD;CACjF,UAAU,GAAG,gBAAgB,kCAAkC;CAC/D,UAAU,GAAG,8DAA8D,2BAA2B;CACtG"}
@@ -1,44 +1,65 @@
1
1
  import { controls as controls$1 } from "./components/controls.js";
2
+ import { error as error$1 } from "./components/error.js";
2
3
  import { popup as popup$1 } from "./components/popup.js";
3
4
  import { root as root$1 } from "./components/root.js";
4
- import { bufferingIndicator } from "./components/buffering.js";
5
- import { button } from "./components/button.js";
5
+ import "../../shared/tailwind/icon-state.js";
6
+ import "./components/buffering.js";
7
+ import "./components/button.js";
6
8
  import { buttonGroup } from "./components/button-group.js";
7
- import { error } from "./components/error.js";
8
- import { icon, iconContainer, iconFlipped } from "./components/icon.js";
9
- import { seek } from "./components/seek.js";
9
+ import "./components/icon.js";
10
+ import "./components/seek.js";
10
11
  import { slider as slider$1 } from "./components/slider.js";
11
- import { time } from "./components/time.js";
12
- import { iconState } from "./components/icon-state.js";
13
- import { overlay } from "./components/overlay.js";
14
- import { tooltipState } from "./components/tooltip-state.js";
12
+ import { time as time$1 } from "./components/time.js";
13
+ import { preview as preview$1 } from "./components/preview.js";
14
+ import "./components/overlay.js";
15
+ import "./components/playback-rate.js";
16
+ import "./components/poster.js";
15
17
  import { cn } from "@videojs/utils/style";
16
-
17
18
  //#region ../skins/dist/default/minimal/tailwind/video.tailwind.js
18
- const root = (isShadowDOM) => cn(root$1, "bg-black", "after:absolute after:pointer-events-none after:rounded-[inherit] after:z-10", "after:inset-0 after:ring-1 after:ring-inset after:ring-black/15", "dark:after:ring-white/15", {
19
- "[&_::slotted(video)]:block [&_::slotted(video)]:w-full [&_::slotted(video)]:h-full [&_::slotted(video)]:rounded-(--media-border-radius,0.75rem)": isShadowDOM,
20
- "[&_video]:block [&_video]:w-full [&_video]:h-full [&_video]:rounded-[inherit]": !isShadowDOM
21
- }, "[&>img]:absolute [&>img]:inset-0 [&>img]:w-full [&>img]:h-full [&>img]:rounded-[inherit]", "[&>img]:object-cover [&>img]:pointer-events-none", "[&>img]:transition-opacity [&>img]:duration-250", "[&>img:not([data-visible])]:opacity-0", "[--media-caption-track-delay:600ms]", "[--media-caption-track-y:-0.5rem]", "has-[[data-controls][data-visible]]:[--media-caption-track-delay:25ms]", "has-[[data-controls][data-visible]]:[--media-caption-track-y:-3.5rem]", !isShadowDOM ? [
22
- "[&_video::-webkit-media-text-track-container]:transition-transform",
23
- "[&_video::-webkit-media-text-track-container]:duration-150",
19
+ const root = (isShadowDOM) => cn(root$1, "bg-black overflow-clip", "after:absolute after:pointer-events-none after:rounded-[inherit] after:z-10", "after:inset-0 after:ring-1 after:ring-inset after:ring-black/15 dark:after:ring-white/15", {
20
+ "[&_::slotted(video)]:block [&_::slotted(video)]:w-full [&_::slotted(video)]:h-full [&_::slotted(video)]:rounded-(--media-video-border-radius) [&_::slotted(video)]:[object-fit:var(--media-object-fit,cover)] [&_::slotted(video)]:[object-position:var(--media-object-position,center)]": isShadowDOM,
21
+ "[&_video]:block [&_video]:w-full [&_video]:h-full [&_video]:rounded-[inherit] [&_video]:[object-fit:var(--media-object-fit,contain)] [&_video]:[object-position:var(--media-object-position,center)]": !isShadowDOM
22
+ }, "[--media-video-border-radius:var(--media-border-radius,0.75rem)]", "[--media-controls-background-color:transparent]", "[--media-controls-transition-duration:100ms]", "[--media-controls-transition-timing-function:ease-out]", "[--media-error-dialog-transition-duration:150ms]", "[--media-error-dialog-transition-delay:100ms]", "[--media-error-dialog-transition-timing-function:ease-out]", "[--media-popup-transition-duration:100ms]", "[--media-popup-transition-timing-function:ease-out]", "[--media-tooltip-background-color:oklch(1_0_0/0.1)]", "[--media-tooltip-border-color:transparent]", "[--media-tooltip-backdrop-filter:blur(16px)_saturate(1.5)]", "[--media-tooltip-text-color:currentColor]", "[--media-tooltip-side-offset:0.5rem]", "[--media-popover-side-offset:1.5rem]", "motion-reduce:[--media-error-dialog-transition-duration:50ms]", "motion-reduce:[--media-error-dialog-transition-delay:0ms]", "motion-reduce:[--media-popup-transition-duration:0ms]", "[@media(prefers-reduced-transparency:reduce)]:[--media-controls-background-color:oklch(0_0_0)]", "contrast-more:[--media-controls-background-color:oklch(0_0_0)]", "[@media(prefers-reduced-transparency:reduce)]:[--media-tooltip-background-color:oklch(0_0_0)]", "contrast-more:[--media-tooltip-background-color:oklch(0_0_0)]", "@2xl/media-root:[&>*]:[--media-popover-side-offset:0rem]", "[@media(pointer:fine)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:300ms]", "[@media(pointer:coarse)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:150ms]", "motion-reduce:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:50ms]", "[--media-caption-track-y:-0.5rem]", "[--media-caption-track-delay:25ms]", "[--media-caption-track-duration:var(--media-controls-transition-duration)]", "has-[[data-controls][data-visible]]:[--media-caption-track-y:-5rem]", "@2xl/media-root:has-[[data-controls][data-visible]]:[&>*]:[--media-caption-track-y:-3rem]", !isShadowDOM ? [
23
+ "[&_video::-webkit-media-text-track-container]:transition-[translate]",
24
+ "[&_video::-webkit-media-text-track-container]:duration-(--media-caption-track-duration)",
24
25
  "[&_video::-webkit-media-text-track-container]:ease-out",
25
26
  "[&_video::-webkit-media-text-track-container]:delay-(--media-caption-track-delay)",
26
27
  "[&_video::-webkit-media-text-track-container]:translate-y-(--media-caption-track-y)",
27
28
  "[&_video::-webkit-media-text-track-container]:scale-98",
28
29
  "[&_video::-webkit-media-text-track-container]:z-1",
29
- "[&_video::-webkit-media-text-track-container]:font-[inherit]",
30
- "motion-reduce:[&_video::-webkit-media-text-track-container]:duration-50"
31
- ] : [], "[&:fullscreen]:rounded-none");
32
- const controls = cn(controls$1, "absolute bottom-0 inset-x-0", "pt-8 px-1.5 pb-1.5 gap-2", "text-white z-10", "will-change-[translate,filter,opacity]", "transition-[translate,filter,opacity] ease-out", "delay-0 duration-75", "not-data-visible:opacity-0 not-data-visible:translate-y-full", "not-data-visible:blur-sm not-data-visible:pointer-events-none", "not-data-visible:delay-500 not-data-visible:duration-500", "motion-reduce:not-data-visible:duration-100", "motion-reduce:not-data-visible:translate-y-0", "motion-reduce:not-data-visible:blur-none motion-reduce:not-data-visible:scale-100", "@sm/media-root:pt-10 @sm/media-root:px-3 @sm/media-root:pb-3", "@sm/media-root:gap-3.5");
30
+ "[&_video::-webkit-media-text-track-container]:font-[inherit]"
31
+ ] : [], "[&:fullscreen]:[--media-border-radius:0]", {
32
+ "[&:fullscreen_video]:object-contain": !isShadowDOM,
33
+ "[&:fullscreen_::slotted(video)]:object-contain": isShadowDOM
34
+ });
35
+ const controls = cn(controls$1, "absolute bottom-1 inset-x-1", "p-1 gap-x-2 flex-wrap rounded-xl", "text-white z-10", "peer-data-open/error:hidden", "ease-(--media-controls-transition-timing-function)", "duration-(--media-controls-transition-duration)", "[@media(pointer:fine)]:will-change-[translate,filter,opacity]", "[@media(pointer:fine)]:transition-[translate,filter,opacity]", "[@media(pointer:coarse)]:will-change-[translate,opacity]", "[@media(pointer:coarse)]:transition-[translate,opacity]", "not-data-visible:opacity-0 not-data-visible:pointer-events-none", "motion-safe:not-data-visible:translate-y-full", "[@media(pointer:fine)]:motion-safe:not-data-visible:blur-sm", "@2xl/media-root:flex-nowrap @2xl/media-root:bottom-2 @2xl/media-root:inset-x-2");
36
+ const buttonGroupStart = cn(buttonGroup, "flex-1 @2xl/media-root:flex-none");
37
+ const buttonGroupEnd = cn(buttonGroup, "flex-1 justify-end @2xl/media-root:flex-none");
38
+ const time = {
39
+ ...time$1,
40
+ controls: cn(time$1.controls, "grow-0 shrink-0 basis-full order-[-1] px-2.5", "@2xl/media-root:grow @2xl/media-root:shrink @2xl/media-root:basis-0 @2xl/media-root:order-[unset]")
41
+ };
42
+ const error = {
43
+ ...error$1,
44
+ root: cn(error$1.root, "pointer-events-none outline-none"),
45
+ dialog: cn(error$1.dialog, "pointer-events-auto"),
46
+ title: cn(error$1.title, "text-lg")
47
+ };
48
+ const preview = {
49
+ ...preview$1,
50
+ root: cn("[--media-preview-max-width:11rem] [--media-preview-padding:-0.5rem] [--media-preview-inset:calc(100cqi-100%)]", "absolute [left:clamp(calc(var(--media-preview-max-width)/2+var(--media-preview-padding)),var(--media-slider-pointer),calc(100%-var(--media-preview-max-width)/2-var(--media-preview-padding)+var(--media-preview-inset)))] bottom-full -translate-x-1/2", "@2xl/media-root:bottom-[calc(100%+0.25rem)] @2xl/media-root:[left:var(--media-slider-pointer)]", "opacity-0 scale-80 blur-sm origin-bottom", "transition-[scale,opacity,filter] duration-150", "group-data-pointing/slider:opacity-100 group-data-pointing/slider:scale-100 group-data-pointing/slider:blur-none", "[&:has([role=img][data-hidden])]:opacity-0 [&:has([role=img][data-hidden])]:scale-80 [&:has([role=img][data-hidden])]:blur-sm", "[&:has([role=img][data-loading])]:max-h-24", preview$1.root),
51
+ thumbnailWrapper: cn(preview$1.thumbnailWrapper, "after:absolute after:inset-0 after:rounded-[inherit]", "after:ring-1 after:ring-black/5 after:shadow-sm after:shadow-black/20"),
52
+ thumbnail: cn(preview$1.thumbnail, "max-w-(--media-preview-max-width)")
53
+ };
33
54
  const slider = {
34
55
  ...slider$1,
35
- track: cn(slider$1.track, "shadow-[0_0_0_1px_oklch(0_0_0/0.05)]")
56
+ track: cn(slider$1.track, "ring-1 ring-black/5")
36
57
  };
37
58
  const popup = {
38
59
  ...popup$1,
39
- volume: cn("[--media-popover-side-offset:0.5rem] p-1 bg-transparent")
60
+ volume: cn(popup$1.popover, "py-3 px-0 bg-transparent rounded-xl", "[@media(prefers-reduced-transparency:reduce)]:bg-(--media-controls-background-color)", "contrast-more:bg-(--media-controls-background-color)")
40
61
  };
41
-
42
62
  //#endregion
43
- export { controls, popup, root, slider };
63
+ export { buttonGroupEnd, buttonGroupStart, controls, error, popup, preview, root, slider, time };
64
+
44
65
  //# sourceMappingURL=video.tailwind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"video.tailwind.js","names":[],"sources":["../../../../../../../../skins/dist/default/minimal/tailwind/video.tailwind.js"],"sourcesContent":["import { controls as controls$1 } from \"./components/controls.js\";\nimport { popup as popup$1 } from \"./components/popup.js\";\nimport { root as root$1 } from \"./components/root.js\";\nimport { bufferingIndicator } from \"./components/buffering.js\";\nimport { button } from \"./components/button.js\";\nimport { buttonGroup } from \"./components/button-group.js\";\nimport { error } from \"./components/error.js\";\nimport { icon, iconContainer, iconFlipped, iconHidden } from \"./components/icon.js\";\nimport { seek } from \"./components/seek.js\";\nimport { slider as slider$1 } from \"./components/slider.js\";\nimport { time } from \"./components/time.js\";\nimport { captions } from \"./components/captions.js\";\nimport { iconState } from \"./components/icon-state.js\";\nimport { overlay } from \"./components/overlay.js\";\nimport { tooltipState } from \"./components/tooltip-state.js\";\nimport { cn } from \"@videojs/utils/style\";\n\n//#region src/minimal/tailwind/video.tailwind.ts\nconst root = (isShadowDOM) => cn(root$1, \"bg-black\", \"after:absolute after:pointer-events-none after:rounded-[inherit] after:z-10\", \"after:inset-0 after:ring-1 after:ring-inset after:ring-black/15\", \"dark:after:ring-white/15\", {\n\t\"[&_::slotted(video)]:block [&_::slotted(video)]:w-full [&_::slotted(video)]:h-full [&_::slotted(video)]:rounded-(--media-border-radius,0.75rem)\": isShadowDOM,\n\t\"[&_video]:block [&_video]:w-full [&_video]:h-full [&_video]:rounded-[inherit]\": !isShadowDOM\n}, \"[&>img]:absolute [&>img]:inset-0 [&>img]:w-full [&>img]:h-full [&>img]:rounded-[inherit]\", \"[&>img]:object-cover [&>img]:pointer-events-none\", \"[&>img]:transition-opacity [&>img]:duration-250\", \"[&>img:not([data-visible])]:opacity-0\", \"[--media-caption-track-delay:600ms]\", \"[--media-caption-track-y:-0.5rem]\", \"has-[[data-controls][data-visible]]:[--media-caption-track-delay:25ms]\", \"has-[[data-controls][data-visible]]:[--media-caption-track-y:-3.5rem]\", !isShadowDOM ? [\n\t\"[&_video::-webkit-media-text-track-container]:transition-transform\",\n\t\"[&_video::-webkit-media-text-track-container]:duration-150\",\n\t\"[&_video::-webkit-media-text-track-container]:ease-out\",\n\t\"[&_video::-webkit-media-text-track-container]:delay-(--media-caption-track-delay)\",\n\t\"[&_video::-webkit-media-text-track-container]:translate-y-(--media-caption-track-y)\",\n\t\"[&_video::-webkit-media-text-track-container]:scale-98\",\n\t\"[&_video::-webkit-media-text-track-container]:z-1\",\n\t\"[&_video::-webkit-media-text-track-container]:font-[inherit]\",\n\t\"motion-reduce:[&_video::-webkit-media-text-track-container]:duration-50\"\n] : [], \"[&:fullscreen]:rounded-none\");\nconst controls = cn(controls$1, \"absolute bottom-0 inset-x-0\", \"pt-8 px-1.5 pb-1.5 gap-2\", \"text-white z-10\", \"will-change-[translate,filter,opacity]\", \"transition-[translate,filter,opacity] ease-out\", \"delay-0 duration-75\", \"not-data-visible:opacity-0 not-data-visible:translate-y-full\", \"not-data-visible:blur-sm not-data-visible:pointer-events-none\", \"not-data-visible:delay-500 not-data-visible:duration-500\", \"motion-reduce:not-data-visible:duration-100\", \"motion-reduce:not-data-visible:translate-y-0\", \"motion-reduce:not-data-visible:blur-none motion-reduce:not-data-visible:scale-100\", \"@sm/media-root:pt-10 @sm/media-root:px-3 @sm/media-root:pb-3\", \"@sm/media-root:gap-3.5\");\nconst slider = {\n\t...slider$1,\n\ttrack: cn(slider$1.track, \"shadow-[0_0_0_1px_oklch(0_0_0/0.05)]\")\n};\nconst popup = {\n\t...popup$1,\n\tvolume: cn(\"[--media-popover-side-offset:0.5rem] p-1 bg-transparent\")\n};\n\n//#endregion\nexport { bufferingIndicator, button, buttonGroup, captions, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, overlay, popup, root, seek, slider, time, tooltipState };\n//# sourceMappingURL=video.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,QAAQ,gBAAgB,GAAG,QAAQ,YAAY,+EAA+E,mEAAmE,4BAA4B;CAClO,mJAAmJ;CACnJ,iFAAiF,CAAC;CAClF,EAAE,4FAA4F,oDAAoD,mDAAmD,yCAAyC,uCAAuC,qCAAqC,0EAA0E,yEAAyE,CAAC,cAAc;CAC5d;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAG,EAAE,EAAE,8BAA8B;AACtC,MAAM,WAAW,GAAG,YAAY,+BAA+B,4BAA4B,mBAAmB,0CAA0C,kDAAkD,uBAAuB,gEAAgE,iEAAiE,4DAA4D,+CAA+C,gDAAgD,qFAAqF,gEAAgE,yBAAyB;AAC3qB,MAAM,SAAS;CACd,GAAG;CACH,OAAO,GAAG,SAAS,OAAO,uCAAuC;CACjE;AACD,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,0DAA0D;CACrE"}
1
+ {"version":3,"file":"video.tailwind.js","names":[],"sources":["../../../../../../../../skins/dist/default/minimal/tailwind/video.tailwind.js"],"sourcesContent":["import { controls as controls$1 } from \"./components/controls.js\";\nimport { error as error$1 } from \"./components/error.js\";\nimport { popup as popup$1 } from \"./components/popup.js\";\nimport { root as root$1 } from \"./components/root.js\";\nimport { iconState } from \"../../shared/tailwind/icon-state.js\";\nimport { bufferingIndicator } from \"./components/buffering.js\";\nimport { button } from \"./components/button.js\";\nimport { buttonGroup } from \"./components/button-group.js\";\nimport { icon, iconContainer, iconFlipped, iconHidden } from \"./components/icon.js\";\nimport { seek } from \"./components/seek.js\";\nimport { slider as slider$1 } from \"./components/slider.js\";\nimport { time as time$1 } from \"./components/time.js\";\nimport { preview as preview$1 } from \"./components/preview.js\";\nimport { overlay } from \"./components/overlay.js\";\nimport { playbackRate } from \"./components/playback-rate.js\";\nimport { poster } from \"./components/poster.js\";\nimport { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/video.tailwind.ts\nconst root = (isShadowDOM) => cn(root$1, \"bg-black overflow-clip\", \"after:absolute after:pointer-events-none after:rounded-[inherit] after:z-10\", \"after:inset-0 after:ring-1 after:ring-inset after:ring-black/15 dark:after:ring-white/15\", {\n\t\"[&_::slotted(video)]:block [&_::slotted(video)]:w-full [&_::slotted(video)]:h-full [&_::slotted(video)]:rounded-(--media-video-border-radius) [&_::slotted(video)]:[object-fit:var(--media-object-fit,cover)] [&_::slotted(video)]:[object-position:var(--media-object-position,center)]\": isShadowDOM,\n\t\"[&_video]:block [&_video]:w-full [&_video]:h-full [&_video]:rounded-[inherit] [&_video]:[object-fit:var(--media-object-fit,contain)] [&_video]:[object-position:var(--media-object-position,center)]\": !isShadowDOM\n}, \"[--media-video-border-radius:var(--media-border-radius,0.75rem)]\", \"[--media-controls-background-color:transparent]\", \"[--media-controls-transition-duration:100ms]\", \"[--media-controls-transition-timing-function:ease-out]\", \"[--media-error-dialog-transition-duration:150ms]\", \"[--media-error-dialog-transition-delay:100ms]\", \"[--media-error-dialog-transition-timing-function:ease-out]\", \"[--media-popup-transition-duration:100ms]\", \"[--media-popup-transition-timing-function:ease-out]\", \"[--media-tooltip-background-color:oklch(1_0_0/0.1)]\", \"[--media-tooltip-border-color:transparent]\", \"[--media-tooltip-backdrop-filter:blur(16px)_saturate(1.5)]\", \"[--media-tooltip-text-color:currentColor]\", \"[--media-tooltip-side-offset:0.5rem]\", \"[--media-popover-side-offset:1.5rem]\", \"motion-reduce:[--media-error-dialog-transition-duration:50ms]\", \"motion-reduce:[--media-error-dialog-transition-delay:0ms]\", \"motion-reduce:[--media-popup-transition-duration:0ms]\", \"[@media(prefers-reduced-transparency:reduce)]:[--media-controls-background-color:oklch(0_0_0)]\", \"contrast-more:[--media-controls-background-color:oklch(0_0_0)]\", \"[@media(prefers-reduced-transparency:reduce)]:[--media-tooltip-background-color:oklch(0_0_0)]\", \"contrast-more:[--media-tooltip-background-color:oklch(0_0_0)]\", \"@2xl/media-root:[&>*]:[--media-popover-side-offset:0rem]\", \"[@media(pointer:fine)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:300ms]\", \"[@media(pointer:coarse)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:150ms]\", \"motion-reduce:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:50ms]\", \"[--media-caption-track-y:-0.5rem]\", \"[--media-caption-track-delay:25ms]\", \"[--media-caption-track-duration:var(--media-controls-transition-duration)]\", \"has-[[data-controls][data-visible]]:[--media-caption-track-y:-5rem]\", \"@2xl/media-root:has-[[data-controls][data-visible]]:[&>*]:[--media-caption-track-y:-3rem]\", !isShadowDOM ? [\n\t\"[&_video::-webkit-media-text-track-container]:transition-[translate]\",\n\t\"[&_video::-webkit-media-text-track-container]:duration-(--media-caption-track-duration)\",\n\t\"[&_video::-webkit-media-text-track-container]:ease-out\",\n\t\"[&_video::-webkit-media-text-track-container]:delay-(--media-caption-track-delay)\",\n\t\"[&_video::-webkit-media-text-track-container]:translate-y-(--media-caption-track-y)\",\n\t\"[&_video::-webkit-media-text-track-container]:scale-98\",\n\t\"[&_video::-webkit-media-text-track-container]:z-1\",\n\t\"[&_video::-webkit-media-text-track-container]:font-[inherit]\"\n] : [], \"[&:fullscreen]:[--media-border-radius:0]\", {\n\t\"[&:fullscreen_video]:object-contain\": !isShadowDOM,\n\t\"[&:fullscreen_::slotted(video)]:object-contain\": isShadowDOM\n});\nconst controls = cn(controls$1, \"absolute bottom-1 inset-x-1\", \"p-1 gap-x-2 flex-wrap rounded-xl\", \"text-white z-10\", \"peer-data-open/error:hidden\", \"ease-(--media-controls-transition-timing-function)\", \"duration-(--media-controls-transition-duration)\", \"[@media(pointer:fine)]:will-change-[translate,filter,opacity]\", \"[@media(pointer:fine)]:transition-[translate,filter,opacity]\", \"[@media(pointer:coarse)]:will-change-[translate,opacity]\", \"[@media(pointer:coarse)]:transition-[translate,opacity]\", \"not-data-visible:opacity-0 not-data-visible:pointer-events-none\", \"motion-safe:not-data-visible:translate-y-full\", \"[@media(pointer:fine)]:motion-safe:not-data-visible:blur-sm\", \"@2xl/media-root:flex-nowrap @2xl/media-root:bottom-2 @2xl/media-root:inset-x-2\");\nconst buttonGroupStart = cn(buttonGroup, \"flex-1 @2xl/media-root:flex-none\");\nconst buttonGroupEnd = cn(buttonGroup, \"flex-1 justify-end @2xl/media-root:flex-none\");\nconst time = {\n\t...time$1,\n\tcontrols: cn(time$1.controls, \"grow-0 shrink-0 basis-full order-[-1] px-2.5\", \"@2xl/media-root:grow @2xl/media-root:shrink @2xl/media-root:basis-0 @2xl/media-root:order-[unset]\")\n};\nconst error = {\n\t...error$1,\n\troot: cn(error$1.root, \"pointer-events-none outline-none\"),\n\tdialog: cn(error$1.dialog, \"pointer-events-auto\"),\n\ttitle: cn(error$1.title, \"text-lg\")\n};\nconst preview = {\n\t...preview$1,\n\troot: cn(\"[--media-preview-max-width:11rem] [--media-preview-padding:-0.5rem] [--media-preview-inset:calc(100cqi-100%)]\", \"absolute [left:clamp(calc(var(--media-preview-max-width)/2+var(--media-preview-padding)),var(--media-slider-pointer),calc(100%-var(--media-preview-max-width)/2-var(--media-preview-padding)+var(--media-preview-inset)))] bottom-full -translate-x-1/2\", \"@2xl/media-root:bottom-[calc(100%+0.25rem)] @2xl/media-root:[left:var(--media-slider-pointer)]\", \"opacity-0 scale-80 blur-sm origin-bottom\", \"transition-[scale,opacity,filter] duration-150\", \"group-data-pointing/slider:opacity-100 group-data-pointing/slider:scale-100 group-data-pointing/slider:blur-none\", \"[&:has([role=img][data-hidden])]:opacity-0 [&:has([role=img][data-hidden])]:scale-80 [&:has([role=img][data-hidden])]:blur-sm\", \"[&:has([role=img][data-loading])]:max-h-24\", preview$1.root),\n\tthumbnailWrapper: cn(preview$1.thumbnailWrapper, \"after:absolute after:inset-0 after:rounded-[inherit]\", \"after:ring-1 after:ring-black/5 after:shadow-sm after:shadow-black/20\"),\n\tthumbnail: cn(preview$1.thumbnail, \"max-w-(--media-preview-max-width)\")\n};\nconst slider = {\n\t...slider$1,\n\ttrack: cn(slider$1.track, \"ring-1 ring-black/5\")\n};\nconst popup = {\n\t...popup$1,\n\tvolume: cn(popup$1.popover, \"py-3 px-0 bg-transparent rounded-xl\", \"[@media(prefers-reduced-transparency:reduce)]:bg-(--media-controls-background-color)\", \"contrast-more:bg-(--media-controls-background-color)\")\n};\n//#endregion\nexport { bufferingIndicator, button, buttonGroup, buttonGroupEnd, buttonGroupStart, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, overlay, playbackRate, popup, poster, preview, root, seek, slider, time };\n\n//# sourceMappingURL=video.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAM,QAAQ,gBAAgB,GAAG,QAAQ,0BAA0B,+EAA+E,4FAA4F;CAC7O,4RAA4R;CAC5R,wMAAwM,CAAC;CACzM,EAAE,oEAAoE,mDAAmD,gDAAgD,0DAA0D,oDAAoD,iDAAiD,8DAA8D,6CAA6C,uDAAuD,uDAAuD,8CAA8C,8DAA8D,6CAA6C,wCAAwC,wCAAwC,iEAAiE,6DAA6D,yDAAyD,kGAAkG,kEAAkE,iGAAiG,iEAAiE,4DAA4D,iHAAiH,mHAAmH,uGAAuG,qCAAqC,sCAAsC,8EAA8E,uEAAuE,6FAA6F,CAAC,cAAc;CAC19D;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAG,EAAE,EAAE,4CAA4C;CACnD,uCAAuC,CAAC;CACxC,kDAAkD;CAClD,CAAC;AACF,MAAM,WAAW,GAAG,YAAY,+BAA+B,oCAAoC,mBAAmB,+BAA+B,sDAAsD,mDAAmD,iEAAiE,gEAAgE,4DAA4D,2DAA2D,mEAAmE,iDAAiD,+DAA+D,iFAAiF;AAC1vB,MAAM,mBAAmB,GAAG,aAAa,mCAAmC;AAC5E,MAAM,iBAAiB,GAAG,aAAa,+CAA+C;AACtF,MAAM,OAAO;CACZ,GAAG;CACH,UAAU,GAAG,OAAO,UAAU,gDAAgD,oGAAoG;CAClL;AACD,MAAM,QAAQ;CACb,GAAG;CACH,MAAM,GAAG,QAAQ,MAAM,mCAAmC;CAC1D,QAAQ,GAAG,QAAQ,QAAQ,sBAAsB;CACjD,OAAO,GAAG,QAAQ,OAAO,UAAU;CACnC;AACD,MAAM,UAAU;CACf,GAAG;CACH,MAAM,GAAG,iHAAiH,2PAA2P,kGAAkG,4CAA4C,kDAAkD,oHAAoH,iIAAiI,8CAA8C,UAAU,KAAK;CACv2B,kBAAkB,GAAG,UAAU,kBAAkB,wDAAwD,wEAAwE;CACjL,WAAW,GAAG,UAAU,WAAW,oCAAoC;CACvE;AACD,MAAM,SAAS;CACd,GAAG;CACH,OAAO,GAAG,SAAS,OAAO,sBAAsB;CAChD;AACD,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,QAAQ,SAAS,uCAAuC,wFAAwF,uDAAuD;CAClN"}
@@ -1,4 +1,4 @@
1
- //#region ../skins/dist/default/default/tailwind/components/icon-state.js
1
+ //#region ../skins/dist/default/shared/tailwind/icon-state.js
2
2
  const iconState = {
3
3
  play: {
4
4
  button: "group",
@@ -21,9 +21,19 @@ const iconState = {
21
21
  button: "group",
22
22
  off: "hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100",
23
23
  on: "hidden opacity-0 group-data-active:block group-data-active:opacity-100"
24
+ },
25
+ pip: {
26
+ button: "group",
27
+ off: "hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100",
28
+ on: "hidden opacity-0 group-data-pip:block group-data-pip:opacity-100"
29
+ },
30
+ cast: {
31
+ button: "group",
32
+ enter: "hidden opacity-0 group-not-data-[cast-state=connected]:block group-not-data-[cast-state=connected]:opacity-100",
33
+ exit: "hidden opacity-0 group-data-[cast-state=connected]:block group-data-[cast-state=connected]:opacity-100"
24
34
  }
25
35
  };
26
-
27
36
  //#endregion
28
37
  export { iconState };
38
+
29
39
  //# sourceMappingURL=icon-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/icon-state.js"],"sourcesContent":["//#region src/shared/tailwind/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t},\n\tpip: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-pip:block group-data-pip:opacity-100\"\n\t},\n\tcast: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-[cast-state=connected]:block group-not-data-[cast-state=connected]:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-[cast-state=connected]:block group-data-[cast-state=connected]:opacity-100\"\n\t}\n};\n//#endregion\nexport { iconState };\n\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD,KAAK;EACJ,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD,MAAM;EACL,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD"}
@@ -1,25 +1,30 @@
1
1
  import { ContextConsumer } from "@videojs/element/context";
2
- import { noop } from "@videojs/utils/function";
3
-
4
2
  //#region src/store/container-mixin.ts
5
3
  /**
6
- * Create a mixin that consumes player context and auto-attaches media elements.
4
+ * Create a mixin that consumes player context and registers itself as the
5
+ * container element with the provider via `containerContext`.
7
6
  *
8
- * @param context - Player context to consume from an ancestor provider.
7
+ * @param config - Container configuration with player and container contexts.
9
8
  */
10
- function createContainerMixin(context) {
9
+ function createContainerMixin(config) {
11
10
  return (BaseClass) => {
12
11
  class PlayerContainerElement extends BaseClass {
13
- #detach = noop;
14
- #observer = null;
15
12
  #contextStore = null;
13
+ #setContainer = null;
16
14
  constructor(...args) {
17
15
  super(...args);
18
16
  new ContextConsumer(this, {
19
- context,
17
+ context: config.playerContext,
20
18
  callback: (value) => {
21
19
  this.#contextStore = value ?? null;
22
- this.#attachMedia();
20
+ },
21
+ subscribe: true
22
+ });
23
+ new ContextConsumer(this, {
24
+ context: config.containerContext,
25
+ callback: (value) => {
26
+ this.#setContainer = value?.setContainer ?? null;
27
+ if (this.isConnected) this.#setContainer?.(this);
23
28
  },
24
29
  subscribe: true
25
30
  });
@@ -29,67 +34,17 @@ function createContainerMixin(context) {
29
34
  }
30
35
  connectedCallback() {
31
36
  super.connectedCallback();
32
- this.#observer = new MutationObserver((records) => {
33
- if (records.some(hasMediaNode)) this.#attachMedia();
34
- });
35
- this.#observer.observe(this, {
36
- childList: true,
37
- subtree: true,
38
- attributes: true,
39
- attributeFilter: ["data-media-element"]
40
- });
41
- this.addEventListener("slotchange", this.#onSlotChange);
42
- this.#attachMedia();
37
+ this.#setContainer?.(this);
43
38
  }
44
39
  disconnectedCallback() {
45
40
  super.disconnectedCallback();
46
- this.#observer?.disconnect();
47
- this.#observer = null;
48
- this.removeEventListener("slotchange", this.#onSlotChange);
49
- this.#detach();
50
- }
51
- #onSlotChange = () => {
52
- this.#attachMedia();
53
- };
54
- #getSlottedMedia() {
55
- const slot = this.querySelector("slot[name=\"media\"]");
56
- if (!slot) return null;
57
- for (const el of slot.assignedElements({ flatten: true })) if (el instanceof HTMLMediaElement) return el;
58
- return null;
59
- }
60
- #attachMedia() {
61
- const store = this.#contextStore ?? this.store;
62
- if (!store) return;
63
- const media = this.querySelector("video, audio, [data-media-element]") ?? this.#getSlottedMedia();
64
- if (!media) {
65
- this.#detach();
66
- this.#detach = noop;
67
- return;
68
- }
69
- const target = {
70
- media,
71
- container: this
72
- };
73
- const hasMediaChanged = store.target?.media !== target.media, hasContainerChanged = store.target?.container !== target.container;
74
- if (hasMediaChanged || hasContainerChanged) {
75
- this.#detach();
76
- this.#detach = store.attach(target);
77
- }
41
+ this.#setContainer?.(null);
78
42
  }
79
43
  }
80
44
  return PlayerContainerElement;
81
45
  };
82
46
  }
83
- function isMediaNode(node) {
84
- return node instanceof HTMLMediaElement || node instanceof Element && node.hasAttribute("data-media-element");
85
- }
86
- function hasMediaNode(record) {
87
- if (record.type === "attributes" && record.target instanceof Element) return record.target.hasAttribute("data-media-element");
88
- for (const node of record.addedNodes) if (isMediaNode(node)) return true;
89
- for (const node of record.removedNodes) if (isMediaNode(node)) return true;
90
- return false;
91
- }
92
-
93
47
  //#endregion
94
48
  export { createContainerMixin };
49
+
95
50
  //# sourceMappingURL=container-mixin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-mixin.js","names":["#contextStore","#attachMedia","#observer","#onSlotChange","#detach","#getSlottedMedia"],"sources":["../../../src/store/container-mixin.ts"],"sourcesContent":["import type { MediaContainer, PlayerStore, PlayerTarget } from '@videojs/core/dom';\nimport { ContextConsumer } from '@videojs/element/context';\nimport { noop } from '@videojs/utils/function';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { PlayerContext } from '../player/context';\nimport type { PlayerConsumer, PlayerConsumerConstructor } from './types';\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 auto-attaches media elements.\n *\n * @param context - Player context to consume from an ancestor provider.\n */\nexport function createContainerMixin<Store extends PlayerStore>(context: PlayerContext<Store>): ContainerMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerContainerElement extends BaseClass implements PlayerConsumer<Store>, MediaContainer {\n #detach = noop;\n #observer: MutationObserver | null = null;\n #contextStore: Store | null = null;\n\n constructor(...args: any[]) {\n super(...args);\n\n // Created in the constructor body (after all field initializers) so\n // that #contextStore's private slot exists if the callback fires\n // synchronously — which happens when the element is already connected.\n // The host's controller list keeps the consumer alive; no field needed.\n new ContextConsumer(this, {\n context,\n callback: (value) => {\n this.#contextStore = value ?? null;\n this.#attachMedia();\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\n this.#observer = new MutationObserver((records) => {\n if (records.some(hasMediaNode)) this.#attachMedia();\n });\n\n this.#observer.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['data-media-element'],\n });\n\n // Slotted media elements don't appear in the container's subtree,\n // so listen for slot reassignments to pick them up.\n this.addEventListener('slotchange', this.#onSlotChange);\n\n this.#attachMedia();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#observer?.disconnect();\n this.#observer = null;\n this.removeEventListener('slotchange', this.#onSlotChange);\n this.#detach();\n }\n\n #onSlotChange = () => {\n this.#attachMedia();\n };\n\n #getSlottedMedia(): HTMLMediaElement | null {\n const slot = this.querySelector<HTMLSlotElement>('slot[name=\"media\"]');\n if (!slot) return null;\n\n for (const el of slot.assignedElements({ flatten: true })) {\n if (el instanceof HTMLMediaElement) return el;\n }\n\n return null;\n }\n\n #attachMedia() {\n // Prefer the cached context value; fall back to `this.store` which\n // ProviderMixin overrides when both mixins are applied to one element.\n const store = this.#contextStore ?? this.store;\n if (!store) return;\n\n const media =\n this.querySelector<HTMLMediaElement>('video, audio, [data-media-element]') ?? this.#getSlottedMedia();\n\n if (!media) {\n this.#detach();\n this.#detach = noop;\n return;\n }\n\n const target: PlayerTarget = {\n media,\n container: this,\n };\n\n const hasMediaChanged = store.target?.media !== target.media,\n hasContainerChanged = store.target?.container !== target.container;\n\n if (hasMediaChanged || hasContainerChanged) {\n this.#detach();\n this.#detach = store.attach(target);\n }\n }\n }\n\n return PlayerContainerElement;\n };\n}\n\nfunction isMediaNode(node: Node): boolean {\n return node instanceof HTMLMediaElement || (node instanceof Element && node.hasAttribute('data-media-element'));\n}\n\nfunction hasMediaNode(record: MutationRecord): boolean {\n // Attribute mutation: data-media-element was added to a descendant\n if (record.type === 'attributes' && record.target instanceof Element) {\n return record.target.hasAttribute('data-media-element');\n }\n\n for (const node of record.addedNodes) {\n if (isMediaNode(node)) return true;\n }\n\n for (const node of record.removedNodes) {\n if (isMediaNode(node)) return true;\n }\n\n return false;\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,qBAAgD,SAAsD;AACpH,SAA+C,cAAqB;EAClE,MAAM,+BAA+B,UAA2D;GAC9F,UAAU;GACV,YAAqC;GACrC,gBAA8B;GAE9B,YAAY,GAAG,MAAa;AAC1B,UAAM,GAAG,KAAK;AAMd,QAAI,gBAAgB,MAAM;KACxB;KACA,WAAW,UAAU;AACnB,YAAKA,eAAgB,SAAS;AAC9B,YAAKC,aAAc;;KAErB,WAAW;KACZ,CAAC;;GAGJ,IAAI,QAAsB;AACxB,WAAO,MAAKD;;GAGd,AAAS,oBAAoB;AAC3B,UAAM,mBAAmB;AAEzB,UAAKE,WAAY,IAAI,kBAAkB,YAAY;AACjD,SAAI,QAAQ,KAAK,aAAa,CAAE,OAAKD,aAAc;MACnD;AAEF,UAAKC,SAAU,QAAQ,MAAM;KAC3B,WAAW;KACX,SAAS;KACT,YAAY;KACZ,iBAAiB,CAAC,qBAAqB;KACxC,CAAC;AAIF,SAAK,iBAAiB,cAAc,MAAKC,aAAc;AAEvD,UAAKF,aAAc;;GAGrB,AAAS,uBAAuB;AAC9B,UAAM,sBAAsB;AAC5B,UAAKC,UAAW,YAAY;AAC5B,UAAKA,WAAY;AACjB,SAAK,oBAAoB,cAAc,MAAKC,aAAc;AAC1D,UAAKC,QAAS;;GAGhB,sBAAsB;AACpB,UAAKH,aAAc;;GAGrB,mBAA4C;IAC1C,MAAM,OAAO,KAAK,cAA+B,uBAAqB;AACtE,QAAI,CAAC,KAAM,QAAO;AAElB,SAAK,MAAM,MAAM,KAAK,iBAAiB,EAAE,SAAS,MAAM,CAAC,CACvD,KAAI,cAAc,iBAAkB,QAAO;AAG7C,WAAO;;GAGT,eAAe;IAGb,MAAM,QAAQ,MAAKD,gBAAiB,KAAK;AACzC,QAAI,CAAC,MAAO;IAEZ,MAAM,QACJ,KAAK,cAAgC,qCAAqC,IAAI,MAAKK,iBAAkB;AAEvG,QAAI,CAAC,OAAO;AACV,WAAKD,QAAS;AACd,WAAKA,SAAU;AACf;;IAGF,MAAM,SAAuB;KAC3B;KACA,WAAW;KACZ;IAED,MAAM,kBAAkB,MAAM,QAAQ,UAAU,OAAO,OACrD,sBAAsB,MAAM,QAAQ,cAAc,OAAO;AAE3D,QAAI,mBAAmB,qBAAqB;AAC1C,WAAKA,QAAS;AACd,WAAKA,SAAU,MAAM,OAAO,OAAO;;;;AAKzC,SAAO;;;AAIX,SAAS,YAAY,MAAqB;AACxC,QAAO,gBAAgB,oBAAqB,gBAAgB,WAAW,KAAK,aAAa,qBAAqB;;AAGhH,SAAS,aAAa,QAAiC;AAErD,KAAI,OAAO,SAAS,gBAAgB,OAAO,kBAAkB,QAC3D,QAAO,OAAO,OAAO,aAAa,qBAAqB;AAGzD,MAAK,MAAM,QAAQ,OAAO,WACxB,KAAI,YAAY,KAAK,CAAE,QAAO;AAGhC,MAAK,MAAM,QAAQ,OAAO,aACxB,KAAI,YAAY,KAAK,CAAE,QAAO;AAGhC,QAAO"}
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"}
@@ -0,0 +1,44 @@
1
+ import { mediaContext } from "../player/context.js";
2
+ import { ContextEvent } from "@videojs/element/context";
3
+ //#region src/store/media-attach-mixin.ts
4
+ /**
5
+ * Create a mixin that consumes `mediaContext` and registers the
6
+ * element as the media with the provider.
7
+ *
8
+ * Uses the raw context-request protocol so it works with any
9
+ * `HTMLElement` subclass — no `ReactiveControllerHost` required.
10
+ *
11
+ * @param context - The media context to consume.
12
+ */
13
+ function createMediaAttachMixin(context) {
14
+ return (BaseClass) => {
15
+ class MediaAttachElement extends BaseClass {
16
+ #setMedia = null;
17
+ #unsubscribe = null;
18
+ getMediaTarget() {
19
+ return this;
20
+ }
21
+ connectedCallback() {
22
+ super.connectedCallback?.();
23
+ this.dispatchEvent(new ContextEvent(context, this, (value, unsubscribe) => {
24
+ if (unsubscribe) this.#unsubscribe = unsubscribe;
25
+ this.#setMedia = value?.setMedia ?? null;
26
+ if (this.isConnected) this.#setMedia?.(this.getMediaTarget());
27
+ }, true));
28
+ }
29
+ disconnectedCallback() {
30
+ super.disconnectedCallback?.();
31
+ this.#setMedia?.(null);
32
+ this.#unsubscribe?.();
33
+ this.#unsubscribe = null;
34
+ this.#setMedia = null;
35
+ }
36
+ }
37
+ return MediaAttachElement;
38
+ };
39
+ }
40
+ const MediaAttachMixin = createMediaAttachMixin(mediaContext);
41
+ //#endregion
42
+ export { MediaAttachMixin, createMediaAttachMixin };
43
+
44
+ //# sourceMappingURL=media-attach-mixin.js.map
@@ -0,0 +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,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,39 +1,128 @@
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
- * Create a mixin that provides player context to descendant elements.
5
+ * Create a mixin that provides player context to descendant elements and
6
+ * owns the `store.attach()` lifecycle.
7
+ *
8
+ * Media and container elements register themselves via media/container
9
+ * contexts that carry both the current value and a setter. When a media
10
+ * element is available, the provider calls `store.attach({ media, container })`.
11
+ *
12
+ * As a fallback for plain `<video>`/`<audio>` that can't consume context,
13
+ * the provider queries its subtree after a microtask.
7
14
  *
8
- * @param context - Player context to provide to descendants.
9
- * @param factory - Factory function that creates a store instance.
15
+ * @param config - Provider configuration with contexts and store factory.
10
16
  */
11
- function createProviderMixin(context, factory) {
17
+ function createProviderMixin(config) {
12
18
  return (BaseClass) => {
13
19
  class PlayerProviderElement extends BaseClass {
14
- #store = factory();
15
- #provider = new ContextProvider(this, {
16
- context,
20
+ #store = config.factory();
21
+ #detach = null;
22
+ #media = null;
23
+ #container = null;
24
+ #fallbackQueued = false;
25
+ #setMedia = (media) => {
26
+ if (this.#media === media) return;
27
+ this.#media = media;
28
+ this.#mediaProvider.setValue({
29
+ media,
30
+ setMedia: this.#setMedia
31
+ });
32
+ this.#tryAttach();
33
+ };
34
+ #setContainer = (container) => {
35
+ if (this.#container === container) return;
36
+ this.#container = container;
37
+ this.#containerProvider.setValue({
38
+ container,
39
+ setContainer: this.#setContainer
40
+ });
41
+ this.#tryAttach();
42
+ };
43
+ #playerProvider = new ContextProvider(this, {
44
+ context: config.playerContext,
17
45
  initialValue: this.store
18
46
  });
47
+ #mediaProvider = new ContextProvider(this, {
48
+ context: config.mediaContext,
49
+ initialValue: {
50
+ media: this.#media,
51
+ setMedia: this.#setMedia
52
+ }
53
+ });
54
+ #containerProvider = new ContextProvider(this, {
55
+ context: config.containerContext,
56
+ initialValue: {
57
+ container: this.#container,
58
+ setContainer: this.#setContainer
59
+ }
60
+ });
19
61
  get store() {
20
- if (isNull(this.#store)) this.#store = factory();
62
+ if (isNull(this.#store)) this.#store = config.factory();
21
63
  return this.#store;
22
64
  }
23
65
  connectedCallback() {
24
66
  super.connectedCallback();
25
- this.#provider.setValue(this.store);
67
+ this.#playerProvider.setValue(this.store);
68
+ this.#mediaProvider.setValue({
69
+ media: this.#media,
70
+ setMedia: this.#setMedia
71
+ });
72
+ this.#containerProvider.setValue({
73
+ container: this.#container,
74
+ setContainer: this.#setContainer
75
+ });
76
+ this.#tryAttach();
77
+ this.#queueFallbackDiscovery();
78
+ }
79
+ disconnectedCallback() {
80
+ super.disconnectedCallback();
81
+ this.#detachStore();
26
82
  }
27
83
  destroyCallback() {
84
+ this.#detachStore();
28
85
  this.#store?.destroy();
29
86
  this.#store = null;
30
87
  super.destroyCallback();
31
88
  }
89
+ #tryAttach() {
90
+ const store = this.#store;
91
+ if (!store) return;
92
+ if (!this.#media) {
93
+ this.#detachStore();
94
+ return;
95
+ }
96
+ const target = {
97
+ media: this.#media,
98
+ container: this.#container
99
+ };
100
+ const hasMediaChanged = store.target?.media !== target.media;
101
+ const hasContainerChanged = store.target?.container !== target.container;
102
+ if (hasMediaChanged || hasContainerChanged) {
103
+ this.#detachStore();
104
+ this.#detach = store.attach(target);
105
+ }
106
+ }
107
+ #detachStore() {
108
+ this.#detach?.();
109
+ this.#detach = null;
110
+ }
111
+ #queueFallbackDiscovery() {
112
+ if (this.#media || this.#fallbackQueued) return;
113
+ this.#fallbackQueued = true;
114
+ queueMicrotask(() => {
115
+ this.#fallbackQueued = false;
116
+ if (this.#media) return;
117
+ const media = this.querySelector("video, audio");
118
+ if (media) this.#setMedia(media);
119
+ });
120
+ }
32
121
  }
33
122
  return PlayerProviderElement;
34
123
  };
35
124
  }
36
-
37
125
  //#endregion
38
126
  export { createProviderMixin };
127
+
39
128
  //# sourceMappingURL=provider-mixin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-mixin.js","names":["#store","#provider"],"sources":["../../../src/store/provider-mixin.ts"],"sourcesContent":["import type { PlayerStore } 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 { PlayerContext } from '../player/context';\nimport type { PlayerProvider, PlayerProviderConstructor } from './types';\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.\n *\n * @param context - Player context to provide to descendants.\n * @param factory - Factory function that creates a store instance.\n */\nexport function createProviderMixin<Store extends PlayerStore>(\n context: PlayerContext<Store>,\n factory: () => Store\n): ProviderMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerProviderElement extends BaseClass implements PlayerProvider<Store> {\n #store: Store | null = factory();\n\n #provider = new ContextProvider(this, {\n context,\n initialValue: this.store,\n });\n\n get store(): Store {\n if (isNull(this.#store)) {\n this.#store = factory();\n }\n\n return this.#store;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#provider.setValue(this.store);\n }\n\n override destroyCallback() {\n this.#store?.destroy();\n this.#store = null;\n super.destroyCallback();\n }\n }\n\n return PlayerProviderElement;\n };\n}\n"],"mappings":";;;;;;;;;;AAiBA,SAAgB,oBACd,SACA,SACsB;AACtB,SAA+C,cAAqB;EAClE,MAAM,8BAA8B,UAA2C;GAC7E,SAAuB,SAAS;GAEhC,YAAY,IAAI,gBAAgB,MAAM;IACpC;IACA,cAAc,KAAK;IACpB,CAAC;GAEF,IAAI,QAAe;AACjB,QAAI,OAAO,MAAKA,MAAO,CACrB,OAAKA,QAAS,SAAS;AAGzB,WAAO,MAAKA;;GAGd,AAAS,oBAAoB;AAC3B,UAAM,mBAAmB;AACzB,UAAKC,SAAU,SAAS,KAAK,MAAM;;GAGrC,AAAS,kBAAkB;AACzB,UAAKD,OAAQ,SAAS;AACtB,UAAKA,QAAS;AACd,UAAM,iBAAiB;;;AAI3B,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"}