@videojs/react 10.0.0-beta.27 → 10.0.0-beta.28

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 (742) hide show
  1. package/dist/default/i18n/context.js +0 -1
  2. package/dist/default/i18n/context.js.map +1 -1
  3. package/dist/default/i18n/create-i18n.js +0 -1
  4. package/dist/default/i18n/create-i18n.js.map +1 -1
  5. package/dist/default/media/audio.js +0 -1
  6. package/dist/default/media/audio.js.map +1 -1
  7. package/dist/default/media/video.js +0 -1
  8. package/dist/default/media/video.js.map +1 -1
  9. package/dist/default/player/container.js +0 -1
  10. package/dist/default/player/container.js.map +1 -1
  11. package/dist/default/player/context.js +0 -1
  12. package/dist/default/player/context.js.map +1 -1
  13. package/dist/default/player/create-player.js +0 -1
  14. package/dist/default/player/create-player.js.map +1 -1
  15. package/dist/default/player/popup-group-context.js +0 -1
  16. package/dist/default/player/popup-group-context.js.map +1 -1
  17. package/dist/default/presets/audio/minimal-skin.css +16 -19
  18. package/dist/default/presets/audio/minimal-skin.js +1 -0
  19. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  20. package/dist/default/presets/audio/minimal-skin.tailwind.js +1 -0
  21. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  22. package/dist/default/presets/audio/skin.css +27 -30
  23. package/dist/default/presets/audio/skin.js +1 -0
  24. package/dist/default/presets/audio/skin.js.map +1 -1
  25. package/dist/default/presets/audio/skin.tailwind.js +1 -0
  26. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  27. package/dist/default/presets/background/skin.js +1 -0
  28. package/dist/default/presets/background/skin.js.map +1 -1
  29. package/dist/default/presets/live-audio/minimal-skin.css +16 -19
  30. package/dist/default/presets/live-audio/minimal-skin.js +1 -0
  31. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
  32. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +1 -0
  33. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  34. package/dist/default/presets/live-audio/skin.css +27 -30
  35. package/dist/default/presets/live-audio/skin.js +1 -0
  36. package/dist/default/presets/live-audio/skin.js.map +1 -1
  37. package/dist/default/presets/live-audio/skin.tailwind.js +1 -0
  38. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
  39. package/dist/default/presets/live-video/minimal-skin.css +20 -19
  40. package/dist/default/presets/live-video/minimal-skin.js +1 -0
  41. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  42. package/dist/default/presets/live-video/minimal-skin.tailwind.js +1 -0
  43. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  44. package/dist/default/presets/live-video/skin.css +31 -30
  45. package/dist/default/presets/live-video/skin.js +1 -0
  46. package/dist/default/presets/live-video/skin.js.map +1 -1
  47. package/dist/default/presets/live-video/skin.tailwind.js +1 -0
  48. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  49. package/dist/default/presets/video/minimal-skin.css +20 -19
  50. package/dist/default/presets/video/minimal-skin.js +1 -0
  51. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  52. package/dist/default/presets/video/minimal-skin.tailwind.js +1 -0
  53. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  54. package/dist/default/presets/video/skin.css +31 -30
  55. package/dist/default/presets/video/skin.js +1 -0
  56. package/dist/default/presets/video/skin.js.map +1 -1
  57. package/dist/default/presets/video/skin.tailwind.js +1 -0
  58. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  59. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +6 -6
  60. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  61. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  62. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  63. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  64. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  65. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  66. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  67. package/dist/default/ui/airplay-button/airplay-button.js +0 -1
  68. package/dist/default/ui/airplay-button/airplay-button.js.map +1 -1
  69. package/dist/default/ui/alert-dialog/alert-dialog-close.js +0 -1
  70. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  71. package/dist/default/ui/alert-dialog/alert-dialog-description.js +0 -1
  72. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  73. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +0 -1
  74. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  75. package/dist/default/ui/alert-dialog/alert-dialog-root.js +0 -1
  76. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  77. package/dist/default/ui/alert-dialog/alert-dialog-title.js +0 -1
  78. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  79. package/dist/default/ui/alert-dialog/context.js +0 -1
  80. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  81. package/dist/default/ui/audio-track/use-audio-track-options.js +0 -1
  82. package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -1
  83. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js +0 -1
  84. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  85. package/dist/default/ui/buffering-indicator/buffering-indicator.js +0 -1
  86. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  87. package/dist/default/ui/captions-button/captions-button.js +0 -1
  88. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  89. package/dist/default/ui/captions-radio-group/captions-radio-group.js +0 -1
  90. package/dist/default/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  91. package/dist/default/ui/captions-radio-group/use-captions-options.js +0 -1
  92. package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -1
  93. package/dist/default/ui/cast-button/cast-button.js +0 -1
  94. package/dist/default/ui/cast-button/cast-button.js.map +1 -1
  95. package/dist/default/ui/controls/context.js +0 -1
  96. package/dist/default/ui/controls/context.js.map +1 -1
  97. package/dist/default/ui/controls/controls-group.js +0 -1
  98. package/dist/default/ui/controls/controls-group.js.map +1 -1
  99. package/dist/default/ui/controls/controls-root.js +0 -1
  100. package/dist/default/ui/controls/controls-root.js.map +1 -1
  101. package/dist/default/ui/create-context-part.js +0 -1
  102. package/dist/default/ui/create-context-part.js.map +1 -1
  103. package/dist/default/ui/create-media-button.js +0 -1
  104. package/dist/default/ui/create-media-button.js.map +1 -1
  105. package/dist/default/ui/error-dialog/context.js +0 -1
  106. package/dist/default/ui/error-dialog/context.js.map +1 -1
  107. package/dist/default/ui/error-dialog/error-dialog-close.js +0 -1
  108. package/dist/default/ui/error-dialog/error-dialog-close.js.map +1 -1
  109. package/dist/default/ui/error-dialog/error-dialog-description.js +0 -1
  110. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -1
  111. package/dist/default/ui/error-dialog/error-dialog-root.js +0 -1
  112. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -1
  113. package/dist/default/ui/error-dialog/error-dialog-title.js +0 -1
  114. package/dist/default/ui/error-dialog/error-dialog-title.js.map +1 -1
  115. package/dist/default/ui/fullscreen-button/fullscreen-button.js +0 -1
  116. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  117. package/dist/default/ui/gesture/gesture.js +0 -1
  118. package/dist/default/ui/gesture/gesture.js.map +1 -1
  119. package/dist/default/ui/gesture/use-doubletap-gesture.js +0 -1
  120. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  121. package/dist/default/ui/gesture/use-tap-gesture.js +0 -1
  122. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  123. package/dist/default/ui/hooks/create-radio-options-hook.js +0 -1
  124. package/dist/default/ui/hooks/create-radio-options-hook.js.map +1 -1
  125. package/dist/default/ui/hooks/use-button.js +0 -1
  126. package/dist/default/ui/hooks/use-button.js.map +1 -1
  127. package/dist/default/ui/hooks/use-positioned-state.js +0 -1
  128. package/dist/default/ui/hooks/use-positioned-state.js.map +1 -1
  129. package/dist/default/ui/hooks/use-slider.js +0 -1
  130. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  131. package/dist/default/ui/hotkey/hotkey.js +0 -1
  132. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  133. package/dist/default/ui/hotkey/use-hotkey-shortcut.js +0 -1
  134. package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  135. package/dist/default/ui/hotkey/use-hotkey.js +0 -1
  136. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
  137. package/dist/default/ui/input-indicator/use-indicator-visibility.js +0 -1
  138. package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  139. package/dist/default/ui/input-indicator/use-input-action-subscription.js +0 -1
  140. package/dist/default/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  141. package/dist/default/ui/input-indicator/use-input-indicator-root.js +0 -1
  142. package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  143. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js +0 -1
  144. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  145. package/dist/default/ui/live-button/live-button.js +0 -1
  146. package/dist/default/ui/live-button/live-button.js.map +1 -1
  147. package/dist/default/ui/menu/context.js +0 -1
  148. package/dist/default/ui/menu/context.js.map +1 -1
  149. package/dist/default/ui/menu/menu-checkbox-item.js +0 -1
  150. package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
  151. package/dist/default/ui/menu/menu-content.js +0 -1
  152. package/dist/default/ui/menu/menu-content.js.map +1 -1
  153. package/dist/default/ui/menu/menu-group-label.js +0 -1
  154. package/dist/default/ui/menu/menu-group-label.js.map +1 -1
  155. package/dist/default/ui/menu/menu-group.js +0 -1
  156. package/dist/default/ui/menu/menu-group.js.map +1 -1
  157. package/dist/default/ui/menu/menu-item-indicator.js +0 -1
  158. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  159. package/dist/default/ui/menu/menu-item.js +0 -1
  160. package/dist/default/ui/menu/menu-item.js.map +1 -1
  161. package/dist/default/ui/menu/menu-radio-group.js +0 -1
  162. package/dist/default/ui/menu/menu-radio-group.js.map +1 -1
  163. package/dist/default/ui/menu/menu-radio-item.js +0 -1
  164. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  165. package/dist/default/ui/menu/menu-root.js +0 -1
  166. package/dist/default/ui/menu/menu-root.js.map +1 -1
  167. package/dist/default/ui/menu/menu-separator.js +0 -1
  168. package/dist/default/ui/menu/menu-separator.js.map +1 -1
  169. package/dist/default/ui/menu/menu-trigger.js +26 -12
  170. package/dist/default/ui/menu/menu-trigger.js.map +1 -1
  171. package/dist/default/ui/menu/use-menu-group.js +0 -1
  172. package/dist/default/ui/menu/use-menu-group.js.map +1 -1
  173. package/dist/default/ui/mute-button/mute-button.js +0 -1
  174. package/dist/default/ui/mute-button/mute-button.js.map +1 -1
  175. package/dist/default/ui/pip-button/pip-button.js +0 -1
  176. package/dist/default/ui/pip-button/pip-button.js.map +1 -1
  177. package/dist/default/ui/play-button/play-button.js +0 -1
  178. package/dist/default/ui/play-button/play-button.js.map +1 -1
  179. package/dist/default/ui/playback-rate/use-playback-rate-options.js +0 -1
  180. package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  181. package/dist/default/ui/playback-rate-button/playback-rate-button.js +0 -1
  182. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  183. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js +0 -1
  184. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  185. package/dist/default/ui/popover/context.js +0 -1
  186. package/dist/default/ui/popover/context.js.map +1 -1
  187. package/dist/default/ui/popover/popover-arrow.js +0 -1
  188. package/dist/default/ui/popover/popover-arrow.js.map +1 -1
  189. package/dist/default/ui/popover/popover-popup.js +0 -1
  190. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  191. package/dist/default/ui/popover/popover-root.js +0 -1
  192. package/dist/default/ui/popover/popover-root.js.map +1 -1
  193. package/dist/default/ui/popover/popover-trigger.js +0 -1
  194. package/dist/default/ui/popover/popover-trigger.js.map +1 -1
  195. package/dist/default/ui/popover/use-popup-position.js +0 -1
  196. package/dist/default/ui/popover/use-popup-position.js.map +1 -1
  197. package/dist/default/ui/poster/poster.js +0 -1
  198. package/dist/default/ui/poster/poster.js.map +1 -1
  199. package/dist/default/ui/quality/use-quality-options.js +0 -1
  200. package/dist/default/ui/quality/use-quality-options.js.map +1 -1
  201. package/dist/default/ui/quality-radio-group/quality-radio-group.js +0 -1
  202. package/dist/default/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  203. package/dist/default/ui/seek-button/seek-button.js +0 -1
  204. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  205. package/dist/default/ui/seek-indicator/context.js +0 -1
  206. package/dist/default/ui/seek-indicator/context.js.map +1 -1
  207. package/dist/default/ui/seek-indicator/seek-indicator-root.js +0 -1
  208. package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  209. package/dist/default/ui/seek-indicator/seek-indicator-value.js +0 -1
  210. package/dist/default/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  211. package/dist/default/ui/slider/context.js +0 -1
  212. package/dist/default/ui/slider/context.js.map +1 -1
  213. package/dist/default/ui/slider/slider-buffer.js +0 -1
  214. package/dist/default/ui/slider/slider-buffer.js.map +1 -1
  215. package/dist/default/ui/slider/slider-fill.js +0 -1
  216. package/dist/default/ui/slider/slider-fill.js.map +1 -1
  217. package/dist/default/ui/slider/slider-preview.js +0 -1
  218. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  219. package/dist/default/ui/slider/slider-root.js +0 -1
  220. package/dist/default/ui/slider/slider-root.js.map +1 -1
  221. package/dist/default/ui/slider/slider-thumb.js +0 -1
  222. package/dist/default/ui/slider/slider-thumb.js.map +1 -1
  223. package/dist/default/ui/slider/slider-thumbnail.js +0 -1
  224. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  225. package/dist/default/ui/slider/slider-track.js +0 -1
  226. package/dist/default/ui/slider/slider-track.js.map +1 -1
  227. package/dist/default/ui/slider/slider-value.js +0 -1
  228. package/dist/default/ui/slider/slider-value.js.map +1 -1
  229. package/dist/default/ui/status-announcer/status-announcer.js +0 -1
  230. package/dist/default/ui/status-announcer/status-announcer.js.map +1 -1
  231. package/dist/default/ui/status-indicator/context.js +0 -1
  232. package/dist/default/ui/status-indicator/context.js.map +1 -1
  233. package/dist/default/ui/status-indicator/status-indicator-root.js +0 -1
  234. package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -1
  235. package/dist/default/ui/status-indicator/status-indicator-value.js +0 -1
  236. package/dist/default/ui/status-indicator/status-indicator-value.js.map +1 -1
  237. package/dist/default/ui/thumbnail/thumbnail.js +0 -1
  238. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  239. package/dist/default/ui/time/time-group.js +0 -1
  240. package/dist/default/ui/time/time-group.js.map +1 -1
  241. package/dist/default/ui/time/time-separator.js +0 -1
  242. package/dist/default/ui/time/time-separator.js.map +1 -1
  243. package/dist/default/ui/time/time-value.js +0 -1
  244. package/dist/default/ui/time/time-value.js.map +1 -1
  245. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js +0 -1
  246. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  247. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +0 -1
  248. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -1
  249. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js +0 -1
  250. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -1
  251. package/dist/default/ui/time-slider/time-slider-root.js +0 -1
  252. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  253. package/dist/default/ui/tooltip/context.js +0 -1
  254. package/dist/default/ui/tooltip/context.js.map +1 -1
  255. package/dist/default/ui/tooltip/group-context.js +0 -1
  256. package/dist/default/ui/tooltip/group-context.js.map +1 -1
  257. package/dist/default/ui/tooltip/tooltip-arrow.js +0 -1
  258. package/dist/default/ui/tooltip/tooltip-arrow.js.map +1 -1
  259. package/dist/default/ui/tooltip/tooltip-label.js +0 -1
  260. package/dist/default/ui/tooltip/tooltip-label.js.map +1 -1
  261. package/dist/default/ui/tooltip/tooltip-popup.js +0 -1
  262. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  263. package/dist/default/ui/tooltip/tooltip-provider.js +0 -1
  264. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  265. package/dist/default/ui/tooltip/tooltip-root.js +0 -1
  266. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  267. package/dist/default/ui/tooltip/tooltip-shortcut.js +0 -1
  268. package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -1
  269. package/dist/default/ui/tooltip/tooltip-trigger.js +0 -1
  270. package/dist/default/ui/tooltip/tooltip-trigger.js.map +1 -1
  271. package/dist/default/ui/volume-indicator/context.js +0 -1
  272. package/dist/default/ui/volume-indicator/context.js.map +1 -1
  273. package/dist/default/ui/volume-indicator/volume-indicator-fill.js +0 -1
  274. package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  275. package/dist/default/ui/volume-indicator/volume-indicator-root.js +0 -1
  276. package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  277. package/dist/default/ui/volume-indicator/volume-indicator-value.js +0 -1
  278. package/dist/default/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  279. package/dist/default/ui/volume-slider/volume-slider-root.js +0 -1
  280. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  281. package/dist/default/utils/merge-props.js +0 -1
  282. package/dist/default/utils/merge-props.js.map +1 -1
  283. package/dist/default/utils/use-attach-iframe.js +0 -1
  284. package/dist/default/utils/use-attach-iframe.js.map +1 -1
  285. package/dist/default/utils/use-attach-media.js +0 -1
  286. package/dist/default/utils/use-attach-media.js.map +1 -1
  287. package/dist/default/utils/use-composed-refs.js +0 -1
  288. package/dist/default/utils/use-composed-refs.js.map +1 -1
  289. package/dist/default/utils/use-destroy.js +0 -1
  290. package/dist/default/utils/use-destroy.js.map +1 -1
  291. package/dist/default/utils/use-force-render.js +0 -1
  292. package/dist/default/utils/use-force-render.js.map +1 -1
  293. package/dist/default/utils/use-latest-ref.js +0 -1
  294. package/dist/default/utils/use-latest-ref.js.map +1 -1
  295. package/dist/default/utils/use-media-component.js +0 -1
  296. package/dist/default/utils/use-media-component.js.map +1 -1
  297. package/dist/default/utils/use-media-instance.js +0 -1
  298. package/dist/default/utils/use-media-instance.js.map +1 -1
  299. package/dist/default/utils/use-render.js +0 -1
  300. package/dist/default/utils/use-render.js.map +1 -1
  301. package/dist/default/utils/use-safe-id.js +0 -1
  302. package/dist/default/utils/use-safe-id.js.map +1 -1
  303. package/dist/dev/i18n/context.d.ts.map +1 -1
  304. package/dist/dev/i18n/context.js +0 -1
  305. package/dist/dev/i18n/context.js.map +1 -1
  306. package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
  307. package/dist/dev/i18n/create-i18n.js +0 -1
  308. package/dist/dev/i18n/create-i18n.js.map +1 -1
  309. package/dist/dev/media/audio.d.ts.map +1 -1
  310. package/dist/dev/media/audio.js +0 -1
  311. package/dist/dev/media/audio.js.map +1 -1
  312. package/dist/dev/media/video.d.ts.map +1 -1
  313. package/dist/dev/media/video.js +0 -1
  314. package/dist/dev/media/video.js.map +1 -1
  315. package/dist/dev/player/container.d.ts.map +1 -1
  316. package/dist/dev/player/container.js +0 -1
  317. package/dist/dev/player/container.js.map +1 -1
  318. package/dist/dev/player/context.d.ts.map +1 -1
  319. package/dist/dev/player/context.js +0 -1
  320. package/dist/dev/player/context.js.map +1 -1
  321. package/dist/dev/player/create-player.d.ts.map +1 -1
  322. package/dist/dev/player/create-player.js +0 -1
  323. package/dist/dev/player/create-player.js.map +1 -1
  324. package/dist/dev/player/popup-group-context.js +0 -1
  325. package/dist/dev/player/popup-group-context.js.map +1 -1
  326. package/dist/dev/presets/audio/minimal-skin.css +16 -19
  327. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  328. package/dist/dev/presets/audio/minimal-skin.js +1 -0
  329. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  330. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  331. package/dist/dev/presets/audio/minimal-skin.tailwind.js +1 -0
  332. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  333. package/dist/dev/presets/audio/skin.css +27 -30
  334. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  335. package/dist/dev/presets/audio/skin.js +1 -0
  336. package/dist/dev/presets/audio/skin.js.map +1 -1
  337. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  338. package/dist/dev/presets/audio/skin.tailwind.js +1 -0
  339. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  340. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  341. package/dist/dev/presets/background/skin.js +1 -0
  342. package/dist/dev/presets/background/skin.js.map +1 -1
  343. package/dist/dev/presets/live-audio/minimal-skin.css +16 -19
  344. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
  345. package/dist/dev/presets/live-audio/minimal-skin.js +1 -0
  346. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
  347. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
  348. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +1 -0
  349. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  350. package/dist/dev/presets/live-audio/skin.css +27 -30
  351. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
  352. package/dist/dev/presets/live-audio/skin.js +1 -0
  353. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  354. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
  355. package/dist/dev/presets/live-audio/skin.tailwind.js +1 -0
  356. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
  357. package/dist/dev/presets/live-video/minimal-skin.css +20 -19
  358. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  359. package/dist/dev/presets/live-video/minimal-skin.js +1 -0
  360. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  361. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  362. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +1 -0
  363. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  364. package/dist/dev/presets/live-video/skin.css +31 -30
  365. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  366. package/dist/dev/presets/live-video/skin.js +1 -0
  367. package/dist/dev/presets/live-video/skin.js.map +1 -1
  368. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  369. package/dist/dev/presets/live-video/skin.tailwind.js +1 -0
  370. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  371. package/dist/dev/presets/video/minimal-skin.css +20 -19
  372. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  373. package/dist/dev/presets/video/minimal-skin.js +1 -0
  374. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  375. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  376. package/dist/dev/presets/video/minimal-skin.tailwind.js +1 -0
  377. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  378. package/dist/dev/presets/video/skin.css +31 -30
  379. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  380. package/dist/dev/presets/video/skin.js +1 -0
  381. package/dist/dev/presets/video/skin.js.map +1 -1
  382. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  383. package/dist/dev/presets/video/skin.tailwind.js +1 -0
  384. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  385. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +6 -6
  386. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  387. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  388. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  389. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  390. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  391. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  392. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  393. package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -1
  394. package/dist/dev/ui/airplay-button/airplay-button.js +0 -1
  395. package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -1
  396. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
  397. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +0 -1
  398. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  399. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
  400. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +0 -1
  401. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  402. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
  403. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +0 -1
  404. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  405. package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map +1 -1
  406. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +0 -1
  407. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  408. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
  409. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +0 -1
  410. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  411. package/dist/dev/ui/alert-dialog/context.d.ts.map +1 -1
  412. package/dist/dev/ui/alert-dialog/context.js +0 -1
  413. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  414. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +1 -1
  415. package/dist/dev/ui/audio-track/use-audio-track-options.js +0 -1
  416. package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -1
  417. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts.map +1 -1
  418. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js +0 -1
  419. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  420. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  421. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +0 -1
  422. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  423. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  424. package/dist/dev/ui/captions-button/captions-button.js +0 -1
  425. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  426. package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts.map +1 -1
  427. package/dist/dev/ui/captions-radio-group/captions-radio-group.js +0 -1
  428. package/dist/dev/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  429. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -1
  430. package/dist/dev/ui/captions-radio-group/use-captions-options.js +0 -1
  431. package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -1
  432. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -1
  433. package/dist/dev/ui/cast-button/cast-button.js +0 -1
  434. package/dist/dev/ui/cast-button/cast-button.js.map +1 -1
  435. package/dist/dev/ui/controls/context.js +0 -1
  436. package/dist/dev/ui/controls/context.js.map +1 -1
  437. package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
  438. package/dist/dev/ui/controls/controls-group.js +0 -1
  439. package/dist/dev/ui/controls/controls-group.js.map +1 -1
  440. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  441. package/dist/dev/ui/controls/controls-root.js +0 -1
  442. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  443. package/dist/dev/ui/create-context-part.js +0 -1
  444. package/dist/dev/ui/create-context-part.js.map +1 -1
  445. package/dist/dev/ui/create-media-button.js +0 -1
  446. package/dist/dev/ui/create-media-button.js.map +1 -1
  447. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -1
  448. package/dist/dev/ui/error-dialog/context.js +0 -1
  449. package/dist/dev/ui/error-dialog/context.js.map +1 -1
  450. package/dist/dev/ui/error-dialog/error-dialog-close.d.ts.map +1 -1
  451. package/dist/dev/ui/error-dialog/error-dialog-close.js +0 -1
  452. package/dist/dev/ui/error-dialog/error-dialog-close.js.map +1 -1
  453. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  454. package/dist/dev/ui/error-dialog/error-dialog-description.js +0 -1
  455. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -1
  456. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -1
  457. package/dist/dev/ui/error-dialog/error-dialog-root.js +0 -1
  458. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -1
  459. package/dist/dev/ui/error-dialog/error-dialog-title.d.ts.map +1 -1
  460. package/dist/dev/ui/error-dialog/error-dialog-title.js +0 -1
  461. package/dist/dev/ui/error-dialog/error-dialog-title.js.map +1 -1
  462. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  463. package/dist/dev/ui/fullscreen-button/fullscreen-button.js +0 -1
  464. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  465. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
  466. package/dist/dev/ui/gesture/gesture.js +0 -1
  467. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  468. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  469. package/dist/dev/ui/gesture/use-doubletap-gesture.js +0 -1
  470. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  471. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  472. package/dist/dev/ui/gesture/use-tap-gesture.js +0 -1
  473. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  474. package/dist/dev/ui/hooks/create-radio-options-hook.d.ts.map +1 -1
  475. package/dist/dev/ui/hooks/create-radio-options-hook.js +0 -1
  476. package/dist/dev/ui/hooks/create-radio-options-hook.js.map +1 -1
  477. package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
  478. package/dist/dev/ui/hooks/use-button.js +0 -1
  479. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  480. package/dist/dev/ui/hooks/use-positioned-state.js +0 -1
  481. package/dist/dev/ui/hooks/use-positioned-state.js.map +1 -1
  482. package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
  483. package/dist/dev/ui/hooks/use-slider.js +0 -1
  484. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  485. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  486. package/dist/dev/ui/hotkey/hotkey.js +0 -1
  487. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  488. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -1
  489. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +0 -1
  490. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  491. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -1
  492. package/dist/dev/ui/hotkey/use-hotkey.js +0 -1
  493. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
  494. package/dist/dev/ui/input-indicator/use-indicator-visibility.js +0 -1
  495. package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  496. package/dist/dev/ui/input-indicator/use-input-action-subscription.js +0 -1
  497. package/dist/dev/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  498. package/dist/dev/ui/input-indicator/use-input-indicator-root.js +0 -1
  499. package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  500. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js +0 -1
  501. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  502. package/dist/dev/ui/live-button/live-button.d.ts.map +1 -1
  503. package/dist/dev/ui/live-button/live-button.js +0 -1
  504. package/dist/dev/ui/live-button/live-button.js.map +1 -1
  505. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  506. package/dist/dev/ui/menu/context.js +0 -1
  507. package/dist/dev/ui/menu/context.js.map +1 -1
  508. package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -1
  509. package/dist/dev/ui/menu/menu-checkbox-item.js +0 -1
  510. package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -1
  511. package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
  512. package/dist/dev/ui/menu/menu-content.js +0 -1
  513. package/dist/dev/ui/menu/menu-content.js.map +1 -1
  514. package/dist/dev/ui/menu/menu-group-label.d.ts.map +1 -1
  515. package/dist/dev/ui/menu/menu-group-label.js +0 -1
  516. package/dist/dev/ui/menu/menu-group-label.js.map +1 -1
  517. package/dist/dev/ui/menu/menu-group.d.ts.map +1 -1
  518. package/dist/dev/ui/menu/menu-group.js +0 -1
  519. package/dist/dev/ui/menu/menu-group.js.map +1 -1
  520. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  521. package/dist/dev/ui/menu/menu-item-indicator.js +0 -1
  522. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  523. package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
  524. package/dist/dev/ui/menu/menu-item.js +0 -1
  525. package/dist/dev/ui/menu/menu-item.js.map +1 -1
  526. package/dist/dev/ui/menu/menu-radio-group.d.ts.map +1 -1
  527. package/dist/dev/ui/menu/menu-radio-group.js +0 -1
  528. package/dist/dev/ui/menu/menu-radio-group.js.map +1 -1
  529. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  530. package/dist/dev/ui/menu/menu-radio-item.js +0 -1
  531. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  532. package/dist/dev/ui/menu/menu-root.d.ts.map +1 -1
  533. package/dist/dev/ui/menu/menu-root.js +0 -1
  534. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  535. package/dist/dev/ui/menu/menu-separator.d.ts.map +1 -1
  536. package/dist/dev/ui/menu/menu-separator.js +0 -1
  537. package/dist/dev/ui/menu/menu-separator.js.map +1 -1
  538. package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
  539. package/dist/dev/ui/menu/menu-trigger.js +26 -12
  540. package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
  541. package/dist/dev/ui/menu/use-menu-group.js +0 -1
  542. package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
  543. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  544. package/dist/dev/ui/mute-button/mute-button.js +0 -1
  545. package/dist/dev/ui/mute-button/mute-button.js.map +1 -1
  546. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  547. package/dist/dev/ui/pip-button/pip-button.js +0 -1
  548. package/dist/dev/ui/pip-button/pip-button.js.map +1 -1
  549. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  550. package/dist/dev/ui/play-button/play-button.js +0 -1
  551. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  552. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -1
  553. package/dist/dev/ui/playback-rate/use-playback-rate-options.js +0 -1
  554. package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  555. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  556. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +0 -1
  557. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  558. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts.map +1 -1
  559. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js +0 -1
  560. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  561. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  562. package/dist/dev/ui/popover/context.js +0 -1
  563. package/dist/dev/ui/popover/context.js.map +1 -1
  564. package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
  565. package/dist/dev/ui/popover/popover-arrow.js +0 -1
  566. package/dist/dev/ui/popover/popover-arrow.js.map +1 -1
  567. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  568. package/dist/dev/ui/popover/popover-popup.js +0 -1
  569. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  570. package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
  571. package/dist/dev/ui/popover/popover-root.js +0 -1
  572. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  573. package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
  574. package/dist/dev/ui/popover/popover-trigger.js +0 -1
  575. package/dist/dev/ui/popover/popover-trigger.js.map +1 -1
  576. package/dist/dev/ui/popover/use-popup-position.js +0 -1
  577. package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
  578. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  579. package/dist/dev/ui/poster/poster.js +0 -1
  580. package/dist/dev/ui/poster/poster.js.map +1 -1
  581. package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -1
  582. package/dist/dev/ui/quality/use-quality-options.js +0 -1
  583. package/dist/dev/ui/quality/use-quality-options.js.map +1 -1
  584. package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts.map +1 -1
  585. package/dist/dev/ui/quality-radio-group/quality-radio-group.js +0 -1
  586. package/dist/dev/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  587. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  588. package/dist/dev/ui/seek-button/seek-button.js +0 -1
  589. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  590. package/dist/dev/ui/seek-indicator/context.js +0 -1
  591. package/dist/dev/ui/seek-indicator/context.js.map +1 -1
  592. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -1
  593. package/dist/dev/ui/seek-indicator/seek-indicator-root.js +0 -1
  594. package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  595. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map +1 -1
  596. package/dist/dev/ui/seek-indicator/seek-indicator-value.js +0 -1
  597. package/dist/dev/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  598. package/dist/dev/ui/slider/context.js +0 -1
  599. package/dist/dev/ui/slider/context.js.map +1 -1
  600. package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
  601. package/dist/dev/ui/slider/slider-buffer.js +0 -1
  602. package/dist/dev/ui/slider/slider-buffer.js.map +1 -1
  603. package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
  604. package/dist/dev/ui/slider/slider-fill.js +0 -1
  605. package/dist/dev/ui/slider/slider-fill.js.map +1 -1
  606. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  607. package/dist/dev/ui/slider/slider-preview.js +0 -1
  608. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  609. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  610. package/dist/dev/ui/slider/slider-root.js +0 -1
  611. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  612. package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
  613. package/dist/dev/ui/slider/slider-thumb.js +0 -1
  614. package/dist/dev/ui/slider/slider-thumb.js.map +1 -1
  615. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  616. package/dist/dev/ui/slider/slider-thumbnail.js +0 -1
  617. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  618. package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
  619. package/dist/dev/ui/slider/slider-track.js +0 -1
  620. package/dist/dev/ui/slider/slider-track.js.map +1 -1
  621. package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
  622. package/dist/dev/ui/slider/slider-value.js +0 -1
  623. package/dist/dev/ui/slider/slider-value.js.map +1 -1
  624. package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -1
  625. package/dist/dev/ui/status-announcer/status-announcer.js +0 -1
  626. package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -1
  627. package/dist/dev/ui/status-indicator/context.js +0 -1
  628. package/dist/dev/ui/status-indicator/context.js.map +1 -1
  629. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -1
  630. package/dist/dev/ui/status-indicator/status-indicator-root.js +0 -1
  631. package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -1
  632. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map +1 -1
  633. package/dist/dev/ui/status-indicator/status-indicator-value.js +0 -1
  634. package/dist/dev/ui/status-indicator/status-indicator-value.js.map +1 -1
  635. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  636. package/dist/dev/ui/thumbnail/thumbnail.js +0 -1
  637. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  638. package/dist/dev/ui/time/time-group.d.ts.map +1 -1
  639. package/dist/dev/ui/time/time-group.js +0 -1
  640. package/dist/dev/ui/time/time-group.js.map +1 -1
  641. package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
  642. package/dist/dev/ui/time/time-separator.js +0 -1
  643. package/dist/dev/ui/time/time-separator.js.map +1 -1
  644. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  645. package/dist/dev/ui/time/time-value.js +0 -1
  646. package/dist/dev/ui/time/time-value.js.map +1 -1
  647. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js +0 -1
  648. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  649. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.d.ts.map +1 -1
  650. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +0 -1
  651. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -1
  652. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.d.ts.map +1 -1
  653. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js +0 -1
  654. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -1
  655. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  656. package/dist/dev/ui/time-slider/time-slider-root.js +0 -1
  657. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  658. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  659. package/dist/dev/ui/tooltip/context.js +0 -1
  660. package/dist/dev/ui/tooltip/context.js.map +1 -1
  661. package/dist/dev/ui/tooltip/group-context.js +0 -1
  662. package/dist/dev/ui/tooltip/group-context.js.map +1 -1
  663. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
  664. package/dist/dev/ui/tooltip/tooltip-arrow.js +0 -1
  665. package/dist/dev/ui/tooltip/tooltip-arrow.js.map +1 -1
  666. package/dist/dev/ui/tooltip/tooltip-label.d.ts.map +1 -1
  667. package/dist/dev/ui/tooltip/tooltip-label.js +0 -1
  668. package/dist/dev/ui/tooltip/tooltip-label.js.map +1 -1
  669. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  670. package/dist/dev/ui/tooltip/tooltip-popup.js +0 -1
  671. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  672. package/dist/dev/ui/tooltip/tooltip-provider.d.ts.map +1 -1
  673. package/dist/dev/ui/tooltip/tooltip-provider.js +0 -1
  674. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  675. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  676. package/dist/dev/ui/tooltip/tooltip-root.js +0 -1
  677. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  678. package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -1
  679. package/dist/dev/ui/tooltip/tooltip-shortcut.js +0 -1
  680. package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -1
  681. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  682. package/dist/dev/ui/tooltip/tooltip-trigger.js +0 -1
  683. package/dist/dev/ui/tooltip/tooltip-trigger.js.map +1 -1
  684. package/dist/dev/ui/volume-indicator/context.js +0 -1
  685. package/dist/dev/ui/volume-indicator/context.js.map +1 -1
  686. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts.map +1 -1
  687. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +0 -1
  688. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  689. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
  690. package/dist/dev/ui/volume-indicator/volume-indicator-root.js +0 -1
  691. package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  692. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts.map +1 -1
  693. package/dist/dev/ui/volume-indicator/volume-indicator-value.js +0 -1
  694. package/dist/dev/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  695. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  696. package/dist/dev/ui/volume-slider/volume-slider-root.js +0 -1
  697. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  698. package/dist/dev/utils/merge-props.d.ts.map +1 -1
  699. package/dist/dev/utils/merge-props.js +0 -1
  700. package/dist/dev/utils/merge-props.js.map +1 -1
  701. package/dist/dev/utils/use-attach-iframe.js +0 -1
  702. package/dist/dev/utils/use-attach-iframe.js.map +1 -1
  703. package/dist/dev/utils/use-attach-media.d.ts.map +1 -1
  704. package/dist/dev/utils/use-attach-media.js +0 -1
  705. package/dist/dev/utils/use-attach-media.js.map +1 -1
  706. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -1
  707. package/dist/dev/utils/use-composed-refs.js +0 -1
  708. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  709. package/dist/dev/utils/use-destroy.d.ts.map +1 -1
  710. package/dist/dev/utils/use-destroy.js +0 -1
  711. package/dist/dev/utils/use-destroy.js.map +1 -1
  712. package/dist/dev/utils/use-force-render.js +0 -1
  713. package/dist/dev/utils/use-force-render.js.map +1 -1
  714. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -1
  715. package/dist/dev/utils/use-latest-ref.js +0 -1
  716. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  717. package/dist/dev/utils/use-media-component.d.ts.map +1 -1
  718. package/dist/dev/utils/use-media-component.js +0 -1
  719. package/dist/dev/utils/use-media-component.js.map +1 -1
  720. package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
  721. package/dist/dev/utils/use-media-instance.js +0 -1
  722. package/dist/dev/utils/use-media-instance.js.map +1 -1
  723. package/dist/dev/utils/use-render.d.ts.map +1 -1
  724. package/dist/dev/utils/use-render.js +0 -1
  725. package/dist/dev/utils/use-render.js.map +1 -1
  726. package/dist/dev/utils/use-safe-id.js +0 -1
  727. package/dist/dev/utils/use-safe-id.js.map +1 -1
  728. package/docs/README.md +1 -1
  729. package/docs/concepts/features.md +2 -2
  730. package/docs/concepts/media-sources.md +79 -1
  731. package/docs/concepts/skins.md +31 -30
  732. package/docs/how-to/build-your-own-component.md +1 -1
  733. package/docs/how-to/customize-skins.md +94 -98
  734. package/docs/how-to/migrate-from-media-chrome.md +412 -0
  735. package/docs/how-to/migrate-from-mux-player.md +551 -0
  736. package/docs/how-to/migrate-from-plyr.md +385 -0
  737. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  738. package/docs/llms.txt +9 -0
  739. package/docs/reference/feature-volume.md +4 -2
  740. package/docs/reference/mute-button.md +34 -0
  741. package/docs/reference/volume-slider.md +1 -1
  742. package/package.json +8 -8
