@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
@@ -16,6 +16,10 @@
16
16
  .media-default-skin button {
17
17
  font: inherit;
18
18
  }
19
+ .media-default-skin [hidden][hidden] {
20
+ /* Keep authored templates hidden even when component classes set display. */
21
+ display: none;
22
+ }
19
23
  @media (prefers-reduced-motion: no-preference) {
20
24
  .media-default-skin {
21
25
  interpolate-size: allow-keywords;
@@ -27,38 +31,36 @@
27
31
  ========================================================================== */
28
32
 
29
33
  .media-default-skin {
30
- container: media-root / inline-size;
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;
31
37
  position: relative;
32
- isolation: isolate;
33
38
  display: block;
34
- height: 100%;
35
39
  width: 100%;
36
- border-radius: var(--media-border-radius, 2rem);
37
- outline: 2px solid transparent;
38
- outline-offset: 2px;
39
-
40
- &:focus-visible {
41
- outline-color: currentColor;
42
- }
40
+ height: 100%;
41
+ container: media-root / inline-size;
43
42
  font-family:
44
43
  Inter Variable,
45
44
  Inter,
46
45
  ui-sans-serif,
47
46
  system-ui,
48
47
  sans-serif;
49
- line-height: 1.5;
50
- letter-spacing: normal;
48
+ font-size: 0.8125rem; /* 13px at 100% font size */
51
49
  -webkit-font-smoothing: auto;
52
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, 2rem);
56
+ isolation: isolate;
57
+ transition-timing-function: ease-out;
58
+ transition-duration: 100ms;
59
+ transition-property: outline-offset, outline-color;
53
60
 
54
- & > * {
55
- font-size: 0.75rem; /* 12px at 100% font size */
56
- }
57
-
58
- @container media-root (width > 48rem) {
59
- & > * {
60
- font-size: 0.875rem; /* 14px at 100% font size */
61
- }
61
+ &:focus-visible {
62
+ outline-color: currentColor;
63
+ outline-offset: 2px;
62
64
  }
63
65
  }
64
66
 
@@ -68,21 +70,21 @@
68
70
 
69
71
  .media-default-skin .media-surface {
70
72
  background-color: var(--media-surface-background-color);
71
- backdrop-filter: var(--media-surface-backdrop-filter);
72
73
  box-shadow:
73
74
  0 0 0 1px var(--media-surface-outer-border-color),
74
75
  0 1px 3px 0 var(--media-surface-shadow-color),
75
76
  0 1px 2px -1px var(--media-surface-shadow-color);
77
+ backdrop-filter: var(--media-surface-backdrop-filter);
76
78
 
77
79
  /* Inner border ring */
78
80
  &::after {
79
- content: "";
80
81
  position: absolute;
81
82
  inset: 0;
82
83
  z-index: 10;
84
+ pointer-events: none;
85
+ content: "";
83
86
  border-radius: inherit;
84
87
  box-shadow: inset 0 0 0 1px var(--media-surface-inner-border-color);
85
- pointer-events: none;
86
88
  }
87
89
  }
88
90
 
@@ -117,19 +119,19 @@
117
119
  .media-default-skin .media-overlay {
118
120
  position: absolute;
119
121
  inset: 0;
120
- border-radius: inherit;
122
+ pointer-events: none;
121
123
  background-image: linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.3), oklch(0 0 0 / 0));
122
- backdrop-filter: blur(0) saturate(1);
124
+ border-radius: inherit;
123
125
  opacity: 0;
124
- pointer-events: none;
125
- transition-property: opacity, backdrop-filter;
126
- transition-duration: var(--media-controls-transition-duration);
126
+ backdrop-filter: blur(0) saturate(1);
127
127
  transition-timing-function: ease-out;
128
+ transition-duration: var(--media-controls-transition-duration);
129
+ transition-property: opacity, backdrop-filter;
128
130
  }
129
131
 
130
132
  .media-default-skin .media-error ~ .media-overlay {
131
- transition-duration: var(--media-error-dialog-transition-duration);
132
133
  transition-delay: var(--media-error-dialog-transition-delay);
134
+ transition-duration: var(--media-error-dialog-transition-duration);
133
135
  }
134
136
 
135
137
  .media-default-skin .media-controls[data-visible] ~ .media-overlay,
@@ -154,6 +156,10 @@
154
156
  color: oklch(1 0 0);
155
157
  pointer-events: none;
156
158
 
159
+ &:not([data-visible]) {
160
+ --media-spinner-animation: none;
161
+ }
162
+
157
163
  &[data-visible] {
158
164
  display: flex;
159
165
  }
@@ -182,8 +188,8 @@
182
188
  }
183
189
 
184
190
  .media-default-skin .media-error__description {
185
- opacity: 0.7;
186
191
  overflow-wrap: anywhere;
192
+ opacity: 0.7;
187
193
  }
188
194
 
189
195
  .media-default-skin .media-error__actions {
@@ -204,18 +210,13 @@
204
210
  ========================================================================== */
205
211
 
206
212
  .media-default-skin .media-controls {
207
- container: media-controls / inline-size;
208
213
  display: flex;
209
- align-items: center;
210
214
  column-gap: 0.075rem;
215
+ align-items: center;
211
216
  padding: 0.375rem;
217
+ container: media-controls / inline-size;
218
+ text-shadow: 0 1px 0 var(--media-current-shadow-color);
212
219
  border-radius: 1.5rem;
213
- --media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));
214
- --media-controls-current-shadow-color-subtle: oklch(
215
- from var(--media-controls-current-shadow-color) l c h /
216
- calc(alpha * 0.4)
217
- );
218
- text-shadow: 0 1px 0 var(--media-controls-current-shadow-color);
219
220
  }
