@videojs/react 10.0.0-beta.23 → 10.0.0-beta.25

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 (1033) hide show
  1. package/README.md +6 -0
  2. package/dist/default/icons/dist/react/default/airplay-enter.js +16 -0
  3. package/dist/default/icons/dist/react/default/airplay-enter.js.map +1 -0
  4. package/dist/default/icons/dist/react/default/airplay-exit.js +28 -0
  5. package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -0
  6. package/dist/default/icons/dist/react/default/captions-off.js +6 -0
  7. package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
  8. package/dist/default/icons/dist/react/default/captions-on.js +3 -5
  9. package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
  10. package/dist/default/icons/dist/react/default/cast-enter.js +38 -11
  11. package/dist/default/icons/dist/react/default/cast-enter.js.map +1 -1
  12. package/dist/default/icons/dist/react/default/cast-exit.js +55 -14
  13. package/dist/default/icons/dist/react/default/cast-exit.js.map +1 -1
  14. package/dist/default/icons/dist/react/default/check.js +22 -0
  15. package/dist/default/icons/dist/react/default/check.js.map +1 -0
  16. package/dist/default/icons/dist/react/default/chevron.js +21 -0
  17. package/dist/default/icons/dist/react/default/chevron.js.map +1 -0
  18. package/dist/default/icons/dist/react/default/fullscreen-enter.js +3 -5
  19. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  20. package/dist/default/icons/dist/react/default/fullscreen-exit.js +3 -5
  21. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  22. package/dist/default/icons/dist/react/default/gear.js +16 -0
  23. package/dist/default/icons/dist/react/default/gear.js.map +1 -0
  24. package/dist/default/icons/dist/react/default/pause.js +2 -3
  25. package/dist/default/icons/dist/react/default/pause.js.map +1 -1
  26. package/dist/default/icons/dist/react/default/pip-enter.js +4 -10
  27. package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -1
  28. package/dist/default/icons/dist/react/default/pip-exit.js +4 -10
  29. package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -1
  30. package/dist/default/icons/dist/react/default/play.js +3 -5
  31. package/dist/default/icons/dist/react/default/play.js.map +1 -1
  32. package/dist/default/icons/dist/react/default/quality.js +16 -0
  33. package/dist/default/icons/dist/react/default/quality.js.map +1 -0
  34. package/dist/default/icons/dist/react/default/restart.js +3 -8
  35. package/dist/default/icons/dist/react/default/restart.js.map +1 -1
  36. package/dist/default/icons/dist/react/default/seek.js +3 -5
  37. package/dist/default/icons/dist/react/default/seek.js.map +1 -1
  38. package/dist/default/icons/dist/react/default/speech.js +19 -0
  39. package/dist/default/icons/dist/react/default/speech.js.map +1 -0
  40. package/dist/default/icons/dist/react/default/speed.js +52 -0
  41. package/dist/default/icons/dist/react/default/speed.js.map +1 -0
  42. package/dist/default/icons/dist/react/default/spinner.js +38 -117
  43. package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
  44. package/dist/default/icons/dist/react/default/switches.js +19 -0
  45. package/dist/default/icons/dist/react/default/switches.js.map +1 -0
  46. package/dist/default/icons/dist/react/default/volume-high.js +3 -8
  47. package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
  48. package/dist/default/icons/dist/react/default/volume-low.js +3 -5
  49. package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
  50. package/dist/default/icons/dist/react/default/volume-off.js +3 -5
  51. package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
  52. package/dist/default/icons/dist/react/minimal/airplay-enter.js +16 -0
  53. package/dist/default/icons/dist/react/minimal/airplay-enter.js.map +1 -0
  54. package/dist/default/icons/dist/react/minimal/airplay-exit.js +28 -0
  55. package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -0
  56. package/dist/default/icons/dist/react/minimal/captions-off.js +6 -0
  57. package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
  58. package/dist/default/icons/dist/react/minimal/captions-on.js +3 -5
  59. package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
  60. package/dist/default/icons/dist/react/minimal/cast-enter.js +38 -7
  61. package/dist/default/icons/dist/react/minimal/cast-enter.js.map +1 -1
  62. package/dist/default/icons/dist/react/minimal/cast-exit.js +56 -11
  63. package/dist/default/icons/dist/react/minimal/cast-exit.js.map +1 -1
  64. package/dist/default/icons/dist/react/minimal/check.js +22 -0
  65. package/dist/default/icons/dist/react/minimal/check.js.map +1 -0
  66. package/dist/default/icons/dist/react/minimal/chevron.js +21 -0
  67. package/dist/default/icons/dist/react/minimal/chevron.js.map +1 -0
  68. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +5 -13
  69. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  70. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +5 -13
  71. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  72. package/dist/default/icons/dist/react/minimal/gear.js +16 -0
  73. package/dist/default/icons/dist/react/minimal/gear.js.map +1 -0
  74. package/dist/default/icons/dist/react/minimal/pause.js +2 -3
  75. package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
  76. package/dist/default/icons/dist/react/minimal/pip-enter.js +5 -14
  77. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -1
  78. package/dist/default/icons/dist/react/minimal/pip-exit.js +5 -14
  79. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -1
  80. package/dist/default/icons/dist/react/minimal/play.js +3 -5
  81. package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
  82. package/dist/default/icons/dist/react/minimal/quality.js +16 -0
  83. package/dist/default/icons/dist/react/minimal/quality.js.map +1 -0
  84. package/dist/default/icons/dist/react/minimal/restart.js +3 -8
  85. package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
  86. package/dist/default/icons/dist/react/minimal/seek.js +3 -5
  87. package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
  88. package/dist/default/icons/dist/react/minimal/speech.js +54 -0
  89. package/dist/default/icons/dist/react/minimal/speech.js.map +1 -0
  90. package/dist/default/icons/dist/react/minimal/speed.js +52 -0
  91. package/dist/default/icons/dist/react/minimal/speed.js.map +1 -0
  92. package/dist/default/icons/dist/react/minimal/spinner.js +38 -117
  93. package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
  94. package/dist/default/icons/dist/react/minimal/switches.js +19 -0
  95. package/dist/default/icons/dist/react/minimal/switches.js.map +1 -0
  96. package/dist/default/icons/dist/react/minimal/volume-high.js +3 -8
  97. package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
  98. package/dist/default/icons/dist/react/minimal/volume-low.js +3 -5
  99. package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
  100. package/dist/default/icons/dist/react/minimal/volume-off.js +3 -5
  101. package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
  102. package/dist/default/icons/index.js +26 -0
  103. package/dist/default/icons/minimal/index.js +26 -0
  104. package/dist/default/index.js +25 -12
  105. package/dist/default/media/dash-video/index.js +5 -1
  106. package/dist/default/media/dash-video/index.js.map +1 -1
  107. package/dist/default/media/{hls-video → hlsjs-video}/index.js +9 -5
  108. package/dist/default/media/hlsjs-video/index.js.map +1 -0
  109. package/dist/default/media/mux-audio/index.js +9 -3
  110. package/dist/default/media/mux-audio/index.js.map +1 -1
  111. package/dist/default/media/mux-video/index.js +9 -3
  112. package/dist/default/media/mux-video/index.js.map +1 -1
  113. package/dist/default/media/native-hls-video/index.js +5 -1
  114. package/dist/default/media/native-hls-video/index.js.map +1 -1
  115. package/dist/default/media/simple-hls-audio-only/index.js +22 -0
  116. package/dist/default/media/simple-hls-audio-only/index.js.map +1 -0
  117. package/dist/default/media/simple-hls-video/index.js +2 -2
  118. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  119. package/dist/default/media/vimeo-video/index.js +37 -0
  120. package/dist/default/media/vimeo-video/index.js.map +1 -0
  121. package/dist/default/player/context.js +9 -1
  122. package/dist/default/player/context.js.map +1 -1
  123. package/dist/default/player/create-player.js +17 -5
  124. package/dist/default/player/create-player.js.map +1 -1
  125. package/dist/default/presets/audio/minimal-skin.css +569 -114
  126. package/dist/default/presets/audio/minimal-skin.js +163 -33
  127. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  128. package/dist/default/presets/audio/minimal-skin.tailwind.js +98 -35
  129. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  130. package/dist/default/presets/audio/skin.css +550 -116
  131. package/dist/default/presets/audio/skin.js +99 -34
  132. package/dist/default/presets/audio/skin.js.map +1 -1
  133. package/dist/default/presets/audio/skin.tailwind.js +173 -42
  134. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  135. package/dist/default/presets/live-audio/index.js +2 -2
  136. package/dist/default/presets/live-audio/minimal-skin.css +569 -114
  137. package/dist/default/presets/live-audio/minimal-skin.js +56 -14
  138. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
  139. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +57 -16
  140. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  141. package/dist/default/presets/live-audio/skin.css +550 -116
  142. package/dist/default/presets/live-audio/skin.js +39 -16
  143. package/dist/default/presets/live-audio/skin.js.map +1 -1
  144. package/dist/default/presets/live-audio/skin.tailwind.js +61 -19
  145. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
  146. package/dist/default/presets/live-video/minimal-skin.css +949 -178
  147. package/dist/default/presets/live-video/minimal-skin.js +205 -16
  148. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  149. package/dist/default/presets/live-video/minimal-skin.tailwind.js +208 -17
  150. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  151. package/dist/default/presets/live-video/skin.css +926 -182
  152. package/dist/default/presets/live-video/skin.js +150 -19
  153. package/dist/default/presets/live-video/skin.js.map +1 -1
  154. package/dist/default/presets/live-video/skin.tailwind.js +295 -24
  155. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  156. package/dist/default/presets/video/minimal-skin.css +949 -178
  157. package/dist/default/presets/video/minimal-skin.js +450 -40
  158. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  159. package/dist/default/presets/video/minimal-skin.tailwind.js +455 -43
  160. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  161. package/dist/default/presets/video/skin.css +926 -182
  162. package/dist/default/presets/video/skin.js +346 -49
  163. package/dist/default/presets/video/skin.js.map +1 -1
  164. package/dist/default/presets/video/skin.tailwind.js +454 -51
  165. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  166. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +11 -5
  167. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  168. package/dist/default/skins/dist/default/default/tailwind/components/badge.js +6 -0
  169. package/dist/default/skins/dist/default/default/tailwind/components/badge.js.map +1 -0
  170. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -4
  171. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  172. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -2
  173. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  174. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  175. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  176. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +2 -2
  177. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  178. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js +40 -0
  179. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -0
  180. package/dist/default/skins/dist/default/default/tailwind/components/menu.js +34 -0
  181. package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -0
  182. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  183. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  184. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  185. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  186. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +4 -3
  187. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  188. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +7 -1
  189. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  190. package/dist/default/skins/dist/default/default/tailwind/components/reset.js +7 -0
  191. package/dist/default/skins/dist/default/default/tailwind/components/reset.js.map +1 -0
  192. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -1
  193. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  194. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -1
  195. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  196. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +5 -3
  197. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  198. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +12 -0
  199. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -0
  200. package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
  201. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  202. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +35 -13
  203. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  204. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +17 -5
  205. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  206. package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js +6 -0
  207. package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -0
  208. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  209. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  210. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +3 -2
  211. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  212. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  213. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  214. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +2 -2
  215. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  216. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js +41 -0
  217. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -0
  218. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +33 -0
  219. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -0
  220. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  221. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  222. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  223. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  224. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +3 -2
  225. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  226. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +7 -1
  227. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  228. package/dist/default/skins/dist/default/minimal/tailwind/components/reset.js +7 -0
  229. package/dist/default/skins/dist/default/minimal/tailwind/components/reset.js.map +1 -0
  230. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -1
  231. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  232. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  233. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  234. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +5 -3
  235. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  236. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +13 -0
  237. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -0
  238. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +1 -1
  239. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  240. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +30 -11
  241. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  242. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +17 -2
  243. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  244. package/dist/default/tailwind.css +42 -0
  245. package/dist/default/ui/airplay-button/airplay-button.js +17 -0
  246. package/dist/default/ui/airplay-button/airplay-button.js.map +1 -0
  247. package/dist/default/ui/airplay-button/index.js +2 -0
  248. package/dist/default/ui/alert-dialog/alert-dialog-close.js +1 -1
  249. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +1 -1
  250. package/dist/default/ui/audio-track/index.js +2 -0
  251. package/dist/default/ui/audio-track/use-audio-track-options.js +31 -0
  252. package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -0
  253. package/dist/default/ui/captions-radio-group/index.js +2 -0
  254. package/dist/default/ui/captions-radio-group/use-captions-options.js +37 -0
  255. package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -0
  256. package/dist/default/ui/controls/context.js +4 -1
  257. package/dist/default/ui/controls/context.js.map +1 -1
  258. package/dist/default/ui/create-media-button.js +23 -10
  259. package/dist/default/ui/create-media-button.js.map +1 -1
  260. package/dist/default/ui/error-dialog/error-dialog-description.js +1 -1
  261. package/dist/default/ui/gesture/gesture.js +2 -1
  262. package/dist/default/ui/gesture/gesture.js.map +1 -1
  263. package/dist/default/ui/gesture/index.js +2 -0
  264. package/dist/default/ui/hooks/use-button.js.map +1 -1
  265. package/dist/default/ui/hotkey/hotkey.js +1 -0
  266. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  267. package/dist/default/ui/hotkey/index.js +2 -0
  268. package/dist/default/ui/hotkey/use-hotkey-shortcut.js +28 -0
  269. package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -0
  270. package/dist/default/ui/hotkey/use-hotkey.js +1 -2
  271. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
  272. package/dist/default/ui/input-indicators/use-indicator-visibility.js +25 -0
  273. package/dist/default/ui/input-indicators/use-indicator-visibility.js.map +1 -0
  274. package/dist/default/ui/input-indicators/use-input-action-subscription.js +22 -0
  275. package/dist/default/ui/input-indicators/use-input-action-subscription.js.map +1 -0
  276. package/dist/default/ui/input-indicators/use-input-indicator-root.js +21 -0
  277. package/dist/default/ui/input-indicators/use-input-indicator-root.js.map +1 -0
  278. package/dist/default/ui/input-indicators/use-rendered-indicator-state.js +43 -0
  279. package/dist/default/ui/input-indicators/use-rendered-indicator-state.js.map +1 -0
  280. package/dist/default/ui/live-button/index.js +2 -0
  281. package/dist/default/ui/live-button/live-button.js +89 -0
  282. package/dist/default/ui/live-button/live-button.js.map +1 -0
  283. package/dist/default/ui/menu/context.js +44 -0
  284. package/dist/default/ui/menu/context.js.map +1 -0
  285. package/dist/default/ui/menu/index.js +3 -0
  286. package/dist/default/ui/menu/index.parts.js +36 -0
  287. package/dist/default/ui/menu/index.parts.js.map +1 -0
  288. package/dist/default/ui/menu/menu-back.js +30 -0
  289. package/dist/default/ui/menu/menu-back.js.map +1 -0
  290. package/dist/default/ui/menu/menu-checkbox-item.js +49 -0
  291. package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -0
  292. package/dist/default/ui/menu/menu-content.js +302 -0
  293. package/dist/default/ui/menu/menu-content.js.map +1 -0
  294. package/dist/default/ui/menu/menu-group-label.js +29 -0
  295. package/dist/default/ui/menu/menu-group-label.js.map +1 -0
  296. package/dist/default/ui/menu/menu-group.js +24 -0
  297. package/dist/default/ui/menu/menu-group.js.map +1 -0
  298. package/dist/default/ui/menu/menu-item-indicator.js +23 -0
  299. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -0
  300. package/dist/default/ui/menu/menu-item-setting-provider.js +72 -0
  301. package/dist/default/ui/menu/menu-item-setting-provider.js.map +1 -0
  302. package/dist/default/ui/menu/menu-item-value.js +28 -0
  303. package/dist/default/ui/menu/menu-item-value.js.map +1 -0
  304. package/dist/default/ui/menu/menu-item.js +74 -0
  305. package/dist/default/ui/menu/menu-item.js.map +1 -0
  306. package/dist/default/ui/menu/menu-radio-group.js +30 -0
  307. package/dist/default/ui/menu/menu-radio-group.js.map +1 -0
  308. package/dist/default/ui/menu/menu-radio-item.js +56 -0
  309. package/dist/default/ui/menu/menu-radio-item.js.map +1 -0
  310. package/dist/default/ui/menu/menu-root.js +136 -0
  311. package/dist/default/ui/menu/menu-root.js.map +1 -0
  312. package/dist/default/ui/menu/menu-separator.js +22 -0
  313. package/dist/default/ui/menu/menu-separator.js.map +1 -0
  314. package/dist/default/ui/menu/menu-trigger.js +180 -0
  315. package/dist/default/ui/menu/menu-trigger.js.map +1 -0
  316. package/dist/default/ui/menu/menu-view.js +23 -0
  317. package/dist/default/ui/menu/menu-view.js.map +1 -0
  318. package/dist/default/ui/menu/use-menu-group.js +31 -0
  319. package/dist/default/ui/menu/use-menu-group.js.map +1 -0
  320. package/dist/default/ui/playback-rate/index.js +2 -0
  321. package/dist/default/ui/playback-rate/use-playback-rate-options.js +34 -0
  322. package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -0
  323. package/dist/default/ui/playback-rate-button/playback-rate-button.js +2 -1
  324. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  325. package/dist/default/ui/popover/context.js.map +1 -1
  326. package/dist/default/ui/popover/popover-popup.js +20 -7
  327. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  328. package/dist/default/ui/popover/popover-root.js +20 -5
  329. package/dist/default/ui/popover/popover-root.js.map +1 -1
  330. package/dist/default/ui/poster/poster.js +17 -3
  331. package/dist/default/ui/poster/poster.js.map +1 -1
  332. package/dist/default/ui/quality/index.js +2 -0
  333. package/dist/default/ui/quality/use-quality-options.js +37 -0
  334. package/dist/default/ui/quality/use-quality-options.js.map +1 -0
  335. package/dist/default/ui/seek-button/seek-button.js +3 -1
  336. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  337. package/dist/default/ui/seek-indicator/context.js +20 -0
  338. package/dist/default/ui/seek-indicator/context.js.map +1 -0
  339. package/dist/default/ui/seek-indicator/index.js +2 -0
  340. package/dist/default/ui/seek-indicator/index.parts.js +12 -0
  341. package/dist/default/ui/seek-indicator/index.parts.js.map +1 -0
  342. package/dist/default/ui/seek-indicator/seek-indicator-root.js +30 -0
  343. package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -0
  344. package/dist/default/ui/seek-indicator/seek-indicator-value.js +23 -0
  345. package/dist/default/ui/seek-indicator/seek-indicator-value.js.map +1 -0
  346. package/dist/default/ui/slider/context.js.map +1 -1
  347. package/dist/default/ui/status-announcer/index.js +2 -0
  348. package/dist/default/ui/status-announcer/status-announcer.js +36 -0
  349. package/dist/default/ui/status-announcer/status-announcer.js.map +1 -0
  350. package/dist/default/ui/status-indicator/context.js +20 -0
  351. package/dist/default/ui/status-indicator/context.js.map +1 -0
  352. package/dist/default/ui/status-indicator/index.js +2 -0
  353. package/dist/default/ui/status-indicator/index.parts.js +12 -0
  354. package/dist/default/ui/status-indicator/index.parts.js.map +1 -0
  355. package/dist/default/ui/status-indicator/status-indicator-root.js +34 -0
  356. package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -0
  357. package/dist/default/ui/status-indicator/status-indicator-value.js +23 -0
  358. package/dist/default/ui/status-indicator/status-indicator-value.js.map +1 -0
  359. package/dist/default/ui/time/time-value.js +32 -5
  360. package/dist/default/ui/time/time-value.js.map +1 -1
  361. package/dist/default/ui/time-slider/time-slider-root.js +18 -6
  362. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  363. package/dist/default/ui/tooltip/context.js.map +1 -1
  364. package/dist/default/ui/tooltip/index.parts.js +4 -0
  365. package/dist/default/ui/tooltip/index.parts.js.map +1 -1
  366. package/dist/default/ui/tooltip/tooltip-arrow.js +1 -1
  367. package/dist/default/ui/tooltip/tooltip-label.js +24 -0
  368. package/dist/default/ui/tooltip/tooltip-label.js.map +1 -0
  369. package/dist/default/ui/tooltip/tooltip-popup.js +26 -9
  370. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  371. package/dist/default/ui/tooltip/tooltip-root.js +17 -5
  372. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  373. package/dist/default/ui/tooltip/tooltip-shortcut.js +25 -0
  374. package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -0
  375. package/dist/default/ui/volume-indicator/context.js +20 -0
  376. package/dist/default/ui/volume-indicator/context.js.map +1 -0
  377. package/dist/default/ui/volume-indicator/index.js +2 -0
  378. package/dist/default/ui/volume-indicator/index.parts.js +14 -0
  379. package/dist/default/ui/volume-indicator/index.parts.js.map +1 -0
  380. package/dist/default/ui/volume-indicator/volume-indicator-fill.js +36 -0
  381. package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -0
  382. package/dist/default/ui/volume-indicator/volume-indicator-root.js +30 -0
  383. package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -0
  384. package/dist/default/ui/volume-indicator/volume-indicator-value.js +23 -0
  385. package/dist/default/ui/volume-indicator/volume-indicator-value.js.map +1 -0
  386. package/dist/default/utils/use-attach-iframe.js +14 -0
  387. package/dist/default/utils/use-attach-iframe.js.map +1 -0
  388. package/dist/default/utils/use-media-instance.js +11 -3
  389. package/dist/default/utils/use-media-instance.js.map +1 -1
  390. package/dist/default/utils/use-render.js +1 -1
  391. package/dist/default/utils/use-render.js.map +1 -1
  392. package/dist/dev/icons/dist/react/default/airplay-enter.js +16 -0
  393. package/dist/dev/icons/dist/react/default/airplay-enter.js.map +1 -0
  394. package/dist/dev/icons/dist/react/default/airplay-exit.js +28 -0
  395. package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -0
  396. package/dist/dev/icons/dist/react/default/captions-off.js +6 -0
  397. package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
  398. package/dist/dev/icons/dist/react/default/captions-on.js +3 -5
  399. package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
  400. package/dist/dev/icons/dist/react/default/cast-enter.js +38 -11
  401. package/dist/dev/icons/dist/react/default/cast-enter.js.map +1 -1
  402. package/dist/dev/icons/dist/react/default/cast-exit.js +55 -14
  403. package/dist/dev/icons/dist/react/default/cast-exit.js.map +1 -1
  404. package/dist/dev/icons/dist/react/default/check.js +22 -0
  405. package/dist/dev/icons/dist/react/default/check.js.map +1 -0
  406. package/dist/dev/icons/dist/react/default/chevron.js +21 -0
  407. package/dist/dev/icons/dist/react/default/chevron.js.map +1 -0
  408. package/dist/dev/icons/dist/react/default/fullscreen-enter.js +3 -5
  409. package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  410. package/dist/dev/icons/dist/react/default/fullscreen-exit.js +3 -5
  411. package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  412. package/dist/dev/icons/dist/react/default/gear.js +16 -0
  413. package/dist/dev/icons/dist/react/default/gear.js.map +1 -0
  414. package/dist/dev/icons/dist/react/default/index.d.ts +30 -0
  415. package/dist/dev/icons/dist/react/default/index.d.ts.map +1 -0
  416. package/dist/dev/icons/dist/react/default/pause.js +2 -3
  417. package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
  418. package/dist/dev/icons/dist/react/default/pip-enter.js +4 -10
  419. package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -1
  420. package/dist/dev/icons/dist/react/default/pip-exit.js +4 -10
  421. package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -1
  422. package/dist/dev/icons/dist/react/default/play.js +3 -5
  423. package/dist/dev/icons/dist/react/default/play.js.map +1 -1
  424. package/dist/dev/icons/dist/react/default/quality.js +16 -0
  425. package/dist/dev/icons/dist/react/default/quality.js.map +1 -0
  426. package/dist/dev/icons/dist/react/default/restart.js +3 -8
  427. package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
  428. package/dist/dev/icons/dist/react/default/seek.js +3 -5
  429. package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
  430. package/dist/dev/icons/dist/react/default/speech.js +19 -0
  431. package/dist/dev/icons/dist/react/default/speech.js.map +1 -0
  432. package/dist/dev/icons/dist/react/default/speed.js +52 -0
  433. package/dist/dev/icons/dist/react/default/speed.js.map +1 -0
  434. package/dist/dev/icons/dist/react/default/spinner.js +38 -117
  435. package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
  436. package/dist/dev/icons/dist/react/default/switches.js +19 -0
  437. package/dist/dev/icons/dist/react/default/switches.js.map +1 -0
  438. package/dist/dev/icons/dist/react/default/volume-high.js +3 -8
  439. package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
  440. package/dist/dev/icons/dist/react/default/volume-low.js +3 -5
  441. package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
  442. package/dist/dev/icons/dist/react/default/volume-off.js +3 -5
  443. package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
  444. package/dist/dev/icons/dist/react/minimal/airplay-enter.js +16 -0
  445. package/dist/dev/icons/dist/react/minimal/airplay-enter.js.map +1 -0
  446. package/dist/dev/icons/dist/react/minimal/airplay-exit.js +28 -0
  447. package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -0
  448. package/dist/dev/icons/dist/react/minimal/captions-off.js +6 -0
  449. package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
  450. package/dist/dev/icons/dist/react/minimal/captions-on.js +3 -5
  451. package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
  452. package/dist/dev/icons/dist/react/minimal/cast-enter.js +38 -7
  453. package/dist/dev/icons/dist/react/minimal/cast-enter.js.map +1 -1
  454. package/dist/dev/icons/dist/react/minimal/cast-exit.js +56 -11
  455. package/dist/dev/icons/dist/react/minimal/cast-exit.js.map +1 -1
  456. package/dist/dev/icons/dist/react/minimal/check.js +22 -0
  457. package/dist/dev/icons/dist/react/minimal/check.js.map +1 -0
  458. package/dist/dev/icons/dist/react/minimal/chevron.js +21 -0
  459. package/dist/dev/icons/dist/react/minimal/chevron.js.map +1 -0
  460. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +5 -13
  461. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  462. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +5 -13
  463. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  464. package/dist/dev/icons/dist/react/minimal/gear.js +16 -0
  465. package/dist/dev/icons/dist/react/minimal/gear.js.map +1 -0
  466. package/dist/dev/icons/dist/react/minimal/index.d.ts +30 -0
  467. package/dist/dev/icons/dist/react/minimal/index.d.ts.map +1 -0
  468. package/dist/dev/icons/dist/react/minimal/pause.js +2 -3
  469. package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
  470. package/dist/dev/icons/dist/react/minimal/pip-enter.js +5 -14
  471. package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -1
  472. package/dist/dev/icons/dist/react/minimal/pip-exit.js +5 -14
  473. package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -1
  474. package/dist/dev/icons/dist/react/minimal/play.js +3 -5
  475. package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
  476. package/dist/dev/icons/dist/react/minimal/quality.js +16 -0
  477. package/dist/dev/icons/dist/react/minimal/quality.js.map +1 -0
  478. package/dist/dev/icons/dist/react/minimal/restart.js +3 -8
  479. package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
  480. package/dist/dev/icons/dist/react/minimal/seek.js +3 -5
  481. package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
  482. package/dist/dev/icons/dist/react/minimal/speech.js +54 -0
  483. package/dist/dev/icons/dist/react/minimal/speech.js.map +1 -0
  484. package/dist/dev/icons/dist/react/minimal/speed.js +52 -0
  485. package/dist/dev/icons/dist/react/minimal/speed.js.map +1 -0
  486. package/dist/dev/icons/dist/react/minimal/spinner.js +38 -117
  487. package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
  488. package/dist/dev/icons/dist/react/minimal/switches.js +19 -0
  489. package/dist/dev/icons/dist/react/minimal/switches.js.map +1 -0
  490. package/dist/dev/icons/dist/react/minimal/volume-high.js +3 -8
  491. package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
  492. package/dist/dev/icons/dist/react/minimal/volume-low.js +3 -5
  493. package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
  494. package/dist/dev/icons/dist/react/minimal/volume-off.js +3 -5
  495. package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
  496. package/dist/dev/icons/index.d.ts +2 -0
  497. package/dist/dev/icons/index.js +26 -0
  498. package/dist/dev/icons/minimal/index.d.ts +2 -0
  499. package/dist/dev/icons/minimal/index.js +26 -0
  500. package/dist/dev/index.d.ts +32 -11
  501. package/dist/dev/index.js +25 -12
  502. package/dist/dev/media/dash-video/index.d.ts.map +1 -1
  503. package/dist/dev/media/dash-video/index.js +5 -1
  504. package/dist/dev/media/dash-video/index.js.map +1 -1
  505. package/dist/dev/media/hlsjs-video/index.d.ts +15 -0
  506. package/dist/dev/media/hlsjs-video/index.d.ts.map +1 -0
  507. package/dist/dev/media/{hls-video → hlsjs-video}/index.js +9 -5
  508. package/dist/dev/media/hlsjs-video/index.js.map +1 -0
  509. package/dist/dev/media/mux-audio/index.d.ts +2 -2
  510. package/dist/dev/media/mux-audio/index.d.ts.map +1 -1
  511. package/dist/dev/media/mux-audio/index.js +9 -3
  512. package/dist/dev/media/mux-audio/index.js.map +1 -1
  513. package/dist/dev/media/mux-video/index.d.ts +2 -2
  514. package/dist/dev/media/mux-video/index.d.ts.map +1 -1
  515. package/dist/dev/media/mux-video/index.js +9 -3
  516. package/dist/dev/media/mux-video/index.js.map +1 -1
  517. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -1
  518. package/dist/dev/media/native-hls-video/index.js +5 -1
  519. package/dist/dev/media/native-hls-video/index.js.map +1 -1
  520. package/dist/dev/media/simple-hls-audio-only/index.d.ts +15 -0
  521. package/dist/dev/media/simple-hls-audio-only/index.d.ts.map +1 -0
  522. package/dist/dev/media/simple-hls-audio-only/index.js +22 -0
  523. package/dist/dev/media/simple-hls-audio-only/index.js.map +1 -0
  524. package/dist/dev/media/simple-hls-video/index.d.ts +2 -2
  525. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  526. package/dist/dev/media/simple-hls-video/index.js +2 -2
  527. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  528. package/dist/dev/media/vimeo-video/index.d.ts +15 -0
  529. package/dist/dev/media/vimeo-video/index.d.ts.map +1 -0
  530. package/dist/dev/media/vimeo-video/index.js +37 -0
  531. package/dist/dev/media/vimeo-video/index.js.map +1 -0
  532. package/dist/dev/player/context.d.ts +13 -2
  533. package/dist/dev/player/context.d.ts.map +1 -1
  534. package/dist/dev/player/context.js +9 -1
  535. package/dist/dev/player/context.js.map +1 -1
  536. package/dist/dev/player/create-player.d.ts.map +1 -1
  537. package/dist/dev/player/create-player.js +17 -5
  538. package/dist/dev/player/create-player.js.map +1 -1
  539. package/dist/dev/presets/audio/minimal-skin.css +569 -114
  540. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  541. package/dist/dev/presets/audio/minimal-skin.js +163 -33
  542. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  543. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  544. package/dist/dev/presets/audio/minimal-skin.tailwind.js +98 -35
  545. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  546. package/dist/dev/presets/audio/skin.css +550 -116
  547. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  548. package/dist/dev/presets/audio/skin.js +99 -34
  549. package/dist/dev/presets/audio/skin.js.map +1 -1
  550. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  551. package/dist/dev/presets/audio/skin.tailwind.js +173 -42
  552. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  553. package/dist/dev/presets/live-audio/index.d.ts +2 -2
  554. package/dist/dev/presets/live-audio/index.js +2 -2
  555. package/dist/dev/presets/live-audio/minimal-skin.css +569 -114
  556. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
  557. package/dist/dev/presets/live-audio/minimal-skin.js +56 -14
  558. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
  559. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
  560. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +57 -16
  561. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  562. package/dist/dev/presets/live-audio/skin.css +550 -116
  563. package/dist/dev/presets/live-audio/skin.d.ts +3 -1
  564. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
  565. package/dist/dev/presets/live-audio/skin.js +39 -16
  566. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  567. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
  568. package/dist/dev/presets/live-audio/skin.tailwind.js +61 -19
  569. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
  570. package/dist/dev/presets/live-video/minimal-skin.css +949 -178
  571. package/dist/dev/presets/live-video/minimal-skin.d.ts +0 -7
  572. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  573. package/dist/dev/presets/live-video/minimal-skin.js +205 -16
  574. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  575. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  576. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +208 -17
  577. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  578. package/dist/dev/presets/live-video/skin.css +926 -182
  579. package/dist/dev/presets/live-video/skin.d.ts +0 -6
  580. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  581. package/dist/dev/presets/live-video/skin.js +150 -19
  582. package/dist/dev/presets/live-video/skin.js.map +1 -1
  583. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  584. package/dist/dev/presets/live-video/skin.tailwind.js +295 -24
  585. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  586. package/dist/dev/presets/types.d.ts +2 -1
  587. package/dist/dev/presets/types.d.ts.map +1 -1
  588. package/dist/dev/presets/video/minimal-skin.css +949 -178
  589. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  590. package/dist/dev/presets/video/minimal-skin.js +450 -40
  591. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  592. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  593. package/dist/dev/presets/video/minimal-skin.tailwind.js +455 -43
  594. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  595. package/dist/dev/presets/video/skin.css +926 -182
  596. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  597. package/dist/dev/presets/video/skin.js +346 -49
  598. package/dist/dev/presets/video/skin.js.map +1 -1
  599. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  600. package/dist/dev/presets/video/skin.tailwind.js +454 -51
  601. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  602. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +11 -5
  603. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  604. package/dist/dev/skins/dist/default/default/tailwind/components/badge.js +6 -0
  605. package/dist/dev/skins/dist/default/default/tailwind/components/badge.js.map +1 -0
  606. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -4
  607. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  608. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -2
  609. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  610. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
  611. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  612. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +2 -2
  613. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  614. package/dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js +40 -0
  615. package/dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -0
  616. package/dist/dev/skins/dist/default/default/tailwind/components/menu.js +34 -0
  617. package/dist/dev/skins/dist/default/default/tailwind/components/menu.js.map +1 -0
  618. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  619. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  620. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  621. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  622. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +4 -3
  623. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  624. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +7 -1
  625. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  626. package/dist/dev/skins/dist/default/default/tailwind/components/reset.js +7 -0
  627. package/dist/dev/skins/dist/default/default/tailwind/components/reset.js.map +1 -0
  628. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +2 -1
  629. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  630. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -1
  631. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  632. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +5 -3
  633. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  634. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +12 -0
  635. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -0
  636. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
  637. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  638. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +35 -13
  639. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  640. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +17 -5
  641. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  642. package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js +6 -0
  643. package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -0
  644. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  645. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  646. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +3 -2
  647. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  648. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  649. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  650. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +2 -2
  651. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  652. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js +41 -0
  653. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -0
  654. package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js +33 -0
  655. package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -0
  656. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  657. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  658. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  659. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  660. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +3 -2
  661. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  662. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +7 -1
  663. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  664. package/dist/dev/skins/dist/default/minimal/tailwind/components/reset.js +7 -0
  665. package/dist/dev/skins/dist/default/minimal/tailwind/components/reset.js.map +1 -0
  666. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +2 -1
  667. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  668. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  669. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  670. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +5 -3
  671. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  672. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +13 -0
  673. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -0
  674. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +1 -1
  675. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  676. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +30 -11
  677. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  678. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +17 -2
  679. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  680. package/dist/dev/tailwind.css +42 -0
  681. package/dist/dev/ui/airplay-button/airplay-button.d.ts +15 -0
  682. package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -0
  683. package/dist/dev/ui/airplay-button/airplay-button.js +17 -0
  684. package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -0
  685. package/dist/dev/ui/airplay-button/index.d.ts +2 -0
  686. package/dist/dev/ui/airplay-button/index.js +2 -0
  687. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +1 -1
  688. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +1 -1
  689. package/dist/dev/ui/audio-track/index.d.ts +2 -0
  690. package/dist/dev/ui/audio-track/index.js +2 -0
  691. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts +25 -0
  692. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +1 -0
  693. package/dist/dev/ui/audio-track/use-audio-track-options.js +34 -0
  694. package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -0
  695. package/dist/dev/ui/captions-radio-group/index.d.ts +2 -0
  696. package/dist/dev/ui/captions-radio-group/index.js +2 -0
  697. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts +26 -0
  698. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -0
  699. package/dist/dev/ui/captions-radio-group/use-captions-options.js +40 -0
  700. package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -0
  701. package/dist/dev/ui/controls/context.js +4 -1
  702. package/dist/dev/ui/controls/context.js.map +1 -1
  703. package/dist/dev/ui/create-media-button.js +23 -10
  704. package/dist/dev/ui/create-media-button.js.map +1 -1
  705. package/dist/dev/ui/error-dialog/error-dialog-description.js +1 -1
  706. package/dist/dev/ui/gesture/gesture.js +2 -1
  707. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  708. package/dist/dev/ui/gesture/index.d.ts +2 -0
  709. package/dist/dev/ui/gesture/index.js +2 -0
  710. package/dist/dev/ui/hooks/use-button.d.ts +2 -1
  711. package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
  712. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  713. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  714. package/dist/dev/ui/hotkey/hotkey.js +1 -0
  715. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  716. package/dist/dev/ui/hotkey/index.d.ts +2 -0
  717. package/dist/dev/ui/hotkey/index.js +2 -0
  718. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts +7 -0
  719. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -0
  720. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +28 -0
  721. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -0
  722. package/dist/dev/ui/hotkey/use-hotkey.js +1 -2
  723. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
  724. package/dist/dev/ui/input-indicators/use-indicator-visibility.js +25 -0
  725. package/dist/dev/ui/input-indicators/use-indicator-visibility.js.map +1 -0
  726. package/dist/dev/ui/input-indicators/use-input-action-subscription.js +22 -0
  727. package/dist/dev/ui/input-indicators/use-input-action-subscription.js.map +1 -0
  728. package/dist/dev/ui/input-indicators/use-input-indicator-root.js +21 -0
  729. package/dist/dev/ui/input-indicators/use-input-indicator-root.js.map +1 -0
  730. package/dist/dev/ui/input-indicators/use-rendered-indicator-state.js +43 -0
  731. package/dist/dev/ui/input-indicators/use-rendered-indicator-state.js.map +1 -0
  732. package/dist/dev/ui/live-button/index.d.ts +2 -0
  733. package/dist/dev/ui/live-button/index.js +2 -0
  734. package/dist/dev/ui/live-button/live-button.d.ts +34 -0
  735. package/dist/dev/ui/live-button/live-button.d.ts.map +1 -0
  736. package/dist/dev/ui/live-button/live-button.js +92 -0
  737. package/dist/dev/ui/live-button/live-button.js.map +1 -0
  738. package/dist/dev/ui/menu/context.d.ts +29 -0
  739. package/dist/dev/ui/menu/context.d.ts.map +1 -0
  740. package/dist/dev/ui/menu/context.js +44 -0
  741. package/dist/dev/ui/menu/context.js.map +1 -0
  742. package/dist/dev/ui/menu/index.d.ts +3 -0
  743. package/dist/dev/ui/menu/index.js +3 -0
  744. package/dist/dev/ui/menu/index.parts.d.ts +22 -0
  745. package/dist/dev/ui/menu/index.parts.d.ts.map +1 -0
  746. package/dist/dev/ui/menu/index.parts.js +36 -0
  747. package/dist/dev/ui/menu/index.parts.js.map +1 -0
  748. package/dist/dev/ui/menu/menu-back.d.ts +18 -0
  749. package/dist/dev/ui/menu/menu-back.d.ts.map +1 -0
  750. package/dist/dev/ui/menu/menu-back.js +30 -0
  751. package/dist/dev/ui/menu/menu-back.js.map +1 -0
  752. package/dist/dev/ui/menu/menu-checkbox-item.d.ts +22 -0
  753. package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -0
  754. package/dist/dev/ui/menu/menu-checkbox-item.js +49 -0
  755. package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -0
  756. package/dist/dev/ui/menu/menu-content.d.ts +15 -0
  757. package/dist/dev/ui/menu/menu-content.d.ts.map +1 -0
  758. package/dist/dev/ui/menu/menu-content.js +302 -0
  759. package/dist/dev/ui/menu/menu-content.js.map +1 -0
  760. package/dist/dev/ui/menu/menu-group-label.d.ts +15 -0
  761. package/dist/dev/ui/menu/menu-group-label.d.ts.map +1 -0
  762. package/dist/dev/ui/menu/menu-group-label.js +29 -0
  763. package/dist/dev/ui/menu/menu-group-label.js.map +1 -0
  764. package/dist/dev/ui/menu/menu-group.d.ts +15 -0
  765. package/dist/dev/ui/menu/menu-group.d.ts.map +1 -0
  766. package/dist/dev/ui/menu/menu-group.js +24 -0
  767. package/dist/dev/ui/menu/menu-group.js.map +1 -0
  768. package/dist/dev/ui/menu/menu-item-indicator.d.ts +20 -0
  769. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -0
  770. package/dist/dev/ui/menu/menu-item-indicator.js +23 -0
  771. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -0
  772. package/dist/dev/ui/menu/menu-item-setting-provider.js +72 -0
  773. package/dist/dev/ui/menu/menu-item-setting-provider.js.map +1 -0
  774. package/dist/dev/ui/menu/menu-item-type.d.ts +5 -0
  775. package/dist/dev/ui/menu/menu-item-type.d.ts.map +1 -0
  776. package/dist/dev/ui/menu/menu-item-value.d.ts +14 -0
  777. package/dist/dev/ui/menu/menu-item-value.d.ts.map +1 -0
  778. package/dist/dev/ui/menu/menu-item-value.js +28 -0
  779. package/dist/dev/ui/menu/menu-item-value.js.map +1 -0
  780. package/dist/dev/ui/menu/menu-item.d.ts +23 -0
  781. package/dist/dev/ui/menu/menu-item.d.ts.map +1 -0
  782. package/dist/dev/ui/menu/menu-item.js +74 -0
  783. package/dist/dev/ui/menu/menu-item.js.map +1 -0
  784. package/dist/dev/ui/menu/menu-radio-group.d.ts +20 -0
  785. package/dist/dev/ui/menu/menu-radio-group.d.ts.map +1 -0
  786. package/dist/dev/ui/menu/menu-radio-group.js +30 -0
  787. package/dist/dev/ui/menu/menu-radio-group.js.map +1 -0
  788. package/dist/dev/ui/menu/menu-radio-item.d.ts +20 -0
  789. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -0
  790. package/dist/dev/ui/menu/menu-radio-item.js +56 -0
  791. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -0
  792. package/dist/dev/ui/menu/menu-root.d.ts +29 -0
  793. package/dist/dev/ui/menu/menu-root.d.ts.map +1 -0
  794. package/dist/dev/ui/menu/menu-root.js +136 -0
  795. package/dist/dev/ui/menu/menu-root.js.map +1 -0
  796. package/dist/dev/ui/menu/menu-separator.d.ts +15 -0
  797. package/dist/dev/ui/menu/menu-separator.d.ts.map +1 -0
  798. package/dist/dev/ui/menu/menu-separator.js +22 -0
  799. package/dist/dev/ui/menu/menu-separator.js.map +1 -0
  800. package/dist/dev/ui/menu/menu-trigger.d.ts +25 -0
  801. package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -0
  802. package/dist/dev/ui/menu/menu-trigger.js +180 -0
  803. package/dist/dev/ui/menu/menu-trigger.js.map +1 -0
  804. package/dist/dev/ui/menu/menu-view.d.ts +15 -0
  805. package/dist/dev/ui/menu/menu-view.d.ts.map +1 -0
  806. package/dist/dev/ui/menu/menu-view.js +23 -0
  807. package/dist/dev/ui/menu/menu-view.js.map +1 -0
  808. package/dist/dev/ui/menu/use-menu-group.js +31 -0
  809. package/dist/dev/ui/menu/use-menu-group.js.map +1 -0
  810. package/dist/dev/ui/playback-rate/index.d.ts +2 -0
  811. package/dist/dev/ui/playback-rate/index.js +2 -0
  812. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts +28 -0
  813. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -0
  814. package/dist/dev/ui/playback-rate/use-playback-rate-options.js +37 -0
  815. package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -0
  816. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  817. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +2 -1
  818. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  819. package/dist/dev/ui/popover/context.d.ts +3 -1
  820. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  821. package/dist/dev/ui/popover/context.js.map +1 -1
  822. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  823. package/dist/dev/ui/popover/popover-popup.js +20 -7
  824. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  825. package/dist/dev/ui/popover/popover-root.d.ts +4 -1
  826. package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
  827. package/dist/dev/ui/popover/popover-root.js +20 -5
  828. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  829. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  830. package/dist/dev/ui/poster/poster.js +17 -3
  831. package/dist/dev/ui/poster/poster.js.map +1 -1
  832. package/dist/dev/ui/quality/index.d.ts +2 -0
  833. package/dist/dev/ui/quality/index.js +2 -0
  834. package/dist/dev/ui/quality/use-quality-options.d.ts +27 -0
  835. package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -0
  836. package/dist/dev/ui/quality/use-quality-options.js +40 -0
  837. package/dist/dev/ui/quality/use-quality-options.js.map +1 -0
  838. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  839. package/dist/dev/ui/seek-button/seek-button.js +3 -1
  840. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  841. package/dist/dev/ui/seek-indicator/context.js +20 -0
  842. package/dist/dev/ui/seek-indicator/context.js.map +1 -0
  843. package/dist/dev/ui/seek-indicator/index.d.ts +2 -0
  844. package/dist/dev/ui/seek-indicator/index.js +2 -0
  845. package/dist/dev/ui/seek-indicator/index.parts.d.ts +10 -0
  846. package/dist/dev/ui/seek-indicator/index.parts.d.ts.map +1 -0
  847. package/dist/dev/ui/seek-indicator/index.parts.js +12 -0
  848. package/dist/dev/ui/seek-indicator/index.parts.js.map +1 -0
  849. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts +14 -0
  850. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -0
  851. package/dist/dev/ui/seek-indicator/seek-indicator-root.js +30 -0
  852. package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -0
  853. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts +13 -0
  854. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map +1 -0
  855. package/dist/dev/ui/seek-indicator/seek-indicator-value.js +23 -0
  856. package/dist/dev/ui/seek-indicator/seek-indicator-value.js.map +1 -0
  857. package/dist/dev/ui/slider/context.js.map +1 -1
  858. package/dist/dev/ui/status-announcer/index.d.ts +2 -0
  859. package/dist/dev/ui/status-announcer/index.js +2 -0
  860. package/dist/dev/ui/status-announcer/status-announcer.d.ts +14 -0
  861. package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -0
  862. package/dist/dev/ui/status-announcer/status-announcer.js +36 -0
  863. package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -0
  864. package/dist/dev/ui/status-indicator/context.js +20 -0
  865. package/dist/dev/ui/status-indicator/context.js.map +1 -0
  866. package/dist/dev/ui/status-indicator/index.d.ts +2 -0
  867. package/dist/dev/ui/status-indicator/index.js +2 -0
  868. package/dist/dev/ui/status-indicator/index.parts.d.ts +10 -0
  869. package/dist/dev/ui/status-indicator/index.parts.d.ts.map +1 -0
  870. package/dist/dev/ui/status-indicator/index.parts.js +12 -0
  871. package/dist/dev/ui/status-indicator/index.parts.js.map +1 -0
  872. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts +14 -0
  873. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -0
  874. package/dist/dev/ui/status-indicator/status-indicator-root.js +34 -0
  875. package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -0
  876. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts +13 -0
  877. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map +1 -0
  878. package/dist/dev/ui/status-indicator/status-indicator-value.js +23 -0
  879. package/dist/dev/ui/status-indicator/status-indicator-value.js.map +1 -0
  880. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  881. package/dist/dev/ui/time/time-value.js +32 -5
  882. package/dist/dev/ui/time/time-value.js.map +1 -1
  883. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  884. package/dist/dev/ui/time-slider/time-slider-root.js +18 -6
  885. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  886. package/dist/dev/ui/tooltip/context.d.ts +10 -4
  887. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  888. package/dist/dev/ui/tooltip/context.js.map +1 -1
  889. package/dist/dev/ui/tooltip/index.d.ts +2 -2
  890. package/dist/dev/ui/tooltip/index.parts.d.ts +3 -1
  891. package/dist/dev/ui/tooltip/index.parts.js +4 -0
  892. package/dist/dev/ui/tooltip/index.parts.js.map +1 -1
  893. package/dist/dev/ui/tooltip/tooltip-arrow.js +1 -1
  894. package/dist/dev/ui/tooltip/tooltip-label.d.ts +15 -0
  895. package/dist/dev/ui/tooltip/tooltip-label.d.ts.map +1 -0
  896. package/dist/dev/ui/tooltip/tooltip-label.js +24 -0
  897. package/dist/dev/ui/tooltip/tooltip-label.js.map +1 -0
  898. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  899. package/dist/dev/ui/tooltip/tooltip-popup.js +26 -9
  900. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  901. package/dist/dev/ui/tooltip/tooltip-root.d.ts +4 -1
  902. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  903. package/dist/dev/ui/tooltip/tooltip-root.js +17 -5
  904. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  905. package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts +15 -0
  906. package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -0
  907. package/dist/dev/ui/tooltip/tooltip-shortcut.js +25 -0
  908. package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -0
  909. package/dist/dev/ui/volume-indicator/context.js +20 -0
  910. package/dist/dev/ui/volume-indicator/context.js.map +1 -0
  911. package/dist/dev/ui/volume-indicator/index.d.ts +2 -0
  912. package/dist/dev/ui/volume-indicator/index.js +2 -0
  913. package/dist/dev/ui/volume-indicator/index.parts.d.ts +11 -0
  914. package/dist/dev/ui/volume-indicator/index.parts.d.ts.map +1 -0
  915. package/dist/dev/ui/volume-indicator/index.parts.js +14 -0
  916. package/dist/dev/ui/volume-indicator/index.parts.js.map +1 -0
  917. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts +13 -0
  918. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts.map +1 -0
  919. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +36 -0
  920. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -0
  921. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts +14 -0
  922. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -0
  923. package/dist/dev/ui/volume-indicator/volume-indicator-root.js +30 -0
  924. package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -0
  925. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts +13 -0
  926. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts.map +1 -0
  927. package/dist/dev/ui/volume-indicator/volume-indicator-value.js +23 -0
  928. package/dist/dev/ui/volume-indicator/volume-indicator-value.js.map +1 -0
  929. package/dist/dev/utils/use-attach-iframe.js +14 -0
  930. package/dist/dev/utils/use-attach-iframe.js.map +1 -0
  931. package/dist/dev/utils/use-media-instance.d.ts +7 -2
  932. package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
  933. package/dist/dev/utils/use-media-instance.js +11 -3
  934. package/dist/dev/utils/use-media-instance.js.map +1 -1
  935. package/dist/dev/utils/use-render.d.ts.map +1 -1
  936. package/dist/dev/utils/use-render.js +1 -1
  937. package/dist/dev/utils/use-render.js.map +1 -1
  938. package/docs/README.md +7 -0
  939. package/docs/concepts/accessibility.md +60 -0
  940. package/docs/concepts/browser-support.md +37 -0
  941. package/docs/concepts/cast.md +162 -0
  942. package/docs/concepts/features.md +131 -0
  943. package/docs/concepts/overview.md +119 -0
  944. package/docs/concepts/presets.md +230 -0
  945. package/docs/concepts/skins.md +2679 -0
  946. package/docs/concepts/ui-components.md +83 -0
  947. package/docs/concepts/v10-roadmap.md +75 -0
  948. package/docs/concepts/why-videojs.md +113 -0
  949. package/docs/how-to/build-with-ai.md +39 -0
  950. package/docs/how-to/build-your-own-component.md +142 -0
  951. package/docs/how-to/customize-skins.md +7864 -0
  952. package/docs/how-to/installation.md +170 -0
  953. package/docs/llms.txt +113 -0
  954. package/docs/reference/airplay-button.md +264 -0
  955. package/docs/reference/audio-track-radio-group.md +59 -0
  956. package/docs/reference/background-video.md +76 -0
  957. package/docs/reference/buffering-indicator.md +152 -0
  958. package/docs/reference/captions-button.md +216 -0
  959. package/docs/reference/cast-button.md +236 -0
  960. package/docs/reference/controls.md +238 -0
  961. package/docs/reference/create-player.md +261 -0
  962. package/docs/reference/create-selector.md +59 -0
  963. package/docs/reference/dash-video.md +138 -0
  964. package/docs/reference/feature-audio-track.md +60 -0
  965. package/docs/reference/feature-buffer.md +54 -0
  966. package/docs/reference/feature-controls.md +74 -0
  967. package/docs/reference/feature-error.md +65 -0
  968. package/docs/reference/feature-fullscreen.md +111 -0
  969. package/docs/reference/feature-live.md +62 -0
  970. package/docs/reference/feature-orientation-lock.md +35 -0
  971. package/docs/reference/feature-pip.md +94 -0
  972. package/docs/reference/feature-playback-rate.md +70 -0
  973. package/docs/reference/feature-playback.md +109 -0
  974. package/docs/reference/feature-quality.md +70 -0
  975. package/docs/reference/feature-remote-playback.md +76 -0
  976. package/docs/reference/feature-source.md +70 -0
  977. package/docs/reference/feature-stream-type.md +46 -0
  978. package/docs/reference/feature-text-tracks.md +114 -0
  979. package/docs/reference/feature-time.md +84 -0
  980. package/docs/reference/feature-volume.md +99 -0
  981. package/docs/reference/fullscreen-button.md +212 -0
  982. package/docs/reference/hlsjs-video.md +274 -0
  983. package/docs/reference/menu.md +1194 -0
  984. package/docs/reference/mute-button.md +276 -0
  985. package/docs/reference/mux-audio.md +218 -0
  986. package/docs/reference/mux-video.md +275 -0
  987. package/docs/reference/native-hls-video.md +212 -0
  988. package/docs/reference/pip-button.md +212 -0
  989. package/docs/reference/play-button.md +224 -0
  990. package/docs/reference/playback-rate-button.md +185 -0
  991. package/docs/reference/player-container.md +109 -0
  992. package/docs/reference/player-provider.md +104 -0
  993. package/docs/reference/popover.md +527 -0
  994. package/docs/reference/poster.md +137 -0
  995. package/docs/reference/quality-radio-group.md +59 -0
  996. package/docs/reference/render-element.md +196 -0
  997. package/docs/reference/seek-button.md +213 -0
  998. package/docs/reference/simple-hls-audio-only.md +93 -0
  999. package/docs/reference/simple-hls-video.md +150 -0
  1000. package/docs/reference/slider.md +826 -0
  1001. package/docs/reference/thumbnail.md +322 -0
  1002. package/docs/reference/time-slider.md +753 -0
  1003. package/docs/reference/time.md +519 -0
  1004. package/docs/reference/tooltip.md +715 -0
  1005. package/docs/reference/use-button.md +124 -0
  1006. package/docs/reference/use-container-attach.md +42 -0
  1007. package/docs/reference/use-media-attach.md +46 -0
  1008. package/docs/reference/use-media.md +112 -0
  1009. package/docs/reference/use-player-context.md +93 -0
  1010. package/docs/reference/use-player.md +241 -0
  1011. package/docs/reference/use-selector.md +132 -0
  1012. package/docs/reference/use-snapshot.md +127 -0
  1013. package/docs/reference/use-store.md +257 -0
  1014. package/docs/reference/volume-slider.md +716 -0
  1015. package/package.json +23 -10
  1016. package/dist/default/media/hls-video/index.js.map +0 -1
  1017. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +0 -12
  1018. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +0 -1
  1019. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +0 -13
  1020. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +0 -1
  1021. package/dist/default/ui/hotkey/use-aria-key-shortcuts.js +0 -16
  1022. package/dist/default/ui/hotkey/use-aria-key-shortcuts.js.map +0 -1
  1023. package/dist/dev/media/hls-video/index.d.ts +0 -15
  1024. package/dist/dev/media/hls-video/index.d.ts.map +0 -1
  1025. package/dist/dev/media/hls-video/index.js.map +0 -1
  1026. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +0 -12
  1027. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +0 -1
  1028. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +0 -13
  1029. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +0 -1
  1030. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.d.ts +0 -5
  1031. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.d.ts.map +0 -1
  1032. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.js +0 -16
  1033. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ # Accessibility
