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

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 (410) hide show
  1. package/cdn/audio-minimal.dev.d.ts +1 -0
  2. package/cdn/audio-minimal.dev.js +112 -0
  3. package/cdn/audio-minimal.dev.js.map +1 -0
  4. package/cdn/audio-minimal.js +2 -0
  5. package/cdn/audio-minimal.js.map +1 -0
  6. package/cdn/audio.dev.d.ts +1 -0
  7. package/cdn/audio.dev.js +103 -0
  8. package/cdn/audio.dev.js.map +1 -0
  9. package/cdn/audio.js +2 -0
  10. package/cdn/audio.js.map +1 -0
  11. package/cdn/background.dev.d.ts +1 -0
  12. package/cdn/background.dev.js +159 -0
  13. package/cdn/background.dev.js.map +1 -0
  14. package/cdn/background.js +2 -0
  15. package/cdn/background.js.map +1 -0
  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-BTIU8EwT.js +7 -0
  21. package/cdn/create-player-BTIU8EwT.js.map +1 -0
  22. package/cdn/create-player-Cwxvswyv.js +3218 -0
  23. package/cdn/create-player-Cwxvswyv.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 +28357 -0
  39. package/cdn/media/hls-video.dev.js.map +1 -0
  40. package/cdn/media/hls-video.js +41 -0
  41. package/cdn/media/hls-video.js.map +1 -0
  42. package/cdn/media/simple-hls-video.dev.d.ts +1 -0
  43. package/cdn/media/simple-hls-video.dev.js +3465 -0
  44. package/cdn/media/simple-hls-video.dev.js.map +1 -0
  45. package/cdn/media/simple-hls-video.js +2 -0
  46. package/cdn/media/simple-hls-video.js.map +1 -0
  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-BHhLXO-R.js +2 -0
  56. package/cdn/player-BHhLXO-R.js.map +1 -0
  57. package/cdn/player-DEfj0RU6.js +15 -0
  58. package/cdn/player-DEfj0RU6.js.map +1 -0
  59. package/cdn/poster-Dd0F1rRd.js +195 -0
  60. package/cdn/poster-Dd0F1rRd.js.map +1 -0
  61. package/cdn/poster-DwQ3RAch.js +2 -0
  62. package/cdn/poster-DwQ3RAch.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 +155 -0
  81. package/cdn/video-minimal.dev.js.map +1 -0
  82. package/cdn/video-minimal.js +2 -0
  83. package/cdn/video-minimal.js.map +1 -0
  84. package/cdn/video.dev.d.ts +1 -0
  85. package/cdn/video.dev.js +170 -0
  86. package/cdn/video.dev.js.map +1 -0
  87. package/cdn/video.js +2 -0
  88. package/cdn/video.js.map +1 -0
  89. package/cdn/volume-slider-DgJ0rAfC.js +2459 -0
  90. package/cdn/volume-slider-DgJ0rAfC.js.map +1 -0
  91. package/cdn/volume-slider-Pd0AMTCH.js +8 -0
  92. package/cdn/volume-slider-Pd0AMTCH.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 +6 -0
  100. package/dist/default/_virtual/inline-css_src/define/base.js.map +1 -0
  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 +237 -157
  108. package/dist/default/define/audio/minimal-skin.js +2 -79
  109. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  110. package/dist/default/define/audio/minimal-skin.tailwind.js +5 -82
  111. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  112. package/dist/default/define/audio/skin.css +234 -153
  113. package/dist/default/define/audio/skin.js +2 -70
  114. package/dist/default/define/audio/skin.js.map +1 -1
  115. package/dist/default/define/audio/skin.tailwind.js +6 -75
  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 -5
  119. package/dist/default/define/background/skin.js.map +1 -1
  120. package/dist/default/define/base.css +23 -0
  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 +13 -0
  124. package/dist/default/define/skin-mixin.js +16 -33
  125. package/dist/default/define/skin-mixin.js.map +1 -1
  126. package/dist/default/define/video/minimal-skin.css +486 -301
  127. package/dist/default/define/video/minimal-skin.js +3 -121
  128. package/dist/default/define/video/minimal-skin.js.map +1 -1
  129. package/dist/default/define/video/minimal-skin.tailwind.js +8 -136
  130. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  131. package/dist/default/define/video/skin.css +484 -289
  132. package/dist/default/define/video/skin.js +3 -116
  133. package/dist/default/define/video/skin.js.map +1 -1
  134. package/dist/default/define/video/skin.tailwind.js +8 -128
  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 +6 -19
  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 +3 -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 +10 -26
  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/button.js +4 -3
  158. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  159. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  160. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  161. package/dist/default/skins/dist/default/default/tailwind/components/error.js +3 -3
  162. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  163. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  164. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  165. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +3 -3
  166. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  167. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +16 -0
  168. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  169. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +13 -0
  170. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  171. package/dist/default/skins/dist/default/default/tailwind/components/root.js +1 -1
  172. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  173. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -1
  174. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  175. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +1 -1
  176. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  177. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +1 -1
  178. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  179. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +27 -16
  180. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  181. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +11 -24
  182. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  183. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +4 -3
  184. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  185. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  186. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  187. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +3 -3
  188. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  189. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  190. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  191. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  192. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  193. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +4 -3
  194. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  195. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
  196. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  197. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +14 -0
  198. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  199. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  200. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  201. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  202. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  203. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  204. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  205. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +1 -1
  206. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  207. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +33 -16
  208. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  209. package/dist/default/skins/dist/default/{default/tailwind/components → shared/tailwind}/icon-state.js +6 -1
  210. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  211. package/dist/{dev/skins/dist/default/default/tailwind/components → default/skins/dist/default/shared/tailwind}/tooltip-state.js +1 -1
  212. package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -0
  213. package/dist/default/store/container-mixin.js +16 -60
  214. package/dist/default/store/container-mixin.js.map +1 -1
  215. package/dist/default/store/media-attach-mixin.js +45 -0
  216. package/dist/default/store/media-attach-mixin.js.map +1 -0
  217. package/dist/default/store/provider-mixin.js +99 -9
  218. package/dist/default/store/provider-mixin.js.map +1 -1
  219. package/dist/default/ui/popover/popover-element.js +54 -3
  220. package/dist/default/ui/popover/popover-element.js.map +1 -1
  221. package/dist/default/ui/time-slider/time-slider-element.js +1 -1
  222. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  223. package/dist/default/ui/tooltip/tooltip-element.js +53 -3
  224. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  225. package/dist/default/ui/tooltip/tooltip-group-element.js +4 -1
  226. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  227. package/dist/default/ui/volume-slider/volume-slider-element.js +3 -3
  228. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  229. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  230. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  231. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  232. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  233. package/dist/dev/_virtual/inline-css_src/define/background/skin.js +6 -0
  234. package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -0
  235. package/dist/dev/_virtual/inline-css_src/define/base.js +6 -0
  236. package/dist/dev/_virtual/inline-css_src/define/base.js.map +1 -0
  237. package/dist/dev/_virtual/inline-css_src/define/shared.js +6 -0
  238. package/dist/dev/_virtual/inline-css_src/define/shared.js.map +1 -0
  239. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  240. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  241. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  242. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  243. package/dist/dev/define/audio/minimal-skin.css +237 -157
  244. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  245. package/dist/dev/define/audio/minimal-skin.js +69 -64
  246. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  247. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
  248. package/dist/dev/define/audio/minimal-skin.tailwind.js +73 -66
  249. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  250. package/dist/dev/define/audio/skin.css +234 -153
  251. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  252. package/dist/dev/define/audio/skin.js +61 -56
  253. package/dist/dev/define/audio/skin.js.map +1 -1
  254. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
  255. package/dist/dev/define/audio/skin.tailwind.js +67 -61
  256. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  257. package/dist/dev/define/background/skin.css +1 -1
  258. package/dist/dev/define/background/skin.d.ts.map +1 -1
  259. package/dist/dev/define/background/skin.js +13 -1
  260. package/dist/dev/define/background/skin.js.map +1 -1
  261. package/dist/dev/define/base.css +23 -0
  262. package/dist/dev/define/media/dash-video.d.ts +14 -0
  263. package/dist/dev/define/media/dash-video.d.ts.map +1 -0
  264. package/dist/dev/define/media/dash-video.js +14 -0
  265. package/dist/dev/define/media/dash-video.js.map +1 -0
  266. package/dist/dev/define/shared.css +13 -0
  267. package/dist/dev/define/skin-mixin.d.ts +2 -2
  268. package/dist/dev/define/skin-mixin.d.ts.map +1 -1
  269. package/dist/dev/define/skin-mixin.js +16 -33
  270. package/dist/dev/define/skin-mixin.js.map +1 -1
  271. package/dist/dev/define/video/minimal-skin.css +486 -301
  272. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  273. package/dist/dev/define/video/minimal-skin.js +110 -103
  274. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  275. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  276. package/dist/dev/define/video/minimal-skin.tailwind.js +123 -116
  277. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  278. package/dist/dev/define/video/skin.css +484 -289
  279. package/dist/dev/define/video/skin.d.ts.map +1 -1
  280. package/dist/dev/define/video/skin.js +105 -100
  281. package/dist/dev/define/video/skin.js.map +1 -1
  282. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  283. package/dist/dev/define/video/skin.tailwind.js +114 -108
  284. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  285. package/dist/dev/icons/dist/render/default/index.js +2 -1
  286. package/dist/dev/icons/dist/render/default/index.js.map +1 -1
  287. package/dist/dev/icons/dist/render/minimal/index.js +2 -1
  288. package/dist/dev/icons/dist/render/minimal/index.js.map +1 -1
  289. package/dist/dev/index.d.ts +5 -4
  290. package/dist/dev/index.js +3 -2
  291. package/dist/dev/media/background-video/index.d.ts +8 -1
  292. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  293. package/dist/dev/media/background-video/index.js +5 -1
  294. package/dist/dev/media/background-video/index.js.map +1 -1
  295. package/dist/dev/media/container-element.js +5 -2
  296. package/dist/dev/media/container-element.js.map +1 -1
  297. package/dist/dev/media/dash-video/index.d.ts +13 -0
  298. package/dist/dev/media/dash-video/index.d.ts.map +1 -0
  299. package/dist/dev/media/dash-video/index.js +26 -0
  300. package/dist/dev/media/dash-video/index.js.map +1 -0
  301. package/dist/dev/media/hls-video/index.d.ts +2 -1
  302. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  303. package/dist/dev/media/hls-video/index.js +2 -1
  304. package/dist/dev/media/hls-video/index.js.map +1 -1
  305. package/dist/dev/media/simple-hls-video/index.d.ts +2 -1
  306. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  307. package/dist/dev/media/simple-hls-video/index.js +3 -1
  308. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  309. package/dist/dev/player/context.d.ts +16 -2
  310. package/dist/dev/player/context.d.ts.map +1 -1
  311. package/dist/dev/player/context.js +6 -2
  312. package/dist/dev/player/context.js.map +1 -1
  313. package/dist/dev/player/create-player.d.ts +1 -1
  314. package/dist/dev/player/create-player.js +11 -3
  315. package/dist/dev/player/create-player.js.map +1 -1
  316. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +10 -26
  317. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  318. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +4 -3
  319. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  320. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
  321. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  322. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +3 -3
  323. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  324. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  325. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  326. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +3 -3
  327. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  328. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +16 -0
  329. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  330. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +13 -0
  331. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  332. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +1 -1
  333. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  334. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -1
  335. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  336. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +1 -1
  337. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  338. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +1 -1
  339. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  340. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +27 -16
  341. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  342. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +11 -24
  343. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  344. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +4 -3
  345. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  346. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  347. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  348. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +3 -3
  349. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  350. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  351. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  352. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  353. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  354. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +4 -3
  355. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  356. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
  357. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  358. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +14 -0
  359. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  360. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  361. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  362. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  363. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  364. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  365. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  366. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +1 -1
  367. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  368. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +33 -16
  369. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  370. package/dist/{default/skins/dist/default/minimal/tailwind/components → dev/skins/dist/default/shared/tailwind}/icon-state.js +6 -1
  371. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  372. package/dist/dev/skins/dist/default/{minimal/tailwind/components → shared/tailwind}/tooltip-state.js +1 -1
  373. package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -0
  374. package/dist/dev/store/container-mixin.d.ts +10 -5
  375. package/dist/dev/store/container-mixin.d.ts.map +1 -1
  376. package/dist/dev/store/container-mixin.js +16 -60
  377. package/dist/dev/store/container-mixin.js.map +1 -1
  378. package/dist/dev/store/media-attach-mixin.d.ts +19 -0
  379. package/dist/dev/store/media-attach-mixin.d.ts.map +1 -0
  380. package/dist/dev/store/media-attach-mixin.js +45 -0
  381. package/dist/dev/store/media-attach-mixin.js.map +1 -0
  382. package/dist/dev/store/provider-mixin.d.ts +19 -6
  383. package/dist/dev/store/provider-mixin.d.ts.map +1 -1
  384. package/dist/dev/store/provider-mixin.js +99 -9
  385. package/dist/dev/store/provider-mixin.js.map +1 -1
  386. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  387. package/dist/dev/ui/popover/popover-element.js +54 -3
  388. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  389. package/dist/dev/ui/time-slider/time-slider-element.js +1 -1
  390. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  391. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  392. package/dist/dev/ui/tooltip/tooltip-element.js +53 -3
  393. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  394. package/dist/dev/ui/tooltip/tooltip-group-element.js +4 -1
  395. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  396. package/dist/dev/ui/volume-slider/volume-slider-element.js +3 -3
  397. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  398. package/package.json +24 -11
  399. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  400. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js +0 -28
  401. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js.map +0 -1
  402. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  403. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js +0 -28
  404. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +0 -1
  405. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js +0 -29
  406. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  407. package/dist/dev/skins/dist/default/default/tailwind/components/tooltip-state.js.map +0 -1
  408. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  409. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  410. package/dist/dev/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +0 -1
