@videojs/react 10.0.0-beta.30 → 10.0.0-beta.32

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 (1563) hide show
  1. package/dist/default/i18n/context.js.map +1 -1
  2. package/dist/default/i18n/create-i18n.js +10 -5
  3. package/dist/default/i18n/create-i18n.js.map +1 -1
  4. package/dist/default/i18n/get-provider-root-props.js +4 -2
  5. package/dist/default/i18n/get-provider-root-props.js.map +1 -1
  6. package/dist/default/i18n/locales/all/register.js.map +1 -1
  7. package/dist/default/i18n/locales/ar/register.js.map +1 -1
  8. package/dist/default/i18n/locales/az/register.js.map +1 -1
  9. package/dist/default/i18n/locales/bg/register.js.map +1 -1
  10. package/dist/default/i18n/locales/bn/register.js.map +1 -1
  11. package/dist/default/i18n/locales/bs/register.js.map +1 -1
  12. package/dist/default/i18n/locales/ca/register.js.map +1 -1
  13. package/dist/default/i18n/locales/cs/register.js.map +1 -1
  14. package/dist/default/i18n/locales/cy/register.js.map +1 -1
  15. package/dist/default/i18n/locales/da/register.js.map +1 -1
  16. package/dist/default/i18n/locales/de/register.js.map +1 -1
  17. package/dist/default/i18n/locales/el/register.js.map +1 -1
  18. package/dist/default/i18n/locales/en/register.js.map +1 -1
  19. package/dist/default/i18n/locales/es/register.js.map +1 -1
  20. package/dist/default/i18n/locales/et/register.js.map +1 -1
  21. package/dist/default/i18n/locales/eu/register.js.map +1 -1
  22. package/dist/default/i18n/locales/fa/register.js.map +1 -1
  23. package/dist/default/i18n/locales/fi/register.js.map +1 -1
  24. package/dist/default/i18n/locales/fr/register.js.map +1 -1
  25. package/dist/default/i18n/locales/gd/register.js.map +1 -1
  26. package/dist/default/i18n/locales/gl/register.js.map +1 -1
  27. package/dist/default/i18n/locales/he/register.js.map +1 -1
  28. package/dist/default/i18n/locales/hi/register.js.map +1 -1
  29. package/dist/default/i18n/locales/hr/register.js.map +1 -1
  30. package/dist/default/i18n/locales/hu/register.js.map +1 -1
  31. package/dist/default/i18n/locales/id/register.js.map +1 -1
  32. package/dist/default/i18n/locales/it/register.js.map +1 -1
  33. package/dist/default/i18n/locales/ja/register.js.map +1 -1
  34. package/dist/default/i18n/locales/ko/register.js.map +1 -1
  35. package/dist/default/i18n/locales/lt/register.js.map +1 -1
  36. package/dist/default/i18n/locales/lv/register.js.map +1 -1
  37. package/dist/default/i18n/locales/mr/register.js.map +1 -1
  38. package/dist/default/i18n/locales/nb/register.js.map +1 -1
  39. package/dist/default/i18n/locales/ne/register.js.map +1 -1
  40. package/dist/default/i18n/locales/nl/register.js.map +1 -1
  41. package/dist/default/i18n/locales/nn/register.js.map +1 -1
  42. package/dist/default/i18n/locales/oc/register.js.map +1 -1
  43. package/dist/default/i18n/locales/pl/register.js.map +1 -1
  44. package/dist/default/i18n/locales/pt/register.js.map +1 -1
  45. package/dist/default/i18n/locales/pt-BR/register.js.map +1 -1
  46. package/dist/default/i18n/locales/pt-PT/register.js.map +1 -1
  47. package/dist/default/i18n/locales/ro/register.js.map +1 -1
  48. package/dist/default/i18n/locales/ru/register.js.map +1 -1
  49. package/dist/default/i18n/locales/sk/register.js.map +1 -1
  50. package/dist/default/i18n/locales/sl/register.js.map +1 -1
  51. package/dist/default/i18n/locales/sr/register.js.map +1 -1
  52. package/dist/default/i18n/locales/sv/register.js.map +1 -1
  53. package/dist/default/i18n/locales/te/register.js.map +1 -1
  54. package/dist/default/i18n/locales/th/register.js.map +1 -1
  55. package/dist/default/i18n/locales/tr/register.js.map +1 -1
  56. package/dist/default/i18n/locales/uk/register.js.map +1 -1
  57. package/dist/default/i18n/locales/vi/register.js.map +1 -1
  58. package/dist/default/i18n/locales/zh/register.js.map +1 -1
  59. package/dist/default/i18n/locales/zh-CN/register.js.map +1 -1
  60. package/dist/default/i18n/locales/zh-TW/register.js.map +1 -1
  61. package/dist/default/i18n/text.js.map +1 -1
  62. package/dist/default/i18n/use-ambient-lang.js.map +1 -1
  63. package/dist/default/i18n/use-lang-root-element.js.map +1 -1
  64. package/dist/default/i18n/use-lazy-translations.js.map +1 -1
  65. package/dist/default/i18n/use-locale-root-notifications.js.map +1 -1
  66. package/dist/default/i18n/use-merged-translations.js +4 -2
  67. package/dist/default/i18n/use-merged-translations.js.map +1 -1
  68. package/dist/default/icons/dist/react/default/airplay-enter.js +5 -2
  69. package/dist/default/icons/dist/react/default/airplay-enter.js.map +1 -1
  70. package/dist/default/icons/dist/react/default/airplay-exit.js +5 -2
  71. package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
  72. package/dist/default/icons/dist/react/default/captions-off.js +5 -2
  73. package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
  74. package/dist/default/icons/dist/react/default/captions-on.js +5 -2
  75. package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
  76. package/dist/default/icons/dist/react/default/cast-enter.js +5 -2
  77. package/dist/default/icons/dist/react/default/cast-enter.js.map +1 -1
  78. package/dist/default/icons/dist/react/default/cast-exit.js +5 -2
  79. package/dist/default/icons/dist/react/default/cast-exit.js.map +1 -1
  80. package/dist/default/icons/dist/react/default/check.js +5 -2
  81. package/dist/default/icons/dist/react/default/check.js.map +1 -1
  82. package/dist/default/icons/dist/react/default/chevron.js +5 -2
  83. package/dist/default/icons/dist/react/default/chevron.js.map +1 -1
  84. package/dist/default/icons/dist/react/default/fullscreen-enter.js +5 -2
  85. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  86. package/dist/default/icons/dist/react/default/fullscreen-exit.js +5 -2
  87. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  88. package/dist/default/icons/dist/react/default/gear.js +5 -2
  89. package/dist/default/icons/dist/react/default/gear.js.map +1 -1
  90. package/dist/default/icons/dist/react/default/pause.js +5 -2
  91. package/dist/default/icons/dist/react/default/pause.js.map +1 -1
  92. package/dist/default/icons/dist/react/default/pip-enter.js +5 -2
  93. package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -1
  94. package/dist/default/icons/dist/react/default/pip-exit.js +5 -2
  95. package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -1
  96. package/dist/default/icons/dist/react/default/play.js +5 -2
  97. package/dist/default/icons/dist/react/default/play.js.map +1 -1
  98. package/dist/default/icons/dist/react/default/quality.js +5 -2
  99. package/dist/default/icons/dist/react/default/quality.js.map +1 -1
  100. package/dist/default/icons/dist/react/default/restart.js +5 -2
  101. package/dist/default/icons/dist/react/default/restart.js.map +1 -1
  102. package/dist/default/icons/dist/react/default/seek.js +5 -2
  103. package/dist/default/icons/dist/react/default/seek.js.map +1 -1
  104. package/dist/default/icons/dist/react/default/speech.js +5 -2
  105. package/dist/default/icons/dist/react/default/speech.js.map +1 -1
  106. package/dist/default/icons/dist/react/default/speed.js +5 -2
  107. package/dist/default/icons/dist/react/default/speed.js.map +1 -1
  108. package/dist/default/icons/dist/react/default/spinner.js +5 -2
  109. package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
  110. package/dist/default/icons/dist/react/default/switches.js +5 -2
  111. package/dist/default/icons/dist/react/default/switches.js.map +1 -1
  112. package/dist/default/icons/dist/react/default/volume-high.js +5 -2
  113. package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
  114. package/dist/default/icons/dist/react/default/volume-low.js +5 -2
  115. package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
  116. package/dist/default/icons/dist/react/default/volume-off.js +5 -2
  117. package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
  118. package/dist/default/icons/dist/react/minimal/airplay-enter.js +5 -2
  119. package/dist/default/icons/dist/react/minimal/airplay-enter.js.map +1 -1
  120. package/dist/default/icons/dist/react/minimal/airplay-exit.js +5 -2
  121. package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  122. package/dist/default/icons/dist/react/minimal/captions-off.js +5 -2
  123. package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
  124. package/dist/default/icons/dist/react/minimal/captions-on.js +5 -2
  125. package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
  126. package/dist/default/icons/dist/react/minimal/cast-enter.js +5 -2
  127. package/dist/default/icons/dist/react/minimal/cast-enter.js.map +1 -1
  128. package/dist/default/icons/dist/react/minimal/cast-exit.js +5 -2
  129. package/dist/default/icons/dist/react/minimal/cast-exit.js.map +1 -1
  130. package/dist/default/icons/dist/react/minimal/check.js +5 -2
  131. package/dist/default/icons/dist/react/minimal/check.js.map +1 -1
  132. package/dist/default/icons/dist/react/minimal/chevron.js +5 -2
  133. package/dist/default/icons/dist/react/minimal/chevron.js.map +1 -1
  134. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +5 -2
  135. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  136. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +5 -2
  137. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  138. package/dist/default/icons/dist/react/minimal/gear.js +5 -2
  139. package/dist/default/icons/dist/react/minimal/gear.js.map +1 -1
  140. package/dist/default/icons/dist/react/minimal/pause.js +5 -2
  141. package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
  142. package/dist/default/icons/dist/react/minimal/pip-enter.js +5 -2
  143. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -1
  144. package/dist/default/icons/dist/react/minimal/pip-exit.js +5 -2
  145. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -1
  146. package/dist/default/icons/dist/react/minimal/play.js +5 -2
  147. package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
  148. package/dist/default/icons/dist/react/minimal/quality.js +5 -2
  149. package/dist/default/icons/dist/react/minimal/quality.js.map +1 -1
  150. package/dist/default/icons/dist/react/minimal/restart.js +5 -2
  151. package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
  152. package/dist/default/icons/dist/react/minimal/seek.js +5 -2
  153. package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
  154. package/dist/default/icons/dist/react/minimal/speech.js +5 -2
  155. package/dist/default/icons/dist/react/minimal/speech.js.map +1 -1
  156. package/dist/default/icons/dist/react/minimal/speed.js +5 -2
  157. package/dist/default/icons/dist/react/minimal/speed.js.map +1 -1
  158. package/dist/default/icons/dist/react/minimal/spinner.js +5 -2
  159. package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
  160. package/dist/default/icons/dist/react/minimal/switches.js +5 -2
  161. package/dist/default/icons/dist/react/minimal/switches.js.map +1 -1
  162. package/dist/default/icons/dist/react/minimal/volume-high.js +5 -2
  163. package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
  164. package/dist/default/icons/dist/react/minimal/volume-low.js +5 -2
  165. package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
  166. package/dist/default/icons/dist/react/minimal/volume-off.js +5 -2
  167. package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
  168. package/dist/default/icons/index.js +26 -26
  169. package/dist/default/icons/minimal/index.js +26 -26
  170. package/dist/default/index.js +15 -13
  171. package/dist/default/media/audio.js +3 -1
  172. package/dist/default/media/audio.js.map +1 -1
  173. package/dist/default/media/background-video/media.js +5 -3
  174. package/dist/default/media/background-video/media.js.map +1 -1
  175. package/dist/default/media/cloudflare-video/media.js +2 -1
  176. package/dist/default/media/cloudflare-video/media.js.map +1 -1
  177. package/dist/default/media/dash-video/media.js +5 -2
  178. package/dist/default/media/dash-video/media.js.map +1 -1
  179. package/dist/default/media/google-cast/google-cast.js +10 -10
  180. package/dist/default/media/google-cast/google-cast.js.map +1 -1
  181. package/dist/default/media/hls-audio/media.js +5 -2
  182. package/dist/default/media/hls-audio/media.js.map +1 -1
  183. package/dist/default/media/hls-background-video/media.js +15 -20
  184. package/dist/default/media/hls-background-video/media.js.map +1 -1
  185. package/dist/default/media/hls-video/media.js +5 -2
  186. package/dist/default/media/hls-video/media.js.map +1 -1
  187. package/dist/default/media/hlsjs-video/media.js +5 -2
  188. package/dist/default/media/hlsjs-video/media.js.map +1 -1
  189. package/dist/default/media/mux-audio/hls-js.js +5 -2
  190. package/dist/default/media/mux-audio/hls-js.js.map +1 -1
  191. package/dist/default/media/mux-audio/spf.js +5 -2
  192. package/dist/default/media/mux-audio/spf.js.map +1 -1
  193. package/dist/default/media/mux-data/mux-data.js +13 -17
  194. package/dist/default/media/mux-data/mux-data.js.map +1 -1
  195. package/dist/default/media/mux-video/hls-js.js +5 -2
  196. package/dist/default/media/mux-video/hls-js.js.map +1 -1
  197. package/dist/default/media/mux-video/spf.js +5 -2
  198. package/dist/default/media/mux-video/spf.js.map +1 -1
  199. package/dist/default/media/mux-video/storyboard.js +1 -4
  200. package/dist/default/media/mux-video/storyboard.js.map +1 -1
  201. package/dist/default/media/native-hls-video/media.js +5 -2
  202. package/dist/default/media/native-hls-video/media.js.map +1 -1
  203. package/dist/default/media/shaka-video/media.js +5 -2
  204. package/dist/default/media/shaka-video/media.js.map +1 -1
  205. package/dist/default/media/spotify-audio/media.js +2 -1
  206. package/dist/default/media/spotify-audio/media.js.map +1 -1
  207. package/dist/default/media/tiktok-video/media.js +2 -1
  208. package/dist/default/media/tiktok-video/media.js.map +1 -1
  209. package/dist/default/media/twitch-video/media.js +2 -1
  210. package/dist/default/media/twitch-video/media.js.map +1 -1
  211. package/dist/default/media/video.js +9 -1
  212. package/dist/default/media/video.js.map +1 -1
  213. package/dist/default/media/vimeo-video/media.js +2 -1
  214. package/dist/default/media/vimeo-video/media.js.map +1 -1
  215. package/dist/default/media/youtube-video/media.js +2 -1
  216. package/dist/default/media/youtube-video/media.js.map +1 -1
  217. package/dist/default/player/container.js +24 -9
  218. package/dist/default/player/container.js.map +1 -1
  219. package/dist/default/player/context.js +2 -1
  220. package/dist/default/player/context.js.map +1 -1
  221. package/dist/default/player/create-player.js +12 -11
  222. package/dist/default/player/create-player.js.map +1 -1
  223. package/dist/default/presets/audio/minimal-skin.css +347 -250
  224. package/dist/default/presets/audio/minimal-skin.js +66 -38
  225. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  226. package/dist/default/presets/audio/minimal-skin.tailwind.js +65 -38
  227. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  228. package/dist/default/presets/audio/player.js.map +1 -1
  229. package/dist/default/presets/audio/skin.css +328 -238
  230. package/dist/default/presets/audio/skin.js +48 -36
  231. package/dist/default/presets/audio/skin.js.map +1 -1
  232. package/dist/default/presets/audio/skin.tailwind.js +46 -35
  233. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  234. package/dist/default/presets/background/player.js.map +1 -1
  235. package/dist/default/presets/background/skin.js.map +1 -1
  236. package/dist/default/presets/live-audio/minimal-skin.css +347 -250
  237. package/dist/default/presets/live-audio/minimal-skin.js +42 -28
  238. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
  239. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +41 -25
  240. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  241. package/dist/default/presets/live-audio/player.js.map +1 -1
  242. package/dist/default/presets/live-audio/skin.css +328 -238
  243. package/dist/default/presets/live-audio/skin.js +24 -25
  244. package/dist/default/presets/live-audio/skin.js.map +1 -1
  245. package/dist/default/presets/live-audio/skin.tailwind.js +22 -22
  246. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
  247. package/dist/default/presets/live-video/minimal-skin.css +435 -365
  248. package/dist/default/presets/live-video/minimal-skin.js +103 -83
  249. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  250. package/dist/default/presets/live-video/minimal-skin.tailwind.js +104 -83
  251. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  252. package/dist/default/presets/live-video/player.js.map +1 -1
  253. package/dist/default/presets/live-video/skin.css +385 -320
  254. package/dist/default/presets/live-video/skin.js +87 -81
  255. package/dist/default/presets/live-video/skin.js.map +1 -1
  256. package/dist/default/presets/live-video/skin.tailwind.js +87 -81
  257. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  258. package/dist/default/presets/video/minimal-skin.css +435 -365
  259. package/dist/default/presets/video/minimal-skin.js +131 -91
  260. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  261. package/dist/default/presets/video/minimal-skin.tailwind.js +127 -96
  262. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  263. package/dist/default/presets/video/player.js.map +1 -1
  264. package/dist/default/presets/video/skin.css +385 -320
  265. package/dist/default/presets/video/skin.js +115 -91
  266. package/dist/default/presets/video/skin.js.map +1 -1
  267. package/dist/default/presets/video/skin.tailwind.js +111 -95
  268. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  269. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +10 -9
  270. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  271. package/dist/default/skins/dist/default/default/tailwind/components/badge.js +1 -1
  272. package/dist/default/skins/dist/default/default/tailwind/components/badge.js.map +1 -1
  273. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  274. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  275. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +1 -1
  276. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
  277. package/dist/default/skins/dist/default/default/tailwind/components/button.js +6 -6
  278. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  279. package/dist/default/skins/dist/default/default/tailwind/components/container.js +1 -1
  280. package/dist/default/skins/dist/default/default/tailwind/components/container.js.map +1 -1
  281. package/dist/default/skins/dist/default/default/tailwind/components/controls-backdrop.js +7 -0
  282. package/dist/default/skins/dist/default/default/tailwind/components/controls-backdrop.js.map +1 -0
  283. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  284. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  285. package/dist/default/skins/dist/default/default/tailwind/components/dialog.js +15 -0
  286. package/dist/default/skins/dist/default/default/tailwind/components/dialog.js.map +1 -0
  287. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -1
  288. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  289. package/dist/default/skins/dist/default/default/tailwind/components/input-indicator.js +3 -2
  290. package/dist/default/skins/dist/default/default/tailwind/components/input-indicator.js.map +1 -1
  291. package/dist/default/skins/dist/default/default/tailwind/components/menu.js +16 -11
  292. package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
  293. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +5 -4
  294. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  295. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +2 -2
  296. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  297. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +13 -13
  298. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  299. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +1 -1
  300. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  301. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +2 -2
  302. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  303. package/dist/default/skins/dist/default/default/tailwind/components/time.js +2 -2
  304. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  305. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +18 -17
  306. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  307. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +10 -10
  308. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  309. package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js +1 -1
  310. package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -1
  311. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  312. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  313. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
  314. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  315. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +6 -6
  316. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  317. package/dist/default/skins/dist/default/minimal/tailwind/components/container.js +1 -1
  318. package/dist/default/skins/dist/default/minimal/tailwind/components/container.js.map +1 -1
  319. package/dist/default/skins/dist/default/minimal/tailwind/components/controls-backdrop.js +7 -0
  320. package/dist/default/skins/dist/default/minimal/tailwind/components/controls-backdrop.js.map +1 -0
  321. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  322. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  323. package/dist/default/skins/dist/default/minimal/tailwind/components/dialog.js +15 -0
  324. package/dist/default/skins/dist/default/minimal/tailwind/components/dialog.js.map +1 -0
  325. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
  326. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  327. package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator.js +5 -4
  328. package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator.js.map +1 -1
  329. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +16 -11
  330. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
  331. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +5 -4
  332. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  333. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +2 -2
  334. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  335. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +12 -12
  336. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  337. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +2 -2
  338. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  339. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +3 -3
  340. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  341. package/dist/default/skins/dist/default/minimal/tailwind/components/volume-indicator.js +1 -1
  342. package/dist/default/skins/dist/default/minimal/tailwind/components/volume-indicator.js.map +1 -1
  343. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +20 -20
  344. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  345. package/dist/default/ui/airplay-button/airplay-button.js.map +1 -1
  346. package/dist/default/ui/alert-dialog/alert-dialog-root.js +14 -45
  347. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  348. package/dist/default/ui/alert-dialog/index.js +1 -2
  349. package/dist/default/ui/alert-dialog/index.parts.js +11 -9
  350. package/dist/default/ui/alert-dialog/index.parts.js.map +1 -1
  351. package/dist/default/ui/audio-track/use-audio-track-options.js +2 -2
  352. package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -1
  353. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js +11 -11
  354. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  355. package/dist/default/ui/buffering-indicator/buffering-indicator.js +7 -7
  356. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  357. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  358. package/dist/default/ui/captions-radio-group/captions-radio-group.js +11 -11
  359. package/dist/default/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  360. package/dist/default/ui/captions-radio-group/use-captions-options.js +2 -3
  361. package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -1
  362. package/dist/default/ui/controls/context.js.map +1 -1
  363. package/dist/default/ui/controls/controls-backdrop.js +28 -0
  364. package/dist/default/ui/controls/controls-backdrop.js.map +1 -0
  365. package/dist/default/ui/controls/controls-content.js +27 -0
  366. package/dist/default/ui/controls/controls-content.js.map +1 -0
  367. package/dist/default/ui/controls/controls-root.js +5 -20
  368. package/dist/default/ui/controls/controls-root.js.map +1 -1
  369. package/dist/default/ui/controls/index.parts.js +5 -1
  370. package/dist/default/ui/controls/index.parts.js.map +1 -1
  371. package/dist/default/ui/create-context-part.js.map +1 -1
  372. package/dist/default/ui/create-media-button.js.map +1 -1
  373. package/dist/default/ui/dialog/context.js +17 -0
  374. package/dist/default/ui/dialog/context.js.map +1 -0
  375. package/dist/default/ui/dialog/dialog-backdrop.js +26 -0
  376. package/dist/default/ui/dialog/dialog-backdrop.js.map +1 -0
  377. package/dist/default/ui/dialog/dialog-close.js +29 -0
  378. package/dist/default/ui/dialog/dialog-close.js.map +1 -0
  379. package/dist/default/ui/dialog/dialog-description.js +14 -0
  380. package/dist/default/ui/dialog/dialog-description.js.map +1 -0
  381. package/dist/default/ui/dialog/dialog-popup.js +28 -0
  382. package/dist/default/ui/dialog/dialog-popup.js.map +1 -0
  383. package/dist/default/ui/dialog/dialog-root.js +23 -0
  384. package/dist/default/ui/dialog/dialog-root.js.map +1 -0
  385. package/dist/default/ui/dialog/dialog-title.js +14 -0
  386. package/dist/default/ui/dialog/dialog-title.js.map +1 -0
  387. package/dist/default/ui/dialog/dialog-trigger.js +30 -0
  388. package/dist/default/ui/dialog/dialog-trigger.js.map +1 -0
  389. package/dist/default/ui/dialog/index.js +3 -0
  390. package/dist/default/ui/dialog/index.parts.js +22 -0
  391. package/dist/default/ui/dialog/index.parts.js.map +1 -0
  392. package/dist/default/ui/dialog/use-dialog-root.js +59 -0
  393. package/dist/default/ui/dialog/use-dialog-root.js.map +1 -0
  394. package/dist/default/ui/error-dialog/context.js +1 -0
  395. package/dist/default/ui/error-dialog/context.js.map +1 -1
  396. package/dist/default/ui/error-dialog/error-dialog-close.js +3 -2
  397. package/dist/default/ui/error-dialog/error-dialog-close.js.map +1 -1
  398. package/dist/default/ui/error-dialog/error-dialog-description.js +3 -2
  399. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -1
  400. package/dist/default/ui/error-dialog/error-dialog-root.js +19 -34
  401. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -1
  402. package/dist/default/ui/error-dialog/error-dialog-title.js +3 -2
  403. package/dist/default/ui/error-dialog/error-dialog-title.js.map +1 -1
  404. package/dist/default/ui/error-dialog/index.parts.js +5 -3
  405. package/dist/default/ui/error-dialog/index.parts.js.map +1 -1
  406. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  407. package/dist/default/ui/gesture/use-doubletap-gesture.js +6 -0
  408. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  409. package/dist/default/ui/gesture/use-tap-gesture.js +6 -0
  410. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  411. package/dist/default/ui/hooks/create-radio-options-hook.js.map +1 -1
  412. package/dist/default/ui/hooks/use-button.js +15 -14
  413. package/dist/default/ui/hooks/use-button.js.map +1 -1
  414. package/dist/default/ui/hooks/use-slider.js +6 -7
  415. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  416. package/dist/default/ui/hotkey/use-hotkey-shortcut.js +6 -0
  417. package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  418. package/dist/default/ui/hotkey/use-hotkey.js +5 -0
  419. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
  420. package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  421. package/dist/default/ui/input-indicator/use-input-indicator-root.js +2 -1
  422. package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  423. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  424. package/dist/default/ui/live-button/live-button.js +7 -10
  425. package/dist/default/ui/live-button/live-button.js.map +1 -1
  426. package/dist/default/ui/menu/context.js +10 -1
  427. package/dist/default/ui/menu/context.js.map +1 -1
  428. package/dist/default/ui/menu/index.parts.js +3 -1
  429. package/dist/default/ui/menu/index.parts.js.map +1 -1
  430. package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
  431. package/dist/default/ui/menu/menu-content.js +44 -106
  432. package/dist/default/ui/menu/menu-content.js.map +1 -1
  433. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  434. package/dist/default/ui/menu/menu-item.js +22 -20
  435. package/dist/default/ui/menu/menu-item.js.map +1 -1
  436. package/dist/default/ui/menu/menu-keyboard.js.map +1 -1
  437. package/dist/default/ui/menu/menu-popup.js +69 -0
  438. package/dist/default/ui/menu/menu-popup.js.map +1 -0
  439. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  440. package/dist/default/ui/menu/menu-root.js +28 -27
  441. package/dist/default/ui/menu/menu-root.js.map +1 -1
  442. package/dist/default/ui/menu/menu-trigger.js +2 -3
  443. package/dist/default/ui/menu/menu-trigger.js.map +1 -1
  444. package/dist/default/ui/menu/use-menu-group.js +2 -1
  445. package/dist/default/ui/menu/use-menu-group.js.map +1 -1
  446. package/dist/default/ui/play-button/play-button.js +8 -8
  447. package/dist/default/ui/play-button/play-button.js.map +1 -1
  448. package/dist/default/ui/playback-rate/use-playback-rate-options.js +2 -2
  449. package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  450. package/dist/default/ui/playback-rate-button/playback-rate-button.js +8 -8
  451. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  452. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js +11 -11
  453. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  454. package/dist/default/ui/popover/context.js +1 -0
  455. package/dist/default/ui/popover/context.js.map +1 -1
  456. package/dist/default/ui/popover/popover-popup.js +7 -3
  457. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  458. package/dist/default/ui/popover/popover-root.js +1 -1
  459. package/dist/default/ui/popover/popover-root.js.map +1 -1
  460. package/dist/default/ui/popover/use-popup-position.js +2 -1
  461. package/dist/default/ui/popover/use-popup-position.js.map +1 -1
  462. package/dist/default/ui/poster/poster.js +11 -13
  463. package/dist/default/ui/poster/poster.js.map +1 -1
  464. package/dist/default/ui/quality/use-quality-options.js +2 -3
  465. package/dist/default/ui/quality/use-quality-options.js.map +1 -1
  466. package/dist/default/ui/quality-radio-group/quality-radio-group.js +12 -12
  467. package/dist/default/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  468. package/dist/default/ui/seek-button/seek-button.js +8 -8
  469. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  470. package/dist/default/ui/seek-indicator/context.js.map +1 -1
  471. package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  472. package/dist/default/ui/slider/context.js.map +1 -1
  473. package/dist/default/ui/slider/slider-root.js.map +1 -1
  474. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  475. package/dist/default/ui/status-announcer/status-announcer.js.map +1 -1
  476. package/dist/default/ui/status-indicator/context.js.map +1 -1
  477. package/dist/default/ui/status-indicator/index.parts.js.map +1 -1
  478. package/dist/default/ui/status-indicator/status-indicator-root.js +2 -1
  479. package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -1
  480. package/dist/default/ui/thumbnail/thumbnail.js +5 -6
  481. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  482. package/dist/default/ui/time/time-group.js +7 -7
  483. package/dist/default/ui/time/time-group.js.map +1 -1
  484. package/dist/default/ui/time/time-separator.js +4 -4
  485. package/dist/default/ui/time/time-separator.js.map +1 -1
  486. package/dist/default/ui/time/time-value.js +5 -5
  487. package/dist/default/ui/time/time-value.js.map +1 -1
  488. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  489. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js +1 -1
  490. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  491. package/dist/default/ui/title/title.js +5 -6
  492. package/dist/default/ui/title/title.js.map +1 -1
  493. package/dist/default/ui/tooltip/context.js +1 -0
  494. package/dist/default/ui/tooltip/context.js.map +1 -1
  495. package/dist/default/ui/tooltip/tooltip-popup.js +7 -3
  496. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  497. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  498. package/dist/default/ui/tooltip/tooltip-root.js +4 -2
  499. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  500. package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -1
  501. package/dist/default/ui/volume-indicator/context.js.map +1 -1
  502. package/dist/default/ui/volume-indicator/index.parts.js.map +1 -1
  503. package/dist/default/ui/volume-indicator/volume-indicator-fill.js +3 -2
  504. package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  505. package/dist/default/ui/volume-indicator/volume-indicator-root.js +2 -1
  506. package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  507. package/dist/default/ui/volume-popover/context.js +13 -0
  508. package/dist/default/ui/volume-popover/context.js.map +1 -0
  509. package/dist/default/ui/volume-popover/index.js +2 -0
  510. package/dist/default/ui/volume-popover/index.parts.js +14 -0
  511. package/dist/default/ui/volume-popover/index.parts.js.map +1 -0
  512. package/dist/default/ui/volume-popover/volume-popover-popup.js +21 -0
  513. package/dist/default/ui/volume-popover/volume-popover-popup.js.map +1 -0
  514. package/dist/default/ui/volume-popover/volume-popover-root.js +47 -0
  515. package/dist/default/ui/volume-popover/volume-popover-root.js.map +1 -0
  516. package/dist/default/ui/volume-popover/volume-popover-trigger.js +32 -0
  517. package/dist/default/ui/volume-popover/volume-popover-trigger.js.map +1 -0
  518. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  519. package/dist/default/utils/merge-props.js +20 -30
  520. package/dist/default/utils/merge-props.js.map +1 -1
  521. package/dist/default/utils/use-attach-iframe.js.map +1 -1
  522. package/dist/default/utils/use-attach-media.js +5 -0
  523. package/dist/default/utils/use-attach-media.js.map +1 -1
  524. package/dist/default/utils/use-composed-refs.js +10 -8
  525. package/dist/default/utils/use-composed-refs.js.map +1 -1
  526. package/dist/default/utils/use-destroy.js +7 -9
  527. package/dist/default/utils/use-destroy.js.map +1 -1
  528. package/dist/default/utils/use-force-render.js.map +1 -1
  529. package/dist/default/utils/use-latest-ref.js +4 -2
  530. package/dist/default/utils/use-latest-ref.js.map +1 -1
  531. package/dist/default/utils/use-media-component.js +7 -6
  532. package/dist/default/utils/use-media-component.js.map +1 -1
  533. package/dist/default/utils/use-media-instance.js +8 -7
  534. package/dist/default/utils/use-media-instance.js.map +1 -1
  535. package/dist/default/utils/use-render.js +13 -15
  536. package/dist/default/utils/use-render.js.map +1 -1
  537. package/dist/default/utils/use-safe-id.js +3 -4
  538. package/dist/default/utils/use-safe-id.js.map +1 -1
  539. package/dist/default/utils/use-sync-props.js.map +1 -1
  540. package/dist/dev/i18n/context.d.ts +3 -1
  541. package/dist/dev/i18n/context.d.ts.map +1 -1
  542. package/dist/dev/i18n/context.js.map +1 -1
  543. package/dist/dev/i18n/create-i18n.d.ts +15 -16
  544. package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
  545. package/dist/dev/i18n/create-i18n.js +10 -5
  546. package/dist/dev/i18n/create-i18n.js.map +1 -1
  547. package/dist/dev/i18n/get-provider-root-props.js +4 -2
  548. package/dist/dev/i18n/get-provider-root-props.js.map +1 -1
  549. package/dist/dev/i18n/locales/all/register.js.map +1 -1
  550. package/dist/dev/i18n/locales/ar/register.js.map +1 -1
  551. package/dist/dev/i18n/locales/az/register.js.map +1 -1
  552. package/dist/dev/i18n/locales/bg/register.js.map +1 -1
  553. package/dist/dev/i18n/locales/bn/register.js.map +1 -1
  554. package/dist/dev/i18n/locales/bs/register.js.map +1 -1
  555. package/dist/dev/i18n/locales/ca/register.js.map +1 -1
  556. package/dist/dev/i18n/locales/cs/register.js.map +1 -1
  557. package/dist/dev/i18n/locales/cy/register.js.map +1 -1
  558. package/dist/dev/i18n/locales/da/register.js.map +1 -1
  559. package/dist/dev/i18n/locales/de/register.js.map +1 -1
  560. package/dist/dev/i18n/locales/el/register.js.map +1 -1
  561. package/dist/dev/i18n/locales/en/register.js.map +1 -1
  562. package/dist/dev/i18n/locales/es/register.js.map +1 -1
  563. package/dist/dev/i18n/locales/et/register.js.map +1 -1
  564. package/dist/dev/i18n/locales/eu/register.js.map +1 -1
  565. package/dist/dev/i18n/locales/fa/register.js.map +1 -1
  566. package/dist/dev/i18n/locales/fi/register.js.map +1 -1
  567. package/dist/dev/i18n/locales/fr/register.js.map +1 -1
  568. package/dist/dev/i18n/locales/gd/register.js.map +1 -1
  569. package/dist/dev/i18n/locales/gl/register.js.map +1 -1
  570. package/dist/dev/i18n/locales/he/register.js.map +1 -1
  571. package/dist/dev/i18n/locales/hi/register.js.map +1 -1
  572. package/dist/dev/i18n/locales/hr/register.js.map +1 -1
  573. package/dist/dev/i18n/locales/hu/register.js.map +1 -1
  574. package/dist/dev/i18n/locales/id/register.js.map +1 -1
  575. package/dist/dev/i18n/locales/it/register.js.map +1 -1
  576. package/dist/dev/i18n/locales/ja/register.js.map +1 -1
  577. package/dist/dev/i18n/locales/ko/register.js.map +1 -1
  578. package/dist/dev/i18n/locales/lt/register.js.map +1 -1
  579. package/dist/dev/i18n/locales/lv/register.js.map +1 -1
  580. package/dist/dev/i18n/locales/mr/register.js.map +1 -1
  581. package/dist/dev/i18n/locales/nb/register.js.map +1 -1
  582. package/dist/dev/i18n/locales/ne/register.js.map +1 -1
  583. package/dist/dev/i18n/locales/nl/register.js.map +1 -1
  584. package/dist/dev/i18n/locales/nn/register.js.map +1 -1
  585. package/dist/dev/i18n/locales/oc/register.js.map +1 -1
  586. package/dist/dev/i18n/locales/pl/register.js.map +1 -1
  587. package/dist/dev/i18n/locales/pt/register.js.map +1 -1
  588. package/dist/dev/i18n/locales/pt-BR/register.js.map +1 -1
  589. package/dist/dev/i18n/locales/pt-PT/register.js.map +1 -1
  590. package/dist/dev/i18n/locales/ro/register.js.map +1 -1
  591. package/dist/dev/i18n/locales/ru/register.js.map +1 -1
  592. package/dist/dev/i18n/locales/sk/register.js.map +1 -1
  593. package/dist/dev/i18n/locales/sl/register.js.map +1 -1
  594. package/dist/dev/i18n/locales/sr/register.js.map +1 -1
  595. package/dist/dev/i18n/locales/sv/register.js.map +1 -1
  596. package/dist/dev/i18n/locales/te/register.js.map +1 -1
  597. package/dist/dev/i18n/locales/th/register.js.map +1 -1
  598. package/dist/dev/i18n/locales/tr/register.js.map +1 -1
  599. package/dist/dev/i18n/locales/uk/register.js.map +1 -1
  600. package/dist/dev/i18n/locales/vi/register.js.map +1 -1
  601. package/dist/dev/i18n/locales/zh/register.js.map +1 -1
  602. package/dist/dev/i18n/locales/zh-CN/register.js.map +1 -1
  603. package/dist/dev/i18n/locales/zh-TW/register.js.map +1 -1
  604. package/dist/dev/i18n/text.d.ts.map +1 -1
  605. package/dist/dev/i18n/text.js.map +1 -1
  606. package/dist/dev/i18n/use-ambient-lang.js.map +1 -1
  607. package/dist/dev/i18n/use-lang-root-element.js.map +1 -1
  608. package/dist/dev/i18n/use-lazy-translations.js.map +1 -1
  609. package/dist/dev/i18n/use-locale-root-notifications.js.map +1 -1
  610. package/dist/dev/i18n/use-merged-translations.js +4 -2
  611. package/dist/dev/i18n/use-merged-translations.js.map +1 -1
  612. package/dist/dev/icons/dist/react/default/airplay-enter.js +5 -2
  613. package/dist/dev/icons/dist/react/default/airplay-enter.js.map +1 -1
  614. package/dist/dev/icons/dist/react/default/airplay-exit.js +5 -2
  615. package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
  616. package/dist/dev/icons/dist/react/default/captions-off.js +5 -2
  617. package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
  618. package/dist/dev/icons/dist/react/default/captions-on.js +5 -2
  619. package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
  620. package/dist/dev/icons/dist/react/default/cast-enter.js +5 -2
  621. package/dist/dev/icons/dist/react/default/cast-enter.js.map +1 -1
  622. package/dist/dev/icons/dist/react/default/cast-exit.js +5 -2
  623. package/dist/dev/icons/dist/react/default/cast-exit.js.map +1 -1
  624. package/dist/dev/icons/dist/react/default/check.js +5 -2
  625. package/dist/dev/icons/dist/react/default/check.js.map +1 -1
  626. package/dist/dev/icons/dist/react/default/chevron.js +5 -2
  627. package/dist/dev/icons/dist/react/default/chevron.js.map +1 -1
  628. package/dist/dev/icons/dist/react/default/fullscreen-enter.js +5 -2
  629. package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  630. package/dist/dev/icons/dist/react/default/fullscreen-exit.js +5 -2
  631. package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  632. package/dist/dev/icons/dist/react/default/gear.js +5 -2
  633. package/dist/dev/icons/dist/react/default/gear.js.map +1 -1
  634. package/dist/dev/icons/dist/react/default/index.d.ts +1 -1
  635. package/dist/dev/icons/dist/react/default/pause.js +5 -2
  636. package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
  637. package/dist/dev/icons/dist/react/default/pip-enter.js +5 -2
  638. package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -1
  639. package/dist/dev/icons/dist/react/default/pip-exit.js +5 -2
  640. package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -1
  641. package/dist/dev/icons/dist/react/default/play.js +5 -2
  642. package/dist/dev/icons/dist/react/default/play.js.map +1 -1
  643. package/dist/dev/icons/dist/react/default/quality.js +5 -2
  644. package/dist/dev/icons/dist/react/default/quality.js.map +1 -1
  645. package/dist/dev/icons/dist/react/default/restart.js +5 -2
  646. package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
  647. package/dist/dev/icons/dist/react/default/seek.js +5 -2
  648. package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
  649. package/dist/dev/icons/dist/react/default/speech.js +5 -2
  650. package/dist/dev/icons/dist/react/default/speech.js.map +1 -1
  651. package/dist/dev/icons/dist/react/default/speed.js +5 -2
  652. package/dist/dev/icons/dist/react/default/speed.js.map +1 -1
  653. package/dist/dev/icons/dist/react/default/spinner.js +5 -2
  654. package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
  655. package/dist/dev/icons/dist/react/default/switches.js +5 -2
  656. package/dist/dev/icons/dist/react/default/switches.js.map +1 -1
  657. package/dist/dev/icons/dist/react/default/volume-high.js +5 -2
  658. package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
  659. package/dist/dev/icons/dist/react/default/volume-low.js +5 -2
  660. package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
  661. package/dist/dev/icons/dist/react/default/volume-off.js +5 -2
  662. package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
  663. package/dist/dev/icons/dist/react/minimal/airplay-enter.js +5 -2
  664. package/dist/dev/icons/dist/react/minimal/airplay-enter.js.map +1 -1
  665. package/dist/dev/icons/dist/react/minimal/airplay-exit.js +5 -2
  666. package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  667. package/dist/dev/icons/dist/react/minimal/captions-off.js +5 -2
  668. package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
  669. package/dist/dev/icons/dist/react/minimal/captions-on.js +5 -2
  670. package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
  671. package/dist/dev/icons/dist/react/minimal/cast-enter.js +5 -2
  672. package/dist/dev/icons/dist/react/minimal/cast-enter.js.map +1 -1
  673. package/dist/dev/icons/dist/react/minimal/cast-exit.js +5 -2
  674. package/dist/dev/icons/dist/react/minimal/cast-exit.js.map +1 -1
  675. package/dist/dev/icons/dist/react/minimal/check.js +5 -2
  676. package/dist/dev/icons/dist/react/minimal/check.js.map +1 -1
  677. package/dist/dev/icons/dist/react/minimal/chevron.js +5 -2
  678. package/dist/dev/icons/dist/react/minimal/chevron.js.map +1 -1
  679. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +5 -2
  680. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  681. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +5 -2
  682. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  683. package/dist/dev/icons/dist/react/minimal/gear.js +5 -2
  684. package/dist/dev/icons/dist/react/minimal/gear.js.map +1 -1
  685. package/dist/dev/icons/dist/react/minimal/index.d.ts +1 -1
  686. package/dist/dev/icons/dist/react/minimal/pause.js +5 -2
  687. package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
  688. package/dist/dev/icons/dist/react/minimal/pip-enter.js +5 -2
  689. package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -1
  690. package/dist/dev/icons/dist/react/minimal/pip-exit.js +5 -2
  691. package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -1
  692. package/dist/dev/icons/dist/react/minimal/play.js +5 -2
  693. package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
  694. package/dist/dev/icons/dist/react/minimal/quality.js +5 -2
  695. package/dist/dev/icons/dist/react/minimal/quality.js.map +1 -1
  696. package/dist/dev/icons/dist/react/minimal/restart.js +5 -2
  697. package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
  698. package/dist/dev/icons/dist/react/minimal/seek.js +5 -2
  699. package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
  700. package/dist/dev/icons/dist/react/minimal/speech.js +5 -2
  701. package/dist/dev/icons/dist/react/minimal/speech.js.map +1 -1
  702. package/dist/dev/icons/dist/react/minimal/speed.js +5 -2
  703. package/dist/dev/icons/dist/react/minimal/speed.js.map +1 -1
  704. package/dist/dev/icons/dist/react/minimal/spinner.js +5 -2
  705. package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
  706. package/dist/dev/icons/dist/react/minimal/switches.js +5 -2
  707. package/dist/dev/icons/dist/react/minimal/switches.js.map +1 -1
  708. package/dist/dev/icons/dist/react/minimal/volume-high.js +5 -2
  709. package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
  710. package/dist/dev/icons/dist/react/minimal/volume-low.js +5 -2
  711. package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
  712. package/dist/dev/icons/dist/react/minimal/volume-off.js +5 -2
  713. package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
  714. package/dist/dev/icons/index.js +26 -26
  715. package/dist/dev/icons/minimal/index.js +26 -26
  716. package/dist/dev/index.d.ts +19 -14
  717. package/dist/dev/index.js +15 -13
  718. package/dist/dev/media/audio.js +3 -1
  719. package/dist/dev/media/audio.js.map +1 -1
  720. package/dist/dev/media/background-video/media.js +5 -3
  721. package/dist/dev/media/background-video/media.js.map +1 -1
  722. package/dist/dev/media/cloudflare-video/media.d.ts.map +1 -1
  723. package/dist/dev/media/cloudflare-video/media.js +2 -1
  724. package/dist/dev/media/cloudflare-video/media.js.map +1 -1
  725. package/dist/dev/media/dash-video/media.d.ts.map +1 -1
  726. package/dist/dev/media/dash-video/media.js +5 -2
  727. package/dist/dev/media/dash-video/media.js.map +1 -1
  728. package/dist/dev/media/google-cast/google-cast.d.ts +8 -9
  729. package/dist/dev/media/google-cast/google-cast.d.ts.map +1 -1
  730. package/dist/dev/media/google-cast/google-cast.js +10 -10
  731. package/dist/dev/media/google-cast/google-cast.js.map +1 -1
  732. package/dist/dev/media/hls-audio/media.d.ts.map +1 -1
  733. package/dist/dev/media/hls-audio/media.js +5 -2
  734. package/dist/dev/media/hls-audio/media.js.map +1 -1
  735. package/dist/dev/media/hls-background-video/media.d.ts +13 -19
  736. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
  737. package/dist/dev/media/hls-background-video/media.js +15 -20
  738. package/dist/dev/media/hls-background-video/media.js.map +1 -1
  739. package/dist/dev/media/hls-video/media.d.ts.map +1 -1
  740. package/dist/dev/media/hls-video/media.js +5 -2
  741. package/dist/dev/media/hls-video/media.js.map +1 -1
  742. package/dist/dev/media/hlsjs-video/media.d.ts.map +1 -1
  743. package/dist/dev/media/hlsjs-video/media.js +5 -2
  744. package/dist/dev/media/hlsjs-video/media.js.map +1 -1
  745. package/dist/dev/media/mux-audio/hls-js.d.ts.map +1 -1
  746. package/dist/dev/media/mux-audio/hls-js.js +5 -2
  747. package/dist/dev/media/mux-audio/hls-js.js.map +1 -1
  748. package/dist/dev/media/mux-audio/spf.d.ts.map +1 -1
  749. package/dist/dev/media/mux-audio/spf.js +5 -2
  750. package/dist/dev/media/mux-audio/spf.js.map +1 -1
  751. package/dist/dev/media/mux-data/mux-data.d.ts +13 -17
  752. package/dist/dev/media/mux-data/mux-data.d.ts.map +1 -1
  753. package/dist/dev/media/mux-data/mux-data.js +13 -17
  754. package/dist/dev/media/mux-data/mux-data.js.map +1 -1
  755. package/dist/dev/media/mux-video/hls-js.d.ts.map +1 -1
  756. package/dist/dev/media/mux-video/hls-js.js +5 -2
  757. package/dist/dev/media/mux-video/hls-js.js.map +1 -1
  758. package/dist/dev/media/mux-video/spf.d.ts.map +1 -1
  759. package/dist/dev/media/mux-video/spf.js +5 -2
  760. package/dist/dev/media/mux-video/spf.js.map +1 -1
  761. package/dist/dev/media/mux-video/storyboard.js +1 -4
  762. package/dist/dev/media/mux-video/storyboard.js.map +1 -1
  763. package/dist/dev/media/native-hls-video/media.d.ts.map +1 -1
  764. package/dist/dev/media/native-hls-video/media.js +5 -2
  765. package/dist/dev/media/native-hls-video/media.js.map +1 -1
  766. package/dist/dev/media/shaka-video/media.d.ts.map +1 -1
  767. package/dist/dev/media/shaka-video/media.js +5 -2
  768. package/dist/dev/media/shaka-video/media.js.map +1 -1
  769. package/dist/dev/media/spotify-audio/media.d.ts.map +1 -1
  770. package/dist/dev/media/spotify-audio/media.js +2 -1
  771. package/dist/dev/media/spotify-audio/media.js.map +1 -1
  772. package/dist/dev/media/tiktok-video/media.d.ts.map +1 -1
  773. package/dist/dev/media/tiktok-video/media.js +2 -1
  774. package/dist/dev/media/tiktok-video/media.js.map +1 -1
  775. package/dist/dev/media/twitch-video/media.d.ts.map +1 -1
  776. package/dist/dev/media/twitch-video/media.js +2 -1
  777. package/dist/dev/media/twitch-video/media.js.map +1 -1
  778. package/dist/dev/media/video.d.ts +7 -0
  779. package/dist/dev/media/video.d.ts.map +1 -1
  780. package/dist/dev/media/video.js +9 -1
  781. package/dist/dev/media/video.js.map +1 -1
  782. package/dist/dev/media/vimeo-video/media.d.ts.map +1 -1
  783. package/dist/dev/media/vimeo-video/media.js +2 -1
  784. package/dist/dev/media/vimeo-video/media.js.map +1 -1
  785. package/dist/dev/media/youtube-video/media.d.ts.map +1 -1
  786. package/dist/dev/media/youtube-video/media.js +2 -1
  787. package/dist/dev/media/youtube-video/media.js.map +1 -1
  788. package/dist/dev/player/container.d.ts.map +1 -1
  789. package/dist/dev/player/container.js +24 -9
  790. package/dist/dev/player/container.js.map +1 -1
  791. package/dist/dev/player/context.d.ts +14 -12
  792. package/dist/dev/player/context.d.ts.map +1 -1
  793. package/dist/dev/player/context.js +2 -1
  794. package/dist/dev/player/context.js.map +1 -1
  795. package/dist/dev/player/create-player.d.ts +19 -3
  796. package/dist/dev/player/create-player.d.ts.map +1 -1
  797. package/dist/dev/player/create-player.js +12 -11
  798. package/dist/dev/player/create-player.js.map +1 -1
  799. package/dist/dev/presets/audio/minimal-skin.css +347 -250
  800. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  801. package/dist/dev/presets/audio/minimal-skin.js +66 -38
  802. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  803. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  804. package/dist/dev/presets/audio/minimal-skin.tailwind.js +65 -38
  805. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  806. package/dist/dev/presets/audio/player.d.ts.map +1 -1
  807. package/dist/dev/presets/audio/player.js.map +1 -1
  808. package/dist/dev/presets/audio/skin.css +328 -238
  809. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  810. package/dist/dev/presets/audio/skin.js +48 -36
  811. package/dist/dev/presets/audio/skin.js.map +1 -1
  812. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  813. package/dist/dev/presets/audio/skin.tailwind.js +46 -35
  814. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  815. package/dist/dev/presets/background/player.d.ts.map +1 -1
  816. package/dist/dev/presets/background/player.js.map +1 -1
  817. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  818. package/dist/dev/presets/background/skin.js.map +1 -1
  819. package/dist/dev/presets/live-audio/minimal-skin.css +347 -250
  820. package/dist/dev/presets/live-audio/minimal-skin.d.ts +3 -5
  821. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
  822. package/dist/dev/presets/live-audio/minimal-skin.js +42 -28
  823. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
  824. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
  825. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +41 -25
  826. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  827. package/dist/dev/presets/live-audio/player.d.ts.map +1 -1
  828. package/dist/dev/presets/live-audio/player.js.map +1 -1
  829. package/dist/dev/presets/live-audio/skin.css +328 -238
  830. package/dist/dev/presets/live-audio/skin.d.ts +3 -4
  831. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
  832. package/dist/dev/presets/live-audio/skin.js +24 -25
  833. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  834. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
  835. package/dist/dev/presets/live-audio/skin.tailwind.js +22 -22
  836. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
  837. package/dist/dev/presets/live-video/minimal-skin.css +435 -365
  838. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  839. package/dist/dev/presets/live-video/minimal-skin.js +103 -83
  840. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  841. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  842. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +104 -83
  843. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  844. package/dist/dev/presets/live-video/player.d.ts.map +1 -1
  845. package/dist/dev/presets/live-video/player.js.map +1 -1
  846. package/dist/dev/presets/live-video/skin.css +385 -320
  847. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  848. package/dist/dev/presets/live-video/skin.js +87 -81
  849. package/dist/dev/presets/live-video/skin.js.map +1 -1
  850. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  851. package/dist/dev/presets/live-video/skin.tailwind.js +87 -81
  852. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  853. package/dist/dev/presets/types.d.ts +13 -10
  854. package/dist/dev/presets/types.d.ts.map +1 -1
  855. package/dist/dev/presets/video/minimal-skin.css +435 -365
  856. package/dist/dev/presets/video/minimal-skin.d.ts +9 -0
  857. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  858. package/dist/dev/presets/video/minimal-skin.js +131 -91
  859. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  860. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  861. package/dist/dev/presets/video/minimal-skin.tailwind.js +127 -96
  862. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  863. package/dist/dev/presets/video/player.d.ts.map +1 -1
  864. package/dist/dev/presets/video/player.js.map +1 -1
  865. package/dist/dev/presets/video/skin.css +385 -320
  866. package/dist/dev/presets/video/skin.d.ts +8 -0
  867. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  868. package/dist/dev/presets/video/skin.js +115 -91
  869. package/dist/dev/presets/video/skin.js.map +1 -1
  870. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  871. package/dist/dev/presets/video/skin.tailwind.js +111 -95
  872. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  873. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +10 -9
  874. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  875. package/dist/dev/skins/dist/default/default/tailwind/components/badge.js +1 -1
  876. package/dist/dev/skins/dist/default/default/tailwind/components/badge.js.map +1 -1
  877. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  878. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  879. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +1 -1
  880. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
  881. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +6 -6
  882. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  883. package/dist/dev/skins/dist/default/default/tailwind/components/container.js +1 -1
  884. package/dist/dev/skins/dist/default/default/tailwind/components/container.js.map +1 -1
  885. package/dist/dev/skins/dist/default/default/tailwind/components/controls-backdrop.js +7 -0
  886. package/dist/dev/skins/dist/default/default/tailwind/components/controls-backdrop.js.map +1 -0
  887. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
  888. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  889. package/dist/dev/skins/dist/default/default/tailwind/components/dialog.js +15 -0
  890. package/dist/dev/skins/dist/default/default/tailwind/components/dialog.js.map +1 -0
  891. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -1
  892. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  893. package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator.js +3 -2
  894. package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator.js.map +1 -1
  895. package/dist/dev/skins/dist/default/default/tailwind/components/menu.js +16 -11
  896. package/dist/dev/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
  897. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +5 -4
  898. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  899. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +2 -2
  900. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  901. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +13 -13
  902. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  903. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +1 -1
  904. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  905. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +2 -2
  906. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  907. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +2 -2
  908. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  909. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +18 -17
  910. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  911. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +10 -10
  912. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  913. package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js +1 -1
  914. package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -1
  915. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  916. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  917. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
  918. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  919. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +6 -6
  920. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  921. package/dist/dev/skins/dist/default/minimal/tailwind/components/container.js +1 -1
  922. package/dist/dev/skins/dist/default/minimal/tailwind/components/container.js.map +1 -1
  923. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls-backdrop.js +7 -0
  924. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls-backdrop.js.map +1 -0
  925. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  926. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  927. package/dist/dev/skins/dist/default/minimal/tailwind/components/dialog.js +15 -0
  928. package/dist/dev/skins/dist/default/minimal/tailwind/components/dialog.js.map +1 -0
  929. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
  930. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  931. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator.js +5 -4
  932. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator.js.map +1 -1
  933. package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js +16 -11
  934. package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
  935. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +5 -4
  936. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  937. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +2 -2
  938. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  939. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +12 -12
  940. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  941. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +2 -2
  942. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  943. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +3 -3
  944. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  945. package/dist/dev/skins/dist/default/minimal/tailwind/components/volume-indicator.js +1 -1
  946. package/dist/dev/skins/dist/default/minimal/tailwind/components/volume-indicator.js.map +1 -1
  947. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +20 -20
  948. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  949. package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -1
  950. package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -1
  951. package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts +4 -3
  952. package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map +1 -1
  953. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +14 -45
  954. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  955. package/dist/dev/ui/alert-dialog/index.d.ts +1 -2
  956. package/dist/dev/ui/alert-dialog/index.js +1 -2
  957. package/dist/dev/ui/alert-dialog/index.parts.d.ts +8 -6
  958. package/dist/dev/ui/alert-dialog/index.parts.js +11 -9
  959. package/dist/dev/ui/alert-dialog/index.parts.js.map +1 -1
  960. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts +2 -2
  961. package/dist/dev/ui/audio-track/use-audio-track-options.js +2 -2
  962. package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -1
  963. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts +10 -10
  964. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts.map +1 -1
  965. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js +11 -11
  966. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  967. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts +7 -7
  968. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  969. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +7 -7
  970. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  971. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  972. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  973. package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts +10 -10
  974. package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts.map +1 -1
  975. package/dist/dev/ui/captions-radio-group/captions-radio-group.js +11 -11
  976. package/dist/dev/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  977. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts +2 -3
  978. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -1
  979. package/dist/dev/ui/captions-radio-group/use-captions-options.js +2 -3
  980. package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -1
  981. package/dist/dev/ui/controls/context.js.map +1 -1
  982. package/dist/dev/ui/controls/controls-backdrop.d.ts +16 -0
  983. package/dist/dev/ui/controls/controls-backdrop.d.ts.map +1 -0
  984. package/dist/dev/ui/controls/controls-backdrop.js +28 -0
  985. package/dist/dev/ui/controls/controls-backdrop.js.map +1 -0
  986. package/dist/dev/ui/controls/controls-content.d.ts +16 -0
  987. package/dist/dev/ui/controls/controls-content.d.ts.map +1 -0
  988. package/dist/dev/ui/controls/controls-content.js +27 -0
  989. package/dist/dev/ui/controls/controls-content.js.map +1 -0
  990. package/dist/dev/ui/controls/controls-root.d.ts +3 -4
  991. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  992. package/dist/dev/ui/controls/controls-root.js +5 -20
  993. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  994. package/dist/dev/ui/controls/index.parts.d.ts +4 -2
  995. package/dist/dev/ui/controls/index.parts.js +5 -1
  996. package/dist/dev/ui/controls/index.parts.js.map +1 -1
  997. package/dist/dev/ui/create-context-part.js.map +1 -1
  998. package/dist/dev/ui/create-media-button.js.map +1 -1
  999. package/dist/dev/ui/dialog/context.d.ts +15 -0
  1000. package/dist/dev/ui/dialog/context.d.ts.map +1 -0
  1001. package/dist/dev/ui/dialog/context.js +17 -0
  1002. package/dist/dev/ui/dialog/context.js.map +1 -0
  1003. package/dist/dev/ui/dialog/dialog-backdrop.d.ts +13 -0
  1004. package/dist/dev/ui/dialog/dialog-backdrop.d.ts.map +1 -0
  1005. package/dist/dev/ui/dialog/dialog-backdrop.js +26 -0
  1006. package/dist/dev/ui/dialog/dialog-backdrop.js.map +1 -0
  1007. package/dist/dev/ui/dialog/dialog-close.d.ts +13 -0
  1008. package/dist/dev/ui/dialog/dialog-close.d.ts.map +1 -0
  1009. package/dist/dev/ui/dialog/dialog-close.js +29 -0
  1010. package/dist/dev/ui/dialog/dialog-close.js.map +1 -0
  1011. package/dist/dev/ui/dialog/dialog-description.d.ts +13 -0
  1012. package/dist/dev/ui/dialog/dialog-description.d.ts.map +1 -0
  1013. package/dist/dev/ui/dialog/dialog-description.js +14 -0
  1014. package/dist/dev/ui/dialog/dialog-description.js.map +1 -0
  1015. package/dist/dev/ui/dialog/dialog-popup.d.ts +13 -0
  1016. package/dist/dev/ui/dialog/dialog-popup.d.ts.map +1 -0
  1017. package/dist/dev/ui/dialog/dialog-popup.js +28 -0
  1018. package/dist/dev/ui/dialog/dialog-popup.js.map +1 -0
  1019. package/dist/dev/ui/dialog/dialog-root.d.ts +18 -0
  1020. package/dist/dev/ui/dialog/dialog-root.d.ts.map +1 -0
  1021. package/dist/dev/ui/dialog/dialog-root.js +23 -0
  1022. package/dist/dev/ui/dialog/dialog-root.js.map +1 -0
  1023. package/dist/dev/ui/dialog/dialog-title.d.ts +13 -0
  1024. package/dist/dev/ui/dialog/dialog-title.d.ts.map +1 -0
  1025. package/dist/dev/ui/dialog/dialog-title.js +14 -0
  1026. package/dist/dev/ui/dialog/dialog-title.js.map +1 -0
  1027. package/dist/dev/ui/dialog/dialog-trigger.d.ts +13 -0
  1028. package/dist/dev/ui/dialog/dialog-trigger.d.ts.map +1 -0
  1029. package/dist/dev/ui/dialog/dialog-trigger.js +30 -0
  1030. package/dist/dev/ui/dialog/dialog-trigger.js.map +1 -0
  1031. package/dist/dev/ui/dialog/index.d.ts +3 -0
  1032. package/dist/dev/ui/dialog/index.js +3 -0
  1033. package/dist/dev/ui/dialog/index.parts.d.ts +13 -0
  1034. package/dist/dev/ui/dialog/index.parts.d.ts.map +1 -0
  1035. package/dist/dev/ui/dialog/index.parts.js +22 -0
  1036. package/dist/dev/ui/dialog/index.parts.js.map +1 -0
  1037. package/dist/dev/ui/dialog/use-dialog-root.js +59 -0
  1038. package/dist/dev/ui/dialog/use-dialog-root.js.map +1 -0
  1039. package/dist/dev/ui/error-dialog/context.d.ts +1 -0
  1040. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -1
  1041. package/dist/dev/ui/error-dialog/context.js +1 -0
  1042. package/dist/dev/ui/error-dialog/context.js.map +1 -1
  1043. package/dist/dev/ui/error-dialog/error-dialog-close.d.ts +4 -3
  1044. package/dist/dev/ui/error-dialog/error-dialog-close.d.ts.map +1 -1
  1045. package/dist/dev/ui/error-dialog/error-dialog-close.js +3 -2
  1046. package/dist/dev/ui/error-dialog/error-dialog-close.js.map +1 -1
  1047. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +4 -3
  1048. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  1049. package/dist/dev/ui/error-dialog/error-dialog-description.js +3 -2
  1050. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -1
  1051. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts +1 -0
  1052. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -1
  1053. package/dist/dev/ui/error-dialog/error-dialog-root.js +19 -34
  1054. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -1
  1055. package/dist/dev/ui/error-dialog/error-dialog-title.d.ts +4 -3
  1056. package/dist/dev/ui/error-dialog/error-dialog-title.d.ts.map +1 -1
  1057. package/dist/dev/ui/error-dialog/error-dialog-title.js +3 -2
  1058. package/dist/dev/ui/error-dialog/error-dialog-title.js.map +1 -1
  1059. package/dist/dev/ui/error-dialog/index.parts.d.ts +5 -3
  1060. package/dist/dev/ui/error-dialog/index.parts.js +5 -3
  1061. package/dist/dev/ui/error-dialog/index.parts.js.map +1 -1
  1062. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  1063. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  1064. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +6 -0
  1065. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  1066. package/dist/dev/ui/gesture/use-doubletap-gesture.js +6 -0
  1067. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  1068. package/dist/dev/ui/gesture/use-tap-gesture.d.ts +6 -0
  1069. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  1070. package/dist/dev/ui/gesture/use-tap-gesture.js +6 -0
  1071. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  1072. package/dist/dev/ui/hooks/create-radio-options-hook.js.map +1 -1
  1073. package/dist/dev/ui/hooks/use-button.d.ts +12 -12
  1074. package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
  1075. package/dist/dev/ui/hooks/use-button.js +15 -14
  1076. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  1077. package/dist/dev/ui/hooks/use-slider.d.ts +2 -3
  1078. package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
  1079. package/dist/dev/ui/hooks/use-slider.js +6 -7
  1080. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  1081. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts +6 -0
  1082. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -1
  1083. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +6 -0
  1084. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  1085. package/dist/dev/ui/hotkey/use-hotkey.d.ts +5 -0
  1086. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -1
  1087. package/dist/dev/ui/hotkey/use-hotkey.js +5 -0
  1088. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
  1089. package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  1090. package/dist/dev/ui/input-indicator/use-input-indicator-root.js +2 -1
  1091. package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  1092. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  1093. package/dist/dev/ui/live-button/live-button.d.ts +7 -10
  1094. package/dist/dev/ui/live-button/live-button.d.ts.map +1 -1
  1095. package/dist/dev/ui/live-button/live-button.js +7 -10
  1096. package/dist/dev/ui/live-button/live-button.js.map +1 -1
  1097. package/dist/dev/ui/menu/context.d.ts +3 -2
  1098. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  1099. package/dist/dev/ui/menu/context.js +10 -1
  1100. package/dist/dev/ui/menu/context.js.map +1 -1
  1101. package/dist/dev/ui/menu/index.parts.d.ts +3 -2
  1102. package/dist/dev/ui/menu/index.parts.js +3 -1
  1103. package/dist/dev/ui/menu/index.parts.js.map +1 -1
  1104. package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -1
  1105. package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -1
  1106. package/dist/dev/ui/menu/menu-content.d.ts +1 -1
  1107. package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
  1108. package/dist/dev/ui/menu/menu-content.js +44 -106
  1109. package/dist/dev/ui/menu/menu-content.js.map +1 -1
  1110. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  1111. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  1112. package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
  1113. package/dist/dev/ui/menu/menu-item.js +22 -20
  1114. package/dist/dev/ui/menu/menu-item.js.map +1 -1
  1115. package/dist/dev/ui/menu/menu-keyboard.js.map +1 -1
  1116. package/dist/dev/ui/menu/menu-popup.d.ts +13 -0
  1117. package/dist/dev/ui/menu/menu-popup.d.ts.map +1 -0
  1118. package/dist/dev/ui/menu/menu-popup.js +70 -0
  1119. package/dist/dev/ui/menu/menu-popup.js.map +1 -0
  1120. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  1121. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  1122. package/dist/dev/ui/menu/menu-root.d.ts.map +1 -1
  1123. package/dist/dev/ui/menu/menu-root.js +28 -27
  1124. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  1125. package/dist/dev/ui/menu/menu-trigger.d.ts +2 -3
  1126. package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
  1127. package/dist/dev/ui/menu/menu-trigger.js +2 -3
  1128. package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
  1129. package/dist/dev/ui/menu/use-menu-group.js +2 -1
  1130. package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
  1131. package/dist/dev/ui/play-button/play-button.d.ts +8 -8
  1132. package/dist/dev/ui/play-button/play-button.js +8 -8
  1133. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  1134. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts +2 -2
  1135. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -1
  1136. package/dist/dev/ui/playback-rate/use-playback-rate-options.js +2 -2
  1137. package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  1138. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts +8 -8
  1139. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  1140. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +8 -8
  1141. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  1142. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts +10 -10
  1143. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts.map +1 -1
  1144. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js +11 -11
  1145. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  1146. package/dist/dev/ui/popover/context.d.ts +1 -0
  1147. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  1148. package/dist/dev/ui/popover/context.js +1 -0
  1149. package/dist/dev/ui/popover/context.js.map +1 -1
  1150. package/dist/dev/ui/popover/popover-popup.d.ts +4 -1
  1151. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  1152. package/dist/dev/ui/popover/popover-popup.js +7 -3
  1153. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  1154. package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
  1155. package/dist/dev/ui/popover/popover-root.js +1 -1
  1156. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  1157. package/dist/dev/ui/popover/use-popup-position.js +2 -1
  1158. package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
  1159. package/dist/dev/ui/poster/poster.d.ts +11 -13
  1160. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  1161. package/dist/dev/ui/poster/poster.js +11 -13
  1162. package/dist/dev/ui/poster/poster.js.map +1 -1
  1163. package/dist/dev/ui/quality/use-quality-options.d.ts +2 -3
  1164. package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -1
  1165. package/dist/dev/ui/quality/use-quality-options.js +2 -3
  1166. package/dist/dev/ui/quality/use-quality-options.js.map +1 -1
  1167. package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts +11 -11
  1168. package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts.map +1 -1
  1169. package/dist/dev/ui/quality-radio-group/quality-radio-group.js +12 -12
  1170. package/dist/dev/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  1171. package/dist/dev/ui/seek-button/seek-button.d.ts +8 -8
  1172. package/dist/dev/ui/seek-button/seek-button.js +8 -8
  1173. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  1174. package/dist/dev/ui/seek-indicator/context.js.map +1 -1
  1175. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -1
  1176. package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  1177. package/dist/dev/ui/slider/context.js.map +1 -1
  1178. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  1179. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  1180. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  1181. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  1182. package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -1
  1183. package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -1
  1184. package/dist/dev/ui/status-indicator/context.js.map +1 -1
  1185. package/dist/dev/ui/status-indicator/index.parts.js.map +1 -1
  1186. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -1
  1187. package/dist/dev/ui/status-indicator/status-indicator-root.js +2 -1
  1188. package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -1
  1189. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  1190. package/dist/dev/ui/thumbnail/thumbnail.js +5 -6
  1191. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  1192. package/dist/dev/ui/time/time-group.d.ts +7 -7
  1193. package/dist/dev/ui/time/time-group.js +7 -7
  1194. package/dist/dev/ui/time/time-group.js.map +1 -1
  1195. package/dist/dev/ui/time/time-separator.d.ts +4 -4
  1196. package/dist/dev/ui/time/time-separator.js +4 -4
  1197. package/dist/dev/ui/time/time-separator.js.map +1 -1
  1198. package/dist/dev/ui/time/time-value.d.ts +5 -5
  1199. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  1200. package/dist/dev/ui/time/time-value.js +5 -5
  1201. package/dist/dev/ui/time/time-value.js.map +1 -1
  1202. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  1203. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js +1 -1
  1204. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  1205. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  1206. package/dist/dev/ui/title/title.d.ts +5 -6
  1207. package/dist/dev/ui/title/title.d.ts.map +1 -1
  1208. package/dist/dev/ui/title/title.js +5 -6
  1209. package/dist/dev/ui/title/title.js.map +1 -1
  1210. package/dist/dev/ui/tooltip/context.d.ts +1 -0
  1211. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  1212. package/dist/dev/ui/tooltip/context.js +1 -0
  1213. package/dist/dev/ui/tooltip/context.js.map +1 -1
  1214. package/dist/dev/ui/tooltip/tooltip-popup.d.ts +4 -1
  1215. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  1216. package/dist/dev/ui/tooltip/tooltip-popup.js +7 -3
  1217. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  1218. package/dist/dev/ui/tooltip/tooltip-provider.d.ts.map +1 -1
  1219. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  1220. package/dist/dev/ui/tooltip/tooltip-root.d.ts +1 -1
  1221. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  1222. package/dist/dev/ui/tooltip/tooltip-root.js +4 -2
  1223. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  1224. package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -1
  1225. package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -1
  1226. package/dist/dev/ui/volume-indicator/context.js.map +1 -1
  1227. package/dist/dev/ui/volume-indicator/index.parts.js.map +1 -1
  1228. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +3 -2
  1229. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  1230. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
  1231. package/dist/dev/ui/volume-indicator/volume-indicator-root.js +2 -1
  1232. package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  1233. package/dist/dev/ui/volume-popover/context.js +13 -0
  1234. package/dist/dev/ui/volume-popover/context.js.map +1 -0
  1235. package/dist/dev/ui/volume-popover/index.d.ts +2 -0
  1236. package/dist/dev/ui/volume-popover/index.js +2 -0
  1237. package/dist/dev/ui/volume-popover/index.parts.d.ts +9 -0
  1238. package/dist/dev/ui/volume-popover/index.parts.d.ts.map +1 -0
  1239. package/dist/dev/ui/volume-popover/index.parts.js +14 -0
  1240. package/dist/dev/ui/volume-popover/index.parts.js.map +1 -0
  1241. package/dist/dev/ui/volume-popover/volume-popover-popup.d.ts +11 -0
  1242. package/dist/dev/ui/volume-popover/volume-popover-popup.d.ts.map +1 -0
  1243. package/dist/dev/ui/volume-popover/volume-popover-popup.js +21 -0
  1244. package/dist/dev/ui/volume-popover/volume-popover-popup.js.map +1 -0
  1245. package/dist/dev/ui/volume-popover/volume-popover-root.d.ts +14 -0
  1246. package/dist/dev/ui/volume-popover/volume-popover-root.d.ts.map +1 -0
  1247. package/dist/dev/ui/volume-popover/volume-popover-root.js +47 -0
  1248. package/dist/dev/ui/volume-popover/volume-popover-root.js.map +1 -0
  1249. package/dist/dev/ui/volume-popover/volume-popover-trigger.d.ts +11 -0
  1250. package/dist/dev/ui/volume-popover/volume-popover-trigger.d.ts.map +1 -0
  1251. package/dist/dev/ui/volume-popover/volume-popover-trigger.js +32 -0
  1252. package/dist/dev/ui/volume-popover/volume-popover-trigger.js.map +1 -0
  1253. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  1254. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  1255. package/dist/dev/utils/merge-props.d.ts +14 -12
  1256. package/dist/dev/utils/merge-props.d.ts.map +1 -1
  1257. package/dist/dev/utils/merge-props.js +20 -30
  1258. package/dist/dev/utils/merge-props.js.map +1 -1
  1259. package/dist/dev/utils/types.d.ts +2 -4
  1260. package/dist/dev/utils/types.d.ts.map +1 -1
  1261. package/dist/dev/utils/use-attach-iframe.js.map +1 -1
  1262. package/dist/dev/utils/use-attach-media.d.ts +5 -0
  1263. package/dist/dev/utils/use-attach-media.d.ts.map +1 -1
  1264. package/dist/dev/utils/use-attach-media.js +5 -0
  1265. package/dist/dev/utils/use-attach-media.js.map +1 -1
  1266. package/dist/dev/utils/use-composed-refs.d.ts +10 -8
  1267. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -1
  1268. package/dist/dev/utils/use-composed-refs.js +10 -8
  1269. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  1270. package/dist/dev/utils/use-destroy.d.ts +7 -9
  1271. package/dist/dev/utils/use-destroy.d.ts.map +1 -1
  1272. package/dist/dev/utils/use-destroy.js +7 -9
  1273. package/dist/dev/utils/use-destroy.js.map +1 -1
  1274. package/dist/dev/utils/use-force-render.js.map +1 -1
  1275. package/dist/dev/utils/use-latest-ref.d.ts +4 -2
  1276. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -1
  1277. package/dist/dev/utils/use-latest-ref.js +4 -2
  1278. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  1279. package/dist/dev/utils/use-media-component.d.ts +7 -6
  1280. package/dist/dev/utils/use-media-component.d.ts.map +1 -1
  1281. package/dist/dev/utils/use-media-component.js +7 -6
  1282. package/dist/dev/utils/use-media-component.js.map +1 -1
  1283. package/dist/dev/utils/use-media-instance.d.ts +8 -7
  1284. package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
  1285. package/dist/dev/utils/use-media-instance.js +8 -7
  1286. package/dist/dev/utils/use-media-instance.js.map +1 -1
  1287. package/dist/dev/utils/use-render.d.ts +11 -14
  1288. package/dist/dev/utils/use-render.d.ts.map +1 -1
  1289. package/dist/dev/utils/use-render.js +13 -15
  1290. package/dist/dev/utils/use-render.js.map +1 -1
  1291. package/dist/dev/utils/use-safe-id.js +3 -4
  1292. package/dist/dev/utils/use-safe-id.js.map +1 -1
  1293. package/dist/dev/utils/use-sync-props.js.map +1 -1
  1294. package/docs/README.md +1 -1
  1295. package/docs/concepts/browser-support.md +16 -8
  1296. package/docs/concepts/bundlers.md +43 -0
  1297. package/docs/concepts/media-sources.md +28 -4
  1298. package/docs/concepts/mux-data.md +3 -3
  1299. package/docs/concepts/overview.md +9 -25
  1300. package/docs/concepts/presets.md +2 -1
  1301. package/docs/concepts/skins.md +538 -465
  1302. package/docs/concepts/typescript.md +34 -0
  1303. package/docs/concepts/ui-components.md +12 -5
  1304. package/docs/concepts/why-videojs.md +14 -8
  1305. package/docs/how-to/add-a-background-video.md +210 -0
  1306. package/docs/how-to/add-a-poster-and-loading-placeholder.md +187 -0
  1307. package/docs/how-to/add-keyboard-shortcuts-and-gestures.md +97 -0
  1308. package/docs/how-to/add-quality-selector.md +249 -0
  1309. package/docs/how-to/autoplay.md +172 -0
  1310. package/docs/how-to/build-with-ai.md +2 -2
  1311. package/docs/how-to/build-your-own-component.md +131 -4
  1312. package/docs/how-to/cast-to-airplay-and-chromecast.md +158 -0
  1313. package/docs/how-to/customize-skins.md +10009 -1574
  1314. package/docs/how-to/go-fullscreen-and-lock-orientation.md +153 -0
  1315. package/docs/how-to/handle-playback-errors.md +92 -0
  1316. package/docs/how-to/installation.md +57 -15
  1317. package/docs/how-to/internationalize-the-player.md +358 -0
  1318. package/docs/how-to/migrate-from-media-chrome.md +94 -63
  1319. package/docs/how-to/migrate-from-mux-player.md +180 -54
  1320. package/docs/how-to/migrate-from-plyr.md +52 -33
  1321. package/docs/how-to/migrate-from-video-js-8.md +42 -34
  1322. package/docs/how-to/play-live-streams.md +135 -0
  1323. package/docs/how-to/remember-user-preferences.md +180 -0
  1324. package/docs/how-to/show-and-hide-controls.md +174 -0
  1325. package/docs/how-to/show-captions-and-subtitles.md +156 -0
  1326. package/docs/how-to/show-timeline-thumbnail-previews.md +163 -0
  1327. package/docs/how-to/use-picture-in-picture.md +150 -0
  1328. package/docs/llms.txt +70 -17
  1329. package/docs/reference/airplay-button.md +18 -18
  1330. package/docs/reference/alert-dialog.md +649 -0
  1331. package/docs/reference/audio-track-radio-group.md +32 -22
  1332. package/docs/reference/audio.md +78 -0
  1333. package/docs/reference/background-video.md +17 -45
  1334. package/docs/reference/buffering-indicator.md +8 -0
  1335. package/docs/reference/captions-button.md +24 -16
  1336. package/docs/reference/captions-radio-group.md +32 -22
  1337. package/docs/reference/cast-button.md +21 -19
  1338. package/docs/reference/cloudflare-video.md +223 -0
  1339. package/docs/reference/controls.md +252 -20
  1340. package/docs/reference/create-i18n.md +7 -3
  1341. package/docs/reference/create-player.md +81 -9
  1342. package/docs/reference/create-selector.md +4 -6
  1343. package/docs/reference/create-translator.md +15 -5
  1344. package/docs/reference/dash-video.md +57 -2
  1345. package/docs/reference/dialog.md +833 -0
  1346. package/docs/reference/error-dialog.md +586 -0
  1347. package/docs/reference/feature-buffer.md +10 -4
  1348. package/docs/reference/feature-controls.md +1 -1
  1349. package/docs/reference/feature-error.md +1 -1
  1350. package/docs/reference/feature-live.md +62 -7
  1351. package/docs/reference/feature-metadata.md +6 -4
  1352. package/docs/reference/feature-orientation-lock.md +1 -1
  1353. package/docs/reference/feature-quality.md +1 -1
  1354. package/docs/reference/feature-remote-playback.md +1 -1
  1355. package/docs/reference/feature-source.md +1 -1
  1356. package/docs/reference/feature-stream-type.md +14 -5
  1357. package/docs/reference/feature-text-tracks.md +5 -3
  1358. package/docs/reference/feature-time.md +1 -1
  1359. package/docs/reference/fullscreen-button.md +23 -23
  1360. package/docs/reference/gesture.md +201 -0
  1361. package/docs/reference/get-i18n-translations.md +5 -5
  1362. package/docs/reference/google-cast.md +4 -4
  1363. package/docs/reference/has-registered-locale.md +2 -2
  1364. package/docs/reference/hls-audio.md +33 -1
  1365. package/docs/reference/hls-background-video.md +75 -0
  1366. package/docs/reference/hls-video.md +45 -1
  1367. package/docs/reference/hlsjs-video.md +648 -3
  1368. package/docs/reference/hotkey.md +188 -0
  1369. package/docs/reference/i-18-n-context.md +92 -0
  1370. package/docs/reference/i18n-provider.md +2 -2
  1371. package/docs/reference/menu.md +476 -132
  1372. package/docs/reference/merge-props.md +56 -0
  1373. package/docs/reference/mute-button.md +26 -26
  1374. package/docs/reference/mux-audio.md +711 -3
  1375. package/docs/reference/mux-background-video.md +34 -0
  1376. package/docs/reference/mux-video.md +759 -12
  1377. package/docs/reference/native-hls-video.md +44 -3
  1378. package/docs/reference/pip-button.md +23 -23
  1379. package/docs/reference/play-button.md +11 -3
  1380. package/docs/reference/playback-rate-button.md +14 -6
  1381. package/docs/reference/playback-rate-radio-group.md +30 -20
  1382. package/docs/reference/player-container.md +22 -31
  1383. package/docs/reference/{player-provider.md → player.md} +11 -9
  1384. package/docs/reference/popover.md +173 -25
  1385. package/docs/reference/poster.md +8 -0
  1386. package/docs/reference/quality-radio-group.md +36 -26
  1387. package/docs/reference/register-i18n.md +2 -2
  1388. package/docs/reference/render-element.md +14 -2
  1389. package/docs/reference/seek-button.md +14 -6
  1390. package/docs/reference/seek-indicator.md +448 -0
  1391. package/docs/reference/shaka-video.md +395 -0
  1392. package/docs/reference/slider.md +316 -6
  1393. package/docs/reference/spotify-audio.md +188 -0
  1394. package/docs/reference/status-announcer.md +341 -0
  1395. package/docs/reference/status-indicator.md +535 -0
  1396. package/docs/reference/thumbnail.md +30 -2
  1397. package/docs/reference/tiktok-video.md +280 -0
  1398. package/docs/reference/time-slider.md +354 -20
  1399. package/docs/reference/time.md +83 -3
  1400. package/docs/reference/title.md +10 -2
  1401. package/docs/reference/tooltip.md +281 -75
  1402. package/docs/reference/translation-phrases.md +1 -1
  1403. package/docs/reference/twitch-video.md +211 -0
  1404. package/docs/reference/use-attach-media.md +59 -0
  1405. package/docs/reference/use-audio-track-options.md +44 -2
  1406. package/docs/reference/use-button.md +6 -2
  1407. package/docs/reference/use-captions-options.md +48 -2
  1408. package/docs/reference/use-composed-refs.md +59 -0
  1409. package/docs/reference/use-container.md +39 -0
  1410. package/docs/reference/use-destroy.md +89 -0
  1411. package/docs/reference/use-dialog-context.md +63 -0
  1412. package/docs/reference/use-double-tap-gesture.md +75 -0
  1413. package/docs/reference/use-error-dialog-context.md +41 -0
  1414. package/docs/reference/use-hotkey-shortcut.md +79 -0
  1415. package/docs/reference/use-hotkey.md +62 -0
  1416. package/docs/reference/use-latest-ref.md +73 -0
  1417. package/docs/reference/use-locale.md +3 -2
  1418. package/docs/reference/use-media-component.md +62 -0
  1419. package/docs/reference/use-media-instance.md +79 -0
  1420. package/docs/reference/use-media.md +31 -2
  1421. package/docs/reference/use-menu-context.md +101 -0
  1422. package/docs/reference/use-optional-container.md +33 -0
  1423. package/docs/reference/use-optional-menu-context.md +101 -0
  1424. package/docs/reference/use-optional-player.md +77 -0
  1425. package/docs/reference/use-playback-rate-options.md +58 -2
  1426. package/docs/reference/use-player-context.md +2 -2
  1427. package/docs/reference/use-player.md +1 -1
  1428. package/docs/reference/use-popover-context.md +95 -0
  1429. package/docs/reference/use-quality-options.md +44 -2
  1430. package/docs/reference/use-selector.md +7 -3
  1431. package/docs/reference/use-slider.md +133 -0
  1432. package/docs/reference/use-snapshot.md +25 -7
  1433. package/docs/reference/use-store.md +10 -6
  1434. package/docs/reference/use-tap-gesture.md +75 -0
  1435. package/docs/reference/use-tooltip-context.md +115 -0
  1436. package/docs/reference/video.md +82 -0
  1437. package/docs/reference/vimeo-video.md +734 -0
  1438. package/docs/reference/volume-indicator.md +601 -0
  1439. package/docs/reference/volume-popover.md +556 -0
  1440. package/docs/reference/volume-slider.md +237 -35
  1441. package/docs/reference/youtube-video.md +339 -0
  1442. package/package.json +33 -38
  1443. package/dist/default/__generated__/skins/default-video/styles/base.css +0 -25
  1444. package/dist/default/__generated__/skins/default-video/styles/buttons.css +0 -266
  1445. package/dist/default/__generated__/skins/default-video/styles/captions.css +0 -22
  1446. package/dist/default/__generated__/skins/default-video/styles/container.css +0 -158
  1447. package/dist/default/__generated__/skins/default-video/styles/controls.css +0 -460
  1448. package/dist/default/__generated__/skins/default-video/styles/dialog.css +0 -169
  1449. package/dist/default/__generated__/skins/default-video/styles/indicator.css +0 -459
  1450. package/dist/default/__generated__/skins/default-video/styles/menus.css +0 -254
  1451. package/dist/default/__generated__/skins/default-video/styles/overlays.css +0 -35
  1452. package/dist/default/__generated__/skins/default-video/styles/popups.css +0 -371
  1453. package/dist/default/__generated__/skins/default-video/styles/poster.css +0 -47
  1454. package/dist/default/__generated__/skins/default-video/styles/sliders.css +0 -436
  1455. package/dist/default/__generated__/skins/default-video/styles/styles.css +0 -2753
  1456. package/dist/default/__generated__/skins/default-video/styles/theme.css +0 -7
  1457. package/dist/default/__generated__/skins/default-video/styles/video.css +0 -29
  1458. package/dist/default/__generated__/skins/minimal-video/styles/base.css +0 -25
  1459. package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +0 -266
  1460. package/dist/default/__generated__/skins/minimal-video/styles/captions.css +0 -22
  1461. package/dist/default/__generated__/skins/minimal-video/styles/container.css +0 -158
  1462. package/dist/default/__generated__/skins/minimal-video/styles/controls.css +0 -182
  1463. package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +0 -77
  1464. package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +0 -322
  1465. package/dist/default/__generated__/skins/minimal-video/styles/menus.css +0 -254
  1466. package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +0 -35
  1467. package/dist/default/__generated__/skins/minimal-video/styles/popups.css +0 -371
  1468. package/dist/default/__generated__/skins/minimal-video/styles/poster.css +0 -47
  1469. package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +0 -436
  1470. package/dist/default/__generated__/skins/minimal-video/styles/styles.css +0 -2246
  1471. package/dist/default/__generated__/skins/minimal-video/styles/theme.css +0 -7
  1472. package/dist/default/__generated__/skins/minimal-video/styles/video.css +0 -29
  1473. package/dist/default/skins/dist/default/default/tailwind/components/error.js +0 -14
  1474. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +0 -1
  1475. package/dist/default/skins/dist/default/default/tailwind/components/input-indicator-overlay.js +0 -7
  1476. package/dist/default/skins/dist/default/default/tailwind/components/input-indicator-overlay.js.map +0 -1
  1477. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +0 -7
  1478. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +0 -1
  1479. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +0 -14
  1480. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
  1481. package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js +0 -7
  1482. package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js.map +0 -1
  1483. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +0 -7
  1484. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +0 -1
  1485. package/dist/default/ui/alert-dialog/alert-dialog-close.js +0 -28
  1486. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +0 -1
  1487. package/dist/default/ui/alert-dialog/alert-dialog-description.js +0 -13
  1488. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +0 -1
  1489. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +0 -29
  1490. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +0 -1
  1491. package/dist/default/ui/alert-dialog/alert-dialog-title.js +0 -13
  1492. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +0 -1
  1493. package/dist/default/ui/alert-dialog/context.js +0 -13
  1494. package/dist/default/ui/alert-dialog/context.js.map +0 -1
  1495. package/dist/dev/__generated__/skins/default-video/styles/base.css +0 -25
  1496. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +0 -266
  1497. package/dist/dev/__generated__/skins/default-video/styles/captions.css +0 -22
  1498. package/dist/dev/__generated__/skins/default-video/styles/container.css +0 -158
  1499. package/dist/dev/__generated__/skins/default-video/styles/controls.css +0 -460
  1500. package/dist/dev/__generated__/skins/default-video/styles/dialog.css +0 -169
  1501. package/dist/dev/__generated__/skins/default-video/styles/indicator.css +0 -459
  1502. package/dist/dev/__generated__/skins/default-video/styles/menus.css +0 -254
  1503. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +0 -35
  1504. package/dist/dev/__generated__/skins/default-video/styles/popups.css +0 -371
  1505. package/dist/dev/__generated__/skins/default-video/styles/poster.css +0 -47
  1506. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +0 -436
  1507. package/dist/dev/__generated__/skins/default-video/styles/styles.css +0 -2753
  1508. package/dist/dev/__generated__/skins/default-video/styles/theme.css +0 -7
  1509. package/dist/dev/__generated__/skins/default-video/styles/video.css +0 -29
  1510. package/dist/dev/__generated__/skins/minimal-video/styles/base.css +0 -25
  1511. package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +0 -266
  1512. package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +0 -22
  1513. package/dist/dev/__generated__/skins/minimal-video/styles/container.css +0 -158
  1514. package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +0 -182
  1515. package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +0 -77
  1516. package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +0 -322
  1517. package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +0 -254
  1518. package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +0 -35
  1519. package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +0 -371
  1520. package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +0 -47
  1521. package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +0 -436
  1522. package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +0 -2246
  1523. package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +0 -7
  1524. package/dist/dev/__generated__/skins/minimal-video/styles/video.css +0 -29
  1525. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +0 -14
  1526. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +0 -1
  1527. package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator-overlay.js +0 -7
  1528. package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator-overlay.js.map +0 -1
  1529. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +0 -7
  1530. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +0 -1
  1531. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +0 -14
  1532. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
  1533. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js +0 -7
  1534. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js.map +0 -1
  1535. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +0 -7
  1536. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +0 -1
  1537. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts +0 -12
  1538. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +0 -1
  1539. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +0 -28
  1540. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +0 -1
  1541. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts +0 -12
  1542. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +0 -1
  1543. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +0 -13
  1544. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +0 -1
  1545. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts +0 -12
  1546. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +0 -1
  1547. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +0 -29
  1548. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +0 -1
  1549. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts +0 -12
  1550. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +0 -1
  1551. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +0 -13
  1552. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +0 -1
  1553. package/dist/dev/ui/alert-dialog/context.d.ts +0 -13
  1554. package/dist/dev/ui/alert-dialog/context.d.ts.map +0 -1
  1555. package/dist/dev/ui/alert-dialog/context.js +0 -13
  1556. package/dist/dev/ui/alert-dialog/context.js.map +0 -1
  1557. package/docs/concepts/cast.md +0 -131
  1558. package/docs/concepts/i18n.md +0 -317
  1559. package/docs/how-to/add-a-poster-placeholder.md +0 -133
  1560. package/docs/how-to/i18n-override-translations.md +0 -114
  1561. package/docs/how-to/i18n-register-locale.md +0 -74
  1562. package/docs/how-to/i18n-ssr.md +0 -104
  1563. package/docs/how-to/i18n-switch-locale.md +0 -170
