@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":"popover-root.js","names":[],"sources":["../../../../src/ui/popover/popover-root.tsx"],"sourcesContent":["import { type PopoverProps as CorePopoverProps, PopoverCore, PopoverDataAttrs } from '@videojs/core';\nimport {\n createPopover,\n createTransition,\n type PopoverChangeDetails,\n type PositioningBoundary,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\nimport { useOptionalContainer } from '../../player/context';\nimport { useOptionalPopupGroup } from '../../player/popup-group-context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { useOptionalControlsContext } from '../controls/context';\nimport { usePositionedState } from '../hooks/use-positioned-state';\nimport { PopoverContextProvider } from './context';\n\nexport interface PopoverRootProps extends CorePopoverProps {\n /** Boundary used to constrain the popup size. */\n boundary?: PositioningBoundary;\n /** Called when the popover open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: PopoverChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function PopoverRoot({\n open: controlledOpen,\n defaultOpen = PopoverCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n openOnHover = PopoverCore.defaultProps.openOnHover,\n delay = PopoverCore.defaultProps.delay,\n closeDelay = PopoverCore.defaultProps.closeDelay,\n boundary = 'container',\n children,\n ...coreProps\n}: PopoverRootProps): ReactNode {\n const container = useOptionalContainer();\n const popupGroup = useOptionalPopupGroup();\n const controls = useOptionalControlsContext();\n const [core] = useState(() => new PopoverCore(coreProps));\n core.setProps(coreProps);\n\n const isControlled = !isUndefined(controlledOpen);\n\n // Keep refs that always point to the latest values so the\n // createPopover closure never reads stale props.\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n const closeOnEscapeRef = useLatestRef(coreProps.closeOnEscape);\n const closeOnOutsideClickRef = useLatestRef(coreProps.closeOnOutsideClick);\n const openOnHoverRef = useLatestRef(openOnHover);\n const delayRef = useLatestRef(delay);\n const closeDelayRef = useLatestRef(closeDelay);\n const popupGroupRef = useLatestRef(popupGroup);\n\n const [popover] = useState(() => {\n const instance = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n closeOnEscape: () => closeOnEscapeRef.current ?? PopoverCore.defaultProps.closeOnEscape,\n closeOnOutsideClick: () => closeOnOutsideClickRef.current ?? PopoverCore.defaultProps.closeOnOutsideClick,\n openOnHover: () => openOnHoverRef.current,\n delay: () => delayRef.current,\n closeDelay: () => closeDelayRef.current,\n group: () => popupGroupRef.current,\n });\n\n // Apply defaultOpen on creation (uncontrolled only)\n if (!isControlled && defaultOpen) {\n instance.open('click');\n }\n\n return instance;\n });\n\n const anchorName = useSafeId();\n const popupId = useSafeId('popup');\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (isUndefined(controlledOpen)) return;\n\n const { active: inputOpen } = popover.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n popover.open('click');\n } else {\n popover.close('click');\n }\n }, [controlledOpen, popover]);\n\n useEffect(() => {\n if (isUndefined(controls?.state.visible)) return;\n if (controls.state.visible) return;\n\n popover.close('imperative-action');\n }, [controls?.state.visible, popover]);\n\n useDestroy(popover);\n\n const input = useSnapshot(popover.input);\n core.setInput(input);\n const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState());\n\n return (\n <PopoverContextProvider\n value={{\n core,\n popover,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap: PopoverDataAttrs,\n anchorName,\n popupId,\n boundary,\n container,\n }}\n >\n {children}\n </PopoverContextProvider>\n );\n}\n\nexport namespace PopoverRoot {\n export type Props = PopoverRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA8BA,SAAgB,YAAY,EAC1B,MAAM,gBACN,cAAc,YAAY,aAAa,aACvC,cAAc,kBACd,sBAAsB,0BACtB,cAAc,YAAY,aAAa,aACvC,QAAQ,YAAY,aAAa,OACjC,aAAa,YAAY,aAAa,YACtC,WAAW,aACX,UACA,GAAG,aAC2B;CAC9B,MAAM,YAAY,qBAAqB;CACvC,MAAM,aAAa,sBAAsB;CACzC,MAAM,WAAW,2BAA2B;CAC5C,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,SAAS,CAAC;CACxD,KAAK,SAAS,SAAS;CAEvB,MAAM,eAAe,CAAC,YAAY,cAAc;CAIhD,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CACrE,MAAM,mBAAmB,aAAa,UAAU,aAAa;CAC7D,MAAM,yBAAyB,aAAa,UAAU,mBAAmB;CACzE,MAAM,iBAAiB,aAAa,WAAW;CAC/C,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,gBAAgB,aAAa,UAAU;CAC7C,MAAM,gBAAgB,aAAa,UAAU;CAE7C,MAAM,CAAC,WAAW,eAAe;EAC/B,MAAM,WAAW,cAAc;GAC7B,YAAY,iBAAiB;GAC7B,eAAe,UAAmB,YAAkC;IAClE,gBAAgB,UAAU,UAAU,OAAO;GAC7C;GACA,uBAAuB,aAAsB;IAC3C,wBAAwB,UAAU,QAAQ;GAC5C;GACA,qBAAqB,iBAAiB,WAAW,YAAY,aAAa;GAC1E,2BAA2B,uBAAuB,WAAW,YAAY,aAAa;GACtF,mBAAmB,eAAe;GAClC,aAAa,SAAS;GACtB,kBAAkB,cAAc;GAChC,aAAa,cAAc;EAC7B,CAAC;EAGD,IAAI,CAAC,gBAAgB,aACnB,SAAS,KAAK,OAAO;EAGvB,OAAO;CACT,CAAC;CAED,MAAM,aAAa,UAAU;CAC7B,MAAM,UAAU,UAAU,OAAO;CAGjC,gBAAgB;EACd,IAAI,YAAY,cAAc,GAAG;EAEjC,MAAM,EAAE,QAAQ,cAAc,QAAQ,MAAM;EAC5C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBACF,QAAQ,KAAK,OAAO;OAEpB,QAAQ,MAAM,OAAO;CAEzB,GAAG,CAAC,gBAAgB,OAAO,CAAC;CAE5B,gBAAgB;EACd,IAAI,YAAY,UAAU,MAAM,OAAO,GAAG;EAC1C,IAAI,SAAS,MAAM,SAAS;EAE5B,QAAQ,MAAM,mBAAmB;CACnC,GAAG,CAAC,UAAU,MAAM,SAAS,OAAO,CAAC;CAErC,WAAW,OAAO;CAElB,MAAM,QAAQ,YAAY,QAAQ,KAAK;CACvC,KAAK,SAAS,KAAK;CACnB,MAAM,EAAE,OAAO,eAAe,sBAAsB,mBAAmB,KAAK,SAAS,CAAC;CAEtF,OACE,oBAAC,wBAAD;EACE,OAAO;GACL;GACA;GACA;GACA;GACA;GACA,cAAc;GACd;GACA;GACA;GACA;EACF;EAEC;CACqB,CAAA;AAE5B"}
1
+ {"version":3,"file":"popover-root.js","names":[],"sources":["../../../../src/ui/popover/popover-root.tsx"],"sourcesContent":["import { type PopoverProps as CorePopoverProps, PopoverCore, PopoverDataAttrs } from '@videojs/core';\nimport {\n createPopover,\n createTransition,\n type PopoverChangeDetails,\n type PositioningBoundary,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { useOptionalContainer } from '../../player/context';\nimport { useOptionalPopupGroup } from '../../player/popup-group-context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { useOptionalControlsContext } from '../controls/context';\nimport { usePositionedState } from '../hooks/use-positioned-state';\nimport { PopoverContextProvider } from './context';\n\nexport interface PopoverRootProps extends CorePopoverProps {\n /** Boundary used to constrain the popup size. */\n boundary?: PositioningBoundary;\n /** Called when the popover open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: PopoverChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function PopoverRoot({\n open: controlledOpen,\n defaultOpen = PopoverCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n openOnHover = PopoverCore.defaultProps.openOnHover,\n delay = PopoverCore.defaultProps.delay,\n closeDelay = PopoverCore.defaultProps.closeDelay,\n boundary = 'container',\n children,\n ...coreProps\n}: PopoverRootProps): ReactNode {\n const container = useOptionalContainer();\n const popupGroup = useOptionalPopupGroup();\n const controls = useOptionalControlsContext();\n const [core] = useState(() => new PopoverCore(coreProps));\n\n core.setProps(coreProps);\n\n const isControlled = !isUndefined(controlledOpen);\n\n // Keep refs that always point to the latest values so the\n // createPopover closure never reads stale props.\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n\n const closeOnEscapeRef = useLatestRef(coreProps.closeOnEscape);\n const closeOnOutsideClickRef = useLatestRef(coreProps.closeOnOutsideClick);\n const openOnHoverRef = useLatestRef(openOnHover);\n const delayRef = useLatestRef(delay);\n const closeDelayRef = useLatestRef(closeDelay);\n\n const popupGroupRef = useLatestRef(popupGroup);\n\n const [popover] = useState(() => {\n const instance = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n closeOnEscape: () => closeOnEscapeRef.current ?? PopoverCore.defaultProps.closeOnEscape,\n closeOnOutsideClick: () => closeOnOutsideClickRef.current ?? PopoverCore.defaultProps.closeOnOutsideClick,\n openOnHover: () => openOnHoverRef.current,\n delay: () => delayRef.current,\n closeDelay: () => closeDelayRef.current,\n group: () => popupGroupRef.current,\n });\n\n // Apply defaultOpen on creation (uncontrolled only)\n if (!isControlled && defaultOpen) {\n instance.open('click');\n }\n\n return instance;\n });\n\n const anchorName = useSafeId();\n const popupId = useSafeId('popup');\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (isUndefined(controlledOpen)) return;\n\n const { active: inputOpen } = popover.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n popover.open('click');\n } else {\n popover.close('click');\n }\n }, [controlledOpen, popover]);\n\n useEffect(() => {\n if (isUndefined(controls?.state.visible)) return;\n\n if (controls.state.visible) return;\n\n popover.close('imperative-action');\n }, [controls?.state.visible, popover]);\n\n useDestroy(popover);\n\n const input = useSnapshot(popover.input);\n\n core.setInput(input);\n const { state, preferredSide, setPositionedSide } = usePositionedState(core.getState());\n\n return (\n <PopoverContextProvider\n value={{\n core,\n popover,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap: PopoverDataAttrs,\n anchorName,\n popupId,\n boundary,\n container,\n }}\n >\n {children}\n </PopoverContextProvider>\n );\n}\n\nexport namespace PopoverRoot {\n export type Props = PopoverRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA+BA,SAAgB,YAAY,EAC1B,MAAM,gBACN,cAAc,YAAY,aAAa,aACvC,cAAc,kBACd,sBAAsB,0BACtB,cAAc,YAAY,aAAa,aACvC,QAAQ,YAAY,aAAa,OACjC,aAAa,YAAY,aAAa,YACtC,WAAW,aACX,UACA,GAAG,aAC2B;CAC9B,MAAM,YAAY,qBAAqB;CACvC,MAAM,aAAa,sBAAsB;CACzC,MAAM,WAAW,2BAA2B;CAC5C,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,SAAS,CAAC;CAExD,KAAK,SAAS,SAAS;CAEvB,MAAM,eAAe,CAAC,YAAY,cAAc;CAIhD,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CAErE,MAAM,mBAAmB,aAAa,UAAU,aAAa;CAC7D,MAAM,yBAAyB,aAAa,UAAU,mBAAmB;CACzE,MAAM,iBAAiB,aAAa,WAAW;CAC/C,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,gBAAgB,aAAa,UAAU;CAE7C,MAAM,gBAAgB,aAAa,UAAU;CAE7C,MAAM,CAAC,WAAW,eAAe;EAC/B,MAAM,WAAW,cAAc;GAC7B,YAAY,iBAAiB;GAC7B,eAAe,UAAmB,YAAkC;IAClE,gBAAgB,UAAU,UAAU,OAAO;GAC7C;GACA,uBAAuB,aAAsB;IAC3C,wBAAwB,UAAU,QAAQ;GAC5C;GACA,qBAAqB,iBAAiB,WAAW,YAAY,aAAa;GAC1E,2BAA2B,uBAAuB,WAAW,YAAY,aAAa;GACtF,mBAAmB,eAAe;GAClC,aAAa,SAAS;GACtB,kBAAkB,cAAc;GAChC,aAAa,cAAc;EAC7B,CAAC;EAGD,IAAI,CAAC,gBAAgB,aACnB,SAAS,KAAK,OAAO;EAGvB,OAAO;CACT,CAAC;CAED,MAAM,aAAa,UAAU;CAC7B,MAAM,UAAU,UAAU,OAAO;CAGjC,gBAAgB;EACd,IAAI,YAAY,cAAc,GAAG;EAEjC,MAAM,EAAE,QAAQ,cAAc,QAAQ,MAAM;EAC5C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBACF,QAAQ,KAAK,OAAO;OAEpB,QAAQ,MAAM,OAAO;CAEzB,GAAG,CAAC,gBAAgB,OAAO,CAAC;CAE5B,gBAAgB;EACd,IAAI,YAAY,UAAU,MAAM,OAAO,GAAG;EAE1C,IAAI,SAAS,MAAM,SAAS;EAE5B,QAAQ,MAAM,mBAAmB;CACnC,GAAG,CAAC,UAAU,MAAM,SAAS,OAAO,CAAC;CAErC,WAAW,OAAO;CAElB,MAAM,QAAQ,YAAY,QAAQ,KAAK;CAEvC,KAAK,SAAS,KAAK;CACnB,MAAM,EAAE,OAAO,eAAe,sBAAsB,mBAAmB,KAAK,SAAS,CAAC;CAEtF,OACE,oBAAC,wBAAD;EACE,OAAO;GACL;GACA;GACA;GACA;GACA;GACA,cAAc;GACd;GACA;GACA;GACA;EACF;EAEC;CACqB,CAAA;AAE5B"}
@@ -6,7 +6,7 @@ const POPOVER_RESET = {
6
6
  inset: "auto",
7
7
  margin: 0
8
8
  };
9
- function usePopupPosition({ open, anchorName, position, triggerSource, popupRef, boundary, container, cssVars, onSideChange }) {
9
+ function usePopupPosition({ open, anchorName, position, triggerSource, popupRef, boundary, container, cssVars, trackResize, onSideChange }) {
10
10
  const [positioner] = useState(() => new PopupPositioner());
11
11
  useLayoutEffect(() => {
12
12
  if (!open) {
@@ -20,6 +20,7 @@ function usePopupPosition({ open, anchorName, position, triggerSource, popupRef,
20
20
  popup: popupRef.current,
21
21
  boundary,
22
22
  container,
23
+ ...trackResize !== void 0 ? { trackResize } : {},
23
24
  ...cssVars ? { cssVars } : {},
24
25
  ...onSideChange ? { onSideChange } : {}
25
26
  });
@@ -1 +1 @@
1
- {"version":3,"file":"use-popup-position.js","names":[],"sources":["../../../../src/ui/popover/use-popup-position.ts"],"sourcesContent":["import {\n type MediaContainer,\n PopupPositioner,\n type PopupPositionerOptions,\n type PositioningBoundary,\n type PositioningCSSVars,\n type PositioningOptions,\n} from '@videojs/core/dom';\nimport type { CSSProperties, RefObject } from 'react';\nimport { useLayoutEffect, useState } from 'react';\n\ntype PopupStyle = CSSProperties & Partial<Record<`--${string}`, string>>;\n\nconst POPOVER_RESET: PopupStyle = { position: 'fixed', inset: 'auto', margin: 0 };\n\ninterface UsePopupPositionOptions {\n open: boolean;\n anchorName: string;\n position: PositioningOptions | null;\n triggerSource: { readonly triggerElement: HTMLElement | null };\n popupRef: RefObject<HTMLElement | null>;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n cssVars?: PositioningCSSVars;\n onSideChange?: PopupPositionerOptions['onSideChange'];\n}\n\nexport function usePopupPosition({\n open,\n anchorName,\n position,\n triggerSource,\n popupRef,\n boundary,\n container,\n cssVars,\n onSideChange,\n}: UsePopupPositionOptions): PopupStyle {\n const [positioner] = useState(() => new PopupPositioner());\n\n useLayoutEffect(() => {\n if (!open) {\n positioner.cleanup();\n return;\n }\n\n positioner.sync({\n anchorName,\n position,\n trigger: triggerSource.triggerElement,\n popup: popupRef.current,\n boundary,\n container,\n ...(cssVars ? { cssVars } : {}),\n ...(onSideChange ? { onSideChange } : {}),\n });\n });\n\n useLayoutEffect(() => () => positioner.cleanup(), [positioner]);\n\n return POPOVER_RESET;\n}\n"],"mappings":";;;AAaA,MAAM,gBAA4B;CAAE,UAAU;CAAS,OAAO;CAAQ,QAAQ;AAAE;AAchF,SAAgB,iBAAiB,EAC/B,MACA,YACA,UACA,eACA,UACA,UACA,WACA,SACA,gBACsC;CACtC,MAAM,CAAC,cAAc,eAAe,IAAI,gBAAgB,CAAC;CAEzD,sBAAsB;EACpB,IAAI,CAAC,MAAM;GACT,WAAW,QAAQ;GACnB;EACF;EAEA,WAAW,KAAK;GACd;GACA;GACA,SAAS,cAAc;GACvB,OAAO,SAAS;GAChB;GACA;GACA,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;GAC7B,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;EACzC,CAAC;CACH,CAAC;CAED,4BAA4B,WAAW,QAAQ,GAAG,CAAC,UAAU,CAAC;CAE9D,OAAO;AACT"}
1
+ {"version":3,"file":"use-popup-position.js","names":[],"sources":["../../../../src/ui/popover/use-popup-position.ts"],"sourcesContent":["import {\n type MediaContainer,\n PopupPositioner,\n type PopupPositionerOptions,\n type PositioningBoundary,\n type PositioningCSSVars,\n type PositioningOptions,\n} from '@videojs/core/dom';\nimport type { CSSProperties, RefObject } from 'react';\nimport { useLayoutEffect, useState } from 'react';\n\ntype PopupStyle = CSSProperties & Partial<Record<`--${string}`, string>>;\n\nconst POPOVER_RESET: PopupStyle = { position: 'fixed', inset: 'auto', margin: 0 };\n\ninterface UsePopupPositionOptions {\n open: boolean;\n anchorName: string;\n position: PositioningOptions | null;\n triggerSource: { readonly triggerElement: HTMLElement | null };\n popupRef: RefObject<HTMLElement | null>;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n cssVars?: PositioningCSSVars;\n trackResize?: boolean;\n onSideChange?: PopupPositionerOptions['onSideChange'];\n}\n\nexport function usePopupPosition({\n open,\n anchorName,\n position,\n triggerSource,\n popupRef,\n boundary,\n container,\n cssVars,\n trackResize,\n onSideChange,\n}: UsePopupPositionOptions): PopupStyle {\n const [positioner] = useState(() => new PopupPositioner());\n\n useLayoutEffect(() => {\n if (!open) {\n positioner.cleanup();\n return;\n }\n\n positioner.sync({\n anchorName,\n position,\n trigger: triggerSource.triggerElement,\n popup: popupRef.current,\n boundary,\n container,\n ...(trackResize !== undefined ? { trackResize } : {}),\n ...(cssVars ? { cssVars } : {}),\n ...(onSideChange ? { onSideChange } : {}),\n });\n });\n\n useLayoutEffect(() => () => positioner.cleanup(), [positioner]);\n\n return POPOVER_RESET;\n}\n"],"mappings":";;;AAaA,MAAM,gBAA4B;CAAE,UAAU;CAAS,OAAO;CAAQ,QAAQ;AAAE;AAehF,SAAgB,iBAAiB,EAC/B,MACA,YACA,UACA,eACA,UACA,UACA,WACA,SACA,aACA,gBACsC;CACtC,MAAM,CAAC,cAAc,eAAe,IAAI,gBAAgB,CAAC;CAEzD,sBAAsB;EACpB,IAAI,CAAC,MAAM;GACT,WAAW,QAAQ;GACnB;EACF;EAEA,WAAW,KAAK;GACd;GACA;GACA,SAAS,cAAc;GACvB,OAAO,SAAS;GAChB;GACA;GACA,GAAI,gBAAgB,KAAA,IAAY,EAAE,YAAY,IAAI,CAAC;GACnD,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;GAC7B,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;EACzC,CAAC;CACH,CAAC;CAED,4BAA4B,WAAW,QAAQ,GAAG,CAAC,UAAU,CAAC;CAE9D,OAAO;AACT"}
@@ -7,27 +7,25 @@ import { PosterCore, PosterDataAttrs } from "@videojs/core";
7
7
  /**
8
8
  * Displays the video poster image. Shows before playback starts, hides after.
9
9
  *
10
- * Renders an `<img>`, so `srcset`, `sizes`, `loading`, and the rest of the
11
- * image attributes are yours. Leave the source off and the player's resolved
12
- * `poster` fills it in.
10
+ * Renders an `<img>`, so `srcset`, `sizes`, `loading`, and the rest of the image attributes are yours. Leave the source
11
+ * off and the player's resolved `poster` fills it in.
13
12
  *
14
- * The image is decorative unless you say otherwise. Describe a poster that
15
- * carries meaning by passing your own `alt`.
13
+ * The image is decorative unless you say otherwise. Describe a poster that carries meaning by passing your own `alt`.
16
14
  *
17
15
  * @example
18
- * ```tsx
19
- * <VideoPlayer poster="poster.jpg">
16
+ * ```tsx
17
+ * <VideoPlayer poster="poster.jpg">
20
18
  * <Poster />
21
- * </VideoPlayer>
19
+ * </VideoPlayer>
22
20
  *
23
- * <Poster srcSet="poster-480.jpg 480w, poster-1080.jpg 1080w" sizes="100vw" />
21
+ * <Poster srcSet="poster-480.jpg 480w, poster-1080.jpg 1080w" sizes="100vw" />
24
22
  *
25
- * <Poster
23
+ * <Poster
26
24
  * render={({ src, ...props }: ComponentProps<'img'>) =>
27
- * src ? <Image {...props} src={src} alt="" fill /> : null
25
+ * src ? <Image {...props} src={src} alt="" fill /> : null
28
26
  * }
29
- * />
30
- * ```
27
+ * />
28
+ * ```;
31
29
  */
32
30
  const Poster = forwardRef(function Poster(componentProps, forwardedRef) {
33
31
  const { render, className, style, ...elementProps } = componentProps;
@@ -1 +1 @@
1
- {"version":3,"file":"poster.js","names":[],"sources":["../../../../src/ui/poster/poster.tsx"],"sourcesContent":["import { PosterCore, PosterDataAttrs, type PosterImageLoadState } from '@videojs/core';\nimport { logMissingFeature, selectMetadata, selectPlayback } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface PosterProps extends UIComponentProps<'img', PosterCore.State> {}\n\n/** The source currently requested from the image, and how it is faring. */\ninterface ImageRequest {\n src: string;\n srcSet: string | undefined;\n state: PosterImageLoadState;\n}\n\n/**\n * Displays the video poster image. Shows before playback starts, hides after.\n *\n * Renders an `<img>`, so `srcset`, `sizes`, `loading`, and the rest of the\n * image attributes are yours. Leave the source off and the player's resolved\n * `poster` fills it in.\n *\n * The image is decorative unless you say otherwise. Describe a poster that\n * carries meaning by passing your own `alt`.\n *\n * @example\n * ```tsx\n * <VideoPlayer poster=\"poster.jpg\">\n * <Poster />\n * </VideoPlayer>\n *\n * <Poster srcSet=\"poster-480.jpg 480w, poster-1080.jpg 1080w\" sizes=\"100vw\" />\n *\n * <Poster\n * render={({ src, ...props }: ComponentProps<'img'>) =>\n * src ? <Image {...props} src={src} alt=\"\" fill /> : null\n * }\n * />\n * ```\n */\nexport const Poster = forwardRef(function Poster(\n componentProps: PosterProps,\n forwardedRef: ForwardedRef<HTMLImageElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n\n const playback = usePlayer(selectPlayback);\n const metadata = usePlayer(selectMetadata);\n\n const [core] = useState(() => new PosterCore());\n\n // The metadata feature is optional: without it nothing resolves a URL, and\n // this stays a visibility wrapper around whatever `src` was passed.\n if (playback) {\n core.setMedia({\n started: playback.started,\n poster: metadata?.poster ?? '',\n });\n }\n\n const { src: authoredSrc, srcSet: authoredSrcSet } = elementProps as { src?: string; srcSet?: string };\n\n // Either authored source makes the image yours, matching `hasSource` in the\n // HTML element. Filling `src` alongside a `srcset` would inject the player's\n // poster into your candidate set as the 1x entry.\n const src = authoredSrc ?? (authoredSrcSet === undefined && playback ? core.getState().src : '');\n\n const initialLoadState: PosterImageLoadState = !src && authoredSrcSet === undefined ? 'none' : 'loading';\n const [request, setRequest] = useState<ImageRequest>(() => ({\n src,\n srcSet: authoredSrcSet,\n state: initialLoadState,\n }));\n const imgRef = useRef<HTMLImageElement | null>(null);\n\n // Keep only the active request. Retaining a settled source by value would\n // resurrect its old state when the image moved A -> B -> A, even though the\n // second A is a new request. `srcSet` is part of the identity because `src`\n // stays empty when it is the only source.\n const matchesRequest = request.src === src && request.srcSet === authoredSrcSet;\n if (!matchesRequest) setRequest({ src, srcSet: authoredSrcSet, state: initialLoadState });\n const loadState = matchesRequest ? request.state : initialLoadState;\n\n if (playback) core.setImageLoadState(loadState);\n\n const state = playback ? core.getState() : null;\n\n // An image can already be settled when we first see it — hydrated from server\n // markup, say — in which case neither `load` nor `error` ever fires. Decoded\n // pixels stand on their own; the absence of them only means failure once\n // `complete` can be trusted, which takes a source on the image itself, since one\n // sourced by a `<picture>` an override wrapped it in is `complete` regardless.\n //\n // Only when we first see it. A later source change leaves the previous request's\n // pixels in place until the new one settles, so reading them again would call\n // the new source loaded while it is still fetching. `load` and `error` cover\n // every source after this one, the way the HTML element reads an image once.\n // biome-ignore lint/correctness/useExhaustiveDependencies: reads the first source only, at mount\n useEffect(() => {\n const img = imgRef.current;\n if (!img) return;\n\n if (img.naturalWidth > 0) setRequest({ src, srcSet: authoredSrcSet, state: 'loaded' });\n else if (img.complete && (img.getAttribute('src') || img.hasAttribute('srcset'))) {\n setRequest({ src, srcSet: authoredSrcSet, state: 'error' });\n }\n }, []);\n\n // Recorded against the source this render asked for, not the one on the\n // element: a `render` override is free to rewrite it.\n const handleLoad = useCallback(\n () => setRequest({ src, srcSet: authoredSrcSet, state: 'loaded' }),\n [src, authoredSrcSet]\n );\n const handleError = useCallback(\n () => setRequest({ src, srcSet: authoredSrcSet, state: 'error' }),\n [src, authoredSrcSet]\n );\n\n if (!playback || !state) {\n if (__DEV__) logMissingFeature('Poster', 'playback');\n return null;\n }\n\n return renderElement(\n 'img',\n { render, className, style },\n {\n state,\n stateAttrMap: PosterDataAttrs,\n ref: [forwardedRef, imgRef],\n props: [\n { alt: '' },\n elementProps,\n {\n // An empty `src` requests the document URL, so leave the attribute off.\n src: src || undefined,\n onLoad: handleLoad,\n onError: handleError,\n },\n ],\n }\n );\n});\n\nexport namespace Poster {\n export type Props = PosterProps;\n export type State = PosterCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAa,SAAS,WAAW,SAAS,OACxC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CAEtD,MAAM,WAAW,UAAU,cAAc;CACzC,MAAM,WAAW,UAAU,cAAc;CAEzC,MAAM,CAAC,QAAQ,eAAe,IAAI,WAAW,CAAC;CAI9C,IAAI,UACF,KAAK,SAAS;EACZ,SAAS,SAAS;EAClB,QAAQ,UAAU,UAAU;CAC9B,CAAC;CAGH,MAAM,EAAE,KAAK,aAAa,QAAQ,mBAAmB;CAKrD,MAAM,MAAM,gBAAgB,mBAAmB,KAAA,KAAa,WAAW,KAAK,SAAS,CAAC,CAAC,MAAM;CAE7F,MAAM,mBAAyC,CAAC,OAAO,mBAAmB,KAAA,IAAY,SAAS;CAC/F,MAAM,CAAC,SAAS,cAAc,gBAA8B;EAC1D;EACA,QAAQ;EACR,OAAO;CACT,EAAE;CACF,MAAM,SAAS,OAAgC,IAAI;CAMnD,MAAM,iBAAiB,QAAQ,QAAQ,OAAO,QAAQ,WAAW;CACjE,IAAI,CAAC,gBAAgB,WAAW;EAAE;EAAK,QAAQ;EAAgB,OAAO;CAAiB,CAAC;CACxF,MAAM,YAAY,iBAAiB,QAAQ,QAAQ;CAEnD,IAAI,UAAU,KAAK,kBAAkB,SAAS;CAE9C,MAAM,QAAQ,WAAW,KAAK,SAAS,IAAI;CAa3C,gBAAgB;EACd,MAAM,MAAM,OAAO;EACnB,IAAI,CAAC,KAAK;EAEV,IAAI,IAAI,eAAe,GAAG,WAAW;GAAE;GAAK,QAAQ;GAAgB,OAAO;EAAS,CAAC;OAChF,IAAI,IAAI,aAAa,IAAI,aAAa,KAAK,KAAK,IAAI,aAAa,QAAQ,IAC5E,WAAW;GAAE;GAAK,QAAQ;GAAgB,OAAO;EAAQ,CAAC;CAE9D,GAAG,CAAC,CAAC;CAIL,MAAM,aAAa,kBACX,WAAW;EAAE;EAAK,QAAQ;EAAgB,OAAO;CAAS,CAAC,GACjE,CAAC,KAAK,cAAc,CACtB;CACA,MAAM,cAAc,kBACZ,WAAW;EAAE;EAAK,QAAQ;EAAgB,OAAO;CAAQ,CAAC,GAChE,CAAC,KAAK,cAAc,CACtB;CAEA,IAAI,CAAC,YAAY,CAAC,OAEhB,OAAO;CAGT,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,MAAM;EAC1B,OAAO;GACL,EAAE,KAAK,GAAG;GACV;GACA;IAEE,KAAK,OAAO,KAAA;IACZ,QAAQ;IACR,SAAS;GACX;EACF;CACF,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"poster.js","names":[],"sources":["../../../../src/ui/poster/poster.tsx"],"sourcesContent":["import { PosterCore, PosterDataAttrs, type PosterImageLoadState } from '@videojs/core';\nimport { logMissingFeature, selectMetadata, selectPlayback } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface PosterProps extends UIComponentProps<'img', PosterCore.State> {}\n\n/** The source currently requested from the image, and how it is faring. */\ninterface ImageRequest {\n src: string;\n srcSet: string | undefined;\n state: PosterImageLoadState;\n}\n\n/**\n * Displays the video poster image. Shows before playback starts, hides after.\n *\n * Renders an `<img>`, so `srcset`, `sizes`, `loading`, and the rest of the image attributes are yours. Leave the source\n * off and the player's resolved `poster` fills it in.\n *\n * The image is decorative unless you say otherwise. Describe a poster that carries meaning by passing your own `alt`.\n *\n * @example\n * ```tsx\n * <VideoPlayer poster=\"poster.jpg\">\n * <Poster />\n * </VideoPlayer>\n *\n * <Poster srcSet=\"poster-480.jpg 480w, poster-1080.jpg 1080w\" sizes=\"100vw\" />\n *\n * <Poster\n * render={({ src, ...props }: ComponentProps<'img'>) =>\n * src ? <Image {...props} src={src} alt=\"\" fill /> : null\n * }\n * />\n * ```;\n */\nexport const Poster = forwardRef(function Poster(\n componentProps: PosterProps,\n forwardedRef: ForwardedRef<HTMLImageElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n\n const playback = usePlayer(selectPlayback);\n const metadata = usePlayer(selectMetadata);\n\n const [core] = useState(() => new PosterCore());\n\n // The metadata feature is optional: without it nothing resolves a URL, and\n // this stays a visibility wrapper around whatever `src` was passed.\n if (playback) {\n core.setMedia({\n started: playback.started,\n poster: metadata?.poster ?? '',\n });\n }\n\n const { src: authoredSrc, srcSet: authoredSrcSet } = elementProps as { src?: string; srcSet?: string };\n\n // Either authored source makes the image yours, matching `hasSource` in the\n // HTML element. Filling `src` alongside a `srcset` would inject the player's\n // poster into your candidate set as the 1x entry.\n const src = authoredSrc ?? (authoredSrcSet === undefined && playback ? core.getState().src : '');\n\n const initialLoadState: PosterImageLoadState = !src && authoredSrcSet === undefined ? 'none' : 'loading';\n const [request, setRequest] = useState<ImageRequest>(() => ({\n src,\n srcSet: authoredSrcSet,\n state: initialLoadState,\n }));\n const imgRef = useRef<HTMLImageElement | null>(null);\n\n // Keep only the active request. Retaining a settled source by value would\n // resurrect its old state when the image moved A -> B -> A, even though the\n // second A is a new request. `srcSet` is part of the identity because `src`\n // stays empty when it is the only source.\n const matchesRequest = request.src === src && request.srcSet === authoredSrcSet;\n\n if (!matchesRequest) setRequest({ src, srcSet: authoredSrcSet, state: initialLoadState });\n\n const loadState = matchesRequest ? request.state : initialLoadState;\n\n if (playback) core.setImageLoadState(loadState);\n\n const state = playback ? core.getState() : null;\n\n // An image can already be settled when we first see it — hydrated from server\n // markup, say — in which case neither `load` nor `error` ever fires. Decoded\n // pixels stand on their own; the absence of them only means failure once\n // `complete` can be trusted, which takes a source on the image itself, since one\n // sourced by a `<picture>` an override wrapped it in is `complete` regardless.\n //\n // Only when we first see it. A later source change leaves the previous request's\n // pixels in place until the new one settles, so reading them again would call\n // the new source loaded while it is still fetching. `load` and `error` cover\n // every source after this one, the way the HTML element reads an image once.\n // oxlint-disable-next-line react/exhaustive-deps -- reads the first source only, at mount\n useEffect(() => {\n const img = imgRef.current;\n if (!img) return;\n\n if (img.naturalWidth > 0) setRequest({ src, srcSet: authoredSrcSet, state: 'loaded' });\n else if (img.complete && (img.getAttribute('src') || img.hasAttribute('srcset'))) {\n setRequest({ src, srcSet: authoredSrcSet, state: 'error' });\n }\n }, []);\n\n // Recorded against the source this render asked for, not the one on the\n // element: a `render` override is free to rewrite it.\n const handleLoad = useCallback(\n () => setRequest({ src, srcSet: authoredSrcSet, state: 'loaded' }),\n [src, authoredSrcSet]\n );\n const handleError = useCallback(\n () => setRequest({ src, srcSet: authoredSrcSet, state: 'error' }),\n [src, authoredSrcSet]\n );\n\n if (!playback || !state) {\n if (__DEV__) logMissingFeature('Poster', 'playback');\n\n return null;\n }\n\n return renderElement(\n 'img',\n { render, className, style },\n {\n state,\n stateAttrMap: PosterDataAttrs,\n ref: [forwardedRef, imgRef],\n props: [\n { alt: '' },\n elementProps,\n {\n // An empty `src` requests the document URL, so leave the attribute off.\n src: src || undefined,\n onLoad: handleLoad,\n onError: handleError,\n },\n ],\n }\n );\n});\n\nexport namespace Poster {\n export type Props = PosterProps;\n export type State = PosterCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAa,SAAS,WAAW,SAAS,OACxC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CAEtD,MAAM,WAAW,UAAU,cAAc;CACzC,MAAM,WAAW,UAAU,cAAc;CAEzC,MAAM,CAAC,QAAQ,eAAe,IAAI,WAAW,CAAC;CAI9C,IAAI,UACF,KAAK,SAAS;EACZ,SAAS,SAAS;EAClB,QAAQ,UAAU,UAAU;CAC9B,CAAC;CAGH,MAAM,EAAE,KAAK,aAAa,QAAQ,mBAAmB;CAKrD,MAAM,MAAM,gBAAgB,mBAAmB,KAAA,KAAa,WAAW,KAAK,SAAS,CAAC,CAAC,MAAM;CAE7F,MAAM,mBAAyC,CAAC,OAAO,mBAAmB,KAAA,IAAY,SAAS;CAC/F,MAAM,CAAC,SAAS,cAAc,gBAA8B;EAC1D;EACA,QAAQ;EACR,OAAO;CACT,EAAE;CACF,MAAM,SAAS,OAAgC,IAAI;CAMnD,MAAM,iBAAiB,QAAQ,QAAQ,OAAO,QAAQ,WAAW;CAEjE,IAAI,CAAC,gBAAgB,WAAW;EAAE;EAAK,QAAQ;EAAgB,OAAO;CAAiB,CAAC;CAExF,MAAM,YAAY,iBAAiB,QAAQ,QAAQ;CAEnD,IAAI,UAAU,KAAK,kBAAkB,SAAS;CAE9C,MAAM,QAAQ,WAAW,KAAK,SAAS,IAAI;CAa3C,gBAAgB;EACd,MAAM,MAAM,OAAO;EACnB,IAAI,CAAC,KAAK;EAEV,IAAI,IAAI,eAAe,GAAG,WAAW;GAAE;GAAK,QAAQ;GAAgB,OAAO;EAAS,CAAC;OAChF,IAAI,IAAI,aAAa,IAAI,aAAa,KAAK,KAAK,IAAI,aAAa,QAAQ,IAC5E,WAAW;GAAE;GAAK,QAAQ;GAAgB,OAAO;EAAQ,CAAC;CAE9D,GAAG,CAAC,CAAC;CAIL,MAAM,aAAa,kBACX,WAAW;EAAE;EAAK,QAAQ;EAAgB,OAAO;CAAS,CAAC,GACjE,CAAC,KAAK,cAAc,CACtB;CACA,MAAM,cAAc,kBACZ,WAAW;EAAE;EAAK,QAAQ;EAAgB,OAAO;CAAQ,CAAC,GAChE,CAAC,KAAK,cAAc,CACtB;CAEA,IAAI,CAAC,YAAY,CAAC,OAGhB,OAAO;CAGT,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,MAAM;EAC1B,OAAO;GACL,EAAE,KAAK,GAAG;GACV;GACA;IAEE,KAAK,OAAO,KAAA;IACZ,QAAQ;IACR,SAAS;GACX;EACF;CACF,CACF;AACF,CAAC"}
@@ -9,9 +9,8 @@ const useQualityRadioOptions = createRadioOptionsHook({
9
9
  createCore: () => new QualityRadioGroupCore()
10
10
  });
11
11
  /**
12
- * Create quality menu options (including an `Auto` option) from the player
13
- * video rendition state. Returns `null` when the quality feature is not
14
- * configured.
12
+ * Create quality menu options (including an `Auto` option) from the player video rendition state. Returns `null` when
13
+ * the quality feature is not configured.
15
14
  *
16
15
  * @param props - Optional `label`, `formatRendition`, and `disabled` overrides.
17
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"use-quality-options.js","names":[],"sources":["../../../../src/ui/quality/use-quality-options.ts"],"sourcesContent":["import { QualityRadioGroupCore, type QualityRadioGroupOption } from '@videojs/core';\nimport { selectQuality } from '@videojs/core/dom';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface QualityOptionsProps extends QualityRadioGroupCore.Props {}\n\nexport type QualityOption = TranslatedRadioOption<QualityRadioGroupOption>;\n\nexport interface QualityOptionsResult {\n state: QualityRadioGroupCore.State;\n label: string;\n value: string;\n selectedLabel: string;\n options: QualityOption[];\n disabled: boolean;\n hidden: boolean;\n setValue: (value: string) => void;\n}\n\nconst useQualityRadioOptions = createRadioOptionsHook({\n name: 'useQualityOptions',\n feature: 'quality',\n selector: selectQuality,\n createCore: () => new QualityRadioGroupCore(),\n});\n\n/**\n * Create quality menu options (including an `Auto` option) from the player\n * video rendition state. Returns `null` when the quality feature is not\n * configured.\n *\n * @param props - Optional `label`, `formatRendition`, and `disabled` overrides.\n */\nexport function useQualityOptions(props?: QualityOptionsProps): QualityOptionsResult | null {\n 'use no memo';\n\n return useQualityRadioOptions(props);\n}\n\nexport namespace useQualityOptions {\n export type Props = QualityOptionsProps;\n export type Result = QualityOptionsResult;\n export type Option = QualityOption;\n}\n"],"mappings":";;;;AAoBA,MAAM,yBAAyB,uBAAuB;CACpD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAI,sBAAsB;AAC9C,CAAC;;;;;;;;AASD,SAAgB,kBAAkB,OAA0D;CAC1F;CAEA,OAAO,uBAAuB,KAAK;AACrC"}
1
+ {"version":3,"file":"use-quality-options.js","names":[],"sources":["../../../../src/ui/quality/use-quality-options.ts"],"sourcesContent":["import { QualityRadioGroupCore, type QualityRadioGroupOption } from '@videojs/core';\nimport { selectQuality } from '@videojs/core/dom';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface QualityOptionsProps extends QualityRadioGroupCore.Props {}\n\nexport type QualityOption = TranslatedRadioOption<QualityRadioGroupOption>;\n\nexport interface QualityOptionsResult {\n state: QualityRadioGroupCore.State;\n label: string;\n value: string;\n selectedLabel: string;\n options: QualityOption[];\n disabled: boolean;\n hidden: boolean;\n setValue: (value: string) => void;\n}\n\nconst useQualityRadioOptions = createRadioOptionsHook({\n name: 'useQualityOptions',\n feature: 'quality',\n selector: selectQuality,\n createCore: () => new QualityRadioGroupCore(),\n});\n\n/**\n * Create quality menu options (including an `Auto` option) from the player video rendition state. Returns `null` when\n * the quality feature is not configured.\n *\n * @param props - Optional `label`, `formatRendition`, and `disabled` overrides.\n */\nexport function useQualityOptions(props?: QualityOptionsProps): QualityOptionsResult | null {\n 'use no memo';\n\n return useQualityRadioOptions(props);\n}\n\nexport namespace useQualityOptions {\n export type Props = QualityOptionsProps;\n export type Result = QualityOptionsResult;\n export type Option = QualityOption;\n}\n"],"mappings":";;;;AAoBA,MAAM,yBAAyB,uBAAuB;CACpD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAI,sBAAsB;AAC9C,CAAC;;;;;;;AAQD,SAAgB,kBAAkB,OAA0D;CAC1F;CAEA,OAAO,uBAAuB,KAAK;AACrC"}
@@ -3,24 +3,24 @@ import { useQualityOptions } from "../quality/use-quality-options.js";
3
3
  import { getStateDataAttrs } from "@videojs/core/dom";
4
4
  import { Fragment, forwardRef } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
- import { isFunction } from "@videojs/utils/predicate";
7
6
  import { QualityRadioGroupDataAttrs } from "@videojs/core";
7
+ import { isFunction } from "@videojs/utils/predicate";
8
8
  //#region src/ui/quality-radio-group/quality-radio-group.tsx
9
9
  /**
10
10
  * Renders menu radio items for the player's video renditions.
11
11
  *
12
12
  * @example
13
- * ```tsx
14
- * <QualityRadioGroup
15
- * renderItem={(props, item) => (
16
- * <Menu.RadioItem {...props}>
17
- * {item.label}
18
- * {item.tier ? <sup>{item.tier}</sup> : null}
19
- * <Menu.ItemIndicator checked={item.checked} />
20
- * </Menu.RadioItem>
21
- * )}
22
- * />
23
- * ```
13
+ * ```tsx
14
+ * <QualityRadioGroup
15
+ * renderItem={(props, item) => (
16
+ * <Menu.RadioItem {...props}>
17
+ * {item.label}
18
+ * {item.tier ? <sup>{item.tier}</sup> : null}
19
+ * <Menu.ItemIndicator checked={item.checked} />
20
+ * </Menu.RadioItem>
21
+ * )}
22
+ * />;
23
+ * ```;
24
24
  */
25
25
  const QualityRadioGroup = forwardRef(function QualityRadioGroup(componentProps, forwardedRef) {
26
26
  const { renderItem, render, className, style, label, formatRendition, disabled, "aria-label": ariaLabelProp, "aria-labelledby": ariaLabelledBy, ...elementProps } = componentProps;
@@ -1 +1 @@
1
- {"version":3,"file":"quality-radio-group.js","names":[],"sources":["../../../../src/ui/quality-radio-group/quality-radio-group.tsx"],"sourcesContent":["import { type QualityRadioGroupCore, QualityRadioGroupDataAttrs } from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { ReactElement } from 'react';\nimport { Fragment, forwardRef } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../utils/types';\nimport { MenuRadioGroup } from '../menu/menu-radio-group';\nimport type { MenuRadioItemProps } from '../menu/menu-radio-item';\nimport { type QualityOption, type QualityOptionsProps, useQualityOptions } from '../quality/use-quality-options';\n\nexport type QualityRadioGroupItemState = QualityOption & {\n /** Whether this quality option is currently selected. */\n checked: boolean;\n};\n\nexport interface QualityRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Rendition value represented by the item. */\n 'data-rendition': string;\n}\n\nexport interface QualityRadioGroupProps\n extends Omit<UIComponentProps<'div', QualityRadioGroupCore.State>, 'children'>,\n QualityOptionsProps {\n /** Render one consumer-owned menu radio item for every quality option. */\n renderItem: (props: QualityRadioGroupItemProps, state: QualityRadioGroupItemState) => ReactElement;\n}\n\n/**\n * Renders menu radio items for the player's video renditions.\n *\n * @example\n * ```tsx\n * <QualityRadioGroup\n * renderItem={(props, item) => (\n * <Menu.RadioItem {...props}>\n * {item.label}\n * {item.tier ? <sup>{item.tier}</sup> : null}\n * <Menu.ItemIndicator checked={item.checked} />\n * </Menu.RadioItem>\n * )}\n * />\n * ```\n */\nexport const QualityRadioGroup = forwardRef<HTMLDivElement, QualityRadioGroupProps>(\n function QualityRadioGroup(componentProps, forwardedRef) {\n const {\n renderItem,\n render,\n className,\n style,\n label,\n formatRendition,\n disabled,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledBy,\n ...elementProps\n } = componentProps;\n const quality = useQualityOptions({ label, formatRendition, disabled });\n if (!quality) return null;\n\n const { state, value, options, setValue } = quality;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? quality.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, QualityRadioGroupDataAttrs)}\n {...elementProps}\n ref={forwardedRef}\n className={isFunction(className) ? className(state) : className}\n style={isFunction(style) ? style(state) : style}\n render={isFunction(render) ? (props: HTMLProps) => render(props, state) : render}\n value={value}\n onValueChange={setValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-disabled={state.disabled || undefined}\n hidden={state.hidden}\n >\n {options.map((option) => {\n const itemState = { ...option, checked: option.value === value };\n\n return (\n <Fragment key={option.value}>\n {renderItem(\n {\n value: option.value,\n disabled: option.disabled,\n 'data-rendition': option.value,\n children: option.label,\n },\n itemState\n )}\n </Fragment>\n );\n })}\n </MenuRadioGroup>\n );\n }\n);\n\nexport namespace QualityRadioGroup {\n export type Props = QualityRadioGroupProps;\n export type State = QualityRadioGroupCore.State;\n export type ItemProps = QualityRadioGroupItemProps;\n export type ItemState = QualityRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA4CA,MAAa,oBAAoB,WAC/B,SAAS,kBAAkB,gBAAgB,cAAc;CACvD,MAAM,EACJ,YACA,QACA,WACA,OACA,OACA,iBACA,UACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,UAAU,kBAAkB;EAAE;EAAO;EAAiB;CAAS,CAAC;CACtE,IAAI,CAAC,SAAS,OAAO;CAErB,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,QAAQ,QAAQ,KAAA;CAEnF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,0BAA0B;EACvD,GAAI;EACJ,KAAK;EACL,WAAW,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;EACtD,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;EAC1C,QAAQ,WAAW,MAAM,KAAK,UAAqB,OAAO,OAAO,KAAK,IAAI;EACnE;EACP,eAAe;EACf,cAAY;EACZ,mBAAiB;EACjB,iBAAe,MAAM,YAAY,KAAA;EACjC,QAAQ,MAAM;EAEb,UAAA,QAAQ,KAAK,WAAW;GACvB,MAAM,YAAY;IAAE,GAAG;IAAQ,SAAS,OAAO,UAAU;GAAM;GAE/D,OACE,oBAAC,UAAD,EAAA,UACG,WACC;IACE,OAAO,OAAO;IACd,UAAU,OAAO;IACjB,kBAAkB,OAAO;IACzB,UAAU,OAAO;GACnB,GACA,SACF,EACQ,GAVK,OAAO,KAUZ;EAEd,CAAC;CACa,CAAA;AAEpB,CACF"}
1
+ {"version":3,"file":"quality-radio-group.js","names":[],"sources":["../../../../src/ui/quality-radio-group/quality-radio-group.tsx"],"sourcesContent":["import { type QualityRadioGroupCore, QualityRadioGroupDataAttrs } from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { ReactElement } from 'react';\nimport { Fragment, forwardRef } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../utils/types';\nimport { MenuRadioGroup } from '../menu/menu-radio-group';\nimport type { MenuRadioItemProps } from '../menu/menu-radio-item';\nimport { type QualityOption, type QualityOptionsProps, useQualityOptions } from '../quality/use-quality-options';\n\nexport type QualityRadioGroupItemState = QualityOption & {\n /** Whether this quality option is currently selected. */\n checked: boolean;\n};\n\nexport interface QualityRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Rendition value represented by the item. */\n 'data-rendition': string;\n}\n\nexport interface QualityRadioGroupProps\n extends Omit<UIComponentProps<'div', QualityRadioGroupCore.State>, 'children'>, QualityOptionsProps {\n /** Render one consumer-owned menu radio item for every quality option. */\n renderItem: (props: QualityRadioGroupItemProps, state: QualityRadioGroupItemState) => ReactElement;\n}\n\n/**\n * Renders menu radio items for the player's video renditions.\n *\n * @example\n * ```tsx\n * <QualityRadioGroup\n * renderItem={(props, item) => (\n * <Menu.RadioItem {...props}>\n * {item.label}\n * {item.tier ? <sup>{item.tier}</sup> : null}\n * <Menu.ItemIndicator checked={item.checked} />\n * </Menu.RadioItem>\n * )}\n * />;\n * ```;\n */\nexport const QualityRadioGroup = forwardRef<HTMLDivElement, QualityRadioGroupProps>(\n function QualityRadioGroup(componentProps, forwardedRef) {\n const {\n renderItem,\n render,\n className,\n style,\n label,\n formatRendition,\n disabled,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledBy,\n ...elementProps\n } = componentProps;\n const quality = useQualityOptions({ label, formatRendition, disabled });\n if (!quality) return null;\n\n const { state, value, options, setValue } = quality;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? quality.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, QualityRadioGroupDataAttrs)}\n {...elementProps}\n ref={forwardedRef}\n className={isFunction(className) ? className(state) : className}\n style={isFunction(style) ? style(state) : style}\n render={isFunction(render) ? (props: HTMLProps) => render(props, state) : render}\n value={value}\n onValueChange={setValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-disabled={state.disabled || undefined}\n hidden={state.hidden}\n >\n {options.map((option) => {\n const itemState = { ...option, checked: option.value === value };\n\n return (\n <Fragment key={option.value}>\n {renderItem(\n {\n value: option.value,\n disabled: option.disabled,\n 'data-rendition': option.value,\n children: option.label,\n },\n itemState\n )}\n </Fragment>\n );\n })}\n </MenuRadioGroup>\n );\n }\n);\n\nexport namespace QualityRadioGroup {\n export type Props = QualityRadioGroupProps;\n export type State = QualityRadioGroupCore.State;\n export type ItemProps = QualityRadioGroupItemProps;\n export type ItemState = QualityRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAa,oBAAoB,WAC/B,SAAS,kBAAkB,gBAAgB,cAAc;CACvD,MAAM,EACJ,YACA,QACA,WACA,OACA,OACA,iBACA,UACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,UAAU,kBAAkB;EAAE;EAAO;EAAiB;CAAS,CAAC;CACtE,IAAI,CAAC,SAAS,OAAO;CAErB,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,QAAQ,QAAQ,KAAA;CAEnF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,0BAA0B;EACvD,GAAI;EACJ,KAAK;EACL,WAAW,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;EACtD,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;EAC1C,QAAQ,WAAW,MAAM,KAAK,UAAqB,OAAO,OAAO,KAAK,IAAI;EACnE;EACP,eAAe;EACf,cAAY;EACZ,mBAAiB;EACjB,iBAAe,MAAM,YAAY,KAAA;EACjC,QAAQ,MAAM;EAEb,UAAA,QAAQ,KAAK,WAAW;GACvB,MAAM,YAAY;IAAE,GAAG;IAAQ,SAAS,OAAO,UAAU;GAAM;GAE/D,OACE,oBAAC,UAAD,EAAA,UACG,WACC;IACE,OAAO,OAAO;IACd,UAAU,OAAO;IACjB,kBAAkB,OAAO;IACzB,UAAU,OAAO;GACnB,GACA,SACF,EACQ,GAVK,OAAO,KAUZ;EAEd,CAAC;CACa,CAAA;AAEpB,CACF"}
@@ -6,18 +6,18 @@ import { SeekButtonCore, SeekButtonDataAttrs } from "@videojs/core";
6
6
  * A button that seeks forward or backward by a configurable number of seconds.
7
7
  *
8
8
  * @example
9
- * ```tsx
10
- * <SeekButton seconds={-10} />
9
+ * ```tsx
10
+ * <SeekButton seconds={-10} />
11
11
  *
12
- * <SeekButton
12
+ * <SeekButton
13
13
  * seconds={30}
14
14
  * render={(props, state) => (
15
- * <button {...props}>
16
- * {state.direction === 'backward' ? <RewindIcon /> : <FastForwardIcon />}
17
- * </button>
15
+ * <button {...props}>
16
+ * {state.direction === 'backward' ? <RewindIcon /> : <FastForwardIcon />}
17
+ * </button>
18
18
  * )}
19
- * />
20
- * ```
19
+ * />
20
+ * ```;
21
21
  */
22
22
  const SeekButton = createMediaButton({
23
23
  displayName: "SeekButton",
@@ -1 +1 @@
1
- {"version":3,"file":"seek-button.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"sourcesContent":["import { SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface SeekButtonProps extends UIComponentProps<'button', SeekButtonCore.State>, SeekButtonCore.Props {}\n\n/**\n * A button that seeks forward or backward by a configurable number of seconds.\n *\n * @example\n * ```tsx\n * <SeekButton seconds={-10} />\n *\n * <SeekButton\n * seconds={30}\n * render={(props, state) => (\n * <button {...props}>\n * {state.direction === 'backward' ? <RewindIcon /> : <FastForwardIcon />}\n * </button>\n * )}\n * />\n * ```\n */\nexport const SeekButton = createMediaButton<SeekButtonCore, SeekButtonProps>({\n displayName: 'SeekButton',\n core: SeekButtonCore,\n stateAttrMap: SeekButtonDataAttrs,\n selector: selectTime,\n action: (core, state) => core.seek(state),\n hotkeyAction: 'seekStep',\n hotkeyValue: (props) => (typeof props.seconds === 'number' ? props.seconds : SeekButtonCore.defaultProps.seconds),\n});\n\nexport namespace SeekButton {\n export type Props = SeekButtonProps;\n export type State = SeekButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAyBA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,KAAK,KAAK;CACxC,cAAc;CACd,cAAc,UAAW,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU,eAAe,aAAa;AAC3G,CAAC"}
1
+ {"version":3,"file":"seek-button.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"sourcesContent":["import { SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface SeekButtonProps extends UIComponentProps<'button', SeekButtonCore.State>, SeekButtonCore.Props {}\n\n/**\n * A button that seeks forward or backward by a configurable number of seconds.\n *\n * @example\n * ```tsx\n * <SeekButton seconds={-10} />\n *\n * <SeekButton\n * seconds={30}\n * render={(props, state) => (\n * <button {...props}>\n * {state.direction === 'backward' ? <RewindIcon /> : <FastForwardIcon />}\n * </button>\n * )}\n * />\n * ```;\n */\nexport const SeekButton = createMediaButton<SeekButtonCore, SeekButtonProps>({\n displayName: 'SeekButton',\n core: SeekButtonCore,\n stateAttrMap: SeekButtonDataAttrs,\n selector: selectTime,\n action: (core, state) => core.seek(state),\n hotkeyAction: 'seekStep',\n hotkeyValue: (props) => (typeof props.seconds === 'number' ? props.seconds : SeekButtonCore.defaultProps.seconds),\n});\n\nexport namespace SeekButton {\n export type Props = SeekButtonProps;\n export type State = SeekButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAyBA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,KAAK,KAAK;CACxC,cAAc;CACd,cAAc,UAAW,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU,eAAe,aAAa;AAC3G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/seek-indicator/context.tsx"],"sourcesContent":["import type { SeekIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface SeekIndicatorContextValue {\n state: SeekIndicatorCore.State;\n}\n\nconst SeekIndicatorContext = createContext<SeekIndicatorContextValue | null>(null);\n\nexport function SeekIndicatorProvider({ value, children }: ProviderProps<SeekIndicatorContextValue>) {\n return <SeekIndicatorContext.Provider value={value}>{children}</SeekIndicatorContext.Provider>;\n}\n\nexport function useSeekIndicatorContext(): SeekIndicatorContextValue {\n const ctx = useContext(SeekIndicatorContext);\n if (!ctx) throw new Error('SeekIndicator child compounds must be used within a SeekIndicator.Root');\n return ctx;\n}\n"],"mappings":";;;AAOA,MAAM,uBAAuB,cAAgD,IAAI;AAEjF,SAAgB,sBAAsB,EAAE,OAAO,YAAsD;CACnG,OAAO,oBAAC,qBAAqB,UAAtB;EAAsC;EAAQ;CAAwC,CAAA;AAC/F;AAEA,SAAgB,0BAAqD;CACnE,MAAM,MAAM,WAAW,oBAAoB;CAC3C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,wEAAwE;CAClG,OAAO;AACT"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/seek-indicator/context.tsx"],"sourcesContent":["import type { SeekIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface SeekIndicatorContextValue {\n state: SeekIndicatorCore.State;\n}\n\nconst SeekIndicatorContext = createContext<SeekIndicatorContextValue | null>(null);\n\nexport function SeekIndicatorProvider({ value, children }: ProviderProps<SeekIndicatorContextValue>) {\n return <SeekIndicatorContext.Provider value={value}>{children}</SeekIndicatorContext.Provider>;\n}\n\nexport function useSeekIndicatorContext(): SeekIndicatorContextValue {\n const ctx = useContext(SeekIndicatorContext);\n if (!ctx) throw new Error('SeekIndicator child compounds must be used within a SeekIndicator.Root');\n\n return ctx;\n}\n"],"mappings":";;;AAOA,MAAM,uBAAuB,cAAgD,IAAI;AAEjF,SAAgB,sBAAsB,EAAE,OAAO,YAAsD;CACnG,OAAO,oBAAC,qBAAqB,UAAtB;EAAsC;EAAQ;CAAwC,CAAA;AAC/F;AAEA,SAAgB,0BAAqD;CACnE,MAAM,MAAM,WAAW,oBAAoB;CAC3C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,wEAAwE;CAElG,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"seek-indicator-root.js","names":[],"sources":["../../../../src/ui/seek-indicator/seek-indicator-root.tsx"],"sourcesContent":["import { SeekIndicatorCore, SeekIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicator/use-input-indicator-root';\nimport { SeekIndicatorProvider } from './context';\n\nexport interface SeekIndicatorRootProps\n extends UIComponentProps<'div', SeekIndicatorCore.State>,\n SeekIndicatorCore.Props {}\n\nexport const SeekIndicatorRoot = forwardRef(function SeekIndicatorRoot(\n componentProps: SeekIndicatorRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, closeDelay, ...elementProps } = componentProps;\n const { elementRef, present, state } = useInputIndicatorRoot(() => new SeekIndicatorCore(), { closeDelay });\n\n if (!present) return null;\n\n return (\n <SeekIndicatorProvider value={{ state }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SeekIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n </SeekIndicatorProvider>\n );\n});\n\nexport namespace SeekIndicatorRoot {\n export type Props = SeekIndicatorRootProps;\n export type State = SeekIndicatorCore.State;\n}\n"],"mappings":";;;;;;;AAaA,MAAa,oBAAoB,WAAW,SAAS,kBACnD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,GAAG,iBAAiB;CAClE,MAAM,EAAE,YAAY,SAAS,UAAU,4BAA4B,IAAI,kBAAkB,GAAG,EAAE,WAAW,CAAC;CAE1G,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,uBAAD;EAAuB,OAAO,EAAE,MAAM;EACnC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACqB,CAAA;AAE3B,CAAC"}
1
+ {"version":3,"file":"seek-indicator-root.js","names":[],"sources":["../../../../src/ui/seek-indicator/seek-indicator-root.tsx"],"sourcesContent":["import { SeekIndicatorCore, SeekIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicator/use-input-indicator-root';\nimport { SeekIndicatorProvider } from './context';\n\nexport interface SeekIndicatorRootProps\n extends UIComponentProps<'div', SeekIndicatorCore.State>, SeekIndicatorCore.Props {}\n\nexport const SeekIndicatorRoot = forwardRef(function SeekIndicatorRoot(\n componentProps: SeekIndicatorRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, closeDelay, ...elementProps } = componentProps;\n const { elementRef, present, state } = useInputIndicatorRoot(() => new SeekIndicatorCore(), { closeDelay });\n if (!present) return null;\n\n return (\n <SeekIndicatorProvider value={{ state }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SeekIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n </SeekIndicatorProvider>\n );\n});\n\nexport namespace SeekIndicatorRoot {\n export type Props = SeekIndicatorRootProps;\n export type State = SeekIndicatorCore.State;\n}\n"],"mappings":";;;;;;;AAYA,MAAa,oBAAoB,WAAW,SAAS,kBACnD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,GAAG,iBAAiB;CAClE,MAAM,EAAE,YAAY,SAAS,UAAU,4BAA4B,IAAI,kBAAkB,GAAG,EAAE,WAAW,CAAC;CAC1G,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,uBAAD;EAAuB,OAAO,EAAE,MAAM;EACnC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACqB,CAAA;AAE3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.tsx"],"sourcesContent":["import type { SliderInput, SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport type { State } from '@videojs/store';\nimport type { ProviderProps, RefCallback } from 'react';\nimport { createContext, useContext, useSyncExternalStore } from 'react';\n\nexport interface SliderContextValue {\n state: SliderState;\n /** Pointer position converted to the value domain (not 0–100 percent). */\n pointerValue: number;\n input?: State<SliderInput> | undefined;\n getPointerValue?: ((percent: number) => number) | undefined;\n thumbRef: RefCallback<HTMLElement>;\n thumbProps: SliderThumbProps;\n stateAttrMap: StateAttrMap<SliderState>;\n getAttrs: (state: SliderState) => object;\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SliderContext = createContext<SliderContextValue | null>(null);\n\ntype SliderProviderProps = ProviderProps<SliderContextValue>;\n\nexport function SliderProvider({ value, children }: SliderProviderProps) {\n return <SliderContext.Provider value={value}>{children}</SliderContext.Provider>;\n}\n\nexport function useSliderContext(): SliderContextValue {\n const ctx = useContext(SliderContext);\n if (!ctx) throw new Error('Slider compound components must be used within a Slider.Root');\n return ctx;\n}\n\nexport function useSliderPointerValue(enabled = true): number {\n const context = useSliderContext();\n const percent = useSyncExternalStore(\n (onChange) => context.input?.subscribe(onChange) ?? (() => {}),\n () => (enabled ? (context.input?.current.pointerPercent ?? null) : null),\n () => (enabled ? (context.input?.current.pointerPercent ?? null) : null)\n );\n return percent === null ? context.pointerValue : (context.getPointerValue?.(percent) ?? context.pointerValue);\n}\n"],"mappings":";;;AAmBA,MAAM,gBAAgB,cAAyC,IAAI;AAInE,SAAgB,eAAe,EAAE,OAAO,YAAiC;CACvE,OAAO,oBAAC,cAAc,UAAf;EAA+B;EAAQ;CAAiC,CAAA;AACjF;AAEA,SAAgB,mBAAuC;CACrD,MAAM,MAAM,WAAW,aAAa;CACpC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,8DAA8D;CACxF,OAAO;AACT;AAEA,SAAgB,sBAAsB,UAAU,MAAc;CAC5D,MAAM,UAAU,iBAAiB;CACjC,MAAM,UAAU,sBACb,aAAa,QAAQ,OAAO,UAAU,QAAQ,YAAY,CAAC,UACrD,UAAW,QAAQ,OAAO,QAAQ,kBAAkB,OAAQ,YAC5D,UAAW,QAAQ,OAAO,QAAQ,kBAAkB,OAAQ,IACrE;CACA,OAAO,YAAY,OAAO,QAAQ,eAAgB,QAAQ,kBAAkB,OAAO,KAAK,QAAQ;AAClG"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.tsx"],"sourcesContent":["import type { SliderInput, SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport type { State } from '@videojs/store';\nimport type { ProviderProps, RefCallback } from 'react';\nimport { createContext, useContext, useSyncExternalStore } from 'react';\n\nexport interface SliderContextValue {\n state: SliderState;\n /** Pointer position converted to the value domain (not 0–100 percent). */\n pointerValue: number;\n input?: State<SliderInput> | undefined;\n getPointerValue?: ((percent: number) => number) | undefined;\n thumbRef: RefCallback<HTMLElement>;\n thumbProps: SliderThumbProps;\n stateAttrMap: StateAttrMap<SliderState>;\n getAttrs: (state: SliderState) => object;\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SliderContext = createContext<SliderContextValue | null>(null);\n\ntype SliderProviderProps = ProviderProps<SliderContextValue>;\n\nexport function SliderProvider({ value, children }: SliderProviderProps) {\n return <SliderContext.Provider value={value}>{children}</SliderContext.Provider>;\n}\n\nexport function useSliderContext(): SliderContextValue {\n const ctx = useContext(SliderContext);\n if (!ctx) throw new Error('Slider compound components must be used within a Slider.Root');\n\n return ctx;\n}\n\nexport function useSliderPointerValue(enabled = true): number {\n const context = useSliderContext();\n const percent = useSyncExternalStore(\n (onChange) => context.input?.subscribe(onChange) ?? (() => {}),\n () => (enabled ? (context.input?.current.pointerPercent ?? null) : null),\n () => (enabled ? (context.input?.current.pointerPercent ?? null) : null)\n );\n\n return percent === null ? context.pointerValue : (context.getPointerValue?.(percent) ?? context.pointerValue);\n}\n"],"mappings":";;;AAmBA,MAAM,gBAAgB,cAAyC,IAAI;AAInE,SAAgB,eAAe,EAAE,OAAO,YAAiC;CACvE,OAAO,oBAAC,cAAc,UAAf;EAA+B;EAAQ;CAAiC,CAAA;AACjF;AAEA,SAAgB,mBAAuC;CACrD,MAAM,MAAM,WAAW,aAAa;CACpC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,8DAA8D;CAExF,OAAO;AACT;AAEA,SAAgB,sBAAsB,UAAU,MAAc;CAC5D,MAAM,UAAU,iBAAiB;CACjC,MAAM,UAAU,sBACb,aAAa,QAAQ,OAAO,UAAU,QAAQ,YAAY,CAAC,UACrD,UAAW,QAAQ,OAAO,QAAQ,kBAAkB,OAAQ,YAC5D,UAAW,QAAQ,OAAO,QAAQ,kBAAkB,OAAQ,IACrE;CAEA,OAAO,YAAY,OAAO,QAAQ,eAAgB,QAAQ,kBAAkB,OAAO,KAAK,QAAQ;AAClG"}
@@ -1 +1 @@
1
- {"version":3,"file":"slider-root.js","names":[],"sources":["../../../../src/ui/slider/slider-root.tsx"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport { getSliderCSSVars } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from './context';\n\nexport interface SliderRootProps extends UIComponentProps<'div', SliderCore.State>, SliderCore.Props {\n onValueChange?: ((value: number) => void) | undefined;\n onValueCommit?: ((value: number) => void) | undefined;\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const SliderRoot = forwardRef(function SliderRoot(\n componentProps: SliderRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const {\n render,\n className,\n style,\n label,\n min,\n max,\n step,\n largeStep,\n orientation,\n disabled,\n thumbAlignment,\n value = 0,\n onValueChange,\n onValueCommit,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new SliderCore());\n const translator = useTranslator();\n core.setProps({ label, min, max, step, largeStep, orientation, disabled, thumbAlignment });\n\n const {\n state,\n input,\n cssVars,\n rootRef,\n thumbRef: sliderThumbRef,\n rootProps,\n rootStyle,\n thumbProps,\n } = useSlider({\n computeState: (input) => {\n core.setInput(input);\n return core.getSliderState(value);\n },\n getPercent: () => core.percentFromValue(value),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getSliderCSSVars,\n onValueChange: (percent) => onValueChange?.(core.valueFromPercent(percent)),\n onValueCommit: (percent) => onValueCommit?.(core.valueFromPercent(percent)),\n onDragStart,\n onDragEnd,\n });\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: sliderThumbRef,\n thumbProps,\n stateAttrMap: SliderDataAttrs,\n getAttrs: (sliderState) => {\n const attrs = core.getAttrs(sliderState);\n return { ...attrs, 'aria-label': translateText(attrs['aria-label'], translator) };\n },\n formatValue: undefined,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n});\n\nexport namespace SliderRoot {\n export type Props = SliderRootProps;\n export type State = SliderCore.State;\n}\n"],"mappings":";;;;;;;;;;AAkBA,MAAa,aAAa,WAAW,SAAS,WAC5C,gBACA,cACA;CACA,MAAM,EACJ,QACA,WACA,OACA,OACA,KACA,KACA,MACA,WACA,aACA,UACA,gBACA,QAAQ,GACR,eACA,eACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,WAAW,CAAC;CAC9C,MAAM,aAAa,cAAc;CACjC,KAAK,SAAS;EAAE;EAAO;EAAK;EAAK;EAAM;EAAW;EAAa;EAAU;CAAe,CAAC;CAEzF,MAAM,EACJ,OACA,OACA,SACA,SACA,UAAU,gBACV,WACA,WACA,eACE,UAAU;EACZ,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,OAAO,KAAK,eAAe,KAAK;EAClC;EACA,kBAAkB,KAAK,iBAAiB,KAAK;EAC7C,sBAAsB,KAAK,eAAe;EAC1C,2BAA2B,KAAK,oBAAoB;EACpD;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,gBAAgB,YAAY,gBAAgB,KAAK,iBAAiB,OAAO,CAAC;EAC1E,gBAAgB,YAAY,gBAAgB,KAAK,iBAAiB,OAAO,CAAC;EAC1E;EACA;CACF,CAAC;CAED,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,cAAc;GACxD;GACA,kBAAkB,YAAY,KAAK,iBAAiB,OAAO;GAC3D,UAAU;GACV;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAW;IACvC,OAAO;KAAE,GAAG;KAAO,cAAc,cAAc,MAAM,eAAe,UAAU;IAAE;GAClF;GACA,aAAa,KAAA;EACf;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,OAAO;GAC3B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CAAC"}
1
+ {"version":3,"file":"slider-root.js","names":[],"sources":["../../../../src/ui/slider/slider-root.tsx"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport { getSliderCSSVars } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from './context';\n\nexport interface SliderRootProps extends UIComponentProps<'div', SliderCore.State>, SliderCore.Props {\n onValueChange?: ((value: number) => void) | undefined;\n onValueCommit?: ((value: number) => void) | undefined;\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const SliderRoot = forwardRef(function SliderRoot(\n componentProps: SliderRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const {\n render,\n className,\n style,\n label,\n min,\n max,\n step,\n largeStep,\n orientation,\n disabled,\n thumbAlignment,\n value = 0,\n onValueChange,\n onValueCommit,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new SliderCore());\n const translator = useTranslator();\n\n core.setProps({ label, min, max, step, largeStep, orientation, disabled, thumbAlignment });\n\n const {\n state,\n input,\n cssVars,\n rootRef,\n thumbRef: sliderThumbRef,\n rootProps,\n rootStyle,\n thumbProps,\n } = useSlider({\n computeState: (input) => {\n core.setInput(input);\n return core.getSliderState(value);\n },\n getPercent: () => core.percentFromValue(value),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getSliderCSSVars,\n onValueChange: (percent) => onValueChange?.(core.valueFromPercent(percent)),\n onValueCommit: (percent) => onValueCommit?.(core.valueFromPercent(percent)),\n onDragStart,\n onDragEnd,\n });\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: sliderThumbRef,\n thumbProps,\n stateAttrMap: SliderDataAttrs,\n getAttrs: (sliderState) => {\n const attrs = core.getAttrs(sliderState);\n\n return { ...attrs, 'aria-label': translateText(attrs['aria-label'], translator) };\n },\n formatValue: undefined,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n});\n\nexport namespace SliderRoot {\n export type Props = SliderRootProps;\n export type State = SliderCore.State;\n}\n"],"mappings":";;;;;;;;;;AAmBA,MAAa,aAAa,WAAW,SAAS,WAC5C,gBACA,cACA;CACA,MAAM,EACJ,QACA,WACA,OACA,OACA,KACA,KACA,MACA,WACA,aACA,UACA,gBACA,QAAQ,GACR,eACA,eACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,WAAW,CAAC;CAC9C,MAAM,aAAa,cAAc;CAEjC,KAAK,SAAS;EAAE;EAAO;EAAK;EAAK;EAAM;EAAW;EAAa;EAAU;CAAe,CAAC;CAEzF,MAAM,EACJ,OACA,OACA,SACA,SACA,UAAU,gBACV,WACA,WACA,eACE,UAAU;EACZ,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,OAAO,KAAK,eAAe,KAAK;EAClC;EACA,kBAAkB,KAAK,iBAAiB,KAAK;EAC7C,sBAAsB,KAAK,eAAe;EAC1C,2BAA2B,KAAK,oBAAoB;EACpD;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,gBAAgB,YAAY,gBAAgB,KAAK,iBAAiB,OAAO,CAAC;EAC1E,gBAAgB,YAAY,gBAAgB,KAAK,iBAAiB,OAAO,CAAC;EAC1E;EACA;CACF,CAAC;CAED,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,cAAc;GACxD;GACA,kBAAkB,YAAY,KAAK,iBAAiB,OAAO;GAC3D,UAAU;GACV;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAW;IAEvC,OAAO;KAAE,GAAG;KAAO,cAAc,cAAc,MAAM,eAAe,UAAU;IAAE;GAClF;GACA,aAAa,KAAA;EACf;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,OAAO;GAC3B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"slider-thumbnail.js","names":[],"sources":["../../../../src/ui/slider/slider-thumbnail.tsx"],"sourcesContent":["import type { ThumbnailCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport { Thumbnail, type ThumbnailProps } from '../thumbnail/thumbnail';\nimport { useSliderPointerValue } from './context';\n\nexport interface SliderThumbnailProps extends Omit<ThumbnailProps, 'time'> {}\n\nexport const SliderThumbnail = forwardRef<HTMLDivElement, SliderThumbnailProps>(\n function SliderThumbnail(componentProps, forwardedRef) {\n const pointerValue = useSliderPointerValue();\n return <Thumbnail ref={forwardedRef} {...componentProps} time={pointerValue} />;\n }\n);\n\nexport namespace SliderThumbnail {\n export type Props = SliderThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;AAQA,MAAa,kBAAkB,WAC7B,SAAS,gBAAgB,gBAAgB,cAAc;CACrD,MAAM,eAAe,sBAAsB;CAC3C,OAAO,oBAAC,WAAD;EAAW,KAAK;EAAc,GAAI;EAAgB,MAAM;CAAe,CAAA;AAChF,CACF"}
1
+ {"version":3,"file":"slider-thumbnail.js","names":[],"sources":["../../../../src/ui/slider/slider-thumbnail.tsx"],"sourcesContent":["import type { ThumbnailCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport { Thumbnail, type ThumbnailProps } from '../thumbnail/thumbnail';\nimport { useSliderPointerValue } from './context';\n\nexport interface SliderThumbnailProps extends Omit<ThumbnailProps, 'time'> {}\n\nexport const SliderThumbnail = forwardRef<HTMLDivElement, SliderThumbnailProps>(\n function SliderThumbnail(componentProps, forwardedRef) {\n const pointerValue = useSliderPointerValue();\n\n return <Thumbnail ref={forwardedRef} {...componentProps} time={pointerValue} />;\n }\n);\n\nexport namespace SliderThumbnail {\n export type Props = SliderThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;AAQA,MAAa,kBAAkB,WAC7B,SAAS,gBAAgB,gBAAgB,cAAc;CACrD,MAAM,eAAe,sBAAsB;CAE3C,OAAO,oBAAC,WAAD;EAAW,KAAK;EAAc,GAAI;EAAgB,MAAM;CAAe,CAAA;AAChF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"status-announcer.js","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"sourcesContent":["import { createStatusAnnouncerLabels, StatusAnnouncerCore } from '@videojs/core';\nimport { shouldAnnounceStatusChange, subscribeToStatusAnnouncer } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useState, useSyncExternalStore } from 'react';\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { useContainer, usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface StatusAnnouncerProps\n extends UIComponentProps<'div', StatusAnnouncerCore.State>,\n Pick<StatusAnnouncerCore.Props, 'closeDelay' | 'labels'> {}\n\nexport const StatusAnnouncer = forwardRef(function StatusAnnouncer(\n componentProps: StatusAnnouncerProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, closeDelay, labels, ...elementProps } = componentProps;\n const translator = useTranslator();\n const locale = useLocale();\n const [core] = useState(() => new StatusAnnouncerCore());\n const store = usePlayer();\n const container = useContainer();\n useDestroy(core);\n core.setProps({\n closeDelay,\n labels: {\n ...createStatusAnnouncerLabels(translator, locale),\n ...labels,\n },\n shouldAnnounce: () => shouldAnnounceStatusChange(container),\n });\n\n useEffect(() => subscribeToStatusAnnouncer(store, core), [core, store]);\n\n const state = useSyncExternalStore(\n (callback) => core.state.subscribe(callback),\n () => core.state.current,\n () => core.state.current\n );\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [\n elementProps,\n {\n role: 'status',\n children: (\n <span key={state.generation} data-status-announcer-content=\"\">\n {state.label ?? ''}\n </span>\n ),\n },\n ],\n }\n );\n});\n\nexport namespace StatusAnnouncer {\n export type Props = StatusAnnouncerProps;\n export type State = StatusAnnouncerCore.State;\n}\n"],"mappings":";;;;;;;;;AAcA,MAAa,kBAAkB,WAAW,SAAS,gBACjD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,QAAQ,GAAG,iBAAiB;CAC1E,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CACzB,MAAM,CAAC,QAAQ,eAAe,IAAI,oBAAoB,CAAC;CACvD,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAC/B,WAAW,IAAI;CACf,KAAK,SAAS;EACZ;EACA,QAAQ;GACN,GAAG,4BAA4B,YAAY,MAAM;GACjD,GAAG;EACL;EACA,sBAAsB,2BAA2B,SAAS;CAC5D,CAAC;CAED,gBAAgB,2BAA2B,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;CAEtE,MAAM,QAAQ,sBACX,aAAa,KAAK,MAAM,UAAU,QAAQ,SACrC,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CACL,cACA;GACE,MAAM;GACN,UACE,oBAAC,QAAD;IAA6B,iCAA8B;IACxD,UAAA,MAAM,SAAS;GACZ,GAFK,MAAM,UAEX;EAEV,CACF;CACF,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"status-announcer.js","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"sourcesContent":["import { createStatusAnnouncerLabels, StatusAnnouncerCore } from '@videojs/core';\nimport { shouldAnnounceStatusChange, subscribeToStatusAnnouncer } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useState, useSyncExternalStore } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { useContainer, usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface StatusAnnouncerProps\n extends\n UIComponentProps<'div', StatusAnnouncerCore.State>,\n Pick<StatusAnnouncerCore.Props, 'closeDelay' | 'labels'> {}\n\nexport const StatusAnnouncer = forwardRef(function StatusAnnouncer(\n componentProps: StatusAnnouncerProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, closeDelay, labels, ...elementProps } = componentProps;\n const translator = useTranslator();\n const locale = useLocale();\n const [core] = useState(() => new StatusAnnouncerCore());\n const store = usePlayer();\n const container = useContainer();\n\n useDestroy(core);\n core.setProps({\n closeDelay,\n labels: {\n ...createStatusAnnouncerLabels(translator, locale),\n ...labels,\n },\n shouldAnnounce: () => shouldAnnounceStatusChange(container),\n });\n\n useEffect(() => subscribeToStatusAnnouncer(store, core), [core, store]);\n\n const state = useSyncExternalStore(\n (callback) => core.state.subscribe(callback),\n () => core.state.current,\n () => core.state.current\n );\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [\n elementProps,\n {\n role: 'status',\n children: (\n <span key={state.generation} data-status-announcer-content=\"\">\n {state.label ?? ''}\n </span>\n ),\n },\n ],\n }\n );\n});\n\nexport namespace StatusAnnouncer {\n export type Props = StatusAnnouncerProps;\n export type State = StatusAnnouncerCore.State;\n}\n"],"mappings":";;;;;;;;;AAgBA,MAAa,kBAAkB,WAAW,SAAS,gBACjD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,QAAQ,GAAG,iBAAiB;CAC1E,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CACzB,MAAM,CAAC,QAAQ,eAAe,IAAI,oBAAoB,CAAC;CACvD,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAE/B,WAAW,IAAI;CACf,KAAK,SAAS;EACZ;EACA,QAAQ;GACN,GAAG,4BAA4B,YAAY,MAAM;GACjD,GAAG;EACL;EACA,sBAAsB,2BAA2B,SAAS;CAC5D,CAAC;CAED,gBAAgB,2BAA2B,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;CAEtE,MAAM,QAAQ,sBACX,aAAa,KAAK,MAAM,UAAU,QAAQ,SACrC,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CACL,cACA;GACE,MAAM;GACN,UACE,oBAAC,QAAD;IAA6B,iCAA8B;IACxD,UAAA,MAAM,SAAS;GACZ,GAFK,MAAM,UAEX;EAEV,CACF;CACF,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/status-indicator/context.tsx"],"sourcesContent":["import type { StatusIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface StatusIndicatorContextValue {\n state: StatusIndicatorCore.State;\n}\n\nconst StatusIndicatorContext = createContext<StatusIndicatorContextValue | null>(null);\n\nexport function StatusIndicatorProvider({ value, children }: ProviderProps<StatusIndicatorContextValue>) {\n return <StatusIndicatorContext.Provider value={value}>{children}</StatusIndicatorContext.Provider>;\n}\n\nexport function useStatusIndicatorContext(): StatusIndicatorContextValue {\n const ctx = useContext(StatusIndicatorContext);\n if (!ctx) throw new Error('StatusIndicator child compounds must be used within a StatusIndicator.Root');\n return ctx;\n}\n"],"mappings":";;;AAOA,MAAM,yBAAyB,cAAkD,IAAI;AAErF,SAAgB,wBAAwB,EAAE,OAAO,YAAwD;CACvG,OAAO,oBAAC,uBAAuB,UAAxB;EAAwC;EAAQ;CAA0C,CAAA;AACnG;AAEA,SAAgB,4BAAyD;CACvE,MAAM,MAAM,WAAW,sBAAsB;CAC7C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,4EAA4E;CACtG,OAAO;AACT"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/status-indicator/context.tsx"],"sourcesContent":["import type { StatusIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface StatusIndicatorContextValue {\n state: StatusIndicatorCore.State;\n}\n\nconst StatusIndicatorContext = createContext<StatusIndicatorContextValue | null>(null);\n\nexport function StatusIndicatorProvider({ value, children }: ProviderProps<StatusIndicatorContextValue>) {\n return <StatusIndicatorContext.Provider value={value}>{children}</StatusIndicatorContext.Provider>;\n}\n\nexport function useStatusIndicatorContext(): StatusIndicatorContextValue {\n const ctx = useContext(StatusIndicatorContext);\n if (!ctx) throw new Error('StatusIndicator child compounds must be used within a StatusIndicator.Root');\n\n return ctx;\n}\n"],"mappings":";;;AAOA,MAAM,yBAAyB,cAAkD,IAAI;AAErF,SAAgB,wBAAwB,EAAE,OAAO,YAAwD;CACvG,OAAO,oBAAC,uBAAuB,UAAxB;EAAwC;EAAQ;CAA0C,CAAA;AACnG;AAEA,SAAgB,4BAAyD;CACvE,MAAM,MAAM,WAAW,sBAAsB;CAC7C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,4EAA4E;CAEtG,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/status-indicator/index.parts.ts"],"sourcesContent":["export {\n StatusIndicatorRoot as Root,\n type StatusIndicatorRootProps as RootProps,\n} from './status-indicator-root';\nexport {\n StatusIndicatorValue as Value,\n type StatusIndicatorValueProps as ValueProps,\n} from './status-indicator-value';\n"],"mappings":""}
1
+ {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/status-indicator/index.parts.ts"],"sourcesContent":["export { StatusIndicatorRoot as Root, type StatusIndicatorRootProps as RootProps } from './status-indicator-root';\nexport { StatusIndicatorValue as Value, type StatusIndicatorValueProps as ValueProps } from './status-indicator-value';\n"],"mappings":""}
@@ -8,10 +8,11 @@ import { StatusIndicatorCore, StatusIndicatorDataAttrs, createInputIndicatorLabe
8
8
  //#region src/ui/status-indicator/status-indicator-root.tsx
9
9
  const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(componentProps, forwardedRef) {
10
10
  const { render, className, style, actions, closeDelay, ...elementProps } = componentProps;
11
+ const translator = useTranslator();
11
12
  const { elementRef, present, state } = useInputIndicatorRoot(() => new StatusIndicatorCore(), {
12
13
  actions,
13
14
  closeDelay,
14
- labels: createInputIndicatorLabels(useTranslator())
15
+ labels: createInputIndicatorLabels(translator)
15
16
  }, { replayOnUpdate: false });
16
17
  if (!present) return null;
17
18
  return /* @__PURE__ */ jsx(StatusIndicatorProvider, {
@@ -1 +1 @@
1
- {"version":3,"file":"status-indicator-root.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"sourcesContent":["import { createInputIndicatorLabels, StatusIndicatorCore, StatusIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicator/use-input-indicator-root';\nimport { StatusIndicatorProvider } from './context';\n\nexport interface StatusIndicatorRootProps\n extends UIComponentProps<'div', StatusIndicatorCore.State>,\n Omit<StatusIndicatorCore.Props, 'labels'> {}\n\nexport const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(\n componentProps: StatusIndicatorRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, actions, closeDelay, ...elementProps } = componentProps;\n const translator = useTranslator();\n const { elementRef, present, state } = useInputIndicatorRoot(\n () => new StatusIndicatorCore(),\n {\n actions,\n closeDelay,\n labels: createInputIndicatorLabels(translator),\n },\n { replayOnUpdate: false }\n );\n\n if (!present) return null;\n\n return (\n <StatusIndicatorProvider value={{ state }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: StatusIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n </StatusIndicatorProvider>\n );\n});\n\nexport namespace StatusIndicatorRoot {\n export type Props = StatusIndicatorRootProps;\n export type State = StatusIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;AAcA,MAAa,sBAAsB,WAAW,SAAS,oBACrD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,SAAS,YAAY,GAAG,iBAAiB;CAE3E,MAAM,EAAE,YAAY,SAAS,UAAU,4BAC/B,IAAI,oBAAoB,GAC9B;EACE;EACA;EACA,QAAQ,2BANO,cAM6B,CAAC;CAC/C,GACA,EAAE,gBAAgB,MAAM,CAC1B;CAEA,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,yBAAD;EAAyB,OAAO,EAAE,MAAM;EACrC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACuB,CAAA;AAE7B,CAAC"}
1
+ {"version":3,"file":"status-indicator-root.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"sourcesContent":["import { createInputIndicatorLabels, StatusIndicatorCore, StatusIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicator/use-input-indicator-root';\nimport { StatusIndicatorProvider } from './context';\n\nexport interface StatusIndicatorRootProps\n extends UIComponentProps<'div', StatusIndicatorCore.State>, Omit<StatusIndicatorCore.Props, 'labels'> {}\n\nexport const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(\n componentProps: StatusIndicatorRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, actions, closeDelay, ...elementProps } = componentProps;\n const translator = useTranslator();\n const { elementRef, present, state } = useInputIndicatorRoot(\n () => new StatusIndicatorCore(),\n {\n actions,\n closeDelay,\n labels: createInputIndicatorLabels(translator),\n },\n { replayOnUpdate: false }\n );\n if (!present) return null;\n\n return (\n <StatusIndicatorProvider value={{ state }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: StatusIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n </StatusIndicatorProvider>\n );\n});\n\nexport namespace StatusIndicatorRoot {\n export type Props = StatusIndicatorRootProps;\n export type State = StatusIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;AAaA,MAAa,sBAAsB,WAAW,SAAS,oBACrD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,SAAS,YAAY,GAAG,iBAAiB;CAC3E,MAAM,aAAa,cAAc;CACjC,MAAM,EAAE,YAAY,SAAS,UAAU,4BAC/B,IAAI,oBAAoB,GAC9B;EACE;EACA;EACA,QAAQ,2BAA2B,UAAU;CAC/C,GACA,EAAE,gBAAgB,MAAM,CAC1B;CACA,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,yBAAD;EAAyB,OAAO,EAAE,MAAM;EACrC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACuB,CAAA;AAE7B,CAAC"}
@@ -4,17 +4,16 @@ import { renderElement } from "../../utils/use-render.js";
4
4
  import { createThumbnail, selectTextTrack } from "@videojs/core/dom";
5
5
  import { forwardRef, useMemo, useRef, useState } from "react";
6
6
  import { jsx } from "react/jsx-runtime";
7
- import { isNull, isUndefined } from "@videojs/utils/predicate";
8
7
  import { ThumbnailCore, ThumbnailDataAttrs, mapCuesToThumbnails } from "@videojs/core";
8
+ import { isNull, isUndefined } from "@videojs/utils/predicate";
9
9
  //#region src/ui/thumbnail/thumbnail.tsx
10
10
  /**
11
- * Leaving `crossOrigin` unset means "follow the media element", so thumbnails
12
- * keep working on a CORS-enabled player without a skin having to thread a prop
13
- * through. `null` opts out and fetches the sprites no-CORS. `''` is passed
11
+ * Leaving `crossOrigin` unset means "follow the media element", so thumbnails keep working on a CORS-enabled player
12
+ * without a skin having to thread a prop through. `null` opts out and fetches the sprites no-CORS. `''` is passed
14
13
  * straight through, since the CORS-settings attribute reads it as Anonymous.
15
14
  *
16
- * Only the `<track>` path inherits: `thumbnails` passed directly may point at a
17
- * host that has nothing to do with the media element.
15
+ * Only the `<track>` path inherits: `thumbnails` passed directly may point at a host that has nothing to do with the
16
+ * media element.
18
17
  */
19
18
  function resolveCrossOrigin(explicit, external, inherited) {
20
19
  if (isNull(explicit)) return void 0;
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.js","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"sourcesContent":["import {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailFetchPriority,\n type ThumbnailImage,\n} from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { MediaTextTrackState } from '@videojs/media';\nimport { isNull, isUndefined } from '@videojs/utils/predicate';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {\n /** Pre-parsed thumbnail images — bypasses the automatic `<track>` detection. */\n thumbnails?: ThumbnailImage[] | undefined;\n}\n\n/**\n * Leaving `crossOrigin` unset means \"follow the media element\", so thumbnails\n * keep working on a CORS-enabled player without a skin having to thread a prop\n * through. `null` opts out and fetches the sprites no-CORS. `''` is passed\n * straight through, since the CORS-settings attribute reads it as Anonymous.\n *\n * Only the `<track>` path inherits: `thumbnails` passed directly may point at a\n * host that has nothing to do with the media element.\n */\nfunction resolveCrossOrigin(\n explicit: ThumbnailCore.Props['crossOrigin'],\n external: ThumbnailImage[] | undefined,\n inherited: MediaTextTrackState['thumbnailTrackCrossOrigin'] | undefined\n) {\n if (isNull(explicit)) return undefined;\n if (!isUndefined(explicit)) return explicit;\n if (external?.length) return undefined;\n\n return inherited ?? undefined;\n}\n\nexport const Thumbnail = forwardRef<HTMLDivElement, ThumbnailProps>(function Thumbnail(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n time = 0,\n thumbnails: externalThumbnails,\n crossOrigin,\n loading,\n fetchPriority,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new ThumbnailCore());\n const divRef = useRef<HTMLDivElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n const textTrack = useOptionalPlayer(selectTextTrack);\n\n // Force re-render when the handle's state changes (img load/error, resize).\n const [, setRenderToken] = useState(0);\n\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((n) => n + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n const thumbnails = useMemo(() => {\n if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;\n return textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }, [externalThumbnails, textTrack]);\n\n const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [core, thumbnails, time]);\n\n const resolvedCrossOrigin = resolveCrossOrigin(crossOrigin, externalThumbnails, textTrack?.thumbnailTrackCrossOrigin);\n\n // Track src changes via the handle.\n handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n // Compute styles declaratively from resize result.\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imgStyle: CSSProperties | undefined;\n\n if (thumbnail && handle.naturalWidth && handle.naturalHeight) {\n const constraints = handle.readConstraints();\n const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints);\n\n if (result) {\n containerStyle = {\n overflow: 'hidden',\n width: result.containerWidth,\n height: result.containerHeight,\n };\n imgStyle = {\n width: result.imageWidth,\n height: result.imageHeight,\n maxWidth: 'none',\n transform:\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : undefined,\n };\n }\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [\n core.getAttrs(state),\n { style: containerStyle },\n elementProps,\n {\n children: (\n <img\n ref={imgRef}\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n src={thumbnail?.url}\n crossOrigin={resolvedCrossOrigin}\n loading={loading}\n style={imgStyle}\n // React's types omit `| undefined` from fetchPriority — cast to satisfy exactOptionalPropertyTypes.\n fetchPriority={fetchPriority as ThumbnailFetchPriority}\n />\n ),\n },\n ],\n }\n );\n});\n\nexport namespace Thumbnail {\n export type Props = ThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgCA,SAAS,mBACP,UACA,UACA,WACA;CACA,IAAI,OAAO,QAAQ,GAAG,OAAO,KAAA;CAC7B,IAAI,CAAC,YAAY,QAAQ,GAAG,OAAO;CACnC,IAAI,UAAU,QAAQ,OAAO,KAAA;CAE7B,OAAO,aAAa,KAAA;AACtB;AAEA,MAAa,YAAY,WAA2C,SAAS,UAAU,gBAAgB,cAAc;CACnH,MAAM,EACJ,QACA,WACA,OACA,OAAO,GACP,YAAY,oBACZ,aACA,SACA,eACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,cAAc,CAAC;CACjD,MAAM,SAAS,OAAuB,IAAI;CAC1C,MAAM,SAAS,OAAyB,IAAI;CAC5C,MAAM,YAAY,kBAAkB,eAAe;CAGnD,MAAM,GAAG,kBAAkB,SAAS,CAAC;CAErC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,MAAM,IAAI,CAAC;CAClD,CAAC,CACH;CAEA,WAAW,cAAc,OAAO,QAAQ,CAAC;CAGzC,MAAM,aAAa,cAAc;EAC/B,IAAI,sBAAsB,mBAAmB,SAAS,GAAG,OAAO;EAChE,OAAO,aAAa,UAAU,cAAc,SAAS,IACjD,oBAAoB,UAAU,eAAe,UAAU,qBAAqB,KAAA,CAAS,IACrF,CAAC;CACP,GAAG,CAAC,oBAAoB,SAAS,CAAC;CAElC,MAAM,YAAY,cAAc,KAAK,oBAAoB,YAAY,IAAI,GAAG;EAAC;EAAM;EAAY;CAAI,CAAC;CAEpG,MAAM,sBAAsB,mBAAmB,aAAa,oBAAoB,WAAW,yBAAyB;CAGpH,OAAO,UAAU,WAAW,GAAG;CAE/B,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,SAAS;CAGnE,IAAI,iBAAgC,EAAE,UAAU,SAAS;CACzD,IAAI;CAEJ,IAAI,aAAa,OAAO,gBAAgB,OAAO,eAAe;EAC5D,MAAM,cAAc,OAAO,gBAAgB;EAC3C,MAAM,SAAS,KAAK,OAAO,WAAW,OAAO,cAAc,OAAO,eAAe,WAAW;EAE5F,IAAI,QAAQ;GACV,iBAAiB;IACf,UAAU;IACV,OAAO,OAAO;IACd,QAAQ,OAAO;GACjB;GACA,WAAW;IACT,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU;IACV,WACE,OAAO,WAAW,OAAO,UAAU,cAAc,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAA;GACjG;EACF;CACF;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,MAAM;EAC1B,OAAO;GACL,KAAK,SAAS,KAAK;GACnB,EAAE,OAAO,eAAe;GACxB;GACA,EACE,UACE,oBAAC,OAAD;IACE,KAAK;IACL,KAAI;IACJ,eAAY;IACZ,UAAS;IACT,KAAK,WAAW;IAChB,aAAa;IACJ;IACT,OAAO;IAEQ;GAChB,CAAA,EAEL;EACF;CACF,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"thumbnail.js","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"sourcesContent":["import {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailFetchPriority,\n type ThumbnailImage,\n} from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { MediaTextTrackState } from '@videojs/media';\nimport { isNull, isUndefined } from '@videojs/utils/predicate';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {\n /** Pre-parsed thumbnail images — bypasses the automatic `<track>` detection. */\n thumbnails?: ThumbnailImage[] | undefined;\n}\n\n/**\n * Leaving `crossOrigin` unset means \"follow the media element\", so thumbnails keep working on a CORS-enabled player\n * without a skin having to thread a prop through. `null` opts out and fetches the sprites no-CORS. `''` is passed\n * straight through, since the CORS-settings attribute reads it as Anonymous.\n *\n * Only the `<track>` path inherits: `thumbnails` passed directly may point at a host that has nothing to do with the\n * media element.\n */\nfunction resolveCrossOrigin(\n explicit: ThumbnailCore.Props['crossOrigin'],\n external: ThumbnailImage[] | undefined,\n inherited: MediaTextTrackState['thumbnailTrackCrossOrigin'] | undefined\n) {\n if (isNull(explicit)) return undefined;\n\n if (!isUndefined(explicit)) return explicit;\n\n if (external?.length) return undefined;\n\n return inherited ?? undefined;\n}\n\nexport const Thumbnail = forwardRef<HTMLDivElement, ThumbnailProps>(function Thumbnail(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n time = 0,\n thumbnails: externalThumbnails,\n crossOrigin,\n loading,\n fetchPriority,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new ThumbnailCore());\n\n const divRef = useRef<HTMLDivElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n\n const textTrack = useOptionalPlayer(selectTextTrack);\n\n // Force re-render when the handle's state changes (img load/error, resize).\n const [, setRenderToken] = useState(0);\n\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((n) => n + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n const thumbnails = useMemo(() => {\n if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;\n\n return textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }, [externalThumbnails, textTrack]);\n\n const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [core, thumbnails, time]);\n\n const resolvedCrossOrigin = resolveCrossOrigin(crossOrigin, externalThumbnails, textTrack?.thumbnailTrackCrossOrigin);\n\n // Track src changes via the handle.\n handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n // Compute styles declaratively from resize result.\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imgStyle: CSSProperties | undefined;\n\n if (thumbnail && handle.naturalWidth && handle.naturalHeight) {\n const constraints = handle.readConstraints();\n const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints);\n\n if (result) {\n containerStyle = {\n overflow: 'hidden',\n width: result.containerWidth,\n height: result.containerHeight,\n };\n imgStyle = {\n width: result.imageWidth,\n height: result.imageHeight,\n maxWidth: 'none',\n transform:\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : undefined,\n };\n }\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [\n core.getAttrs(state),\n { style: containerStyle },\n elementProps,\n {\n children: (\n <img\n ref={imgRef}\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n src={thumbnail?.url}\n crossOrigin={resolvedCrossOrigin}\n loading={loading}\n style={imgStyle}\n // React's types omit `| undefined` from fetchPriority — cast to satisfy exactOptionalPropertyTypes.\n fetchPriority={fetchPriority as ThumbnailFetchPriority}\n />\n ),\n },\n ],\n }\n );\n});\n\nexport namespace Thumbnail {\n export type Props = ThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA+BA,SAAS,mBACP,UACA,UACA,WACA;CACA,IAAI,OAAO,QAAQ,GAAG,OAAO,KAAA;CAE7B,IAAI,CAAC,YAAY,QAAQ,GAAG,OAAO;CAEnC,IAAI,UAAU,QAAQ,OAAO,KAAA;CAE7B,OAAO,aAAa,KAAA;AACtB;AAEA,MAAa,YAAY,WAA2C,SAAS,UAAU,gBAAgB,cAAc;CACnH,MAAM,EACJ,QACA,WACA,OACA,OAAO,GACP,YAAY,oBACZ,aACA,SACA,eACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,cAAc,CAAC;CAEjD,MAAM,SAAS,OAAuB,IAAI;CAC1C,MAAM,SAAS,OAAyB,IAAI;CAE5C,MAAM,YAAY,kBAAkB,eAAe;CAGnD,MAAM,GAAG,kBAAkB,SAAS,CAAC;CAErC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,MAAM,IAAI,CAAC;CAClD,CAAC,CACH;CAEA,WAAW,cAAc,OAAO,QAAQ,CAAC;CAGzC,MAAM,aAAa,cAAc;EAC/B,IAAI,sBAAsB,mBAAmB,SAAS,GAAG,OAAO;EAEhE,OAAO,aAAa,UAAU,cAAc,SAAS,IACjD,oBAAoB,UAAU,eAAe,UAAU,qBAAqB,KAAA,CAAS,IACrF,CAAC;CACP,GAAG,CAAC,oBAAoB,SAAS,CAAC;CAElC,MAAM,YAAY,cAAc,KAAK,oBAAoB,YAAY,IAAI,GAAG;EAAC;EAAM;EAAY;CAAI,CAAC;CAEpG,MAAM,sBAAsB,mBAAmB,aAAa,oBAAoB,WAAW,yBAAyB;CAGpH,OAAO,UAAU,WAAW,GAAG;CAE/B,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,SAAS;CAGnE,IAAI,iBAAgC,EAAE,UAAU,SAAS;CACzD,IAAI;CAEJ,IAAI,aAAa,OAAO,gBAAgB,OAAO,eAAe;EAC5D,MAAM,cAAc,OAAO,gBAAgB;EAC3C,MAAM,SAAS,KAAK,OAAO,WAAW,OAAO,cAAc,OAAO,eAAe,WAAW;EAE5F,IAAI,QAAQ;GACV,iBAAiB;IACf,UAAU;IACV,OAAO,OAAO;IACd,QAAQ,OAAO;GACjB;GACA,WAAW;IACT,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU;IACV,WACE,OAAO,WAAW,OAAO,UAAU,cAAc,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAA;GACjG;EACF;CACF;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,MAAM;EAC1B,OAAO;GACL,KAAK,SAAS,KAAK;GACnB,EAAE,OAAO,eAAe;GACxB;GACA,EACE,UACE,oBAAC,OAAD;IACE,KAAK;IACL,KAAI;IACJ,eAAY;IACZ,UAAS;IACT,KAAK,WAAW;IAChB,aAAa;IACJ;IACT,OAAO;IAEQ;GAChB,CAAA,EAEL;EACF;CACF,CACF;AACF,CAAC"}
@@ -5,13 +5,13 @@ import { forwardRef } from "react";
5
5
  * Container for composed time displays. Renders a `<span>` element.
6
6
  *
7
7
  * @example
8
- * ```tsx
9
- * <Time.Group>
10
- * <Time.Value type="current" />
11
- * <Time.Separator />
12
- * <Time.Value type="duration" />
13
- * </Time.Group>
14
- * ```
8
+ * ```tsx
9
+ * <Time.Group>
10
+ * <Time.Value type="current" />
11
+ * <Time.Separator />
12
+ * <Time.Value type="duration" />
13
+ * </Time.Group>;
14
+ * ```;
15
15
  */
16
16
  const Group = forwardRef(function Group(componentProps, forwardedRef) {
17
17
  const { render, className, style, children, ...elementProps } = componentProps;
@@ -1 +1 @@
1
- {"version":3,"file":"time-group.js","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"sourcesContent":["import type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Group (no dynamic state)\ntype GroupState = Record<string, never>;\n\nexport interface GroupProps extends UIComponentProps<'span', GroupState> {\n /** Time value components to render inside the group. */\n children?: ReactNode | undefined;\n}\n\n/**\n * Container for composed time displays. Renders a `<span>` element.\n *\n * @example\n * ```tsx\n * <Time.Group>\n * <Time.Value type=\"current\" />\n * <Time.Separator />\n * <Time.Value type=\"duration\" />\n * </Time.Group>\n * ```\n */\nexport const Group = forwardRef(function Group(\n componentProps: GroupProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const state: GroupState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ children }, elementProps],\n }\n );\n});\n\nexport namespace Group {\n export type Props = GroupProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA0BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAIhE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,SAAS,GAAG,YAAY;CACpC,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"time-group.js","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"sourcesContent":["import type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Group (no dynamic state)\ntype GroupState = Record<string, never>;\n\nexport interface GroupProps extends UIComponentProps<'span', GroupState> {\n /** Time value components to render inside the group. */\n children?: ReactNode | undefined;\n}\n\n/**\n * Container for composed time displays. Renders a `<span>` element.\n *\n * @example\n * ```tsx\n * <Time.Group>\n * <Time.Value type=\"current\" />\n * <Time.Separator />\n * <Time.Value type=\"duration\" />\n * </Time.Group>;\n * ```;\n */\nexport const Group = forwardRef(function Group(\n componentProps: GroupProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const state: GroupState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ children }, elementProps],\n }\n );\n});\n\nexport namespace Group {\n export type Props = GroupProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA0BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAIhE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,SAAS,GAAG,YAAY;CACpC,CACF;AACF,CAAC"}
@@ -5,10 +5,10 @@ import { forwardRef } from "react";
5
5
  * Divider between time values. Hidden from screen readers.
6
6
  *
7
7
  * @example
8
- * ```tsx
9
- * <Time.Separator />
10
- * <Time.Separator> of </Time.Separator>
11
- * ```
8
+ * ```tsx
9
+ * <Time.Separator />
10
+ * <Time.Separator> of </Time.Separator>
11
+ * ```;
12
12
  */
13
13
  const Separator = forwardRef(function Separator(componentProps, forwardedRef) {
14
14
  const { render, className, style, children = "/", ...elementProps } = componentProps;
@@ -1 +1 @@
1
- {"version":3,"file":"time-separator.js","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"sourcesContent":["import type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Separator (no dynamic state)\ntype SeparatorState = Record<string, never>;\n\nexport interface SeparatorProps extends UIComponentProps<'span', SeparatorState> {\n /** Separator content. Defaults to \"/\". */\n children?: ReactNode | undefined;\n}\n\n/**\n * Divider between time values. Hidden from screen readers.\n *\n * @example\n * ```tsx\n * <Time.Separator />\n * <Time.Separator> of </Time.Separator>\n * ```\n */\nexport const Separator = forwardRef(function Separator(\n componentProps: SeparatorProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, children = '/', ...elementProps } = componentProps;\n\n const state: SeparatorState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ 'aria-hidden': 'true', children }, elementProps],\n }\n );\n});\n\nexport namespace Separator {\n export type Props = SeparatorProps;\n}\n"],"mappings":";;;;;;;;;;;;AAuBA,MAAa,YAAY,WAAW,SAAS,UAC3C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,KAAK,GAAG,iBAAiB;CAItE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,eAAe;GAAQ;EAAS,GAAG,YAAY;CAC3D,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"time-separator.js","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"sourcesContent":["import type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Separator (no dynamic state)\ntype SeparatorState = Record<string, never>;\n\nexport interface SeparatorProps extends UIComponentProps<'span', SeparatorState> {\n /** Separator content. Defaults to \"/\". */\n children?: ReactNode | undefined;\n}\n\n/**\n * Divider between time values. Hidden from screen readers.\n *\n * @example\n * ```tsx\n * <Time.Separator />\n * <Time.Separator> of </Time.Separator>\n * ```;\n */\nexport const Separator = forwardRef(function Separator(\n componentProps: SeparatorProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, children = '/', ...elementProps } = componentProps;\n\n const state: SeparatorState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ 'aria-hidden': 'true', children }, elementProps],\n }\n );\n});\n\nexport namespace Separator {\n export type Props = SeparatorProps;\n}\n"],"mappings":";;;;;;;;;;;;AAuBA,MAAa,YAAY,WAAW,SAAS,UAC3C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,KAAK,GAAG,iBAAiB;CAItE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,eAAe;GAAQ;EAAS,GAAG,YAAY;CAC3D,CACF;AACF,CAAC"}
@@ -14,11 +14,11 @@ import { formatTimeAsPhrase } from "@videojs/utils/time";
14
14
  * Displays a formatted time value (current, duration, or remaining).
15
15
  *
16
16
  * @example
17
- * ```tsx
18
- * <Time.Value />
19
- * <Time.Value type="duration" />
20
- * <Time.Value type="remaining" negativeSign="−" />
21
- * ```
17
+ * ```tsx
18
+ * <Time.Value />
19
+ * <Time.Value type="duration" />
20
+ * <Time.Value type="remaining" negativeSign="−" />
21
+ * ```;
22
22
  */
23
23
  const Value = forwardRef(function Value(componentProps, forwardedRef) {
24
24
  const { render, className, style, type, negativeSign, label, toggle = false, ...elementProps } = componentProps;