@videojs/html 10.0.0-beta.6 → 10.0.0-beta.8

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 (330) hide show
  1. package/cdn/audio-minimal.dev.d.ts +1 -0
  2. package/cdn/audio-minimal.dev.js +9 -5336
  3. package/cdn/audio-minimal.dev.js.map +1 -1
  4. package/cdn/audio-minimal.js +1 -24
  5. package/cdn/audio-minimal.js.map +1 -1
  6. package/cdn/audio.dev.d.ts +1 -0
  7. package/cdn/audio.dev.js +9 -5336
  8. package/cdn/audio.dev.js.map +1 -1
  9. package/cdn/audio.js +1 -24
  10. package/cdn/audio.js.map +1 -1
  11. package/cdn/background.dev.d.ts +1 -0
  12. package/cdn/background.dev.js +112 -2025
  13. package/cdn/background.dev.js.map +1 -1
  14. package/cdn/background.js +1 -18
  15. package/cdn/background.js.map +1 -1
  16. package/cdn/context-C_e06fGU.js +13 -0
  17. package/cdn/context-C_e06fGU.js.map +1 -0
  18. package/cdn/context-DTY0nOpS.js +98 -0
  19. package/cdn/context-DTY0nOpS.js.map +1 -0
  20. package/cdn/create-player-Dv7K1Ezk.js +3214 -0
  21. package/cdn/create-player-Dv7K1Ezk.js.map +1 -0
  22. package/cdn/create-player-QjiNZlh7.js +7 -0
  23. package/cdn/create-player-QjiNZlh7.js.map +1 -0
  24. package/cdn/default-GgKND7a8.js +2 -0
  25. package/cdn/default-GgKND7a8.js.map +1 -0
  26. package/cdn/default-cLso8BHO.js +28 -0
  27. package/cdn/default-cLso8BHO.js.map +1 -0
  28. package/cdn/listen-BXAYCbZA.js +9 -0
  29. package/cdn/listen-BXAYCbZA.js.map +1 -0
  30. package/cdn/listen-DX5vU4s4.js +2 -0
  31. package/cdn/listen-DX5vU4s4.js.map +1 -0
  32. package/cdn/media/dash-video.dev.d.ts +1 -0
  33. package/cdn/media/dash-video.dev.js +39165 -0
  34. package/cdn/media/dash-video.dev.js.map +1 -0
  35. package/cdn/media/dash-video.js +21 -0
  36. package/cdn/media/dash-video.js.map +1 -0
  37. package/cdn/media/hls-video.dev.d.ts +1 -0
  38. package/cdn/media/hls-video.dev.js +6 -378
  39. package/cdn/media/hls-video.dev.js.map +1 -1
  40. package/cdn/media/hls-video.js +21 -65
  41. package/cdn/media/hls-video.js.map +1 -1
  42. package/cdn/media/simple-hls-video.dev.d.ts +1 -0
  43. package/cdn/media/simple-hls-video.dev.js +6 -377
  44. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  45. package/cdn/media/simple-hls-video.js +1 -45
  46. package/cdn/media/simple-hls-video.js.map +1 -1
  47. package/cdn/media-attach-mixin-ChyNp2eK.js +44 -0
  48. package/cdn/media-attach-mixin-ChyNp2eK.js.map +1 -0
  49. package/cdn/media-attach-mixin-tFNcHnvo.js +2 -0
  50. package/cdn/media-attach-mixin-tFNcHnvo.js.map +1 -0
  51. package/cdn/minimal-BJfleQcQ.js +2 -0
  52. package/cdn/minimal-BJfleQcQ.js.map +1 -0
  53. package/cdn/minimal-DBMdC_0I.js +28 -0
  54. package/cdn/minimal-DBMdC_0I.js.map +1 -0
  55. package/cdn/player-CztIlNio.js +2 -0
  56. package/cdn/player-CztIlNio.js.map +1 -0
  57. package/cdn/player-Dvj38jlr.js +15 -0
  58. package/cdn/player-Dvj38jlr.js.map +1 -0
  59. package/cdn/poster-C4WHg3BH.js +2 -0
  60. package/cdn/poster-C4WHg3BH.js.map +1 -0
  61. package/cdn/poster-O0SI05LC.js +195 -0
  62. package/cdn/poster-O0SI05LC.js.map +1 -0
  63. package/cdn/predicate-BG-dj_kF.js +26 -0
  64. package/cdn/predicate-BG-dj_kF.js.map +1 -0
  65. package/cdn/predicate-Y9jDHLpX.js +2 -0
  66. package/cdn/predicate-Y9jDHLpX.js.map +1 -0
  67. package/cdn/proxy-2oO2ph3m.js +47 -0
  68. package/cdn/proxy-2oO2ph3m.js.map +1 -0
  69. package/cdn/proxy-6KS6wy69.js +2 -0
  70. package/cdn/proxy-6KS6wy69.js.map +1 -0
  71. package/cdn/proxy-XzDf9gyk.js +66 -0
  72. package/cdn/proxy-XzDf9gyk.js.map +1 -0
  73. package/cdn/proxy-dR7IDk37.js +349 -0
  74. package/cdn/proxy-dR7IDk37.js.map +1 -0
  75. package/cdn/safe-define-B8lHgj_K.js +9 -0
  76. package/cdn/safe-define-B8lHgj_K.js.map +1 -0
  77. package/cdn/safe-define-GrHW3P9e.js +2 -0
  78. package/cdn/safe-define-GrHW3P9e.js.map +1 -0
  79. package/cdn/video-minimal.dev.d.ts +1 -0
  80. package/cdn/video-minimal.dev.js +16 -5650
  81. package/cdn/video-minimal.dev.js.map +1 -1
  82. package/cdn/video-minimal.js +1 -24
  83. package/cdn/video-minimal.js.map +1 -1
  84. package/cdn/video.dev.d.ts +1 -0
  85. package/cdn/video.dev.js +24 -5709
  86. package/cdn/video.dev.js.map +1 -1
  87. package/cdn/video.js +1 -24
  88. package/cdn/video.js.map +1 -1
  89. package/cdn/volume-slider-BqzTytgB.js +8 -0
  90. package/cdn/volume-slider-BqzTytgB.js.map +1 -0
  91. package/cdn/volume-slider-CfhOO9RM.js +2453 -0
  92. package/cdn/volume-slider-CfhOO9RM.js.map +1 -0
  93. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  94. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  95. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  96. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  97. package/dist/default/_virtual/inline-css_src/define/background/skin.js +6 -0
  98. package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -0
  99. package/dist/default/_virtual/inline-css_src/define/base.js +1 -1
  100. package/dist/default/_virtual/inline-css_src/define/base.js.map +1 -1
  101. package/dist/default/_virtual/inline-css_src/define/shared.js +6 -0
  102. package/dist/default/_virtual/inline-css_src/define/shared.js.map +1 -0
  103. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  104. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  105. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  106. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  107. package/dist/default/define/audio/minimal-skin.css +22 -20
  108. package/dist/default/define/audio/minimal-skin.js +1 -1
  109. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  110. package/dist/default/define/audio/minimal-skin.tailwind.js +1 -1
  111. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  112. package/dist/default/define/audio/skin.css +19 -22
  113. package/dist/default/define/audio/skin.js +1 -1
  114. package/dist/default/define/audio/skin.js.map +1 -1
  115. package/dist/default/define/audio/skin.tailwind.js +3 -4
  116. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  117. package/dist/default/define/background/skin.css +1 -1
  118. package/dist/default/define/background/skin.js +11 -1
  119. package/dist/default/define/background/skin.js.map +1 -1
  120. package/dist/default/define/base.css +7 -7
  121. package/dist/default/define/media/dash-video.js +14 -0
  122. package/dist/default/define/media/dash-video.js.map +1 -0
  123. package/dist/default/define/shared.css +6 -0
  124. package/dist/default/define/skin-mixin.js +8 -3
  125. package/dist/default/define/skin-mixin.js.map +1 -1
  126. package/dist/default/define/video/minimal-skin.css +101 -71
  127. package/dist/default/define/video/minimal-skin.js +2 -1
  128. package/dist/default/define/video/minimal-skin.js.map +1 -1
  129. package/dist/default/define/video/minimal-skin.tailwind.js +4 -2
  130. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  131. package/dist/default/define/video/skin.css +98 -72
  132. package/dist/default/define/video/skin.js +2 -1
  133. package/dist/default/define/video/skin.js.map +1 -1
  134. package/dist/default/define/video/skin.tailwind.js +4 -2
  135. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  136. package/dist/default/icons/dist/render/default/index.js +2 -1
  137. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  138. package/dist/default/icons/dist/render/minimal/index.js +2 -1
  139. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  140. package/dist/default/index.js +3 -2
  141. package/dist/default/media/background-video/index.js +5 -1
  142. package/dist/default/media/background-video/index.js.map +1 -1
  143. package/dist/default/media/container-element.js +5 -2
  144. package/dist/default/media/container-element.js.map +1 -1
  145. package/dist/default/media/dash-video/index.js +26 -0
  146. package/dist/default/media/dash-video/index.js.map +1 -0
  147. package/dist/default/media/hls-video/index.js +2 -1
  148. package/dist/default/media/hls-video/index.js.map +1 -1
  149. package/dist/default/media/simple-hls-video/index.js +2 -1
  150. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  151. package/dist/default/player/context.js +6 -2
  152. package/dist/default/player/context.js.map +1 -1
  153. package/dist/default/player/create-player.js +11 -3
  154. package/dist/default/player/create-player.js.map +1 -1
  155. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +6 -5
  156. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  157. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  158. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  159. package/dist/default/skins/dist/default/default/tailwind/components/error.js +1 -1
  160. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  161. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +16 -0
  162. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  163. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +6 -5
  164. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  165. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +1 -1
  166. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  167. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  168. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  169. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  170. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  171. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
  172. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  173. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +1 -1
  174. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  175. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -4
  176. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  177. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +5 -0
  178. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  179. package/dist/default/store/container-mixin.js +16 -72
  180. package/dist/default/store/container-mixin.js.map +1 -1
  181. package/dist/default/store/media-attach-mixin.js +45 -0
  182. package/dist/default/store/media-attach-mixin.js.map +1 -0
  183. package/dist/default/store/provider-mixin.js +99 -9
  184. package/dist/default/store/provider-mixin.js.map +1 -1
  185. package/dist/default/ui/popover/popover-element.js +54 -3
  186. package/dist/default/ui/popover/popover-element.js.map +1 -1
  187. package/dist/default/ui/time-slider/time-slider-element.js +1 -1
  188. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  189. package/dist/default/ui/tooltip/tooltip-element.js +53 -3
  190. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  191. package/dist/default/ui/volume-slider/volume-slider-element.js +3 -3
  192. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  193. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  194. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  195. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  196. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  197. package/dist/dev/_virtual/inline-css_src/define/background/skin.js +6 -0
  198. package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -0
  199. package/dist/dev/_virtual/inline-css_src/define/base.js +1 -1
  200. package/dist/dev/_virtual/inline-css_src/define/base.js.map +1 -1
  201. package/dist/dev/_virtual/inline-css_src/define/shared.js +6 -0
  202. package/dist/dev/_virtual/inline-css_src/define/shared.js.map +1 -0
  203. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  204. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  205. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  206. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  207. package/dist/dev/define/audio/minimal-skin.css +22 -20
  208. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  209. package/dist/dev/define/audio/minimal-skin.js +2 -0
  210. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  211. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
  212. package/dist/dev/define/audio/minimal-skin.tailwind.js +3 -1
  213. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  214. package/dist/dev/define/audio/skin.css +19 -22
  215. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  216. package/dist/dev/define/audio/skin.js +2 -0
  217. package/dist/dev/define/audio/skin.js.map +1 -1
  218. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
  219. package/dist/dev/define/audio/skin.tailwind.js +5 -4
  220. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  221. package/dist/dev/define/background/skin.css +1 -1
  222. package/dist/dev/define/background/skin.d.ts.map +1 -1
  223. package/dist/dev/define/background/skin.js +13 -1
  224. package/dist/dev/define/background/skin.js.map +1 -1
  225. package/dist/dev/define/base.css +7 -7
  226. package/dist/dev/define/media/dash-video.d.ts +14 -0
  227. package/dist/dev/define/media/dash-video.d.ts.map +1 -0
  228. package/dist/dev/define/media/dash-video.js +14 -0
  229. package/dist/dev/define/media/dash-video.js.map +1 -0
  230. package/dist/dev/define/shared.css +6 -0
  231. package/dist/dev/define/skin-mixin.d.ts.map +1 -1
  232. package/dist/dev/define/skin-mixin.js +8 -3
  233. package/dist/dev/define/skin-mixin.js.map +1 -1
  234. package/dist/dev/define/video/minimal-skin.css +101 -71
  235. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  236. package/dist/dev/define/video/minimal-skin.js +10 -2
  237. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  238. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  239. package/dist/dev/define/video/minimal-skin.tailwind.js +13 -4
  240. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  241. package/dist/dev/define/video/skin.css +98 -72
  242. package/dist/dev/define/video/skin.d.ts.map +1 -1
  243. package/dist/dev/define/video/skin.js +9 -1
  244. package/dist/dev/define/video/skin.js.map +1 -1
  245. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  246. package/dist/dev/define/video/skin.tailwind.js +13 -4
  247. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  248. package/dist/dev/icons/dist/render/default/index.js +2 -1
  249. package/dist/dev/icons/dist/render/default/index.js.map +1 -1
  250. package/dist/dev/icons/dist/render/minimal/index.js +2 -1
  251. package/dist/dev/icons/dist/render/minimal/index.js.map +1 -1
  252. package/dist/dev/index.d.ts +5 -4
  253. package/dist/dev/index.js +3 -2
  254. package/dist/dev/media/background-video/index.d.ts +8 -1
  255. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  256. package/dist/dev/media/background-video/index.js +5 -1
  257. package/dist/dev/media/background-video/index.js.map +1 -1
  258. package/dist/dev/media/container-element.js +5 -2
  259. package/dist/dev/media/container-element.js.map +1 -1
  260. package/dist/dev/media/dash-video/index.d.ts +13 -0
  261. package/dist/dev/media/dash-video/index.d.ts.map +1 -0
  262. package/dist/dev/media/dash-video/index.js +26 -0
  263. package/dist/dev/media/dash-video/index.js.map +1 -0
  264. package/dist/dev/media/hls-video/index.d.ts +2 -1
  265. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  266. package/dist/dev/media/hls-video/index.js +2 -1
  267. package/dist/dev/media/hls-video/index.js.map +1 -1
  268. package/dist/dev/media/simple-hls-video/index.d.ts +2 -1
  269. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  270. package/dist/dev/media/simple-hls-video/index.js +2 -1
  271. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  272. package/dist/dev/player/context.d.ts +16 -2
  273. package/dist/dev/player/context.d.ts.map +1 -1
  274. package/dist/dev/player/context.js +6 -2
  275. package/dist/dev/player/context.js.map +1 -1
  276. package/dist/dev/player/create-player.d.ts +1 -1
  277. package/dist/dev/player/create-player.js +11 -3
  278. package/dist/dev/player/create-player.js.map +1 -1
  279. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +6 -5
  280. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  281. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
  282. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  283. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +1 -1
  284. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  285. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +16 -0
  286. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  287. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +6 -5
  288. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  289. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +1 -1
  290. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  291. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  292. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  293. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  294. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  295. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
  296. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  297. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +1 -1
  298. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  299. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -4
  300. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  301. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +5 -0
  302. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  303. package/dist/dev/store/container-mixin.d.ts +10 -5
  304. package/dist/dev/store/container-mixin.d.ts.map +1 -1
  305. package/dist/dev/store/container-mixin.js +16 -72
  306. package/dist/dev/store/container-mixin.js.map +1 -1
  307. package/dist/dev/store/media-attach-mixin.d.ts +19 -0
  308. package/dist/dev/store/media-attach-mixin.d.ts.map +1 -0
  309. package/dist/dev/store/media-attach-mixin.js +45 -0
  310. package/dist/dev/store/media-attach-mixin.js.map +1 -0
  311. package/dist/dev/store/provider-mixin.d.ts +19 -6
  312. package/dist/dev/store/provider-mixin.d.ts.map +1 -1
  313. package/dist/dev/store/provider-mixin.js +99 -9
  314. package/dist/dev/store/provider-mixin.js.map +1 -1
  315. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  316. package/dist/dev/ui/popover/popover-element.js +54 -3
  317. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  318. package/dist/dev/ui/time-slider/time-slider-element.js +1 -1
  319. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  320. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  321. package/dist/dev/ui/tooltip/tooltip-element.js +53 -3
  322. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  323. package/dist/dev/ui/volume-slider/volume-slider-element.js +3 -3
  324. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  325. package/package.json +21 -10
  326. package/cdn/audio-minimal.css +0 -1
  327. package/cdn/audio.css +0 -1
  328. package/cdn/background.css +0 -1
  329. package/cdn/video-minimal.css +0 -1
  330. package/cdn/video.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"video.tailwind.js","names":[],"sources":["../../../../../../../../skins/dist/default/default/tailwind/video.tailwind.js"],"sourcesContent":["import { iconState } from \"../../shared/tailwind/icon-state.js\";\nimport { tooltipState } from \"../../shared/tailwind/tooltip-state.js\";\nimport { bufferingIndicator as bufferingIndicator$1 } from \"./components/buffering.js\";\nimport { 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 { slider as slider$1 } from \"./components/slider.js\";\nimport { surface as surface$1 } from \"./components/surface.js\";\nimport { button } from \"./components/button.js\";\nimport { icon, iconContainer, iconFlipped, iconHidden } from \"./components/icon.js\";\nimport { playbackRate } from \"./components/playback-rate.js\";\nimport { root as root$1 } from \"./components/root.js\";\nimport { seek } from \"./components/seek.js\";\nimport { time } from \"./components/time.js\";\nimport { preview as preview$1 } from \"./components/preview.js\";\nimport { overlay } from \"./components/overlay.js\";\nimport { cn } from \"@videojs/utils/style\";\n\n//#region src/default/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/10 dark:after:ring-white/10\", {\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,contain)] [&_::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,2rem)]\", \"[&>img]:absolute [&>img]:inset-0 [&>img]:w-full [&>img]:h-full [&>img]:rounded-[inherit]\", \"[&>img]:[object-fit:var(--media-object-fit,contain)] [&>img]:[object-position:var(--media-object-position,center)] [&>img]:pointer-events-none\", \"[&>img]:transition-opacity [&>img]:duration-250\", \"[&>img:not([data-visible])]:opacity-0\", \"[--media-caption-track-y:-0.5rem]\", \"[--media-caption-track-delay:600ms]\", \"[--media-caption-track-duration:150ms]\", \"motion-reduce:[--media-caption-track-duration:50ms]\", \"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-(--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 surface = cn(surface$1, \"bg-white/10\", \"backdrop-saturate-150 backdrop-blur-lg\", \"ring-black/15 shadow-black/10\", \"after:ring-white/5\", \"[@media(prefers-reduced-transparency:reduce)]:bg-black/70\", \"contrast-more:bg-black/90\");\nconst controls = cn(controls$1, surface, \"absolute bottom-3 inset-x-3\", \"text-white z-10\", \"will-change-[scale,transform,filter,opacity]\", \"[@media(pointer:fine)]:transition-[scale,transform,filter,opacity]\", \"ease-out origin-bottom\", \"[@media(pointer:fine)]:delay-0 [@media(pointer:fine)]:duration-100\", \"not-data-visible:pointer-events-none not-data-visible:opacity-0\", \"not-data-visible:blur-sm not-data-visible:scale-90\", \"[@media(pointer:fine)]:not-data-visible:delay-500\", \"[@media(pointer:fine)]:not-data-visible:duration-300\", \"[@media(pointer:fine)]:motion-reduce:not-data-visible:duration-100\", \"motion-reduce:not-data-visible:blur-none\", \"motion-reduce:not-data-visible:scale-100\");\nconst preview = {\n\t...preview$1,\n\troot: cn(\"absolute left-(--media-slider-pointer) bottom-[calc(100%+1.2rem)] -translate-x-1/2\", \"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\", surface, preview$1.root),\n\tthumbnail: cn(preview$1.thumbnail, \"max-w-44\")\n};\nconst slider = {\n\t...slider$1,\n\ttrack: cn(slider$1.track, \"bg-white/20 shadow-[0_0_0_1px_oklch(0_0_0/0.05)]\")\n};\nconst popup = {\n\t...popup$1,\n\tpopover: cn(surface, popup$1.popover),\n\ttooltip: cn(surface, popup$1.tooltip)\n};\nconst bufferingIndicator = {\n\t...bufferingIndicator$1,\n\tcontainer: cn(bufferingIndicator$1.container, surface)\n};\nconst error = {\n\t...error$1,\n\tdialog: cn(error$1.dialog, surface)\n};\n\n//#endregion\nexport { bufferingIndicator, button, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, overlay, playbackRate, popup, preview, root, seek, slider, surface, time, tooltipState };\n//# sourceMappingURL=video.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,MAAM,QAAQ,gBAAgB,GAAG,QAAQ,YAAY,+EAA+E,4FAA4F;CAC/N,8RAA8R;CAC9R,wMAAwM,CAAC;CACzM,EAAE,iEAAiE,4FAA4F,kJAAkJ,mDAAmD,yCAAyC,qCAAqC,uCAAuC,0CAA0C,uDAAuD,0EAA0E,yEAAyE,CAAC,cAAc;CAC5tB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAG,EAAE,EAAE,4CAA4C;CACnD,uCAAuC,CAAC;CACxC,kDAAkD;CAClD,CAAC;AACF,MAAM,UAAU,GAAG,WAAW,eAAe,0CAA0C,iCAAiC,sBAAsB,6DAA6D,4BAA4B;AACvO,MAAM,WAAW,GAAG,YAAY,SAAS,+BAA+B,mBAAmB,gDAAgD,sEAAsE,0BAA0B,sEAAsE,mEAAmE,sDAAsD,qDAAqD,wDAAwD,sEAAsE,4CAA4C,2CAA2C;AACprB,MAAM,UAAU;CACf,GAAG;CACH,MAAM,GAAG,sFAAsF,4CAA4C,kDAAkD,oHAAoH,iIAAiI,8CAA8C,SAAS,UAAU,KAAK;CACxf,WAAW,GAAG,UAAU,WAAW,WAAW;CAC9C;AACD,MAAM,SAAS;CACd,GAAG;CACH,OAAO,GAAG,SAAS,OAAO,mDAAmD;CAC7E;AACD,MAAM,QAAQ;CACb,GAAG;CACH,SAAS,GAAG,SAAS,QAAQ,QAAQ;CACrC,SAAS,GAAG,SAAS,QAAQ,QAAQ;CACrC;AACD,MAAM,qBAAqB;CAC1B,GAAG;CACH,WAAW,GAAG,qBAAqB,WAAW,QAAQ;CACtD;AACD,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,QAAQ,QAAQ,QAAQ;CACnC"}
