@videojs/react 10.0.0-beta.22 → 10.0.0-beta.24

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 (897) hide show
  1. package/README.md +6 -0
  2. package/dist/default/icons/dist/react/default/captions-off.js +1 -0
  3. package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
  4. package/dist/default/icons/dist/react/default/captions-on.js +3 -5
  5. package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
  6. package/dist/default/icons/dist/react/default/cast-enter.js +38 -11
  7. package/dist/default/icons/dist/react/default/cast-enter.js.map +1 -1
  8. package/dist/default/icons/dist/react/default/cast-exit.js +55 -14
  9. package/dist/default/icons/dist/react/default/cast-exit.js.map +1 -1
  10. package/dist/default/icons/dist/react/default/check.js +22 -0
  11. package/dist/default/icons/dist/react/default/check.js.map +1 -0
  12. package/dist/default/icons/dist/react/default/chevron.js +21 -0
  13. package/dist/default/icons/dist/react/default/chevron.js.map +1 -0
  14. package/dist/default/icons/dist/react/default/fullscreen-enter.js +3 -5
  15. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  16. package/dist/default/icons/dist/react/default/fullscreen-exit.js +3 -5
  17. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  18. package/dist/default/icons/dist/react/default/pause.js +2 -3
  19. package/dist/default/icons/dist/react/default/pause.js.map +1 -1
  20. package/dist/default/icons/dist/react/default/pip-enter.js +4 -10
  21. package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -1
  22. package/dist/default/icons/dist/react/default/pip-exit.js +4 -10
  23. package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -1
  24. package/dist/default/icons/dist/react/default/play.js +3 -5
  25. package/dist/default/icons/dist/react/default/play.js.map +1 -1
  26. package/dist/default/icons/dist/react/default/restart.js +3 -8
  27. package/dist/default/icons/dist/react/default/restart.js.map +1 -1
  28. package/dist/default/icons/dist/react/default/seek.js +3 -5
  29. package/dist/default/icons/dist/react/default/seek.js.map +1 -1
  30. package/dist/default/icons/dist/react/default/spinner.js +38 -117
  31. package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
  32. package/dist/default/icons/dist/react/default/volume-high.js +3 -8
  33. package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
  34. package/dist/default/icons/dist/react/default/volume-low.js +3 -5
  35. package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
  36. package/dist/default/icons/dist/react/default/volume-off.js +3 -5
  37. package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
  38. package/dist/default/icons/dist/react/minimal/captions-off.js +1 -0
  39. package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
  40. package/dist/default/icons/dist/react/minimal/captions-on.js +3 -5
  41. package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
  42. package/dist/default/icons/dist/react/minimal/cast-enter.js +38 -7
  43. package/dist/default/icons/dist/react/minimal/cast-enter.js.map +1 -1
  44. package/dist/default/icons/dist/react/minimal/cast-exit.js +56 -11
  45. package/dist/default/icons/dist/react/minimal/cast-exit.js.map +1 -1
  46. package/dist/default/icons/dist/react/minimal/check.js +22 -0
  47. package/dist/default/icons/dist/react/minimal/check.js.map +1 -0
  48. package/dist/default/icons/dist/react/minimal/chevron.js +21 -0
  49. package/dist/default/icons/dist/react/minimal/chevron.js.map +1 -0
  50. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +5 -13
  51. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  52. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +5 -13
  53. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  54. package/dist/default/icons/dist/react/minimal/pause.js +2 -3
  55. package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
  56. package/dist/default/icons/dist/react/minimal/pip-enter.js +5 -14
  57. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -1
  58. package/dist/default/icons/dist/react/minimal/pip-exit.js +5 -14
  59. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -1
  60. package/dist/default/icons/dist/react/minimal/play.js +3 -5
  61. package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
  62. package/dist/default/icons/dist/react/minimal/restart.js +3 -8
  63. package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
  64. package/dist/default/icons/dist/react/minimal/seek.js +3 -5
  65. package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
  66. package/dist/default/icons/dist/react/minimal/spinner.js +38 -117
  67. package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
  68. package/dist/default/icons/dist/react/minimal/volume-high.js +3 -8
  69. package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
  70. package/dist/default/icons/dist/react/minimal/volume-low.js +3 -5
  71. package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
  72. package/dist/default/icons/dist/react/minimal/volume-off.js +3 -5
  73. package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
  74. package/dist/default/icons/index.js +19 -0
  75. package/dist/default/icons/minimal/index.js +19 -0
  76. package/dist/default/index.js +20 -12
  77. package/dist/default/media/dash-video/index.js +6 -6
  78. package/dist/default/media/dash-video/index.js.map +1 -1
  79. package/dist/default/media/hls-video/index.js +6 -6
  80. package/dist/default/media/hls-video/index.js.map +1 -1
  81. package/dist/default/media/mux-audio/index.js +9 -8
  82. package/dist/default/media/mux-audio/index.js.map +1 -1
  83. package/dist/default/media/mux-video/index.js +6 -6
  84. package/dist/default/media/mux-video/index.js.map +1 -1
  85. package/dist/default/media/native-hls-video/index.js +6 -6
  86. package/dist/default/media/native-hls-video/index.js.map +1 -1
  87. package/dist/default/media/simple-hls-video/index.js +6 -5
  88. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  89. package/dist/default/player/context.js +9 -1
  90. package/dist/default/player/context.js.map +1 -1
  91. package/dist/default/player/create-player.js +4 -1
  92. package/dist/default/player/create-player.js.map +1 -1
  93. package/dist/default/presets/audio/minimal-skin.css +211 -100
  94. package/dist/default/presets/audio/minimal-skin.js +107 -7
  95. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  96. package/dist/default/presets/audio/minimal-skin.tailwind.js +41 -7
  97. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  98. package/dist/default/presets/audio/skin.css +237 -100
  99. package/dist/default/presets/audio/skin.js +57 -22
  100. package/dist/default/presets/audio/skin.js.map +1 -1
  101. package/dist/default/presets/audio/skin.tailwind.js +115 -14
  102. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  103. package/dist/default/presets/live-audio/index.js +7 -0
  104. package/dist/default/presets/live-audio/minimal-skin.css +846 -0
  105. package/dist/default/presets/live-audio/minimal-skin.js +164 -0
  106. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -0
  107. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +194 -0
  108. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -0
  109. package/dist/default/presets/live-audio/skin.css +888 -0
  110. package/dist/default/presets/live-audio/skin.js +163 -0
  111. package/dist/default/presets/live-audio/skin.js.map +1 -0
  112. package/dist/default/presets/live-audio/skin.tailwind.js +193 -0
  113. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -0
  114. package/dist/default/presets/live-video/index.js +7 -0
  115. package/dist/default/presets/live-video/minimal-skin.css +1542 -0
  116. package/dist/default/presets/live-video/minimal-skin.js +306 -0
  117. package/dist/default/presets/live-video/minimal-skin.js.map +1 -0
  118. package/dist/default/presets/live-video/minimal-skin.tailwind.js +341 -0
  119. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -0
  120. package/dist/default/presets/live-video/skin.css +1544 -0
  121. package/dist/default/presets/live-video/skin.js +304 -0
  122. package/dist/default/presets/live-video/skin.js.map +1 -0
  123. package/dist/default/presets/live-video/skin.tailwind.js +426 -0
  124. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -0
  125. package/dist/default/presets/video/minimal-skin.css +555 -139
  126. package/dist/default/presets/video/minimal-skin.js +205 -23
  127. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  128. package/dist/default/presets/video/minimal-skin.tailwind.js +209 -24
  129. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  130. package/dist/default/presets/video/skin.css +565 -137
  131. package/dist/default/presets/video/skin.js +124 -52
  132. package/dist/default/presets/video/skin.js.map +1 -1
  133. package/dist/default/presets/video/skin.tailwind.js +208 -29
  134. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  135. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +3 -2
  136. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  137. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  138. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  139. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -2
  140. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  141. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  142. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  143. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -1
  144. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  145. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js +40 -0
  146. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -0
  147. package/dist/default/skins/dist/default/default/tailwind/components/menu.js +12 -0
  148. package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -0
  149. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  150. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  151. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +1 -1
  152. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
  153. package/dist/default/skins/dist/default/default/tailwind/components/reset.js +7 -0
  154. package/dist/default/skins/dist/default/default/tailwind/components/reset.js.map +1 -0
  155. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -1
  156. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  157. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +1 -1
  158. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  159. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +13 -4
  160. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  161. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +5 -3
  162. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  163. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  164. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  165. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +3 -2
  166. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  167. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  168. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  169. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
  170. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  171. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js +41 -0
  172. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -0
  173. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +12 -0
  174. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -0
  175. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  176. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  177. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +1 -1
  178. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
  179. package/dist/default/skins/dist/default/minimal/tailwind/components/reset.js +7 -0
  180. package/dist/default/skins/dist/default/minimal/tailwind/components/reset.js.map +1 -0
  181. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -1
  182. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  183. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  184. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  185. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -4
  186. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  187. package/dist/default/tailwind.css +66 -0
  188. package/dist/default/ui/cast-button/cast-button.js +2 -2
  189. package/dist/default/ui/cast-button/cast-button.js.map +1 -1
  190. package/dist/default/ui/controls/context.js +4 -1
  191. package/dist/default/ui/controls/context.js.map +1 -1
  192. package/dist/default/ui/gesture/{media-gesture.js → gesture.js} +8 -5
  193. package/dist/default/ui/gesture/gesture.js.map +1 -0
  194. package/dist/default/ui/gesture/index.js +2 -0
  195. package/dist/default/ui/hotkey/{media-hotkey.js → hotkey.js} +7 -4
  196. package/dist/default/ui/hotkey/hotkey.js.map +1 -0
  197. package/dist/default/ui/hotkey/index.js +2 -0
  198. package/dist/default/ui/input-indicators/use-indicator-visibility.js +25 -0
  199. package/dist/default/ui/input-indicators/use-indicator-visibility.js.map +1 -0
  200. package/dist/default/ui/input-indicators/use-input-action-subscription.js +22 -0
  201. package/dist/default/ui/input-indicators/use-input-action-subscription.js.map +1 -0
  202. package/dist/default/ui/input-indicators/use-input-indicator-root.js +21 -0
  203. package/dist/default/ui/input-indicators/use-input-indicator-root.js.map +1 -0
  204. package/dist/default/ui/input-indicators/use-rendered-indicator-state.js +40 -0
  205. package/dist/default/ui/input-indicators/use-rendered-indicator-state.js.map +1 -0
  206. package/dist/default/ui/live-button/index.js +2 -0
  207. package/dist/default/ui/live-button/live-button.js +89 -0
  208. package/dist/default/ui/live-button/live-button.js.map +1 -0
  209. package/dist/default/ui/menu/context.js +29 -0
  210. package/dist/default/ui/menu/context.js.map +1 -0
  211. package/dist/default/ui/menu/index.js +3 -0
  212. package/dist/default/ui/menu/index.parts.js +34 -0
  213. package/dist/default/ui/menu/index.parts.js.map +1 -0
  214. package/dist/default/ui/menu/menu-back.js +31 -0
  215. package/dist/default/ui/menu/menu-back.js.map +1 -0
  216. package/dist/default/ui/menu/menu-checkbox-item.js +50 -0
  217. package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -0
  218. package/dist/default/ui/menu/menu-content.js +284 -0
  219. package/dist/default/ui/menu/menu-content.js.map +1 -0
  220. package/dist/default/ui/menu/menu-group.js +26 -0
  221. package/dist/default/ui/menu/menu-group.js.map +1 -0
  222. package/dist/default/ui/menu/menu-item-indicator.js +24 -0
  223. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -0
  224. package/dist/default/ui/menu/menu-item.js +53 -0
  225. package/dist/default/ui/menu/menu-item.js.map +1 -0
  226. package/dist/default/ui/menu/menu-label.js +23 -0
  227. package/dist/default/ui/menu/menu-label.js.map +1 -0
  228. package/dist/default/ui/menu/menu-radio-group.js +33 -0
  229. package/dist/default/ui/menu/menu-radio-group.js.map +1 -0
  230. package/dist/default/ui/menu/menu-radio-item.js +57 -0
  231. package/dist/default/ui/menu/menu-radio-item.js.map +1 -0
  232. package/dist/default/ui/menu/menu-root.js +136 -0
  233. package/dist/default/ui/menu/menu-root.js.map +1 -0
  234. package/dist/default/ui/menu/menu-separator.js +23 -0
  235. package/dist/default/ui/menu/menu-separator.js.map +1 -0
  236. package/dist/default/ui/menu/menu-trigger.js +124 -0
  237. package/dist/default/ui/menu/menu-trigger.js.map +1 -0
  238. package/dist/default/ui/menu/menu-view.js +23 -0
  239. package/dist/default/ui/menu/menu-view.js.map +1 -0
  240. package/dist/default/ui/playback-rate-menu/context.js +20 -0
  241. package/dist/default/ui/playback-rate-menu/context.js.map +1 -0
  242. package/dist/default/ui/playback-rate-menu/index.js +3 -0
  243. package/dist/default/ui/playback-rate-menu/index.parts.js +17 -0
  244. package/dist/default/ui/playback-rate-menu/index.parts.js.map +1 -0
  245. package/dist/default/ui/playback-rate-menu/playback-rate-menu-content.js +28 -0
  246. package/dist/default/ui/playback-rate-menu/playback-rate-menu-content.js.map +1 -0
  247. package/dist/default/ui/playback-rate-menu/playback-rate-menu-root.js +36 -0
  248. package/dist/default/ui/playback-rate-menu/playback-rate-menu-root.js.map +1 -0
  249. package/dist/default/ui/playback-rate-menu/playback-rate-menu-trigger.js +51 -0
  250. package/dist/default/ui/playback-rate-menu/playback-rate-menu-trigger.js.map +1 -0
  251. package/dist/default/ui/playback-rate-menu/use-playback-rate-menu.js +27 -0
  252. package/dist/default/ui/playback-rate-menu/use-playback-rate-menu.js.map +1 -0
  253. package/dist/default/ui/popover/context.js.map +1 -1
  254. package/dist/default/ui/popover/popover-popup.js +20 -7
  255. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  256. package/dist/default/ui/popover/popover-root.js +20 -5
  257. package/dist/default/ui/popover/popover-root.js.map +1 -1
  258. package/dist/default/ui/seek-indicator/context.js +20 -0
  259. package/dist/default/ui/seek-indicator/context.js.map +1 -0
  260. package/dist/default/ui/seek-indicator/index.js +2 -0
  261. package/dist/default/ui/seek-indicator/index.parts.js +12 -0
  262. package/dist/default/ui/seek-indicator/index.parts.js.map +1 -0
  263. package/dist/default/ui/seek-indicator/seek-indicator-root.js +30 -0
  264. package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -0
  265. package/dist/default/ui/seek-indicator/seek-indicator-value.js +23 -0
  266. package/dist/default/ui/seek-indicator/seek-indicator-value.js.map +1 -0
  267. package/dist/default/ui/slider/context.js.map +1 -1
  268. package/dist/default/ui/status-announcer/index.js +2 -0
  269. package/dist/default/ui/status-announcer/status-announcer.js +36 -0
  270. package/dist/default/ui/status-announcer/status-announcer.js.map +1 -0
  271. package/dist/default/ui/status-indicator/context.js +20 -0
  272. package/dist/default/ui/status-indicator/context.js.map +1 -0
  273. package/dist/default/ui/status-indicator/index.js +2 -0
  274. package/dist/default/ui/status-indicator/index.parts.js +12 -0
  275. package/dist/default/ui/status-indicator/index.parts.js.map +1 -0
  276. package/dist/default/ui/status-indicator/status-indicator-root.js +34 -0
  277. package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -0
  278. package/dist/default/ui/status-indicator/status-indicator-value.js +23 -0
  279. package/dist/default/ui/status-indicator/status-indicator-value.js.map +1 -0
  280. package/dist/default/ui/tooltip/context.js.map +1 -1
  281. package/dist/default/ui/tooltip/tooltip-popup.js +20 -7
  282. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  283. package/dist/default/ui/tooltip/tooltip-root.js +16 -4
  284. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  285. package/dist/default/ui/volume-indicator/context.js +20 -0
  286. package/dist/default/ui/volume-indicator/context.js.map +1 -0
  287. package/dist/default/ui/volume-indicator/index.js +2 -0
  288. package/dist/default/ui/volume-indicator/index.parts.js +14 -0
  289. package/dist/default/ui/volume-indicator/index.parts.js.map +1 -0
  290. package/dist/default/ui/volume-indicator/volume-indicator-fill.js +36 -0
  291. package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -0
  292. package/dist/default/ui/volume-indicator/volume-indicator-root.js +30 -0
  293. package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -0
  294. package/dist/default/ui/volume-indicator/volume-indicator-value.js +23 -0
  295. package/dist/default/ui/volume-indicator/volume-indicator-value.js.map +1 -0
  296. package/dist/default/utils/use-attach-media.js +14 -0
  297. package/dist/default/utils/use-attach-media.js.map +1 -0
  298. package/dist/default/utils/use-render.js.map +1 -1
  299. package/dist/default/utils/use-sync-props.js +14 -0
  300. package/dist/default/utils/use-sync-props.js.map +1 -0
  301. package/dist/dev/icons/dist/react/default/captions-off.js +1 -0
  302. package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
  303. package/dist/dev/icons/dist/react/default/captions-on.js +3 -5
  304. package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
  305. package/dist/dev/icons/dist/react/default/cast-enter.js +38 -11
  306. package/dist/dev/icons/dist/react/default/cast-enter.js.map +1 -1
  307. package/dist/dev/icons/dist/react/default/cast-exit.js +55 -14
  308. package/dist/dev/icons/dist/react/default/cast-exit.js.map +1 -1
  309. package/dist/dev/icons/dist/react/default/check.js +22 -0
  310. package/dist/dev/icons/dist/react/default/check.js.map +1 -0
  311. package/dist/dev/icons/dist/react/default/chevron.js +21 -0
  312. package/dist/dev/icons/dist/react/default/chevron.js.map +1 -0
  313. package/dist/dev/icons/dist/react/default/fullscreen-enter.js +3 -5
  314. package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  315. package/dist/dev/icons/dist/react/default/fullscreen-exit.js +3 -5
  316. package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  317. package/dist/dev/icons/dist/react/default/index.d.ts +23 -0
  318. package/dist/dev/icons/dist/react/default/index.d.ts.map +1 -0
  319. package/dist/dev/icons/dist/react/default/pause.js +2 -3
  320. package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
  321. package/dist/dev/icons/dist/react/default/pip-enter.js +4 -10
  322. package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -1
  323. package/dist/dev/icons/dist/react/default/pip-exit.js +4 -10
  324. package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -1
  325. package/dist/dev/icons/dist/react/default/play.js +3 -5
  326. package/dist/dev/icons/dist/react/default/play.js.map +1 -1
  327. package/dist/dev/icons/dist/react/default/restart.js +3 -8
  328. package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
  329. package/dist/dev/icons/dist/react/default/seek.js +3 -5
  330. package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
  331. package/dist/dev/icons/dist/react/default/spinner.js +38 -117
  332. package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
  333. package/dist/dev/icons/dist/react/default/volume-high.js +3 -8
  334. package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
  335. package/dist/dev/icons/dist/react/default/volume-low.js +3 -5
  336. package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
  337. package/dist/dev/icons/dist/react/default/volume-off.js +3 -5
  338. package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
  339. package/dist/dev/icons/dist/react/minimal/captions-off.js +1 -0
  340. package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
  341. package/dist/dev/icons/dist/react/minimal/captions-on.js +3 -5
  342. package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
  343. package/dist/dev/icons/dist/react/minimal/cast-enter.js +38 -7
  344. package/dist/dev/icons/dist/react/minimal/cast-enter.js.map +1 -1
  345. package/dist/dev/icons/dist/react/minimal/cast-exit.js +56 -11
  346. package/dist/dev/icons/dist/react/minimal/cast-exit.js.map +1 -1
  347. package/dist/dev/icons/dist/react/minimal/check.js +22 -0
  348. package/dist/dev/icons/dist/react/minimal/check.js.map +1 -0
  349. package/dist/dev/icons/dist/react/minimal/chevron.js +21 -0
  350. package/dist/dev/icons/dist/react/minimal/chevron.js.map +1 -0
  351. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +5 -13
  352. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  353. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +5 -13
  354. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  355. package/dist/dev/icons/dist/react/minimal/index.d.ts +23 -0
  356. package/dist/dev/icons/dist/react/minimal/index.d.ts.map +1 -0
  357. package/dist/dev/icons/dist/react/minimal/pause.js +2 -3
  358. package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
  359. package/dist/dev/icons/dist/react/minimal/pip-enter.js +5 -14
  360. package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -1
  361. package/dist/dev/icons/dist/react/minimal/pip-exit.js +5 -14
  362. package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -1
  363. package/dist/dev/icons/dist/react/minimal/play.js +3 -5
  364. package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
  365. package/dist/dev/icons/dist/react/minimal/restart.js +3 -8
  366. package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
  367. package/dist/dev/icons/dist/react/minimal/seek.js +3 -5
  368. package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
  369. package/dist/dev/icons/dist/react/minimal/spinner.js +38 -117
  370. package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
  371. package/dist/dev/icons/dist/react/minimal/volume-high.js +3 -8
  372. package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
  373. package/dist/dev/icons/dist/react/minimal/volume-low.js +3 -5
  374. package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
  375. package/dist/dev/icons/dist/react/minimal/volume-off.js +3 -5
  376. package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
  377. package/dist/dev/icons/index.d.ts +2 -0
  378. package/dist/dev/icons/index.js +19 -0
  379. package/dist/dev/icons/minimal/index.d.ts +2 -0
  380. package/dist/dev/icons/minimal/index.js +19 -0
  381. package/dist/dev/index.d.ts +28 -12
  382. package/dist/dev/index.js +20 -12
  383. package/dist/dev/media/audio.d.ts +2 -2
  384. package/dist/dev/media/audio.d.ts.map +1 -1
  385. package/dist/dev/media/background-video/index.d.ts +2 -2
  386. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  387. package/dist/dev/media/dash-video/index.d.ts +7 -8
  388. package/dist/dev/media/dash-video/index.d.ts.map +1 -1
  389. package/dist/dev/media/dash-video/index.js +6 -6
  390. package/dist/dev/media/dash-video/index.js.map +1 -1
  391. package/dist/dev/media/hls-video/index.d.ts +7 -8
  392. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  393. package/dist/dev/media/hls-video/index.js +6 -6
  394. package/dist/dev/media/hls-video/index.js.map +1 -1
  395. package/dist/dev/media/mux-audio/index.d.ts +11 -9
  396. package/dist/dev/media/mux-audio/index.d.ts.map +1 -1
  397. package/dist/dev/media/mux-audio/index.js +9 -8
  398. package/dist/dev/media/mux-audio/index.js.map +1 -1
  399. package/dist/dev/media/mux-video/index.d.ts +7 -8
  400. package/dist/dev/media/mux-video/index.d.ts.map +1 -1
  401. package/dist/dev/media/mux-video/index.js +6 -6
  402. package/dist/dev/media/mux-video/index.js.map +1 -1
  403. package/dist/dev/media/native-hls-video/index.d.ts +7 -8
  404. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -1
  405. package/dist/dev/media/native-hls-video/index.js +6 -6
  406. package/dist/dev/media/native-hls-video/index.js.map +1 -1
  407. package/dist/dev/media/simple-hls-video/index.d.ts +7 -6
  408. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  409. package/dist/dev/media/simple-hls-video/index.js +6 -5
  410. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  411. package/dist/dev/media/video.d.ts +2 -2
  412. package/dist/dev/media/video.d.ts.map +1 -1
  413. package/dist/dev/player/context.d.ts +7 -4
  414. package/dist/dev/player/context.d.ts.map +1 -1
  415. package/dist/dev/player/context.js +9 -1
  416. package/dist/dev/player/context.js.map +1 -1
  417. package/dist/dev/player/create-player.d.ts.map +1 -1
  418. package/dist/dev/player/create-player.js +4 -1
  419. package/dist/dev/player/create-player.js.map +1 -1
  420. package/dist/dev/presets/audio/minimal-skin.css +211 -100
  421. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  422. package/dist/dev/presets/audio/minimal-skin.js +107 -7
  423. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  424. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  425. package/dist/dev/presets/audio/minimal-skin.tailwind.js +41 -7
  426. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  427. package/dist/dev/presets/audio/skin.css +237 -100
  428. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  429. package/dist/dev/presets/audio/skin.js +57 -22
  430. package/dist/dev/presets/audio/skin.js.map +1 -1
  431. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  432. package/dist/dev/presets/audio/skin.tailwind.js +115 -14
  433. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  434. package/dist/dev/presets/background/skin.d.ts +2 -2
  435. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  436. package/dist/dev/presets/live-audio/index.d.ts +7 -0
  437. package/dist/dev/presets/live-audio/index.js +7 -0
  438. package/dist/dev/presets/live-audio/minimal-skin.css +846 -0
  439. package/dist/dev/presets/live-audio/minimal-skin.d.ts +16 -0
  440. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -0
  441. package/dist/dev/presets/live-audio/minimal-skin.js +164 -0
  442. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -0
  443. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts +8 -0
  444. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
  445. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +194 -0
  446. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -0
  447. package/dist/dev/presets/live-audio/skin.css +888 -0
  448. package/dist/dev/presets/live-audio/skin.d.ts +15 -0
  449. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -0
  450. package/dist/dev/presets/live-audio/skin.js +163 -0
  451. package/dist/dev/presets/live-audio/skin.js.map +1 -0
  452. package/dist/dev/presets/live-audio/skin.tailwind.d.ts +8 -0
  453. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -0
  454. package/dist/dev/presets/live-audio/skin.tailwind.js +193 -0
  455. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -0
  456. package/dist/dev/presets/live-video/index.d.ts +7 -0
  457. package/dist/dev/presets/live-video/index.js +7 -0
  458. package/dist/dev/presets/live-video/minimal-skin.css +1542 -0
  459. package/dist/dev/presets/live-video/minimal-skin.d.ts +16 -0
  460. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -0
  461. package/dist/dev/presets/live-video/minimal-skin.js +306 -0
  462. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -0
  463. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts +8 -0
  464. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -0
  465. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +341 -0
  466. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -0
  467. package/dist/dev/presets/live-video/skin.css +1544 -0
  468. package/dist/dev/presets/live-video/skin.d.ts +15 -0
  469. package/dist/dev/presets/live-video/skin.d.ts.map +1 -0
  470. package/dist/dev/presets/live-video/skin.js +304 -0
  471. package/dist/dev/presets/live-video/skin.js.map +1 -0
  472. package/dist/dev/presets/live-video/skin.tailwind.d.ts +8 -0
  473. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -0
  474. package/dist/dev/presets/live-video/skin.tailwind.js +426 -0
  475. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -0
  476. package/dist/dev/presets/video/minimal-skin.css +555 -139
  477. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  478. package/dist/dev/presets/video/minimal-skin.js +205 -23
  479. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  480. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  481. package/dist/dev/presets/video/minimal-skin.tailwind.js +209 -24
  482. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  483. package/dist/dev/presets/video/skin.css +565 -137
  484. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  485. package/dist/dev/presets/video/skin.js +124 -52
  486. package/dist/dev/presets/video/skin.js.map +1 -1
  487. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  488. package/dist/dev/presets/video/skin.tailwind.js +208 -29
  489. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  490. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +3 -2
  491. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  492. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  493. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  494. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -2
  495. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  496. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
  497. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  498. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -1
  499. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  500. package/dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js +40 -0
  501. package/dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -0
  502. package/dist/dev/skins/dist/default/default/tailwind/components/menu.js +12 -0
  503. package/dist/dev/skins/dist/default/default/tailwind/components/menu.js.map +1 -0
  504. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  505. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  506. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +1 -1
  507. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
  508. package/dist/dev/skins/dist/default/default/tailwind/components/reset.js +7 -0
  509. package/dist/dev/skins/dist/default/default/tailwind/components/reset.js.map +1 -0
  510. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +2 -1
  511. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  512. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +1 -1
  513. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  514. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +13 -4
  515. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  516. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +5 -3
  517. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  518. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  519. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  520. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +3 -2
  521. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  522. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  523. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  524. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
  525. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  526. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js +41 -0
  527. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -0
  528. package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js +12 -0
  529. package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -0
  530. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  531. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  532. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +1 -1
  533. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
  534. package/dist/dev/skins/dist/default/minimal/tailwind/components/reset.js +7 -0
  535. package/dist/dev/skins/dist/default/minimal/tailwind/components/reset.js.map +1 -0
  536. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +2 -1
  537. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  538. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  539. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  540. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -4
  541. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  542. package/dist/dev/tailwind.css +66 -0
  543. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts +2 -2
  544. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
  545. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts +2 -2
  546. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
  547. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts +2 -2
  548. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
  549. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts +2 -2
  550. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
  551. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts +2 -2
  552. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  553. package/dist/dev/ui/captions-button/captions-button.d.ts +2 -2
  554. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  555. package/dist/dev/ui/cast-button/cast-button.d.ts +2 -2
  556. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -1
  557. package/dist/dev/ui/cast-button/cast-button.js +2 -2
  558. package/dist/dev/ui/cast-button/cast-button.js.map +1 -1
  559. package/dist/dev/ui/controls/context.js +4 -1
  560. package/dist/dev/ui/controls/context.js.map +1 -1
  561. package/dist/dev/ui/controls/controls-group.d.ts +2 -2
  562. package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
  563. package/dist/dev/ui/controls/controls-root.d.ts +2 -2
  564. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  565. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +2 -2
  566. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  567. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts +2 -2
  568. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  569. package/dist/dev/ui/gesture/gesture.d.ts +30 -0
  570. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -0
  571. package/dist/dev/ui/gesture/{media-gesture.js → gesture.js} +8 -5
  572. package/dist/dev/ui/gesture/gesture.js.map +1 -0
  573. package/dist/dev/ui/gesture/index.d.ts +2 -0
  574. package/dist/dev/ui/gesture/index.js +2 -0
  575. package/dist/dev/ui/hotkey/hotkey.d.ts +28 -0
  576. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -0
  577. package/dist/dev/ui/hotkey/{media-hotkey.js → hotkey.js} +7 -4
  578. package/dist/dev/ui/hotkey/hotkey.js.map +1 -0
  579. package/dist/dev/ui/hotkey/index.d.ts +2 -0
  580. package/dist/dev/ui/hotkey/index.js +2 -0
  581. package/dist/dev/ui/input-indicators/use-indicator-visibility.js +25 -0
  582. package/dist/dev/ui/input-indicators/use-indicator-visibility.js.map +1 -0
  583. package/dist/dev/ui/input-indicators/use-input-action-subscription.js +22 -0
  584. package/dist/dev/ui/input-indicators/use-input-action-subscription.js.map +1 -0
  585. package/dist/dev/ui/input-indicators/use-input-indicator-root.js +21 -0
  586. package/dist/dev/ui/input-indicators/use-input-indicator-root.js.map +1 -0
  587. package/dist/dev/ui/input-indicators/use-rendered-indicator-state.js +40 -0
  588. package/dist/dev/ui/input-indicators/use-rendered-indicator-state.js.map +1 -0
  589. package/dist/dev/ui/live-button/index.d.ts +2 -0
  590. package/dist/dev/ui/live-button/index.js +2 -0
  591. package/dist/dev/ui/live-button/live-button.d.ts +34 -0
  592. package/dist/dev/ui/live-button/live-button.d.ts.map +1 -0
  593. package/dist/dev/ui/live-button/live-button.js +92 -0
  594. package/dist/dev/ui/live-button/live-button.js.map +1 -0
  595. package/dist/dev/ui/menu/context.d.ts +29 -0
  596. package/dist/dev/ui/menu/context.d.ts.map +1 -0
  597. package/dist/dev/ui/menu/context.js +29 -0
  598. package/dist/dev/ui/menu/context.js.map +1 -0
  599. package/dist/dev/ui/menu/index.d.ts +3 -0
  600. package/dist/dev/ui/menu/index.js +3 -0
  601. package/dist/dev/ui/menu/index.parts.d.ts +21 -0
  602. package/dist/dev/ui/menu/index.parts.d.ts.map +1 -0
  603. package/dist/dev/ui/menu/index.parts.js +34 -0
  604. package/dist/dev/ui/menu/index.parts.js.map +1 -0
  605. package/dist/dev/ui/menu/menu-back.d.ts +18 -0
  606. package/dist/dev/ui/menu/menu-back.d.ts.map +1 -0
  607. package/dist/dev/ui/menu/menu-back.js +31 -0
  608. package/dist/dev/ui/menu/menu-back.js.map +1 -0
  609. package/dist/dev/ui/menu/menu-checkbox-item.d.ts +22 -0
  610. package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -0
  611. package/dist/dev/ui/menu/menu-checkbox-item.js +50 -0
  612. package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -0
  613. package/dist/dev/ui/menu/menu-content.d.ts +15 -0
  614. package/dist/dev/ui/menu/menu-content.d.ts.map +1 -0
  615. package/dist/dev/ui/menu/menu-content.js +284 -0
  616. package/dist/dev/ui/menu/menu-content.js.map +1 -0
  617. package/dist/dev/ui/menu/menu-group.d.ts +18 -0
  618. package/dist/dev/ui/menu/menu-group.d.ts.map +1 -0
  619. package/dist/dev/ui/menu/menu-group.js +26 -0
  620. package/dist/dev/ui/menu/menu-group.js.map +1 -0
  621. package/dist/dev/ui/menu/menu-item-indicator.d.ts +20 -0
  622. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -0
  623. package/dist/dev/ui/menu/menu-item-indicator.js +24 -0
  624. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -0
  625. package/dist/dev/ui/menu/menu-item.d.ts +20 -0
  626. package/dist/dev/ui/menu/menu-item.d.ts.map +1 -0
  627. package/dist/dev/ui/menu/menu-item.js +53 -0
  628. package/dist/dev/ui/menu/menu-item.js.map +1 -0
  629. package/dist/dev/ui/menu/menu-label.d.ts +15 -0
  630. package/dist/dev/ui/menu/menu-label.d.ts.map +1 -0
  631. package/dist/dev/ui/menu/menu-label.js +23 -0
  632. package/dist/dev/ui/menu/menu-label.js.map +1 -0
  633. package/dist/dev/ui/menu/menu-radio-group.d.ts +22 -0
  634. package/dist/dev/ui/menu/menu-radio-group.d.ts.map +1 -0
  635. package/dist/dev/ui/menu/menu-radio-group.js +33 -0
  636. package/dist/dev/ui/menu/menu-radio-group.js.map +1 -0
  637. package/dist/dev/ui/menu/menu-radio-item.d.ts +20 -0
  638. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -0
  639. package/dist/dev/ui/menu/menu-radio-item.js +57 -0
  640. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -0
  641. package/dist/dev/ui/menu/menu-root.d.ts +29 -0
  642. package/dist/dev/ui/menu/menu-root.d.ts.map +1 -0
  643. package/dist/dev/ui/menu/menu-root.js +136 -0
  644. package/dist/dev/ui/menu/menu-root.js.map +1 -0
  645. package/dist/dev/ui/menu/menu-separator.d.ts +15 -0
  646. package/dist/dev/ui/menu/menu-separator.d.ts.map +1 -0
  647. package/dist/dev/ui/menu/menu-separator.js +23 -0
  648. package/dist/dev/ui/menu/menu-separator.js.map +1 -0
  649. package/dist/dev/ui/menu/menu-trigger.d.ts +22 -0
  650. package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -0
  651. package/dist/dev/ui/menu/menu-trigger.js +124 -0
  652. package/dist/dev/ui/menu/menu-trigger.js.map +1 -0
  653. package/dist/dev/ui/menu/menu-view.d.ts +15 -0
  654. package/dist/dev/ui/menu/menu-view.d.ts.map +1 -0
  655. package/dist/dev/ui/menu/menu-view.js +23 -0
  656. package/dist/dev/ui/menu/menu-view.js.map +1 -0
  657. package/dist/dev/ui/mute-button/mute-button.d.ts +2 -2
  658. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  659. package/dist/dev/ui/pip-button/pip-button.d.ts +2 -2
  660. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  661. package/dist/dev/ui/play-button/play-button.d.ts +2 -2
  662. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  663. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts +2 -2
  664. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  665. package/dist/dev/ui/playback-rate-menu/context.js +20 -0
  666. package/dist/dev/ui/playback-rate-menu/context.js.map +1 -0
  667. package/dist/dev/ui/playback-rate-menu/index.d.ts +3 -0
  668. package/dist/dev/ui/playback-rate-menu/index.js +3 -0
  669. package/dist/dev/ui/playback-rate-menu/index.parts.d.ts +12 -0
  670. package/dist/dev/ui/playback-rate-menu/index.parts.d.ts.map +1 -0
  671. package/dist/dev/ui/playback-rate-menu/index.parts.js +17 -0
  672. package/dist/dev/ui/playback-rate-menu/index.parts.js.map +1 -0
  673. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-content.d.ts +14 -0
  674. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-content.d.ts.map +1 -0
  675. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-content.js +28 -0
  676. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-content.js.map +1 -0
  677. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-root.d.ts +23 -0
  678. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-root.d.ts.map +1 -0
  679. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-root.js +39 -0
  680. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-root.js.map +1 -0
  681. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger.d.ts +14 -0
  682. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger.d.ts.map +1 -0
  683. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger.js +51 -0
  684. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger.js.map +1 -0
  685. package/dist/dev/ui/playback-rate-menu/use-playback-rate-menu.d.ts +26 -0
  686. package/dist/dev/ui/playback-rate-menu/use-playback-rate-menu.d.ts.map +1 -0
  687. package/dist/dev/ui/playback-rate-menu/use-playback-rate-menu.js +27 -0
  688. package/dist/dev/ui/playback-rate-menu/use-playback-rate-menu.js.map +1 -0
  689. package/dist/dev/ui/popover/context.d.ts +3 -1
  690. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  691. package/dist/dev/ui/popover/context.js.map +1 -1
  692. package/dist/dev/ui/popover/popover-arrow.d.ts +2 -2
  693. package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
  694. package/dist/dev/ui/popover/popover-popup.d.ts +2 -2
  695. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  696. package/dist/dev/ui/popover/popover-popup.js +20 -7
  697. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  698. package/dist/dev/ui/popover/popover-root.d.ts +4 -1
  699. package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
  700. package/dist/dev/ui/popover/popover-root.js +20 -5
  701. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  702. package/dist/dev/ui/popover/popover-trigger.d.ts +2 -2
  703. package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
  704. package/dist/dev/ui/poster/poster.d.ts +2 -2
  705. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  706. package/dist/dev/ui/seek-button/seek-button.d.ts +2 -2
  707. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  708. package/dist/dev/ui/seek-indicator/context.js +20 -0
  709. package/dist/dev/ui/seek-indicator/context.js.map +1 -0
  710. package/dist/dev/ui/seek-indicator/index.d.ts +2 -0
  711. package/dist/dev/ui/seek-indicator/index.js +2 -0
  712. package/dist/dev/ui/seek-indicator/index.parts.d.ts +10 -0
  713. package/dist/dev/ui/seek-indicator/index.parts.d.ts.map +1 -0
  714. package/dist/dev/ui/seek-indicator/index.parts.js +12 -0
  715. package/dist/dev/ui/seek-indicator/index.parts.js.map +1 -0
  716. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts +14 -0
  717. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -0
  718. package/dist/dev/ui/seek-indicator/seek-indicator-root.js +30 -0
  719. package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -0
  720. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts +13 -0
  721. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map +1 -0
  722. package/dist/dev/ui/seek-indicator/seek-indicator-value.js +23 -0
  723. package/dist/dev/ui/seek-indicator/seek-indicator-value.js.map +1 -0
  724. package/dist/dev/ui/slider/context.js.map +1 -1
  725. package/dist/dev/ui/slider/slider-buffer.d.ts +2 -2
  726. package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
  727. package/dist/dev/ui/slider/slider-fill.d.ts +2 -2
  728. package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
  729. package/dist/dev/ui/slider/slider-preview.d.ts +2 -2
  730. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  731. package/dist/dev/ui/slider/slider-root.d.ts +2 -2
  732. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  733. package/dist/dev/ui/slider/slider-thumb.d.ts +2 -2
  734. package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
  735. package/dist/dev/ui/slider/slider-thumbnail.d.ts +2 -2
  736. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  737. package/dist/dev/ui/slider/slider-track.d.ts +2 -2
  738. package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
  739. package/dist/dev/ui/slider/slider-value.d.ts +2 -2
  740. package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
  741. package/dist/dev/ui/status-announcer/index.d.ts +2 -0
  742. package/dist/dev/ui/status-announcer/index.js +2 -0
  743. package/dist/dev/ui/status-announcer/status-announcer.d.ts +14 -0
  744. package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -0
  745. package/dist/dev/ui/status-announcer/status-announcer.js +36 -0
  746. package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -0
  747. package/dist/dev/ui/status-indicator/context.js +20 -0
  748. package/dist/dev/ui/status-indicator/context.js.map +1 -0
  749. package/dist/dev/ui/status-indicator/index.d.ts +2 -0
  750. package/dist/dev/ui/status-indicator/index.js +2 -0
  751. package/dist/dev/ui/status-indicator/index.parts.d.ts +10 -0
  752. package/dist/dev/ui/status-indicator/index.parts.d.ts.map +1 -0
  753. package/dist/dev/ui/status-indicator/index.parts.js +12 -0
  754. package/dist/dev/ui/status-indicator/index.parts.js.map +1 -0
  755. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts +14 -0
  756. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -0
  757. package/dist/dev/ui/status-indicator/status-indicator-root.js +34 -0
  758. package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -0
  759. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts +13 -0
  760. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map +1 -0
  761. package/dist/dev/ui/status-indicator/status-indicator-value.js +23 -0
  762. package/dist/dev/ui/status-indicator/status-indicator-value.js.map +1 -0
  763. package/dist/dev/ui/thumbnail/thumbnail.d.ts +2 -2
  764. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  765. package/dist/dev/ui/time/time-group.d.ts +2 -2
  766. package/dist/dev/ui/time/time-group.d.ts.map +1 -1
  767. package/dist/dev/ui/time/time-separator.d.ts +2 -2
  768. package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
  769. package/dist/dev/ui/time/time-value.d.ts +2 -2
  770. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  771. package/dist/dev/ui/time-slider/time-slider-root.d.ts +2 -2
  772. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  773. package/dist/dev/ui/tooltip/context.d.ts +3 -1
  774. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  775. package/dist/dev/ui/tooltip/context.js.map +1 -1
  776. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts +2 -2
  777. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
  778. package/dist/dev/ui/tooltip/tooltip-popup.d.ts +2 -2
  779. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  780. package/dist/dev/ui/tooltip/tooltip-popup.js +20 -7
  781. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  782. package/dist/dev/ui/tooltip/tooltip-root.d.ts +4 -1
  783. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  784. package/dist/dev/ui/tooltip/tooltip-root.js +16 -4
  785. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  786. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts +2 -2
  787. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  788. package/dist/dev/ui/volume-indicator/context.js +20 -0
  789. package/dist/dev/ui/volume-indicator/context.js.map +1 -0
  790. package/dist/dev/ui/volume-indicator/index.d.ts +2 -0
  791. package/dist/dev/ui/volume-indicator/index.js +2 -0
  792. package/dist/dev/ui/volume-indicator/index.parts.d.ts +11 -0
  793. package/dist/dev/ui/volume-indicator/index.parts.d.ts.map +1 -0
  794. package/dist/dev/ui/volume-indicator/index.parts.js +14 -0
  795. package/dist/dev/ui/volume-indicator/index.parts.js.map +1 -0
  796. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts +13 -0
  797. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts.map +1 -0
  798. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +36 -0
  799. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -0
  800. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts +14 -0
  801. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -0
  802. package/dist/dev/ui/volume-indicator/volume-indicator-root.js +30 -0
  803. package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -0
  804. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts +13 -0
  805. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts.map +1 -0
  806. package/dist/dev/ui/volume-indicator/volume-indicator-value.js +23 -0
  807. package/dist/dev/ui/volume-indicator/volume-indicator-value.js.map +1 -0
  808. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts +2 -2
  809. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  810. package/dist/dev/utils/use-attach-media.d.ts +8 -0
  811. package/dist/dev/utils/use-attach-media.d.ts.map +1 -0
  812. package/dist/dev/utils/use-attach-media.js +14 -0
  813. package/dist/dev/utils/use-attach-media.js.map +1 -0
  814. package/dist/dev/utils/use-render.js.map +1 -1
  815. package/dist/dev/utils/use-sync-props.js +14 -0
  816. package/dist/dev/utils/use-sync-props.js.map +1 -0
  817. package/docs/README.md +7 -0
  818. package/docs/concepts/accessibility.md +60 -0
  819. package/docs/concepts/browser-support.md +37 -0
  820. package/docs/concepts/features.md +131 -0
  821. package/docs/concepts/overview.md +119 -0
  822. package/docs/concepts/presets.md +204 -0
  823. package/docs/concepts/skins.md +2094 -0
  824. package/docs/concepts/ui-components.md +83 -0
  825. package/docs/concepts/v10-roadmap.md +75 -0
  826. package/docs/concepts/why-videojs.md +113 -0
  827. package/docs/how-to/build-with-ai.md +39 -0
  828. package/docs/how-to/build-your-own-component.md +142 -0
  829. package/docs/how-to/customize-skins.md +5990 -0
  830. package/docs/how-to/installation.md +170 -0
  831. package/docs/llms.txt +91 -0
  832. package/docs/reference/buffering-indicator.md +152 -0
  833. package/docs/reference/captions-button.md +200 -0
  834. package/docs/reference/controls.md +238 -0
  835. package/docs/reference/create-player.md +261 -0
  836. package/docs/reference/create-selector.md +59 -0
  837. package/docs/reference/feature-buffer.md +54 -0
  838. package/docs/reference/feature-controls.md +74 -0
  839. package/docs/reference/feature-error.md +65 -0
  840. package/docs/reference/feature-fullscreen.md +94 -0
  841. package/docs/reference/feature-live.md +62 -0
  842. package/docs/reference/feature-pip.md +94 -0
  843. package/docs/reference/feature-playback-rate.md +70 -0
  844. package/docs/reference/feature-playback.md +109 -0
  845. package/docs/reference/feature-remote-playback.md +74 -0
  846. package/docs/reference/feature-source.md +70 -0
  847. package/docs/reference/feature-stream-type.md +46 -0
  848. package/docs/reference/feature-text-tracks.md +104 -0
  849. package/docs/reference/feature-time.md +84 -0
  850. package/docs/reference/feature-volume.md +99 -0
  851. package/docs/reference/fullscreen-button.md +212 -0
  852. package/docs/reference/mute-button.md +276 -0
  853. package/docs/reference/pip-button.md +212 -0
  854. package/docs/reference/play-button.md +224 -0
  855. package/docs/reference/playback-rate-button.md +169 -0
  856. package/docs/reference/player-container.md +103 -0
  857. package/docs/reference/player-provider.md +102 -0
  858. package/docs/reference/popover.md +527 -0
  859. package/docs/reference/poster.md +137 -0
  860. package/docs/reference/render-element.md +196 -0
  861. package/docs/reference/seek-button.md +213 -0
  862. package/docs/reference/slider.md +826 -0
  863. package/docs/reference/thumbnail.md +322 -0
  864. package/docs/reference/time-slider.md +741 -0
  865. package/docs/reference/time.md +495 -0
  866. package/docs/reference/tooltip.md +631 -0
  867. package/docs/reference/use-button.md +124 -0
  868. package/docs/reference/use-container-attach.md +42 -0
  869. package/docs/reference/use-media-attach.md +46 -0
  870. package/docs/reference/use-media.md +11 -0
  871. package/docs/reference/use-player-context.md +93 -0
  872. package/docs/reference/use-player.md +226 -0
  873. package/docs/reference/use-selector.md +132 -0
  874. package/docs/reference/use-snapshot.md +127 -0
  875. package/docs/reference/use-store.md +257 -0
  876. package/docs/reference/volume-slider.md +716 -0
  877. package/package.json +46 -12
  878. package/dist/default/ui/gesture/media-gesture.js.map +0 -1
  879. package/dist/default/ui/hotkey/media-hotkey.js.map +0 -1
  880. package/dist/default/utils/attach-media-element.js +0 -12
  881. package/dist/default/utils/attach-media-element.js.map +0 -1
  882. package/dist/default/utils/media-props.js +0 -19
  883. package/dist/default/utils/media-props.js.map +0 -1
  884. package/dist/dev/ui/gesture/media-gesture.d.ts +0 -23
  885. package/dist/dev/ui/gesture/media-gesture.d.ts.map +0 -1
  886. package/dist/dev/ui/gesture/media-gesture.js.map +0 -1
  887. package/dist/dev/ui/hotkey/media-hotkey.d.ts +0 -21
  888. package/dist/dev/ui/hotkey/media-hotkey.d.ts.map +0 -1
  889. package/dist/dev/ui/hotkey/media-hotkey.js.map +0 -1
  890. package/dist/dev/utils/attach-media-element.d.ts +0 -9
  891. package/dist/dev/utils/attach-media-element.d.ts.map +0 -1
  892. package/dist/dev/utils/attach-media-element.js +0 -12
  893. package/dist/dev/utils/attach-media-element.js.map +0 -1
  894. package/dist/dev/utils/media-props.d.ts +0 -8
  895. package/dist/dev/utils/media-props.d.ts.map +0 -1
  896. package/dist/dev/utils/media-props.js +0 -19
  897. package/dist/dev/utils/media-props.js.map +0 -1