@@ -0,0 +1,594 @@
1
+ # Migrate from Video.js 8
2
+
3
+ Move a Video.js 8 integration to v10, mapping the options object, techs, plugins, and player API onto composed components
4
+
5
+ Same name, different shape. Video.js 8 gives you one function, `videojs()`, and one big options object. You enhance a `<video>` element, pass configuration, and get back a player with a control bar, a plugin system, and a component tree you can reach into.
6
+
7
+ Video.js v10 is a rebuild rather than a release. There’s no `videojs()` call, no options object, and no plugin registry. You compose a player out of a few named pieces instead, and the result is smaller, easier to restyle, and a lot easier to use from React.
8
+
9
+ Caution
10
+
11
+ This isn’t a version bump you can do with a find-and-replace. Plan it as a rewrite of your player setup, and read this guide before you estimate it.
12
+
13
+ Video.js 8 lives on at its [repo](https://github.com/videojs/video.js) and [docs](https://legacy.videojs.org).
14
+
15
+ ## Three pieces instead of one
16
+
17
+ In v8 the player was everything: playback, UI, and the skin on top of it. Options configured all three, which is why the options object grew so large.
18
+
19
+ v10 splits those jobs up. Learning the three names first makes the rest of this guide much shorter.
20
+
21
+ **The player** is the outer element. It holds state and hands that state to everything inside it, and it draws nothing. This is the closest thing to a v8 `player` instance, but it owns state rather than DOM. Which state it holds depends on the [features](../concepts/features.md) it’s built from.
22
+
23
+ **The media** is the thing that plays the video. This is where v8’s *tech* went. A plain `<video>` plays progressive files, and there’s a [media component](../concepts/media-sources.md) for HLS, DASH, YouTube, Vimeo, and Mux. Swapping one for another is a tag change, and the rest of your player keeps working.
24
+
25
+ **The skin** is the UI: the controls, the poster, the captions, the settings menu, the keyboard shortcuts. It’s the v8 control bar and skin combined, except [skins](../concepts/skins.md) are plain trees of components you can read and edit rather than a class hierarchy you subclass.
26
+
27
+ So a v8 embed becomes a player wrapped around a skin wrapped around a media:
28
+
29
+ jsx
30
+
31
+ ```
32
+ <VideoPlayer>
33
+ <VideoSkin>
34
+ <Video src="/video.mp4" />
35
+ </VideoSkin>
36
+ </VideoPlayer>
37
+ ```
38
+
39
+ Most of this guide is about which of those three a given v8 option now belongs to.
40
+
41
+ ## Your first player
42
+
43
+ v8 shipped no React package, so you were managing a ref, calling `videojs()` in an effect, and disposing on unmount. Something like this:
44
+
45
+ tsx
46
+
47
+ ```
48
+ import { useEffect, useRef } from 'react';
49
+ import videojs from 'video.js';
50
+ import 'video.js/dist/video-js.css';
51
+
52
+ export function MyPlayer() {
53
+ const containerRef = useRef<HTMLDivElement>(null);
54
+ const playerRef = useRef<ReturnType<typeof videojs> | null>(null);
55
+
56
+ useEffect(() => {
57
+ const el = document.createElement('video-js');
58
+ containerRef.current?.appendChild(el);
59
+
60
+ playerRef.current = videojs(el, {
61
+ controls: true,
62
+ preload: 'auto',
63
+ poster: '/poster.jpg',
64
+ sources: [{ src: '/video.mp4', type: 'video/mp4' }],
65
+ });
66
+
67
+ return () => playerRef.current?.dispose();
68
+ }, []);
69
+
70
+ return <div ref={containerRef} />;
71
+ }
72
+ ```
73
+
74
+ `@videojs/react` replaces all of that with real components.
75
+
76
+ bash
77
+
78
+ ```
79
+ npm install @videojs/react
80
+ ```
81
+
82
+ One new idea here. Instead of one `videojs()` that does everything, you pick a [preset](../concepts/presets.md) that matches what you’re building. A preset is a player, a skin, and a media element that already fit together. `@videojs/react/video` is the general-purpose one, and it’s what you want unless you know you need something unusual.
83
+
84
+ tsx
85
+
86
+ ```
87
+ 'use client';
88
+
89
+ import '@videojs/react/video/skin.css';
90
+ import { Video, VideoPlayer, VideoSkin } from '@videojs/react/video';
91
+
92
+ export function MyPlayer() {
93
+ return (
94
+ <VideoPlayer>
95
+ <VideoSkin className="aspect-video" poster="/poster.jpg">
96
+ <Video src="/video.mp4" preload="auto" playsInline>
97
+ <track kind="captions" src="/captions/en.vtt" srclang="en" label="English" default />
98
+ <track kind="metadata" src="/storyboard.vtt" label="thumbnails" default />
99
+ </Video>
100
+ </VideoSkin>
101
+ </VideoPlayer>
102
+ );
103
+ }
104
+ ```
105
+
106
+ `VideoPlayer` is the piece that owns the state. To read that state, the preset ships a matching [`usePlayer`](../reference/use-player.md) hook. There’s no ref to manage and no disposal to remember.
107
+
108
+ Three differences worth understanding, because each one is a pattern you’ll see again:
109
+
110
+ * **No `videojs()` call and no effect.** `VideoPlayer` owns the lifecycle.
111
+ * **No `controls` prop.** The skin *is* the controls. Rendering a skin is how you ask for them, which is also how you opt out.
112
+ * **The poster is a skin prop, not a media attribute.** That’s what lets the skin control how it appears, rather than the browser.
113
+
114
+ The `'use client'` directive is there because the player owns browser state. There’s also a minimal skin, closer to v8’s control bar, if the default’s frosted look is too much of a change.
115
+
116
+ ## Where your options went
117
+
118
+ The v8 options object is gone, and its contents scattered in four directions. This is the biggest conceptual step, so it’s worth understanding the four buckets before you go looking for a specific option.
119
+
120
+ 1. **Media attributes.** Anything the browser itself understands stays exactly where it was, on your media element.
121
+ 2. **Skin attributes.** The poster belongs to the skin, because the skin is what paints it.
122
+ 3. **Your CSS.** Sizing, aspect ratio, and responsive behavior are layout, and layout is yours.
123
+ 4. **Composition.** Which controls exist, which shortcuts fire, which language you’re in. You express these by choosing components rather than by setting flags.
124
+
125
+ ### Media attributes
126
+
127
+ Port these across untouched. They’re native attributes and always were.
128
+
129
+ Video.js 8
130
+
131
+ Video.js v10
132
+
133
+ `autoplay`, `muted`, `loop`, `preload`, `playsinline`, `crossorigin`
134
+
135
+ the same attributes on your media
136
+
137
+ `sources: [{ src, type }]`
138
+
139
+ `src`, or `<source>` children for progressive fallback
140
+
141
+ `disablePictureInPicture`
142
+
143
+ `disablepictureinpicture`
144
+
145
+ ### Skin attributes
146
+
147
+ Video.js 8
148
+
149
+ Video.js v10
150
+
151
+ `poster`
152
+
153
+ the skin’s poster
154
+
155
+ `posterImage: false`
156
+
157
+ leave the poster unset
158
+
159
+ the title in `TitleBar`
160
+
161
+ `content-title` on the player, with no built-in UI yet
162
+
163
+ The poster belongs to the skin rather than the media, which is what lets the skin control how it appears:
164
+
165
+ jsx
166
+
167
+ ```
168
+ <VideoSkin poster="/poster.jpg">
169
+ <Video src="/video.mp4" />
170
+ </VideoSkin>
171
+ ```
172
+
173
+ `content-title` is the closest thing to v8’s `TitleBar`, and it does reach player state, so your own UI can read it. No packaged skin draws it, so v8’s `TitleBar` has no visual equivalent ([#1123](https://github.com/videojs/v10/issues/1123)). See the [Poster](../reference/poster.md) reference for the poster component itself.
174
+
175
+ ### Your CSS
176
+
177
+ v8 had a small sizing language of its own. v10 doesn’t, because CSS already has one.
178
+
179
+ Video.js 8
180
+
181
+ Video.js v10
182
+
183
+ `fluid: true`
184
+
185
+ `width: 100%` on the skin
186
+
187
+ `responsive: true`
188
+
189
+ the skins already adapt their layout to their own width
190
+
191
+ `aspectRatio: '16:9'`
192
+
193
+ `aspect-ratio: 16 / 9`
194
+
195
+ `width`, `height`
196
+
197
+ `width`, `height`
198
+
199
+ `fill: true`
200
+
201
+ `width: 100%; height: 100%`
202
+
203
+ `breakpoints`
204
+
205
+ the skins use container queries internally; use your own for your layout
206
+
207
+ ### Composition
208
+
209
+ These are the ones that need a decision rather than a rename, so each has a section below.
210
+
211
+ Video.js 8
212
+
213
+ Where it lives now
214
+
215
+ `techOrder`, `html5.vhs.*`
216
+
217
+ [Techs become media components](#techs-become-media-components)
218
+
219
+ `children`, `controlBar: { … }`
220
+
221
+ [Customize your player](#customize-your-player)
222
+
223
+ `userActions.hotkeys`, `userActions.click`, `userActions.doubleClick`
224
+
225
+ [Customize your player](#customize-your-player)
226
+
227
+ `plugins`, `videojs.registerPlugin`
228
+
229
+ [Plugins](#plugins)
230
+
231
+ `languages`, `language`, `videojs.addLanguage`
232
+
233
+ [Languages](#languages)
234
+
235
+ `liveui`, `liveTracker`
236
+
237
+ [Live and audio-only](#live-and-audio-only)
238
+
239
+ `audioOnlyMode`, `audioPosterMode`
240
+
241
+ [Live and audio-only](#live-and-audio-only)
242
+
243
+ `playbackRates`
244
+
245
+ not configurable yet ([#1404](https://github.com/videojs/v10/issues/1404))
246
+
247
+ `textTrackSettings`
248
+
249
+ no equivalent; see [Known gaps](#known-gaps)
250
+
251
+ `spatialNavigation`
252
+
253
+ no equivalent; see [Known gaps](#known-gaps)
254
+
255
+ `inactivityTimeout`
256
+
257
+ not configurable yet ([#1728](https://github.com/videojs/v10/issues/1728))
258
+
259
+ `errorDisplay`, `notSupportedMessage`
260
+
261
+ the skins include an error dialog
262
+
263
+ ## Techs become media components
264
+
265
+ v8’s tech system was one of its harder ideas: an abstraction layer with a registry, a resolution order, and source handlers on top. Getting HLS meant getting VHS, which meant reasoning about `overrideNative` and hoping the right thing won.
266
+
267
+ v10 replaces the whole mechanism with a choice you make in markup. You pick the [media component](../concepts/media-sources.md) that plays your format, and that’s the tech decision.
268
+
269
+ What you’re playing
270
+
271
+ Video.js 8
272
+
273
+ Video.js v10
274
+
275
+ MP4, WebM
276
+
277
+ `techOrder: ['html5']`
278
+
279
+ a plain `<video>`
280
+
281
+ HLS
282
+
283
+ VHS
284
+
285
+ [HLS video](../reference/hls-video.md)
286
+
287
+ HLS, needing hls.js directly
288
+
289
+ `videojs.Vhs`
290
+
291
+ [hls.js video](../reference/hlsjs-video.md)
292
+
293
+ HLS, native only
294
+
295
+ `html5.vhs.overrideNative: false`
296
+
297
+ [native HLS video](../reference/native-hls-video.md)
298
+
299
+ DASH
300
+
301
+ VHS
302
+
303
+ [DASH video](../reference/dash-video.md)
304
+
305
+ YouTube, Vimeo
306
+
307
+ a tech plugin
308
+
309
+ the YouTube and Vimeo components
310
+
311
+ Mux
312
+
313
+ a tech plugin
314
+
315
+ [Mux Video](../reference/mux-video.md)
316
+
317
+ Each needs its own import.
318
+
319
+ For HLS, import the component and swap it for `<Video>`:
320
+
321
+ tsx
322
+
323
+ ```
324
+ import { HlsVideo } from '@videojs/react/media/hls-video';
325
+
326
+ <VideoPlayer>
327
+ <VideoSkin>
328
+ <HlsVideo src="/stream.m3u8" playsInline />
329
+ </VideoSkin>
330
+ </VideoPlayer>
331
+ ```
332
+
333
+ Two things to know when you pick between the HLS options. The default HLS component runs on SPF, Video.js’s own playback engine, and it’s the reason v10 can be as small as it is. The hls.js one is a much larger download but supports more, including TS-packaged media and DRM. Start with the default and move to hls.js if you hit something it doesn’t handle.
334
+
335
+ Your VHS tuning options don’t have direct equivalents. Rendition capping, bandwidth hints, and the rest are engine-specific, so they belong to whichever engine you chose rather than to a shared options object.
336
+
337
+ ## Customize your player
338
+
339
+ In v8, customizing meant three different techniques depending on what you wanted: options for some things, `addChild` and component subclassing for others, and CSS overrides on `.vjs-*` selectors for the look. v10 has one path with three levels of commitment. Try them in order.
340
+
341
+ ### Level 1: pick a skin
342
+
343
+ The default skin is a modern, frosted look. The minimal skin is closer to v8’s control bar. Both bring controls, tooltips, captions, keyboard shortcuts, touch gestures, and a settings menu that appears when there’s something to put in it. See [Skins](../concepts/skins.md).
344
+
345
+ Both also include AirPlay and [Cast](../concepts/cast.md) buttons, which v8 had no answer for. Remote playback is a feature you compose in rather than a plugin you install.
346
+
347
+ ### Level 2: restyle it
348
+
349
+ v8 customization meant writing selectors against internal class names and hoping they survived the next release. v10 skins expose custom properties instead, which are part of the public surface:
350
+
351
+ css
352
+
353
+ ```
354
+ /* Video.js 8 */
355
+ .video-js .vjs-play-progress {
356
+ background-color: rebeccapurple;
357
+ }
358
+
359
+ /* Video.js v10 */
360
+ video-player {
361
+ --media-accent-color: rebeccapurple;
362
+ }
363
+ ```
364
+
365
+ `--media-accent-color` reaches the sliders, the active buttons, and the accent surfaces at once. Video.js derives a readable text color to sit on top of it; override that with `--media-accent-text-color` if you’d rather choose. `--media-border-radius` rounds the player, and `--media-scale-unit` scales the whole control bar, which is the closest thing to v8’s `font-size` trick for sizing controls. [Customize skins](./customize-skins.md) has the full list.
366
+
367
+ ### Level 3: eject
368
+
369
+ **Ejecting** means copying the skin’s source into your project and editing it, the way you would a shadcn component. The packaged skin isn’t compiled magic; it’s a tree of components, so ejecting starts as copy and paste. [Customize skins](./customize-skins.md) has copy-paste-ready implementations for every packaged skin.
370
+
371
+ This is where v8’s `controlBar` config and `addChild` calls end up, and honestly it’s the better trade. Instead of `controlBar: { pictureInPictureToggle: false }`, you delete a line. Instead of subclassing a component to change its behavior, you edit the markup.
372
+
373
+ Drop `VideoSkin` and compose the [UI components](../concepts/ui-components.md) yourself. `Container` is what the skin used to render for you: the box the media and controls live in. Compound parts are namespaced, so a time slider is assembled from `TimeSlider.Root`, `TimeSlider.Track`, and friends:
374
+
375
+ tsx
376
+
377
+ ```
378
+ import { Container, Controls, Hotkey, MuteButton, PlayButton, TimeSlider } from '@videojs/react';
379
+ import { Video, VideoPlayer } from '@videojs/react/video';
380
+
381
+ export function MyPlayer() {
382
+ return (
383
+ <VideoPlayer>
384
+ <Container>
385
+ <Video src="/video.mp4" playsInline />
386
+
387
+ <Controls.Root>
388
+ <PlayButton />
389
+ <MuteButton />
390
+ <TimeSlider.Root>
391
+ <TimeSlider.Track>
392
+ <TimeSlider.Fill />
393
+ <TimeSlider.Buffer />
394
+ </TimeSlider.Track>
395
+ <TimeSlider.Thumb />
396
+ </TimeSlider.Root>
397
+ {/* No PiPButton, so no picture-in-picture control renders. */}
398
+ </Controls.Root>
399
+
400
+ <Hotkey keys="Space" action="togglePaused" />
401
+ <Hotkey keys="ArrowRight" action="seekStep" value={5} />
402
+ </Container>
403
+ </VideoPlayer>
404
+ );
405
+ }
406
+ ```
407
+
408
+ Those hotkey and gesture declarations are where `userActions` went. v8’s `userActions.hotkeys` was a function you wrote; here each shortcut is a component with a key and an action, and `userActions.click` and `doubleClick` become gestures with a region. The packaged skins already include a sensible set of both, which is why you don’t see them in the earlier examples.
409
+
410
+ Ejecting is also where you take on the skin’s CSS. The packaged skins ship styles for everything above; a bare layout renders unstyled until you bring those along, which is why [Customize skins](./customize-skins.md) hands you the CSS next to the markup.
411
+
412
+ ## Plugins
413
+
414
+ v10 has no plugin system. There’s no `videojs.registerPlugin`, no `player.myPlugin()`, and no plugin lifecycle.
415
+
416
+ That’s a deliberate choice rather than a missing feature. v8 plugins existed largely because there was no other way in: to add a control, change a behavior, or support a format, you had to reach into player internals through the one door the plugin API provided. v10 gives you the front door instead: components you can add, skins you can eject, media elements you can swap. Most of what plugins did is now ordinary composition.
417
+
418
+ Audit your plugins and sort them into four piles:
419
+
420
+ * **Formats and techs** (`videojs-contrib-*`, YouTube, Vimeo, Mux). Replace with the matching media component. See [Techs become media components](#techs-become-media-components).
421
+ * **UI additions** (extra buttons, overlays, custom control bars). Rebuild as components in an ejected skin, or with [your own component](./build-your-own-component.md). This is usually less code than the plugin was.
422
+ * **Workarounds** for v8 limitations. Check whether the limitation still exists before you port anything.
423
+ * **Genuinely missing features** (ads, playlists). These need real work, and some have no home yet. Get them on the list early, because they’ll drive your timeline.
424
+
425
+ That last pile is the honest risk in a v8 migration. If your player depends on an ads plugin, there’s no v10 answer today.
426
+
427
+ ## Read player state
428
+
429
+ ### Events
430
+
431
+ Your media element is a real media element, so every event you already listen for still fires on it. The listeners port directly; only where you attach them changes.
432
+
433
+ js
434
+
435
+ ```
436
+ // Video.js 8
437
+ const player = videojs('my-video');
438
+ player.on('timeupdate', () => console.log(player.currentTime()));
439
+
440
+ // Video.js v10
441
+ const video = document.querySelector('video');
442
+ video.addEventListener('timeupdate', () => console.log(video.currentTime));
443
+ ```
444
+
445
+ One category doesn’t survive that translation, because those were never media events. v8’s UI events (`useractive`, `userinactive`, `playerresize`, `texttrackchange`) were the player’s own. Read the equivalent from player state instead.
446
+
447
+ ### Player state
448
+
449
+ There are **no `on*` props**. Read state through the preset’s [`usePlayer`](../reference/use-player.md) hook, typed to that preset’s features:
450
+
451
+ tsx
452
+
453
+ ```
454
+ import { usePlayer } from '@videojs/react/video';
455
+
456
+ function Elapsed() {
457
+ const currentTime = usePlayer((state) => state.currentTime);
458
+ return <span>{currentTime}</span>;
459
+ }
460
+ ```
461
+
462
+ Every feature has a selector (`selectPlayback`, `selectTime`, `selectVolume`, `selectQuality`, `selectLive`, `selectTextTrack`, and so on) for when you want a whole slice rather than one value.
463
+
464
+ ### Drive playback
465
+
466
+ v8 used accessor methods for everything: `player.currentTime()` to read, `player.currentTime(10)` to write. v10 splits the difference by owner. Anything the browser owns you set on the media, as a plain property. Anything it doesn’t — fullscreen, captions, quality — goes through the player, because the player is what tracks it.
467
+
468
+ Video.js 8
469
+
470
+ Video.js v10
471
+
472
+ `player.play()`, `player.pause()`
473
+
474
+ `media.play()`, `media.pause()`, or the player’s `togglePaused`
475
+
476
+ `player.currentTime()` / `player.currentTime(10)`
477
+
478
+ `media.currentTime`
479
+
480
+ `player.duration()`
481
+
482
+ `media.duration`, or `duration` in player state
483
+
484
+ `player.volume()`, `player.muted()`
485
+
486
+ `media.volume`, `media.muted`
487
+
488
+ `player.playbackRate()`
489
+
490
+ `media.playbackRate`, or the player’s `setPlaybackRate`
491
+
492
+ `player.src({ src, type })`
493
+
494
+ set `src` on the media
495
+
496
+ `player.requestFullscreen()`, `exitFullscreen()`
497
+
498
+ the player’s `enterFullscreen`, `exitFullscreen`, `toggleFullscreen`
499
+
500
+ `player.textTracks()`, `addRemoteTextTrack()`
501
+
502
+ `<track>` elements, and `textTrackList` in player state
503
+
504
+ `player.audioTracks()`
505
+
506
+ `audioTracks` in player state
507
+
508
+ `player.error()`
509
+
510
+ `error` in player state
511
+
512
+ `player.dispose()`
513
+
514
+ remove the element, or unmount the component
515
+
516
+ `player.tech()`
517
+
518
+ `.host.engine` on engine-backed media, where one exists
519
+
520
+ `videojs.getPlayer(id)`
521
+
522
+ hold a reference to the element
523
+
524
+ Swapping sources is the change most likely to surprise you. There’s no `player.src()`; you set `src` on the media element, or replace the media element entirely, and the UI follows. Changing formats is changing tags.
525
+
526
+ ## Languages
527
+
528
+ v8 shipped one language and asked you to register more with `videojs.addLanguage`. v10 ships locale packs for around 50 languages, so most apps need no setup at all. See [Internationalization](../concepts/i18n.md).
529
+
530
+ To override individual strings, use [`I18nProvider`](../reference/i18n-provider.md) when you want them scoped to a subtree:
531
+
532
+ tsx
533
+
534
+ ```
535
+ import { I18nProvider } from '@videojs/react/i18n';
536
+
537
+ <I18nProvider locale="en" translations={{ buttons: { play: 'Start video' } }}>
538
+ {/* … */}
539
+ </I18nProvider>
540
+ ```
541
+
542
+ See [Override translations](./i18n-override-translations.md).
543
+
544
+ ## Live and audio-only
545
+
546
+ v8 turned live UI on with a `liveui` flag, and audio-only on with `audioOnlyMode`. In v10 these are different players with different skins, because live and audio-only have different state and a genuinely different UI. See [Presets](../concepts/presets.md).
547
+
548
+ tsx
549
+
550
+ ```
551
+ import { HlsVideo } from '@videojs/react/media/hls-video';
552
+ import { LiveVideoPlayer, LiveVideoSkin } from '@videojs/react/live-video';
553
+
554
+ <LiveVideoPlayer>
555
+ <LiveVideoSkin>
556
+ <HlsVideo src="/live.m3u8" playsInline />
557
+ </LiveVideoSkin>
558
+ </LiveVideoPlayer>
559
+ ```
560
+
561
+ For audio, use the audio preset, or the live audio one. There’s also a background video preset for muted, chrome-free background video, which v8 had no answer for.
562
+
563
+ You get `streamType`, `targetLiveWindow`, and `liveEdgeStart` in state, plus a live button that jumps to the live edge. v8’s `liveTracker` tuning has no equivalent ([#1730](https://github.com/videojs/v10/issues/1730)).
564
+
565
+ The live composition is deliberately narrower than the video one. It leaves out playback rate, quality, and audio-track state, so those controls don’t appear in a live skin’s settings menu. If you need one of them on a live player, build your own player from a feature list rather than taking the preset’s.
566
+
567
+ That’s what [`createPlayer`](../reference/create-player.md) is for. Hand it a feature list and you get back a `Player` component and a `usePlayer` hook, the same pair every preset is built from.
568
+
569
+ ## Known gaps
570
+
571
+ Ordered roughly by how likely each is to block a v8 migration.
572
+
573
+ * **No ads support.** v8’s IMA and ad-plugin ecosystem has no v10 equivalent. This is the most common hard blocker.
574
+ * **No playlist support.** No `videojs-playlist` equivalent.
575
+ * **No plugin system**, by design. Budget for rebuilding UI plugins as components. See [Plugins](#plugins).
576
+ * No skin draws `content-title`, so v8’s `TitleBar` has no visual equivalent ([#1123](https://github.com/videojs/v10/issues/1123)).
577
+ * Playback rates are a fixed set — `0.2`, `0.5`, `0.7`, `1`, `1.2`, `1.5`, `1.7`, `2` — so v8’s `playbackRates` has no equivalent yet ([#1404](https://github.com/videojs/v10/issues/1404)).
578
+ * No text-track settings dialog. v8’s `textTrackSettings` let viewers restyle captions; v10 exposes only the positioning custom properties its skins define.
579
+ * No spatial navigation. v8’s `spatialNavigation` for TV and D-pad remotes has no equivalent.
580
+ * Nothing persists between sessions: volume, captions language, speed, quality. That’s out of scope for GA ([#944](https://github.com/videojs/v10/issues/944)). Default subtitle language is tracked at [#1423](https://github.com/videojs/v10/issues/1423).
581
+ * No VHS-equivalent tuning surface. Engine settings belong to the engine you chose, and the default HLS component deliberately exposes few of them.
582
+ * Chapters render in the time slider from a `<track kind="chapters">`, but there’s no chapter menu to navigate from and no active-chapter state, so v8’s chapters menu has no equivalent ([#1873](https://github.com/videojs/v10/issues/1873)). Cue points aren’t implemented ([#1442](https://github.com/videojs/v10/issues/1442)).
583
+ * The controls auto-hide delay isn’t configurable, so v8’s `inactivityTimeout` has no equivalent ([#1728](https://github.com/videojs/v10/issues/1728)).
584
+ * No full-window fullscreen fallback. v8 had one for browsers without the Fullscreen API; [support is around 96%](https://caniuse.com/fullscreen) now.
585
+ * Multiple `<source>` elements with `size` metadata don’t become a quality menu. Use HLS or DASH for adaptive quality; picking renditions by resolution won’t be added ([#1415](https://github.com/videojs/v10/issues/1415)).
586
+ * Two skins, and no runtime theme switch.
587
+ * Native controls are not automatically removed when custom controls load ([#1160](https://github.com/videojs/v10/issues/1160)).
588
+ * Smaller conveniences without homes yet: debug mode ([#1406](https://github.com/videojs/v10/issues/1406)) and autoplay with a muted fallback ([#1039](https://github.com/videojs/v10/issues/1039)).
589
+
590
+ ## See also
591
+
592
+ * [Features](../concepts/features.md) and [Presets](../concepts/presets.md)
593
+ * [Media sources](../concepts/media-sources.md)
594
+ * [Skins](../concepts/skins.md) and [Customize skins](./customize-skins.md)
package/docs/llms.txt CHANGED
@@ -5,6 +5,15 @@
5
5
  Installation, project setup, and introductory guides.
6
6
 
7
7
  - [Installation](./how-to/installation.md): Install Video.js and build your first player with streaming support and accessible controls
8
+ ### Migrate to Video.js 10
9
+
10
+ Guides for moving an existing player integration to Video.js v10, one per player you might be coming from.
11
+
12
+ - [Migrate from Video.js 8](./how-to/migrate-from-video-js-8.md): Move a Video.js 8 integration to v10, mapping the options object, techs, plugins, and player API onto composed components
13
+ - [Migrate from Mux Player](./how-to/migrate-from-mux-player.md): Move a Mux Player embed to Video.js v10, splitting one element into a player, a media, and a skin
14
+ - [Migrate from Plyr](./how-to/migrate-from-plyr.md): Move an existing Plyr integration to Video.js v10, mapping Plyr options and its instance API onto components and player state
15
+ - [Migrate from Media Chrome](./how-to/migrate-from-media-chrome.md): Map Media Chrome's controller, elements, and attributes onto Video.js v10, where most of the work is renaming and reshaping rather than rewriting
16
+
8
17
  - [Why Video.js?](./concepts/why-videojs.md): The open-source video player for React and HTML. Lightweight, accessible components built for performance and streaming.
9
18
  - [Overview](./concepts/overview.md): How Video.js players are structured — state, UI, and media
10
19
  - [Build with AI](./how-to/build-with-ai.md): How to give AI tools the context they need to build Video.js players alongside you
@@ -2,7 +2,7 @@
2
2
 
3
3
  Volume level and mute state for the player store
4
4
 
5
- Controls volume level and mute state.
5
+ Controls volume level and mute state. These capabilities have independent availability values because media can support mute without supporting volume-level changes.
6
6
 
7
7
  ## API Reference
8
8
 
@@ -86,6 +86,8 @@ Toggle mute state. Returns the new muted value.
86
86
 
87
87
  Pass `selectVolume` to [`usePlayer`](./use-player.md) to subscribe to volume state. Returns `undefined` if the volume feature is not configured.
88
88
 
89
+ Check `volumeAvailability` before showing a volume-level control, and check `mutedAvailability` before showing a mute control.
90
+
89
91
  VolumeSlider.tsx
90
92
 
91
93
  ```
@@ -93,7 +95,7 @@ import { selectVolume, usePlayer } from '@videojs/react';
93
95
 
94
96
  function VolumeSlider() {
95
97
  const vol = usePlayer(selectVolume);
96
- if (!vol) return null;
98
+ if (!vol || vol.volumeAvailability !== 'available') return null;
97
99
 
98
100
  return (
99
101
  <input
@@ -14,8 +14,40 @@ tsx
14
14
 
15
15
  Toggles mute on and off, and exposes a derived `volumeLevel` based on the current volume and mute state.
16
16
 
17
+ Mute availability is separate from volume-level availability because some media can accept a mute command without supporting volume changes. When mute is unavailable or unsupported, the HTML custom element receives the native `hidden` attribute and the React component returns `null`. Toggling is also ignored while mute is unavailable.
18
+
17
19
  ## Styling
18
20
 
21
+ Attribute
22
+
23
+ Values
24
+
25
+ Description
26
+
27
+ `data-muted`
28
+
29
+ Present / absent
30
+
31
+ Present when the media is muted
32
+
33
+ `data-volume-level`
34
+
35
+ `"off"` | `"low"` | `"medium"` | `"high"`
36
+
37
+ Current volume level
38
+
39
+ `data-availability`
40
+
41
+ `"available"` | `"unavailable"` | `"unsupported"`
42
+
43
+ Whether the media can be muted
44
+
45
+ `data-hidden`
46
+
47
+ Present / absent
48
+
49
+ Present on the HTML element while mute is unavailable or unsupported
50
+
19
51
  Style the button based on muted state:
20
52
 
21
53
  React renders a `<button>` element. Add a `className` to style it:
@@ -38,6 +70,8 @@ css
38
70
  .mute-button[data-volume-level="high"] .icon-high { display: inline; }
39
71
  ```
40
72
 
73
+ Unavailable and unsupported buttons are hidden automatically. No availability selector or extra hiding CSS is required.
74
+
41
75
  ## Accessibility
42
76
 
43
77
  Renders a `<button>` with an automatic `aria-label`: “Unmute” when muted, “Mute” when unmuted. Override with the `label` prop. Keyboard activation: Enter / Space.