1
+ {"version":3,"file":"video.tailwind.js","names":[],"sources":["../../../../../../../../skins/dist/default/default/tailwind/video.tailwind.js"],"sourcesContent":["import { iconState } from \"../../shared/tailwind/icon-state.js\";\nimport { tooltipState } from \"../../shared/tailwind/tooltip-state.js\";\nimport { bufferingIndicator as bufferingIndicator$1 } from \"./components/buffering.js\";\nimport { 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 { slider as slider$1 } from \"./components/slider.js\";\nimport { surface as surface$1 } from \"./components/surface.js\";\nimport { button } from \"./components/button.js\";\nimport { icon, iconContainer, iconFlipped, iconHidden } from \"./components/icon.js\";\nimport { playbackRate } from \"./components/playback-rate.js\";\nimport { seek } from \"./components/seek.js\";\nimport { time } from \"./components/time.js\";\nimport { preview as preview$1 } from \"./components/preview.js\";\nimport { overlay } from \"./components/overlay.js\";\nimport { poster } from \"./components/poster.js\";\nimport { cn } from \"@videojs/utils/style\";\n\n//#region src/default/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/10 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,contain)] [&_::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,2rem)]\", \"[--media-controls-transition-duration:100ms]\", \"[--media-controls-transition-delay:0ms]\", \"[@media(pointer:fine)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-delay:500ms]\", \"[@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:100ms]\", \"[--media-caption-track-y:-0.5rem]\", \"[--media-caption-track-delay:calc(var(--media-controls-transition-delay)_+_25ms)]\", \"[--media-caption-track-duration:var(--media-controls-transition-duration)]\", \"has-[[data-controls][data-visible]]:[--media-caption-track-y:-3.5rem]\", !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 surface = cn(surface$1, \"bg-white/10\", \"backdrop-saturate-150 backdrop-blur-lg\", \"ring-black/15 shadow-black/10\", \"after:ring-white/5\", \"[@media(prefers-reduced-transparency:reduce)]:bg-black/70\", \"contrast-more:bg-black/90\");\nconst controls = cn(controls$1, surface, \"absolute bottom-3 inset-x-3\", \"[color:var(--media-color-primary,oklch(1_0_0))] z-10\", \"ease-out origin-bottom\", \"duration-(--media-controls-transition-duration)\", \"delay-(--media-controls-transition-delay)\", \"[@media(pointer:fine)]:will-change-[scale,filter,opacity]\", \"[@media(pointer:fine)]:transition-[scale,filter,opacity]\", \"[@media(pointer:coarse)]:will-change-[scale,opacity]\", \"[@media(pointer:coarse)]:transition-[scale,opacity]\", \"not-data-visible:pointer-events-none not-data-visible:opacity-0\", \"motion-safe:not-data-visible:scale-90\", \"[@media(pointer:fine)]:motion-safe:not-data-visible:blur-sm\");\nconst preview = {\n\t...preview$1,\n\troot: cn(\"absolute left-(--media-slider-pointer) bottom-[calc(100%+1.2rem)] -translate-x-1/2\", \"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\", surface, preview$1.root),\n\tthumbnail: cn(preview$1.thumbnail, \"max-w-44\")\n};\nconst slider = {\n\t...slider$1,\n\ttrack: cn(slider$1.track, \"bg-white/20 shadow-[0_0_0_1px_oklch(0_0_0/0.05)]\")\n};\nconst popup = {\n\t...popup$1,\n\tpopover: cn(surface, popup$1.popover),\n\ttooltip: cn(surface, popup$1.tooltip)\n};\nconst bufferingIndicator = {\n\t...bufferingIndicator$1,\n\tcontainer: cn(bufferingIndicator$1.container, surface)\n};\nconst error = {\n\t...error$1,\n\tdialog: cn(error$1.dialog, surface)\n};\n\n//#endregion\nexport { bufferingIndicator, button, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, overlay, playbackRate, popup, poster, preview, root, seek, slider, surface, time, tooltipState };\n//# sourceMappingURL=video.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,QAAQ,gBAAgB,GAAG,QAAQ,YAAY,+EAA+E,4FAA4F;CAC/N,8RAA8R;CAC9R,wMAAwM,CAAC;CACzM,EAAE,iEAAiE,gDAAgD,2CAA2C,8GAA8G,iHAAiH,mHAAmH,wGAAwG,qCAAqC,qFAAqF,8EAA8E,yEAAyE,CAAC,cAAc;CACx3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAG,EAAE,EAAE,4CAA4C;CACnD,uCAAuC,CAAC;CACxC,kDAAkD;CAClD,CAAC;AACF,MAAM,UAAU,GAAG,WAAW,eAAe,0CAA0C,iCAAiC,sBAAsB,6DAA6D,4BAA4B;AACvO,MAAM,WAAW,GAAG,YAAY,SAAS,+BAA+B,wDAAwD,0BAA0B,mDAAmD,6CAA6C,6DAA6D,4DAA4D,wDAAwD,uDAAuD,mEAAmE,yCAAyC,8DAA8D;AAC5oB,MAAM,UAAU;CACf,GAAG;CACH,MAAM,GAAG,sFAAsF,4CAA4C,kDAAkD,oHAAoH,iIAAiI,8CAA8C,SAAS,UAAU,KAAK;CACxf,WAAW,GAAG,UAAU,WAAW,WAAW;CAC9C;AACD,MAAM,SAAS;CACd,GAAG;CACH,OAAO,GAAG,SAAS,OAAO,mDAAmD;CAC7E;AACD,MAAM,QAAQ;CACb,GAAG;CACH,SAAS,GAAG,SAAS,QAAQ,QAAQ;CACrC,SAAS,GAAG,SAAS,QAAQ,QAAQ;CACrC;AACD,MAAM,qBAAqB;CAC1B,GAAG;CACH,WAAW,GAAG,qBAAqB,WAAW,QAAQ;CACtD;AACD,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,QAAQ,QAAQ,QAAQ;CACnC"}
@@ -13,7 +13,7 @@ import { time } from "./components/time.js";
13
13
  import { cn } from "@videojs/utils/style";
14
14
 
15
15
  //#region ../skins/dist/default/minimal/tailwind/audio.tailwind.js
16
- const root = cn(root$1, "[--media-controls-background-color:oklch(1_0_0)]", "[--media-controls-border-color:oklch(0_0_0/0.1)]", "[--media-controls-text-color:oklch(0_0_0)]", "dark:[--media-controls-background-color:oklch(0_0_0)]", "dark:[--media-controls-border-color:oklch(1_0_0/0.1)]", "dark:[--media-controls-text-color:oklch(1_0_0)]");
16
+ const root = cn(root$1, "[--media-controls-background-color:oklch(1_0_0)]", "[--media-controls-border-color:oklch(0_0_0/0.1)]", "[--media-controls-text-color:var(--media-color-primary,oklch(0_0_0))]", "dark:[--media-controls-background-color:oklch(0_0_0)]", "dark:[--media-controls-border-color:oklch(1_0_0/0.1)]", "dark:[--media-controls-text-color:var(--media-color-primary,oklch(1_0_0))]");
17
17
  const controls = cn(controls$1, "gap-2 p-1.5", "rounded-(--media-border-radius,0.75rem)", "bg-(--media-controls-background-color)", "text-(--media-controls-text-color)", "backdrop-blur backdrop-brightness-[0.98] backdrop-saturate-[1.2]", "ring-1 ring-(color:--media-controls-border-color)");
18
18
  const popup = {
19
19
  ...popup$1,
@@ -1 +1 @@
1
- {"version":3,"file":"audio.tailwind.js","names":[],"sources":["../../../../../../../../skins/dist/default/minimal/tailwind/audio.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 { iconState } from \"../../shared/tailwind/icon-state.js\";\nimport { tooltipState } from \"../../shared/tailwind/tooltip-state.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 } from \"./components/slider.js\";\nimport { time } from \"./components/time.js\";\nimport { cn } from \"@videojs/utils/style\";\n\n//#region src/minimal/tailwind/audio.tailwind.ts\nconst root = cn(root$1, \"[--media-controls-background-color:oklch(1_0_0)]\", \"[--media-controls-border-color:oklch(0_0_0/0.1)]\", \"[--media-controls-text-color:oklch(0_0_0)]\", \"dark:[--media-controls-background-color:oklch(0_0_0)]\", \"dark:[--media-controls-border-color:oklch(1_0_0/0.1)]\", \"dark:[--media-controls-text-color:oklch(1_0_0)]\");\nconst controls = cn(controls$1, \"gap-2 p-1.5\", \"rounded-(--media-border-radius,0.75rem)\", \"bg-(--media-controls-background-color)\", \"text-(--media-controls-text-color)\", \"backdrop-blur backdrop-brightness-[0.98] backdrop-saturate-[1.2]\", \"ring-1 ring-(color:--media-controls-border-color)\");\nconst popup = {\n\t...popup$1,\n\tvolume: cn(popup$1.popover, \"py-2 pr-0 pl-16\", \"bg-transparent bg-gradient-to-l from-(--media-controls-background-color) from-80% to-transparent\", \"[--media-popover-side-offset:0.75rem]\")\n};\n\n//#endregion\nexport { bufferingIndicator, button, buttonGroup, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, popup, root, seek, slider, time, tooltipState };\n//# sourceMappingURL=audio.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAM,OAAO,GAAG,QAAQ,oDAAoD,oDAAoD,8CAA8C,yDAAyD,yDAAyD,kDAAkD;AAClV,MAAM,WAAW,GAAG,YAAY,eAAe,2CAA2C,0CAA0C,sCAAsC,oEAAoE,oDAAoD;AAClS,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,QAAQ,SAAS,mBAAmB,oGAAoG,wCAAwC;CAC3L"}
1
+ {"version":3,"file":"audio.tailwind.js","names":[],"sources":["../../../../../../../../skins/dist/default/minimal/tailwind/audio.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 { iconState } from \"../../shared/tailwind/icon-state.js\";\nimport { tooltipState } from \"../../shared/tailwind/tooltip-state.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 } from \"./components/slider.js\";\nimport { time } from \"./components/time.js\";\nimport { cn } from \"@videojs/utils/style\";\n\n//#region src/minimal/tailwind/audio.tailwind.ts\nconst root = cn(root$1, \"[--media-controls-background-color:oklch(1_0_0)]\", \"[--media-controls-border-color:oklch(0_0_0/0.1)]\", \"[--media-controls-text-color:var(--media-color-primary,oklch(0_0_0))]\", \"dark:[--media-controls-background-color:oklch(0_0_0)]\", \"dark:[--media-controls-border-color:oklch(1_0_0/0.1)]\", \"dark:[--media-controls-text-color:var(--media-color-primary,oklch(1_0_0))]\");\nconst controls = cn(controls$1, \"gap-2 p-1.5\", \"rounded-(--media-border-radius,0.75rem)\", \"bg-(--media-controls-background-color)\", \"text-(--media-controls-text-color)\", \"backdrop-blur backdrop-brightness-[0.98] backdrop-saturate-[1.2]\", \"ring-1 ring-(color:--media-controls-border-color)\");\nconst popup = {\n\t...popup$1,\n\tvolume: cn(popup$1.popover, \"py-2 pr-0 pl-16\", \"bg-transparent bg-gradient-to-l from-(--media-controls-background-color) from-80% to-transparent\", \"[--media-popover-side-offset:0.75rem]\")\n};\n\n//#endregion\nexport { bufferingIndicator, button, buttonGroup, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, popup, root, seek, slider, time, tooltipState };\n//# sourceMappingURL=audio.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAM,OAAO,GAAG,QAAQ,oDAAoD,oDAAoD,yEAAyE,yDAAyD,yDAAyD,6EAA6E;AACxY,MAAM,WAAW,GAAG,YAAY,eAAe,2CAA2C,0CAA0C,sCAAsC,oEAAoE,oDAAoD;AAClS,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,QAAQ,SAAS,mBAAmB,oGAAoG,wCAAwC;CAC3L"}
@@ -1,7 +1,7 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
 
3
3
  //#region ../skins/dist/default/minimal/tailwind/components/controls.js
4
- const controls = cn("peer/controls", "@container/media-controls", "flex items-center", "[--media-controls-current-shadow-color:oklch(from_currentColor_0_0_0/clamp(0,calc((l-0.5)*0.5),0.25))]", "[--media-controls-current-shadow-color-subtle:oklch(from_var(--media-controls-current-shadow-color)_l_c_h/calc(alpha*0.4))]", "text-shadow-[0_0_1px_var(--media-controls-current-shadow-color)]");
4
+ const controls = cn("peer/controls", "@container/media-controls", "flex items-center", "[--media-controls-current-shadow-color:oklch(from_currentColor_0_0_0/clamp(0,calc((l-0.5)*0.5),0.15))]", "[--media-controls-current-shadow-color-subtle:oklch(from_var(--media-controls-current-shadow-color)_l_c_h/calc(alpha*0.4))]", "text-shadow-[0_1px_0_var(--media-controls-current-shadow-color)]");
5
5
 
6
6
  //#endregion
7
7
  export { controls };
@@ -1 +1 @@
1
- {"version":3,"file":"controls.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/controls.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n\n//#region src/minimal/tailwind/components/controls.ts\nconst controls = cn(\"peer/controls\", \"@container/media-controls\", \"flex items-center\", \"[--media-controls-current-shadow-color:oklch(from_currentColor_0_0_0/clamp(0,calc((l-0.5)*0.5),0.25))]\", \"[--media-controls-current-shadow-color-subtle:oklch(from_var(--media-controls-current-shadow-color)_l_c_h/calc(alpha*0.4))]\", \"text-shadow-[0_0_1px_var(--media-controls-current-shadow-color)]\");\n\n//#endregion\nexport { controls };\n//# sourceMappingURL=controls.js.map"],"mappings":";;;AAGA,MAAM,WAAW,GAAG,iBAAiB,6BAA6B,qBAAqB,0GAA0G,+HAA+H,mEAAmE"}
1
+ {"version":3,"file":"controls.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/controls.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n\n//#region src/minimal/tailwind/components/controls.ts\nconst controls = cn(\"peer/controls\", \"@container/media-controls\", \"flex items-center\", \"[--media-controls-current-shadow-color:oklch(from_currentColor_0_0_0/clamp(0,calc((l-0.5)*0.5),0.15))]\", \"[--media-controls-current-shadow-color-subtle:oklch(from_var(--media-controls-current-shadow-color)_l_c_h/calc(alpha*0.4))]\", \"text-shadow-[0_1px_0_var(--media-controls-current-shadow-color)]\");\n\n//#endregion\nexport { controls };\n//# sourceMappingURL=controls.js.map"],"mappings":";;;AAGA,MAAM,WAAW,GAAG,iBAAiB,6BAA6B,qBAAqB,0GAA0G,+HAA+H,mEAAmE"}
@@ -0,0 +1,6 @@
1
+ //#region ../skins/dist/default/minimal/tailwind/components/playback-rate.js
2
+ const playbackRate = { button: `after:content-[attr(data-rate)_'×'] after:w-[4ch] after:tabular-nums` };
3
+
4
+ //#endregion
5
+ export { playbackRate };
6
+ //# sourceMappingURL=playback-rate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playback-rate.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/playback-rate.js"],"sourcesContent":["//#region src/minimal/tailwind/components/playback-rate.ts\nconst playbackRate = { button: `after:content-[attr(data-rate)_'×'] after:w-[4ch] after:tabular-nums` };\n\n//#endregion\nexport { playbackRate };\n//# sourceMappingURL=playback-rate.js.map"],"mappings":";AACA,MAAM,eAAe,EAAE,QAAQ,wEAAwE"}
@@ -0,0 +1,16 @@
1
+ import { cn } from "@videojs/utils/style";
2
+
3
+ //#region ../skins/dist/default/minimal/tailwind/components/poster.js
4
+ const poster = (isShadowDOM) => cn("absolute inset-0 w-full h-full pointer-events-none", "transition-opacity duration-250", "not-data-visible:opacity-0", isShadowDOM ? [
5
+ "[&_::slotted(img)]:absolute",
6
+ "[&_::slotted(img)]:inset-0",
7
+ "[&_::slotted(img)]:w-full",
8
+ "[&_::slotted(img)]:h-full",
9
+ "[&_::slotted(img)]:[object-fit:var(--media-object-fit,contain)]",
10
+ "[&_::slotted(img)]:[object-position:var(--media-object-position,center)]",
11
+ "[&_::slotted(img)]:rounded-(--media-video-border-radius)"
12
+ ] : "rounded-[inherit] [object-fit:var(--media-object-fit,contain)] [object-position:var(--media-object-position,center)]");
13
+
14
+ //#endregion
15
+ export { poster };
16
+ //# sourceMappingURL=poster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poster.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/poster.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n\n//#region src/minimal/tailwind/components/poster.ts\nconst poster = (isShadowDOM) => cn(\"absolute inset-0 w-full h-full pointer-events-none\", \"transition-opacity duration-250\", \"not-data-visible:opacity-0\", isShadowDOM ? [\n\t\"[&_::slotted(img)]:absolute\",\n\t\"[&_::slotted(img)]:inset-0\",\n\t\"[&_::slotted(img)]:w-full\",\n\t\"[&_::slotted(img)]:h-full\",\n\t\"[&_::slotted(img)]:[object-fit:var(--media-object-fit,contain)]\",\n\t\"[&_::slotted(img)]:[object-position:var(--media-object-position,center)]\",\n\t\"[&_::slotted(img)]:rounded-(--media-video-border-radius)\"\n] : \"rounded-[inherit] [object-fit:var(--media-object-fit,contain)] [object-position:var(--media-object-position,center)]\");\n\n//#endregion\nexport { poster };\n//# sourceMappingURL=poster.js.map"],"mappings":";;;AAGA,MAAM,UAAU,gBAAgB,GAAG,sDAAsD,mCAAmC,8BAA8B,cAAc;CACvK;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAG,uHAAuH"}
@@ -4,7 +4,7 @@ import { cn } from "@videojs/utils/style";
4
4
  const time = {
5
5
  group: "flex items-center gap-1",
6
6
  current: cn("hidden tabular-nums", "@md/media-controls:inline"),
7
- separator: cn("hidden", "@md/media-controls:inline @md/media-controls:text-white/50"),
7
+ separator: cn("hidden", "@md/media-controls:inline @md/media-controls:text-current/60"),
8
8
  duration: cn("tabular-nums", "@md/media-controls:text-current/60"),
9
9
  controls: cn("flex flex-row-reverse items-center flex-1 gap-3", "@md/media-controls:flex-row")
10
10
  };
@@ -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\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-current/60\"),\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,+DAA+D;CACvF,UAAU,GAAG,gBAAgB,qCAAqC;CAClE,UAAU,GAAG,mDAAmD,8BAA8B;CAC9F"}
@@ -12,14 +12,16 @@ import { slider as slider$1 } from "./components/slider.js";
12
12
  import { time } from "./components/time.js";
13
13
  import { preview as preview$1 } from "./components/preview.js";
14
14
  import { overlay } from "./components/overlay.js";
15
+ import { playbackRate } from "./components/playback-rate.js";
16
+ import { poster } from "./components/poster.js";
15
17
  import { cn } from "@videojs/utils/style";
16
18
 
17
19
  //#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", {
20
+ 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", {
19
21
  "[&_::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,
20
22
  "[&_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
21
- }, "[--media-video-border-radius:var(--media-border-radius,0.75rem)]", "[&>img]:absolute [&>img]:inset-0 [&>img]:w-full [&>img]:h-full [&>img]:rounded-[inherit]", "[&>img]:[object-fit:var(--media-object-fit,contain)] [&>img]:[object-position:var(--media-object-position,center)] [&>img]:pointer-events-none", "[&>img]:transition-opacity [&>img]:duration-250", "[&>img:not([data-visible])]:opacity-0", "[--media-caption-track-y:-0.5rem]", "[--media-caption-track-delay:600ms]", "[--media-caption-track-duration:150ms]", "motion-reduce:[--media-caption-track-duration:50ms]", "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
+ }, "[--media-video-border-radius:var(--media-border-radius,0.75rem)]", "[--media-controls-transition-duration:100ms]", "[--media-controls-transition-delay:0ms]", "[@media(pointer:fine)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-delay:500ms]", "[@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:100ms]", "[--media-caption-track-y:-0.5rem]", "[--media-caption-track-delay:calc(var(--media-controls-transition-delay)_+_25ms)]", "[--media-caption-track-duration:var(--media-controls-transition-duration)]", "has-[[data-controls][data-visible]]:[--media-caption-track-y:-3rem]", !isShadowDOM ? [
24
+ "[&_video::-webkit-media-text-track-container]:transition-[translate]",
23
25
  "[&_video::-webkit-media-text-track-container]:duration-(--media-caption-track-duration)",
24
26
  "[&_video::-webkit-media-text-track-container]:ease-out",
25
27
  "[&_video::-webkit-media-text-track-container]:delay-(--media-caption-track-delay)",
@@ -31,7 +33,7 @@ const root = (isShadowDOM) => cn(root$1, "bg-black", "after:absolute after:point
31
33
  "[&:fullscreen_video]:object-contain": !isShadowDOM,
32
34
  "[&:fullscreen_::slotted(video)]:object-contain": isShadowDOM
33
35
  });
