@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-default-skin *::before,
71
7
  .media-default-skin *::after {
72
8
  box-sizing: border-box;
73
- margin: 0;
74
9
  }
75
10
  .media-default-skin img,
76
11
  .media-default-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, 2rem);
100
37
  font-family:
@@ -108,10 +45,6 @@
108
45
  letter-spacing: normal;
109
46
  -webkit-font-smoothing: auto;
110
47
  -moz-osx-font-smoothing: auto;
111
-
112
- &:fullscreen {
113
- border-radius: 0;
114
- }
115
48
  }
116
49
 
117
50
  /* ==========================================================================
@@ -122,7 +55,7 @@
122
55
  background-color: var(--media-surface-background-color);
123
56
  backdrop-filter: var(--media-surface-backdrop-filter);
124
57
  box-shadow:
125
- inset 0 0 0 1px var(--media-surface-inner-border-color),
58
+ 0 0 0 1px var(--media-surface-outer-border-color),
126
59
  0 1px 3px 0 var(--media-surface-shadow-color),
127
60
  0 1px 2px -1px var(--media-surface-shadow-color);
128
61
 
@@ -133,7 +66,7 @@
133
66
  inset: 0;
134
67
  z-index: 10;
135
68
  border-radius: inherit;
136
- box-shadow: 0 0 0 1px var(--media-surface-outer-border-color);
69
+ box-shadow: inset 0 0 0 1px var(--media-surface-inner-border-color);
137
70
  pointer-events: none;
138
71
  }
139
72
 
@@ -174,57 +107,7 @@
174
107
  ========================================================================== */
175
108
 
176
109
  .media-default-skin .media-error {
177
- position: absolute;
178
- inset: 0;
179
- z-index: 20;
180
- display: flex;
181
- align-items: center;
182
- justify-content: center;
183
- }
184
-
185
- .media-default-skin .media-error__dialog {
186
- display: flex;
187
- flex-direction: column;
188
- gap: 0.75rem;
189
- max-width: 18rem;
190
- padding: 0.75rem;
191
- border-radius: 1.75rem;
192
- color: oklch(1 0 0);
193
- font-size: 0.875rem;
194
- transition-property: opacity, transform;
195
- transition-duration: 500ms;
196
- transition-delay: 100ms;
197
- transition-timing-function: linear(
198
- 0,
199
- 0.034 1.5%,
200
- 0.763 9.7%,
201
- 1.066 13.9%,
202
- 1.198 19.9%,
203
- 1.184 21.8%,
204
- 0.963 37.5%,
205
- 0.997 50.9%,
206
- 1
207
- );
208
-
209
- /* Simple, fast transition for reduced motion users */
210
- @media (prefers-reduced-motion: reduce) {
211
- transition-duration: 100ms;
212
- transition-delay: 0ms;
213
- transition-timing-function: ease-out;
214
- }
215
- }
216
-
217
- .media-default-skin .media-error[data-starting-style] .media-error__dialog,
218
- .media-default-skin .media-error[data-ending-style] .media-error__dialog {
219
- opacity: 0;
220
- transform: scale(0.5);
221
- }
222
-
223
- .media-default-skin .media-error__content {
224
- display: flex;
225
- flex-direction: column;
226
- gap: 0.5rem;
227
- padding: 0.5rem 0.5rem 0.375rem;
110
+ outline: none;
228
111
  }
229
112
 
230
113
  .media-default-skin .media-error__title {
@@ -234,6 +117,7 @@
234
117
 
235
118
  .media-default-skin .media-error__description {
236
119
  opacity: 0.7;
120
+ overflow-wrap: anywhere;
237
121
  }
238
122
 
239
123
  .media-default-skin .media-error__actions {
@@ -245,6 +129,10 @@
245
129
  }
246
130
  }
247
131
 
132
+ .media-default-skin .media-error[data-open] ~ .media-controls * {
133
+ visibility: hidden;
134
+ }
135
+
248
136
  /* ==========================================================================
249
137
  Controls
250
138
  ========================================================================== */
@@ -256,12 +144,12 @@
256
144
  gap: 0.075rem;
257
145
  padding: 0.175rem;
258
146
  border-radius: calc(infinity * 1px);
259
- --media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.25));
147
+ --media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));
260
148
  --media-controls-current-shadow-color-subtle: oklch(
261
149
  from var(--media-controls-current-shadow-color) l c h /
262
150
  calc(alpha * 0.4)
263
151
  );
264
- text-shadow: 0 0 1px var(--media-controls-current-shadow-color);
152
+ text-shadow: 0 1px 0 var(--media-controls-current-shadow-color);
265
153
 