@@ -1,67 +1,3 @@
1
- /* ==========================================================================
2
- Icon State Visibility for Audio Skins
3
-
4
- Data-attribute-driven visibility rules for multi-state icon buttons.
5
- Uses :is() with both element selectors (for HTML custom element wrappers)
6
- and class selectors (for React rendered SVG elements).
7
- ========================================================================== */
8
-
9
- /* --- All icons hidden by default --- */
10
-
11
- .media-button--play .media-icon--restart,
12
- .media-button--play .media-icon--play,
13
- .media-button--play .media-icon--pause,
14
- .media-button--mute .media-icon--volume-off,
15
- .media-button--mute .media-icon--volume-low,
16
- .media-button--mute .media-icon--volume-high {
17
- display: none;
18
- opacity: 0;
19
- }
20
-
21
- /* --- Active icon per state --- */
22
-
23
- /* Play: ended → restart */
24
- .media-button--play[data-ended] .media-icon--restart,
25
- /* Play: paused (not ended) → play */
26
- .media-button--play:not([data-ended])[data-paused] .media-icon--play,
27
- /* Play: playing (not paused, not ended) → pause */
28
- .media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
29
- /* Mute: muted → volume off */
30
- .media-button--mute[data-muted] .media-icon--volume-off,
31
- /* Mute: volume low (not muted) → volume low */
32
- .media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
33
- /* Mute: volume high (not muted, not low) → volume high */
34
- .media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high {
35
- display: block;
36
- opacity: 1;
37
- }
38
-
39
- /* ==========================================================================
40
- Tooltip Label State Visibility for Audio Skins
41
-
42
- Data-attribute-driven visibility rules for multi-state tooltip labels.
43
- Uses adjacent sibling selectors to match button state → tooltip content.
44
- ========================================================================== */
45
-
46
- /* --- All multi-state labels hidden by default --- */
47
-
48
- .media-tooltip-label {
49
- display: none;
50
- }
51
-
52
- /* --- Active label per state --- */
53
-
54
- /* Play: ended → replay */
55
- .media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
56
- /* Play: paused (not ended) → play */
57
- .media-button--play:not([data-ended])[data-paused] + .media-tooltip
58
- .media-tooltip-label--play,
59
- /* Play: playing (not paused, not ended) → pause */
60
- .media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
61
- .media-tooltip-label--pause {
62
- display: block;
63
- }
64
-
65
1
  /* ==========================================================================
66
2
  Reset
67
3
  ========================================================================== */