34
- 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]", "[@media(pointer:fine)]:transition-[translate,filter,opacity]", "ease-out", "[@media(pointer:fine)]:delay-0 [@media(pointer:fine)]:duration-75", "not-data-visible:opacity-0 not-data-visible:pointer-events-none", "not-data-visible:translate-y-full not-data-visible:blur-sm", "[@media(pointer:fine)]:not-data-visible:delay-500", "[@media(pointer:fine)]:not-data-visible:duration-500", "[@media(pointer:fine)]: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");
36
+ const controls = cn(controls$1, "absolute bottom-0 inset-x-0", "pt-8 px-1.5 pb-1.5 gap-2", "[color:var(--media-color-primary,oklch(1_0_0))] z-10", "ease-out", "duration-(--media-controls-transition-duration)", "delay-(--media-controls-transition-delay)", "[@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", "@sm/media-root:pt-10 @sm/media-root:px-3 @sm/media-root:pb-3", "@sm/media-root:gap-3.5");
35
37
  const preview = {
36
38
  ...preview$1,
37
39
  root: cn("absolute left-(--media-slider-pointer) bottom-[calc(100%+0.5rem)] -translate-x-1/2", "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),
@@ -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 { iconState } from \"../../shared/tailwind/icon-state.js\";\nimport { tooltipState } from \"../../shared/tailwind/tooltip-state.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 { preview as preview$1 } from \"./components/preview.js\";\nimport { overlay } from \"./components/overlay.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-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)]\", \"[&>img]:absolute [&>img]:inset-0 [&>img]:w-full [&>img]:h-full [&>img]:rounded-[inherit]\", \"[&>img]:[object-fit:var(--media-object-fit,contain)] [&>img]:[object-position:var(--media-object-position,center)] [&>img]:pointer-events-none\", \"[&>img]:transition-opacity [&>img]:duration-250\", \"[&>img:not([data-visible])]:opacity-0\", \"[--media-caption-track-y:-0.5rem]\", \"[--media-caption-track-delay:600ms]\", \"[--media-caption-track-duration:150ms]\", \"motion-reduce:[--media-caption-track-duration:50ms]\", \"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-(--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-0 inset-x-0\", \"pt-8 px-1.5 pb-1.5 gap-2\", \"text-white z-10\", \"will-change-[translate,filter,opacity]\", \"[@media(pointer:fine)]:transition-[translate,filter,opacity]\", \"ease-out\", \"[@media(pointer:fine)]:delay-0 [@media(pointer:fine)]:duration-75\", \"not-data-visible:opacity-0 not-data-visible:pointer-events-none\", \"not-data-visible:translate-y-full not-data-visible:blur-sm\", \"[@media(pointer:fine)]:not-data-visible:delay-500\", \"[@media(pointer:fine)]:not-data-visible:duration-500\", \"[@media(pointer:fine)]: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 preview = {\n\t...preview$1,\n\troot: cn(\"absolute left-(--media-slider-pointer) bottom-[calc(100%+0.5rem)] -translate-x-1/2\", \"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-44\")\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, \"[--media-popover-side-offset:0.5rem] p-1 bg-transparent\")\n};\n\n//#endregion\nexport { bufferingIndicator, button, buttonGroup, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, overlay, popup, preview, root, seek, slider, time, tooltipState };\n//# sourceMappingURL=video.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,QAAQ,gBAAgB,GAAG,QAAQ,YAAY,+EAA+E,mEAAmE,4BAA4B;CAClO,4RAA4R;CAC5R,wMAAwM,CAAC;CACzM,EAAE,oEAAoE,4FAA4F,kJAAkJ,mDAAmD,yCAAyC,qCAAqC,uCAAuC,0CAA0C,uDAAuD,0EAA0E,yEAAyE,CAAC,cAAc;CAC/tB;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,4BAA4B,mBAAmB,0CAA0C,gEAAgE,YAAY,qEAAqE,mEAAmE,8DAA8D,qDAAqD,wDAAwD,sEAAsE,gDAAgD,4CAA4C,4CAA4C,gEAAgE,yBAAyB;AAC9zB,MAAM,UAAU;CACf,GAAG;CACH,MAAM,GAAG,sFAAsF,4CAA4C,kDAAkD,oHAAoH,iIAAiI,8CAA8C,UAAU,KAAK;CAC/e,kBAAkB,GAAG,UAAU,kBAAkB,wDAAwD,wEAAwE;CACjL,WAAW,GAAG,UAAU,WAAW,WAAW;CAC9C;AACD,MAAM,SAAS;CACd,GAAG;CACH,OAAO,GAAG,SAAS,OAAO,sBAAsB;CAChD;AACD,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,QAAQ,SAAS,0DAA0D;CACtF"}
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 { iconState } from \"../../shared/tailwind/icon-state.js\";\nimport { tooltipState } from \"../../shared/tailwind/tooltip-state.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 { 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\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-transition-duration:100ms]\", \"[--media-controls-transition-delay:0ms]\", \"[@media(pointer:fine)]:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-delay:500ms]\", \"[@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:100ms]\", \"[--media-caption-track-y:-0.5rem]\", \"[--media-caption-track-delay:calc(var(--media-controls-transition-delay)_+_25ms)]\", \"[--media-caption-track-duration:var(--media-controls-transition-duration)]\", \"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-0 inset-x-0\", \"pt-8 px-1.5 pb-1.5 gap-2\", \"[color:var(--media-color-primary,oklch(1_0_0))] z-10\", \"ease-out\", \"duration-(--media-controls-transition-duration)\", \"delay-(--media-controls-transition-delay)\", \"[@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\", \"@sm/media-root:pt-10 @sm/media-root:px-3 @sm/media-root:pb-3\", \"@sm/media-root:gap-3.5\");\nconst preview = {\n\t...preview$1,\n\troot: cn(\"absolute left-(--media-slider-pointer) bottom-[calc(100%+0.5rem)] -translate-x-1/2\", \"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-44\")\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, \"[--media-popover-side-offset:0.5rem] p-1 bg-transparent\")\n};\n\n//#endregion\nexport { bufferingIndicator, button, buttonGroup, controls, error, icon, iconContainer, iconFlipped, iconHidden, iconState, overlay, playbackRate, popup, poster, preview, root, seek, slider, time, tooltipState };\n//# sourceMappingURL=video.tailwind.js.map"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,MAAM,QAAQ,gBAAgB,GAAG,QAAQ,0BAA0B,+EAA+E,4FAA4F;CAC7O,4RAA4R;CAC5R,wMAAwM,CAAC;CACzM,EAAE,oEAAoE,gDAAgD,2CAA2C,8GAA8G,iHAAiH,mHAAmH,wGAAwG,qCAAqC,qFAAqF,8EAA8E,uEAAuE,CAAC,cAAc;CACz3B;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,4BAA4B,wDAAwD,YAAY,mDAAmD,6CAA6C,iEAAiE,gEAAgE,4DAA4D,2DAA2D,mEAAmE,iDAAiD,+DAA+D,gEAAgE,yBAAyB;AACnwB,MAAM,UAAU;CACf,GAAG;CACH,MAAM,GAAG,sFAAsF,4CAA4C,kDAAkD,oHAAoH,iIAAiI,8CAA8C,UAAU,KAAK;CAC/e,kBAAkB,GAAG,UAAU,kBAAkB,wDAAwD,wEAAwE;CACjL,WAAW,GAAG,UAAU,WAAW,WAAW;CAC9C;AACD,MAAM,SAAS;CACd,GAAG;CACH,OAAO,GAAG,SAAS,OAAO,sBAAsB;CAChD;AACD,MAAM,QAAQ;CACb,GAAG;CACH,QAAQ,GAAG,QAAQ,SAAS,0DAA0D;CACtF"}
@@ -21,6 +21,11 @@ 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"
24
29
  }