@@ -1 +1 @@
1
- {"version":3,"file":"volume-slider-root.js","names":[],"sources":["../../../../src/ui/volume-slider/volume-slider-root.tsx"],"sourcesContent":["import { VolumeSliderCore, VolumeSliderDataAttrs } from '@videojs/core';\nimport { createWheelStep, getSliderCSSVars, logMissingFeature, selectVolume } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { listen } from '@videojs/utils/dom';\nimport { forwardRef, useCallback, useRef, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopVolume = {\n volume: 0,\n muted: false,\n volumeAvailability: 'unsupported' as const,\n mutedAvailability: 'unsupported' as const,\n setVolume: () => 0,\n toggleMuted: () => false,\n};\n\nexport interface VolumeSliderRootProps extends UIComponentProps<'div', VolumeSliderCore.State>, VolumeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const VolumeSliderRoot = forwardRef<HTMLDivElement, VolumeSliderRootProps>(\n function VolumeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n orientation,\n step = VolumeSliderCore.defaultProps.step,\n largeStep = VolumeSliderCore.defaultProps.largeStep,\n wheelStep = VolumeSliderCore.defaultProps.wheelStep,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const volume = usePlayer(selectVolume);\n const translator = useTranslator();\n const locale = useLocale();\n const isUnavailable = volume?.volumeAvailability !== 'available';\n const isDisabled = Boolean(disabled) || isUnavailable;\n\n const [core] = useState(() => new VolumeSliderCore());\n core.setProps({ label, orientation, step, largeStep, wheelStep, disabled, thumbAlignment });\n core.setFormatLocale(locale);\n\n // Keep refs to the latest dynamic values for stable closures.\n const volumeRef = useLatestRef(volume);\n const disabledRef = useLatestRef(isDisabled);\n\n const getPercent = () => (volumeRef.current?.volume ?? 0) * 100;\n const getStepPercent = () => core.getStepPercent();\n const setVolume = (percent: number) => volumeRef.current?.setVolume(percent / 100);\n\n const { state, input, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } =\n useSlider<VolumeSliderCore.State>({\n computeState: (input) => {\n core.setInput(input);\n core.setMedia(volume ?? noopVolume);\n return core.getState();\n },\n getPercent,\n getStepPercent,\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled: isDisabled,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getSliderCSSVars,\n onValueChange: setVolume,\n onValueCommit: setVolume,\n onDragStart,\n onDragEnd,\n });\n\n const [wheelHandler] = useState(() =>\n createWheelStep({\n isDisabled: () => disabledRef.current,\n getPercent: () => (volumeRef.current?.volume ?? 0) * 100,\n getStepPercent: () => core.getWheelStepPercent(),\n onValueChange: (percent) => volumeRef.current?.setVolume(percent / 100),\n })\n );\n\n // Attach non-passive wheel listener via callback ref so it covers\n // late-mounted elements (null → mounted after volume appears).\n const wheelCleanupRef = useRef<(() => void) | null>(null);\n const wheelRef = useCallback(\n (element: HTMLDivElement | null) => {\n wheelCleanupRef.current?.();\n wheelCleanupRef.current = null;\n if (element) {\n wheelCleanupRef.current = listen(element, 'wheel', wheelHandler.onWheel, { passive: false });\n }\n },\n [wheelHandler]\n );\n\n if (!volume) {\n if (__DEV__) logMissingFeature('VolumeSlider', 'volume');\n return null;\n }\n\n if (state.hidden) return null;\n\n return (\n <SliderProvider\n value={{\n state,\n pointerValue: core.valueFromPercent(state.pointerPercent),\n input,\n getPointerValue: (percent) => core.valueFromPercent(percent),\n thumbRef,\n thumbProps,\n stateAttrMap: VolumeSliderDataAttrs,\n getAttrs: (sliderState) => {\n const attrs = core.getAttrs(sliderState as VolumeSliderCore.State);\n return {\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator),\n 'aria-valuetext': translateText(\n attrs['aria-valuetext'],\n translator,\n core.getValueTextParams(sliderState as VolumeSliderCore.State)\n ),\n };\n },\n formatValue: (value) => `${Math.round(value)}%`,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: VolumeSliderDataAttrs,\n ref: [forwardedRef, rootRef, wheelRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n }\n);\n\nexport namespace VolumeSliderRoot {\n export type Props = VolumeSliderRootProps;\n export type State = VolumeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,aAAa;CACjB,QAAQ;CACR,OAAO;CACP,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;AACrB;AAOA,MAAa,mBAAmB,WAC9B,SAAS,iBAAiB,gBAAgB,cAAc;CACtD,MAAM,EACJ,QACA,WACA,OACA,OACA,aACA,OAAO,iBAAiB,aAAa,MACrC,YAAY,iBAAiB,aAAa,WAC1C,YAAY,iBAAiB,aAAa,WAC1C,UACA,gBACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,SAAS,UAAU,YAAY;CACrC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CACzB,MAAM,gBAAgB,QAAQ,uBAAuB;CACrD,MAAM,aAAa,QAAQ,QAAQ,KAAK;CAExC,MAAM,CAAC,QAAQ,eAAe,IAAI,iBAAiB,CAAC;CACpD,KAAK,SAAS;EAAE;EAAO;EAAa;EAAM;EAAW;EAAW;EAAU;CAAe,CAAC;CAC1F,KAAK,gBAAgB,MAAM;CAG3B,MAAM,YAAY,aAAa,MAAM;CACrC,MAAM,cAAc,aAAa,UAAU;CAE3C,MAAM,oBAAoB,UAAU,SAAS,UAAU,KAAK;CAC5D,MAAM,uBAAuB,KAAK,eAAe;CACjD,MAAM,aAAa,YAAoB,UAAU,SAAS,UAAU,UAAU,GAAG;CAEjF,MAAM,EAAE,OAAO,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eACtE,UAAkC;EAChC,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,KAAK,SAAS,UAAU,UAAU;GAClC,OAAO,KAAK,SAAS;EACvB;EACA;EACA;EACA,2BAA2B,KAAK,oBAAoB;EACpD;EACA,UAAU;EACV,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,eAAe;EACf,eAAe;EACf;EACA;CACF,CAAC;CAEH,MAAM,CAAC,gBAAgB,eACrB,gBAAgB;EACd,kBAAkB,YAAY;EAC9B,mBAAmB,UAAU,SAAS,UAAU,KAAK;EACrD,sBAAsB,KAAK,oBAAoB;EAC/C,gBAAgB,YAAY,UAAU,SAAS,UAAU,UAAU,GAAG;CACxE,CAAC,CACH;CAIA,MAAM,kBAAkB,OAA4B,IAAI;CACxD,MAAM,WAAW,aACd,YAAmC;EAClC,gBAAgB,UAAU;EAC1B,gBAAgB,UAAU;EAC1B,IAAI,SACF,gBAAgB,UAAU,OAAO,SAAS,SAAS,aAAa,SAAS,EAAE,SAAS,MAAM,CAAC;CAE/F,GACA,CAAC,YAAY,CACf;CAEA,IAAI,CAAC,QAEH,OAAO;CAGT,IAAI,MAAM,QAAQ,OAAO;CAEzB,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,cAAc;GACxD;GACA,kBAAkB,YAAY,KAAK,iBAAiB,OAAO;GAC3D;GACA;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAqC;IACjE,OAAO;KACL,GAAG;KACH,cAAc,cAAc,MAAM,eAAe,UAAU;KAC3D,kBAAkB,cAChB,MAAM,mBACN,YACA,KAAK,mBAAmB,WAAqC,CAC/D;IACF;GACF;GACA,cAAc,UAAU,GAAG,KAAK,MAAM,KAAK,EAAE;EAC/C;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK;IAAC;IAAc;IAAS;GAAQ;GACrC,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CACF"}
1
+ {"version":3,"file":"volume-slider-root.js","names":[],"sources":["../../../../src/ui/volume-slider/volume-slider-root.tsx"],"sourcesContent":["import { VolumeSliderCore, VolumeSliderDataAttrs } from '@videojs/core';\nimport { createWheelStep, getSliderCSSVars, logMissingFeature, selectVolume } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { listen } from '@videojs/utils/dom';\nimport { forwardRef, useCallback, useRef, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopVolume = {\n volume: 0,\n muted: false,\n volumeAvailability: 'unsupported' as const,\n mutedAvailability: 'unsupported' as const,\n setVolume: () => 0,\n toggleMuted: () => false,\n};\n\nexport interface VolumeSliderRootProps extends UIComponentProps<'div', VolumeSliderCore.State>, VolumeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const VolumeSliderRoot = forwardRef<HTMLDivElement, VolumeSliderRootProps>(\n function VolumeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n orientation,\n step = VolumeSliderCore.defaultProps.step,\n largeStep = VolumeSliderCore.defaultProps.largeStep,\n wheelStep = VolumeSliderCore.defaultProps.wheelStep,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const volume = usePlayer(selectVolume);\n const translator = useTranslator();\n const locale = useLocale();\n\n const isUnavailable = volume?.volumeAvailability !== 'available';\n const isDisabled = Boolean(disabled) || isUnavailable;\n\n const [core] = useState(() => new VolumeSliderCore());\n\n core.setProps({ label, orientation, step, largeStep, wheelStep, disabled, thumbAlignment });\n core.setFormatLocale(locale);\n\n // Keep refs to the latest dynamic values for stable closures.\n const volumeRef = useLatestRef(volume);\n const disabledRef = useLatestRef(isDisabled);\n\n const getPercent = () => (volumeRef.current?.volume ?? 0) * 100;\n const getStepPercent = () => core.getStepPercent();\n const setVolume = (percent: number) => volumeRef.current?.setVolume(percent / 100);\n\n const { state, input, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } =\n useSlider<VolumeSliderCore.State>({\n computeState: (input) => {\n core.setInput(input);\n core.setMedia(volume ?? noopVolume);\n return core.getState();\n },\n getPercent,\n getStepPercent,\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled: isDisabled,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getSliderCSSVars,\n onValueChange: setVolume,\n onValueCommit: setVolume,\n onDragStart,\n onDragEnd,\n });\n\n const [wheelHandler] = useState(() =>\n createWheelStep({\n isDisabled: () => disabledRef.current,\n getPercent: () => (volumeRef.current?.volume ?? 0) * 100,\n getStepPercent: () => core.getWheelStepPercent(),\n onValueChange: (percent) => volumeRef.current?.setVolume(percent / 100),\n })\n );\n\n // Attach non-passive wheel listener via callback ref so it covers\n // late-mounted elements (null → mounted after volume appears).\n const wheelCleanupRef = useRef<(() => void) | null>(null);\n const wheelRef = useCallback(\n (element: HTMLDivElement | null) => {\n wheelCleanupRef.current?.();\n wheelCleanupRef.current = null;\n\n if (element) {\n wheelCleanupRef.current = listen(element, 'wheel', wheelHandler.onWheel, { passive: false });\n }\n },\n [wheelHandler]\n );\n\n if (!volume) {\n if (__DEV__) logMissingFeature('VolumeSlider', 'volume');\n\n return null;\n }\n\n if (state.hidden) return null;\n\n return (\n <SliderProvider\n value={{\n state,\n pointerValue: core.valueFromPercent(state.pointerPercent),\n input,\n getPointerValue: (percent) => core.valueFromPercent(percent),\n thumbRef,\n thumbProps,\n stateAttrMap: VolumeSliderDataAttrs,\n getAttrs: (sliderState) => {\n const attrs = core.getAttrs(sliderState as VolumeSliderCore.State);\n\n return {\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator),\n 'aria-valuetext': translateText(\n attrs['aria-valuetext'],\n translator,\n core.getValueTextParams(sliderState as VolumeSliderCore.State)\n ),\n };\n },\n formatValue: (value) => `${Math.round(value)}%`,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: VolumeSliderDataAttrs,\n ref: [forwardedRef, rootRef, wheelRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n }\n);\n\nexport namespace VolumeSliderRoot {\n export type Props = VolumeSliderRootProps;\n export type State = VolumeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,aAAa;CACjB,QAAQ;CACR,OAAO;CACP,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;AACrB;AAOA,MAAa,mBAAmB,WAC9B,SAAS,iBAAiB,gBAAgB,cAAc;CACtD,MAAM,EACJ,QACA,WACA,OACA,OACA,aACA,OAAO,iBAAiB,aAAa,MACrC,YAAY,iBAAiB,aAAa,WAC1C,YAAY,iBAAiB,aAAa,WAC1C,UACA,gBACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,SAAS,UAAU,YAAY;CACrC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,gBAAgB,QAAQ,uBAAuB;CACrD,MAAM,aAAa,QAAQ,QAAQ,KAAK;CAExC,MAAM,CAAC,QAAQ,eAAe,IAAI,iBAAiB,CAAC;CAEpD,KAAK,SAAS;EAAE;EAAO;EAAa;EAAM;EAAW;EAAW;EAAU;CAAe,CAAC;CAC1F,KAAK,gBAAgB,MAAM;CAG3B,MAAM,YAAY,aAAa,MAAM;CACrC,MAAM,cAAc,aAAa,UAAU;CAE3C,MAAM,oBAAoB,UAAU,SAAS,UAAU,KAAK;CAC5D,MAAM,uBAAuB,KAAK,eAAe;CACjD,MAAM,aAAa,YAAoB,UAAU,SAAS,UAAU,UAAU,GAAG;CAEjF,MAAM,EAAE,OAAO,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eACtE,UAAkC;EAChC,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,KAAK,SAAS,UAAU,UAAU;GAClC,OAAO,KAAK,SAAS;EACvB;EACA;EACA;EACA,2BAA2B,KAAK,oBAAoB;EACpD;EACA,UAAU;EACV,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,eAAe;EACf,eAAe;EACf;EACA;CACF,CAAC;CAEH,MAAM,CAAC,gBAAgB,eACrB,gBAAgB;EACd,kBAAkB,YAAY;EAC9B,mBAAmB,UAAU,SAAS,UAAU,KAAK;EACrD,sBAAsB,KAAK,oBAAoB;EAC/C,gBAAgB,YAAY,UAAU,SAAS,UAAU,UAAU,GAAG;CACxE,CAAC,CACH;CAIA,MAAM,kBAAkB,OAA4B,IAAI;CACxD,MAAM,WAAW,aACd,YAAmC;EAClC,gBAAgB,UAAU;EAC1B,gBAAgB,UAAU;EAE1B,IAAI,SACF,gBAAgB,UAAU,OAAO,SAAS,SAAS,aAAa,SAAS,EAAE,SAAS,MAAM,CAAC;CAE/F,GACA,CAAC,YAAY,CACf;CAEA,IAAI,CAAC,QAGH,OAAO;CAGT,IAAI,MAAM,QAAQ,OAAO;CAEzB,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,cAAc;GACxD;GACA,kBAAkB,YAAY,KAAK,iBAAiB,OAAO;GAC3D;GACA;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAqC;IAEjE,OAAO;KACL,GAAG;KACH,cAAc,cAAc,MAAM,eAAe,UAAU;KAC3D,kBAAkB,cAChB,MAAM,mBACN,YACA,KAAK,mBAAmB,WAAqC,CAC/D;IACF;GACF;GACA,cAAc,UAAU,GAAG,KAAK,MAAM,KAAK,EAAE;EAC/C;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK;IAAC;IAAc;IAAS;GAAQ;GACrC,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CACF"}
@@ -1,19 +1,13 @@
1
1
  //#region src/utils/merge-props.ts
2
- /**
3
- * Check if a key is an event handler key (on* with capital letter).
4
- */
2
+ /** Check if a key is an event handler key (on* with capital letter). */
5
3
  function isEventHandlerKey(key) {
6
4
  return key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && key.charCodeAt(2) >= 65 && key.charCodeAt(2) <= 90;
7
5
  }
8
- /**
9
- * Check if a key/value pair is an event handler (includes undefined values).
10
- */
6
+ /** Check if a key/value pair is an event handler (includes undefined values). */
11
7
  function isEventHandler(key, value) {
12
8
  return isEventHandlerKey(key) && (typeof value === "function" || typeof value === "undefined");
13
9
  }
14
- /**
15
- * Merge two event handlers - external runs first, ours runs second.
16
- */
10
+ /** Merge two event handlers - external runs first, ours runs second. */
17
11
  function mergeEventHandlers(ours, theirs) {
18
12
  if (!theirs) return ours;
19
13
  if (!ours) return theirs;
@@ -22,16 +16,12 @@ function mergeEventHandlers(ours, theirs) {
22
16
  ours(event);
23
17
  };
24
18
  }
25
- /**
26
- * Merge two className values - concatenate strings.
27
- */
19
+ /** Merge two className values - concatenate strings. */
28
20
  function mergeClassNames(ours, theirs) {
29
21
  if (theirs && ours) return `${theirs} ${ours}`;
30
22
  return theirs || ours;
31
23
  }
32
- /**
33
- * Merge two style objects - theirs overwrites conflicts.
34
- */
24
+ /** Merge two style objects - theirs overwrites conflicts. */
35
25
  function mergeStyles(ours, theirs) {
36
26
  if (!theirs) return ours;
37
27
  if (!ours) return theirs;
@@ -40,9 +30,7 @@ function mergeStyles(ours, theirs) {
40
30
  ...theirs
41
31
  };
42
32
  }
43
- /**
44
- * Merge a single props object into accumulated result.
45
- */
33
+ /** Merge a single props object into accumulated result. */
46
34
  function mergeOne(merged, props) {
47
35
  if (!props) return merged;
48
36
  for (const key in props) {
@@ -57,20 +45,22 @@ function mergeOne(merged, props) {
57
45
  /**
58
46
  * Merge multiple props objects.
59
47
  *
60
- * - Event handlers (on*): chained - external first, ours second
61
- * - className: concatenated
62
- * - style: merged objects (external wins conflicts)
63
- * - other: last one wins
48
+ * - Event handlers (`on*`): chained right to left
49
+ * - `className`: concatenated right to left
50
+ * - `style`: merged with rightmost values winning conflicts
51
+ * - Other props: rightmost value wins
64
52
  *
65
- * @public
66
53
  * @example
67
- * ```ts
68
- * const merged = mergeProps(
69
- * { onClick: ourHandler, className: 'base' },
70
- * { onClick: theirHandler, className: 'custom' }
71
- * );
72
- * // { onClick: chainedHandler, className: 'custom base' }
73
- * ```
54
+ * ```ts
55
+ * const merged = mergeProps(
56
+ * { onClick: ourHandler, className: 'base' },
57
+ * { onClick: theirHandler, className: 'custom' }
58
+ * );
59
+ * // { onClick: chainedHandler, className: 'custom base' }
60
+ * ```;
61
+ *
62
+ * @param propSets - Props objects to merge in order.
63
+ * @public
74
64
  */
75
65
  function mergeProps(...propSets) {
76
66
  let merged = {};
@@ -1 +1 @@
1
- {"version":3,"file":"merge-props.js","names":[],"sources":["../../../src/utils/merge-props.ts"],"sourcesContent":["import type { ComponentPropsWithRef, CSSProperties, ElementType, SyntheticEvent } from 'react';\n\ntype Props<T extends ElementType = ElementType> = ComponentPropsWithRef<T>;\n\n/**\n * Check if a key is an event handler key (on* with capital letter).\n */\nfunction isEventHandlerKey(key: string): boolean {\n return (\n key.charCodeAt(0) === 111 /* o */ &&\n key.charCodeAt(1) === 110 /* n */ &&\n key.charCodeAt(2) >= 65 /* A */ &&\n key.charCodeAt(2) <= 90 /* Z */\n );\n}\n\n/**\n * Check if a key/value pair is an event handler (includes undefined values).\n */\nfunction isEventHandler(key: string, value: unknown): boolean {\n return isEventHandlerKey(key) && (typeof value === 'function' || typeof value === 'undefined');\n}\n\n/**\n * Merge two event handlers - external runs first, ours runs second.\n */\nfunction mergeEventHandlers(\n ours: ((event: SyntheticEvent) => void) | undefined,\n theirs: ((event: SyntheticEvent) => void) | undefined\n): ((event: SyntheticEvent) => void) | undefined {\n if (!theirs) return ours;\n if (!ours) return theirs;\n\n return (event: SyntheticEvent) => {\n theirs(event);\n ours(event);\n };\n}\n\n/**\n * Merge two className values - concatenate strings.\n */\nfunction mergeClassNames(ours: string | undefined, theirs: string | undefined): string | undefined {\n if (theirs && ours) return `${theirs} ${ours}`;\n return theirs || ours;\n}\n\n/**\n * Merge two style objects - theirs overwrites conflicts.\n */\nfunction mergeStyles(ours: CSSProperties | undefined, theirs: CSSProperties | undefined): CSSProperties | undefined {\n if (!theirs) return ours;\n if (!ours) return theirs;\n return { ...ours, ...theirs };\n}\n\n/**\n * Merge a single props object into accumulated result.\n */\nfunction mergeOne<T extends ElementType>(\n merged: Record<string, unknown>,\n props: Props<T> | undefined\n): Record<string, unknown> {\n if (!props) return merged;\n\n for (const key in props) {\n const value = props[key as keyof typeof props];\n\n if (key === 'className') {\n merged.className = mergeClassNames(merged.className as string | undefined, value as string);\n } else if (key === 'style') {\n merged.style = mergeStyles(merged.style as CSSProperties | undefined, value as CSSProperties);\n } else if (isEventHandler(key, value)) {\n merged[key] = mergeEventHandlers(\n merged[key] as ((event: SyntheticEvent) => void) | undefined,\n value as (event: SyntheticEvent) => void\n );\n } else {\n merged[key] = value;\n }\n }\n\n return merged;\n}\n\n/**\n * Merge multiple props objects.\n *\n * - Event handlers (on*): chained - external first, ours second\n * - className: concatenated\n * - style: merged objects (external wins conflicts)\n * - other: last one wins\n *\n * @public\n * @example\n * ```ts\n * const merged = mergeProps(\n * { onClick: ourHandler, className: 'base' },\n * { onClick: theirHandler, className: 'custom' }\n * );\n * // { onClick: chainedHandler, className: 'custom base' }\n * ```\n */\nexport function mergeProps<T extends ElementType>(...propSets: (Props<T> | undefined)[]): Props<T> {\n let merged: Record<string, unknown> = {};\n\n for (const props of propSets) {\n merged = mergeOne(merged, props);\n }\n\n return merged as Props<T>;\n}\n"],"mappings":";;;;AAOA,SAAS,kBAAkB,KAAsB;CAC/C,OACE,IAAI,WAAW,CAAC,MAAM,OACtB,IAAI,WAAW,CAAC,MAAM,OACtB,IAAI,WAAW,CAAC,KAAK,MACrB,IAAI,WAAW,CAAC,KAAK;AAEzB;;;;AAKA,SAAS,eAAe,KAAa,OAAyB;CAC5D,OAAO,kBAAkB,GAAG,MAAM,OAAO,UAAU,cAAc,OAAO,UAAU;AACpF;;;;AAKA,SAAS,mBACP,MACA,QAC+C;CAC/C,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,CAAC,MAAM,OAAO;CAElB,QAAQ,UAA0B;EAChC,OAAO,KAAK;EACZ,KAAK,KAAK;CACZ;AACF;;;;AAKA,SAAS,gBAAgB,MAA0B,QAAgD;CACjG,IAAI,UAAU,MAAM,OAAO,GAAG,OAAO,GAAG;CACxC,OAAO,UAAU;AACnB;;;;AAKA,SAAS,YAAY,MAAiC,QAA8D;CAClH,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,CAAC,MAAM,OAAO;CAClB,OAAO;EAAE,GAAG;EAAM,GAAG;CAAO;AAC9B;;;;AAKA,SAAS,SACP,QACA,OACyB;CACzB,IAAI,CAAC,OAAO,OAAO;CAEnB,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,QAAQ,MAAM;EAEpB,IAAI,QAAQ,aACV,OAAO,YAAY,gBAAgB,OAAO,WAAiC,KAAe;OACrF,IAAI,QAAQ,SACjB,OAAO,QAAQ,YAAY,OAAO,OAAoC,KAAsB;OACvF,IAAI,eAAe,KAAK,KAAK,GAClC,OAAO,OAAO,mBACZ,OAAO,MACP,KACF;OAEA,OAAO,OAAO;CAElB;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;AAoBA,SAAgB,WAAkC,GAAG,UAA8C;CACjG,IAAI,SAAkC,CAAC;CAEvC,KAAK,MAAM,SAAS,UAClB,SAAS,SAAS,QAAQ,KAAK;CAGjC,OAAO;AACT"}
1
+ {"version":3,"file":"merge-props.js","names":[],"sources":["../../../src/utils/merge-props.ts"],"sourcesContent":["import type { ComponentPropsWithRef, CSSProperties, ElementType, SyntheticEvent } from 'react';\n\ntype Props<T extends ElementType = ElementType> = ComponentPropsWithRef<T>;\n\n/** Check if a key is an event handler key (on* with capital letter). */\nfunction isEventHandlerKey(key: string): boolean {\n return (\n key.charCodeAt(0) === 111 /* o */ &&\n key.charCodeAt(1) === 110 /* n */ &&\n key.charCodeAt(2) >= 65 /* A */ &&\n key.charCodeAt(2) <= 90 /* Z */\n );\n}\n\n/** Check if a key/value pair is an event handler (includes undefined values). */\nfunction isEventHandler(key: string, value: unknown): boolean {\n return isEventHandlerKey(key) && (typeof value === 'function' || typeof value === 'undefined');\n}\n\n/** Merge two event handlers - external runs first, ours runs second. */\nfunction mergeEventHandlers(\n ours: ((event: SyntheticEvent) => void) | undefined,\n theirs: ((event: SyntheticEvent) => void) | undefined\n): ((event: SyntheticEvent) => void) | undefined {\n if (!theirs) return ours;\n\n if (!ours) return theirs;\n\n return (event: SyntheticEvent) => {\n theirs(event);\n ours(event);\n };\n}\n\n/** Merge two className values - concatenate strings. */\nfunction mergeClassNames(ours: string | undefined, theirs: string | undefined): string | undefined {\n if (theirs && ours) return `${theirs} ${ours}`;\n\n return theirs || ours;\n}\n\n/** Merge two style objects - theirs overwrites conflicts. */\nfunction mergeStyles(ours: CSSProperties | undefined, theirs: CSSProperties | undefined): CSSProperties | undefined {\n if (!theirs) return ours;\n\n if (!ours) return theirs;\n\n return { ...ours, ...theirs };\n}\n\n/** Merge a single props object into accumulated result. */\nfunction mergeOne<T extends ElementType>(\n merged: Record<string, unknown>,\n props: Props<T> | undefined\n): Record<string, unknown> {\n if (!props) return merged;\n\n for (const key in props) {\n const value = props[key as keyof typeof props];\n\n if (key === 'className') {\n merged.className = mergeClassNames(merged.className as string | undefined, value as string);\n } else if (key === 'style') {\n merged.style = mergeStyles(merged.style as CSSProperties | undefined, value as CSSProperties);\n } else if (isEventHandler(key, value)) {\n merged[key] = mergeEventHandlers(\n merged[key] as ((event: SyntheticEvent) => void) | undefined,\n value as (event: SyntheticEvent) => void\n );\n } else {\n merged[key] = value;\n }\n }\n\n return merged;\n}\n\n/**\n * Merge multiple props objects.\n *\n * - Event handlers (`on*`): chained right to left\n * - `className`: concatenated right to left\n * - `style`: merged with rightmost values winning conflicts\n * - Other props: rightmost value wins\n *\n * @example\n * ```ts\n * const merged = mergeProps(\n * { onClick: ourHandler, className: 'base' },\n * { onClick: theirHandler, className: 'custom' }\n * );\n * // { onClick: chainedHandler, className: 'custom base' }\n * ```;\n *\n * @param propSets - Props objects to merge in order.\n * @public\n */\nexport function mergeProps<T extends ElementType>(...propSets: (Props<T> | undefined)[]): Props<T> {\n let merged: Record<string, unknown> = {};\n\n for (const props of propSets) {\n merged = mergeOne(merged, props);\n }\n\n return merged as Props<T>;\n}\n"],"mappings":";;AAKA,SAAS,kBAAkB,KAAsB;CAC/C,OACE,IAAI,WAAW,CAAC,MAAM,OACtB,IAAI,WAAW,CAAC,MAAM,OACtB,IAAI,WAAW,CAAC,KAAK,MACrB,IAAI,WAAW,CAAC,KAAK;AAEzB;;AAGA,SAAS,eAAe,KAAa,OAAyB;CAC5D,OAAO,kBAAkB,GAAG,MAAM,OAAO,UAAU,cAAc,OAAO,UAAU;AACpF;;AAGA,SAAS,mBACP,MACA,QAC+C;CAC/C,IAAI,CAAC,QAAQ,OAAO;CAEpB,IAAI,CAAC,MAAM,OAAO;CAElB,QAAQ,UAA0B;EAChC,OAAO,KAAK;EACZ,KAAK,KAAK;CACZ;AACF;;AAGA,SAAS,gBAAgB,MAA0B,QAAgD;CACjG,IAAI,UAAU,MAAM,OAAO,GAAG,OAAO,GAAG;CAExC,OAAO,UAAU;AACnB;;AAGA,SAAS,YAAY,MAAiC,QAA8D;CAClH,IAAI,CAAC,QAAQ,OAAO;CAEpB,IAAI,CAAC,MAAM,OAAO;CAElB,OAAO;EAAE,GAAG;EAAM,GAAG;CAAO;AAC9B;;AAGA,SAAS,SACP,QACA,OACyB;CACzB,IAAI,CAAC,OAAO,OAAO;CAEnB,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,QAAQ,MAAM;EAEpB,IAAI,QAAQ,aACV,OAAO,YAAY,gBAAgB,OAAO,WAAiC,KAAe;OACrF,IAAI,QAAQ,SACjB,OAAO,QAAQ,YAAY,OAAO,OAAoC,KAAsB;OACvF,IAAI,eAAe,KAAK,KAAK,GAClC,OAAO,OAAO,mBACZ,OAAO,MACP,KACF;OAEA,OAAO,OAAO;CAElB;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;AAsBA,SAAgB,WAAkC,GAAG,UAA8C;CACjG,IAAI,SAAkC,CAAC;CAEvC,KAAK,MAAM,SAAS,UAClB,SAAS,SAAS,QAAQ,KAAK;CAGjC,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-attach-iframe.js","names":[],"sources":["../../../src/utils/use-attach-iframe.ts"],"sourcesContent":["import type { MediaEngineHost } from '@videojs/media';\nimport type { RefCallback } from 'react';\nimport { useCallback } from 'react';\n\nexport function useAttachIframe<T extends HTMLIFrameElement>(media: MediaEngineHost): RefCallback<T> {\n return useCallback(\n (element: T | null) => {\n if (element) media.attach?.(element);\n else media.detach?.();\n return () => media.detach?.();\n },\n [media]\n );\n}\n"],"mappings":";;AAIA,SAAgB,gBAA6C,OAAwC;CACnG,OAAO,aACJ,YAAsB;EACrB,IAAI,SAAS,MAAM,SAAS,OAAO;OAC9B,MAAM,SAAS;EACpB,aAAa,MAAM,SAAS;CAC9B,GACA,CAAC,KAAK,CACR;AACF"}
1
+ {"version":3,"file":"use-attach-iframe.js","names":[],"sources":["../../../src/utils/use-attach-iframe.ts"],"sourcesContent":["import type { MediaEngineHost } from '@videojs/media';\nimport type { RefCallback } from 'react';\nimport { useCallback } from 'react';\n\nexport function useAttachIframe<T extends HTMLIFrameElement>(media: MediaEngineHost): RefCallback<T> {\n return useCallback(\n (element: T | null) => {\n if (element) media.attach?.(element);\n else media.detach?.();\n\n return () => media.detach?.();\n },\n [media]\n );\n}\n"],"mappings":";;AAIA,SAAgB,gBAA6C,OAAwC;CACnG,OAAO,aACJ,YAAsB;EACrB,IAAI,SAAS,MAAM,SAAS,OAAO;OAC9B,MAAM,SAAS;EAEpB,aAAa,MAAM,SAAS;CAC9B,GACA,CAAC,KAAK,CACR;AACF"}
@@ -1,5 +1,10 @@
1
1
  import { useCallback } from "react";
2
2
  //#region src/utils/use-attach-media.ts
3
+ /**
4
+ * Returns a callback ref that attaches an HTML media element to a media engine host and detaches it during cleanup.
5
+ *
6
+ * @param media - Media engine host to attach and detach.
7
+ */
3
8
  function useAttachMedia(media) {
4
9
  return useCallback((element) => {
5
10
  if (element) media.attach?.(element);
@@ -1 +1 @@
1
- {"version":3,"file":"use-attach-media.js","names":[],"sources":["../../../src/utils/use-attach-media.ts"],"sourcesContent":["import type { MediaEngineHost } from '@videojs/media';\nimport type { RefCallback } from 'react';\nimport { useCallback } from 'react';\n\nexport function useAttachMedia<T extends HTMLMediaElement>(media: MediaEngineHost): RefCallback<T> {\n return useCallback(\n (element: T | null) => {\n if (element) media.attach?.(element);\n else media.detach?.();\n return () => media.detach?.();\n },\n [media]\n );\n}\n"],"mappings":";;AAIA,SAAgB,eAA2C,OAAwC;CACjG,OAAO,aACJ,YAAsB;EACrB,IAAI,SAAS,MAAM,SAAS,OAAO;OAC9B,MAAM,SAAS;EACpB,aAAa,MAAM,SAAS;CAC9B,GACA,CAAC,KAAK,CACR;AACF"}
1
+ {"version":3,"file":"use-attach-media.js","names":[],"sources":["../../../src/utils/use-attach-media.ts"],"sourcesContent":["import type { MediaEngineHost } from '@videojs/media';\nimport type { RefCallback } from 'react';\nimport { useCallback } from 'react';\n\n/**\n * Returns a callback ref that attaches an HTML media element to a media engine host and detaches it during cleanup.\n *\n * @param media - Media engine host to attach and detach.\n */\nexport function useAttachMedia<T extends HTMLMediaElement>(media: MediaEngineHost): RefCallback<T> {\n return useCallback(\n (element: T | null) => {\n if (element) media.attach?.(element);\n else media.detach?.();\n\n return () => media.detach?.();\n },\n [media]\n );\n}\n"],"mappings":";;;;;;;AASA,SAAgB,eAA2C,OAAwC;CACjG,OAAO,aACJ,YAAsB;EACrB,IAAI,SAAS,MAAM,SAAS,OAAO;OAC9B,MAAM,SAAS;EAEpB,aAAa,MAAM,SAAS;CAC9B,GACA,CAAC,KAAK,CACR;AACF"}
@@ -16,10 +16,10 @@ function setRef(ref, value) {
16
16
  * Compose multiple refs into a single callback ref.
17
17
  *
18
18
  * @example
19
- * ```tsx
20
- * const composedRef = composeRefs(ref1, ref2, ref3);
21
- * return <div ref={composedRef} />;
22
- * ```
19
+ * ```tsx
20
+ * const composedRef = composeRefs(ref1, ref2, ref3);
21
+ * return <div ref={composedRef} />;
22
+ * ```;
23
23
  */
24
24
  function composeRefs(...refs) {
25
25
  const flatRefs = refs.flat();
@@ -40,10 +40,12 @@ function composeRefs(...refs) {
40
40
  * Memoized for stable reference.
41
41
  *
42
42
  * @example
43
- * ```tsx
44
- * const composedRef = useComposedRefs(forwardedRef, localRef);
45
- * return <div ref={composedRef} />;
46
- * ```
43
+ * ```tsx
44
+ * const composedRef = useComposedRefs(forwardedRef, localRef);
45
+ * return <div ref={composedRef} />;
46
+ * ```;
47
+ *
48
+ * @param refs - Refs to update from the returned callback.
47
49
  */
48
50
  function useComposedRefs(...refs) {
49
51
  return useCallback(composeRefs(...refs), [...refs]);
@@ -1 +1 @@
1
- {"version":3,"file":"use-composed-refs.js","names":[],"sources":["../../../src/utils/use-composed-refs.ts"],"sourcesContent":["import { isFunction } from '@videojs/utils/predicate';\nimport type { Ref, RefCallback } from 'react';\n\nimport { useCallback } from 'react';\n\ntype OptionalRef<T> = Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value.\n *\n * Handles both callback refs and RefObject(s).\n *\n * @returns Cleanup function if the ref callback returned one (React 19+)\n */\nfunction setRef<T>(ref: OptionalRef<T>, value: T): (() => void) | void | undefined {\n if (isFunction(ref)) {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * Compose multiple refs into a single callback ref.\n *\n * @example\n * ```tsx\n * const composedRef = composeRefs(ref1, ref2, ref3);\n * return <div ref={composedRef} />;\n * ```\n */\nexport function composeRefs<T>(...refs: (OptionalRef<T> | OptionalRef<T>[])[]): RefCallback<T> {\n const flatRefs = refs.flat();\n\n return (node): (() => void) | void => {\n const cleanups = flatRefs.map((ref) => setRef(ref, node));\n\n // Only return cleanup if any refs returned one (React 19+).\n // React 18 handles cleanup by calling the ref callback with null.\n if (cleanups.some(isFunction)) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (isFunction(cleanup)) {\n cleanup();\n } else {\n setRef(flatRefs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * Hook that composes multiple refs into a single callback ref.\n *\n * Memoized for stable reference.\n *\n * @example\n * ```tsx\n * const composedRef = useComposedRefs(forwardedRef, localRef);\n * return <div ref={composedRef} />;\n * ```\n */\nexport function useComposedRefs<T>(...refs: OptionalRef<T>[]): RefCallback<T> {\n return useCallback(composeRefs(...refs), [...refs]);\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAS,OAAU,KAAqB,OAA2C;CACjF,IAAI,WAAW,GAAG,GAChB,OAAO,IAAI,KAAK;MACX,IAAI,QAAQ,QAAQ,QAAQ,KAAA,GACjC,IAAI,UAAU;AAElB;;;;;;;;;;AAWA,SAAgB,YAAe,GAAG,MAA6D;CAC7F,MAAM,WAAW,KAAK,KAAK;CAE3B,QAAQ,SAA8B;EACpC,MAAM,WAAW,SAAS,KAAK,QAAQ,OAAO,KAAK,IAAI,CAAC;EAIxD,IAAI,SAAS,KAAK,UAAU,GAC1B,aAAa;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;IACxC,MAAM,UAAU,SAAS;IACzB,IAAI,WAAW,OAAO,GACpB,QAAQ;SAER,OAAO,SAAS,IAAI,IAAI;GAE5B;EACF;CAEJ;AACF;;;;;;;;;;;;AAaA,SAAgB,gBAAmB,GAAG,MAAwC;CAC5E,OAAO,YAAY,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACpD"}
1
+ {"version":3,"file":"use-composed-refs.js","names":[],"sources":["../../../src/utils/use-composed-refs.ts"],"sourcesContent":["import { isFunction } from '@videojs/utils/predicate';\nimport type { Ref, RefCallback } from 'react';\nimport { useCallback } from 'react';\n\ntype OptionalRef<T> = Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value.\n *\n * Handles both callback refs and RefObject(s).\n *\n * @returns Cleanup function if the ref callback returned one (React 19+)\n */\nfunction setRef<T>(ref: OptionalRef<T>, value: T): (() => void) | void | undefined {\n if (isFunction(ref)) {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * Compose multiple refs into a single callback ref.\n *\n * @example\n * ```tsx\n * const composedRef = composeRefs(ref1, ref2, ref3);\n * return <div ref={composedRef} />;\n * ```;\n */\nexport function composeRefs<T>(...refs: (OptionalRef<T> | OptionalRef<T>[])[]): RefCallback<T> {\n const flatRefs = refs.flat();\n\n return (node): (() => void) | void => {\n const cleanups = flatRefs.map((ref) => setRef(ref, node));\n\n // Only return cleanup if any refs returned one (React 19+).\n // React 18 handles cleanup by calling the ref callback with null.\n if (cleanups.some(isFunction)) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n\n if (isFunction(cleanup)) {\n cleanup();\n } else {\n setRef(flatRefs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * Hook that composes multiple refs into a single callback ref.\n *\n * Memoized for stable reference.\n *\n * @example\n * ```tsx\n * const composedRef = useComposedRefs(forwardedRef, localRef);\n * return <div ref={composedRef} />;\n * ```;\n *\n * @param refs - Refs to update from the returned callback.\n */\nexport function useComposedRefs<T>(...refs: OptionalRef<T>[]): RefCallback<T> {\n return useCallback(composeRefs(...refs), [...refs]);\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAS,OAAU,KAAqB,OAA2C;CACjF,IAAI,WAAW,GAAG,GAChB,OAAO,IAAI,KAAK;MACX,IAAI,QAAQ,QAAQ,QAAQ,KAAA,GACjC,IAAI,UAAU;AAElB;;;;;;;;;;AAWA,SAAgB,YAAe,GAAG,MAA6D;CAC7F,MAAM,WAAW,KAAK,KAAK;CAE3B,QAAQ,SAA8B;EACpC,MAAM,WAAW,SAAS,KAAK,QAAQ,OAAO,KAAK,IAAI,CAAC;EAIxD,IAAI,SAAS,KAAK,UAAU,GAC1B,aAAa;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;IACxC,MAAM,UAAU,SAAS;IAEzB,IAAI,WAAW,OAAO,GACpB,QAAQ;SAER,OAAO,SAAS,IAAI,IAAI;GAE5B;EACF;CAEJ;AACF;;;;;;;;;;;;;;AAeA,SAAgB,gBAAmB,GAAG,MAAwC;CAC5E,OAAO,YAAY,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACpD"}
@@ -2,18 +2,16 @@ import { useLatestRef } from "./use-latest-ref.js";
2
2
  import { useEffect, useRef } from "react";
3
3
  //#region src/utils/use-destroy.ts
4
4
  /**
5
- * Destroy an instance on unmount, deferring destruction to survive React
6
- * StrictMode's simulated unmount/re-mount cycle.
5
+ * Destroy an instance on unmount, deferring destruction to survive React StrictMode's simulated unmount/re-mount cycle.
7
6
  *
8
- * StrictMode runs effects, then immediately runs cleanup, then re-runs
9
- * effects — all synchronously. By deferring `destroy()` to a macrotask,
10
- * the re-mount effect can cancel it before it fires.
7
+ * StrictMode runs effects, then immediately runs cleanup, then re-runs effects — all synchronously. By deferring
8
+ * `destroy()` to a macrotask, the re-mount effect can cancel it before it fires.
11
9
  *
12
10
  * @param instance - Object with a `destroy()` method.
13
- * @param setup - Optional setup called on first mount. Skipped on StrictMode
14
- * re-mount since the previous setup was never torn down.
15
- * @param teardown - Optional teardown called right before `destroy()` on real
16
- * unmount. Skipped on StrictMode simulated unmount.
11
+ * @param setup - Optional setup called on first mount. Skipped on StrictMode re-mount since the previous setup was
12
+ * never torn down.
13
+ * @param teardown - Optional teardown called right before `destroy()` on real unmount. Skipped on StrictMode simulated
14
+ * unmount.
17
15
  */
18
16
  function useDestroy(instance, setup, teardown) {
19
17
  const pendingRef = useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"use-destroy.js","names":[],"sources":["../../../src/utils/use-destroy.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { useLatestRef } from './use-latest-ref';\n\ninterface Destroyable {\n destroy(): void;\n}\n\n/**\n * Destroy an instance on unmount, deferring destruction to survive React\n * StrictMode's simulated unmount/re-mount cycle.\n *\n * StrictMode runs effects, then immediately runs cleanup, then re-runs\n * effects — all synchronously. By deferring `destroy()` to a macrotask,\n * the re-mount effect can cancel it before it fires.\n *\n * @param instance - Object with a `destroy()` method.\n * @param setup - Optional setup called on first mount. Skipped on StrictMode\n * re-mount since the previous setup was never torn down.\n * @param teardown - Optional teardown called right before `destroy()` on real\n * unmount. Skipped on StrictMode simulated unmount.\n */\nexport function useDestroy(instance: Destroyable, setup?: () => void, teardown?: () => void): void {\n const pendingRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const setupRef = useLatestRef(setup);\n const teardownRef = useLatestRef(teardown);\n\n useEffect(() => {\n if (pendingRef.current !== null) {\n clearTimeout(pendingRef.current);\n pendingRef.current = null;\n } else {\n setupRef.current?.();\n }\n\n return () => {\n pendingRef.current = setTimeout(() => {\n teardownRef.current?.();\n instance.destroy();\n }, 0);\n };\n }, [instance]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,SAAgB,WAAW,UAAuB,OAAoB,UAA6B;CACjG,MAAM,aAAa,OAA6C,IAAI;CACpE,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,cAAc,aAAa,QAAQ;CAEzC,gBAAgB;EACd,IAAI,WAAW,YAAY,MAAM;GAC/B,aAAa,WAAW,OAAO;GAC/B,WAAW,UAAU;EACvB,OACE,SAAS,UAAU;EAGrB,aAAa;GACX,WAAW,UAAU,iBAAiB;IACpC,YAAY,UAAU;IACtB,SAAS,QAAQ;GACnB,GAAG,CAAC;EACN;CACF,GAAG,CAAC,QAAQ,CAAC;AACf"}
1
+ {"version":3,"file":"use-destroy.js","names":[],"sources":["../../../src/utils/use-destroy.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { useLatestRef } from './use-latest-ref';\n\ninterface Destroyable {\n destroy(): void;\n}\n\n/**\n * Destroy an instance on unmount, deferring destruction to survive React StrictMode's simulated unmount/re-mount cycle.\n *\n * StrictMode runs effects, then immediately runs cleanup, then re-runs effects — all synchronously. By deferring\n * `destroy()` to a macrotask, the re-mount effect can cancel it before it fires.\n *\n * @param instance - Object with a `destroy()` method.\n * @param setup - Optional setup called on first mount. Skipped on StrictMode re-mount since the previous setup was\n * never torn down.\n * @param teardown - Optional teardown called right before `destroy()` on real unmount. Skipped on StrictMode simulated\n * unmount.\n */\nexport function useDestroy(instance: Destroyable, setup?: () => void, teardown?: () => void): void {\n const pendingRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const setupRef = useLatestRef(setup);\n const teardownRef = useLatestRef(teardown);\n\n useEffect(() => {\n if (pendingRef.current !== null) {\n clearTimeout(pendingRef.current);\n pendingRef.current = null;\n } else {\n setupRef.current?.();\n }\n\n return () => {\n pendingRef.current = setTimeout(() => {\n teardownRef.current?.();\n instance.destroy();\n }, 0);\n };\n }, [instance]);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAoBA,SAAgB,WAAW,UAAuB,OAAoB,UAA6B;CACjG,MAAM,aAAa,OAA6C,IAAI;CACpE,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,cAAc,aAAa,QAAQ;CAEzC,gBAAgB;EACd,IAAI,WAAW,YAAY,MAAM;GAC/B,aAAa,WAAW,OAAO;GAC/B,WAAW,UAAU;EACvB,OACE,SAAS,UAAU;EAGrB,aAAa;GACX,WAAW,UAAU,iBAAiB;IACpC,YAAY,UAAU;IACtB,SAAS,QAAQ;GACnB,GAAG,CAAC;EACN;CACF,GAAG,CAAC,QAAQ,CAAC;AACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-force-render.js","names":[],"sources":["../../../src/utils/use-force-render.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nexport function useForceRender() {\n const [, forceRender] = useReducer((c: number) => c + 1, 0);\n return forceRender;\n}\n\nexport namespace useForceRender {\n export type Result = () => void;\n}\n"],"mappings":";;AAEA,SAAgB,iBAAiB;CAC/B,MAAM,GAAG,eAAe,YAAY,MAAc,IAAI,GAAG,CAAC;CAC1D,OAAO;AACT"}
1
+ {"version":3,"file":"use-force-render.js","names":[],"sources":["../../../src/utils/use-force-render.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nexport function useForceRender() {\n const [, forceRender] = useReducer((c: number) => c + 1, 0);\n\n return forceRender;\n}\n\nexport namespace useForceRender {\n export type Result = () => void;\n}\n"],"mappings":";;AAEA,SAAgB,iBAAiB;CAC/B,MAAM,GAAG,eAAe,YAAY,MAAc,IAAI,GAAG,CAAC;CAE1D,OAAO;AACT"}
@@ -3,8 +3,10 @@ import { useRef } from "react";
3
3
  /**
4
4
  * Keep a ref that always points to the latest value.
5
5
  *
6
- * Useful for capturing callbacks or derived values inside closures
7
- * that are created once (e.g. factory callbacks) without stale reads.
6
+ * Useful for capturing callbacks or derived values inside closures that are created once (e.g. factory callbacks)
7
+ * without stale reads.
8
+ *
9
+ * @param value - Value the ref should expose after each render.
8
10
  */
9
11
  function useLatestRef(value) {
10
12
  const ref = useRef(value);
@@ -1 +1 @@
1
- {"version":3,"file":"use-latest-ref.js","names":[],"sources":["../../../src/utils/use-latest-ref.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * Keep a ref that always points to the latest value.\n *\n * Useful for capturing callbacks or derived values inside closures\n * that are created once (e.g. factory callbacks) without stale reads.\n */\nexport function useLatestRef<Value>(value: Value): Readonly<{ current: Value }> {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\n\nexport namespace useLatestRef {\n export type Result<Value> = Readonly<{ current: Value }>;\n}\n"],"mappings":";;;;;;;;AAQA,SAAgB,aAAoB,OAA4C;CAC9E,MAAM,MAAM,OAAO,KAAK;CACxB,IAAI,UAAU;CACd,OAAO;AACT"}
1
+ {"version":3,"file":"use-latest-ref.js","names":[],"sources":["../../../src/utils/use-latest-ref.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * Keep a ref that always points to the latest value.\n *\n * Useful for capturing callbacks or derived values inside closures that are created once (e.g. factory callbacks)\n * without stale reads.\n *\n * @param value - Value the ref should expose after each render.\n */\nexport function useLatestRef<Value>(value: Value): Readonly<{ current: Value }> {\n const ref = useRef(value);\n\n ref.current = value;\n return ref;\n}\n\nexport namespace useLatestRef {\n export type Result<Value> = Readonly<{ current: Value }>;\n}\n"],"mappings":";;;;;;;;;;AAUA,SAAgB,aAAoB,OAA4C;CAC9E,MAAM,MAAM,OAAO,KAAK;CAExB,IAAI,UAAU;CACd,OAAO;AACT"}
@@ -4,13 +4,14 @@ import { useEffect, useState } from "react";
4
4
  import { HTMLMediaElementHost, addMediaComponent } from "@videojs/media/dom/media-host";
5
5
  //#region src/utils/use-media-component.ts
6
6
  /**
7
- * Create a media component (e.g. `GoogleCast`, `MuxData`) and register it
8
- * with the media provided by the surrounding player context.
7
+ * Create a media component (e.g. `GoogleCast`, `MuxData`) and register it with the media provided by the surrounding
8
+ * player context.
9
9
  *
10
- * Instantiates the component class once, registers it when a media host is
11
- * available, follows the media when it changes, and destroys the component
12
- * on unmount. Media that is not a media host (e.g. a plain `<video>`
13
- * element) cannot carry media components and is ignored.
10
+ * Instantiates the component class once, registers it when a media host is available, follows the media when it
11
+ * changes, and destroys the component on unmount. Media that is not a media host (e.g. a plain `<video>` element)
12
+ * cannot carry media components and is ignored.
13
+ *
14
+ * @param ComponentClass - Media component class to instantiate and register.
14
15
  */
15
16
  function useMediaComponent(ComponentClass) {
16
17
  const media = useMedia();
@@ -1 +1 @@
1
- {"version":3,"file":"use-media-component.js","names":[],"sources":["../../../src/utils/use-media-component.ts"],"sourcesContent":["import type { HTMLMediaTargetLike, MediaComponent } from '@videojs/media/dom/media-host';\nimport { addMediaComponent, HTMLMediaElementHost } from '@videojs/media/dom/media-host';\nimport { useEffect, useState } from 'react';\n\nimport { useMedia } from '../player/context';\nimport { useDestroy } from './use-destroy';\n\n/**\n * Create a media component (e.g. `GoogleCast`, `MuxData`) and register it\n * with the media provided by the surrounding player context.\n *\n * Instantiates the component class once, registers it when a media host is\n * available, follows the media when it changes, and destroys the component\n * on unmount. Media that is not a media host (e.g. a plain `<video>`\n * element) cannot carry media components and is ignored.\n */\nexport function useMediaComponent<Component extends MediaComponent & { destroy(): void }>(\n ComponentClass: new () => Component\n): Component {\n const media = useMedia();\n const [component] = useState(() => new ComponentClass());\n\n useDestroy(component);\n\n useEffect(() => {\n if (!(media instanceof HTMLMediaElementHost)) return;\n return addMediaComponent(media as HTMLMediaElementHost<HTMLMediaTargetLike, any>, component);\n }, [media, component]);\n\n return component;\n}\n"],"mappings":";;;;;;;;;;;;;;AAgBA,SAAgB,kBACd,gBACW;CACX,MAAM,QAAQ,SAAS;CACvB,MAAM,CAAC,aAAa,eAAe,IAAI,eAAe,CAAC;CAEvD,WAAW,SAAS;CAEpB,gBAAgB;EACd,IAAI,EAAE,iBAAiB,uBAAuB;EAC9C,OAAO,kBAAkB,OAAyD,SAAS;CAC7F,GAAG,CAAC,OAAO,SAAS,CAAC;CAErB,OAAO;AACT"}
1
+ {"version":3,"file":"use-media-component.js","names":[],"sources":["../../../src/utils/use-media-component.ts"],"sourcesContent":["import type { HTMLMediaTargetLike, MediaComponent } from '@videojs/media/dom/media-host';\nimport { addMediaComponent, HTMLMediaElementHost } from '@videojs/media/dom/media-host';\nimport { useEffect, useState } from 'react';\n\nimport { useMedia } from '../player/context';\nimport { useDestroy } from './use-destroy';\n\n/**\n * Create a media component (e.g. `GoogleCast`, `MuxData`) and register it with the media provided by the surrounding\n * player context.\n *\n * Instantiates the component class once, registers it when a media host is available, follows the media when it\n * changes, and destroys the component on unmount. Media that is not a media host (e.g. a plain `<video>` element)\n * cannot carry media components and is ignored.\n *\n * @param ComponentClass - Media component class to instantiate and register.\n */\nexport function useMediaComponent<Component extends MediaComponent & { destroy(): void }>(\n ComponentClass: new () => Component\n): Component {\n const media = useMedia();\n const [component] = useState(() => new ComponentClass());\n\n useDestroy(component);\n\n useEffect(() => {\n if (!(media instanceof HTMLMediaElementHost)) return;\n\n return addMediaComponent(media as HTMLMediaElementHost<HTMLMediaTargetLike, any>, component);\n }, [media, component]);\n\n return component;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,SAAgB,kBACd,gBACW;CACX,MAAM,QAAQ,SAAS;CACvB,MAAM,CAAC,aAAa,eAAe,IAAI,eAAe,CAAC;CAEvD,WAAW,SAAS;CAEpB,gBAAgB;EACd,IAAI,EAAE,iBAAiB,uBAAuB;EAE9C,OAAO,kBAAkB,OAAyD,SAAS;CAC7F,GAAG,CAAC,OAAO,SAAS,CAAC;CAErB,OAAO;AACT"}
@@ -5,14 +5,15 @@ import { useState } from "react";
5
5
  /**
6
6
  * Create and manage a media instance lifecycle within a player context.
7
7
  *
8
- * Instantiates the media class once, attaches it to the player on mount,
9
- * and safely detaches on unmount using a functional updater to avoid race
10
- * conditions when swapping media components (e.g. DashVideo → HlsJsVideo).
8
+ * Instantiates the media class once, attaches it to the player on mount, and safely detaches on unmount using a
9
+ * functional updater to avoid race conditions when swapping media components (e.g. DashVideo → HlsJsVideo).
11
10
  *
12
- * An optional `setup` callback runs once on mount — e.g. to add media
13
- * components via `addMediaComponent`. Components registered there are destroyed
14
- * together with the media instance on unmount (`media.destroy()` destroys
15
- * all of its registered components).
11
+ * An optional `setup` callback runs once on mount — e.g. to add media components via `addMediaComponent`. Components
12
+ * registered there are destroyed together with the media instance on unmount (`media.destroy()` destroys all of its
13
+ * registered components).
14
+ *
15
+ * @param MediaClass - Media class to instantiate and attach to the current player.
16
+ * @param setup - Optional callback run once before the instance is attached.
16
17
  */
17
18
  function useMediaInstance(MediaClass, setup) {
18
19
  const [instance] = useState(() => new MediaClass());
@@ -1 +1 @@
1
- {"version":3,"file":"use-media-instance.js","names":[],"sources":["../../../src/utils/use-media-instance.ts"],"sourcesContent":["import type { Media } from '@videojs/media';\nimport { useState } from 'react';\n\nimport { useMediaAttach } from '../player/context';\nimport { useDestroy } from './use-destroy';\n\n/**\n * Create and manage a media instance lifecycle within a player context.\n *\n * Instantiates the media class once, attaches it to the player on mount,\n * and safely detaches on unmount using a functional updater to avoid race\n * conditions when swapping media components (e.g. DashVideo → HlsJsVideo).\n *\n * An optional `setup` callback runs once on mount — e.g. to add media\n * components via `addMediaComponent`. Components registered there are destroyed\n * together with the media instance on unmount (`media.destroy()` destroys\n * all of its registered components).\n */\nexport function useMediaInstance<Instance extends Media & { destroy(): void }>(\n MediaClass: new () => Instance,\n setup?: (media: Instance) => void\n): Instance {\n const [instance] = useState(() => new MediaClass());\n const setMedia = useMediaAttach();\n\n useDestroy(\n instance,\n () => {\n setup?.(instance);\n setMedia?.(instance);\n },\n () => setMedia?.((prev) => (prev === instance ? null : prev))\n );\n\n return instance;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkBA,SAAgB,iBACd,YACA,OACU;CACV,MAAM,CAAC,YAAY,eAAe,IAAI,WAAW,CAAC;CAClD,MAAM,WAAW,eAAe;CAEhC,WACE,gBACM;EACJ,QAAQ,QAAQ;EAChB,WAAW,QAAQ;CACrB,SACM,YAAY,SAAU,SAAS,WAAW,OAAO,IAAK,CAC9D;CAEA,OAAO;AACT"}
1
+ {"version":3,"file":"use-media-instance.js","names":[],"sources":["../../../src/utils/use-media-instance.ts"],"sourcesContent":["import type { Media } from '@videojs/media';\nimport { useState } from 'react';\n\nimport { useMediaAttach } from '../player/context';\nimport { useDestroy } from './use-destroy';\n\n/**\n * Create and manage a media instance lifecycle within a player context.\n *\n * Instantiates the media class once, attaches it to the player on mount, and safely detaches on unmount using a\n * functional updater to avoid race conditions when swapping media components (e.g. DashVideo → HlsJsVideo).\n *\n * An optional `setup` callback runs once on mount — e.g. to add media components via `addMediaComponent`. Components\n * registered there are destroyed together with the media instance on unmount (`media.destroy()` destroys all of its\n * registered components).\n *\n * @param MediaClass - Media class to instantiate and attach to the current player.\n * @param setup - Optional callback run once before the instance is attached.\n */\nexport function useMediaInstance<Instance extends Media & { destroy(): void }>(\n MediaClass: new () => Instance,\n setup?: (media: Instance) => void\n): Instance {\n const [instance] = useState(() => new MediaClass());\n const setMedia = useMediaAttach();\n\n useDestroy(\n instance,\n () => {\n setup?.(instance);\n setMedia?.(instance);\n },\n () => setMedia?.((prev) => (prev === instance ? null : prev))\n );\n\n return instance;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,SAAgB,iBACd,YACA,OACU;CACV,MAAM,CAAC,YAAY,eAAe,IAAI,WAAW,CAAC;CAClD,MAAM,WAAW,eAAe;CAEhC,WACE,gBACM;EACJ,QAAQ,QAAQ;EAChB,WAAW,QAAQ;CACrB,SACM,YAAY,SAAU,SAAS,WAAW,OAAO,IAAK,CAC9D;CAEA,OAAO;AACT"}
@@ -15,29 +15,27 @@ function getElementRef(element) {
15
15
  /**
16
16
  * Render a UI component element.
17
17
  *
18
- * Handles:
19
- * - Default tag rendering
20
- * - Render prop (element or function)
21
- * - Props merging (event handlers chained, className concatenated, style merged)
22
- * - Ref composition
23
- * - className/style as functions of state
18
+ * Handles: - Default tag rendering - Render prop (element or function) - Props merging (event handlers chained,
19
+ * className concatenated, style merged) - Ref composition - className/style as functions of state
24
20
  *
25
- * @public
26
21
  * @example
27
- * ```tsx
28
- * return renderElement('button', componentProps, {
29
- * state,
30
- * ref: [forwardedRef, buttonRef],
31
- * props: [{ type: 'button' }, elementProps, getButtonProps],
32
- * });
33
- * ```
22
+ * ```tsx
23
+ * return renderElement('button', componentProps, {
24
+ * state,
25
+ * ref: [forwardedRef, buttonRef],
26
+ * props: [{ type: 'button' }, elementProps, getButtonProps],
27
+ * });
28
+ * ```;
29
+ *
30
+ * @public
34
31
  */
35
32
  function renderElement(element, componentProps, params) {
36
33
  const { className: classNameProp, style: styleProp, render } = componentProps;
37
34
  const { state, ref, props, stateAttrMap } = params;
38
35
  const className = resolveClassName(classNameProp, state);
39
36
  const style = resolveStyle(styleProp, state);
40
- const mergedProps = mergeProps(stateAttrMap ? getStateDataAttrs(state, stateAttrMap) : {}, ...Array.isArray(props) ? props : props ? [props] : []);
37
+ const stateDataAttrs = stateAttrMap ? getStateDataAttrs(state, stateAttrMap) : {};
38
+ const mergedProps = mergeProps(stateDataAttrs, ...Array.isArray(props) ? props : props ? [props] : []);
41
39
  if (className !== void 0) mergedProps.className = mergedProps.className ? `${mergedProps.className} ${className}` : className;
42
40
  if (style !== void 0) mergedProps.style = mergedProps.style ? {
43
41
  ...mergedProps.style,
@@ -1 +1 @@
1
- {"version":3,"file":"use-render.js","names":[],"sources":["../../../src/utils/use-render.tsx"],"sourcesContent":["import { getStateDataAttrs, type StateAttrMap } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport { resolveClassName } from '@videojs/utils/style';\nimport type { CSSProperties, ReactElement, Ref } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport { mergeProps } from './merge-props';\nimport type { HTMLProps, RenderProp } from './types';\nimport { composeRefs } from './use-composed-refs';\n\n/** Check if a value is a render prop (function or React element). */\nexport function isRenderProp(value: unknown): value is RenderProp<unknown> {\n return isFunction(value) || isValidElement(value);\n}\n\ntype IntrinsicTagName = keyof React.JSX.IntrinsicElements;\n\nexport interface UseRenderComponentProps<State> {\n className?: string | ((state: State) => string | undefined) | undefined;\n style?: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined;\n render?: RenderProp<State> | undefined;\n}\n\nexport interface UseRenderParameters<State, RenderedElementType extends Element> {\n state: State;\n ref?: Ref<RenderedElementType> | Ref<RenderedElementType>[] | undefined;\n props?: object | object[] | undefined;\n stateAttrMap?: StateAttrMap<State> | undefined;\n}\n\nfunction resolveStyle<State>(\n style: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined,\n state: State\n): CSSProperties | undefined {\n return isFunction(style) ? style(state) : style;\n}\n\nfunction getElementRef(element: ReactElement): Ref<unknown> | undefined {\n // React 19+ uses element.props.ref, older versions use element.ref\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elementAny = element as any;\n return elementAny.ref ?? elementAny.props?.ref;\n}\n\n/**\n * Render a UI component element.\n *\n * Handles:\n * - Default tag rendering\n * - Render prop (element or function)\n * - Props merging (event handlers chained, className concatenated, style merged)\n * - Ref composition\n * - className/style as functions of state\n *\n * @public\n * @example\n * ```tsx\n * return renderElement('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [{ type: 'button' }, elementProps, getButtonProps],\n * });\n * ```\n */\nexport function renderElement<\n State extends object,\n RenderedElementType extends Element,\n TagName extends IntrinsicTagName,\n>(\n element: TagName,\n componentProps: UseRenderComponentProps<State>,\n params: UseRenderParameters<State, RenderedElementType>\n): ReactElement | null {\n const { className: classNameProp, style: styleProp, render } = componentProps;\n const { state, ref, props, stateAttrMap } = params;\n\n // Resolve className and style if they're functions\n const className = resolveClassName(classNameProp, state);\n const style = resolveStyle(styleProp, state);\n\n // Generate data attributes only when a component explicitly opts in with a\n // mapping. State is still passed to render/className/style callbacks.\n const stateDataAttrs = stateAttrMap ? getStateDataAttrs(state, stateAttrMap) : {};\n\n // Merge: state data attrs first, then props (so props can override)\n const propsArray = Array.isArray(props) ? props : props ? [props] : [];\n const mergedProps = mergeProps(stateDataAttrs, ...(propsArray as Record<string, unknown>[]));\n\n if (className !== undefined) {\n // Add resolved className and style\n mergedProps.className = mergedProps.className ? `${mergedProps.className} ${className}` : className;\n }\n\n if (style !== undefined) {\n mergedProps.style = mergedProps.style ? { ...(mergedProps.style as CSSProperties), ...style } : style;\n }\n\n if (isFunction(render)) {\n // Render function: call with props and state\n const mergedRef = composeRefs(ref, mergedProps.ref);\n return render({ ...mergedProps, ref: mergedRef } as HTMLProps, state);\n }\n\n if (isValidElement(render)) {\n const elementRef = getElementRef(render);\n\n const mergedRef = composeRefs(ref, mergedProps.ref, elementRef);\n\n const elementProps = mergeProps(mergedProps, render.props as Record<string, unknown>);\n elementProps.ref = mergedRef;\n\n return cloneElement(render, elementProps);\n }\n\n // Default tag\n const mergedRef = composeRefs(ref, mergedProps.ref);\n mergedProps.ref = mergedRef;\n\n return createElement(element, mergedProps);\n}\n\nexport namespace renderElement {\n export type ComponentProps<State> = UseRenderComponentProps<State>;\n export type Parameters<State, RenderedElementType extends Element> = UseRenderParameters<State, RenderedElementType>;\n}\n"],"mappings":";;;;;;;AA6BA,SAAS,aACP,OACA,OAC2B;CAC3B,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;AAC5C;AAEA,SAAS,cAAc,SAAiD;CAGtE,MAAM,aAAa;CACnB,OAAO,WAAW,OAAO,WAAW,OAAO;AAC7C;;;;;;;;;;;;;;;;;;;;;AAsBA,SAAgB,cAKd,SACA,gBACA,QACqB;CACrB,MAAM,EAAE,WAAW,eAAe,OAAO,WAAW,WAAW;CAC/D,MAAM,EAAE,OAAO,KAAK,OAAO,iBAAiB;CAG5C,MAAM,YAAY,iBAAiB,eAAe,KAAK;CACvD,MAAM,QAAQ,aAAa,WAAW,KAAK;CAQ3C,MAAM,cAAc,WAJG,eAAe,kBAAkB,OAAO,YAAY,IAAI,CAAC,GAIjC,GAD5B,MAAM,QAAQ,KAAK,IAAI,QAAQ,QAAQ,CAAC,KAAK,IAAI,CAAC,CACsB;CAE3F,IAAI,cAAc,KAAA,GAEhB,YAAY,YAAY,YAAY,YAAY,GAAG,YAAY,UAAU,GAAG,cAAc;CAG5F,IAAI,UAAU,KAAA,GACZ,YAAY,QAAQ,YAAY,QAAQ;EAAE,GAAI,YAAY;EAAyB,GAAG;CAAM,IAAI;CAGlG,IAAI,WAAW,MAAM,GAAG;EAEtB,MAAM,YAAY,YAAY,KAAK,YAAY,GAAG;EAClD,OAAO,OAAO;GAAE,GAAG;GAAa,KAAK;EAAU,GAAgB,KAAK;CACtE;CAEA,IAAI,eAAe,MAAM,GAAG;EAC1B,MAAM,aAAa,cAAc,MAAM;EAEvC,MAAM,YAAY,YAAY,KAAK,YAAY,KAAK,UAAU;EAE9D,MAAM,eAAe,WAAW,aAAa,OAAO,KAAgC;EACpF,aAAa,MAAM;EAEnB,OAAO,aAAa,QAAQ,YAAY;CAC1C;CAIA,YAAY,MADM,YAAY,KAAK,YAAY,GACrB;CAE1B,OAAO,cAAc,SAAS,WAAW;AAC3C"}
1
+ {"version":3,"file":"use-render.js","names":[],"sources":["../../../src/utils/use-render.tsx"],"sourcesContent":["import { getStateDataAttrs, type StateAttrMap } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport { resolveClassName } from '@videojs/utils/style';\nimport type { CSSProperties, ReactElement, Ref } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\n\nimport { mergeProps } from './merge-props';\nimport type { HTMLProps, RenderProp } from './types';\nimport { composeRefs } from './use-composed-refs';\n\n/** Check if a value is a render prop (function or React element). */\nexport function isRenderProp(value: unknown): value is RenderProp<unknown> {\n return isFunction(value) || isValidElement(value);\n}\n\ntype IntrinsicTagName = keyof React.JSX.IntrinsicElements;\n\nexport interface UseRenderComponentProps<State> {\n className?: string | ((state: State) => string | undefined) | undefined;\n style?: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined;\n render?: RenderProp<State> | undefined;\n}\n\nexport interface UseRenderParameters<State, RenderedElementType extends Element> {\n state: State;\n ref?: Ref<RenderedElementType> | Ref<RenderedElementType>[] | undefined;\n props?: object | object[] | undefined;\n stateAttrMap?: StateAttrMap<State> | undefined;\n}\n\nfunction resolveStyle<State>(\n style: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined,\n state: State\n): CSSProperties | undefined {\n return isFunction(style) ? style(state) : style;\n}\n\nfunction getElementRef(element: ReactElement): Ref<unknown> | undefined {\n // React 19+ uses element.props.ref, older versions use element.ref\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elementAny = element as any;\n\n return elementAny.ref ?? elementAny.props?.ref;\n}\n\n/**\n * Render a UI component element.\n *\n * Handles: - Default tag rendering - Render prop (element or function) - Props merging (event handlers chained,\n * className concatenated, style merged) - Ref composition - className/style as functions of state\n *\n * @example\n * ```tsx\n * return renderElement('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [{ type: 'button' }, elementProps, getButtonProps],\n * });\n * ```;\n *\n * @public\n */\nexport function renderElement<\n State extends object,\n RenderedElementType extends Element,\n TagName extends IntrinsicTagName,\n>(\n element: TagName,\n componentProps: UseRenderComponentProps<State>,\n params: UseRenderParameters<State, RenderedElementType>\n): ReactElement | null {\n const { className: classNameProp, style: styleProp, render } = componentProps;\n const { state, ref, props, stateAttrMap } = params;\n\n // Resolve className and style if they're functions\n const className = resolveClassName(classNameProp, state);\n const style = resolveStyle(styleProp, state);\n\n // Generate data attributes only when a component explicitly opts in with a\n // mapping. State is still passed to render/className/style callbacks.\n const stateDataAttrs = stateAttrMap ? getStateDataAttrs(state, stateAttrMap) : {};\n\n // Merge: state data attrs first, then props (so props can override)\n const propsArray = Array.isArray(props) ? props : props ? [props] : [];\n const mergedProps = mergeProps(stateDataAttrs, ...(propsArray as Record<string, unknown>[]));\n\n if (className !== undefined) {\n // Add resolved className and style\n mergedProps.className = mergedProps.className ? `${mergedProps.className} ${className}` : className;\n }\n\n if (style !== undefined) {\n mergedProps.style = mergedProps.style ? { ...(mergedProps.style as CSSProperties), ...style } : style;\n }\n\n if (isFunction(render)) {\n // Render function: call with props and state\n const mergedRef = composeRefs(ref, mergedProps.ref);\n\n return render({ ...mergedProps, ref: mergedRef } as HTMLProps, state);\n }\n\n if (isValidElement(render)) {\n const elementRef = getElementRef(render);\n\n const mergedRef = composeRefs(ref, mergedProps.ref, elementRef);\n\n const elementProps = mergeProps(mergedProps, render.props as Record<string, unknown>);\n\n elementProps.ref = mergedRef;\n\n return cloneElement(render, elementProps);\n }\n\n // Default tag\n const mergedRef = composeRefs(ref, mergedProps.ref);\n\n mergedProps.ref = mergedRef;\n\n return createElement(element, mergedProps);\n}\n\nexport namespace renderElement {\n export type ComponentProps<State> = UseRenderComponentProps<State>;\n export type Parameters<State, RenderedElementType extends Element> = UseRenderParameters<State, RenderedElementType>;\n}\n"],"mappings":";;;;;;;AA8BA,SAAS,aACP,OACA,OAC2B;CAC3B,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;AAC5C;AAEA,SAAS,cAAc,SAAiD;CAGtE,MAAM,aAAa;CAEnB,OAAO,WAAW,OAAO,WAAW,OAAO;AAC7C;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,cAKd,SACA,gBACA,QACqB;CACrB,MAAM,EAAE,WAAW,eAAe,OAAO,WAAW,WAAW;CAC/D,MAAM,EAAE,OAAO,KAAK,OAAO,iBAAiB;CAG5C,MAAM,YAAY,iBAAiB,eAAe,KAAK;CACvD,MAAM,QAAQ,aAAa,WAAW,KAAK;CAI3C,MAAM,iBAAiB,eAAe,kBAAkB,OAAO,YAAY,IAAI,CAAC;CAIhF,MAAM,cAAc,WAAW,gBAAgB,GAD5B,MAAM,QAAQ,KAAK,IAAI,QAAQ,QAAQ,CAAC,KAAK,IAAI,CAAC,CACsB;CAE3F,IAAI,cAAc,KAAA,GAEhB,YAAY,YAAY,YAAY,YAAY,GAAG,YAAY,UAAU,GAAG,cAAc;CAG5F,IAAI,UAAU,KAAA,GACZ,YAAY,QAAQ,YAAY,QAAQ;EAAE,GAAI,YAAY;EAAyB,GAAG;CAAM,IAAI;CAGlG,IAAI,WAAW,MAAM,GAAG;EAEtB,MAAM,YAAY,YAAY,KAAK,YAAY,GAAG;EAElD,OAAO,OAAO;GAAE,GAAG;GAAa,KAAK;EAAU,GAAgB,KAAK;CACtE;CAEA,IAAI,eAAe,MAAM,GAAG;EAC1B,MAAM,aAAa,cAAc,MAAM;EAEvC,MAAM,YAAY,YAAY,KAAK,YAAY,KAAK,UAAU;EAE9D,MAAM,eAAe,WAAW,aAAa,OAAO,KAAgC;EAEpF,aAAa,MAAM;EAEnB,OAAO,aAAa,QAAQ,YAAY;CAC1C;CAKA,YAAY,MAFM,YAAY,KAAK,YAAY,GAErB;CAE1B,OAAO,cAAc,SAAS,WAAW;AAC3C"}
@@ -4,10 +4,9 @@ const UNSAFE_CHARS = /[^a-zA-Z0-9_-]/g;
4
4
  /**
5
5
  * Generate a CSS-safe identifier from React's `useId()`.
6
6
  *
7
- * `useId()` returns values like `:r0:` which contain colons — invalid
8
- * in CSS `<dashed-ident>` tokens (used by `anchor-name` / `position-anchor`).
9
- * This hook strips non-alphanumeric/underscore/hyphen characters and
10
- * optionally prepends a prefix.
7
+ * `useId()` returns values like `:r0:` which contain colons — invalid in CSS `<dashed-ident>` tokens (used by
8
+ * `anchor-name` / `position-anchor`). This hook strips non-alphanumeric/underscore/hyphen characters and optionally
9
+ * prepends a prefix.
11
10
  */
12
11
  function useSafeId(prefix) {
13
12
  const raw = useId().replace(UNSAFE_CHARS, "");
@@ -1 +1 @@
1
- {"version":3,"file":"use-safe-id.js","names":[],"sources":["../../../src/utils/use-safe-id.ts"],"sourcesContent":["import { useId } from 'react';\n\nconst UNSAFE_CHARS = /[^a-zA-Z0-9_-]/g;\n\n/**\n * Generate a CSS-safe identifier from React's `useId()`.\n *\n * `useId()` returns values like `:r0:` which contain colons — invalid\n * in CSS `<dashed-ident>` tokens (used by `anchor-name` / `position-anchor`).\n * This hook strips non-alphanumeric/underscore/hyphen characters and\n * optionally prepends a prefix.\n */\nexport function useSafeId(prefix?: string): string {\n const raw = useId().replace(UNSAFE_CHARS, '');\n return prefix ? `${prefix}-${raw}` : raw;\n}\n"],"mappings":";;AAEA,MAAM,eAAe;;;;;;;;;AAUrB,SAAgB,UAAU,QAAyB;CACjD,MAAM,MAAM,MAAM,CAAC,CAAC,QAAQ,cAAc,EAAE;CAC5C,OAAO,SAAS,GAAG,OAAO,GAAG,QAAQ;AACvC"}
1
+ {"version":3,"file":"use-safe-id.js","names":[],"sources":["../../../src/utils/use-safe-id.ts"],"sourcesContent":["import { useId } from 'react';\n\nconst UNSAFE_CHARS = /[^a-zA-Z0-9_-]/g;\n\n/**\n * Generate a CSS-safe identifier from React's `useId()`.\n *\n * `useId()` returns values like `:r0:` which contain colons — invalid in CSS `<dashed-ident>` tokens (used by\n * `anchor-name` / `position-anchor`). This hook strips non-alphanumeric/underscore/hyphen characters and optionally\n * prepends a prefix.\n */\nexport function useSafeId(prefix?: string): string {\n const raw = useId().replace(UNSAFE_CHARS, '');\n\n return prefix ? `${prefix}-${raw}` : raw;\n}\n"],"mappings":";;AAEA,MAAM,eAAe;;;;;;;;AASrB,SAAgB,UAAU,QAAyB;CACjD,MAAM,MAAM,MAAM,CAAC,CAAC,QAAQ,cAAc,EAAE;CAE5C,OAAO,SAAS,GAAG,OAAO,GAAG,QAAQ;AACvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-sync-props.js","names":[],"sources":["../../../src/utils/use-sync-props.ts"],"sourcesContent":["import { isUndefined } from '@videojs/utils/predicate';\nimport { useRef } from 'react';\n\nexport function useSyncProps<Props extends object, Rest extends Record<string, unknown>>(\n target: Props,\n props: Partial<Props> & Rest,\n defaults: Props\n): Omit<Rest, keyof Props> {\n const rest: Record<string, unknown> = {};\n const synced = new Set<string>();\n const prevSyncedRef = useRef<Set<string> | null>(null);\n\n const sync = (key: string, value: unknown) => {\n if (target[key as keyof Props] !== value) target[key as keyof Props] = value as Props[keyof Props];\n };\n\n // Reset props the consumer stopped passing (or passed as `undefined`) back to\n // their defaults before applying the current ones, so a reset can never wipe a\n // value another prop derives in the same render (e.g. `source` deriving `src`).\n // Mirrors react-dom removing absent attributes.\n for (const key of prevSyncedRef.current ?? []) {\n if (isUndefined((props as Record<string, unknown>)[key])) sync(key, (defaults as Record<string, unknown>)[key]);\n }\n\n for (const key in props) {\n if (key in defaults) {\n if (isUndefined(props[key])) continue;\n synced.add(key);\n sync(key, props[key]);\n } else {\n rest[key] = props[key];\n }\n }\n\n prevSyncedRef.current = synced;\n\n return rest as Omit<Rest, keyof Props>;\n}\n"],"mappings":";;;AAGA,SAAgB,aACd,QACA,OACA,UACyB;CACzB,MAAM,OAAgC,CAAC;CACvC,MAAM,yBAAS,IAAI,IAAY;CAC/B,MAAM,gBAAgB,OAA2B,IAAI;CAErD,MAAM,QAAQ,KAAa,UAAmB;EAC5C,IAAI,OAAO,SAAwB,OAAO,OAAO,OAAsB;CACzE;CAMA,KAAK,MAAM,OAAO,cAAc,WAAW,CAAC,GAC1C,IAAI,YAAa,MAAkC,IAAI,GAAG,KAAK,KAAM,SAAqC,IAAI;CAGhH,KAAK,MAAM,OAAO,OAChB,IAAI,OAAO,UAAU;EACnB,IAAI,YAAY,MAAM,IAAI,GAAG;EAC7B,OAAO,IAAI,GAAG;EACd,KAAK,KAAK,MAAM,IAAI;CACtB,OACE,KAAK,OAAO,MAAM;CAItB,cAAc,UAAU;CAExB,OAAO;AACT"}
1
+ {"version":3,"file":"use-sync-props.js","names":[],"sources":["../../../src/utils/use-sync-props.ts"],"sourcesContent":["import { isUndefined } from '@videojs/utils/predicate';\nimport { useRef } from 'react';\n\nexport function useSyncProps<Props extends object, Rest extends Record<string, unknown>>(\n target: Props,\n props: Partial<Props> & Rest,\n defaults: Props\n): Omit<Rest, keyof Props> {\n const rest: Record<string, unknown> = {};\n const synced = new Set<string>();\n const prevSyncedRef = useRef<Set<string> | null>(null);\n\n const sync = (key: string, value: unknown) => {\n if (target[key as keyof Props] !== value) target[key as keyof Props] = value as Props[keyof Props];\n };\n\n // Reset props the consumer stopped passing (or passed as `undefined`) back to\n // their defaults before applying the current ones, so a reset can never wipe a\n // value another prop derives in the same render (e.g. `source` deriving `src`).\n // Mirrors react-dom removing absent attributes.\n for (const key of prevSyncedRef.current ?? []) {\n if (isUndefined((props as Record<string, unknown>)[key])) sync(key, (defaults as Record<string, unknown>)[key]);\n }\n\n for (const key in props) {\n if (key in defaults) {\n if (isUndefined(props[key])) continue;\n\n synced.add(key);\n sync(key, props[key]);\n } else {\n rest[key] = props[key];\n }\n }\n\n prevSyncedRef.current = synced;\n\n return rest as Omit<Rest, keyof Props>;\n}\n"],"mappings":";;;AAGA,SAAgB,aACd,QACA,OACA,UACyB;CACzB,MAAM,OAAgC,CAAC;CACvC,MAAM,yBAAS,IAAI,IAAY;CAC/B,MAAM,gBAAgB,OAA2B,IAAI;CAErD,MAAM,QAAQ,KAAa,UAAmB;EAC5C,IAAI,OAAO,SAAwB,OAAO,OAAO,OAAsB;CACzE;CAMA,KAAK,MAAM,OAAO,cAAc,WAAW,CAAC,GAC1C,IAAI,YAAa,MAAkC,IAAI,GAAG,KAAK,KAAM,SAAqC,IAAI;CAGhH,KAAK,MAAM,OAAO,OAChB,IAAI,OAAO,UAAU;EACnB,IAAI,YAAY,MAAM,IAAI,GAAG;EAE7B,OAAO,IAAI,GAAG;EACd,KAAK,KAAK,MAAM,IAAI;CACtB,OACE,KAAK,OAAO,MAAM;CAItB,cAAc,UAAU;CAExB,OAAO;AACT"}
@@ -3,8 +3,10 @@ import { Locale, Translations, Translator } from "@videojs/core/i18n";
3
3
  interface I18nContextValue {
4
4
  translator: Translator;
5
5
  locale: Locale;
6
- /** True when a provider received an explicit locale prop. */
6
+ /** True when the locale resolves from an explicit provider prop. */
7
7
  localeFromProp: boolean;
8
+ /** @internal True when the nearest provider received an explicit locale prop. */
9
+ localeFromOwnProp?: boolean;
8
10
  /** Overrides passed to this provider. */
9
11
  translations?: Partial<Translations>;
10
12
  /** Callback inherited by nested locale roots. */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","names":[],"sources":["../../../src/i18n/context.tsx"],"mappings":";;UAaiB;EACf,YAAY;EACZ,QAAQ;;EAER;;EAEA,eAAe,QAAQ;;EAEvB,wBAAwB,QAAQ;;;cAIrB,6BAAW,QAAA;;;;;;iBASR,iBAAiB;;;;;;iBAwBjB,aAAa"}
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../src/i18n/context.tsx"],"mappings":";;UAaiB;EACf,YAAY;EACZ,QAAQ;;EAER;;EAEA;;EAEA,eAAe,QAAQ;;EAEvB,wBAAwB,QAAQ;;;cAIrB,6BAAW,QAAA;;;;;;iBASR,iBAAiB;;;;;;iBAyBjB,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../src/i18n/context.tsx"],"sourcesContent":["import {\n createTranslator,\n DEFAULT_LOCALE,\n getI18nTranslations,\n type Locale,\n onI18nRegistryChange,\n type Translations,\n type Translator,\n} from '@videojs/core/i18n';\nimport { createContext, useContext, useEffect, useMemo, useReducer } from 'react';\n\nexport type AddLocaleRoot = () => () => void;\n\nexport interface I18nContextValue {\n translator: Translator;\n locale: Locale;\n /** True when a provider received an explicit locale prop. */\n localeFromProp: boolean;\n /** Overrides passed to this provider. */\n translations?: Partial<Translations>;\n /** Callback inherited by nested locale roots. */\n onActiveLocaleChange?: (locale: Locale) => void;\n}\n\n/** React context carrying the active translator and locale. @public */\nexport const I18nContext = createContext<I18nContextValue | null>(null);\n\nexport const LocaleRootContext = createContext<AddLocaleRoot | undefined>(undefined);\n\n/**\n * Returns the translator for the nearest `I18nProvider`, or English defaults when none is mounted.\n *\n * @public\n */\nexport function useTranslator(): Translator {\n const ctx = useContext(I18nContext);\n const [registryEpoch, invalidateRegistry] = useReducer((epoch: number) => epoch + 1, 0);\n\n useEffect(() => {\n return onI18nRegistryChange(() => invalidateRegistry());\n }, []);\n\n const fallback = useMemo(() => {\n void registryEpoch;\n return createTranslator(getI18nTranslations(DEFAULT_LOCALE), DEFAULT_LOCALE);\n }, [registryEpoch]);\n\n if (!ctx) {\n return fallback;\n }\n return ctx.translator;\n}\n\n/**\n * Returns the active BCP 47 locale tag from the nearest `I18nProvider`, or `'en'` when none is mounted.\n *\n * @public\n */\nexport function useLocale(): Locale {\n const ctx = useContext(I18nContext);\n return ctx?.locale ?? DEFAULT_LOCALE;\n}\n"],"mappings":";;;;AAyBA,MAAa,cAAc,cAAuC,IAAI;AAEtE,MAAa,oBAAoB,cAAyC,KAAA,CAAS;;;;;;AAOnF,SAAgB,gBAA4B;CAC1C,MAAM,MAAM,WAAW,WAAW;CAClC,MAAM,CAAC,eAAe,sBAAsB,YAAY,UAAkB,QAAQ,GAAG,CAAC;CAEtF,gBAAgB;EACd,OAAO,2BAA2B,mBAAmB,CAAC;CACxD,GAAG,CAAC,CAAC;CAEL,MAAM,WAAW,cAAc;EAE7B,OAAO,iBAAiB,oBAAoB,cAAc,GAAG,cAAc;CAC7E,GAAG,CAAC,aAAa,CAAC;CAElB,IAAI,CAAC,KACH,OAAO;CAET,OAAO,IAAI;AACb;;;;;;AAOA,SAAgB,YAAoB;CAElC,OADY,WAAW,WACd,CAAC,EAAE,UAAU;AACxB"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../src/i18n/context.tsx"],"sourcesContent":["import {\n createTranslator,\n DEFAULT_LOCALE,\n getI18nTranslations,\n type Locale,\n onI18nRegistryChange,\n type Translations,\n type Translator,\n} from '@videojs/core/i18n';\nimport { createContext, useContext, useEffect, useMemo, useReducer } from 'react';\n\nexport type AddLocaleRoot = () => () => void;\n\nexport interface I18nContextValue {\n translator: Translator;\n locale: Locale;\n /** True when the locale resolves from an explicit provider prop. */\n localeFromProp: boolean;\n /** @internal True when the nearest provider received an explicit locale prop. */\n localeFromOwnProp?: boolean;\n /** Overrides passed to this provider. */\n translations?: Partial<Translations>;\n /** Callback inherited by nested locale roots. */\n onActiveLocaleChange?: (locale: Locale) => void;\n}\n\n/** React context carrying the active translator and locale. @public */\nexport const I18nContext = createContext<I18nContextValue | null>(null);\n\nexport const LocaleRootContext = createContext<AddLocaleRoot | undefined>(undefined);\n\n/**\n * Returns the translator for the nearest `I18nProvider`, or English defaults when none is mounted.\n *\n * @public\n */\nexport function useTranslator(): Translator {\n const ctx = useContext(I18nContext);\n const [registryEpoch, invalidateRegistry] = useReducer((epoch: number) => epoch + 1, 0);\n\n useEffect(() => {\n return onI18nRegistryChange(() => invalidateRegistry());\n }, []);\n\n const fallback = useMemo(() => {\n void registryEpoch;\n return createTranslator(getI18nTranslations(DEFAULT_LOCALE), DEFAULT_LOCALE);\n }, [registryEpoch]);\n\n if (!ctx) {\n return fallback;\n }\n\n return ctx.translator;\n}\n\n/**\n * Returns the active BCP 47 locale tag from the nearest `I18nProvider`, or `'en'` when none is mounted.\n *\n * @public\n */\nexport function useLocale(): Locale {\n const ctx = useContext(I18nContext);\n\n return ctx?.locale ?? DEFAULT_LOCALE;\n}\n"],"mappings":";;;;AA2BA,MAAa,cAAc,cAAuC,IAAI;AAEtE,MAAa,oBAAoB,cAAyC,KAAA,CAAS;;;;;;AAOnF,SAAgB,gBAA4B;CAC1C,MAAM,MAAM,WAAW,WAAW;CAClC,MAAM,CAAC,eAAe,sBAAsB,YAAY,UAAkB,QAAQ,GAAG,CAAC;CAEtF,gBAAgB;EACd,OAAO,2BAA2B,mBAAmB,CAAC;CACxD,GAAG,CAAC,CAAC;CAEL,MAAM,WAAW,cAAc;EAE7B,OAAO,iBAAiB,oBAAoB,cAAc,GAAG,cAAc;CAC7E,GAAG,CAAC,aAAa,CAAC;CAElB,IAAI,CAAC,KACH,OAAO;CAGT,OAAO,IAAI;AACb;;;;;;AAOA,SAAgB,YAAoB;CAGlC,OAFY,WAAW,WAEd,CAAC,EAAE,UAAU;AACxB"}
@@ -8,28 +8,27 @@ interface CreateI18nOptions {
8
8
  }
9
9
  interface I18nProviderProps {
10
10
  /**
11
- * Forces the active locale. Omit to inherit the nearest non-empty `lang` by walking DOM
12
- * ancestors from {@link langRootRef} when set, otherwise from `document.documentElement`
13
- * (typically `<html lang>`). Updates when any `lang` attribute changes anywhere under `<html>`,
14
- * or when subtree moves alter which ancestor supplies `lang`. For SSR, pass `locale` explicitly.
11
+ * Forces the active locale. Omit to inherit the nearest non-empty `lang` by walking DOM ancestors from
12
+ * {@link langRootRef} when set, otherwise from `document.documentElement` (typically `<html lang>`). Updates when any
13
+ * `lang` attribute changes anywhere under `<html>`, or when subtree moves alter which ancestor supplies `lang`. For
14
+ * SSR, pass `locale` explicitly.
15
15
  */
16
16
  locale?: Locale;
17
17
  /**
18
- * Element whose ancestor chain is searched for a non-empty `lang` when {@link locale} is
19
- * omitted—for example a ref to your player shell `HTMLElement`.
18
+ * Element whose ancestor chain is searched for a non-empty `lang` when {@link locale} is omitted—for example a ref to
19
+ * your player shell `HTMLElement`.
20
20
  */
21
21
  langRootRef?: RefObject<Element | null>;
22
22
  /**
23
- * Per-locale string overrides merged on top of the global registry and any lazy built-in
24
- * packs for {@link locale}. Applies to translated
25
- * `aria-label` values and tooltip copy for skin controls wired through `useTranslator`.
23
+ * Per-locale string overrides merged on top of the global registry and any lazy built-in packs for {@link locale}.
24
+ * Applies to translated `aria-label` values and tooltip copy for skin controls wired through `useTranslator`.
26
25
  *
27
26
  * @example
28
- * ```tsx
29
- * <I18nProvider locale="ja" translations={{ buttons: { play: '再生', pause: '一時停止' } }}>
30
- * <VideoSkin />
31
- * </I18nProvider>
32
- * ```
27
+ * ```tsx
28
+ * <I18nProvider locale="ja" translations={{ buttons: { play: '再生', pause: '一時停止' } }}>
29
+ * <VideoSkin />
30
+ * </I18nProvider>;
31
+ * ```;
33
32
  */
34
33
  translations?: Partial<Translations>;
35
34
  children: ReactNode;
@@ -50,8 +49,8 @@ interface CreateI18nResult {
50
49
  */
51
50
  declare function createI18n(options?: CreateI18nOptions): CreateI18nResult;
52
51
  /**
53
- * Resolves locale and supplies a typed translator to descendants. Mount this explicitly for
54
- * translated controls, forced locales, SSR copy, or locale-aware player roots.
52
+ * Resolves locale and supplies a typed translator to descendants. Mount this explicitly for translated controls, forced
53
+ * locales, SSR copy, or locale-aware player roots.
55
54
  *
56
55
  * @public
57
56
  */
@@ -1 +1 @@
1
- {"version":3,"file":"create-i18n.d.ts","names":[],"sources":["../../../src/i18n/create-i18n.tsx"],"mappings":";;;;UAkBiB;;EAEf,UAAU,gBAAgB,QAAQ,QAAQ;;UAG3B;;;;;;;EAOf,SAAS;;;;;EAKT,cAAc,UAAU;;;;;;;;;;;;;EAaxB,eAAe,QAAQ;EACvB,UAAU;;EAEV,wBAAwB,QAAQ;;UAKjB;EACf,aAAa,QAAQ;EACrB,eAAe,OAAO,sBAAsB;EAC5C,sBAAsB;EACtB,kBAAkB;;;;;;;;iBASJ,WAAW,UAAU,oBAAoB;;;;;;;cAiE5C,eAAY,OA5ED,sBAAsB"}
1
+ {"version":3,"file":"create-i18n.d.ts","names":[],"sources":["../../../src/i18n/create-i18n.tsx"],"mappings":";;;;UAkBiB;;EAEf,UAAU,gBAAgB,QAAQ,QAAQ;;UAG3B;;;;;;;EAOf,SAAS;;;;;EAKT,cAAc,UAAU;;;;;;;;;;;;EAYxB,eAAe,QAAQ;EACvB,UAAU;;EAEV,wBAAwB,QAAQ;;UAKjB;EACf,aAAa,QAAQ;EACrB,eAAe,OAAO,sBAAsB;EAC5C,sBAAsB;EACtB,kBAAkB;;;;;;;;iBASJ,WAAW,UAAU,oBAAoB;;;;;;;cAmE5C,eAAY,OA9ED,sBAAsB"}