@@ -70,7 +6,6 @@
70
6
  .media-minimal-skin *::before,
71
7
  .media-minimal-skin *::after {
72
8
  box-sizing: border-box;
73
- margin: 0;
74
9
  }
75
10
  .media-minimal-skin img,
76
11
  .media-minimal-skin video,
@@ -95,6 +30,8 @@
95
30
  position: relative;
96
31
  isolation: isolate;
97
32
  display: block;
33
+ height: 100%;
34
+ width: 100%;
98
35
  container: media-root / inline-size;
99
36
  border-radius: var(--media-border-radius, 0.75rem);
100
37
  font-family:
@@ -108,6 +45,8 @@
108
45
  letter-spacing: normal;
109
46
  -webkit-font-smoothing: auto;
110
47
  -moz-osx-font-smoothing: auto;
48
+
49
+ --media-controls-radius: var(--media-border-radius, 1rem);
111
50
  }
112
51
 
113
52
  /* ==========================================================================
@@ -132,61 +71,6 @@
132
71
  Error Dialog
133
72
  ========================================================================== */
134
73
 
135
- .media-minimal-skin .media-error {
136
- position: absolute;
137
- inset: 0;
138
- z-index: 20;
139
- display: flex;
140
- align-items: center;
141
- justify-content: center;
142
- pointer-events: none;
143
- }
144
-
145
- .media-minimal-skin .media-error__dialog {
146
- display: flex;
147
- flex-direction: column;
148
- gap: 0.75rem;
149
- max-width: 16rem;
150
- padding: 1rem;
151
- color: oklch(1 0 0);
152
- font-size: 0.875rem;
153
- text-shadow: 0 1px 0 oklch(0 0 0 / 0.5);
154
- transition-property: opacity, transform;
155
- transition-duration: 500ms;
156
- transition-delay: 100ms;
157
- transition-timing-function: linear(
158
- 0,
159
- 0.034 1.5%,
160
- 0.763 9.7%,
161
- 1.066 13.9%,
162
- 1.198 19.9%,
163
- 1.184 21.8%,
164
- 0.963 37.5%,
165
- 0.997 50.9%,
166
- 1
167
- );
168
-
169
- /* Simple, fast transition for reduced motion users */
170
- @media (prefers-reduced-motion: reduce) {
171
- transition-duration: 100ms;
172
- transition-delay: 0ms;
173
- transition-timing-function: ease-out;
174
- }
175
- }
176
-
177
- .media-minimal-skin .media-error[data-starting-style] .media-error__dialog,
178
- .media-minimal-skin .media-error[data-ending-style] .media-error__dialog {
179
- opacity: 0;
180
- transform: scale(0.5);
181
- }
182
-
183
- .media-minimal-skin .media-error__content {
184
- display: flex;
185
- flex-direction: column;
186
- gap: 0.5rem;
187
- padding: 0.375rem 0;
188
- }
189
-
190
74
  .media-minimal-skin .media-error__title {
191
75
  font-weight: 600;
192
76
  line-height: 1.25;
@@ -194,6 +78,7 @@
194
78
 
195
79
  .media-minimal-skin .media-error__description {
196
80
  opacity: 0.7;
81
+ overflow-wrap: anywhere;
197
82
  }
198
83
 
199
84
  .media-minimal-skin .media-error__actions {
@@ -205,6 +90,10 @@
205
90
  }
206
91
  }