25
30
  };
26
31
 
@@ -1 +1 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/icon-state.js"],"sourcesContent":["//#region src/shared/tailwind/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
1
+ {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/icon-state.js"],"sourcesContent":["//#region src/shared/tailwind/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t},\n\tpip: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-pip:block group-data-pip:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD,KAAK;EACJ,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
@@ -1,25 +1,31 @@
1
1
  import { ContextConsumer } from "@videojs/element/context";
2
- import { noop } from "@videojs/utils/function";
3
2
 
4
3
  //#region src/store/container-mixin.ts
5
4
  /**
6
- * Create a mixin that consumes player context and auto-attaches media elements.
5
+ * Create a mixin that consumes player context and registers itself as the
6
+ * container element with the provider via `containerContext`.
7
7
  *
8
- * @param context - Player context to consume from an ancestor provider.
8
+ * @param config - Container configuration with player and container contexts.
9
9
  */
10
- function createContainerMixin(context) {
10
+ function createContainerMixin(config) {
11
11
  return (BaseClass) => {
12
12
  class PlayerContainerElement extends BaseClass {
13
- #detach = noop;
14
- #observer = null;
15
13
  #contextStore = null;
14
+ #setContainer = null;
16
15
  constructor(...args) {
17
16
  super(...args);
18
17
  new ContextConsumer(this, {
19
- context,
18
+ context: config.playerContext,
20
19
  callback: (value) => {
21
20
  this.#contextStore = value ?? null;
22
- this.#attachMedia();
21
+ },
22
+ subscribe: true
23
+ });
24
+ new ContextConsumer(this, {
25
+ context: config.containerContext,
26
+ callback: (value) => {
27
+ this.#setContainer = value?.setContainer ?? null;
28
+ if (this.isConnected) this.#setContainer?.(this);
23
29
  },
24
30
  subscribe: true
25
31
  });
@@ -29,78 +35,16 @@ function createContainerMixin(context) {
29
35
  }
30
36
  connectedCallback() {
31
37
  super.connectedCallback();
32
- this.#observer = new MutationObserver((records) => {
33
- if (records.some(hasMediaElement)) this.#attachMedia();
34
- });
35
- this.#observer.observe(this, {
36
- childList: true,
37
- subtree: true,
38
- attributes: true,
39
- attributeFilter: ["name"]
40
- });
41
- this.addEventListener("slotchange", this.#onSlotChange);
42
- this.#attachMedia();
38
+ this.#setContainer?.(this);
43
39
  }
44
40
  disconnectedCallback() {
45
41
  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 (isMediaElement(el)) return el;
58
- return null;
59
- }
60
- #findMediaElement() {
61
- const media = Array.from(this.children).find(isMediaElement);
62
- if (media) return media;
63
- return null;
64
- }
65
- #attachMedia() {
66
- const store = this.#contextStore ?? this.store;
67
- if (!store) return;
68
- const media = this.querySelector("video, audio") ?? this.#findMediaElement() ?? this.#getSlottedMedia();
69
- if (!media) {
70
- this.#detach();
71
- this.#detach = noop;
72
- return;
73
- }
74
- if (isCustomMediaElement(media)) globalThis.customElements?.upgrade?.(media);
75
- const target = {
76
- media,
77
- container: this
78
- };
79
- const hasMediaChanged = store.target?.media !== target.media, hasContainerChanged = store.target?.container !== target.container;
80
- if (hasMediaChanged || hasContainerChanged) {
81
- this.#detach();
82
- this.#detach = store.attach(target);
83
- }
42
+ this.#setContainer?.(null);
84
43
  }
85
44
  }