266
154
  @container media-root (width > 40rem) {
267
155
  gap: 0.125rem;
@@ -305,25 +193,27 @@
305
193
  justify-content: center;
306
194
  flex-shrink: 0;
307
195
  padding: 0.5rem 1rem;
308
- background: oklch(1 0 0);
309
196
  border: none;
310
197
  border-radius: calc(infinity * 1px);
311
198
  outline: 2px solid transparent;
312
199
  outline-offset: -2px;
313
- color: oklch(0 0 0);
314
- font-weight: 500;
315
- text-align: center;
316
- transition-property: background-color, color, outline-offset, transform;
200
+ transition-property: background-color, outline-offset, scale;
317
201
  transition-duration: 150ms;
318
202
  transition-timing-function: ease-out;
319
203
  cursor: pointer;
320
204
  user-select: none;
205
+ text-align: center;
206
+ touch-action: manipulation;
321
207
 
322
208
  &:focus-visible {
323
- outline-color: oklch(62.3% 0.214 259.815);
209
+ outline-color: currentColor;
324
210
  outline-offset: 2px;
325
211
  }
326
212
 
213
+ &:active {
214
+ scale: 0.98;
215
+ }
216
+
327
217
  &[disabled] {
328
218
  opacity: 0.5;
329
219
  filter: grayscale(1);
@@ -335,12 +225,16 @@
335
225
  }
336
226
  }
337
227
 
338
- /* Icon button variant */
339
- .media-default-skin .media-button--icon {
340
- display: grid;
341
- width: 2.125rem;
342
- padding: 0;
343
- aspect-ratio: 1;
228
+ /* Primary button variant */
229
+ .media-default-skin .media-button--primary {
230
+ background: oklch(1 0 0);
231
+ color: oklch(0 0 0);
232
+ font-weight: 500;
233
+ text-shadow: none;
234
+ }
235
+
236
+ /* Subtle button variant */
237
+ .media-default-skin .media-button--subtle {
344
238
  background: transparent;
345
239
  color: inherit;
346
240
  text-shadow: inherit;
@@ -351,9 +245,17 @@
351
245
  background-color: oklch(from currentColor l c h / 0.1);
352
246
  text-decoration: none;
353
247
  }
248
+ }
249
+
250
+ /* Icon button variant */
251
+ .media-default-skin .media-button--icon {
252
+ display: grid;
253
+ width: 2.125rem;
254
+ padding: 0;
255
+ aspect-ratio: 1;
354
256
 
355
257
  &:active {
356
- transform: scale(0.9);
258
+ scale: 0.9;
357
259
  }
358
260
 
359
261
  & .media-icon {
@@ -367,7 +269,7 @@
367
269
  position: absolute;
368
270
  right: -1px;
369
271
  bottom: -3px;
370
- font-size: 0.75em;
272
+ font-size: 10px;
371
273
  font-weight: 480;
372
274
  font-variant-numeric: tabular-nums;
373
275
  }
@@ -427,6 +329,7 @@
427
329
  flex: 1;
428
330
  border-radius: calc(infinity * 1px);
429
331
  outline: none;
332
+ cursor: pointer;
430
333
 
431
334
  &[data-orientation="horizontal"] {
432
335
  min-width: 5rem;
@@ -463,7 +366,7 @@
463
366
  .media-default-skin .media-slider__thumb {
464
367
  z-index: 10;
465
368
  position: absolute;
466
- transform: translate(-50%, -50%);
369
+ translate: -50% -50%;
467
370
  width: 0.625rem;
468
371
  height: 0.625rem;
469
372
  background-color: currentColor;
@@ -495,6 +398,22 @@
495
398
  outline-color: oklch(from currentColor l c h / 0.25);
496
399
  outline-offset: 0;
497
400
  }
401
+
402
+ &::after {
403
+ content: "";
404
+ position: absolute;
405
+ inset: -4px;
406
+ border-radius: inherit;
407
+ box-shadow: 0 0 0 2px oklch(1 0 0);
408
+ transition-property: opacity, scale;
409
+ transition-duration: 150ms;
410
+ transition-timing-function: ease-out;
411
+ }
412
+
413
+ &:not(:focus-visible)::after {
414
+ scale: 0.5;
415
+ opacity: 0;
416
+ }
498
417
  }
499
418
 
500
419
  .media-default-skin .media-slider:active .media-slider__thumb,
@@ -559,11 +478,6 @@
559
478
  }
560
479
  }
561
480
 
562
- /* Time display within slider */
563
- .media-default-skin .media-slider__time-display {
564
- font-variant-numeric: tabular-nums;
565
- }
566
-
567
481
  /* ==========================================================================
568
482
  Popups & Tooltips
569
483
  ========================================================================== */