207
92
 
93
+ .media-minimal-skin .media-error[data-open] ~ .media-controls * {
94
+ visibility: hidden;
95
+ }
96
+
208
97
  /* ==========================================================================
209
98
  Controls
210
99
  ========================================================================== */
@@ -213,12 +102,12 @@
213
102
  container: media-controls / inline-size;
214
103
  display: flex;
215
104
  align-items: center;
216
- --media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.25));
105
+ --media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));
217
106
  --media-controls-current-shadow-color-subtle: oklch(
218
107
  from var(--media-controls-current-shadow-color) l c h /
219
108
  calc(alpha * 0.4)
220
109
  );
221
- text-shadow: 0 0 1px var(--media-controls-current-shadow-color);
110
+ text-shadow: 0 1px 0 var(--media-controls-current-shadow-color);
222
111
  }
223
112
 
224
113
  /* ==========================================================================
@@ -283,26 +172,27 @@
283
172
  justify-content: center;
284
173
  flex-shrink: 0;
285
174
  padding: 0.5rem 1rem;
286
- background: oklch(1 0 0);
287
175
  border: none;
288
- border-radius: 0.5rem;
176
+ border-radius: calc(var(--media-controls-radius) - var(--media-controls-padding));
289
177
  outline: 2px solid transparent;
290
178
  outline-offset: -2px;
291
- color: oklch(0 0 0);
292
- font-weight: 500;
293
- text-align: center;
294
- text-shadow: inherit;
295
- transition-property: background-color, color, outline-offset, transform;
179
+ transition-property: background-color, outline-offset, scale;
296
180
  transition-duration: 150ms;
297
181
  transition-timing-function: ease-out;
298
182
  cursor: pointer;
299
183
  user-select: none;
184
+ text-align: center;
185
+ touch-action: manipulation;
300
186
 
301
187
  &:focus-visible {
302
188
  outline-color: currentColor;
303
189
  outline-offset: 2px;
304
190
  }
305
191
 
192
+ &:active {
193
+ scale: 0.98;
194
+ }
195
+
306
196
  &[disabled] {
307
197
  opacity: 0.5;
308
198
  filter: grayscale(1);
@@ -314,24 +204,45 @@
314
204
  }
315
205
  }
316
206
 
317
- /* Icon button variant */
318
- .media-minimal-skin .media-button--icon {
319
- display: grid;
320
- width: 2.375rem;
321
- padding: 0;
322
- aspect-ratio: 1;
207
+ /* biome-ignore lint/correctness/noUnknownProperty: corner-shape is an emerging CSS spec */
208
+ @supports (corner-shape: squircle) {
209
+ .media-minimal-skin .media-button {
210
+ border-radius: var(--media-controls-radius);
211
+ /* biome-ignore lint/correctness/noUnknownProperty: corner-shape is an emerging CSS spec */
212
+ corner-shape: squircle;
213
+ }
214
+ }
215
+
216
+ /* Primary button variant */
217
+ .media-minimal-skin .media-button--primary {
218
+ background: oklch(1 0 0);
219
+ color: oklch(0 0 0);
220
+ font-weight: 500;
221
+ text-shadow: none;
222
+ }
223
+
224
+ /* Subtle button variant */
225
+ .media-minimal-skin .media-button--subtle {
323
226
  background: transparent;
324
227
  color: inherit;
228
+ text-shadow: inherit;
325
229
 
326
230
  &:hover,
327
231
  &:focus-visible,
328
232
  &[aria-expanded="true"] {
329
- color: oklch(from currentColor l c h / 0.8);
330
- text-decoration: none;
233
+ background: oklch(from currentColor l c h / 0.1);
331
234
  }
235
+ }
236
+
237
+ /* Icon button variant */
238
+ .media-minimal-skin .media-button--icon {
239
+ display: grid;
240
+ width: 2.375rem;
241
+ padding: 0;
242
+ aspect-ratio: 1;
332
243
 
333
244
  &:active {
334
- transform: scale(0.9);
245
+ scale: 0.9;
335
246
  }
336
247
 
337
248
  & .media-icon {
@@ -345,7 +256,7 @@
345
256
  position: absolute;
346
257
  right: -1px;
347
258
  bottom: -3px;
348
- font-size: 0.75em;
259
+ font-size: 10px;
349
260
  font-weight: 480;
350
261
  font-variant-numeric: tabular-nums;
351
262
  }
@@ -405,6 +316,7 @@
405
316
  flex: 1;
406
317
  border-radius: calc(infinity * 1px);
407
318
  outline: none;
319
+ cursor: pointer;
408
320
 
409
321
  &[data-orientation="horizontal"] {
410
322
  min-width: 5rem;
@@ -441,7 +353,7 @@
441
353
  /* Thumb */
442
354
  .media-minimal-skin .media-slider__thumb {
443
355
  position: absolute;
444
- transform: translate(-50%, -50%);
356
+ translate: -50% -50%;
445
357
  z-index: 10;
446
358
  width: 0.75rem;
447
359
  height: 0.75rem;
@@ -534,11 +446,6 @@
534
446
  }
535
447
  }
536
448
 
537
- /* Time display within slider */
538
- .media-minimal-skin .media-slider__time-display {
539
- font-variant-numeric: tabular-nums;
540
- }
541
-
542
449
  /* ==========================================================================
543
450
  Popups & Animations
544
451
  ========================================================================== */
@@ -549,13 +456,14 @@
549
456
  border: 0;
550
457
  color: inherit;
551
458
  overflow: visible;
552
- transition-property: transform, scale, opacity, filter;
553
- transition-duration: 200ms;
459
+ transition-property: scale, opacity, filter;
460
+ transition-duration: var(--media-popup-transition-duration);
461
+ transition-timing-function: var(--media-popup-transition-timing-function);
554
462
 
555
463
  &[data-starting-style],
556
464
  &[data-ending-style] {
557
465
  opacity: 0;
558
- transform: scale(0);
466
+ scale: 0.5;
559
467
  filter: blur(8px);
560
468
  }
561
469
 
@@ -575,19 +483,70 @@
575
483
  &[data-side="right"] {
576
484
  transform-origin: left;
577
485
  }
486
+
487
+ /* Safe area between trigger and popup */
488
+ &::before {
489
+ content: "";
490
+ position: absolute;
491
+ pointer-events: inherit;
492
+ }
493
+
494
+ &[data-side="top"]::before,
495
+ &[data-side="bottom"]::before {
496
+ width: 100%;
497
+ inset-inline: 0;
498
+ }
499
+ &[data-side="top"]::before {
500
+ top: 100%;
501
+ }
502
+ &[data-side="bottom"]::before {
503
+ bottom: 100%;
504
+ }
505
+
506
+ &[data-side="left"]::before,
507
+ &[data-side="right"]::before {
508
+ height: 100%;
509
+ inset-block: 0;
510
+ }
511
+ &[data-side="left"]::before {
512
+ left: 100%;
513
+ }
514
+ &[data-side="right"]::before {
515
+ right: 100%;
516
+ }
517
+ }
518
+
519
+ .media-minimal-skin .media-popover {
520
+ &[data-side="top"]::before,
521
+ &[data-side="bottom"]::before {
522
+ height: var(--media-popover-side-offset);
523
+ }
524
+ &[data-side="left"]::before,
525
+ &[data-side="right"]::before {
526
+ width: var(--media-popover-side-offset);
527
+ }
578
528
  }
579
529
 
580
530
  .media-minimal-skin .media-tooltip {
581
531
  padding: 0.25rem 0.5rem;
582
532
  border-radius: 0.25rem;
583
533
  background-color: oklch(1 0 0 / 0.1);
584
- backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);
534
+ backdrop-filter: blur(16px) saturate(1.5);
585
535
  box-shadow:
586
536
  0 4px 6px -1px oklch(0 0 0 / 0.1),
587
537
  0 2px 4px -2px oklch(0 0 0 / 0.1);
588
538
  font-size: 0.75rem;
589
539
  white-space: nowrap;
590
- --media-tooltip-side-offset: 0.5rem;
540
+ --media-tooltip-side-offset: 0.75rem;
541
+
542
+ &[data-side="top"]::before,
543
+ &[data-side="bottom"]::before {
544
+ height: var(--media-tooltip-side-offset);
545
+ }
546
+ &[data-side="left"]::before,
547
+ &[data-side="right"]::before {
548
+ width: var(--media-tooltip-side-offset);
549
+ }
591
550
 
592
551
  @media (prefers-reduced-transparency: reduce) {
593
552
  background-color: oklch(0 0 0 / 0.7);
@@ -598,29 +557,150 @@
598
557
  }
599
558
  }