86
45
  return PlayerContainerElement;
87
46
  };
88
47
  }
89
- function isMediaElement(node) {
90
- return node instanceof HTMLMediaElement || isCustomMediaElement(node);
91
- }
92
- function isCustomMediaElement(node) {
93
- return node instanceof HTMLElement && (node.localName.endsWith("-audio") || node.localName.endsWith("-video"));
94
- }
95
- function isMediaSlotElement(node) {
96
- return node instanceof HTMLSlotElement && node.name === "media";
97
- }
98
- function hasMediaElement(record) {
99
- if (isMediaSlotElement(record.target)) return true;
100
- for (const node of record.addedNodes) if (isMediaElement(node) || isMediaSlotElement(node)) return true;
101
- for (const node of record.removedNodes) if (isMediaElement(node) || isMediaSlotElement(node)) return true;
102
- return false;
103
- }
104
48
 
105
49
  //#endregion
106
50
  export { createContainerMixin };
@@ -1 +1 @@
1
- {"version":3,"file":"container-mixin.js","names":["#contextStore","#attachMedia","#observer","#onSlotChange","#detach","#findMediaElement","#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(hasMediaElement)) this.#attachMedia();\n });\n\n this.#observer.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['name'],\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 (isMediaElement(el)) return el as HTMLMediaElement;\n }\n\n return null;\n }\n\n #findMediaElement(): HTMLMediaElement | null {\n const media = Array.from(this.children).find(isMediaElement);\n if (media) return media as HTMLMediaElement;\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') ?? this.#findMediaElement() ?? this.#getSlottedMedia();\n\n if (!media) {\n this.#detach();\n this.#detach = noop;\n return;\n }\n\n if (isCustomMediaElement(media)) {\n globalThis.customElements?.upgrade?.(media);\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 isMediaElement(node: Node): boolean {\n return node instanceof HTMLMediaElement || isCustomMediaElement(node);\n}\n\nfunction isCustomMediaElement(node: Node): boolean {\n return node instanceof HTMLElement && (node.localName.endsWith('-audio') || node.localName.endsWith('-video'));\n}\n\nfunction isMediaSlotElement(node: Node): boolean {\n return node instanceof HTMLSlotElement && node.name === 'media';\n}\n\nfunction hasMediaElement(record: MutationRecord): boolean {\n if (isMediaSlotElement(record.target)) return true;\n\n for (const node of record.addedNodes) {\n if (isMediaElement(node) || isMediaSlotElement(node)) return true;\n }\n\n for (const node of record.removedNodes) {\n if (isMediaElement(node) || isMediaSlotElement(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,gBAAgB,CAAE,OAAKD,aAAc;MACtD;AAEF,UAAKC,SAAU,QAAQ,MAAM;KAC3B,WAAW;KACX,SAAS;KACT,YAAY;KACZ,iBAAiB,CAAC,OAAO;KAC1B,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,eAAe,GAAG,CAAE,QAAO;AAGjC,WAAO;;GAGT,oBAA6C;IAC3C,MAAM,QAAQ,MAAM,KAAK,KAAK,SAAS,CAAC,KAAK,eAAe;AAC5D,QAAI,MAAO,QAAO;AAClB,WAAO;;GAGT,eAAe;IAGb,MAAM,QAAQ,MAAKD,gBAAiB,KAAK;AACzC,QAAI,CAAC,MAAO;IAEZ,MAAM,QACJ,KAAK,cAAgC,eAAe,IAAI,MAAKK,kBAAmB,IAAI,MAAKC,iBAAkB;AAE7G,QAAI,CAAC,OAAO;AACV,WAAKF,QAAS;AACd,WAAKA,SAAU;AACf;;AAGF,QAAI,qBAAqB,MAAM,CAC7B,YAAW,gBAAgB,UAAU,MAAM;IAG7C,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,eAAe,MAAqB;AAC3C,QAAO,gBAAgB,oBAAoB,qBAAqB,KAAK;;AAGvE,SAAS,qBAAqB,MAAqB;AACjD,QAAO,gBAAgB,gBAAgB,KAAK,UAAU,SAAS,SAAS,IAAI,KAAK,UAAU,SAAS,SAAS;;AAG/G,SAAS,mBAAmB,MAAqB;AAC/C,QAAO,gBAAgB,mBAAmB,KAAK,SAAS;;AAG1D,SAAS,gBAAgB,QAAiC;AACxD,KAAI,mBAAmB,OAAO,OAAO,CAAE,QAAO;AAE9C,MAAK,MAAM,QAAQ,OAAO,WACxB,KAAI,eAAe,KAAK,IAAI,mBAAmB,KAAK,CAAE,QAAO;AAG/D,MAAK,MAAM,QAAQ,OAAO,aACxB,KAAI,eAAe,KAAK,IAAI,mBAAmB,KAAK,CAAE,QAAO;AAG/D,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,YAAKA,eAAgB,SAAS;;KAEhC,WAAW;KACZ,CAAC;AAEF,QAAI,gBAAgB,MAAM;KACxB,SAAS,OAAO;KAChB,WAAW,UAAU;AACnB,YAAKC,eAAgB,OAAO,gBAAgB;AAC5C,UAAI,KAAK,YAAa,OAAKA,eAAgB,KAAK;;KAElD,WAAW;KACZ,CAAC;;GAGJ,IAAI,QAAsB;AACxB,WAAO,MAAKD;;GAGd,AAAS,oBAAoB;AAC3B,UAAM,mBAAmB;AACzB,UAAKC,eAAgB,KAAK;;GAG5B,AAAS,uBAAuB;AAC9B,UAAM,sBAAsB;AAC5B,UAAKA,eAAgB,KAAK;;;AAI9B,SAAO"}
@@ -0,0 +1,45 @@
1
+ import { mediaContext } from "../player/context.js";
2
+ import { ContextEvent } from "@videojs/element/context";
3
+
4
+ //#region src/store/media-attach-mixin.ts
5
+ /**
6
+ * Create a mixin that consumes `mediaContext` and registers the
7
+ * element as the media with the provider.
8
+ *
9
+ * Uses the raw context-request protocol so it works with any
10
+ * `HTMLElement` subclass — no `ReactiveControllerHost` required.
11
+ *
12
+ * @param context - The media context to consume.
13
+ */
14
+ function createMediaAttachMixin(context) {
15
+ return (BaseClass) => {
16
+ class MediaAttachElement extends BaseClass {
17
+ #setMedia = null;
18
+ #unsubscribe = null;
19
+ getMediaTarget() {
20
+ return this;
21
+ }
22
+ connectedCallback() {
23
+ super.connectedCallback?.();
24
+ this.dispatchEvent(new ContextEvent(context, this, (value, unsubscribe) => {
25
+ if (unsubscribe) this.#unsubscribe = unsubscribe;
26
+ this.#setMedia = value?.setMedia ?? null;
27
+ if (this.isConnected) this.#setMedia?.(this.getMediaTarget());
28
+ }, true));
29
+ }
30
+ disconnectedCallback() {
31
+ super.disconnectedCallback?.();
32
+ this.#setMedia?.(null);
33
+ this.#unsubscribe?.();
34
+ this.#unsubscribe = null;
35
+ this.#setMedia = null;
36
+ }
37
+ }
38
+ return MediaAttachElement;
39
+ };
40
+ }
41
+ const MediaAttachMixin = createMediaAttachMixin(mediaContext);
42
+
43
+ //#endregion
44
+ export { MediaAttachMixin, createMediaAttachMixin };
45
+ //# 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,AAAS,oBAAoB;AAC3B,UAAM,qBAAqB;AAE3B,SAAK,cACH,IAAI,aACF,SACA,OACC,OAAO,gBAAgB;AACtB,SAAI,YAAa,OAAKA,cAAe;AACrC,WAAKC,WAAY,OAAO,YAAY;AACpC,SAAI,KAAK,YACP,OAAKA,WAAY,KAAK,gBAAgB,CAAC;OAG3C,KACD,CACF;;GAGH,AAAS,uBAAuB;AAC9B,UAAM,wBAAwB;AAC9B,UAAKA,WAAY,KAAK;AACtB,UAAKD,eAAgB;AACrB,UAAKA,cAAe;AACpB,UAAKC,WAAY;;;AAIrB,SAAO;;;AAIX,MAAa,mBAAmB,uBAAuB,aAAa"}
@@ -3,32 +3,122 @@ import { isNull } from "@videojs/utils/predicate";
3
3
 
4
4
  //#region src/store/provider-mixin.ts
5
5
  /**
6
- * Create a mixin that provides player context to descendant elements.
6
+ * Create a mixin that provides player context to descendant elements and
7
+ * owns the `store.attach()` lifecycle.
7
8
  *
8
- * @param context - Player context to provide to descendants.
9
- * @param factory - Factory function that creates a store instance.
9
+ * Media and container elements register themselves via media/container
10
+ * contexts that carry both the current value and a setter. When a media
11
+ * element is available, the provider calls `store.attach({ media, container })`.
12
+ *
13
+ * As a fallback for plain `<video>`/`<audio>` that can't consume context,
14
+ * the provider queries its subtree after a microtask.
15
+ *
16
+ * @param config - Provider configuration with contexts and store factory.
10
17
  */
11
- function createProviderMixin(context, factory) {
18
+ function createProviderMixin(config) {
12
19
  return (BaseClass) => {
13
20
  class PlayerProviderElement extends BaseClass {
14
- #store = factory();
15
- #provider = new ContextProvider(this, {
16
- context,
21
+ #store = config.factory();
22
+ #detach = null;
23
+ #media = null;
24
+ #container = null;
25
+ #fallbackQueued = false;
26
+ #setMedia = (media) => {
27
+ if (this.#media === media) return;
28
+ this.#media = media;
29
+ this.#mediaProvider.setValue({
30
+ media,
31
+ setMedia: this.#setMedia
32
+ });
33
+ this.#tryAttach();
34
+ };
35
+ #setContainer = (container) => {
36
+ if (this.#container === container) return;
37
+ this.#container = container;
38
+ this.#containerProvider.setValue({
39
+ container,
40
+ setContainer: this.#setContainer
41
+ });
42
+ this.#tryAttach();
43
+ };
44
+ #playerProvider = new ContextProvider(this, {
45
+ context: config.playerContext,
17
46
  initialValue: this.store
18
47
  });