2
+
3
+ How Video.js approaches accessibility, and what you should consider if you're deeply customizing your player
4
+
5
+ Video.js is built with accessibility in mind so your player can reach the widest possible audience.
6
+
7
+ Here are some of the accessibility aspects we consider. You should consider them too if you’re performing deeper customization.
8
+
9
+ ## Standards we target
10
+
11
+ * [**WAI-ARIA 1.2**](https://www.w3.org/TR/wai-aria-1.2/) defines roles, states, and properties that [assistive technologies](https://www.w3.org/WAI/people-use-web/tools-techniques/) use to understand controls.
12
+ * [**WCAG 2.2**](https://www.w3.org/TR/WCAG22/) provides success criteria for perceivable, operable, understandable, and robust web content.
13
+ * [**CVAA**](https://www.fcc.gov/consumers/guides/21st-century-communications-and-video-accessibility-act-cvaa) is a U.S. federal law requiring closed captioning and accessible controls for video content.
14
+ * [**ADA**](https://www.ada.gov/) is a U.S. civil rights law that prohibits disability discrimination. Courts increasingly apply it to websites, including video players.
15
+
16
+ ## ARIA roles and labels
17
+
18
+ Components set ARIA roles and attributes automatically. For example, sliders render with `role="slider"` and value attributes, buttons update their `aria-label` based on player state, and decorative elements like time separators are hidden with `aria-hidden="true"`.
19
+
20
+ Verify that labels are contextually correct for your content and language. Each component’s reference page documents the attributes it sets.
21
+
22
+ ## Keyboard interaction
23
+
24
+ All interactive components support keyboard control. For example, buttons activate with Enter and Space, sliders respond to Arrow keys, Home, End, and Page Up/Page Down, and popovers close with Escape. Each component’s reference page lists its full keyboard support. We follow the patterns in the [WAI-ARIA Authoring Practices Guide](https://www.w3.org/WAI/ARIA/apg/).
25
+
26
+ ## Focus management
27
+
28
+ Interactive elements are focusable when enabled and leave the [tab order](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) when disabled. Popover triggers link to their popups with `aria-controls` and `aria-expanded`.
29
+
30
+ ## Captions and subtitles
31
+
32
+ The [text tracks feature](../reference/feature-text-tracks.md) supports captions and subtitles. Closed captions in the U.S. are governed by the [FCC](https://www.fcc.gov/) under the [CVAA](https://www.fcc.gov/consumers/guides/21st-century-communications-and-video-accessibility-act-cvaa), which requires both captioning and viewer control over caption appearance (font, size, color, opacity, and edge style). Non-compliance carries legal risk. The [WebKit Caption Display Settings explainer](https://github.com/WebKit/explainers/tree/main/CaptionDisplaySettings) tracks how browsers are bringing these customization preferences into the web platform natively.
33
+
34
+ ## Color contrast
35
+
36
+ Skins respond to [`prefers-contrast: more`](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-contrast) by increasing background opacity on overlays and controls, and to [`prefers-reduced-transparency: reduce`](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-transparency) by raising baseline opacity so text stays readable over video.
37
+
38
+ Video is harder than most UI for contrast because the background is always changing. A control that passes checks over a dark frame can disappear over a bright title card. Automated tools won’t catch this, so test your controls against light, dark, and mixed video content. Custom components should test against [WCAG 1.4.3 (contrast minimum)](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum) and [1.4.11 (non-text contrast)](https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast).
39
+
40
+ ## Touch targets
41
+
42
+ Controls use rem-based sizing so they scale with the user’s font size preference. All interactive elements set [`touch-action: manipulation`](https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action) to eliminate tap delay on touch devices. Skins use [`pointer: fine` and `pointer: coarse`](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer) to adapt transitions for mouse and touch input.
43
+
44
+ If you build custom controls, target at least 24x24 CSS pixels per [WCAG 2.5.8 (target size minimum)](https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum). Larger is better on touch-first surfaces.
45
+
46
+ ## Color scheme
47
+
48
+ Skins adapt to [`prefers-color-scheme`](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme). Borders, backgrounds, and text colors adjust through CSS custom properties. Custom components can use the same design tokens. See [Skins](./skins.md) for details.
49
+
50
+ ## Reduced motion
51
+
52
+ Skins respect [`prefers-reduced-motion`](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion) by simplifying or removing animations and transitions. Follow the same pattern in custom components.
53
+
54
+ ## Test with assistive technology
55
+
56
+ Automated tools catch markup issues but miss real usability problems. Test your player with a [screen reader](https://www.w3.org/WAI/people-use-web/tools-techniques/) ([VoiceOver](https://support.apple.com/guide/voiceover/welcome/mac) on macOS, [NVDA](https://www.nvaccess.org/about-nvda/) or [JAWS](https://www.freedomscientific.com/products/software/jaws/) on Windows) and keyboard-only navigation. Verify that every control is reachable, operable, and announces its purpose and state. The [WAI “Easy Checks”](https://www.w3.org/WAI/test-evaluate/preliminary/) are a good starting point.
57
+
58
+ ## Further reading
59
+
60
+ The W3C WAI guides on [making audio and video media accessible](https://www.w3.org/WAI/media/av/) and [accessible media players](https://www.w3.org/WAI/media/av/player/) go deeper on everything covered here.
@@ -0,0 +1,37 @@
1
+ # Browser Support
2
+
3
+ Which browsers Video.js 10 supports and how it handles newer platform features
4
+
5
+ Video.js 10 currently targets **evergreen browsers**: the latest two stable versions of Chrome, Firefox, Safari, and Edge.
6
+
7
+ Note
8
+
9
+ Video.js 10 is in beta. The browser support matrix may expand as we approach GA based on community feedback and usage data.
10
+
11
+ ## Why evergreen?
12
+
13
+ Video.js 10 builds directly on the web platform: custom elements, CSS custom properties, anchor positioning, and modern JavaScript APIs. Targeting evergreen browsers lets us:
14
+
15
+ * **Ship smaller bundles** by avoiding polyfills and transpilation for outdated syntax
16
+ * **Use platform-native features** like `popover` and anchor positioning instead of JavaScript equivalents
17
+ * **Keep the core slim** so platform-specific adapters (HTML, React) add only what they need
18
+
19
+ ## Progressive enhancement
20
+
21
+ When we use a platform feature that hasn’t landed in all supported browsers yet, we provide a fallback. The player works either way; the experience may differ slightly in older browsers. For example, tooltips and popovers use CSS anchor positioning where available and fall back to absolute positioning where it isn’t.
22
+
23
+ ## Rendering contexts
24
+
25
+ ### WebViews and PWAs
26
+
27
+ A [WebView](https://developer.mozilla.org/en-US/docs/Glossary/WebView) is a browser engine embedded inside a native app. WebViews on iOS (WKWebView) and Android (Android WebView) behave differently from the full browser; autoplay policies, fullscreen APIs, and hardware acceleration can vary. Progressive Web Apps (PWAs) installed via “Add to Homescreen” can exhibit similar quirks, since they also run in a limited browser context rather than a full browser tab.
28
+
29
+ Video.js 10 beta targets only standard browser environments. If you embed a player inside a native app or PWA, test thoroughly for your specific platform and runtime.
30
+
31
+ ### Smart TVs and set-top boxes
32
+
33
+ TV platforms run embedded browsers with limited standards support. Video.js 10’s core is not tied to any specific platform, which makes future TV adapters possible, but TV is not a supported target today.
34
+
35
+ ### Server-side rendering
36
+
37
+ Video.js components render valid markup on the server. Interactivity — state management, media playback, and event handling — requires the browser and kicks in after hydration.
@@ -0,0 +1,162 @@
1
+ # Google Cast
2
+
3
+ How to add Chromecast support to your Video.js player — lazy SDK loading, session lifecycle, and configuration options
4
+
5
+ Video.js has built-in Google Cast support for HLS and DASH media elements. When a Chromecast device is on the same network, a Cast button appears automatically in Chromium browsers. Tapping it starts a session that moves playback to the TV while the browser stays in control.
6
+
7
+ Note
8
+
9
+ Cast is only available in Chromium-based browsers (Chrome, Edge, and others built on Blink). On other browsers, `remotePlaybackAvailability` is `'unsupported'`.
10
+
11
+ ## How Cast works
12
+
13
+ Cast uses a **sender / receiver** model:
14
+
15
+ * **Sender** — the browser tab. It controls playback commands (play, pause, seek, volume) and sends a load request to the receiver with the source URL and metadata.
16
+ * **Receiver** — the Chromecast device running the default media receiver application (or a custom receiver you configure).
17
+
18
+ ### Session lifecycle
19
+
20
+ A Cast session moves through three states, exposed via the [Remote Playback](../reference/feature-remote-playback.md) feature:
21
+
22
+ State
23
+
24
+ Meaning
25
+
26
+ `'disconnected'`
27
+
28
+ No active session
29
+
30
+ `'connecting'`
31
+
32
+ User accepted; session negotiating
33
+
34
+ `'connected'`
35
+
36
+ Receiver is playing
37
+
38
+ While `connected`, the media element’s `play`, `pause`, `currentTime`, `volume`, `muted`, and `playbackRate` all proxy to the Cast receiver. Local playback is suspended.
39
+
40
+ ### The lazy-loaded SDK
41
+
42
+ The Cast SDK (`cast_sender.js`) is injected into the page as a `<script>` tag the first time a Cast-capable media element is created in a Chromium browser. No SDK cost is paid on browsers that don’t support Cast.
43
+
44
+ Set `disableRemotePlayback` on the media element to opt out:
45
+
46
+ tsx
47
+
48
+ ```
49
+ <HlsJsVideo disableRemotePlayback />
50
+ ```
51
+
52
+ ## Minimal setup
53
+
54
+ Cast works out of the box with the `videoFeatures` preset — no extra configuration needed. Add a `CastButton` to give users a way to start and stop a session:
55
+
56
+ tsx
57
+
58
+ ```
59
+ import { createPlayer, CastButton } from '@videojs/react';
60
+ import { HlsJsVideo } from '@videojs/react/media/hlsjs-video';
61
+ import { videoFeatures } from '@videojs/react/video';
62
+
63
+ const Player = createPlayer({ features: videoFeatures });
64
+
65
+ export default function App() {
66
+ return (
67
+ <Player.Provider>
68
+ <Player.Container>
69
+ <HlsJsVideo src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8" autoPlay muted playsInline loop />
70
+ <CastButton />
71
+ </Player.Container>
72
+ </Player.Provider>
73
+ );
74
+ }
75
+ ```
76
+
77
+ ## Configuring Cast
78
+
79
+ All Cast configuration is set via the `config.googleCast` property. In React, pass it as a declarative prop. In HTML, set it as a JavaScript property; HTML attributes are not supported.
80
+
81
+ ### Custom receiver application ID
82
+
83
+ By default, Video.js uses Google’s [Default Media Receiver](https://developers.google.com/cast/docs/web_sender/integrate#default_media_web_receiver) (`CC1AD845`). To use your own receiver app, set `receiver`:
84
+
85
+ tsx
86
+
87
+ ```
88
+ <HlsJsVideo src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8" config={{ googleCast: { receiver: 'YOUR_APP_ID' } }} />
89
+ ```
90
+
91
+ ### Custom data on load
92
+
93
+ Pass arbitrary data to the receiver with each load request via `customData`. The receiver app reads it from the `customData` field of the load request:
94
+
95
+ tsx
96
+
97
+ ```
98
+ <HlsJsVideo
99
+ src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8"
100
+ config={{ googleCast: { customData: { token: 'abc123', userId: 'u_789' } } }}
101
+ />
102
+ ```
103
+
104
+ ### Cast source override
105
+
106
+ By default the receiver loads the same URL as the browser. Use `src` (and optionally `contentType`) to send a different URL, for example, a separate manifest or CDN-edge URL accessible from the TV network:
107
+
108
+ tsx
109
+
110
+ ```
111
+ <HlsJsVideo
112
+ src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"
113
+ config={{ googleCast: { src: 'https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8', contentType: 'application/x-mpegURL' } }}
114
+ />
115
+ ```
116
+
117
+ ### HLS on the receiver
118
+
119
+ When the source (or `config.googleCast.src`) is an HLS playlist, Video.js automatically detects the segment format (TS or fMP4) by inspecting the playlist and sets `hlsSegmentFormat` / `hlsVideoSegmentFormat` on the Cast load request. The default media receiver handles HLS natively, so no extra configuration is needed.
120
+
121
+ Use `streamType` to tell the receiver whether the stream is `'on-demand'` or `'live'` (falls back to the player’s `streamType` when unset):
122
+
123
+ tsx
124
+
125
+ ```
126
+ <HlsJsVideo src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8" config={{ googleCast: { streamType: 'live' } }} />
127
+ ```
128
+
129
+ ## Cast state and selectors
130
+
131
+ Cast session state lives in the [Remote Playback](../reference/feature-remote-playback.md) feature slice. Use `selectRemotePlayback` to subscribe:
132
+
133
+ tsx
134
+
135
+ ```
136
+ import { selectRemotePlayback, usePlayer } from '@videojs/react';
137
+
138
+ function CastStatus() {
139
+ const remotePlayback = usePlayer(selectRemotePlayback);
140
+ if (!remotePlayback) return null;
141
+
142
+ return <span>{remotePlayback.remotePlaybackState}</span>;
143
+ }
144
+ ```
145
+
146
+ ## Browser availability
147
+
148
+ Cast availability is surfaced as `remotePlaybackAvailability` on the remote playback feature. Hide the button when unsupported:
149
+
150
+ css
151
+
152
+ ```
153
+ .cast-button[data-availability="unsupported"] {
154
+ display: none;
155
+ }
156
+ ```
157
+
158
+ ## See also
159
+
160
+ [CastButton component reference](../reference/cast-button.md)
161
+
162
+ [Remote Playback feature reference](../reference/feature-remote-playback.md)
@@ -0,0 +1,131 @@
1
+ # Features
2
+
3
+ The state and actions each feature adds to the player
4
+
5
+ Not every player needs to support every use case. To address this, Video.js has a concept of **features** — self-contained units of player functionality. Each one adds state properties and actions to the player. For example, “playback” adds `paused` and `play()`, “volume” adds `volume` and `setVolume()`, and so on.
6
+
7
+ ## Using features
8
+
9
+ ### Feature bundles and presets
10
+
11
+ You probably don’t want to hand-pick every feature your player needs. A **feature bundle** groups the features needed for a specific use case into a single array.
12
+
13
+ For example, `videoFeatures` bundles playback, volume, time, fullscreen, and more — everything a general video player needs:
14
+
15
+ tsx
16
+
17
+ ```
18
+ import { createPlayer } from '@videojs/react';
19
+ import { videoFeatures } from '@videojs/react/video';
20
+
21
+ const Player = createPlayer({ features: videoFeatures });
22
+ ```
23
+
24
+ Feature bundles are usually paired with specific skins and media elements in a **preset**. To learn more about this, and the available presets, you’ll want to check out the presets guide.
25
+
26
+ [Learn more about presets](./presets.md)
27
+
28
+ ### Create a player with individual features
29
+
30
+ If you’re not using presets, you can create a player that has individual features.
31
+
32
+ tsx
33
+
34
+ ```
35
+ import { createPlayer, playbackFeature, volumeFeature, timeFeature, controlsFeature } from '@videojs/react';
36
+
37
+ const Player = createPlayer({
38
+ features: [playbackFeature, volumeFeature, timeFeature, controlsFeature],
39
+ });
40
+ ```
41
+
42
+ ### Extending a feature bundle
43
+
44
+ Since feature bundles are just an array of features under the hood, it doesn’t take much to extend one. For example, if you were using the `/background` preset and wanted a play button on your background video, you might add the playback feature.
45
+
46
+ tsx
47
+
48
+ ```
49
+ import { createPlayer, playbackFeature } from '@videojs/react';
50
+ import { backgroundFeatures } from '@videojs/react/background';
51
+
52
+ const Player = createPlayer({
53
+ features: [...backgroundFeatures, playbackFeature],
54
+ });
55
+ ```
56
+
57
+ ### Access features in components
58
+
59
+ You access feature state and actions through [`usePlayer`](../reference/use-player.md):
60
+
61
+ tsx
62
+
63
+ ```
64
+ // Subscribe to state (re-renders when selected values change)
65
+ const { paused, volume } = usePlayer((s) => ({
66
+ paused: s.paused,
67
+ volume: s.volume,
68
+ }));
69
+
70
+ // Call actions
71
+ const store = usePlayer();
72
+ store.play();
73
+ store.setVolume(0.8);
74
+ ```
75
+
76
+ ### Feature selectors
77
+
78
+ Each feature also has a pre-built selector (e.g. [`selectPlayback`](../reference/feature-playback.md), [`selectVolume`](../reference/feature-volume.md)) that returns just that feature’s state and actions:
79
+
80
+ tsx
81
+
82
+ ```
83
+ import { selectPlayback, usePlayer } from '@videojs/react';
84
+
85
+ const playback = usePlayer(selectPlayback);
86
+ playback?.play();
87
+ ```
88
+
89
+ ### Checking for feature support
90
+
91
+ Volume, fullscreen, and picture-in-picture expose an `*Availability` property because platform support varies. For example, iOS Safari doesn’t allow programmatic volume control.
92
+
93
+ Value
94
+
95
+ Meaning
96
+
97
+ `'available'`
98
+
99
+ Ready to use
100
+
101
+ `'unavailable'`
102
+
103
+ Could work, not ready yet
104
+
105
+ `'unsupported'`
106
+
107
+ Platform can never do this
108
+
109
+ Components that depend on availability (like [`PiPButton`](../reference/pip-button.md) and [`FullscreenButton`](../reference/fullscreen-button.md)) expose a `data-availability` attribute, so you can hide unsupported controls with CSS:
110
+
111
+ css
112
+
113
+ ```
114
+ .pip-button[data-availability="unsupported"] {
115
+ display: none;
116
+ }
117
+ ```
118
+
119
+ You can also check availability in JS:
120
+
121
+ PiPControl.tsx
122
+
123
+ ```
124
+ function PiPControl() {
125
+ const availability = usePlayer((s) => s.pipAvailability);
126
+
127
+ if (availability === 'unsupported') return null;
128
+
129
+ return <PiPButton />;
130
+ }
131
+ ```
@@ -0,0 +1,119 @@
1
+ # Overview
2
+
3
+ How Video.js players are structured — state, UI, and media
4
+
5
+ Video.js v10 is built around a three-part architecture that separates concerns and maximizes flexibility. Each part is designed to work independently or together, allowing you to use as much or as little of Video.js as you need.
6
+
7
+ For the reasoning behind this design, see [Why Video.js?](./why-videojs.md).
8
+
9
+ ## 1\. State management
10
+
11
+ State is handled by a `Player.Provider`, which creates a central state store that all components can access. When you wrap your player in a `Player.Provider`, the components automatically connect to the state.
12
+
13
+ tsx
14
+
15
+ ```
16
+ {/* All components inside automatically connect to state */}
17
+ <Player.Provider>
18
+ <VideoSkin>
19
+ <Video src="video.mp4" />
20
+ </VideoSkin>
21
+ </Player.Provider>
22
+ ```
23
+
24
+ You can access state and actions from anywhere within the provider with the [`usePlayer` hook](../reference/use-player.md).
25
+
26
+ [Learn more about state and actions](./features.md)
27
+
28
+ ## 2\. User interface
29
+
30
+ Use a prebuilt **skin** or build your own from the individual **UI components**.
31
+
32
+ ### Skins
33
+
34
+ Skins are complete, pre-designed player UIs that package components and styles together:
35
+
36
+ tsx
37
+
38
+ ```
39
+ <Player.Provider>
40
+ <VideoSkin>
41
+ <Video src="video.mp4" />
42
+ </VideoSkin>
43
+ </Player.Provider>
44
+ ```
45
+
46
+ [Learn more about skins](./skins.md)
47
+
48
+ ### UI components
49
+
50
+ If you want more control than skins offer you, you can build your own UI from our components.
51
+
52
+ tsx
53
+
54
+ ```
55
+ <Player.Provider>
56
+ <Player.Container>
57
+ <Video src="video.mp4" />
58
+ <Controls.Root>
59
+ <PlayButton />
60
+ {/* ... */}
61
+ </Controls.Root>
62
+ </Player.Container>
63
+ </Player.Provider>
64
+ ```
65
+
66
+ To get started with UI components, you might consider [ejecting a skin](../how-to/customize-skins.md) and using its pre-styled components as a foundation.
67
+
68
+ [Learn more about UI components](./ui-components.md)
69
+
70
+ [Build your own component](../how-to/build-your-own-component.md)
71
+
72
+ ## 3\. Media
73
+
74
+ Media components are the components that actually display your media. They’re essentially “players with no UI”. They handle the video/audio rendering and expose a consistent API.
75
+
76
+ Media components can be format specific (HLS, DASH), service specific (YouTube, Vimeo, Mux), or use case specific (background video).
77
+
78
+ Note
79
+
80
+ DASH, YouTube, Vimeo, Mux, and more media elements are currently under development.
81
+
82
+ tsx
83
+
84
+ ```
85
+ <Player.Provider>
86
+ <VideoSkin>
87
+ <HlsJsVideo src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8" />
88
+ </VideoSkin>
89
+ </Player.Provider>
90
+ ```
91
+
92
+ ## Presets
93
+
94
+ **Presets** preconfigure these parts for a specific use case.
95
+
96
+ The default presets are `@videojs/react/video` and `@videojs/react/audio`, covering the baseline set of controls you’d expect from the HTML `<video>` and `<audio>` tags.
97
+
98
+ Beyond the defaults, presets target more specific use cases. For example, `/background` includes a media element with autoplay, mute, and loop built in, a skin with no controls, and just the features needed to power it:
99
+
100
+ tsx
101
+
102
+ ```
103
+ import { createPlayer } from '@videojs/react';
104
+ import { backgroundFeatures, BackgroundVideo, BackgroundVideoSkin } from '@videojs/react/background';
105
+
106
+ const Player = createPlayer({ features: backgroundFeatures });
107
+
108
+ function Hero() {
109
+ return (
110
+ <Player.Provider>
111
+ <BackgroundVideoSkin>
112
+ <BackgroundVideo src="hero.mp4" />
113
+ </BackgroundVideoSkin>
114
+ </Player.Provider>
115
+ );
116
+ }
117
+ ```
118
+
119
+ [Learn more about presets](./presets.md)