600
559
 
560
+ .media-minimal-skin .media-popover--volume:has(media-volume-slider[data-availability="unsupported"]) {
561
+ display: none;
562
+ }
601
563
 
602
564
  /* ==========================================================================
603
- Controls
565
+ Icon State Visibility for Audio Skins
566
+
567
+ Data-attribute-driven visibility rules for multi-state icon buttons.
568
+ Uses :is() with both element selectors (for HTML custom element wrappers)
569
+ and class selectors (for React rendered SVG elements).
570
+ ========================================================================== */
571
+
572
+ /* --- All icons hidden by default --- */
573
+
574
+ .media-button--play .media-icon--restart,
575
+ .media-button--play .media-icon--play,
576
+ .media-button--play .media-icon--pause,
577
+ .media-button--mute .media-icon--volume-off,
578
+ .media-button--mute .media-icon--volume-low,
579
+ .media-button--mute .media-icon--volume-high {
580
+ display: none;
581
+ opacity: 0;
582
+ }
583
+
584
+ /* --- Active icon per state --- */
585
+
586
+ /* Play: ended → restart */
587
+ .media-button--play[data-ended] .media-icon--restart,
588
+ /* Play: paused (not ended) → play */
589
+ .media-button--play:not([data-ended])[data-paused] .media-icon--play,
590
+ /* Play: playing (not paused, not ended) → pause */
591
+ .media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
592
+ /* Mute: muted → volume off */
593
+ .media-button--mute[data-muted] .media-icon--volume-off,
594
+ /* Mute: volume low (not muted) → volume low */
595
+ .media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
596
+ /* Mute: volume high (not muted, not low) → volume high */
597
+ .media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high {
598
+ display: block;
599
+ opacity: 1;
600
+ }
601
+
602
+ /* ==========================================================================
603
+ Tooltip Label State Visibility for Audio Skins
604
+
605
+ Data-attribute-driven visibility rules for multi-state tooltip labels.
606
+ Uses adjacent sibling selectors to match button state → tooltip content.
607
+ ========================================================================== */
608
+
609
+ /* --- All multi-state labels hidden by default --- */
610
+
611
+ .media-tooltip-label {
612
+ display: none;
613
+ }
614
+
615
+ /* --- Active label per state --- */
616
+
617
+ /* Play: ended → replay */
618
+ .media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
619
+ /* Play: paused (not ended) → play */
620
+ .media-button--play:not([data-ended])[data-paused] + .media-tooltip
621
+ .media-tooltip-label--play,
622
+ /* Play: playing (not paused, not ended) → pause */
623
+ .media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
624
+ .media-tooltip-label--pause {
625
+ display: block;
626
+ }
627
+
628
+
629
+ /* ==========================================================================
630
+ Root
604
631
  ========================================================================== */