48
+ #mediaProvider = new ContextProvider(this, {
49
+ context: config.mediaContext,
50
+ initialValue: {
51
+ media: this.#media,
52
+ setMedia: this.#setMedia
53
+ }
54
+ });
55
+ #containerProvider = new ContextProvider(this, {
56
+ context: config.containerContext,
57
+ initialValue: {
58
+ container: this.#container,
59
+ setContainer: this.#setContainer
60
+ }
61
+ });
19
62
  get store() {
20
- if (isNull(this.#store)) this.#store = factory();
63
+ if (isNull(this.#store)) this.#store = config.factory();
21
64
  return this.#store;
22
65
  }
23
66
  connectedCallback() {
24
67
  super.connectedCallback();
25
- this.#provider.setValue(this.store);
68
+ this.#playerProvider.setValue(this.store);
69
+ this.#mediaProvider.setValue({
70
+ media: this.#media,
71
+ setMedia: this.#setMedia
72
+ });
73
+ this.#containerProvider.setValue({
74
+ container: this.#container,
75
+ setContainer: this.#setContainer
76
+ });
77
+ this.#tryAttach();
78
+ this.#queueFallbackDiscovery();
79
+ }
80
+ disconnectedCallback() {
81
+ super.disconnectedCallback();
82
+ this.#detachStore();
26
83
  }