@@ -574,13 +488,14 @@
574
488
  border: 0;
575
489
  color: inherit;
576
490
  overflow: visible;
577
- transition-property: transform, scale, opacity, filter;
578
- transition-duration: 200ms;
491
+ transition-property: scale, opacity, filter;
492
+ transition-duration: var(--media-popup-transition-duration);
493
+ transition-timing-function: var(--media-popup-transition-timing-function);
579
494
 
580
495
  &[data-starting-style],
581
496
  &[data-ending-style] {
582
497
  opacity: 0;
583
- transform: scale(0);
498
+ scale: 0.5;
584
499
  filter: blur(8px);
585
500
  }
586
501
 
@@ -600,14 +515,58 @@
600
515
  &[data-side="right"] {
601
516
  transform-origin: left;
602
517
  }
518
+
519
+ /* Safe area between trigger and popup */
520
+ &::before {
521
+ content: "";
522
+ position: absolute;
523
+ pointer-events: inherit;
524
+ }
525
+
526
+ &[data-side="top"]::before,
527
+ &[data-side="bottom"]::before {
528
+ width: 100%;
529
+ inset-inline: 0;
530
+ }
531
+ &[data-side="top"]::before {
532
+ top: 100%;
533
+ }
534
+ &[data-side="bottom"]::before {
535
+ bottom: 100%;
536
+ }
537
+
538
+ &[data-side="left"]::before,
539
+ &[data-side="right"]::before {
540
+ height: 100%;
541
+ inset-block: 0;
542
+ }
543
+ &[data-side="left"]::before {
544
+ left: 100%;
545
+ }
546
+ &[data-side="right"]::before {
547
+ right: 100%;
548
+ }
603
549
  }
604
550
 
605
551
  .media-default-skin .media-popover {
606
552
  --media-popover-side-offset: 0.5rem;
553
+
554
+ &[data-side="top"]::before,
555
+ &[data-side="bottom"]::before {
556
+ height: var(--media-popover-side-offset);
557
+ }
558
+ &[data-side="left"]::before,
559
+ &[data-side="right"]::before {
560
+ width: var(--media-popover-side-offset);
561
+ }
607
562
  }
608
563
  .media-default-skin .media-popover--volume {
609
564
  padding: 0.625rem 0.25rem;
610
565
  border-radius: calc(infinity * 1px);
566
+
567
+ &:has(media-volume-slider[data-availability="unsupported"]) {
568
+ display: none;
569
+ }
611
570
  }
612
571
 
613
572
  .media-default-skin .media-tooltip {
@@ -615,7 +574,80 @@
615
574
  border-radius: calc(infinity * 1px);
616
575
  font-size: 0.75rem;
617
576
  white-space: nowrap;
618
- --media-tooltip-side-offset: 0.5rem;
577
+ --media-tooltip-side-offset: 0.75rem;
578
+
579
+ &[data-side="top"]::before,
580
+ &[data-side="bottom"]::before {
581
+ height: var(--media-tooltip-side-offset);
582
+ }
583
+ &[data-side="left"]::before,
584
+ &[data-side="right"]::before {
585
+ width: var(--media-tooltip-side-offset);
586
+ }
587
+ }
588
+
589
+ /* ==========================================================================
590
+ Icon State Visibility for Audio Skins
591
+
592
+ Data-attribute-driven visibility rules for multi-state icon buttons.
593
+ Uses :is() with both element selectors (for HTML custom element wrappers)
594
+ and class selectors (for React rendered SVG elements).
595
+ ========================================================================== */
596
+
597
+ /* --- All icons hidden by default --- */
598
+
599
+ .media-button--play .media-icon--restart,
600
+ .media-button--play .media-icon--play,
601
+ .media-button--play .media-icon--pause,
602
+ .media-button--mute .media-icon--volume-off,
603
+ .media-button--mute .media-icon--volume-low,
604
+ .media-button--mute .media-icon--volume-high {
605
+ display: none;
606
+ opacity: 0;
607
+ }
608
+
609
+ /* --- Active icon per state --- */
610
+
611
+ /* Play: ended → restart */
612
+ .media-button--play[data-ended] .media-icon--restart,
613
+ /* Play: paused (not ended) → play */
614
+ .media-button--play:not([data-ended])[data-paused] .media-icon--play,
615
+ /* Play: playing (not paused, not ended) → pause */
616
+ .media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
617
+ /* Mute: muted → volume off */
618
+ .media-button--mute[data-muted] .media-icon--volume-off,
619
+ /* Mute: volume low (not muted) → volume low */
620
+ .media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
621
+ /* Mute: volume high (not muted, not low) → volume high */
622
+ .media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high {
623
+ display: block;
624
+ opacity: 1;
625
+ }
626
+
627
+ /* ==========================================================================
628
+ Tooltip Label State Visibility for Audio Skins
629
+
630
+ Data-attribute-driven visibility rules for multi-state tooltip labels.
631
+ Uses adjacent sibling selectors to match button state → tooltip content.
632
+ ========================================================================== */
633
+
634
+ /* --- All multi-state labels hidden by default --- */
635
+
636
+ .media-tooltip-label {
637
+ display: none;
638
+ }
639
+
640
+ /* --- Active label per state --- */
641
+
642
+ /* Play: ended → replay */
643
+ .media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
644
+ /* Play: paused (not ended) → play */
645
+ .media-button--play:not([data-ended])[data-paused] + .media-tooltip
646
+ .media-tooltip-label--play,
647
+ /* Play: playing (not paused, not ended) → pause */
648
+ .media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
649
+ .media-tooltip-label--pause {
650
+ display: block;
619
651
  }