605
632
 
606
633
  .media-minimal-skin--audio {
607
634
  --media-controls-background-color: oklch(1 0 0);
608
635
  --media-controls-border-color: oklch(0 0 0 / 0.1);
609
- --media-controls-text-color: oklch(0 0 0);
636
+ --media-controls-padding: 0.375rem;
637
+ --media-text-color: var(--media-color-primary, oklch(0 0 0));
638
+ --media-error-dialog-transition-duration: 250ms;
639
+ --media-error-dialog-transition-delay: 100ms;
640
+ --media-popup-transition-duration: 100ms;
641
+ --media-popup-transition-timing-function: ease-out;
642
+
643
+ @media (prefers-reduced-motion: reduce) {
644
+ --media-error-dialog-transition-duration: 50ms;
645
+ --media-error-dialog-transition-delay: 0ms;
646
+ --media-popup-transition-duration: 0ms;
647
+ }
610
648
 
611
649
  @media (prefers-color-scheme: dark) {
612
650
  --media-controls-background-color: oklch(0 0 0);
613
651
  --media-controls-border-color: oklch(1 0 0 / 0.1);
614
- --media-controls-text-color: oklch(1 0 0);
652
+ --media-text-color: var(--media-color-primary, oklch(1 0 0));
615
653
  }
616
654
  }