27
84
  destroyCallback() {
85
+ this.#detachStore();
28
86
  this.#store?.destroy();
29
87
  this.#store = null;
30
88
  super.destroyCallback();
31
89
  }
90
+ #tryAttach() {
91
+ const store = this.#store;
92
+ if (!store) return;
93
+ if (!this.#media) {
94
+ this.#detachStore();
95
+ return;
96
+ }
97
+ const target = {
98
+ media: this.#media,
99
+ container: this.#container
100
+ };
101
+ const hasMediaChanged = store.target?.media !== target.media;
102
+ const hasContainerChanged = store.target?.container !== target.container;
103
+ if (hasMediaChanged || hasContainerChanged) {
104
+ this.#detachStore();
105
+ this.#detach = store.attach(target);
106
+ }
107
+ }
108
+ #detachStore() {
109
+ this.#detach?.();
110
+ this.#detach = null;
111
+ }
112
+ #queueFallbackDiscovery() {
113
+ if (this.#media || this.#fallbackQueued) return;
114
+ this.#fallbackQueued = true;
115
+ queueMicrotask(() => {
116
+ this.#fallbackQueued = false;
117
+ if (this.#media) return;
118
+ const media = this.querySelector("video, audio");
119
+ if (media) this.#setMedia(media);
120
+ });
121
+ }
32
122
  }
33
123
  return PlayerProviderElement;
34
124
  };