220
221
 
221
222
  /* ==========================================================================
@@ -223,12 +224,12 @@
223
224
  ========================================================================== */
224
225
 
225
226
  .media-default-skin .media-time-controls {
226
- container: media-time-controls / inline-size;
227
227
  display: flex;
228
- align-items: center;
229
228
  flex: 1;
230
229
  gap: 0.75rem;
230
+ align-items: center;
231
231
  padding-inline: 0.5rem;
232
+ container: media-time-controls / inline-size;
232
233
  }
233
234
 
234
235
  .media-default-skin .media-time {
@@ -242,23 +243,24 @@
242
243
  /* Base button */
243
244
  .media-default-skin .media-button {
244
245
  display: flex;
246
+ flex-shrink: 0;
245
247
  align-items: center;
246
248
  justify-content: center;
247
- flex-shrink: 0;
249
+ min-height: 0;
248
250
  padding: 0.5rem 1rem;
249
- border: none;
250
- border-radius: calc(infinity * 1px);
251
+ text-align: center;
252
+ touch-action: manipulation;
253
+ cursor: pointer;
254
+ user-select: none;
251
255
  outline: 2px solid transparent;
252
256
  outline-offset: -2px;
257
+ border: none;
258
+ border-radius: calc(infinity * 1px);
259
+ transition-timing-function: ease-out;
260
+ transition-duration: 150ms;
253
261
  transition-property: background-color, outline-offset, scale;
254
262
  /* Fix weird jumping when clicking on the buttons in Safari. */
255
263
  will-change: scale;
256
- transition-duration: 150ms;
257
- transition-timing-function: ease-out;
258
- cursor: pointer;
259
- user-select: none;
260
- text-align: center;
261
- touch-action: manipulation;
262
264
 
263
265
  &:focus-visible {
264
266
  outline-color: currentColor;
@@ -270,35 +272,36 @@
270
272
  }
271
273
 
272
274
  &[disabled] {
275
+ cursor: not-allowed;
273
276
  opacity: 0.5;
274
277
  filter: grayscale(1);
275
- cursor: not-allowed;
276
278
  }
277
279
 
278
- &[data-availability="unavailable"] {
280
+ &[data-availability="unavailable"],
281
+ &[data-availability="unsupported"] {
279
282
  display: none;
280
283
  }
281
284
  }
282
285
 
283
286
  /* Primary button variant */
284
287
  .media-default-skin .media-button--primary {
285
- background: oklch(1 0 0);
286
- color: oklch(0 0 0);
287
288
  font-weight: 500;
289
+ color: oklch(0 0 0);
288
290
  text-shadow: none;
291
+ background: oklch(1 0 0);
289
292
  }
290
293
 
291
294
  /* Subtle button variant */
292
295
  .media-default-skin .media-button--subtle {
293
- background: transparent;
294
296
  color: inherit;
295
297
  text-shadow: inherit;
298
+ background: transparent;
296
299
 
297
300
  &:hover,
298
301
  &:focus-visible,
299
302
  &[aria-expanded="true"] {
300
- background-color: oklch(from currentColor l c h / 0.1);
301
303
  text-decoration: none;
304
+ background-color: oklch(from currentColor l c h / 0.1);
302
305
  }
303
306
  }
304
307
 
@@ -306,15 +309,20 @@
306
309
  .media-default-skin .media-button--icon {
307
310
  display: grid;
308
311
  width: 2.25rem;
309
- padding: 0;
310
312
  aspect-ratio: 1;
313
+ padding: 0;
311
314
 
312
315
  &:active {
313
316
  scale: 0.9;
314
317
  }
315
318
 
316
319
  & .media-icon {
317
- filter: drop-shadow(0 1px 0 var(--media-controls-current-shadow-color, oklch(0 0 0 / 0.25)));
320
+ grid-area: 1 / 1;
321
+ transition-behavior: allow-discrete;
322
+ transition-property: display, opacity;
323
+ transition-duration: 150ms;
324
+ transition-timing-function: ease-out;
325
+ filter: drop-shadow(0 1px 0 var(--media-current-shadow-color));
318
326
  }
319
327
  }
320
328
 
@@ -338,11 +346,47 @@
338
346
  /* Playback rate button */
339
347
  .media-default-skin .media-button--playback-rate {
340
348
  padding: 0;
349
+ font-variant-numeric: tabular-nums;
341
350
 
342
351
  &::after {
343
- content: attr(data-rate) "\00D7";
344
352
  width: 4ch;
345
- font-variant-numeric: tabular-nums;
353
+ content: attr(data-rate) "\00D7";
354
+ }
355
+
356
+ &[data-inline-rate-label]::after {
357
+ content: none;
358
+ }
359
+ }
360
+
361
+ /* Live button — wide pill button with a status dot (gray → red at the live
362
+ edge) rendered via ::before, and "LIVE" text rendered as the button's own
363
+ text content. */
364
+ .media-default-skin .media-button--live {
365
+ display: inline-flex;
366
+ gap: 0.4rem;
367
+ align-items: center;
368
+ width: auto;
369
+ aspect-ratio: auto;
370
+ padding: 0.5rem 0.75rem;
371
+ font-size: 0.75rem;
372
+ font-weight: 600;
373
+ line-height: 1;
374
+ text-transform: uppercase;
375
+ letter-spacing: 0.05em;
376
+
377
+ &::before {
378
+ display: inline-block;
379
+ flex-shrink: 0;
380
+ width: 0.5rem;
381
+ height: 0.5rem;
382
+ content: "";
383
+ background-color: oklch(from currentColor l c h / 0.4);
384
+ border-radius: 50%;
385
+ transition: background-color 150ms ease-out;
386
+ }
387
+
388
+ &[data-live-edge]::before {
389
+ background-color: oklch(0.65 0.22 27);
346
390
  }
347
391
  }
348
392
 
@@ -352,8 +396,8 @@
352
396
 
353
397
  .media-default-skin .media-button-group {
354
398
  display: flex;
355
- align-items: center;
356
399
  gap: 0.075rem;
400
+ align-items: center;
357
401
 
358
402
  @container media-root (width > 42rem) {
359
403
  gap: 0.125rem;
@@ -368,20 +412,110 @@
368
412
  position: relative;
369
413
  }
370
414
  .media-default-skin .media-icon {
371
- display: block;
372
415
  flex-shrink: 0;
373
- grid-area: 1 / 1;
374
- width: 18px;
375
- height: 18px;
376
- transition-behavior: allow-discrete;
377
- transition-property: display, opacity;
378
- transition-duration: 150ms;
379
- transition-timing-function: ease-out;
416
+ width: var(--media-icon-size);
417
+ height: var(--media-icon-size);
380
418
  }
381
419
  .media-default-skin .media-icon--flipped {
382
420
  scale: -1 1;
383
421
  }
384
422
 
423
+ /* ==========================================================================
424
+ Menus
425
+ Note: Menus use `.media-popover` styles for positioning and transitions.
426
+ ========================================================================== */
427
+
428
+ .media-default-skin .media-popover.media-menu {
429
+ box-sizing: border-box;
430
+ min-width: min(6rem, var(--media-popover-available-width, 6rem));
431
+ max-width: var(--media-popover-available-width, none);
432
+ max-height: var(--media-popover-available-height, none);
433
+ padding: 0.375rem;
434
+ overflow: auto;
435
+ overscroll-behavior: none;
436
+ border-radius: 1.25rem;
437
+
438
+ &::before {
439
+ display: none;
440
+ }
441
+ }
442
+
443
+ .media-default-skin .media-popover.media-menu .media-menu__group {
444
+ position: relative;
445
+ display: flex;
446
+ flex-direction: column;
447
+ gap: 0.125rem;
448
+
449
+ &::before {
450
+ position: absolute;
451
+ position-anchor: --media-menu-item-highlight-anchor;
452
+ inset: anchor(inside);
453
+ pointer-events: none;
454
+ content: "";
455
+ background-color: oklch(from currentColor l c h / 0.1);
456
+ border-radius: calc(infinity * 1px);
457
+ transition: inset ease-in-out 100ms;
458
+ }
459
+
460
+ @supports not (top: anchor(top)) {
461
+ &::before {
462
+ display: none;
463
+ }
464
+ }
465
+ }
466
+
467
+ .media-default-skin .media-popover.media-menu .media-menu__item {
468
+ display: flex;
469
+ gap: 0.5rem;
470
+ align-items: center;
471
+ justify-content: space-between;
472
+ min-height: 2rem;
473
+ padding: 0 0.75rem;
474
+ font-variant-numeric: tabular-nums;
475
+ color: inherit;
476
+ cursor: pointer;
477
+ outline: 2px solid transparent;
478
+ outline-offset: -2px;
479
+ border-radius: calc(infinity * 1px);
480
+
481
+ &:hover,
482
+ &[data-highlighted] {
483
+ anchor-name: --media-menu-item-highlight-anchor;
484
+ }
485
+
486
+ @supports not (top: anchor(top)) {
487
+ &:hover,
488
+ &[data-highlighted] {
489
+ background-color: oklch(from currentColor l c h / 0.1);
490
+ }
491
+ }
492
+
493
+ &:focus-visible {
494
+ outline-color: currentColor;
495
+ outline-offset: 2px;
496
+ }
497
+
498
+ &[aria-checked="true"] .media-menu__indicator {
499
+ opacity: 1;
500
+ }
501
+
502
+ &[aria-disabled="true"] {
503
+ pointer-events: none;
504
+ cursor: not-allowed;
505
+ opacity: 0.5;
506
+ }
507
+ }
508
+
509
+ .media-default-skin .media-popover.media-menu .media-menu__indicator {
510
+ flex-shrink: 0;
511
+ margin-right: -0.25rem;
512
+ opacity: 0;
513
+ }
514
+
515
+ .media-default-skin .media-popover.media-menu .media-menu__indicator .media-icon {
516
+ filter: drop-shadow(0 1px 0 var(--media-current-shadow-color));
517
+ }
518
+
385
519
  /* ==========================================================================
386
520
  Poster Image
387
521
  ========================================================================== */
@@ -392,8 +526,8 @@
392
526
  inset: 0;
393
527
  width: 100%;
394
528
  height: 100%;
395
- transition: opacity 0.25s;
396
529
  pointer-events: none;
530
+ transition: opacity 0.25s;
397
531
  }
398
532
  .media-default-skin media-poster:not([data-visible]),
399
533
  .media-default-skin > img:not([data-visible]) {
@@ -425,29 +559,29 @@
425
559
  Media preview
426
560
  ========================================================================== */
427
561
  .media-default-skin .media-preview {
562
+ pointer-events: none;
428
563
  background-color: oklch(0 0 0 / 0.9);
429
564
  border-radius: 0.75rem;
430
- pointer-events: none;
431
565
 
432
566
  & .media-preview__thumbnail {
433
- display: block;
434
567
  position: relative;
435
- border-radius: inherit;
568
+ display: block;
436
569
  overflow: clip;
570
+ border-radius: inherit;
437
571
 
438
572
  &::after {
439
- content: "";
440
573
  position: absolute;
441
574
  inset: 0;
442
- border-radius: inherit;
575
+ content: "";
443
576
  background-image: linear-gradient(to top, oklch(0 0 0 / 0.8), oklch(0 0 0 / 0.3), oklch(0 0 0 / 0));
577
+ border-radius: inherit;
444
578
  }
445
579
  }
446
580
 
447
581
  & .media-preview__time {
448
582
  position: absolute;
449
- bottom: 0.5rem;
450
583
  inset-inline: 0;
584
+ bottom: 0.5rem;
451
585
  text-align: center;
452
586
  }
453
587
 
@@ -459,8 +593,8 @@
459
593
  position: absolute;
460
594
  top: 50%;
461
595
  left: 50%;
462
- translate: -50% -50%;
463
596
  opacity: 0;
597
+ translate: -50% -50%;
464
598
  }
465
599
 
466
600
  & .media-preview__thumbnail,
@@ -468,6 +602,12 @@
468
602
  transition: opacity 150ms ease-out;
469
603
  }
470
604
 
605
+ &:not(:has(.media-preview__thumbnail[data-loading])) {
606
+ & .media-preview__spinner {
607
+ --media-spinner-animation: none;
608
+ }
609
+ }
610
+
471
611
  &:has(.media-preview__thumbnail[data-loading]) {
472
612
  & .media-preview__thumbnail {
473
613
  opacity: 0;
@@ -485,16 +625,16 @@
485
625
  .media-default-skin .media-slider {
486
626
  position: relative;
487
627
  display: flex;
628
+ flex: 1;
488
629
  align-items: center;
489
630
  justify-content: center;
490
- flex: 1;
491
- border-radius: calc(infinity * 1px);
492
- outline: none;
493
631
  cursor: pointer;
632
+ outline: none;
633
+ border-radius: calc(infinity * 1px);
494
634
 
495
635
  &[data-orientation="horizontal"] {
496
- min-width: 5rem;
497
636
  width: 100%;
637
+ min-width: 5rem;
498
638
  height: 2rem;
499
639
  }
500
640
 
@@ -507,10 +647,10 @@
507
647
  /* Track */
508
648
  .media-default-skin .media-slider__track {
509
649
  position: relative;
510
- isolation: isolate;
511
650
  overflow: hidden;
512
- border-radius: inherit;
513
651
  user-select: none;
652
+ border-radius: inherit;
653
+ isolation: isolate;
514
654
 
515
655
  &[data-orientation="horizontal"] {
516
656
  width: 100%;
@@ -525,24 +665,24 @@
525
665
 
526
666
  /* Thumb */
527
667
  .media-default-skin .media-slider__thumb {
528
- z-index: 10;
529
668
  position: absolute;
530
- translate: -50% -50%;
669
+ z-index: 10;
531
670
  width: 0.625rem;
532
671
  height: 0.625rem;
672
+ user-select: none;
673
+ outline: 4px solid transparent;
674
+ outline-offset: -4px;
533
675
  background-color: currentColor;
534
676
  border-radius: calc(infinity * 1px);
535
677
  box-shadow:
536
- 0 0 0 1px var(--media-controls-current-shadow-color-subtle, oklch(0 0 0 / 0.1)),
678
+ 0 0 0 1px var(--media-current-shadow-color-subtle, oklch(0 0 0 / 0.1)),
537
679
  0 1px 3px 0 oklch(0 0 0 / 0.15),
538
680
  0 1px 2px -1px oklch(0 0 0 / 0.15);
539
681
  opacity: 0;
540
- transition-property: opacity, height, width, outline-offset;
541
- transition-duration: 150ms;
682
+ translate: -50% -50%;
542
683
  transition-timing-function: ease-out;
543
- user-select: none;
544
- outline: 4px solid transparent;
545
- outline-offset: -4px;
684
+ transition-duration: 150ms;
685
+ transition-property: opacity, height, width, outline-offset;
546
686
 
547
687
  &[data-orientation="horizontal"] {
548
688
  top: 50%;
@@ -550,8 +690,8 @@
550
690
  }
551
691
 
552
692
  &[data-orientation="vertical"] {
553
- left: 50%;
554
693
  top: calc(100% - var(--media-slider-fill));
694
+ left: 50%;
555
695
  }
556
696
 
557
697
  &:hover,
@@ -561,19 +701,19 @@
561
701
  }
562
702
 
563
703
  &::after {
564
- content: "";
565
704
  position: absolute;
566
705
  inset: -4px;
706
+ content: "";
567
707
  border-radius: inherit;
568
708
  box-shadow: 0 0 0 2px oklch(1 0 0);
569
- transition-property: opacity, scale;
570
- transition-duration: 150ms;
571
709
  transition-timing-function: ease-out;
710
+ transition-duration: 150ms;
711
+ transition-property: opacity, scale;
572
712
  }
573
713
 
574
714
  &:not(:focus-visible)::after {
575
- scale: 0.5;
576
715
  opacity: 0;
716
+ scale: 0.5;
577
717
  }
578
718
  }
579
719
 
@@ -593,8 +733,8 @@
593
733
  .media-default-skin .media-slider__buffer,
594
734
  .media-default-skin .media-slider__fill {
595
735
  position: absolute;
596
- border-radius: inherit;
597
736
  pointer-events: none;
737
+ border-radius: inherit;
598
738
  }
599
739
 
600
740
  .media-default-skin .media-slider__buffer[data-orientation="horizontal"],
@@ -612,8 +752,8 @@
612
752
  /* Buffer */
613
753
  .media-default-skin .media-slider__buffer {
614
754
  background-color: oklch(from currentColor l c h / 0.2);
615
- transition-duration: 0.25s;
616
755
  transition-timing-function: ease-out;
756
+ transition-duration: 0.25s;
617
757
 
618
758
  &[data-orientation="horizontal"] {
619
759
  width: var(--media-slider-buffer);
@@ -663,18 +803,19 @@
663
803
  .media-default-skin .media-popover,
664
804
  .media-default-skin .media-tooltip {
665
805
  margin: 0;
666
- border: 0;
667
- color: inherit;
668
806
  overflow: visible;
669
- transition-property: scale, opacity, filter;
670
- transition-duration: var(--media-popup-transition-duration);
807
+ color: inherit;
808
+ border: 0;
809
+ filter: blur(0px);
671
810
  transition-timing-function: var(--media-popup-transition-timing-function);
811
+ transition-duration: var(--media-popup-transition-duration);
812
+ transition-property: scale, opacity, filter;
672
813
 
673
814
  &[data-starting-style],
674
815
  &[data-ending-style] {
675
816
  opacity: 0;
676
- scale: 0.5;
677
817
  filter: blur(8px);
818
+ scale: 0.85;
678
819
  }
679
820
 
680
821
  &[data-instant] {
@@ -696,15 +837,15 @@
696
837
 
697
838
  /* Safe area between trigger and popup */
698
839
  &::before {
699
- content: "";
700
840
  position: absolute;
701
841
  pointer-events: inherit;
842
+ content: "";
702
843
  }
703
844
 
704
845
  &[data-side="top"]::before,
705
846
  &[data-side="bottom"]::before {
706
- width: 100%;
707
847
  inset-inline: 0;
848
+ width: 100%;
708
849
  }
709
850
  &[data-side="top"]::before {
710
851
  top: 100%;
@@ -715,8 +856,8 @@
715
856
 
716
857
  &[data-side="left"]::before,
717
858
  &[data-side="right"]::before {
718
- height: 100%;
719
859
  inset-block: 0;
860
+ height: 100%;
720
861
  }
721
862
  &[data-side="left"]::before {
722
863
  left: 100%;
@@ -747,9 +888,9 @@
747
888
 
748
889
  .media-default-skin .media-tooltip {
749
890
  padding: 0.25rem 0.625rem;
750
- border-radius: calc(infinity * 1px);
751
891
  font-size: 0.75rem;
752
892
  white-space: nowrap;
893
+ border-radius: calc(infinity * 1px);
753
894
 
754
895
  &[data-side="top"]::before,
755
896
  &[data-side="bottom"]::before {
@@ -782,12 +923,241 @@
782
923
  }
783
924
 
784
925
  .media-default-skin video::-webkit-media-text-track-container {
785
- transition: translate var(--media-caption-track-duration) ease-out;
786
- transition-delay: var(--media-caption-track-delay);
787
- translate: 0 var(--media-caption-track-y);
788
- scale: 0.98;
789
926
  z-index: 1;
790
927
  font-family: inherit;
928
+ scale: 0.98;
929
+ translate: 0 var(--media-caption-track-y);
930
+ transition: translate var(--media-caption-track-duration) ease-out;
931
+ transition-delay: var(--media-caption-track-delay);
932
+ }
933
+
934
+ /* ==========================================================================
935
+ Input Feedback
936
+ ========================================================================== */
937
+
938
+ .media-default-skin .media-input-feedback {
939
+ position: absolute;
940
+ inset-inline: 0;
941
+ top: 0;
942
+ bottom: 3.5rem; /* Shift up a little in smaller containers */
943
+ display: grid;
944
+ grid-template-columns: 1fr 1fr 1fr;
945
+ align-items: center;
946
+ justify-items: center;
947
+ color: var(--media-color-primary, oklch(1 0 0));
948
+ pointer-events: none;
949
+
950
+ @container media-root (width > 24rem) {
951
+ bottom: 0;
952
+ }
953
+ }
954
+
955
+ /* --- Feedback islands ------------------------------------------------------- */
956
+
957
+ .media-default-skin .media-input-feedback-island {
958
+ --media-surface-background-color: oklch(0 0 0 / 0.25);
959
+ position: absolute;
960
+ top: 0.75rem;
961
+ font-weight: 500;
962
+ color: inherit;
963
+ pointer-events: none;
964
+ border-radius: calc(Infinity * 1px);
965
+ transform-origin: top center;
966
+ transition-timing-function: ease-out;
967
+ transition-duration: 100ms;
968
+
969
+ .media-input-feedback-island__content {
970
+ display: flex;
971
+ gap: 0.5rem;
972
+ align-items: center;
973
+ justify-content: space-between;
974
+ width: 100%;
975
+ padding: 0.25rem 0.625rem;
976
+
977
+ /* Increase contrast of the content */
978
+ * {
979
+ mix-blend-mode: difference;
980
+ }
981
+ }
982
+
983
+ .media-icon {
984
+ display: none;
985
+ flex-shrink: 0;
986
+ }
987
+
988
+ .media-input-feedback-island__value {
989
+ margin-left: auto;
990
+ }
991
+
992
+ @media (pointer: coarse) {
993
+ transition-property: scale, translate, opacity;
994
+ will-change: scale, translate, opacity;
995
+ }
996
+
997
+ @media (pointer: fine) and (prefers-reduced-motion: no-preference) {
998
+ transition-property: scale, translate, filter, opacity;
999
+ will-change: scale, translate, filter, opacity;
1000
+ }
1001
+
1002
+ @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {
1003
+ --media-surface-background-color: oklch(0 0 0);
1004
+ }
1005
+
1006
+ /* Default hidden state */
1007
+ &[data-starting-style],
1008
+ &[data-ending-style] {
1009
+ opacity: 0;
1010
+ transition-timing-function: ease-in;
1011
+ transition-duration: 250ms;
1012
+
1013
+ @media (pointer: fine) and (prefers-reduced-motion: no-preference) {
1014
+ filter: blur(8px);
1015
+ scale: 0.9;
1016
+ }
1017
+
1018
+ @media (prefers-reduced-motion: no-preference) {
1019
+ &[data-ending-style] {
1020
+ translate: 0 -25%;
1021
+ }
1022
+ }
1023
+ }
1024
+ }
1025
+
1026
+ .media-default-skin .media-input-feedback-island--volume {
1027
+ width: min(80%, 12rem);
1028
+
1029
+ .media-input-feedback-island__content {
1030
+ --media-progress-fill: var(--media-volume-fill);
1031
+ background-image: linear-gradient(
1032
+ to right,
1033
+ currentColor 0%,
1034
+ currentColor var(--media-progress-fill),
1035
+ transparent var(--media-progress-fill),
1036
+ transparent 100%
1037
+ );
1038
+ border-radius: inherit;
1039
+ transition: --media-progress-fill 200ms linear;
1040
+ }
1041
+ }
1042
+
1043
+ .media-default-skin .media-input-feedback-island--volume[data-level="high"] .media-icon--volume-high,
1044
+ .media-default-skin .media-input-feedback-island--volume[data-level="low"] .media-icon--volume-low,
1045
+ .media-default-skin .media-input-feedback-island--volume[data-level="off"] .media-icon--volume-off {
1046
+ display: block;
1047
+ }
1048
+
1049
+ .media-default-skin .media-input-feedback-island--status[data-status="captions-on"] .media-icon--captions-on,
1050
+ .media-default-skin .media-input-feedback-island--status[data-status="captions-off"] .media-icon--captions-off,
1051
+ .media-default-skin .media-input-feedback-island--status[data-status="fullscreen"] .media-icon--fullscreen-enter,
1052
+ .media-default-skin .media-input-feedback-island--status[data-status="exit-fullscreen"] .media-icon--fullscreen-exit,
1053
+ .media-default-skin .media-input-feedback-island--status[data-status="pip"] .media-icon--pip-enter,
1054
+ .media-default-skin .media-input-feedback-island--status[data-status="exit-pip"] .media-icon--pip-exit {
1055
+ display: block;
1056
+ }
1057
+
1058
+ /* --- Boundary shake ------------------------------------------------------- */
1059
+
1060
+ @media (prefers-reduced-motion: no-preference) {
1061
+ .media-default-skin .media-input-feedback-island--volume[data-min],
1062
+ .media-default-skin .media-input-feedback-island--volume[data-max] {
1063
+ animation: media-shake 300ms ease-in-out;
1064
+ }
1065
+ }
1066
+
1067
+ /* --- Bubble ---------------------------------------------------------------- */
1068
+
1069
+ .media-default-skin .media-input-feedback-bubble {
1070
+ display: flex;
1071
+ flex-direction: column;
1072
+ grid-row: 1;
1073
+ grid-column: 2; /* default to center for status bubbles and undirected seeks */
1074
+ align-items: center;
1075
+ justify-content: center;
1076
+ padding: 1rem;
1077
+ transition: opacity 250ms ease-out;
1078
+
1079
+ @container media-root (width > 24rem) {
1080
+ padding: 2rem;
1081
+ }
1082
+
1083
+ &[data-starting-style],
1084
+ &[data-ending-style] {
1085
+ opacity: 0;
1086
+ transition-timing-function: ease-in;
1087
+ transition-duration: 200ms;
1088
+ }
1089
+ }
1090
+
1091
+ /* Direction placement — seek bubbles move to the side implied by their direction. */
1092
+ .media-default-skin .media-input-feedback-bubble[data-direction="backward"] {
1093
+ grid-column: 1;
1094
+ justify-self: left;
1095
+ }
1096
+
1097
+ .media-default-skin .media-input-feedback-bubble:not([data-direction]) {
1098
+ grid-column: 2;
1099
+ transition-timing-function:
1100
+ 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);
1101
+ transition-duration: 600ms;
1102
+ transition-property: opacity, scale;
1103
+
1104
+ @media (prefers-reduced-motion: reduce) {
1105
+ transition: opacity 100ms ease-out;
1106
+ }
1107
+
1108
+ &[data-starting-style],
1109
+ &[data-ending-style] {
1110
+ opacity: 0;
1111
+ scale: 0.8;
1112
+ transition-timing-function: ease-in;
1113
+ transition-duration: 200ms;
1114
+ }
1115
+ }
1116
+
1117
+ .media-default-skin .media-input-feedback-bubble[data-direction="forward"] {
1118
+ grid-column: 3;
1119
+ justify-self: right;
1120
+ }
1121
+
1122
+ /* --- Bubble icons ---------------------------------------------------------- */
1123
+
1124
+ .media-default-skin .media-input-feedback-bubble .media-icon {
1125
+ display: none;
1126
+ width: 36px;
1127
+ height: 36px;
1128
+ }
1129
+
1130
+ /* seek: seek icon, flipped for backward */
1131
+ .media-default-skin .media-input-feedback-bubble[data-direction] .media-icon--seek {
1132
+ display: block;
1133
+ }
1134
+
1135
+ .media-default-skin .media-input-feedback-bubble[data-direction="backward"] .media-icon--seek {
1136
+ transform: scaleX(-1);
1137
+ }
1138
+
1139
+ @media (prefers-reduced-motion: no-preference) {
1140
+ .media-default-skin
1141
+ .media-input-feedback-bubble[data-direction="forward"]:not([data-starting-style])
1142
+ .media-icon--seek {
1143
+ animation: media-slide-in-forward 300ms ease-in-out;
1144
+ }
1145
+
1146
+ .media-default-skin
1147
+ .media-input-feedback-bubble[data-direction="backward"]:not([data-starting-style])
1148
+ .media-icon--seek {
1149
+ animation: media-slide-in-backward 300ms ease-in-out;
1150
+ }
1151
+
1152
+ .media-default-skin .media-input-feedback-island--status[data-status]:not([data-starting-style]) .media-icon,
1153
+ .media-default-skin .media-input-feedback-bubble[data-status]:not([data-starting-style]) .media-icon {
1154
+ animation: media-pop-in 250ms ease-out;
1155
+ }
1156
+ }
1157
+
1158
+ .media-default-skin .media-input-feedback-bubble[data-status="pause"] .media-icon--pause,
1159
+ .media-default-skin .media-input-feedback-bubble[data-status="play"] .media-icon--play {
1160
+ display: block;
791
1161
  }
792
1162
 
793
1163
  /* ==========================================================================
@@ -852,14 +1222,67 @@
852
1222
  opacity: 1;
853
1223
  }
854
1224
 
1225
+ /* -------------------------------------------------------------------------- */
1226
+ /* Global @keyframes for all video skins (CSS & Tailwind) */
1227
+ /* -------------------------------------------------------------------------- */
1228
+
1229
+ @keyframes media-shake {
1230
+ 0%,
1231
+ 100% {
1232
+ translate: 0 0;
1233
+ }
1234
+ 20% {
1235
+ translate: -6px 0;
1236
+ }
1237
+ 40% {
1238
+ translate: 4px 0;
1239
+ }
1240
+ 60% {
1241
+ translate: -2px 0;
1242
+ }
1243
+ 80% {
1244
+ translate: 1px 0;
1245
+ }
1246
+ }
1247
+
1248
+ @keyframes media-slide-in-forward {
1249
+ from {
1250
+ translate: -60% 0;
1251
+ opacity: 0;
1252
+ }
1253
+ }
1254
+
1255
+ @keyframes media-slide-in-backward {
1256
+ from {
1257
+ translate: 60% 0;
1258
+ opacity: 0;
1259
+ }
1260
+ }
1261
+
1262
+ @keyframes media-pop-in {
1263
+ from {
1264
+ scale: 0.8;
1265
+ opacity: 0;
1266
+ }
1267
+ }
1268
+
1269
+ /* -------------------------------------------------------------------------- */
1270
+ /* Global @properties for all video skins (CSS & Tailwind) */
1271
+ /* -------------------------------------------------------------------------- */
1272
+
1273
+ @property --media-progress-fill {
1274
+ syntax: "<percentage>";
1275
+ inherits: true;
1276
+ initial-value: 0%;
1277
+ }
1278
+
855
1279
 
856
1280
  /* ==========================================================================
857
1281
  Root
858
1282
  ========================================================================== */
859
1283
 
860
1284
  .media-default-skin--video {
861
- background: oklch(0 0 0);
862
- --media-spring-transition: linear(
1285
+ --media-spring-timing-function: linear(
863
1286
  0,
864
1287
  0.034 1.5%,
865
1288
  0.763 9.7%,
@@ -881,11 +1304,14 @@
881
1304
  --media-controls-transition-timing-function: ease-out;
882
1305
  --media-error-dialog-transition-duration: 350ms;
883
1306
  --media-error-dialog-transition-delay: 100ms;
884
- --media-error-dialog-transition-timing-function: var(--media-spring-transition);
1307
+ --media-error-dialog-transition-timing-function: var(--media-spring-timing-function);
885
1308
  --media-popup-transition-duration: 100ms;
886
1309
  --media-popup-transition-timing-function: ease-out;
887
1310
  --media-tooltip-side-offset: 0.75rem;
1311
+ --media-tooltip-boundary-offset: 0.5rem;
888
1312
  --media-popover-side-offset: 0.5rem;
1313
+ --media-popover-boundary-offset: 0.5rem;
1314
+ background: oklch(0 0 0);
889
1315
 
890
1316
  @media (prefers-reduced-motion: reduce) {
891
1317
  --media-error-dialog-transition-duration: 50ms;
@@ -919,13 +1345,13 @@
919
1345
 
920
1346
  /* Inner border ring */
921
1347
  &::after {
922
- content: "";
923
1348
  position: absolute;
924
1349
  inset: 0;
925
1350
  z-index: 10;
1351
+ pointer-events: none;
1352
+ content: "";
926
1353
  border-radius: inherit;
927
1354
  box-shadow: inset 0 0 0 1px var(--media-border-color);
928
- pointer-events: none;
929
1355
  }
930
1356
 
931
1357
  &:fullscreen {
@@ -952,13 +1378,13 @@
952
1378
  gap: 0.75rem;
953
1379
  max-width: 18rem;
954
1380
  padding: 0.75rem;
955
- border-radius: 1.75rem;
956
1381
  color: oklch(1 0 0);
957
1382
  text-shadow: 0 1px 0 oklch(0 0 0 / 0.25);
958
- transition-property: opacity, scale;
959
- transition-duration: var(--media-error-dialog-transition-duration);
1383
+ border-radius: 1.75rem;
960
1384
  transition-delay: var(--media-error-dialog-transition-delay);
961
1385
  transition-timing-function: var(--media-error-dialog-transition-timing-function);
1386
+ transition-duration: var(--media-error-dialog-transition-duration);
1387
+ transition-property: opacity, scale;
962
1388
  }
963
1389
 
964
1390
  .media-default-skin--video .media-error[data-starting-style] .media-error__dialog,
@@ -987,30 +1413,32 @@
987
1413
  ========================================================================== */
988
1414
 
989
1415
  .media-default-skin--video .media-controls {
990
- flex-wrap: wrap;
991
1416
  position: absolute;
992
- bottom: 0.5rem;
993
1417
  inset-inline: 0.5rem;
1418
+ bottom: 0.5rem;
994
1419
  z-index: 10;
1420
+ flex-wrap: wrap;
1421
+ max-width: 56rem;
1422
+ margin-inline: auto;
995
1423
  color: var(--media-color-primary, oklch(1 0 0));
996
- transition-duration: var(--media-controls-transition-duration);
997
- transition-timing-function: var(--media-controls-transition-timing-function);
998
1424
  transform-origin: bottom;
1425
+ transition-timing-function: var(--media-controls-transition-timing-function);
1426
+ transition-duration: var(--media-controls-transition-duration);
999
1427
 
1000
1428
  @media (pointer: fine) {
1001
- will-change: scale, filter, opacity;
1002
1429
  transition-property: scale, filter, opacity;
1430
+ will-change: scale, filter, opacity;
1003
1431
  }
1004
1432
 
1005
1433
  @media (pointer: coarse) {
1006
- will-change: scale, opacity;
1007
1434
  transition-property: scale, opacity;
1435
+ will-change: scale, opacity;
1008
1436
  }
1009
1437
 
1010
1438
  &:not([data-visible]) {
1011
- opacity: 0;
1012
1439
  pointer-events: none;
1013
- scale: 0.9;
1440
+ opacity: 0;
1441
+ scale: 0.95;
1014
1442
 
1015
1443
  @media (pointer: fine) and (prefers-reduced-motion: no-preference) {
1016
1444
  filter: blur(8px);
@@ -1022,8 +1450,8 @@
1022
1450
  }
1023
1451
 
1024
1452
  & .media-time-controls {
1025
- order: -1;
1026
1453
  flex: 0 0 100%;
1454
+ order: -1;
1027
1455
  padding-inline: 0.625rem;
1028
1456
  }
1029
1457
 
@@ -1038,15 +1466,15 @@
1038
1466
  }
1039
1467
 
1040
1468
  @container media-root (width > 42rem) {
1041
- bottom: 0.75rem;
1042
1469
  inset-inline: 0.75rem;
1470
+ bottom: 0.75rem;
1043
1471
  flex-wrap: nowrap;
1044
1472
  column-gap: 0.125rem;
1045
1473
  padding: 0.25rem;
1046
1474
 
1047
1475
  & .media-time-controls {
1048
- order: unset;
1049
1476
  flex: 1;
1477
+ order: unset;
1050
1478
  }
1051
1479
 
1052
1480
  & .media-button-group:first-child,
@@ -1084,21 +1512,21 @@
1084
1512
  --media-preview-inset: calc((100cqi - 100%) / 2);
1085
1513
 
1086
1514
  position: absolute;
1515
+ bottom: calc(100% + 1.2rem);
1087
1516
  left: clamp(
1088
1517
  calc(var(--media-preview-max-width) / 2 + var(--media-preview-padding) - var(--media-preview-inset)),
1089
1518
  var(--media-slider-pointer),
1090
1519
  calc(100% - var(--media-preview-max-width) / 2 - var(--media-preview-padding) + var(--media-preview-inset))
1091
1520
  );
1092
- bottom: calc(100% + 1.2rem);
1093
- translate: -50%;
1521
+ pointer-events: none;
1094
1522
  opacity: 0;
1095
- scale: 0.8;
1096
1523
  filter: blur(8px);
1097
- transition-property: scale, opacity, filter;
1098
- transition-duration: 150ms;
1099
- transition-timing-function: ease-out;
1100
1524
  transform-origin: bottom;
1101
- pointer-events: none;
1525
+ scale: 0.8;
1526
+ translate: -50%;
1527
+ transition-timing-function: ease-out;
1528
+ transition-duration: 150ms;
1529
+ transition-property: scale, opacity, filter;
1102
1530
 
1103
1531
  & .media-preview__thumbnail {
1104
1532
  max-width: var(--media-preview-max-width);
@@ -1110,7 +1538,7 @@
1110
1538
  }
1111
1539
  .media-default-skin--video .media-slider[data-pointing] .media-slider__preview:has([role="img"]:not([data-hidden])) {
1112
1540
  opacity: 1;
1113
- scale: 1;
1114
1541
  filter: blur(0);
1542
+ scale: 1;
1115
1543
  }
1116
1544