@@ -0,0 +1,1542 @@
1
+ /* ==========================================================================
2
+ Reset
3
+ ========================================================================== */
4
+
5
+ .media-minimal-skin *,
6
+ .media-minimal-skin *::before,
7
+ .media-minimal-skin *::after {
8
+ box-sizing: border-box;
9
+ }
10
+ .media-minimal-skin img,
11
+ .media-minimal-skin video,
12
+ .media-minimal-skin svg {
13
+ display: block;
14
+ max-width: 100%;
15
+ }
16
+ .media-minimal-skin button {
17
+ font: inherit;
18
+ }
19
+ .media-minimal-skin [hidden][hidden] {
20
+ /* Keep authored templates hidden even when component classes set display. */
21
+ display: none;
22
+ }
23
+ @media (prefers-reduced-motion: no-preference) {
24
+ .media-minimal-skin {
25
+ interpolate-size: allow-keywords;
26
+ }
27
+ }
28
+
29
+ /* ==========================================================================
30
+ Root Container
31
+ ========================================================================== */
32
+
33
+ .media-minimal-skin {
34
+ --media-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));
35
+ --media-current-shadow-color-subtle: oklch(from var(--media-current-shadow-color) l c h / calc(alpha * 0.4));
36
+ --media-icon-size: 18px;
37
+ position: relative;
38
+ display: block;
39
+ width: 100%;
40
+ height: 100%;
41
+ container: media-root / inline-size;
42
+ font-family:
43
+ Inter Variable,
44
+ Inter,
45
+ ui-sans-serif,
46
+ system-ui,
47
+ sans-serif;
48
+ font-size: 0.8125rem; /* 13px at 100% font size */
49
+ -webkit-font-smoothing: auto;
50
+ -moz-osx-font-smoothing: auto;
51
+ line-height: 1.5;
52
+ letter-spacing: normal;
53
+ outline: 2px solid transparent;
54
+ outline-offset: -4px;
55
+ border-radius: var(--media-border-radius, 0.75rem);
56
+ isolation: isolate;
57
+ transition-timing-function: ease-out;
58
+ transition-duration: 100ms;
59
+ transition-property: outline-offset, outline-color;
60
+
61
+ &:focus-visible {
62
+ outline-color: currentColor;
63
+ outline-offset: 2px;
64
+ }
65
+ }
66
+
67
+ /* ==========================================================================
68
+ Media Element
69
+ ========================================================================== */
70
+
71
+ .media-minimal-skin ::slotted(video),
72
+ .media-minimal-skin video {
73
+ display: block;
74
+ width: 100%;
75
+ height: 100%;
76
+ object-fit: var(--media-object-fit, contain);
77
+ object-position: var(--media-object-position, center);
78
+ }
79
+ .media-minimal-skin ::slotted(video) {
80
+ border-radius: var(--media-video-border-radius);
81
+ }
82
+ .media-minimal-skin video {
83
+ border-radius: inherit;
84
+ }
85
+
86
+ .media-minimal-skin:fullscreen ::slotted(video),
87
+ .media-minimal-skin:fullscreen video {
88
+ object-fit: contain;
89
+ }
90
+
91
+ /* ==========================================================================
92
+ Overlay / Scrim
93
+ ========================================================================== */
94
+
95
+ .media-minimal-skin .media-overlay {
96
+ position: absolute;
97
+ inset: 0;
98
+ pointer-events: none;
99
+ background-image: linear-gradient(to top, oklch(0 0 0 / 0.7), oklch(0 0 0 / 0.5) 7.5rem, oklch(0 0 0 / 0));
100
+ border-radius: inherit;
101
+ opacity: 0;
102
+ backdrop-filter: blur(0) saturate(1);
103
+ transition-timing-function: ease-out;
104
+ transition-duration: var(--media-controls-transition-duration);
105
+ transition-property: opacity, backdrop-filter;
106
+ }
107
+
108
+ .media-minimal-skin .media-error ~ .media-overlay {
109
+ transition-delay: var(--media-error-dialog-transition-delay);
110
+ transition-duration: var(--media-error-dialog-transition-duration);
111
+ }
112
+
113
+ .media-minimal-skin .media-controls[data-visible] ~ .media-overlay,
114
+ .media-minimal-skin .media-error[data-open] ~ .media-overlay {
115
+ opacity: 1;
116
+ }
117
+
118
+ .media-minimal-skin .media-error[data-open] ~ .media-overlay {
119
+ backdrop-filter: blur(16px) saturate(1.2);
120
+ }
121
+
122
+ /* ==========================================================================
123
+ Buffering Indicator
124
+ ========================================================================== */
125
+
126
+ .media-minimal-skin .media-buffering-indicator {
127
+ position: absolute;
128
+ inset: 0;
129
+ display: none;
130
+ align-items: center;
131
+ justify-content: center;
132
+ color: oklch(1 0 0);
133
+ pointer-events: none;
134
+
135
+ &:not([data-visible]) {
136
+ --media-spinner-animation: none;
137
+ }
138
+
139
+ &[data-visible] {
140
+ display: flex;
141
+ }
142
+ }
143
+
144
+ /* ==========================================================================
145
+ Error Dialog
146
+ ========================================================================== */
147
+
148
+ .media-minimal-skin .media-error:not([data-open]) {
149
+ display: none;
150
+ }
151
+
152
+ .media-minimal-skin .media-error__title {
153
+ font-weight: 600;
154
+ line-height: 1.25;
155
+ }
156
+
157
+ .media-minimal-skin .media-error__description {
158
+ overflow-wrap: anywhere;
159
+ opacity: 0.7;
160
+ }
161
+
162
+ .media-minimal-skin .media-error__actions {
163
+ display: flex;
164
+ gap: 0.5rem;
165
+
166
+ & > * {
167
+ flex: 1;
168
+ }
169
+ }
170
+
171
+ .media-minimal-skin .media-error[data-open] ~ .media-controls * {
172
+ visibility: hidden;
173
+ }
174
+
175
+ /* ==========================================================================
176
+ Controls
177
+ ========================================================================== */
178
+
179
+ .media-minimal-skin .media-controls {
180
+ display: flex;
181
+ align-items: center;
182
+ container: media-controls / inline-size;
183
+ text-shadow: 0 1px 0 var(--media-current-shadow-color);
184
+ background-color: var(--media-controls-background-color);
185
+ backdrop-filter: var(--media-controls-backdrop-filter);
186
+ }
187
+
188
+ /* ==========================================================================
189
+ Time Controls & Display
190
+ ========================================================================== */
191
+
192
+ .media-minimal-skin .media-time-controls {
193
+ display: flex;
194
+ flex: 1;
195
+ flex-direction: row-reverse;
196
+ gap: 0.75rem;
197
+ align-items: center;
198
+ container: media-time-controls / inline-size;
199
+ }
200
+
201
+ .media-minimal-skin .media-time-group {
202
+ display: flex;
203
+ gap: 0.25rem;
204
+ align-items: center;
205
+ }
206
+
207
+ .media-minimal-skin .media-time {
208
+ font-variant-numeric: tabular-nums;
209
+ }
210
+
211
+ .media-minimal-skin .media-time--current,
212
+ .media-minimal-skin .media-time-separator {
213
+ display: none;
214
+ }
215
+
216
+ @container media-root (width > 42rem) {
217
+ .media-minimal-skin .media-time-controls {
218
+ flex-direction: row;
219
+ }
220
+
221
+ .media-minimal-skin .media-time--duration,
222
+ .media-minimal-skin .media-time-separator {
223
+ color: oklch(from currentColor l c h / 0.6);
224
+ }
225
+
226
+ .media-minimal-skin .media-time--current,
227
+ .media-minimal-skin .media-time-separator {
228
+ display: inline;
229
+ }
230
+ }
231
+
232
+ /* ==========================================================================
233
+ Buttons
234
+ ========================================================================== */
235
+
236
+ /* Base button */
237
+ .media-minimal-skin .media-button {
238
+ display: flex;
239
+ flex-shrink: 0;
240
+ align-items: center;
241
+ justify-content: center;
242
+ min-height: 0;
243
+ padding: 0.5rem 1rem;
244
+ text-align: center;
245
+ touch-action: manipulation;
246
+ cursor: pointer;
247
+ user-select: none;
248
+ outline: 2px solid transparent;
249
+ outline-offset: -2px;
250
+ border: none;
251
+ border-radius: 0.5rem;
252
+ transition-timing-function: ease-out;
253
+ transition-duration: 150ms;
254
+ transition-property: background-color, outline-offset, scale;
255
+ /* Fix weird jumping when clicking on the buttons in Safari. */
256
+ will-change: scale;
257
+
258
+ &:focus-visible {
259
+ outline-color: currentColor;
260
+ outline-offset: 2px;
261
+ }
262
+
263
+ &:active {
264
+ scale: 0.98;
265
+ }
266
+
267
+ &[disabled] {
268
+ cursor: not-allowed;
269
+ opacity: 0.5;
270
+ filter: grayscale(1);
271
+ }
272
+
273
+ &[data-availability="unavailable"],
274
+ &[data-availability="unsupported"] {
275
+ display: none;
276
+ }
277
+ }
278
+
279
+ @supports (corner-shape: squircle) {
280
+ .media-minimal-skin .media-button {
281
+ border-radius: 1rem;
282
+ corner-shape: squircle;
283
+ }
284
+ }
285
+
286
+ /* Primary button variant */
287
+ .media-minimal-skin .media-button--primary {
288
+ font-weight: 500;
289
+ color: oklch(0 0 0);
290
+ text-shadow: none;
291
+ background: oklch(1 0 0);
292
+ }
293
+
294
+ /* Subtle button variant */
295
+ .media-minimal-skin .media-button--subtle {
296
+ color: inherit;
297
+ text-shadow: inherit;
298
+ background: transparent;
299
+
300
+ &:hover,
301
+ &:focus-visible,
302
+ &[aria-expanded="true"] {
303
+ background: oklch(from currentColor l c h / 0.1);
304
+ }
305
+ }
306
+
307
+ /* Icon button variant */
308
+ .media-minimal-skin .media-button--icon {
309
+ display: grid;
310
+ width: 2.375rem;
311
+ aspect-ratio: 1;
312
+ padding: 0;
313
+
314
+ &:active {
315
+ scale: 0.9;
316
+ }
317
+
318
+ & .media-icon {
319
+ grid-area: 1 / 1;
320
+ transition-behavior: allow-discrete;
321
+ transition-property: display, opacity;
322
+ transition-duration: 150ms;
323
+ transition-timing-function: ease-out;
324
+ filter: drop-shadow(0 1px 0 var(--media-current-shadow-color));
325
+ }
326
+ }
327
+
328
+ /* Seek button */
329
+ .media-minimal-skin .media-button--seek {
330
+ & .media-icon__label {
331
+ position: absolute;
332
+ right: -1px;
333
+ bottom: -3px;
334
+ font-size: 10px; /* Hard coded due to size limitations. */
335
+ font-weight: 480;
336
+ font-variant-numeric: tabular-nums;
337
+ }
338
+
339
+ &:has(.media-icon--flipped) .media-icon__label {
340
+ right: unset;
341
+ left: -1px;
342
+ }
343
+ }
344
+
345
+ /* Playback rate button */
346
+ .media-minimal-skin .media-button--playback-rate {
347
+ padding: 0;
348
+ font-variant-numeric: tabular-nums;
349
+
350
+ &::after {
351
+ width: 4ch;
352
+ content: attr(data-rate) "\00D7";
353
+ }
354
+
355
+ &[data-inline-rate-label]::after {
356
+ content: none;
357
+ }
358
+ }
359
+
360
+ /* Live button — wide pill button with a status dot (gray → red at the live
361
+ edge) rendered via ::before, and "LIVE" text rendered as the button's own
362
+ text content. */
363
+ .media-minimal-skin .media-button--live {
364
+ display: inline-flex;
365
+ gap: 0.4rem;
366
+ align-items: center;
367
+ width: auto;
368
+ aspect-ratio: auto;
369
+ padding: 0.5rem 0.75rem;
370
+ font-size: 0.75rem;
371
+ font-weight: 600;
372
+ line-height: 1;
373
+ text-transform: uppercase;
374
+ letter-spacing: 0.05em;
375
+
376
+ &::before {
377
+ display: inline-block;
378
+ flex-shrink: 0;
379
+ width: 0.5rem;
380
+ height: 0.5rem;
381
+ content: "";
382
+ background-color: oklch(from currentColor l c h / 0.4);
383
+ border-radius: 50%;
384
+ transition: background-color 150ms ease-out;
385
+ }
386
+
387
+ &[data-live-edge]::before {
388
+ background-color: oklch(0.65 0.22 27);
389
+ }
390
+ }
391
+
392
+ /* ==========================================================================
393
+ Button Groups
394
+ ========================================================================== */
395
+
396
+ .media-minimal-skin .media-button-group {
397
+ display: flex;
398
+ gap: 0.075rem;
399
+ align-items: center;
400
+
401
+ @container media-root (width > 42rem) {
402
+ gap: 0.125rem;
403
+ }
404
+ }
405
+
406
+ /* ==========================================================================
407
+ Icons
408
+ ========================================================================== */
409
+
410
+ .media-minimal-skin .media-icon__container {
411
+ position: relative;
412
+ }
413
+ .media-minimal-skin .media-icon {
414
+ flex-shrink: 0;
415
+ width: var(--media-icon-size);
416
+ height: var(--media-icon-size);
417
+ }
418
+ .media-minimal-skin .media-icon--flipped {
419
+ scale: -1 1;
420
+ }
421
+
422
+ /* ==========================================================================
423
+ Poster Image
424
+ ========================================================================== */
425
+
426
+ .media-minimal-skin media-poster,
427
+ .media-minimal-skin > img {
428
+ position: absolute;
429
+ inset: 0;
430
+ width: 100%;
431
+ height: 100%;
432
+ pointer-events: none;
433
+ transition: opacity 0.25s;
434
+ }
435
+ .media-minimal-skin media-poster:not([data-visible]),
436
+ .media-minimal-skin > img:not([data-visible]) {
437
+ opacity: 0;
438
+ }
439
+ .media-minimal-skin media-poster ::slotted(img),
440
+ .media-minimal-skin media-poster img {
441
+ position: absolute;
442
+ inset: 0;
443
+ width: 100%;
444
+ height: 100%;
445
+ object-fit: var(--media-object-fit, contain);
446
+ object-position: var(--media-object-position, center);
447
+ border-radius: var(--media-video-border-radius);
448
+ }
449
+ .media-minimal-skin > img {
450
+ object-fit: var(--media-object-fit, contain);
451
+ object-position: var(--media-object-position, center);
452
+ border-radius: inherit;
453
+ }
454
+
455
+ .media-minimal-skin:fullscreen media-poster ::slotted(img),
456
+ .media-minimal-skin:fullscreen media-poster img,
457
+ .media-minimal-skin:fullscreen > img {
458
+ object-fit: contain;
459
+ }
460
+
461
+ /* ==========================================================================
462
+ Media preview
463
+ ========================================================================== */
464
+ .media-minimal-skin .media-preview {
465
+ pointer-events: none;
466
+
467
+ & .media-preview__thumbnail-wrapper {
468
+ position: relative;
469
+ background-color: oklch(0 0 0 / 0.9);
470
+ border-radius: 0.5rem;
471
+ }
472
+ & .media-preview__thumbnail {
473
+ display: block;
474
+ border-radius: inherit;
475
+ }
476
+
477
+ & .media-preview__time {
478
+ display: block;
479
+ margin-top: 0.5rem;
480
+ text-align: center;
481
+ }
482
+
483
+ & .media-overlay {
484
+ opacity: 1;
485
+ }
486
+
487
+ & .media-preview__spinner {
488
+ position: absolute;
489
+ top: 50%;
490
+ left: 50%;
491
+ opacity: 0;
492
+ translate: -50% -50%;
493
+ }
494
+
495
+ & .media-preview__thumbnail,
496
+ & .media-preview__spinner {
497
+ transition: opacity 150ms ease-out;
498
+ }
499
+
500
+ &:not(:has(.media-preview__thumbnail[data-loading])) {
501
+ & .media-preview__spinner {
502
+ --media-spinner-animation: none;
503
+ }
504
+ }
505
+
506
+ &:has(.media-preview__thumbnail[data-loading]) {
507
+ & .media-preview__thumbnail {
508
+ opacity: 0;
509
+ }
510
+ & .media-preview__spinner {
511
+ opacity: 1;
512
+ }
513
+ }
514
+ }
515
+
516
+ /* ==========================================================================
517
+ Slider
518
+ ========================================================================== */
519
+
520
+ .media-minimal-skin .media-slider {
521
+ position: relative;
522
+ display: flex;
523
+ flex: 1;
524
+ align-items: center;
525
+ justify-content: center;
526
+ cursor: pointer;
527
+ outline: none;
528
+ border-radius: calc(infinity * 1px);
529
+
530
+ &[data-orientation="horizontal"] {
531
+ width: 100%;
532
+ min-width: 5rem;
533
+ height: 2rem;
534
+ }
535
+
536
+ &[data-orientation="vertical"] {
537
+ width: 2rem;
538
+ height: 4.5rem;
539
+ }
540
+ }
541
+
542
+ /* Track */
543
+ .media-minimal-skin .media-slider__track {
544
+ position: relative;
545
+ overflow: hidden;
546
+ user-select: none;
547
+ background-color: oklch(from currentColor l c h / 0.2);
548
+ border-radius: inherit;
549
+ isolation: isolate;
550
+
551
+ &[data-orientation="horizontal"] {
552
+ width: 100%;
553
+ height: 0.1875rem;
554
+ }
555
+
556
+ &[data-orientation="vertical"] {
557
+ width: 0.1875rem;
558
+ height: 100%;
559
+ }
560
+ }
561
+
562
+ /* Thumb */
563
+ .media-minimal-skin .media-slider__thumb {
564
+ position: absolute;
565
+ z-index: 10;
566
+ width: 0.75rem;
567
+ height: 0.75rem;
568
+ user-select: none;
569
+ outline: 2px solid transparent;
570
+ outline-offset: -2px;
571
+ background-color: currentColor;
572
+ border-radius: calc(infinity * 1px);
573
+ box-shadow:
574
+ 0 0 0 1px var(--media-current-shadow-color-subtle, oklch(0 0 0 / 0.1)),
575
+ 0 1px 3px 0 oklch(0 0 0 / 0.15),
576
+ 0 1px 2px -1px oklch(0 0 0 / 0.15);
577
+ opacity: 0;
578
+ transform-origin: center;
579
+ scale: 0.7;
580
+ translate: -50% -50%;
581
+ transition-timing-function: ease-out;
582
+ transition-duration: 150ms;
583
+ transition-property: opacity, scale, outline-offset;
584
+
585
+ &[data-orientation="horizontal"] {
586
+ top: 50%;
587
+ left: var(--media-slider-fill);
588
+ }
589
+
590
+ &[data-orientation="vertical"] {
591
+ top: calc(100% - var(--media-slider-fill));
592
+ left: 50%;
593
+ }
594
+
595
+ &:focus-visible {
596
+ outline-color: currentColor;
597
+ outline-offset: 2px;
598
+ }
599
+ }
600
+
601
+ .media-minimal-skin .media-slider:hover .media-slider__thumb,
602
+ .media-minimal-skin .media-slider:focus-within .media-slider__thumb,
603
+ .media-minimal-skin .media-slider__thumb--persistent {
604
+ opacity: 1;
605
+ scale: 1;
606
+ }
607
+
608
+ /* Shared track fills */
609
+ .media-minimal-skin .media-slider__buffer,
610
+ .media-minimal-skin .media-slider__fill {
611
+ position: absolute;
612
+ pointer-events: none;
613
+ border-radius: inherit;
614
+ }
615
+
616
+ .media-minimal-skin .media-slider__buffer[data-orientation="horizontal"],
617
+ .media-minimal-skin .media-slider__fill[data-orientation="horizontal"] {
618
+ inset-block: 0;
619
+ left: 0;
620
+ }
621
+
622
+ .media-minimal-skin .media-slider__buffer[data-orientation="vertical"],
623
+ .media-minimal-skin .media-slider__fill[data-orientation="vertical"] {
624
+ inset-inline: 0;
625
+ bottom: 0;
626
+ }
627
+
628
+ /* Buffer */
629
+ .media-minimal-skin .media-slider__buffer {
630
+ background-color: oklch(from currentColor l c h / 0.2);
631
+ transition-timing-function: ease-out;
632
+ transition-duration: 0.25s;
633
+
634
+ &[data-orientation="horizontal"] {
635
+ width: var(--media-slider-buffer);
636
+ transition-property: width;
637
+ }
638
+
639
+ &[data-orientation="vertical"] {
640
+ height: var(--media-slider-buffer);
641
+ transition-property: height;
642
+ }
643
+ }
644
+
645
+ /* Fill */
646
+ .media-minimal-skin .media-slider__fill {
647
+ background-color: currentColor;
648
+
649
+ &[data-orientation="horizontal"] {
650
+ width: var(--media-slider-fill);
651
+ }
652
+
653
+ &[data-orientation="vertical"] {
654
+ height: var(--media-slider-fill);
655
+ }
656
+ }
657
+
658
+ /* Dragging — thumb and fill follow the pointer position */
659
+ .media-minimal-skin .media-slider[data-dragging] .media-slider__thumb[data-orientation="horizontal"] {
660
+ left: var(--media-slider-pointer);
661
+ }
662
+
663
+ .media-minimal-skin .media-slider[data-dragging] .media-slider__thumb[data-orientation="vertical"] {
664
+ top: calc(100% - var(--media-slider-pointer));
665
+ }
666
+
667
+ .media-minimal-skin .media-slider[data-dragging] .media-slider__fill[data-orientation="horizontal"] {
668
+ width: var(--media-slider-pointer);
669
+ }
670
+
671
+ .media-minimal-skin .media-slider[data-dragging] .media-slider__fill[data-orientation="vertical"] {
672
+ height: var(--media-slider-pointer);
673
+ }
674
+
675
+ /* ==========================================================================
676
+ Popups & Animations
677
+ ========================================================================== */
678
+
679
+ .media-minimal-skin .media-popover,
680
+ .media-minimal-skin .media-tooltip {
681
+ margin: 0;
682
+ overflow: visible;
683
+ color: inherit;
684
+ border: 0;
685
+ transition-timing-function: var(--media-popup-transition-timing-function);
686
+ transition-duration: var(--media-popup-transition-duration);
687
+ transition-property: scale, opacity, filter;
688
+
689
+ &[data-starting-style],
690
+ &[data-ending-style] {
691
+ opacity: 0;
692
+ filter: blur(8px);
693
+ scale: 0.5;
694
+ }
695
+
696
+ &[data-instant] {
697
+ transition-duration: 0ms;
698
+ }
699
+
700
+ &[data-side="top"] {
701
+ transform-origin: bottom;
702
+ }
703
+ &[data-side="bottom"] {
704
+ transform-origin: top;
705
+ }
706
+ &[data-side="left"] {
707
+ transform-origin: right;
708
+ }
709
+ &[data-side="right"] {
710
+ transform-origin: left;
711
+ }
712
+
713
+ /* Safe area between trigger and popup */
714
+ &::before {
715
+ position: absolute;
716
+ pointer-events: inherit;
717
+ content: "";
718
+ }
719
+
720
+ &[data-side="top"]::before,
721
+ &[data-side="bottom"]::before {
722
+ inset-inline: 0;
723
+ width: 100%;
724
+ }
725
+ &[data-side="top"]::before {
726
+ top: 100%;
727
+ }
728
+ &[data-side="bottom"]::before {
729
+ bottom: 100%;
730
+ }
731
+
732
+ &[data-side="left"]::before,
733
+ &[data-side="right"]::before {
734
+ inset-block: 0;
735
+ height: 100%;
736
+ }
737
+ &[data-side="left"]::before {
738
+ left: 100%;
739
+ }
740
+ &[data-side="right"]::before {
741
+ right: 100%;
742
+ }
743
+ }
744
+
745
+ .media-minimal-skin .media-popover {
746
+ &[data-side="top"]::before,
747
+ &[data-side="bottom"]::before {
748
+ height: var(--media-popover-side-offset);
749
+ }
750
+ &[data-side="left"]::before,
751
+ &[data-side="right"]::before {
752
+ width: var(--media-popover-side-offset);
753
+ }
754
+ }
755
+
756
+ .media-minimal-skin .media-tooltip {
757
+ padding: 0.25rem 0.5rem;
758
+ font-size: 0.75rem; /* 12px at 100% font size */
759
+ color: var(--media-tooltip-text-color);
760
+ white-space: nowrap;
761
+ background-color: var(--media-tooltip-background-color);
762
+ border-radius: 0.5rem;
763
+ box-shadow:
764
+ 0 0 0 1px var(--media-tooltip-border-color),
765
+ 0 4px 6px -1px oklch(0 0 0 / 0.1),
766
+ 0 2px 4px -2px oklch(0 0 0 / 0.1);
767
+ backdrop-filter: var(--media-tooltip-backdrop-filter);
768
+
769
+ &[data-side="top"]::before,
770
+ &[data-side="bottom"]::before {
771
+ height: var(--media-tooltip-side-offset);
772
+ }
773
+ &[data-side="left"]::before,
774
+ &[data-side="right"]::before {
775
+ width: var(--media-tooltip-side-offset);
776
+ }
777
+ }
778
+
779
+ .media-minimal-skin .media-popover--volume:has(media-volume-slider[data-availability="unsupported"]) {
780
+ display: none;
781
+ }
782
+
783
+ /* ==========================================================================
784
+ Menus
785
+ Note: Menus use `.media-popover` styles for positioning and transitions.
786
+ ========================================================================== */
787
+
788
+ .media-minimal-skin .media-popover.media-menu {
789
+ box-sizing: border-box;
790
+ min-width: min(6rem, var(--media-popover-available-width, 6rem));
791
+ max-width: var(--media-popover-available-width, none);
792
+ max-height: var(--media-popover-available-height, none);
793
+ padding: 0.25rem;
794
+ overflow: auto;
795
+ overscroll-behavior: none;
796
+ background-color: var(--media-tooltip-background-color);
797
+ border-radius: 0.75rem;
798
+ box-shadow:
799
+ 0 0 0 1px var(--media-tooltip-border-color),
800
+ 0 4px 6px -1px oklch(0 0 0 / 0.1),
801
+ 0 2px 4px -2px oklch(0 0 0 / 0.1);
802
+ backdrop-filter: var(--media-tooltip-backdrop-filter);
803
+
804
+ &::before {
805
+ display: none;
806
+ }
807
+ }
808
+
809
+ .media-minimal-skin .media-popover.media-menu .media-menu__group {
810
+ display: flex;
811
+ flex-direction: column;
812
+ gap: 0.125rem;
813
+ }
814
+
815
+ .media-minimal-skin .media-popover.media-menu .media-menu__item {
816
+ display: flex;
817
+ gap: 0.5rem;
818
+ align-items: center;
819
+ justify-content: space-between;
820
+ min-height: 2rem;
821
+ padding: 0 0.625rem;
822
+ font-variant-numeric: tabular-nums;
823
+ color: inherit;
824
+ cursor: pointer;
825
+ outline: 2px solid transparent;
826
+ outline-offset: -2px;
827
+ border-radius: 0.5rem;
828
+
829
+ &:hover,
830
+ &[data-highlighted] {
831
+ background-color: oklch(from currentColor l c h / 0.1);
832
+ }
833
+
834
+ &:focus-visible {
835
+ outline-color: currentColor;
836
+ outline-offset: 2px;
837
+ }
838
+
839
+ &[aria-disabled="true"] {
840
+ pointer-events: none;
841
+ cursor: not-allowed;
842
+ opacity: 0.5;
843
+ }
844
+ }
845
+
846
+ .media-minimal-skin .media-popover.media-menu .media-menu__indicator {
847
+ flex-shrink: 0;
848
+ margin-right: -0.25rem;
849
+ opacity: 0;
850
+ }
851
+
852
+ .media-minimal-skin .media-popover.media-menu .media-menu__item[aria-checked="true"] .media-menu__indicator {
853
+ opacity: 1;
854
+ }
855
+
856
+ /* ==========================================================================
857
+ Native Caption Track
858
+ ========================================================================== */
859
+
860
+ .media-minimal-skin {
861
+ --media-caption-track-duration: var(--media-controls-transition-duration);
862
+ --media-caption-track-delay: 25ms;
863
+ --media-caption-track-y: -0.5rem;
864
+
865
+ &:has(.media-controls[data-visible]) {
866
+ --media-caption-track-y: -5rem;
867
+ }
868
+
869
+ @container media-root (width > 42rem) {
870
+ &:has(.media-controls[data-visible]) > * {
871
+ --media-caption-track-y: -3rem;
872
+ }
873
+ }
874
+ }
875
+
876
+ .media-minimal-skin video::-webkit-media-text-track-container {
877
+ z-index: 1;
878
+ font-family: inherit;
879
+ scale: 0.98;
880
+ translate: 0 var(--media-caption-track-y);
881
+ transition: translate var(--media-caption-track-duration) ease-out;
882
+ transition-delay: var(--media-caption-track-delay);
883
+ }
884
+
885
+ /* ==========================================================================
886
+ Input Feedback
887
+ ========================================================================== */
888
+
889
+ .media-minimal-skin .media-input-feedback {
890
+ position: absolute;
891
+ inset-inline: 0;
892
+ top: 0;
893
+ bottom: 3.5rem; /* Shift up a little in smaller containers */
894
+ display: grid;
895
+ grid-template-columns: 1fr 1fr 1fr;
896
+ align-items: center;
897
+ justify-items: center;
898
+ overflow: hidden;
899
+ color: var(--media-color-primary, oklch(1 0 0));
900
+ pointer-events: none;
901
+ border-radius: inherit;
902
+
903
+ @container media-root (width > 24rem) {
904
+ bottom: 0;
905
+ }
906
+ }
907
+
908
+ /* --- Feedback islands ------------------------------------------------------- */
909
+
910
+ .media-minimal-skin .media-input-feedback-island {
911
+ position: absolute;
912
+ inset-inline: 0;
913
+ top: 0;
914
+ display: flex;
915
+ justify-content: center;
916
+ padding-top: 0.75rem;
917
+ padding-bottom: 8rem;
918
+ color: inherit;
919
+ text-shadow: 0 1px 0 var(--media-current-shadow-color);
920
+ pointer-events: none;
921
+ background-image: linear-gradient(to bottom, oklch(0 0 0 / 0.35), oklch(0 0 0 / 0.2) 3rem, oklch(0 0 0 / 0));
922
+ transform-origin: top center;
923
+ transition-timing-function: ease-out;
924
+ transition-duration: 100ms;
925
+
926
+ .media-input-feedback-island__content {
927
+ display: flex;
928
+ gap: 0.5rem;
929
+ align-items: center;
930
+ justify-content: space-between;
931
+ padding: 0.25rem 0.625rem;
932
+ }
933
+
934
+ .media-icon {
935
+ display: none;
936
+ flex-shrink: 0;
937
+ filter: drop-shadow(0 1px 0 var(--media-current-shadow-color));
938
+ }
939
+
940
+ .media-input-feedback-island__value {
941
+ margin-left: auto;
942
+ }
943
+
944
+ @media (pointer: fine) {
945
+ transition-property: translate, filter, opacity;
946
+ will-change: translate, filter, opacity;
947
+ }
948
+
949
+ @media (pointer: coarse) {
950
+ transition-property: translate, opacity;
951
+ will-change: translate, opacity;
952
+ }
953
+
954
+ @media (pointer: fine) and (prefers-reduced-motion: no-preference) {
955
+ transition-property: translate, filter, opacity;
956
+ }
957
+
958
+ @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {
959
+ .media-input-feedback-island__content {
960
+ background: var(--media-controls-background-color);
961
+ border-radius: 0.5rem;
962
+ }
963
+ }
964
+
965
+ /* Default hidden state */
966
+ &[data-starting-style],
967
+ &[data-ending-style] {
968
+ opacity: 0;
969
+ transition-timing-function: ease-in;
970
+ transition-duration: 400ms;
971
+
972
+ @media (pointer: fine) and (prefers-reduced-motion: no-preference) {
973
+ filter: blur(8px);
974
+ }
975
+
976
+ @media (prefers-reduced-motion: no-preference) {
977
+ &[data-ending-style] {
978
+ translate: 0 -100%;
979
+ }
980
+ }
981
+ }
982
+ }
983
+
984
+ .media-minimal-skin .media-input-feedback-island--volume {
985
+ .media-input-feedback-island__content {
986
+ width: min(80%, 14rem);
987
+ }
988
+
989
+ .media-input-feedback-island__progress {
990
+ --media-progress-fill: var(--media-volume-fill);
991
+ width: 100%;
992
+ height: 0.1875rem;
993
+ background-image: linear-gradient(
994
+ to right,
995
+ currentColor 0%,
996
+ currentColor var(--media-progress-fill),
997
+ oklch(from currentColor l c h / 0.2) var(--media-progress-fill),
998
+ oklch(from currentColor l c h / 0.2) 100%
999
+ );
1000
+ border-radius: calc(Infinity * 1px);
1001
+ box-shadow: 0 1px 0 var(--media-current-shadow-color-subtle);
1002
+ }
1003
+ }
1004
+
1005
+ .media-minimal-skin .media-input-feedback-island--volume[data-level="high"] .media-icon--volume-high,
1006
+ .media-minimal-skin .media-input-feedback-island--volume[data-level="low"] .media-icon--volume-low,
1007
+ .media-minimal-skin .media-input-feedback-island--volume[data-level="off"] .media-icon--volume-off {
1008
+ display: block;
1009
+ }
1010
+
1011
+ .media-minimal-skin .media-input-feedback-island--status[data-status="captions-on"] .media-icon--captions-on,
1012
+ .media-minimal-skin .media-input-feedback-island--status[data-status="captions-off"] .media-icon--captions-off,
1013
+ .media-minimal-skin .media-input-feedback-island--status[data-status="fullscreen"] .media-icon--fullscreen-enter,
1014
+ .media-minimal-skin .media-input-feedback-island--status[data-status="exit-fullscreen"] .media-icon--fullscreen-exit,
1015
+ .media-minimal-skin .media-input-feedback-island--status[data-status="pip"] .media-icon--pip-enter,
1016
+ .media-minimal-skin .media-input-feedback-island--status[data-status="exit-pip"] .media-icon--pip-exit {
1017
+ display: block;
1018
+ }
1019
+
1020
+ /* --- Boundary shake ------------------------------------------------------- */
1021
+
1022
+ @media (prefers-reduced-motion: no-preference) {
1023
+ .media-minimal-skin .media-input-feedback-island--volume[data-min] .media-input-feedback-island__content,
1024
+ .media-minimal-skin .media-input-feedback-island--volume[data-max] .media-input-feedback-island__content {
1025
+ animation: media-shake 300ms ease-in-out;
1026
+ }
1027
+ }
1028
+
1029
+ /* --- Bubble ---------------------------------------------------------------- */
1030
+
1031
+ .media-minimal-skin .media-input-feedback-bubble {
1032
+ display: flex;
1033
+ flex-direction: column;
1034
+ grid-row: 1;
1035
+ grid-column: 2; /* default to center for status bubbles and undirected seeks */
1036
+ align-items: center;
1037
+ justify-content: center;
1038
+ padding: 1rem;
1039
+ transition: opacity 250ms ease-out;
1040
+
1041
+ @container media-root (width > 24rem) {
1042
+ padding: 2rem;
1043
+ }
1044
+
1045
+ &[data-starting-style],
1046
+ &[data-ending-style] {
1047
+ opacity: 0;
1048
+ transition-timing-function: ease-in;
1049
+ transition-duration: 200ms;
1050
+ }
1051
+ }
1052
+ /* Direction placement — seek bubbles move to the side implied by their direction. */
1053
+ .media-minimal-skin .media-input-feedback-bubble[data-direction="backward"] {
1054
+ grid-column: 1;
1055
+ justify-self: left;
1056
+ }
1057
+
1058
+ .media-minimal-skin .media-input-feedback-bubble:not([data-direction]) {
1059
+ grid-column: 2;
1060
+ transition-timing-function:
1061
+ ease-out, linear(0, 0.12 1.5%, 1.35 9.7%, 2.2 13.9%, 3 19.9%, 2.7 21.8%, 0.62 37.5%, 0.96 50.9%, 1);
1062
+ transition-duration: 600ms;
1063
+ transition-property: opacity, scale;
1064
+
1065
+ @media (prefers-reduced-motion: reduce) {
1066
+ transition: opacity 100ms ease-out;
1067
+ }
1068
+
1069
+ &[data-starting-style],
1070
+ &[data-ending-style] {
1071
+ opacity: 0;
1072
+ scale: 0.8;
1073
+ transition-timing-function: ease-in;
1074
+ transition-duration: 200ms;
1075
+ }
1076
+ }
1077
+
1078
+ .media-minimal-skin .media-input-feedback-bubble[data-direction="forward"] {
1079
+ grid-column: 3;
1080
+ justify-self: right;
1081
+ }
1082
+
1083
+ /* --- Bubble icons ---------------------------------------------------------- */
1084
+
1085
+ .media-minimal-skin .media-input-feedback-bubble .media-icon {
1086
+ display: none;
1087
+ width: 36px;
1088
+ height: 36px;
1089
+ }
1090
+
1091
+ /* seek: seek icon, flipped for backward */
1092
+ .media-minimal-skin .media-input-feedback-bubble[data-direction] .media-icon--seek {
1093
+ display: block;
1094
+ }
1095
+
1096
+ .media-minimal-skin .media-input-feedback-bubble[data-direction="backward"] .media-icon--seek {
1097
+ transform: scaleX(-1);
1098
+ }
1099
+
1100
+ @media (prefers-reduced-motion: no-preference) {
1101
+ .media-minimal-skin
1102
+ .media-input-feedback-bubble[data-direction="forward"]:not([data-starting-style])
1103
+ .media-icon--seek {
1104
+ animation: media-slide-in-forward 300ms ease-in-out;
1105
+ }
1106
+
1107
+ .media-minimal-skin
1108
+ .media-input-feedback-bubble[data-direction="backward"]:not([data-starting-style])
1109
+ .media-icon--seek {
1110
+ animation: media-slide-in-backward 300ms ease-in-out;
1111
+ }
1112
+
1113
+ .media-minimal-skin .media-input-feedback-island--status[data-status]:not([data-starting-style]) .media-icon,
1114
+ .media-minimal-skin .media-input-feedback-bubble[data-status]:not([data-starting-style]) .media-icon {
1115
+ animation: media-pop-in 250ms ease-out;
1116
+ }
1117
+ }
1118
+
1119
+ .media-minimal-skin .media-input-feedback-bubble[data-status="pause"] .media-icon--pause,
1120
+ .media-minimal-skin .media-input-feedback-bubble[data-status="play"] .media-icon--play {
1121
+ display: block;
1122
+ }
1123
+
1124
+ /* ==========================================================================
1125
+ Icon State Visibility for Video Skins
1126
+
1127
+ Data-attribute-driven visibility rules for multi-state icon buttons.
1128
+ Uses :is() with both element selectors (for HTML custom element wrappers)
1129
+ and class selectors (for React rendered SVG elements).
1130
+ ========================================================================== */
1131
+
1132
+ /* --- All icons hidden by default --- */
1133
+
1134
+ .media-button--play .media-icon--restart,
1135
+ .media-button--play .media-icon--play,
1136
+ .media-button--play .media-icon--pause,
1137
+ .media-button--mute .media-icon--volume-off,
1138
+ .media-button--mute .media-icon--volume-low,
1139
+ .media-button--mute .media-icon--volume-high,
1140
+ .media-button--fullscreen .media-icon--fullscreen-enter,
1141
+ .media-button--fullscreen .media-icon--fullscreen-exit,
1142
+ .media-button--pip .media-icon--pip-enter,
1143
+ .media-button--pip .media-icon--pip-exit,
1144
+ .media-button--cast .media-icon--cast-enter,
1145
+ .media-button--cast .media-icon--cast-exit,
1146
+ .media-button--captions .media-icon--captions-off,
1147
+ .media-button--captions .media-icon--captions-on {
1148
+ display: none;
1149
+ opacity: 0;
1150
+ }
1151
+
1152
+ /* --- Active icon per state --- */
1153
+
1154
+ /* Play: ended → restart */
1155
+ .media-button--play[data-ended] .media-icon--restart,
1156
+ /* Play: paused (not ended) → play */
1157
+ .media-button--play:not([data-ended])[data-paused] .media-icon--play,
1158
+ /* Play: playing (not paused, not ended) → pause */
1159
+ .media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
1160
+ /* Mute: muted → volume off */
1161
+ .media-button--mute[data-muted] .media-icon--volume-off,
1162
+ /* Mute: volume low (not muted) → volume low */
1163
+ .media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
1164
+ /* Mute: volume high (not muted, not low) → volume high */
1165
+ .media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high,
1166
+ /* Fullscreen: not fullscreen → enter */
1167
+ .media-button--fullscreen:not([data-fullscreen]) .media-icon--fullscreen-enter,
1168
+ /* Fullscreen: fullscreen → exit */
1169
+ .media-button--fullscreen[data-fullscreen] .media-icon--fullscreen-exit,
1170
+ /* Picture-in-Picture: not active → enter */
1171
+ .media-button--pip:not([data-pip]) .media-icon--pip-enter,
1172
+ /* Picture-in-Picture: active → exit */
1173
+ .media-button--pip[data-pip] .media-icon--pip-exit,
1174
+ /* Cast: not connected → enter */
1175
+ .media-button--cast:not([data-cast-state="connected"]) .media-icon--cast-enter,
1176
+ /* Cast: connected → exit */
1177
+ .media-button--cast[data-cast-state="connected"] .media-icon--cast-exit,
1178
+ /* Captions: not active → captions off */
1179
+ .media-button--captions:not([data-active]) .media-icon--captions-off,
1180
+ /* Captions: active → captions on */
1181
+ .media-button--captions[data-active] .media-icon--captions-on {
1182
+ display: block;
1183
+ opacity: 1;
1184
+ }
1185
+
1186
+ /* -------------------------------------------------------------------------- */
1187
+ /* Global @keyframes for all video skins (CSS & Tailwind) */
1188
+ /* -------------------------------------------------------------------------- */
1189
+
1190
+ @keyframes media-shake {
1191
+ 0%,
1192
+ 100% {
1193
+ translate: 0 0;
1194
+ }
1195
+ 20% {
1196
+ translate: -6px 0;
1197
+ }
1198
+ 40% {
1199
+ translate: 4px 0;
1200
+ }
1201
+ 60% {
1202
+ translate: -2px 0;
1203
+ }
1204
+ 80% {
1205
+ translate: 1px 0;
1206
+ }
1207
+ }
1208
+
1209
+ @keyframes media-slide-in-forward {
1210
+ from {
1211
+ translate: -60% 0;
1212
+ opacity: 0;
1213
+ }
1214
+ }
1215
+
1216
+ @keyframes media-slide-in-backward {
1217
+ from {
1218
+ translate: 60% 0;
1219
+ opacity: 0;
1220
+ }
1221
+ }
1222
+
1223
+ @keyframes media-pop-in {
1224
+ from {
1225
+ scale: 0.8;
1226
+ opacity: 0;
1227
+ }
1228
+ }
1229
+
1230
+ /* -------------------------------------------------------------------------- */
1231
+ /* Global @properties for all video skins (CSS & Tailwind) */
1232
+ /* -------------------------------------------------------------------------- */
1233
+
1234
+ @property --media-progress-fill {
1235
+ syntax: "<percentage>";
1236
+ inherits: true;
1237
+ initial-value: 0%;
1238
+ }
1239
+
1240
+
1241
+ /* ==========================================================================
1242
+ Root
1243
+ ========================================================================== */
1244
+
1245
+ .media-minimal-skin--video {
1246
+ --media-border-color: oklch(0 0 0 / 0.15);
1247
+ --media-video-border-radius: var(--media-border-radius, 0.75rem);
1248
+ --media-controls-background-color: transparent;
1249
+ --media-controls-transition-duration: 100ms;
1250
+ --media-controls-transition-timing-function: ease-out;
1251
+ --media-error-dialog-transition-duration: 150ms;
1252
+ --media-error-dialog-transition-delay: 100ms;
1253
+ --media-error-dialog-transition-timing-function: ease-out;
1254
+ --media-popup-transition-duration: 100ms;
1255
+ --media-popup-transition-timing-function: ease-out;
1256
+ --media-tooltip-background-color: oklch(1 0 0 / 0.1);
1257
+ --media-tooltip-border-color: transparent;
1258
+ --media-tooltip-backdrop-filter: blur(16px) saturate(1.5);
1259
+ --media-tooltip-text-color: currentColor;
1260
+ --media-tooltip-side-offset: 0.5rem;
1261
+ --media-tooltip-boundary-offset: 0.5rem;
1262
+ --media-popover-side-offset: 1.5rem;
1263
+ --media-popover-boundary-offset: 0.5rem;
1264
+ overflow: clip;
1265
+ background: oklch(0 0 0);
1266
+
1267
+ @media (prefers-reduced-motion: reduce) {
1268
+ --media-error-dialog-transition-duration: 50ms;
1269
+ --media-error-dialog-transition-delay: 0ms;
1270
+ --media-popup-transition-duration: 0ms;
1271
+ }
1272
+
1273
+ @media (prefers-color-scheme: dark) {
1274
+ --media-border-color: oklch(1 0 0 / 0.15);
1275
+ }
1276
+
1277
+ @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {
1278
+ --media-controls-background-color: oklch(0 0 0);
1279
+ --media-tooltip-background-color: oklch(0 0 0);
1280
+ }
1281
+
1282
+ @container media-root (width > 42rem) {
1283
+ & > * {
1284
+ --media-popover-side-offset: 0.5rem;
1285
+ }
1286
+ }
1287
+
1288
+ &:has(.media-controls:not([data-visible])) {
1289
+ /* Slight delay to hide controls on non-touch devices after interaction */
1290
+ @media (pointer: fine) {
1291
+ --media-controls-transition-duration: 300ms;
1292
+ }
1293
+ @media (pointer: coarse) {
1294
+ --media-controls-transition-duration: 150ms;
1295
+ }
1296
+ @media (prefers-reduced-motion: reduce) {
1297
+ --media-controls-transition-duration: 50ms;
1298
+ }
1299
+ }
1300
+
1301
+ /* Inner border ring */
1302
+ &::after {
1303
+ position: absolute;
1304
+ inset: 0;
1305
+ z-index: 10;
1306
+ pointer-events: none;
1307
+ content: "";
1308
+ border-radius: inherit;
1309
+ box-shadow: inset 0 0 0 1px var(--media-border-color);
1310
+ }
1311
+
1312
+ /* Fullscreen */
1313
+ &:fullscreen {
1314
+ --media-border-radius: 0;
1315
+ }
1316
+ }
1317
+
1318
+ /* ==========================================================================
1319
+ Error Dialog
1320
+ ========================================================================== */
1321
+
1322
+ .media-minimal-skin--video .media-error {
1323
+ position: absolute;
1324
+ inset: 0;
1325
+ z-index: 20;
1326
+ display: flex;
1327
+ align-items: center;
1328
+ justify-content: center;
1329
+ pointer-events: none;
1330
+ outline: none;
1331
+ }
1332
+
1333
+ .media-minimal-skin--video .media-error__dialog {
1334
+ display: flex;
1335
+ flex-direction: column;
1336
+ gap: 0.75rem;
1337
+ max-width: 16rem;
1338
+ padding: 1rem;
1339
+ color: oklch(1 0 0);
1340
+ text-shadow: 0 1px 0 oklch(0 0 0 / 0.5);
1341
+ pointer-events: auto;
1342
+ transition-delay: var(--media-error-dialog-transition-delay);
1343
+ transition-timing-function: var(--media-error-dialog-transition-timing-function);
1344
+ transition-duration: var(--media-error-dialog-transition-duration);
1345
+ transition-property: opacity, scale;
1346
+ }
1347
+
1348
+ .media-minimal-skin--video .media-error[data-starting-style] .media-error__dialog,
1349
+ .media-minimal-skin--video .media-error[data-ending-style] .media-error__dialog {
1350
+ opacity: 0;
1351
+ scale: 0.5;
1352
+ }
1353
+ .media-minimal-skin--video .media-error[data-ending-style] .media-error__dialog {
1354
+ transition-delay: 0ms;
1355
+ }
1356
+
1357
+ .media-minimal-skin--video .media-error__content {
1358
+ display: flex;
1359
+ flex-direction: column;
1360
+ gap: 0.5rem;
1361
+ padding: 0.375rem 0;
1362
+ }
1363
+
1364
+ .media-minimal-skin--video .media-error__title {
1365
+ font-size: 1.125rem;
1366
+ }
1367
+
1368
+ .media-minimal-skin--video .media-error[data-open] ~ .media-controls {
1369
+ display: none;
1370
+ }
1371
+
1372
+ /* ==========================================================================
1373
+ Controls (hide/show behavior)
1374
+ ========================================================================== */
1375
+
1376
+ .media-minimal-skin--video .media-controls {
1377
+ position: absolute;
1378
+ inset-inline: 0.25rem;
1379
+ bottom: 0.25rem;
1380
+ z-index: 10;
1381
+ flex-wrap: wrap;
1382
+ column-gap: 0.5rem;
1383
+ max-width: 56rem;
1384
+ padding: 0.25rem;
1385
+ margin-inline: auto;
1386
+ color: oklch(1 0 0);
1387
+ border-radius: 0.75rem;
1388
+ transition-timing-function: var(--media-controls-transition-timing-function);
1389
+ transition-duration: var(--media-controls-transition-duration);
1390
+
1391
+ @media (pointer: fine) {
1392
+ transition-property: translate, filter, opacity;
1393
+ will-change: translate, filter, opacity;
1394
+ }
1395
+
1396
+ @media (pointer: coarse) {
1397
+ transition-property: translate, opacity;
1398
+ will-change: translate, opacity;
1399
+ }
1400
+
1401
+ &:not([data-visible]) {
1402
+ pointer-events: none;
1403
+ opacity: 0;
1404
+
1405
+ @media (pointer: fine) and (prefers-reduced-motion: no-preference) {
1406
+ filter: blur(8px);
1407
+ }
1408
+
1409
+ @media (prefers-reduced-motion: no-preference) {
1410
+ translate: 0 100%;
1411
+ }
1412
+ }
1413
+
1414
+ & .media-time-controls {
1415
+ flex: 0 0 100%;
1416
+ order: -1;
1417
+ padding-inline: 0.625rem;
1418
+ }
1419
+
1420
+ & .media-button-group:first-child {
1421
+ flex: 1;
1422
+ text-align: left;
1423
+ }
1424
+
1425
+ & .media-button-group:last-child {
1426
+ flex: 1;
1427
+ justify-content: end;
1428
+ }
1429
+
1430
+ @container media-root (width > 42rem) {
1431
+ inset-inline: 0.5rem;
1432
+ bottom: 0.5rem;
1433
+ flex-wrap: nowrap;
1434
+
1435
+ & .media-time-controls {
1436
+ flex: 1;
1437
+ order: unset;
1438
+ }
1439
+
1440
+ & .media-button-group:first-child,
1441
+ & .media-button-group:last-child {
1442
+ flex: 0 0 auto;
1443
+ }
1444
+ }
1445
+ }
1446
+
1447
+ /* Hide cursor when controls are hidden */
1448
+ .media-minimal-skin--video:has(.media-controls:not([data-visible])) {
1449
+ cursor: none;
1450
+ }
1451
+
1452
+ /* ==========================================================================
1453
+ Sliders
1454
+ ========================================================================== */
1455
+
1456
+ .media-minimal-skin--video .media-slider__track {
1457
+ box-shadow: 0 0 0 1px oklch(0 0 0 / 0.05);
1458
+ }
1459
+
1460
+ /* ==========================================================================
1461
+ Popups & Animations
1462
+ ========================================================================== */
1463
+
1464
+ .media-minimal-skin--video .media-popover--volume {
1465
+ padding-block: 0.75rem;
1466
+ background: transparent;
1467
+ border-radius: 0.75rem;
1468
+
1469
+ @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {
1470
+ background: var(--media-controls-background-color);
1471
+ }
1472
+
1473
+ @container media-root (width > 42rem) {
1474
+ & > * {
1475
+ --media-popover-side-offset: 0rem;
1476
+ }
1477
+ }
1478
+ }
1479
+
1480
+ /* ==========================================================================
1481
+ Slider preview
1482
+ ========================================================================== */
1483
+
1484
+ .media-minimal-skin--video .media-slider__preview {
1485
+ --media-preview-max-width: 11rem;
1486
+ --media-preview-padding: -0.5rem;
1487
+ /**
1488
+ Inset is the difference between the container width and the slider (100%) width.
1489
+ We only add to the end as we render the time there.
1490
+ */
1491
+ --media-preview-inset: calc(100cqi - 100%);
1492
+
1493
+ position: absolute;
1494
+ bottom: 100%;
1495
+ left: clamp(
1496
+ calc(var(--media-preview-max-width) / 2 + var(--media-preview-padding)),
1497
+ var(--media-slider-pointer),
1498
+ calc(100% - var(--media-preview-max-width) / 2 - var(--media-preview-padding) + var(--media-preview-inset))
1499
+ );
1500
+ opacity: 0;
1501
+ filter: blur(8px);
1502
+ transform-origin: bottom;
1503
+ scale: 0.8;
1504
+ translate: -50%;
1505
+ transition-timing-function: ease-out;
1506
+ transition-duration: 150ms;
1507
+ transition-property: scale, opacity, filter;
1508
+
1509
+ @container media-root (width > 42rem) {
1510
+ bottom: calc(100% + 0.25rem);
1511
+ left: var(--media-slider-pointer);
1512
+ }
1513
+
1514
+ & .media-preview__thumbnail-wrapper {
1515
+ position: relative;
1516
+
1517
+ &::after {
1518
+ position: absolute;
1519
+ inset: 0;
1520
+ content: "";
1521
+ border-radius: inherit;
1522
+ box-shadow:
1523
+ 0 0 0 1px oklch(0 0 0 / 0.05),
1524
+ 0 1px 3px 0 oklch(0 0 0 / 0.2),
1525
+ 0 1px 2px -1px oklch(0 0 0 / 0.2);
1526
+ }
1527
+ }
1528
+
1529
+ & .media-preview__thumbnail {
1530
+ max-width: var(--media-preview-max-width);
1531
+ }
1532
+
1533
+ &:has(.media-preview__thumbnail[data-loading]) {
1534
+ max-height: 6rem;
1535
+ }
1536
+ }
1537
+ .media-minimal-skin--video .media-slider[data-pointing] .media-slider__preview:has([role="img"]:not([data-hidden])) {
1538
+ opacity: 1;
1539
+ filter: blur(0);
1540
+ scale: 1;
1541
+ }
1542
+