620
652
 
621
653
 
@@ -629,27 +661,76 @@
629
661
  --media-surface-inner-border-color: oklch(1 0 0 / 0.1);
630
662
  --media-surface-outer-border-color: oklch(0 0 0 / 0.05);
631
663
  --media-surface-shadow-color: oklch(0 0 0 / 0.15);
632
- --media-surface-backdrop-filter: blur(8px) brightness(0.98) saturate(1.2);
664
+ --media-surface-backdrop-filter: blur(16px) saturate(1.5);
665
+ --media-text-color: var(--media-color-primary, oklch(0 0 0));
666
+ --media-error-dialog-transition-duration: 250ms;
667
+ --media-error-dialog-transition-delay: 100ms;
668
+ --media-popup-transition-duration: 100ms;
669
+ --media-popup-transition-timing-function: ease-out;
670
+
671
+ @media (prefers-reduced-motion: reduce) {
672
+ --media-error-dialog-transition-duration: 50ms;
673
+ --media-error-dialog-transition-delay: 0ms;
674
+ --media-popup-transition-duration: 0ms;
675
+ }
633
676
 
634
677
  @media (prefers-color-scheme: dark) {
635
678
  --media-border-color: oklch(1 0 0 / 0.1);
636
679
  --media-surface-background-color: oklch(0 0 0 / 0.4);
680
+ --media-text-color: var(--media-color-primary, oklch(1 0 0));
637
681
  }
638
682
  }
639
683
 
640
684
  /* ==========================================================================
641
- Controls
685
+ Error Dialog
642
686
  ========================================================================== */
643
687
 
688
+ .media-default-skin--audio .media-error__dialog {
689
+ position: absolute;
690
+ inset: 0;
691
+ z-index: 20;
692
+ display: flex;
693
+ align-items: center;
694
+ gap: 0.75rem;
695
+ padding-inline: 1.25rem 0.125rem;
696
+ transition-property: opacity, filter;
697
+ transition-duration: var(--media-error-dialog-transition-duration);
698
+ transition-delay: var(--media-error-dialog-transition-delay);
699
+ transition-timing-function: ease-out;
700
+ border-radius: calc(infinity * 1px);
701
+ background-color: var(--media-surface-background-color);
702
+ backdrop-filter: var(--media-surface-backdrop-filter);
703
+ color: var(--media-text-color);
704
+ }
705
+
706
+ .media-default-skin .media-error[data-starting-style] .media-error__dialog,
707
+ .media-default-skin .media-error[data-ending-style] .media-error__dialog {
708
+ opacity: 0;
709
+ filter: blur(4px);
710
+ }
711
+ .media-default-skin .media-error[data-ending-style] .media-error__dialog {
712
+ transition-delay: 0ms;
713
+ }
714
+
715
+ .media-default-skin--audio .media-error__content {
716
+ flex: 1;
717
+ display: flex;
718
+ gap: 0.5rem;
719
+ align-items: center;
720
+ }
721
+
722
+ /* ==========================================================================
723
+ Controls
724
+ ========================================================================== */
725
+
644
726
  .media-default-skin--audio .media-controls {
645
- @media (prefers-color-scheme: dark) {
646
- color: oklch(1 0 0);
647
- }
727
+ color: var(--media-text-color);
648
728
  }
649
729
 
650
730
  /* ==========================================================================
651
731
  Sliders
652
732
  ========================================================================== */