655
+
656
+ /* ==========================================================================
657
+ Error Dialog
658
+ ========================================================================== */
659
+
660
+ .media-minimal-skin--audio .media-error__dialog {
661
+ position: absolute;
662
+ inset: 0;
663
+ z-index: 20;
664
+ display: flex;
665
+ align-items: center;
666
+ gap: 1rem;
667
+ padding-inline: 1.25rem 0.5rem;
668
+ transition-property: opacity, filter, scale;
669
+ transition-duration: var(--media-error-dialog-transition-duration);
670
+ transition-delay: var(--media-error-dialog-transition-delay);
671
+ transition-timing-function: ease-out;
672
+ border-radius: calc(infinity * 1px);
673
+ background-color: oklch(from var(--media-controls-background-color) l c h / 1);
674
+ }
675
+
676
+ .media-minimal-skin--audio .media-error[data-starting-style] .media-error__dialog,
677
+ .media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {
678
+ opacity: 0;
679
+ filter: blur(4px);
680
+ scale: 0.95;
681
+ }
682
+ .media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {
683
+ transition-delay: 0ms;
684
+ }
685
+
686
+ .media-minimal-skin--audio .media-error__content {
687
+ flex: 1;
688
+ display: flex;
689
+ gap: 0.5rem;
690
+ align-items: center;
691
+ }
692
+
693
+ /* ==========================================================================
694
+ Controls
695
+ ========================================================================== */
696
+
617
697
  .media-minimal-skin--audio .media-controls {
618
698
  gap: 0.5rem;
619
- padding: 0.375rem;
699
+ padding: var(--media-controls-padding);
620
700
  background-color: var(--media-controls-background-color);
621
- backdrop-filter: blur(8px) brightness(0.98) saturate(1.2);
622
- border-radius: var(--media-border-radius, 0.75rem);
623
- color: var(--media-controls-text-color);
701
+ backdrop-filter: blur(16px) saturate(1.5);
702
+ border-radius: var(--media-controls-radius);
703
+ color: var(--media-text-color);
624
704
  box-shadow: 0 0 0 1px var(--media-controls-border-color);
625
705
  }
626
706
 
@@ -9,6 +9,7 @@ import "../ui/seek-button.js";
9
9
  import "../ui/time.js";
10
10
  import "../ui/time-slider.js";
11
11
  import "../ui/tooltip.js";
12
+ import "../ui/tooltip-group.js";
12
13
  import "../ui/volume-slider.js";
13
14
  import minimal_skin_default from "../../_virtual/inline-css_src/define/audio/minimal-skin.js";
14
15
  import { ReactiveElement } from "@videojs/element";
@@ -16,85 +17,7 @@ import { ReactiveElement } from "@videojs/element";
16
17
  //#region src/define/audio/minimal-skin.ts
17
18
  const SEEK_TIME = 10;
18
19
  function getTemplateHTML() {
19
- return `
20
- <media-container class="media-minimal-skin media-minimal-skin--audio">
21
- <slot name="media"></slot>
22
-
23
- <div class="media-controls">
24
- <span class="media-button-group">
25
- <media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play">
26
- ${renderIcon("restart", { class: "media-icon media-icon--restart" })}
27
- ${renderIcon("play", { class: "media-icon media-icon--play" })}
28
- ${renderIcon("pause", { class: "media-icon media-icon--pause" })}
29
- </media-play-button>
30
- <media-tooltip id="play-tooltip" side="top" class="media-tooltip">
31
- <span class="media-tooltip-label media-tooltip-label--replay">Replay</span>
32
- <span class="media-tooltip-label media-tooltip-label--play">Play</span>
33
- <span class="media-tooltip-label media-tooltip-label--pause">Pause</span>
34
- </media-tooltip>
35
-
36
- <media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek">
37
- <span class="media-icon__container">
38
- ${renderIcon("seek", { class: "media-icon media-icon--seek media-icon--flipped" })}
39
- <span class="media-icon__label">${SEEK_TIME}</span>
40
- </span>
41
- </media-seek-button>
42
- <media-tooltip id="seek-backward-tooltip" side="top" class="media-tooltip">
43
- Seek backward ${SEEK_TIME} seconds
44
- </media-tooltip>
45
-
46
- <media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek">
47
- <span class="media-icon__container">
48
- ${renderIcon("seek", { class: "media-icon media-icon--seek" })}
49
- <span class="media-icon__label">${SEEK_TIME}</span>
50
- </span>
51
- </media-seek-button>
52
- <media-tooltip id="seek-forward-tooltip" side="top" class="media-tooltip">
53
- Seek forward ${SEEK_TIME} seconds
54
- </media-tooltip>
55
- </span>
56
-
57
- <span class="media-time-controls">
58
- <media-time-group class="media-time">
59
- <media-time type="current" class="media-time__value media-time__value--current"></media-time>
60
- <media-time-separator class="media-time__separator"></media-time-separator>
61
- <media-time type="duration" class="media-time__value media-time__value--duration"></media-time>
62
- </media-time-group>
63
-
64
- <media-time-slider class="media-slider">
65
- <media-slider-track class="media-slider__track">
66
- <media-slider-fill class="media-slider__fill"></media-slider-fill>
67
- <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
68
- </media-slider-track>
69
- <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
70
- </media-time-slider>
71
- </span>
72
-
73
- <span class="media-button-group">
74
- <media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate">
75
- </media-playback-rate-button>
76
- <media-tooltip id="playback-rate-tooltip" side="top" class="media-tooltip">
77
- Toggle playback rate
78
- </media-tooltip>
79
-
80
- <media-mute-button commandfor="audio-volume-popover" class="media-button media-button--icon media-button--mute">
81
- ${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })}
82
- ${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })}
83
- ${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })}
84
- </media-mute-button>
85
-
86
- <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="left" class="media-popover media-popover--volume">
87
- <media-volume-slider class="media-slider" orientation="horizontal" thumb-alignment="edge">
88
- <media-slider-track class="media-slider__track">
89
- <media-slider-fill class="media-slider__fill"></media-slider-fill>
90
- </media-slider-track>
91
- <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
92
- </media-volume-slider>
93
- </media-popover>
94
- </span>
95
- </div>
96
- </media-container>
97
- `;
20
+ return `<media-container class="media-minimal-skin media-minimal-skin--audio"><slot name="media"></slot><slot></slot><div class="media-controls"><media-tooltip-group><div class="media-button-group"><media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play"> ${renderIcon("restart", { class: "media-icon media-icon--restart" })} ${renderIcon("play", { class: "media-icon media-icon--play" })} ${renderIcon("pause", { class: "media-icon media-icon--pause" })} </media-play-button><media-tooltip id="play-tooltip" side="top" class="media-tooltip"><span class="media-tooltip-label media-tooltip-label--replay">Replay</span><span class="media-tooltip-label media-tooltip-label--play">Play</span><span class="media-tooltip-label media-tooltip-label--pause">Pause</span></media-tooltip><media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--subtle media-button--icon media-button--seek"> <span class="media-icon__container"> ${renderIcon("seek", { class: "media-icon media-icon--seek media-icon--flipped" })} <span class="media-icon__label">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-backward-tooltip" side="top" class="media-tooltip"> Seek backward ${SEEK_TIME} seconds </media-tooltip><media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--subtle media-button--icon media-button--seek"> <span class="media-icon__container"> ${renderIcon("seek", { class: "media-icon media-icon--seek" })} <span class="media-icon__label">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-forward-tooltip" side="top" class="media-tooltip"> Seek forward ${SEEK_TIME} seconds </media-tooltip></div><div class="media-time-controls"><media-time-group class="media-time"><media-time type="current" class="media-time__value media-time__value--current"></media-time><media-time-separator class="media-time__separator"></media-time-separator><media-time type="duration" class="media-time__value media-time__value--duration"></media-time></media-time-group><media-time-slider class="media-slider"><media-slider-track class="media-slider__track"><media-slider-fill class="media-slider__fill"></media-slider-fill><media-slider-buffer class="media-slider__buffer"></media-slider-buffer></media-slider-track><media-slider-thumb class="media-slider__thumb"></media-slider-thumb></media-time-slider></div><div class="media-button-group"><media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--subtle media-button--icon media-button--playback-rate"></media-playback-rate-button><media-tooltip id="playback-rate-tooltip" side="top" class="media-tooltip"> Toggle playback rate </media-tooltip><media-mute-button commandfor="audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute"> ${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })} ${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })} ${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })} </media-mute-button><media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="left" class="media-popover media-popover--volume"><media-volume-slider class="media-slider" orientation="horizontal" thumb-alignment="edge"><media-slider-track class="media-slider__track"><media-slider-fill class="media-slider__fill"></media-slider-fill></media-slider-track><media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb></media-volume-slider></media-popover></div></media-tooltip-group></div></media-container>`;
98
21
  }
99
22
  var MinimalAudioSkinElement = class extends SkinMixin(ReactiveElement) {
100
23
  static {