733
+
653
734
  .media-default-skin--audio .media-slider__track {
654
735
  background-color: oklch(0 0 0 / 0.1);
655
736
 
@@ -8,6 +8,7 @@ import "../ui/seek-button.js";
8
8
  import "../ui/time.js";
9
9
  import "../ui/time-slider.js";
10
10
  import "../ui/tooltip.js";
11
+ import "../ui/tooltip-group.js";
11
12
  import "../ui/volume-slider.js";
12
13
  import { renderIcon } from "../../icons/dist/render/default/index.js";
13
14
  import skin_default from "../../_virtual/inline-css_src/define/audio/skin.js";
@@ -16,76 +17,7 @@ import { ReactiveElement } from "@videojs/element";
16
17
  //#region src/define/audio/skin.ts
17
18
  const SEEK_TIME = 10;
18
19
  function getTemplateHTML() {
19
- return `
20
- <media-container class="media-default-skin media-default-skin--audio">
21
- <slot name="media"></slot>
22
-
23
- <div class="media-surface media-controls">
24
- <media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play">
25
- ${renderIcon("restart", { class: "media-icon media-icon--restart" })}
26
- ${renderIcon("play", { class: "media-icon media-icon--play" })}
27
- ${renderIcon("pause", { class: "media-icon media-icon--pause" })}
28
- </media-play-button>
29
- <media-tooltip id="play-tooltip" side="top" class="media-surface media-tooltip">
30
- <span class="media-tooltip-label media-tooltip-label--replay">Replay</span>
31
- <span class="media-tooltip-label media-tooltip-label--play">Play</span>
32
- <span class="media-tooltip-label media-tooltip-label--pause">Pause</span>
33
- </media-tooltip>
34
-
35
- <media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek">
36
- <span class="media-icon__container">
37
- ${renderIcon("seek", { class: "media-icon media-icon--seek media-icon--flipped" })}
38
- <span class="media-icon__label">${SEEK_TIME}</span>
39
- </span>
40
- </media-seek-button>
41
- <media-tooltip id="seek-backward-tooltip" side="top" class="media-surface media-tooltip">
42
- Seek backward ${SEEK_TIME} seconds
43
- </media-tooltip>
44
-
45
- <media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek">
46
- <span class="media-icon__container">
47
- ${renderIcon("seek", { class: "media-icon media-icon--seek" })}
48
- <span class="media-icon__label">${SEEK_TIME}</span>
49
- </span>
50
- </media-seek-button>
51
- <media-tooltip id="seek-forward-tooltip" side="top" class="media-surface media-tooltip">
52
- Seek forward ${SEEK_TIME} seconds
53
- </media-tooltip>
54
-
55
- <media-time-group class="media-time">
56
- <media-time type="current" class="media-time__value"></media-time>
57
- <media-time-slider class="media-slider">
58
- <media-slider-track class="media-slider__track">
59
- <media-slider-fill class="media-slider__fill"></media-slider-fill>
60
- <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
61
- </media-slider-track>
62
- <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
63
- </media-time-slider>
64
- <media-time type="duration" class="media-time__value"></media-time>
65
- </media-time-group>
66
-
67
- <media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate"></media-playback-rate-button>
68
- <media-tooltip id="playback-rate-tooltip" side="top" class="media-surface media-tooltip">
69
- Toggle playback rate
70
- </media-tooltip>
71
-
72
- <media-mute-button commandfor="audio-volume-popover" class="media-button media-button--icon media-button--mute">
73
- ${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })}
74
- ${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })}
75
- ${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })}
76
- </media-mute-button>
77
-
78
- <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-surface media-popover media-popover--volume">
79
- <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
80
- <media-slider-track class="media-slider__track">
81
- <media-slider-fill class="media-slider__fill"></media-slider-fill>
82
- </media-slider-track>
83
- <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
84
- </media-volume-slider>
85
- </media-popover>
86
- </div>
87
- </media-container>
88
- `;
20
+ return `<media-container class="media-default-skin media-default-skin--audio"><slot name="media"></slot><slot></slot><div class="media-surface media-controls"><media-tooltip-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-surface 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-surface 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-surface media-tooltip"> Seek forward ${SEEK_TIME} seconds </media-tooltip><media-time-group class="media-time"><media-time type="current" class="media-time__value"></media-time><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><media-time type="duration" class="media-time__value"></media-time></media-time-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-surface 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="top" class="media-surface media-popover media-popover--volume"><media-volume-slider class="media-slider" orientation="vertical" 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></media-tooltip-group></div></media-container>`;
89
21
  }
90
22
  var AudioSkinElement = class extends SkinMixin(ReactiveElement) {
91
23
  static {