@videojs/react 10.0.0-rc.2 → 10.0.0-rc.3

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 (2117) hide show
  1. package/README.md +12 -2
  2. package/dist/default/extensions/google-cast/extension.js +0 -2
  3. package/dist/default/extensions/mux-data/extension.js +0 -2
  4. package/dist/default/i18n/context.js +25 -10
  5. package/dist/default/i18n/create-i18n.js +18 -4
  6. package/dist/default/i18n/get-provider-root-props.js +0 -2
  7. package/dist/default/i18n/locales/all/register.js +0 -2
  8. package/dist/default/i18n/locales/ar/register.js +0 -2
  9. package/dist/default/i18n/locales/az/register.js +0 -2
  10. package/dist/default/i18n/locales/bg/register.js +0 -2
  11. package/dist/default/i18n/locales/bn/register.js +0 -2
  12. package/dist/default/i18n/locales/bs/register.js +0 -2
  13. package/dist/default/i18n/locales/ca/register.js +0 -2
  14. package/dist/default/i18n/locales/cs/register.js +0 -2
  15. package/dist/default/i18n/locales/cy/register.js +0 -2
  16. package/dist/default/i18n/locales/da/register.js +0 -2
  17. package/dist/default/i18n/locales/de/register.js +0 -2
  18. package/dist/default/i18n/locales/el/register.js +0 -2
  19. package/dist/default/i18n/locales/en/register.js +0 -2
  20. package/dist/default/i18n/locales/es/register.js +0 -2
  21. package/dist/default/i18n/locales/et/register.js +0 -2
  22. package/dist/default/i18n/locales/eu/register.js +0 -2
  23. package/dist/default/i18n/locales/fa/register.js +0 -2
  24. package/dist/default/i18n/locales/fi/register.js +0 -2
  25. package/dist/default/i18n/locales/fr/register.js +0 -2
  26. package/dist/default/i18n/locales/gd/register.js +0 -2
  27. package/dist/default/i18n/locales/gl/register.js +0 -2
  28. package/dist/default/i18n/locales/he/register.js +0 -2
  29. package/dist/default/i18n/locales/hi/register.js +0 -2
  30. package/dist/default/i18n/locales/hr/register.js +0 -2
  31. package/dist/default/i18n/locales/hu/register.js +0 -2
  32. package/dist/default/i18n/locales/id/register.js +0 -2
  33. package/dist/default/i18n/locales/it/register.js +0 -2
  34. package/dist/default/i18n/locales/ja/register.js +0 -2
  35. package/dist/default/i18n/locales/ko/register.js +0 -2
  36. package/dist/default/i18n/locales/lt/register.js +0 -2
  37. package/dist/default/i18n/locales/lv/register.js +0 -2
  38. package/dist/default/i18n/locales/mr/register.js +0 -2
  39. package/dist/default/i18n/locales/nb/register.js +0 -2
  40. package/dist/default/i18n/locales/ne/register.js +0 -2
  41. package/dist/default/i18n/locales/nl/register.js +0 -2
  42. package/dist/default/i18n/locales/nn/register.js +0 -2
  43. package/dist/default/i18n/locales/oc/register.js +0 -2
  44. package/dist/default/i18n/locales/pl/register.js +0 -2
  45. package/dist/default/i18n/locales/pt/register.js +0 -2
  46. package/dist/default/i18n/locales/pt-BR/register.js +0 -2
  47. package/dist/default/i18n/locales/pt-PT/register.js +0 -2
  48. package/dist/default/i18n/locales/ro/register.js +0 -2
  49. package/dist/default/i18n/locales/ru/register.js +0 -2
  50. package/dist/default/i18n/locales/sk/register.js +0 -2
  51. package/dist/default/i18n/locales/sl/register.js +0 -2
  52. package/dist/default/i18n/locales/sr/register.js +0 -2
  53. package/dist/default/i18n/locales/sv/register.js +0 -2
  54. package/dist/default/i18n/locales/te/register.js +0 -2
  55. package/dist/default/i18n/locales/th/register.js +0 -2
  56. package/dist/default/i18n/locales/tr/register.js +0 -2
  57. package/dist/default/i18n/locales/uk/register.js +0 -2
  58. package/dist/default/i18n/locales/vi/register.js +0 -2
  59. package/dist/default/i18n/locales/zh/register.js +0 -2
  60. package/dist/default/i18n/locales/zh-CN/register.js +0 -2
  61. package/dist/default/i18n/locales/zh-TW/register.js +0 -2
  62. package/dist/default/i18n/text.js +38 -8
  63. package/dist/default/i18n/use-ambient-lang.js +14 -7
  64. package/dist/default/i18n/use-lang-root-element.js +0 -2
  65. package/dist/default/i18n/use-lazy-translations.js +54 -25
  66. package/dist/default/i18n/use-locale-root-notifications.js +0 -2
  67. package/dist/default/i18n/use-merged-translations.js +32 -14
  68. package/dist/default/i18n/use-registry-epoch.js +18 -6
  69. package/dist/default/icons/dist/react/default/airplay-enter.js +0 -2
  70. package/dist/default/icons/dist/react/default/airplay-exit.js +0 -2
  71. package/dist/default/icons/dist/react/default/captions-off.js +0 -2
  72. package/dist/default/icons/dist/react/default/captions-on.js +0 -2
  73. package/dist/default/icons/dist/react/default/cast-enter.js +0 -2
  74. package/dist/default/icons/dist/react/default/cast-exit.js +0 -2
  75. package/dist/default/icons/dist/react/default/check.js +0 -2
  76. package/dist/default/icons/dist/react/default/chevron.js +0 -2
  77. package/dist/default/icons/dist/react/default/fullscreen-enter.js +0 -2
  78. package/dist/default/icons/dist/react/default/fullscreen-exit.js +0 -2
  79. package/dist/default/icons/dist/react/default/gear.js +0 -2
  80. package/dist/default/icons/dist/react/default/pause.js +0 -2
  81. package/dist/default/icons/dist/react/default/pip-enter.js +0 -2
  82. package/dist/default/icons/dist/react/default/pip-exit.js +0 -2
  83. package/dist/default/icons/dist/react/default/play.js +0 -2
  84. package/dist/default/icons/dist/react/default/quality.js +0 -2
  85. package/dist/default/icons/dist/react/default/restart.js +0 -2
  86. package/dist/default/icons/dist/react/default/seek.js +0 -2
  87. package/dist/default/icons/dist/react/default/speech.js +0 -2
  88. package/dist/default/icons/dist/react/default/speed.js +0 -2
  89. package/dist/default/icons/dist/react/default/spinner.js +0 -2
  90. package/dist/default/icons/dist/react/default/switches.js +0 -2
  91. package/dist/default/icons/dist/react/default/volume-high.js +0 -2
  92. package/dist/default/icons/dist/react/default/volume-low.js +0 -2
  93. package/dist/default/icons/dist/react/default/volume-off.js +0 -2
  94. package/dist/default/icons/dist/react/minimal/airplay-enter.js +0 -2
  95. package/dist/default/icons/dist/react/minimal/airplay-exit.js +0 -2
  96. package/dist/default/icons/dist/react/minimal/captions-off.js +0 -2
  97. package/dist/default/icons/dist/react/minimal/captions-on.js +0 -2
  98. package/dist/default/icons/dist/react/minimal/cast-enter.js +0 -2
  99. package/dist/default/icons/dist/react/minimal/cast-exit.js +0 -2
  100. package/dist/default/icons/dist/react/minimal/check.js +0 -2
  101. package/dist/default/icons/dist/react/minimal/chevron.js +0 -2
  102. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +0 -2
  103. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +0 -2
  104. package/dist/default/icons/dist/react/minimal/gear.js +0 -2
  105. package/dist/default/icons/dist/react/minimal/pause.js +0 -2
  106. package/dist/default/icons/dist/react/minimal/pip-enter.js +0 -2
  107. package/dist/default/icons/dist/react/minimal/pip-exit.js +0 -2
  108. package/dist/default/icons/dist/react/minimal/play.js +0 -2
  109. package/dist/default/icons/dist/react/minimal/quality.js +0 -2
  110. package/dist/default/icons/dist/react/minimal/restart.js +0 -2
  111. package/dist/default/icons/dist/react/minimal/seek.js +0 -2
  112. package/dist/default/icons/dist/react/minimal/speech.js +0 -2
  113. package/dist/default/icons/dist/react/minimal/speed.js +0 -2
  114. package/dist/default/icons/dist/react/minimal/spinner.js +0 -2
  115. package/dist/default/icons/dist/react/minimal/switches.js +0 -2
  116. package/dist/default/icons/dist/react/minimal/volume-high.js +0 -2
  117. package/dist/default/icons/dist/react/minimal/volume-low.js +0 -2
  118. package/dist/default/icons/dist/react/minimal/volume-off.js +0 -2
  119. package/dist/default/index.js +2 -1
  120. package/dist/default/internal/skins/default-audio/components/buttons/mute-button.js +63 -13
  121. package/dist/default/internal/skins/default-audio/components/buttons/play-button.js +63 -13
  122. package/dist/default/internal/skins/default-audio/components/buttons/seek-button.js +96 -15
  123. package/dist/default/internal/skins/default-audio/components/display/buffering-indicator.js +52 -0
  124. package/dist/default/internal/skins/default-audio/components/menus/radio-item.js +42 -9
  125. package/dist/default/internal/skins/default-audio/components/menus/volume-popover.js +101 -0
  126. package/dist/default/internal/skins/default-audio/layout/controls.js +111 -0
  127. package/dist/default/internal/skins/default-audio/skin.js +74 -21
  128. package/dist/default/internal/skins/default-audio/skins/shared/audio/buttons/play-button.js +62 -0
  129. package/dist/default/internal/skins/default-audio/skins/shared/audio/menus/settings-menu.js +98 -0
  130. package/dist/default/internal/skins/default-live-audio/components/buttons/mute-button.js +63 -13
  131. package/dist/default/internal/skins/default-live-audio/components/buttons/play-button.js +63 -13
  132. package/dist/default/internal/skins/default-live-audio/components/display/buffering-indicator.js +52 -0
  133. package/dist/default/internal/skins/default-live-audio/components/menus/volume-popover.js +101 -0
  134. package/dist/default/internal/skins/default-live-audio/layout/controls.js +58 -0
  135. package/dist/default/internal/skins/default-live-audio/skin.js +74 -21
  136. package/dist/default/internal/skins/default-live-audio/skins/shared/audio/buttons/play-button.js +62 -0
  137. package/dist/default/internal/skins/default-live-video/components/buttons/airplay-button.js +54 -9
  138. package/dist/default/internal/skins/default-live-video/components/buttons/captions-button.js +54 -9
  139. package/dist/default/internal/skins/default-live-video/components/buttons/cast-button.js +54 -9
  140. package/dist/default/internal/skins/default-live-video/components/buttons/fullscreen-button.js +54 -9
  141. package/dist/default/internal/skins/default-live-video/components/buttons/mute-button.js +63 -13
  142. package/dist/default/internal/skins/default-live-video/components/buttons/pip-button.js +54 -9
  143. package/dist/default/internal/skins/default-live-video/components/buttons/play-button.js +63 -13
  144. package/dist/default/internal/skins/default-live-video/components/display/buffering-indicator.js +52 -0
  145. package/dist/default/internal/skins/default-live-video/components/display/status-indicator.js +128 -0
  146. package/dist/default/internal/skins/default-live-video/components/display/volume-indicator.js +64 -0
  147. package/dist/default/internal/skins/default-live-video/components/menus/captions-menu.js +71 -17
  148. package/dist/default/internal/skins/default-live-video/components/menus/radio-item.js +42 -9
  149. package/dist/default/internal/skins/default-live-video/components/menus/volume-popover.js +101 -0
  150. package/dist/default/internal/skins/default-live-video/layout/controls.js +117 -0
  151. package/dist/default/internal/skins/default-live-video/skin.js +104 -27
  152. package/dist/default/internal/skins/default-live-video/skins/shared/live-video/display/status-indicators.js +72 -0
  153. package/dist/default/internal/skins/default-video/components/buttons/airplay-button.js +54 -9
  154. package/dist/default/internal/skins/default-video/components/buttons/captions-button.js +54 -9
  155. package/dist/default/internal/skins/default-video/components/buttons/cast-button.js +54 -9
  156. package/dist/default/internal/skins/default-video/components/buttons/fullscreen-button.js +54 -9
  157. package/dist/default/internal/skins/default-video/components/buttons/mute-button.js +63 -13
  158. package/dist/default/internal/skins/default-video/components/buttons/pip-button.js +54 -9
  159. package/dist/default/internal/skins/default-video/components/buttons/play-button.js +63 -13
  160. package/dist/default/internal/skins/default-video/components/display/buffering-indicator.js +52 -0
  161. package/dist/default/internal/skins/default-video/components/display/seek-indicator.js +59 -0
  162. package/dist/default/internal/skins/default-video/components/display/status-indicator.js +128 -0
  163. package/dist/default/internal/skins/default-video/components/display/volume-indicator.js +64 -0
  164. package/dist/default/internal/skins/default-video/components/menus/audio-track-menu.js +59 -17
  165. package/dist/default/internal/skins/default-video/components/menus/captions-submenu.js +59 -17
  166. package/dist/default/internal/skins/default-video/components/menus/menu-chevron.js +25 -4
  167. package/dist/default/internal/skins/default-video/components/menus/playback-rate-submenu.js +59 -17
  168. package/dist/default/internal/skins/default-video/components/menus/quality-menu.js +65 -23
  169. package/dist/default/internal/skins/default-video/components/menus/radio-item.js +42 -9
  170. package/dist/default/internal/skins/default-video/components/menus/settings-menu.js +89 -23
  171. package/dist/default/internal/skins/default-video/components/menus/volume-popover.js +101 -0
  172. package/dist/default/internal/skins/default-video/components/sliders/time-slider.js +132 -38
  173. package/dist/default/internal/skins/default-video/layout/controls.js +172 -0
  174. package/dist/default/internal/skins/default-video/skin.js +113 -27
  175. package/dist/default/internal/skins/default-video/skins/shared/video/display/status-indicators.js +78 -0
  176. package/dist/default/internal/skins/default-video/skins/shared/video/menus/settings-menu.js +54 -0
  177. package/dist/default/internal/skins/minimal-audio/components/buttons/mute-button.js +64 -14
  178. package/dist/default/internal/skins/minimal-audio/components/buttons/play-button.js +64 -14
  179. package/dist/default/internal/skins/minimal-audio/components/buttons/seek-button.js +97 -16
  180. package/dist/default/internal/skins/minimal-audio/components/display/buffering-indicator.js +52 -0
  181. package/dist/default/internal/skins/minimal-audio/components/menus/radio-item.js +42 -9
  182. package/dist/default/internal/skins/minimal-audio/components/menus/volume-popover.js +101 -0
  183. package/dist/default/internal/skins/minimal-audio/layout/controls.js +104 -0
  184. package/dist/default/internal/skins/minimal-audio/skin.js +74 -21
  185. package/dist/default/internal/skins/minimal-audio/skins/shared/audio/buttons/play-button.js +62 -0
  186. package/dist/default/internal/skins/minimal-audio/skins/shared/audio/menus/settings-menu.js +98 -0
  187. package/dist/default/internal/skins/minimal-live-audio/components/buttons/mute-button.js +64 -14
  188. package/dist/default/internal/skins/minimal-live-audio/components/buttons/play-button.js +64 -14
  189. package/dist/default/internal/skins/minimal-live-audio/components/display/buffering-indicator.js +52 -0
  190. package/dist/default/internal/skins/minimal-live-audio/components/menus/volume-popover.js +101 -0
  191. package/dist/default/internal/skins/minimal-live-audio/layout/controls.js +63 -0
  192. package/dist/default/internal/skins/minimal-live-audio/skin.js +74 -21
  193. package/dist/default/internal/skins/minimal-live-audio/skins/shared/audio/buttons/play-button.js +62 -0
  194. package/dist/default/internal/skins/minimal-live-video/components/buttons/airplay-button.js +55 -10
  195. package/dist/default/internal/skins/minimal-live-video/components/buttons/captions-button.js +55 -10
  196. package/dist/default/internal/skins/minimal-live-video/components/buttons/cast-button.js +55 -10
  197. package/dist/default/internal/skins/minimal-live-video/components/buttons/fullscreen-button.js +55 -10
  198. package/dist/default/internal/skins/minimal-live-video/components/buttons/mute-button.js +64 -14
  199. package/dist/default/internal/skins/minimal-live-video/components/buttons/pip-button.js +55 -10
  200. package/dist/default/internal/skins/minimal-live-video/components/buttons/play-button.js +64 -14
  201. package/dist/default/internal/skins/minimal-live-video/components/display/buffering-indicator.js +52 -0
  202. package/dist/default/internal/skins/minimal-live-video/components/display/status-indicator.js +128 -0
  203. package/dist/default/internal/skins/minimal-live-video/components/display/volume-indicator.js +64 -0
  204. package/dist/default/internal/skins/minimal-live-video/components/menus/captions-menu.js +71 -17
  205. package/dist/default/internal/skins/minimal-live-video/components/menus/radio-item.js +42 -9
  206. package/dist/default/internal/skins/minimal-live-video/components/menus/volume-popover.js +101 -0
  207. package/dist/default/internal/skins/minimal-live-video/layout/controls.js +116 -0
  208. package/dist/default/internal/skins/minimal-live-video/skin.js +104 -27
  209. package/dist/default/internal/skins/minimal-live-video/skins/shared/live-video/display/status-indicators.js +72 -0
  210. package/dist/default/internal/skins/minimal-video/components/buttons/airplay-button.js +55 -10
  211. package/dist/default/internal/skins/minimal-video/components/buttons/captions-button.js +55 -10
  212. package/dist/default/internal/skins/minimal-video/components/buttons/cast-button.js +55 -10
  213. package/dist/default/internal/skins/minimal-video/components/buttons/fullscreen-button.js +55 -10
  214. package/dist/default/internal/skins/minimal-video/components/buttons/mute-button.js +64 -14
  215. package/dist/default/internal/skins/minimal-video/components/buttons/pip-button.js +55 -10
  216. package/dist/default/internal/skins/minimal-video/components/buttons/play-button.js +64 -14
  217. package/dist/default/internal/skins/minimal-video/components/display/buffering-indicator.js +52 -0
  218. package/dist/default/internal/skins/minimal-video/components/display/seek-indicator.js +59 -0
  219. package/dist/default/internal/skins/minimal-video/components/display/status-indicator.js +128 -0
  220. package/dist/default/internal/skins/minimal-video/components/display/volume-indicator.js +64 -0
  221. package/dist/default/internal/skins/minimal-video/components/menus/audio-track-menu.js +59 -17
  222. package/dist/default/internal/skins/minimal-video/components/menus/captions-submenu.js +59 -17
  223. package/dist/default/internal/skins/minimal-video/components/menus/menu-chevron.js +25 -4
  224. package/dist/default/internal/skins/minimal-video/components/menus/playback-rate-submenu.js +59 -17
  225. package/dist/default/internal/skins/minimal-video/components/menus/quality-menu.js +65 -23
  226. package/dist/default/internal/skins/minimal-video/components/menus/radio-item.js +42 -9
  227. package/dist/default/internal/skins/minimal-video/components/menus/settings-menu.js +90 -24
  228. package/dist/default/internal/skins/minimal-video/components/menus/volume-popover.js +101 -0
  229. package/dist/default/internal/skins/minimal-video/components/sliders/time-slider.js +133 -39
  230. package/dist/default/internal/skins/minimal-video/layout/controls.js +166 -0
  231. package/dist/default/internal/skins/minimal-video/skin.js +113 -27
  232. package/dist/default/internal/skins/minimal-video/skins/shared/video/display/status-indicators.js +78 -0
  233. package/dist/default/internal/skins/minimal-video/skins/shared/video/menus/settings-menu.js +54 -0
  234. package/dist/default/internal/skins/shared/components/behaviors/status-announcer.js +45 -0
  235. package/dist/default/internal/skins/shared/components/buttons/button-tooltip.js +62 -10
  236. package/dist/default/internal/skins/shared/components/buttons/button.js +31 -7
  237. package/dist/default/internal/skins/shared/components/buttons/live-button.js +43 -8
  238. package/dist/default/internal/skins/shared/components/buttons/playback-rate-button.js +43 -8
  239. package/dist/default/internal/skins/shared/components/dialogs/error-dialog.js +44 -0
  240. package/dist/default/internal/skins/shared/components/display/poster.js +64 -0
  241. package/dist/default/internal/skins/shared/components/display/title.js +45 -0
  242. package/dist/default/internal/skins/shared/components/layout/container.js +36 -8
  243. package/dist/default/internal/skins/shared/components/sliders/slider.js +121 -22
  244. package/dist/default/internal/skins/shared/components/sliders/volume-slider.js +57 -12
  245. package/dist/default/internal/skins/shared/skins/shared/audio/dialogs/error-dialog.js +44 -0
  246. package/dist/default/internal/skins/shared/skins/shared/audio/sliders/time-slider.js +108 -0
  247. package/dist/default/internal/skins/shared/skins/shared/behaviors/live-playback-hotkeys.js +51 -0
  248. package/dist/default/internal/skins/shared/skins/shared/behaviors/playback-hotkeys.js +98 -0
  249. package/dist/default/internal/skins/shared/skins/shared/live-video/behaviors/gestures.js +45 -0
  250. package/dist/default/internal/skins/shared/skins/shared/live-video/behaviors/hotkeys.js +43 -0
  251. package/dist/default/internal/skins/shared/skins/shared/video/behaviors/gestures.js +57 -0
  252. package/dist/default/internal/skins/shared/skins/shared/video/behaviors/hotkeys.js +43 -0
  253. package/dist/default/media/audio.js +27 -8
  254. package/dist/default/media/background-video/adapter.js +43 -19
  255. package/dist/default/media/cloudflare-video/adapter.js +63 -27
  256. package/dist/default/media/dash-video/adapter.js +27 -8
  257. package/dist/default/media/hls-audio/adapter.js +27 -8
  258. package/dist/default/media/hls-background-video/adapter.js +50 -19
  259. package/dist/default/media/hls-video/adapter.js +27 -8
  260. package/dist/default/media/hlsjs-video/adapter.js +27 -8
  261. package/dist/default/media/mux-audio/hls-js.js +27 -8
  262. package/dist/default/media/mux-audio/spf.js +27 -8
  263. package/dist/default/media/mux-video/hls-js.js +34 -8
  264. package/dist/default/media/mux-video/spf.js +34 -8
  265. package/dist/default/media/mux-video/storyboard.js +49 -29
  266. package/dist/default/media/native-hls-video/adapter.js +27 -8
  267. package/dist/default/media/shaka-video/adapter.js +27 -8
  268. package/dist/default/media/spotify-audio/adapter.js +83 -27
  269. package/dist/default/media/tiktok-video/adapter.js +63 -27
  270. package/dist/default/media/twitch-video/adapter.js +63 -27
  271. package/dist/default/media/video.js +27 -8
  272. package/dist/default/media/vimeo-video/adapter.js +62 -26
  273. package/dist/default/media/wistia-video/adapter.js +95 -13
  274. package/dist/default/media/youtube-video/adapter.js +62 -26
  275. package/dist/default/player/container.js +153 -38
  276. package/dist/default/player/context.js +15 -7
  277. package/dist/default/player/create-player.js +101 -50
  278. package/dist/default/player/popup-group-context.js +15 -7
  279. package/dist/default/presets/audio/index.js +0 -2
  280. package/dist/default/presets/audio/minimal-skin.css +638 -399
  281. package/dist/default/presets/audio/minimal-skin.js +10 -4
  282. package/dist/default/presets/audio/player.js +0 -2
  283. package/dist/default/presets/audio/skin.css +384 -190
  284. package/dist/default/presets/audio/skin.js +10 -4
  285. package/dist/default/presets/background/index.js +0 -2
  286. package/dist/default/presets/background/player.js +0 -2
  287. package/dist/default/presets/background/skin.js +47 -9
  288. package/dist/default/presets/live-audio/index.js +0 -2
  289. package/dist/default/presets/live-audio/minimal-skin.css +433 -353
  290. package/dist/default/presets/live-audio/minimal-skin.js +10 -4
  291. package/dist/default/presets/live-audio/player.js +0 -2
  292. package/dist/default/presets/live-audio/skin.css +196 -144
  293. package/dist/default/presets/live-audio/skin.js +10 -4
  294. package/dist/default/presets/live-video/index.js +0 -2
  295. package/dist/default/presets/live-video/minimal-skin.css +860 -732
  296. package/dist/default/presets/live-video/minimal-skin.js +10 -4
  297. package/dist/default/presets/live-video/player.js +0 -2
  298. package/dist/default/presets/live-video/skin.css +695 -589
  299. package/dist/default/presets/live-video/skin.js +10 -4
  300. package/dist/default/presets/video/index.js +0 -2
  301. package/dist/default/presets/video/minimal-skin.css +717 -623
  302. package/dist/default/presets/video/minimal-skin.js +10 -4
  303. package/dist/default/presets/video/player.js +0 -2
  304. package/dist/default/presets/video/skin.css +480 -416
  305. package/dist/default/presets/video/skin.js +10 -4
  306. package/dist/default/ui/airplay-button/component.js +0 -2
  307. package/dist/default/ui/alert-dialog/index.parts.js +0 -2
  308. package/dist/default/ui/alert-dialog/root.js +37 -13
  309. package/dist/default/ui/audio-track/use-audio-track-options.js +0 -2
  310. package/dist/default/ui/audio-track-radio-group/component.js +188 -42
  311. package/dist/default/ui/audio-track-radio-group/index.parts.js +0 -2
  312. package/dist/default/ui/buffering-indicator/component.js +0 -2
  313. package/dist/default/ui/captions-button/component.js +0 -2
  314. package/dist/default/ui/captions-radio-group/component.js +188 -42
  315. package/dist/default/ui/captions-radio-group/index.parts.js +0 -2
  316. package/dist/default/ui/captions-radio-group/use-captions-options.js +0 -2
  317. package/dist/default/ui/cast-button/component.js +0 -2
  318. package/dist/default/ui/controls/backdrop.js +0 -2
  319. package/dist/default/ui/controls/content.js +0 -2
  320. package/dist/default/ui/controls/context.js +0 -2
  321. package/dist/default/ui/controls/group.js +0 -2
  322. package/dist/default/ui/controls/index.parts.js +0 -2
  323. package/dist/default/ui/controls/root.js +1 -2
  324. package/dist/default/ui/create-context-part.js +0 -2
  325. package/dist/default/ui/create-media-button.js +0 -2
  326. package/dist/default/ui/dialog/backdrop.js +0 -2
  327. package/dist/default/ui/dialog/close.js +0 -2
  328. package/dist/default/ui/dialog/context.js +0 -2
  329. package/dist/default/ui/dialog/description.js +0 -2
  330. package/dist/default/ui/dialog/index.parts.js +0 -2
  331. package/dist/default/ui/dialog/popup.js +0 -2
  332. package/dist/default/ui/dialog/root.js +23 -10
  333. package/dist/default/ui/dialog/title.js +0 -2
  334. package/dist/default/ui/dialog/trigger.js +0 -2
  335. package/dist/default/ui/dialog/use-dialog-root.js +0 -2
  336. package/dist/default/ui/error-dialog/close.js +0 -2
  337. package/dist/default/ui/error-dialog/context.js +0 -2
  338. package/dist/default/ui/error-dialog/description.js +0 -2
  339. package/dist/default/ui/error-dialog/index.parts.js +0 -2
  340. package/dist/default/ui/error-dialog/root.js +51 -21
  341. package/dist/default/ui/error-dialog/title.js +0 -2
  342. package/dist/default/ui/fullscreen-button/component.js +0 -2
  343. package/dist/default/ui/gesture/component.js +50 -30
  344. package/dist/default/ui/gesture/use-doubletap-gesture.js +39 -13
  345. package/dist/default/ui/gesture/use-tap-gesture.js +39 -13
  346. package/dist/default/ui/hooks/create-radio-options-hook.js +0 -2
  347. package/dist/default/ui/hooks/use-button.js +29 -9
  348. package/dist/default/ui/hooks/use-positioned-state.js +69 -31
  349. package/dist/default/ui/hooks/use-slider.js +0 -2
  350. package/dist/default/ui/hotkey/component.js +46 -27
  351. package/dist/default/ui/hotkey/use-hotkey-shortcut.js +36 -17
  352. package/dist/default/ui/hotkey/use-hotkey.js +40 -16
  353. package/dist/default/ui/input-indicator/use-indicator-visibility.js +38 -13
  354. package/dist/default/ui/input-indicator/use-input-action-subscription.js +22 -8
  355. package/dist/default/ui/input-indicator/use-input-indicator-root.js +38 -7
  356. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js +0 -2
  357. package/dist/default/ui/live-button/component.js +0 -2
  358. package/dist/default/ui/menu/checkbox-item.js +0 -2
  359. package/dist/default/ui/menu/content.js +86 -55
  360. package/dist/default/ui/menu/context.js +38 -18
  361. package/dist/default/ui/menu/group-label.js +0 -2
  362. package/dist/default/ui/menu/group.js +40 -12
  363. package/dist/default/ui/menu/index.parts.js +0 -2
  364. package/dist/default/ui/menu/item-indicator.js +0 -2
  365. package/dist/default/ui/menu/item.js +103 -40
  366. package/dist/default/ui/menu/keyboard.js +0 -2
  367. package/dist/default/ui/menu/popup.js +80 -32
  368. package/dist/default/ui/menu/radio-group.js +54 -18
  369. package/dist/default/ui/menu/radio-item.js +81 -47
  370. package/dist/default/ui/menu/root.js +0 -2
  371. package/dist/default/ui/menu/separator.js +0 -2
  372. package/dist/default/ui/menu/trigger.js +194 -111
  373. package/dist/default/ui/menu/use-menu-group.js +38 -14
  374. package/dist/default/ui/mute-button/component.js +0 -2
  375. package/dist/default/ui/pip-button/component.js +0 -2
  376. package/dist/default/ui/play-button/component.js +0 -2
  377. package/dist/default/ui/playback-rate/use-playback-rate-options.js +0 -2
  378. package/dist/default/ui/playback-rate-button/component.js +0 -2
  379. package/dist/default/ui/playback-rate-radio-group/component.js +188 -42
  380. package/dist/default/ui/playback-rate-radio-group/index.parts.js +0 -2
  381. package/dist/default/ui/popover/arrow.js +0 -2
  382. package/dist/default/ui/popover/context.js +0 -2
  383. package/dist/default/ui/popover/index.parts.js +0 -2
  384. package/dist/default/ui/popover/popup.js +47 -22
  385. package/dist/default/ui/popover/root.js +0 -2
  386. package/dist/default/ui/popover/trigger.js +0 -2
  387. package/dist/default/ui/popover/use-popup-position.js +54 -22
  388. package/dist/default/ui/poster/context.js +15 -8
  389. package/dist/default/ui/poster/image.js +60 -32
  390. package/dist/default/ui/poster/index.parts.js +0 -2
  391. package/dist/default/ui/poster/root.js +4 -3
  392. package/dist/default/ui/quality/use-quality-options.js +0 -2
  393. package/dist/default/ui/quality-radio-group/component.js +188 -42
  394. package/dist/default/ui/quality-radio-group/index.parts.js +0 -2
  395. package/dist/default/ui/seek-button/component.js +0 -2
  396. package/dist/default/ui/seek-indicator/context.js +15 -7
  397. package/dist/default/ui/seek-indicator/index.parts.js +0 -2
  398. package/dist/default/ui/seek-indicator/root.js +40 -15
  399. package/dist/default/ui/seek-indicator/value.js +0 -2
  400. package/dist/default/ui/slider/buffer.js +0 -2
  401. package/dist/default/ui/slider/context.js +47 -10
  402. package/dist/default/ui/slider/fill.js +0 -2
  403. package/dist/default/ui/slider/index.parts.js +0 -2
  404. package/dist/default/ui/slider/preview.js +0 -2
  405. package/dist/default/ui/slider/root.js +156 -49
  406. package/dist/default/ui/slider/thumb.js +0 -2
  407. package/dist/default/ui/slider/thumbnail/index.parts.js +0 -2
  408. package/dist/default/ui/slider/thumbnail/root.js +15 -7
  409. package/dist/default/ui/slider/track.js +0 -2
  410. package/dist/default/ui/slider/value.js +0 -2
  411. package/dist/default/ui/status-announcer/component.js +0 -2
  412. package/dist/default/ui/status-indicator/context.js +15 -7
  413. package/dist/default/ui/status-indicator/index.parts.js +0 -2
  414. package/dist/default/ui/status-indicator/root.js +57 -19
  415. package/dist/default/ui/status-indicator/value.js +0 -2
  416. package/dist/default/ui/thumbnail/context.js +15 -7
  417. package/dist/default/ui/thumbnail/image.js +0 -2
  418. package/dist/default/ui/thumbnail/index.parts.js +0 -2
  419. package/dist/default/ui/thumbnail/root.js +3 -3
  420. package/dist/default/ui/time/group.js +0 -2
  421. package/dist/default/ui/time/index.parts.js +0 -2
  422. package/dist/default/ui/time/separator.js +0 -2
  423. package/dist/default/ui/time/value.js +0 -2
  424. package/dist/default/ui/time-slider/chapter-title.js +0 -2
  425. package/dist/default/ui/time-slider/chapters.js +117 -29
  426. package/dist/default/ui/time-slider/index.parts.js +0 -2
  427. package/dist/default/ui/time-slider/root.js +220 -71
  428. package/dist/default/ui/time-slider/segments.js +0 -2
  429. package/dist/default/ui/title/component.js +5 -10
  430. package/dist/default/ui/tooltip/arrow.js +0 -2
  431. package/dist/default/ui/tooltip/context.js +0 -2
  432. package/dist/default/ui/tooltip/group-context.js +0 -2
  433. package/dist/default/ui/tooltip/index.parts.js +0 -2
  434. package/dist/default/ui/tooltip/label.js +0 -2
  435. package/dist/default/ui/tooltip/popup.js +55 -24
  436. package/dist/default/ui/tooltip/provider.js +34 -12
  437. package/dist/default/ui/tooltip/root.js +0 -2
  438. package/dist/default/ui/tooltip/shortcut.js +0 -2
  439. package/dist/default/ui/tooltip/trigger.js +0 -2
  440. package/dist/default/ui/volume-indicator/context.js +15 -7
  441. package/dist/default/ui/volume-indicator/fill.js +0 -2
  442. package/dist/default/ui/volume-indicator/index.parts.js +0 -2
  443. package/dist/default/ui/volume-indicator/root.js +55 -18
  444. package/dist/default/ui/volume-indicator/value.js +0 -2
  445. package/dist/default/ui/volume-popover/context.js +0 -2
  446. package/dist/default/ui/volume-popover/index.parts.js +0 -2
  447. package/dist/default/ui/volume-popover/popup.js +21 -7
  448. package/dist/default/ui/volume-popover/root.js +49 -14
  449. package/dist/default/ui/volume-popover/trigger.js +0 -2
  450. package/dist/default/ui/volume-slider/index.parts.js +0 -2
  451. package/dist/default/ui/volume-slider/root.js +0 -2
  452. package/dist/default/utils/merge-props.js +0 -2
  453. package/dist/default/utils/use-attach-media.js +64 -9
  454. package/dist/default/utils/use-composed-refs.js +0 -2
  455. package/dist/default/utils/use-destroy.js +27 -13
  456. package/dist/default/utils/use-force-render.js +4 -3
  457. package/dist/default/utils/use-latest-ref.js +0 -2
  458. package/dist/default/utils/use-media-events.js +105 -0
  459. package/dist/default/utils/use-media-extension.js +26 -7
  460. package/dist/default/utils/use-media-instance.js +28 -7
  461. package/dist/default/utils/use-render.js +50 -5
  462. package/dist/default/utils/use-safe-id.js +10 -3
  463. package/dist/default/utils/use-sync-props.js +0 -2
  464. package/dist/dev/i18n/context.js +25 -8
  465. package/dist/dev/i18n/context.js.map +1 -1
  466. package/dist/dev/i18n/create-i18n.js +18 -2
  467. package/dist/dev/i18n/create-i18n.js.map +1 -1
  468. package/dist/dev/i18n/text.js +38 -6
  469. package/dist/dev/i18n/text.js.map +1 -1
  470. package/dist/dev/i18n/use-ambient-lang.js +14 -5
  471. package/dist/dev/i18n/use-ambient-lang.js.map +1 -1
  472. package/dist/dev/i18n/use-lazy-translations.js +54 -23
  473. package/dist/dev/i18n/use-lazy-translations.js.map +1 -1
  474. package/dist/dev/i18n/use-merged-translations.js +32 -12
  475. package/dist/dev/i18n/use-merged-translations.js.map +1 -1
  476. package/dist/dev/i18n/use-registry-epoch.js +18 -4
  477. package/dist/dev/i18n/use-registry-epoch.js.map +1 -1
  478. package/dist/dev/index.d.ts +4 -2
  479. package/dist/dev/index.js +2 -1
  480. package/dist/dev/internal/skins/default-audio/components/buttons/mute-button.js +63 -11
  481. package/dist/dev/internal/skins/default-audio/components/buttons/mute-button.js.map +1 -1
  482. package/dist/dev/internal/skins/default-audio/components/buttons/play-button.js +63 -11
  483. package/dist/dev/internal/skins/default-audio/components/buttons/play-button.js.map +1 -1
  484. package/dist/dev/internal/skins/default-audio/components/buttons/seek-button.js +96 -13
  485. package/dist/dev/internal/skins/default-audio/components/buttons/seek-button.js.map +1 -1
  486. package/dist/dev/internal/skins/default-audio/components/display/buffering-indicator.js +54 -0
  487. package/dist/dev/internal/skins/default-audio/components/display/buffering-indicator.js.map +1 -0
  488. package/dist/dev/internal/skins/default-audio/components/menus/radio-item.js +42 -7
  489. package/dist/dev/internal/skins/default-audio/components/menus/radio-item.js.map +1 -1
  490. package/dist/dev/internal/skins/default-audio/components/menus/volume-popover.js +103 -0
  491. package/dist/dev/internal/skins/default-audio/components/menus/volume-popover.js.map +1 -0
  492. package/dist/dev/internal/skins/default-audio/layout/controls.js +113 -0
  493. package/dist/dev/internal/skins/default-audio/layout/controls.js.map +1 -0
  494. package/dist/dev/internal/skins/default-audio/skin.js +74 -19
  495. package/dist/dev/internal/skins/default-audio/skin.js.map +1 -1
  496. package/dist/dev/internal/skins/default-audio/skins/shared/audio/buttons/play-button.js +64 -0
  497. package/dist/dev/internal/skins/default-audio/skins/shared/audio/buttons/play-button.js.map +1 -0
  498. package/dist/dev/internal/skins/default-audio/skins/shared/audio/menus/settings-menu.js +100 -0
  499. package/dist/dev/internal/skins/default-audio/skins/shared/audio/menus/settings-menu.js.map +1 -0
  500. package/dist/dev/internal/skins/default-live-audio/components/buttons/mute-button.js +63 -11
  501. package/dist/dev/internal/skins/default-live-audio/components/buttons/mute-button.js.map +1 -1
  502. package/dist/dev/internal/skins/default-live-audio/components/buttons/play-button.js +63 -11
  503. package/dist/dev/internal/skins/default-live-audio/components/buttons/play-button.js.map +1 -1
  504. package/dist/dev/internal/skins/default-live-audio/components/display/buffering-indicator.js +54 -0
  505. package/dist/dev/internal/skins/default-live-audio/components/display/buffering-indicator.js.map +1 -0
  506. package/dist/dev/internal/skins/default-live-audio/components/menus/volume-popover.js +103 -0
  507. package/dist/dev/internal/skins/default-live-audio/components/menus/volume-popover.js.map +1 -0
  508. package/dist/dev/internal/skins/default-live-audio/layout/controls.js +60 -0
  509. package/dist/dev/internal/skins/default-live-audio/layout/controls.js.map +1 -0
  510. package/dist/dev/internal/skins/default-live-audio/skin.js +74 -19
  511. package/dist/dev/internal/skins/default-live-audio/skin.js.map +1 -1
  512. package/dist/dev/internal/skins/default-live-audio/skins/shared/audio/buttons/play-button.js +64 -0
  513. package/dist/dev/internal/skins/default-live-audio/skins/shared/audio/buttons/play-button.js.map +1 -0
  514. package/dist/dev/internal/skins/default-live-video/components/buttons/airplay-button.js +54 -7
  515. package/dist/dev/internal/skins/default-live-video/components/buttons/airplay-button.js.map +1 -1
  516. package/dist/dev/internal/skins/default-live-video/components/buttons/captions-button.js +54 -7
  517. package/dist/dev/internal/skins/default-live-video/components/buttons/captions-button.js.map +1 -1
  518. package/dist/dev/internal/skins/default-live-video/components/buttons/cast-button.js +54 -7
  519. package/dist/dev/internal/skins/default-live-video/components/buttons/cast-button.js.map +1 -1
  520. package/dist/dev/internal/skins/default-live-video/components/buttons/fullscreen-button.js +54 -7
  521. package/dist/dev/internal/skins/default-live-video/components/buttons/fullscreen-button.js.map +1 -1
  522. package/dist/dev/internal/skins/default-live-video/components/buttons/mute-button.js +63 -11
  523. package/dist/dev/internal/skins/default-live-video/components/buttons/mute-button.js.map +1 -1
  524. package/dist/dev/internal/skins/default-live-video/components/buttons/pip-button.js +54 -7
  525. package/dist/dev/internal/skins/default-live-video/components/buttons/pip-button.js.map +1 -1
  526. package/dist/dev/internal/skins/default-live-video/components/buttons/play-button.js +63 -11
  527. package/dist/dev/internal/skins/default-live-video/components/buttons/play-button.js.map +1 -1
  528. package/dist/dev/internal/skins/default-live-video/components/display/buffering-indicator.js +54 -0
  529. package/dist/dev/internal/skins/default-live-video/components/display/buffering-indicator.js.map +1 -0
  530. package/dist/dev/internal/skins/default-live-video/components/display/status-indicator.js +130 -0
  531. package/dist/dev/internal/skins/default-live-video/components/display/status-indicator.js.map +1 -0
  532. package/dist/dev/internal/skins/default-live-video/components/display/volume-indicator.js +66 -0
  533. package/dist/dev/internal/skins/default-live-video/components/display/volume-indicator.js.map +1 -0
  534. package/dist/dev/internal/skins/default-live-video/components/menus/captions-menu.js +71 -15
  535. package/dist/dev/internal/skins/default-live-video/components/menus/captions-menu.js.map +1 -1
  536. package/dist/dev/internal/skins/default-live-video/components/menus/radio-item.js +42 -7
  537. package/dist/dev/internal/skins/default-live-video/components/menus/radio-item.js.map +1 -1
  538. package/dist/dev/internal/skins/default-live-video/components/menus/volume-popover.js +103 -0
  539. package/dist/dev/internal/skins/default-live-video/components/menus/volume-popover.js.map +1 -0
  540. package/dist/dev/internal/skins/default-live-video/layout/controls.js +119 -0
  541. package/dist/dev/internal/skins/default-live-video/layout/controls.js.map +1 -0
  542. package/dist/dev/internal/skins/default-live-video/skin.js +104 -25
  543. package/dist/dev/internal/skins/default-live-video/skin.js.map +1 -1
  544. package/dist/dev/internal/skins/default-live-video/skins/shared/live-video/display/status-indicators.js +74 -0
  545. package/dist/dev/internal/skins/default-live-video/skins/shared/live-video/display/status-indicators.js.map +1 -0
  546. package/dist/dev/internal/skins/default-video/components/buttons/airplay-button.js +54 -7
  547. package/dist/dev/internal/skins/default-video/components/buttons/airplay-button.js.map +1 -1
  548. package/dist/dev/internal/skins/default-video/components/buttons/captions-button.js +54 -7
  549. package/dist/dev/internal/skins/default-video/components/buttons/captions-button.js.map +1 -1
  550. package/dist/dev/internal/skins/default-video/components/buttons/cast-button.js +54 -7
  551. package/dist/dev/internal/skins/default-video/components/buttons/cast-button.js.map +1 -1
  552. package/dist/dev/internal/skins/default-video/components/buttons/fullscreen-button.js +54 -7
  553. package/dist/dev/internal/skins/default-video/components/buttons/fullscreen-button.js.map +1 -1
  554. package/dist/dev/internal/skins/default-video/components/buttons/mute-button.js +63 -11
  555. package/dist/dev/internal/skins/default-video/components/buttons/mute-button.js.map +1 -1
  556. package/dist/dev/internal/skins/default-video/components/buttons/pip-button.js +54 -7
  557. package/dist/dev/internal/skins/default-video/components/buttons/pip-button.js.map +1 -1
  558. package/dist/dev/internal/skins/default-video/components/buttons/play-button.js +63 -11
  559. package/dist/dev/internal/skins/default-video/components/buttons/play-button.js.map +1 -1
  560. package/dist/dev/internal/skins/default-video/components/display/buffering-indicator.js +54 -0
  561. package/dist/dev/internal/skins/default-video/components/display/buffering-indicator.js.map +1 -0
  562. package/dist/dev/internal/skins/default-video/components/display/seek-indicator.js +61 -0
  563. package/dist/dev/internal/skins/default-video/components/display/seek-indicator.js.map +1 -0
  564. package/dist/dev/internal/skins/default-video/components/display/status-indicator.js +130 -0
  565. package/dist/dev/internal/skins/default-video/components/display/status-indicator.js.map +1 -0
  566. package/dist/dev/internal/skins/default-video/components/display/volume-indicator.js +66 -0
  567. package/dist/dev/internal/skins/default-video/components/display/volume-indicator.js.map +1 -0
  568. package/dist/dev/internal/skins/default-video/components/menus/audio-track-menu.js +59 -15
  569. package/dist/dev/internal/skins/default-video/components/menus/audio-track-menu.js.map +1 -1
  570. package/dist/dev/internal/skins/default-video/components/menus/captions-submenu.js +59 -15
  571. package/dist/dev/internal/skins/default-video/components/menus/captions-submenu.js.map +1 -1
  572. package/dist/dev/internal/skins/default-video/components/menus/menu-chevron.js +25 -2
  573. package/dist/dev/internal/skins/default-video/components/menus/menu-chevron.js.map +1 -1
  574. package/dist/dev/internal/skins/default-video/components/menus/playback-rate-submenu.js +59 -15
  575. package/dist/dev/internal/skins/default-video/components/menus/playback-rate-submenu.js.map +1 -1
  576. package/dist/dev/internal/skins/default-video/components/menus/quality-menu.js +65 -21
  577. package/dist/dev/internal/skins/default-video/components/menus/quality-menu.js.map +1 -1
  578. package/dist/dev/internal/skins/default-video/components/menus/radio-item.js +42 -7
  579. package/dist/dev/internal/skins/default-video/components/menus/radio-item.js.map +1 -1
  580. package/dist/dev/internal/skins/default-video/components/menus/settings-menu.js +89 -21
  581. package/dist/dev/internal/skins/default-video/components/menus/settings-menu.js.map +1 -1
  582. package/dist/dev/internal/skins/default-video/components/menus/volume-popover.js +103 -0
  583. package/dist/dev/internal/skins/default-video/components/menus/volume-popover.js.map +1 -0
  584. package/dist/dev/internal/skins/default-video/components/sliders/time-slider.js +132 -36
  585. package/dist/dev/internal/skins/default-video/components/sliders/time-slider.js.map +1 -1
  586. package/dist/dev/internal/skins/default-video/layout/controls.js +174 -0
  587. package/dist/dev/internal/skins/default-video/layout/controls.js.map +1 -0
  588. package/dist/dev/internal/skins/default-video/skin.js +113 -25
  589. package/dist/dev/internal/skins/default-video/skin.js.map +1 -1
  590. package/dist/dev/internal/skins/default-video/skins/shared/video/display/status-indicators.js +80 -0
  591. package/dist/dev/internal/skins/default-video/skins/shared/video/display/status-indicators.js.map +1 -0
  592. package/dist/dev/internal/skins/default-video/skins/shared/video/menus/settings-menu.js +56 -0
  593. package/dist/dev/internal/skins/default-video/skins/shared/video/menus/settings-menu.js.map +1 -0
  594. package/dist/dev/internal/skins/minimal-audio/components/buttons/mute-button.js +63 -11
  595. package/dist/dev/internal/skins/minimal-audio/components/buttons/mute-button.js.map +1 -1
  596. package/dist/dev/internal/skins/minimal-audio/components/buttons/play-button.js +63 -11
  597. package/dist/dev/internal/skins/minimal-audio/components/buttons/play-button.js.map +1 -1
  598. package/dist/dev/internal/skins/minimal-audio/components/buttons/seek-button.js +96 -13
  599. package/dist/dev/internal/skins/minimal-audio/components/buttons/seek-button.js.map +1 -1
  600. package/dist/dev/internal/skins/minimal-audio/components/display/buffering-indicator.js +54 -0
  601. package/dist/dev/internal/skins/minimal-audio/components/display/buffering-indicator.js.map +1 -0
  602. package/dist/dev/internal/skins/minimal-audio/components/menus/radio-item.js +42 -7
  603. package/dist/dev/internal/skins/minimal-audio/components/menus/radio-item.js.map +1 -1
  604. package/dist/dev/internal/skins/minimal-audio/components/menus/volume-popover.js +103 -0
  605. package/dist/dev/internal/skins/minimal-audio/components/menus/volume-popover.js.map +1 -0
  606. package/dist/dev/internal/skins/minimal-audio/layout/controls.js +106 -0
  607. package/dist/dev/internal/skins/minimal-audio/layout/controls.js.map +1 -0
  608. package/dist/dev/internal/skins/minimal-audio/skin.js +74 -19
  609. package/dist/dev/internal/skins/minimal-audio/skin.js.map +1 -1
  610. package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/buttons/play-button.js +64 -0
  611. package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/buttons/play-button.js.map +1 -0
  612. package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/menus/settings-menu.js +100 -0
  613. package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/menus/settings-menu.js.map +1 -0
  614. package/dist/dev/internal/skins/minimal-live-audio/components/buttons/mute-button.js +63 -11
  615. package/dist/dev/internal/skins/minimal-live-audio/components/buttons/mute-button.js.map +1 -1
  616. package/dist/dev/internal/skins/minimal-live-audio/components/buttons/play-button.js +63 -11
  617. package/dist/dev/internal/skins/minimal-live-audio/components/buttons/play-button.js.map +1 -1
  618. package/dist/dev/internal/skins/minimal-live-audio/components/display/buffering-indicator.js +54 -0
  619. package/dist/dev/internal/skins/minimal-live-audio/components/display/buffering-indicator.js.map +1 -0
  620. package/dist/dev/internal/skins/minimal-live-audio/components/menus/volume-popover.js +103 -0
  621. package/dist/dev/internal/skins/minimal-live-audio/components/menus/volume-popover.js.map +1 -0
  622. package/dist/dev/internal/skins/minimal-live-audio/layout/controls.js +65 -0
  623. package/dist/dev/internal/skins/minimal-live-audio/layout/controls.js.map +1 -0
  624. package/dist/dev/internal/skins/minimal-live-audio/skin.js +74 -19
  625. package/dist/dev/internal/skins/minimal-live-audio/skin.js.map +1 -1
  626. package/dist/dev/internal/skins/minimal-live-audio/skins/shared/audio/buttons/play-button.js +64 -0
  627. package/dist/dev/internal/skins/minimal-live-audio/skins/shared/audio/buttons/play-button.js.map +1 -0
  628. package/dist/dev/internal/skins/minimal-live-video/components/buttons/airplay-button.js +54 -7
  629. package/dist/dev/internal/skins/minimal-live-video/components/buttons/airplay-button.js.map +1 -1
  630. package/dist/dev/internal/skins/minimal-live-video/components/buttons/captions-button.js +54 -7
  631. package/dist/dev/internal/skins/minimal-live-video/components/buttons/captions-button.js.map +1 -1
  632. package/dist/dev/internal/skins/minimal-live-video/components/buttons/cast-button.js +54 -7
  633. package/dist/dev/internal/skins/minimal-live-video/components/buttons/cast-button.js.map +1 -1
  634. package/dist/dev/internal/skins/minimal-live-video/components/buttons/fullscreen-button.js +54 -7
  635. package/dist/dev/internal/skins/minimal-live-video/components/buttons/fullscreen-button.js.map +1 -1
  636. package/dist/dev/internal/skins/minimal-live-video/components/buttons/mute-button.js +63 -11
  637. package/dist/dev/internal/skins/minimal-live-video/components/buttons/mute-button.js.map +1 -1
  638. package/dist/dev/internal/skins/minimal-live-video/components/buttons/pip-button.js +54 -7
  639. package/dist/dev/internal/skins/minimal-live-video/components/buttons/pip-button.js.map +1 -1
  640. package/dist/dev/internal/skins/minimal-live-video/components/buttons/play-button.js +63 -11
  641. package/dist/dev/internal/skins/minimal-live-video/components/buttons/play-button.js.map +1 -1
  642. package/dist/dev/internal/skins/minimal-live-video/components/display/buffering-indicator.js +54 -0
  643. package/dist/dev/internal/skins/minimal-live-video/components/display/buffering-indicator.js.map +1 -0
  644. package/dist/dev/internal/skins/minimal-live-video/components/display/status-indicator.js +130 -0
  645. package/dist/dev/internal/skins/minimal-live-video/components/display/status-indicator.js.map +1 -0
  646. package/dist/dev/internal/skins/minimal-live-video/components/display/volume-indicator.js +66 -0
  647. package/dist/dev/internal/skins/minimal-live-video/components/display/volume-indicator.js.map +1 -0
  648. package/dist/dev/internal/skins/minimal-live-video/components/menus/captions-menu.js +71 -15
  649. package/dist/dev/internal/skins/minimal-live-video/components/menus/captions-menu.js.map +1 -1
  650. package/dist/dev/internal/skins/minimal-live-video/components/menus/radio-item.js +42 -7
  651. package/dist/dev/internal/skins/minimal-live-video/components/menus/radio-item.js.map +1 -1
  652. package/dist/dev/internal/skins/minimal-live-video/components/menus/volume-popover.js +103 -0
  653. package/dist/dev/internal/skins/minimal-live-video/components/menus/volume-popover.js.map +1 -0
  654. package/dist/dev/internal/skins/minimal-live-video/layout/controls.js +118 -0
  655. package/dist/dev/internal/skins/minimal-live-video/layout/controls.js.map +1 -0
  656. package/dist/dev/internal/skins/minimal-live-video/skin.js +104 -25
  657. package/dist/dev/internal/skins/minimal-live-video/skin.js.map +1 -1
  658. package/dist/dev/internal/skins/minimal-live-video/skins/shared/live-video/display/status-indicators.js +74 -0
  659. package/dist/dev/internal/skins/minimal-live-video/skins/shared/live-video/display/status-indicators.js.map +1 -0
  660. package/dist/dev/internal/skins/minimal-video/components/buttons/airplay-button.js +54 -7
  661. package/dist/dev/internal/skins/minimal-video/components/buttons/airplay-button.js.map +1 -1
  662. package/dist/dev/internal/skins/minimal-video/components/buttons/captions-button.js +54 -7
  663. package/dist/dev/internal/skins/minimal-video/components/buttons/captions-button.js.map +1 -1
  664. package/dist/dev/internal/skins/minimal-video/components/buttons/cast-button.js +54 -7
  665. package/dist/dev/internal/skins/minimal-video/components/buttons/cast-button.js.map +1 -1
  666. package/dist/dev/internal/skins/minimal-video/components/buttons/fullscreen-button.js +54 -7
  667. package/dist/dev/internal/skins/minimal-video/components/buttons/fullscreen-button.js.map +1 -1
  668. package/dist/dev/internal/skins/minimal-video/components/buttons/mute-button.js +63 -11
  669. package/dist/dev/internal/skins/minimal-video/components/buttons/mute-button.js.map +1 -1
  670. package/dist/dev/internal/skins/minimal-video/components/buttons/pip-button.js +54 -7
  671. package/dist/dev/internal/skins/minimal-video/components/buttons/pip-button.js.map +1 -1
  672. package/dist/dev/internal/skins/minimal-video/components/buttons/play-button.js +63 -11
  673. package/dist/dev/internal/skins/minimal-video/components/buttons/play-button.js.map +1 -1
  674. package/dist/dev/internal/skins/minimal-video/components/display/buffering-indicator.js +54 -0
  675. package/dist/dev/internal/skins/minimal-video/components/display/buffering-indicator.js.map +1 -0
  676. package/dist/dev/internal/skins/minimal-video/components/display/seek-indicator.js +61 -0
  677. package/dist/dev/internal/skins/minimal-video/components/display/seek-indicator.js.map +1 -0
  678. package/dist/dev/internal/skins/minimal-video/components/display/status-indicator.js +130 -0
  679. package/dist/dev/internal/skins/minimal-video/components/display/status-indicator.js.map +1 -0
  680. package/dist/dev/internal/skins/minimal-video/components/display/volume-indicator.js +66 -0
  681. package/dist/dev/internal/skins/minimal-video/components/display/volume-indicator.js.map +1 -0
  682. package/dist/dev/internal/skins/minimal-video/components/menus/audio-track-menu.js +59 -15
  683. package/dist/dev/internal/skins/minimal-video/components/menus/audio-track-menu.js.map +1 -1
  684. package/dist/dev/internal/skins/minimal-video/components/menus/captions-submenu.js +59 -15
  685. package/dist/dev/internal/skins/minimal-video/components/menus/captions-submenu.js.map +1 -1
  686. package/dist/dev/internal/skins/minimal-video/components/menus/menu-chevron.js +25 -2
  687. package/dist/dev/internal/skins/minimal-video/components/menus/menu-chevron.js.map +1 -1
  688. package/dist/dev/internal/skins/minimal-video/components/menus/playback-rate-submenu.js +59 -15
  689. package/dist/dev/internal/skins/minimal-video/components/menus/playback-rate-submenu.js.map +1 -1
  690. package/dist/dev/internal/skins/minimal-video/components/menus/quality-menu.js +65 -21
  691. package/dist/dev/internal/skins/minimal-video/components/menus/quality-menu.js.map +1 -1
  692. package/dist/dev/internal/skins/minimal-video/components/menus/radio-item.js +42 -7
  693. package/dist/dev/internal/skins/minimal-video/components/menus/radio-item.js.map +1 -1
  694. package/dist/dev/internal/skins/minimal-video/components/menus/settings-menu.js +89 -21
  695. package/dist/dev/internal/skins/minimal-video/components/menus/settings-menu.js.map +1 -1
  696. package/dist/dev/internal/skins/minimal-video/components/menus/volume-popover.js +103 -0
  697. package/dist/dev/internal/skins/minimal-video/components/menus/volume-popover.js.map +1 -0
  698. package/dist/dev/internal/skins/minimal-video/components/sliders/time-slider.js +132 -36
  699. package/dist/dev/internal/skins/minimal-video/components/sliders/time-slider.js.map +1 -1
  700. package/dist/dev/internal/skins/minimal-video/layout/controls.js +168 -0
  701. package/dist/dev/internal/skins/minimal-video/layout/controls.js.map +1 -0
  702. package/dist/dev/internal/skins/minimal-video/skin.js +113 -25
  703. package/dist/dev/internal/skins/minimal-video/skin.js.map +1 -1
  704. package/dist/dev/internal/skins/minimal-video/skins/shared/video/display/status-indicators.js +80 -0
  705. package/dist/dev/internal/skins/minimal-video/skins/shared/video/display/status-indicators.js.map +1 -0
  706. package/dist/dev/internal/skins/minimal-video/skins/shared/video/menus/settings-menu.js +56 -0
  707. package/dist/dev/internal/skins/minimal-video/skins/shared/video/menus/settings-menu.js.map +1 -0
  708. package/dist/dev/internal/skins/shared/components/behaviors/status-announcer.js +47 -0
  709. package/dist/dev/internal/skins/shared/components/behaviors/status-announcer.js.map +1 -0
  710. package/dist/dev/internal/skins/shared/components/buttons/button-tooltip.js +62 -8
  711. package/dist/dev/internal/skins/shared/components/buttons/button-tooltip.js.map +1 -1
  712. package/dist/dev/internal/skins/shared/components/buttons/button.js +31 -5
  713. package/dist/dev/internal/skins/shared/components/buttons/button.js.map +1 -1
  714. package/dist/dev/internal/skins/shared/components/buttons/live-button.js +43 -6
  715. package/dist/dev/internal/skins/shared/components/buttons/live-button.js.map +1 -1
  716. package/dist/dev/internal/skins/shared/components/buttons/playback-rate-button.js +43 -6
  717. package/dist/dev/internal/skins/shared/components/buttons/playback-rate-button.js.map +1 -1
  718. package/dist/dev/internal/skins/shared/components/dialogs/error-dialog.js +46 -0
  719. package/dist/dev/internal/skins/shared/components/dialogs/error-dialog.js.map +1 -0
  720. package/dist/dev/internal/skins/shared/components/display/poster.js +66 -0
  721. package/dist/dev/internal/skins/shared/components/display/poster.js.map +1 -0
  722. package/dist/dev/internal/skins/shared/components/display/title.js +47 -0
  723. package/dist/dev/internal/skins/shared/components/display/title.js.map +1 -0
  724. package/dist/dev/internal/skins/shared/components/layout/container.js +36 -6
  725. package/dist/dev/internal/skins/shared/components/layout/container.js.map +1 -1
  726. package/dist/dev/internal/skins/shared/components/sliders/slider.js +121 -20
  727. package/dist/dev/internal/skins/shared/components/sliders/slider.js.map +1 -1
  728. package/dist/dev/internal/skins/shared/components/sliders/volume-slider.js +57 -10
  729. package/dist/dev/internal/skins/shared/components/sliders/volume-slider.js.map +1 -1
  730. package/dist/dev/internal/skins/shared/skins/shared/audio/dialogs/error-dialog.js +46 -0
  731. package/dist/dev/internal/skins/shared/skins/shared/audio/dialogs/error-dialog.js.map +1 -0
  732. package/dist/dev/internal/skins/shared/skins/shared/audio/sliders/time-slider.js +110 -0
  733. package/dist/dev/internal/skins/shared/skins/shared/audio/sliders/time-slider.js.map +1 -0
  734. package/dist/dev/internal/skins/shared/skins/shared/behaviors/live-playback-hotkeys.js +53 -0
  735. package/dist/dev/internal/skins/shared/skins/shared/behaviors/live-playback-hotkeys.js.map +1 -0
  736. package/dist/dev/internal/skins/shared/skins/shared/behaviors/playback-hotkeys.js +100 -0
  737. package/dist/dev/internal/skins/shared/skins/shared/behaviors/playback-hotkeys.js.map +1 -0
  738. package/dist/dev/internal/skins/shared/skins/shared/live-video/behaviors/gestures.js +47 -0
  739. package/dist/dev/internal/skins/shared/skins/shared/live-video/behaviors/gestures.js.map +1 -0
  740. package/dist/dev/internal/skins/shared/skins/shared/live-video/behaviors/hotkeys.js +45 -0
  741. package/dist/dev/internal/skins/shared/skins/shared/live-video/behaviors/hotkeys.js.map +1 -0
  742. package/dist/dev/internal/skins/shared/skins/shared/video/behaviors/gestures.js +59 -0
  743. package/dist/dev/internal/skins/shared/skins/shared/video/behaviors/gestures.js.map +1 -0
  744. package/dist/dev/internal/skins/shared/skins/shared/video/behaviors/hotkeys.js +45 -0
  745. package/dist/dev/internal/skins/shared/skins/shared/video/behaviors/hotkeys.js.map +1 -0
  746. package/dist/dev/media/audio.js +27 -6
  747. package/dist/dev/media/audio.js.map +1 -1
  748. package/dist/dev/media/background-video/adapter.js +43 -17
  749. package/dist/dev/media/background-video/adapter.js.map +1 -1
  750. package/dist/dev/media/cloudflare-video/adapter.d.ts +3 -2
  751. package/dist/dev/media/cloudflare-video/adapter.js +63 -25
  752. package/dist/dev/media/cloudflare-video/adapter.js.map +1 -1
  753. package/dist/dev/media/dash-video/adapter.js +27 -6
  754. package/dist/dev/media/dash-video/adapter.js.map +1 -1
  755. package/dist/dev/media/hls-audio/adapter.js +27 -6
  756. package/dist/dev/media/hls-audio/adapter.js.map +1 -1
  757. package/dist/dev/media/hls-background-video/adapter.js +50 -17
  758. package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
  759. package/dist/dev/media/hls-video/adapter.js +27 -6
  760. package/dist/dev/media/hls-video/adapter.js.map +1 -1
  761. package/dist/dev/media/hlsjs-video/adapter.js +27 -6
  762. package/dist/dev/media/hlsjs-video/adapter.js.map +1 -1
  763. package/dist/dev/media/mux-audio/hls-js.js +27 -6
  764. package/dist/dev/media/mux-audio/hls-js.js.map +1 -1
  765. package/dist/dev/media/mux-audio/spf.d.ts +1 -1
  766. package/dist/dev/media/mux-audio/spf.js +27 -6
  767. package/dist/dev/media/mux-audio/spf.js.map +1 -1
  768. package/dist/dev/media/mux-video/hls-js.js +34 -6
  769. package/dist/dev/media/mux-video/hls-js.js.map +1 -1
  770. package/dist/dev/media/mux-video/spf.d.ts +1 -1
  771. package/dist/dev/media/mux-video/spf.js +34 -6
  772. package/dist/dev/media/mux-video/spf.js.map +1 -1
  773. package/dist/dev/media/mux-video/storyboard.js +49 -27
  774. package/dist/dev/media/mux-video/storyboard.js.map +1 -1
  775. package/dist/dev/media/native-hls-video/adapter.js +27 -6
  776. package/dist/dev/media/native-hls-video/adapter.js.map +1 -1
  777. package/dist/dev/media/shaka-video/adapter.js +27 -6
  778. package/dist/dev/media/shaka-video/adapter.js.map +1 -1
  779. package/dist/dev/media/spotify-audio/adapter.d.ts +3 -2
  780. package/dist/dev/media/spotify-audio/adapter.js +83 -25
  781. package/dist/dev/media/spotify-audio/adapter.js.map +1 -1
  782. package/dist/dev/media/tiktok-video/adapter.d.ts +3 -2
  783. package/dist/dev/media/tiktok-video/adapter.js +63 -25
  784. package/dist/dev/media/tiktok-video/adapter.js.map +1 -1
  785. package/dist/dev/media/twitch-video/adapter.d.ts +3 -2
  786. package/dist/dev/media/twitch-video/adapter.js +63 -25
  787. package/dist/dev/media/twitch-video/adapter.js.map +1 -1
  788. package/dist/dev/media/video.js +27 -6
  789. package/dist/dev/media/video.js.map +1 -1
  790. package/dist/dev/media/vimeo-video/adapter.d.ts +3 -2
  791. package/dist/dev/media/vimeo-video/adapter.js +62 -24
  792. package/dist/dev/media/vimeo-video/adapter.js.map +1 -1
  793. package/dist/dev/media/wistia-video/adapter.d.ts +2 -1
  794. package/dist/dev/media/wistia-video/adapter.js +95 -11
  795. package/dist/dev/media/wistia-video/adapter.js.map +1 -1
  796. package/dist/dev/media/youtube-video/adapter.d.ts +3 -2
  797. package/dist/dev/media/youtube-video/adapter.js +62 -24
  798. package/dist/dev/media/youtube-video/adapter.js.map +1 -1
  799. package/dist/dev/player/container.js +153 -36
  800. package/dist/dev/player/container.js.map +1 -1
  801. package/dist/dev/player/context.js +15 -5
  802. package/dist/dev/player/context.js.map +1 -1
  803. package/dist/dev/player/create-player.js +101 -48
  804. package/dist/dev/player/create-player.js.map +1 -1
  805. package/dist/dev/player/popup-group-context.js +15 -5
  806. package/dist/dev/player/popup-group-context.js.map +1 -1
  807. package/dist/dev/presets/audio/minimal-skin.css +638 -399
  808. package/dist/dev/presets/audio/minimal-skin.js +10 -2
  809. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  810. package/dist/dev/presets/audio/skin.css +384 -190
  811. package/dist/dev/presets/audio/skin.js +10 -2
  812. package/dist/dev/presets/audio/skin.js.map +1 -1
  813. package/dist/dev/presets/background/skin.js +47 -7
  814. package/dist/dev/presets/background/skin.js.map +1 -1
  815. package/dist/dev/presets/live-audio/minimal-skin.css +433 -353
  816. package/dist/dev/presets/live-audio/minimal-skin.js +10 -2
  817. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
  818. package/dist/dev/presets/live-audio/skin.css +196 -144
  819. package/dist/dev/presets/live-audio/skin.js +10 -2
  820. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  821. package/dist/dev/presets/live-video/minimal-skin.css +860 -732
  822. package/dist/dev/presets/live-video/minimal-skin.js +10 -2
  823. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  824. package/dist/dev/presets/live-video/skin.css +695 -589
  825. package/dist/dev/presets/live-video/skin.js +10 -2
  826. package/dist/dev/presets/live-video/skin.js.map +1 -1
  827. package/dist/dev/presets/types.d.ts +17 -1
  828. package/dist/dev/presets/video/minimal-skin.css +717 -623
  829. package/dist/dev/presets/video/minimal-skin.d.ts +2 -2
  830. package/dist/dev/presets/video/minimal-skin.js +10 -2
  831. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  832. package/dist/dev/presets/video/skin.css +480 -416
  833. package/dist/dev/presets/video/skin.d.ts +2 -2
  834. package/dist/dev/presets/video/skin.js +10 -2
  835. package/dist/dev/presets/video/skin.js.map +1 -1
  836. package/dist/dev/ui/alert-dialog/root.js +37 -11
  837. package/dist/dev/ui/alert-dialog/root.js.map +1 -1
  838. package/dist/dev/ui/audio-track-radio-group/component.js +188 -40
  839. package/dist/dev/ui/audio-track-radio-group/component.js.map +1 -1
  840. package/dist/dev/ui/captions-radio-group/component.js +188 -40
  841. package/dist/dev/ui/captions-radio-group/component.js.map +1 -1
  842. package/dist/dev/ui/controls/root.js +1 -0
  843. package/dist/dev/ui/controls/root.js.map +1 -1
  844. package/dist/dev/ui/dialog/root.js +23 -8
  845. package/dist/dev/ui/dialog/root.js.map +1 -1
  846. package/dist/dev/ui/error-dialog/root.js +51 -19
  847. package/dist/dev/ui/error-dialog/root.js.map +1 -1
  848. package/dist/dev/ui/gesture/component.js +50 -28
  849. package/dist/dev/ui/gesture/component.js.map +1 -1
  850. package/dist/dev/ui/gesture/use-doubletap-gesture.js +39 -11
  851. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  852. package/dist/dev/ui/gesture/use-tap-gesture.js +39 -11
  853. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  854. package/dist/dev/ui/hooks/use-button.js +31 -9
  855. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  856. package/dist/dev/ui/hooks/use-positioned-state.js +69 -29
  857. package/dist/dev/ui/hooks/use-positioned-state.js.map +1 -1
  858. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  859. package/dist/dev/ui/hotkey/component.js +46 -25
  860. package/dist/dev/ui/hotkey/component.js.map +1 -1
  861. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +36 -15
  862. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  863. package/dist/dev/ui/hotkey/use-hotkey.js +40 -14
  864. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
  865. package/dist/dev/ui/input-indicator/use-indicator-visibility.js +38 -11
  866. package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  867. package/dist/dev/ui/input-indicator/use-input-action-subscription.js +22 -6
  868. package/dist/dev/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  869. package/dist/dev/ui/input-indicator/use-input-indicator-root.js +38 -5
  870. package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  871. package/dist/dev/ui/menu/content.js +86 -53
  872. package/dist/dev/ui/menu/content.js.map +1 -1
  873. package/dist/dev/ui/menu/context.js +38 -16
  874. package/dist/dev/ui/menu/context.js.map +1 -1
  875. package/dist/dev/ui/menu/group.js +40 -10
  876. package/dist/dev/ui/menu/group.js.map +1 -1
  877. package/dist/dev/ui/menu/item.js +103 -38
  878. package/dist/dev/ui/menu/item.js.map +1 -1
  879. package/dist/dev/ui/menu/popup.js +80 -30
  880. package/dist/dev/ui/menu/popup.js.map +1 -1
  881. package/dist/dev/ui/menu/radio-group.js +54 -16
  882. package/dist/dev/ui/menu/radio-group.js.map +1 -1
  883. package/dist/dev/ui/menu/radio-item.js +81 -45
  884. package/dist/dev/ui/menu/radio-item.js.map +1 -1
  885. package/dist/dev/ui/menu/root.js.map +1 -1
  886. package/dist/dev/ui/menu/trigger.js +194 -109
  887. package/dist/dev/ui/menu/trigger.js.map +1 -1
  888. package/dist/dev/ui/menu/use-menu-group.js +38 -12
  889. package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
  890. package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  891. package/dist/dev/ui/playback-rate-radio-group/component.js +188 -40
  892. package/dist/dev/ui/playback-rate-radio-group/component.js.map +1 -1
  893. package/dist/dev/ui/popover/popup.js +47 -20
  894. package/dist/dev/ui/popover/popup.js.map +1 -1
  895. package/dist/dev/ui/popover/use-popup-position.js +54 -20
  896. package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
  897. package/dist/dev/ui/poster/context.js +15 -6
  898. package/dist/dev/ui/poster/context.js.map +1 -1
  899. package/dist/dev/ui/poster/image.js +60 -30
  900. package/dist/dev/ui/poster/image.js.map +1 -1
  901. package/dist/dev/ui/poster/root.js +4 -1
  902. package/dist/dev/ui/poster/root.js.map +1 -1
  903. package/dist/dev/ui/quality-radio-group/component.js +188 -40
  904. package/dist/dev/ui/quality-radio-group/component.js.map +1 -1
  905. package/dist/dev/ui/seek-indicator/context.js +15 -5
  906. package/dist/dev/ui/seek-indicator/context.js.map +1 -1
  907. package/dist/dev/ui/seek-indicator/root.js +40 -13
  908. package/dist/dev/ui/seek-indicator/root.js.map +1 -1
  909. package/dist/dev/ui/slider/context.js +47 -8
  910. package/dist/dev/ui/slider/context.js.map +1 -1
  911. package/dist/dev/ui/slider/root.js +156 -47
  912. package/dist/dev/ui/slider/root.js.map +1 -1
  913. package/dist/dev/ui/slider/thumbnail/root.js +15 -5
  914. package/dist/dev/ui/slider/thumbnail/root.js.map +1 -1
  915. package/dist/dev/ui/status-indicator/context.js +15 -5
  916. package/dist/dev/ui/status-indicator/context.js.map +1 -1
  917. package/dist/dev/ui/status-indicator/root.js +57 -17
  918. package/dist/dev/ui/status-indicator/root.js.map +1 -1
  919. package/dist/dev/ui/thumbnail/context.js +15 -5
  920. package/dist/dev/ui/thumbnail/context.js.map +1 -1
  921. package/dist/dev/ui/thumbnail/root.js +3 -1
  922. package/dist/dev/ui/thumbnail/root.js.map +1 -1
  923. package/dist/dev/ui/time/group.js.map +1 -1
  924. package/dist/dev/ui/time/separator.js.map +1 -1
  925. package/dist/dev/ui/time-slider/chapter-title.js.map +1 -1
  926. package/dist/dev/ui/time-slider/chapters.js +117 -27
  927. package/dist/dev/ui/time-slider/chapters.js.map +1 -1
  928. package/dist/dev/ui/time-slider/root.js +220 -69
  929. package/dist/dev/ui/time-slider/root.js.map +1 -1
  930. package/dist/dev/ui/title/component.d.ts +3 -7
  931. package/dist/dev/ui/title/component.js +5 -8
  932. package/dist/dev/ui/title/component.js.map +1 -1
  933. package/dist/dev/ui/title/index.d.ts +1 -1
  934. package/dist/dev/ui/tooltip/popup.js +55 -22
  935. package/dist/dev/ui/tooltip/popup.js.map +1 -1
  936. package/dist/dev/ui/tooltip/provider.js +34 -10
  937. package/dist/dev/ui/tooltip/provider.js.map +1 -1
  938. package/dist/dev/ui/volume-indicator/context.js +15 -5
  939. package/dist/dev/ui/volume-indicator/context.js.map +1 -1
  940. package/dist/dev/ui/volume-indicator/root.js +55 -16
  941. package/dist/dev/ui/volume-indicator/root.js.map +1 -1
  942. package/dist/dev/ui/volume-popover/popup.js +21 -5
  943. package/dist/dev/ui/volume-popover/popup.js.map +1 -1
  944. package/dist/dev/ui/volume-popover/root.d.ts +1 -1
  945. package/dist/dev/ui/volume-popover/root.js +49 -12
  946. package/dist/dev/ui/volume-popover/root.js.map +1 -1
  947. package/dist/dev/utils/use-attach-media.d.ts +8 -2
  948. package/dist/dev/utils/use-attach-media.js +64 -7
  949. package/dist/dev/utils/use-attach-media.js.map +1 -1
  950. package/dist/dev/utils/use-destroy.js +27 -11
  951. package/dist/dev/utils/use-destroy.js.map +1 -1
  952. package/dist/dev/utils/use-force-render.js +4 -1
  953. package/dist/dev/utils/use-force-render.js.map +1 -1
  954. package/dist/dev/utils/use-media-events.d.ts +72 -0
  955. package/dist/dev/utils/use-media-events.js +107 -0
  956. package/dist/dev/utils/use-media-events.js.map +1 -0
  957. package/dist/dev/utils/use-media-extension.js +26 -5
  958. package/dist/dev/utils/use-media-extension.js.map +1 -1
  959. package/dist/dev/utils/use-media-instance.js +28 -5
  960. package/dist/dev/utils/use-media-instance.js.map +1 -1
  961. package/dist/dev/utils/use-render.js +51 -3
  962. package/dist/dev/utils/use-render.js.map +1 -1
  963. package/dist/dev/utils/use-safe-id.js +10 -1
  964. package/dist/dev/utils/use-safe-id.js.map +1 -1
  965. package/docs/README.md +1 -1
  966. package/docs/guides/accessibility.md +93 -0
  967. package/docs/guides/architecture.md +118 -0
  968. package/docs/guides/autoplay.md +173 -0
  969. package/docs/guides/background-video.md +202 -0
  970. package/docs/guides/browser-support.md +145 -0
  971. package/docs/guides/build-with-ai.md +167 -0
  972. package/docs/guides/build-your-own-component.md +182 -0
  973. package/docs/guides/bundlers.md +50 -0
  974. package/docs/guides/captions.md +155 -0
  975. package/docs/guides/casting.md +159 -0
  976. package/docs/guides/content-security-policy.md +36 -0
  977. package/docs/guides/controls.md +179 -0
  978. package/docs/guides/customize-skins.md +153 -0
  979. package/docs/guides/features.md +118 -0
  980. package/docs/guides/fullscreen.md +150 -0
  981. package/docs/guides/installation-shadcn.md +189 -0
  982. package/docs/guides/installation.md +166 -0
  983. package/docs/guides/internationalization.md +323 -0
  984. package/docs/guides/keyboard-shortcuts.md +97 -0
  985. package/docs/guides/live-streams.md +139 -0
  986. package/docs/guides/llms.txt +67 -0
  987. package/docs/guides/media-sources.md +312 -0
  988. package/docs/guides/migrate-from-media-chrome.md +291 -0
  989. package/docs/guides/migrate-from-mux-player.md +522 -0
  990. package/docs/guides/migrate-from-plyr.md +319 -0
  991. package/docs/guides/migrate-from-video-js-8.md +463 -0
  992. package/docs/guides/mux-data.md +84 -0
  993. package/docs/guides/picture-in-picture.md +149 -0
  994. package/docs/guides/playback-errors.md +124 -0
  995. package/docs/guides/poster.md +222 -0
  996. package/docs/guides/presets.md +94 -0
  997. package/docs/guides/quality.md +268 -0
  998. package/docs/guides/skins.md +72 -0
  999. package/docs/guides/thumbnails.md +179 -0
  1000. package/docs/guides/typescript.md +41 -0
  1001. package/docs/guides/ui-components.md +82 -0
  1002. package/docs/guides/user-preferences.md +176 -0
  1003. package/docs/guides/v10-roadmap.md +92 -0
  1004. package/docs/guides/why-videojs.md +138 -0
  1005. package/docs/llms.txt +272 -202
  1006. package/docs/reference/api/create-i18n.md +53 -0
  1007. package/docs/reference/api/create-player.md +155 -0
  1008. package/docs/reference/api/create-selector.md +45 -0
  1009. package/docs/reference/api/create-translator.md +36 -0
  1010. package/docs/reference/api/error-codes.md +25 -0
  1011. package/docs/reference/api/feature-audio-track.md +44 -0
  1012. package/docs/reference/api/feature-buffer.md +47 -0
  1013. package/docs/reference/api/feature-controls.md +50 -0
  1014. package/docs/reference/api/feature-error.md +49 -0
  1015. package/docs/reference/api/feature-fullscreen.md +67 -0
  1016. package/docs/reference/api/feature-live.md +100 -0
  1017. package/docs/reference/api/feature-metadata.md +91 -0
  1018. package/docs/reference/api/feature-orientation-lock.md +87 -0
  1019. package/docs/reference/api/feature-pip.md +51 -0
  1020. package/docs/reference/api/feature-playback-rate.md +45 -0
  1021. package/docs/reference/api/feature-playback.md +48 -0
  1022. package/docs/reference/api/feature-quality.md +45 -0
  1023. package/docs/reference/api/feature-remote-playback.md +51 -0
  1024. package/docs/reference/api/feature-source.md +45 -0
  1025. package/docs/reference/api/feature-stream-type.md +49 -0
  1026. package/docs/reference/api/feature-text-tracks.md +58 -0
  1027. package/docs/reference/api/feature-time.md +50 -0
  1028. package/docs/reference/api/feature-volume.md +59 -0
  1029. package/docs/reference/api/get-i18n-translations.md +36 -0
  1030. package/docs/reference/api/has-registered-locale.md +33 -0
  1031. package/docs/reference/api/i18n-provider.md +37 -0
  1032. package/docs/reference/api/llms.txt +102 -0
  1033. package/docs/reference/api/merge-props.md +38 -0
  1034. package/docs/reference/api/on-i18n-registry-change.md +29 -0
  1035. package/docs/reference/api/register-i18n.md +39 -0
  1036. package/docs/reference/api/render-element.md +180 -0
  1037. package/docs/reference/api/translation-phrases.md +107 -0
  1038. package/docs/reference/api/use-audio-track-options.md +60 -0
  1039. package/docs/reference/api/use-button.md +101 -0
  1040. package/docs/reference/api/use-captions-options.md +61 -0
  1041. package/docs/reference/api/use-composed-refs.md +41 -0
  1042. package/docs/reference/api/use-container-attach.md +42 -0
  1043. package/docs/reference/api/use-container.md +39 -0
  1044. package/docs/reference/api/use-destroy.md +41 -0
  1045. package/docs/reference/api/use-double-tap-gesture.md +38 -0
  1046. package/docs/reference/api/use-hotkey-shortcut.md +41 -0
  1047. package/docs/reference/api/use-hotkey.md +40 -0
  1048. package/docs/reference/api/use-latest-ref.md +49 -0
  1049. package/docs/reference/api/use-locale.md +114 -0
  1050. package/docs/reference/api/use-optional-container.md +31 -0
  1051. package/docs/reference/api/use-optional-player.md +63 -0
  1052. package/docs/reference/api/use-playback-rate-options.md +62 -0
  1053. package/docs/reference/api/use-player.md +224 -0
  1054. package/docs/reference/api/use-quality-options.md +60 -0
  1055. package/docs/reference/api/use-selector.md +65 -0
  1056. package/docs/reference/api/use-slider.md +70 -0
  1057. package/docs/reference/api/use-snapshot.md +76 -0
  1058. package/docs/reference/api/use-store.md +202 -0
  1059. package/docs/reference/api/use-tap-gesture.md +38 -0
  1060. package/docs/reference/api/use-translator.md +118 -0
  1061. package/docs/reference/api/vjs8-legacy-component.md +21 -0
  1062. package/docs/reference/api/vjs8-legacy-get-player.md +21 -0
  1063. package/docs/reference/api/vjs8-legacy-init.md +21 -0
  1064. package/docs/reference/api/vjs8-legacy-options.md +21 -0
  1065. package/docs/reference/api/vjs8-legacy-plugin.md +21 -0
  1066. package/docs/reference/components/airplay-button.md +154 -0
  1067. package/docs/reference/components/alert-dialog.md +265 -0
  1068. package/docs/reference/components/audio-minimal-skin.md +34 -0
  1069. package/docs/reference/components/audio-skin.md +34 -0
  1070. package/docs/reference/components/audio-track-radio-group.md +264 -0
  1071. package/docs/reference/components/audio.md +75 -0
  1072. package/docs/reference/components/background-video-skin.md +32 -0
  1073. package/docs/reference/components/background-video.md +55 -0
  1074. package/docs/reference/components/buffering-indicator.md +113 -0
  1075. package/docs/reference/components/captions-button.md +141 -0
  1076. package/docs/reference/components/captions-radio-group.md +266 -0
  1077. package/docs/reference/components/cast-button.md +154 -0
  1078. package/docs/reference/components/cloudflare-video.md +116 -0
  1079. package/docs/reference/components/controls.md +272 -0
  1080. package/docs/reference/components/dash-video.md +61 -0
  1081. package/docs/reference/components/dialog.md +359 -0
  1082. package/docs/reference/components/error-dialog.md +276 -0
  1083. package/docs/reference/components/fullscreen-button.md +132 -0
  1084. package/docs/reference/components/gesture.md +121 -0
  1085. package/docs/reference/components/google-cast.md +39 -0
  1086. package/docs/reference/components/hls-audio.md +55 -0
  1087. package/docs/reference/components/hls-background-video.md +41 -0
  1088. package/docs/reference/components/hls-video.md +56 -0
  1089. package/docs/reference/components/hlsjs-video.md +70 -0
  1090. package/docs/reference/components/hotkey.md +119 -0
  1091. package/docs/reference/components/live-audio-minimal-skin.md +36 -0
  1092. package/docs/reference/components/live-audio-skin.md +36 -0
  1093. package/docs/reference/components/live-button.md +167 -0
  1094. package/docs/reference/components/live-video-minimal-skin.md +42 -0
  1095. package/docs/reference/components/live-video-skin.md +42 -0
  1096. package/docs/reference/components/llms.txt +122 -0
  1097. package/docs/reference/components/menu.md +742 -0
  1098. package/docs/reference/components/mute-button.md +200 -0
  1099. package/docs/reference/components/mux-audio.md +93 -0
  1100. package/docs/reference/components/mux-background-video.md +30 -0
  1101. package/docs/reference/components/mux-data.md +43 -0
  1102. package/docs/reference/components/mux-video.md +183 -0
  1103. package/docs/reference/components/native-hls-video.md +78 -0
  1104. package/docs/reference/components/pip-button.md +132 -0
  1105. package/docs/reference/components/play-button.md +130 -0
  1106. package/docs/reference/components/playback-rate-button.md +117 -0
  1107. package/docs/reference/components/playback-rate-radio-group.md +263 -0
  1108. package/docs/reference/components/player-container.md +92 -0
  1109. package/docs/reference/components/player.md +102 -0
  1110. package/docs/reference/components/popover.md +259 -0
  1111. package/docs/reference/components/poster.md +228 -0
  1112. package/docs/reference/components/quality-radio-group.md +278 -0
  1113. package/docs/reference/components/seek-button.md +125 -0
  1114. package/docs/reference/components/seek-indicator.md +232 -0
  1115. package/docs/reference/components/shaka-video.md +108 -0
  1116. package/docs/reference/components/slider.md +466 -0
  1117. package/docs/reference/components/spotify-audio.md +109 -0
  1118. package/docs/reference/components/status-announcer.md +264 -0
  1119. package/docs/reference/components/status-indicator.md +285 -0
  1120. package/docs/reference/components/thumbnail.md +309 -0
  1121. package/docs/reference/components/tiktok-video.md +128 -0
  1122. package/docs/reference/components/time-slider.md +575 -0
  1123. package/docs/reference/components/time.md +397 -0
  1124. package/docs/reference/components/title.md +172 -0
  1125. package/docs/reference/components/tooltip.md +369 -0
  1126. package/docs/reference/components/twitch-video.md +122 -0
  1127. package/docs/reference/components/video-minimal-skin.md +46 -0
  1128. package/docs/reference/components/video-skin.md +46 -0
  1129. package/docs/reference/components/video.md +79 -0
  1130. package/docs/reference/components/vimeo-video.md +126 -0
  1131. package/docs/reference/components/volume-indicator.md +305 -0
  1132. package/docs/reference/components/volume-popover.md +233 -0
  1133. package/docs/reference/components/volume-slider.md +337 -0
  1134. package/docs/reference/components/wistia-video.md +68 -0
  1135. package/docs/reference/components/youtube-video.md +124 -0
  1136. package/package.json +39 -37
  1137. package/dist/default/extensions/google-cast/extension.js.map +0 -1
  1138. package/dist/default/extensions/mux-data/extension.js.map +0 -1
  1139. package/dist/default/i18n/context.js.map +0 -1
  1140. package/dist/default/i18n/create-i18n.js.map +0 -1
  1141. package/dist/default/i18n/get-provider-root-props.js.map +0 -1
  1142. package/dist/default/i18n/locales/all/register.js.map +0 -1
  1143. package/dist/default/i18n/locales/ar/register.js.map +0 -1
  1144. package/dist/default/i18n/locales/az/register.js.map +0 -1
  1145. package/dist/default/i18n/locales/bg/register.js.map +0 -1
  1146. package/dist/default/i18n/locales/bn/register.js.map +0 -1
  1147. package/dist/default/i18n/locales/bs/register.js.map +0 -1
  1148. package/dist/default/i18n/locales/ca/register.js.map +0 -1
  1149. package/dist/default/i18n/locales/cs/register.js.map +0 -1
  1150. package/dist/default/i18n/locales/cy/register.js.map +0 -1
  1151. package/dist/default/i18n/locales/da/register.js.map +0 -1
  1152. package/dist/default/i18n/locales/de/register.js.map +0 -1
  1153. package/dist/default/i18n/locales/el/register.js.map +0 -1
  1154. package/dist/default/i18n/locales/en/register.js.map +0 -1
  1155. package/dist/default/i18n/locales/es/register.js.map +0 -1
  1156. package/dist/default/i18n/locales/et/register.js.map +0 -1
  1157. package/dist/default/i18n/locales/eu/register.js.map +0 -1
  1158. package/dist/default/i18n/locales/fa/register.js.map +0 -1
  1159. package/dist/default/i18n/locales/fi/register.js.map +0 -1
  1160. package/dist/default/i18n/locales/fr/register.js.map +0 -1
  1161. package/dist/default/i18n/locales/gd/register.js.map +0 -1
  1162. package/dist/default/i18n/locales/gl/register.js.map +0 -1
  1163. package/dist/default/i18n/locales/he/register.js.map +0 -1
  1164. package/dist/default/i18n/locales/hi/register.js.map +0 -1
  1165. package/dist/default/i18n/locales/hr/register.js.map +0 -1
  1166. package/dist/default/i18n/locales/hu/register.js.map +0 -1
  1167. package/dist/default/i18n/locales/id/register.js.map +0 -1
  1168. package/dist/default/i18n/locales/it/register.js.map +0 -1
  1169. package/dist/default/i18n/locales/ja/register.js.map +0 -1
  1170. package/dist/default/i18n/locales/ko/register.js.map +0 -1
  1171. package/dist/default/i18n/locales/lt/register.js.map +0 -1
  1172. package/dist/default/i18n/locales/lv/register.js.map +0 -1
  1173. package/dist/default/i18n/locales/mr/register.js.map +0 -1
  1174. package/dist/default/i18n/locales/nb/register.js.map +0 -1
  1175. package/dist/default/i18n/locales/ne/register.js.map +0 -1
  1176. package/dist/default/i18n/locales/nl/register.js.map +0 -1
  1177. package/dist/default/i18n/locales/nn/register.js.map +0 -1
  1178. package/dist/default/i18n/locales/oc/register.js.map +0 -1
  1179. package/dist/default/i18n/locales/pl/register.js.map +0 -1
  1180. package/dist/default/i18n/locales/pt/register.js.map +0 -1
  1181. package/dist/default/i18n/locales/pt-BR/register.js.map +0 -1
  1182. package/dist/default/i18n/locales/pt-PT/register.js.map +0 -1
  1183. package/dist/default/i18n/locales/ro/register.js.map +0 -1
  1184. package/dist/default/i18n/locales/ru/register.js.map +0 -1
  1185. package/dist/default/i18n/locales/sk/register.js.map +0 -1
  1186. package/dist/default/i18n/locales/sl/register.js.map +0 -1
  1187. package/dist/default/i18n/locales/sr/register.js.map +0 -1
  1188. package/dist/default/i18n/locales/sv/register.js.map +0 -1
  1189. package/dist/default/i18n/locales/te/register.js.map +0 -1
  1190. package/dist/default/i18n/locales/th/register.js.map +0 -1
  1191. package/dist/default/i18n/locales/tr/register.js.map +0 -1
  1192. package/dist/default/i18n/locales/uk/register.js.map +0 -1
  1193. package/dist/default/i18n/locales/vi/register.js.map +0 -1
  1194. package/dist/default/i18n/locales/zh/register.js.map +0 -1
  1195. package/dist/default/i18n/locales/zh-CN/register.js.map +0 -1
  1196. package/dist/default/i18n/locales/zh-TW/register.js.map +0 -1
  1197. package/dist/default/i18n/text.js.map +0 -1
  1198. package/dist/default/i18n/use-ambient-lang.js.map +0 -1
  1199. package/dist/default/i18n/use-lang-root-element.js.map +0 -1
  1200. package/dist/default/i18n/use-lazy-translations.js.map +0 -1
  1201. package/dist/default/i18n/use-locale-root-notifications.js.map +0 -1
  1202. package/dist/default/i18n/use-merged-translations.js.map +0 -1
  1203. package/dist/default/i18n/use-registry-epoch.js.map +0 -1
  1204. package/dist/default/icons/dist/react/default/airplay-enter.js.map +0 -1
  1205. package/dist/default/icons/dist/react/default/airplay-exit.js.map +0 -1
  1206. package/dist/default/icons/dist/react/default/captions-off.js.map +0 -1
  1207. package/dist/default/icons/dist/react/default/captions-on.js.map +0 -1
  1208. package/dist/default/icons/dist/react/default/cast-enter.js.map +0 -1
  1209. package/dist/default/icons/dist/react/default/cast-exit.js.map +0 -1
  1210. package/dist/default/icons/dist/react/default/check.js.map +0 -1
  1211. package/dist/default/icons/dist/react/default/chevron.js.map +0 -1
  1212. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +0 -1
  1213. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +0 -1
  1214. package/dist/default/icons/dist/react/default/gear.js.map +0 -1
  1215. package/dist/default/icons/dist/react/default/pause.js.map +0 -1
  1216. package/dist/default/icons/dist/react/default/pip-enter.js.map +0 -1
  1217. package/dist/default/icons/dist/react/default/pip-exit.js.map +0 -1
  1218. package/dist/default/icons/dist/react/default/play.js.map +0 -1
  1219. package/dist/default/icons/dist/react/default/quality.js.map +0 -1
  1220. package/dist/default/icons/dist/react/default/restart.js.map +0 -1
  1221. package/dist/default/icons/dist/react/default/seek.js.map +0 -1
  1222. package/dist/default/icons/dist/react/default/speech.js.map +0 -1
  1223. package/dist/default/icons/dist/react/default/speed.js.map +0 -1
  1224. package/dist/default/icons/dist/react/default/spinner.js.map +0 -1
  1225. package/dist/default/icons/dist/react/default/switches.js.map +0 -1
  1226. package/dist/default/icons/dist/react/default/volume-high.js.map +0 -1
  1227. package/dist/default/icons/dist/react/default/volume-low.js.map +0 -1
  1228. package/dist/default/icons/dist/react/default/volume-off.js.map +0 -1
  1229. package/dist/default/icons/dist/react/minimal/airplay-enter.js.map +0 -1
  1230. package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +0 -1
  1231. package/dist/default/icons/dist/react/minimal/captions-off.js.map +0 -1
  1232. package/dist/default/icons/dist/react/minimal/captions-on.js.map +0 -1
  1233. package/dist/default/icons/dist/react/minimal/cast-enter.js.map +0 -1
  1234. package/dist/default/icons/dist/react/minimal/cast-exit.js.map +0 -1
  1235. package/dist/default/icons/dist/react/minimal/check.js.map +0 -1
  1236. package/dist/default/icons/dist/react/minimal/chevron.js.map +0 -1
  1237. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +0 -1
  1238. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +0 -1
  1239. package/dist/default/icons/dist/react/minimal/gear.js.map +0 -1
  1240. package/dist/default/icons/dist/react/minimal/pause.js.map +0 -1
  1241. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +0 -1
  1242. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +0 -1
  1243. package/dist/default/icons/dist/react/minimal/play.js.map +0 -1
  1244. package/dist/default/icons/dist/react/minimal/quality.js.map +0 -1
  1245. package/dist/default/icons/dist/react/minimal/restart.js.map +0 -1
  1246. package/dist/default/icons/dist/react/minimal/seek.js.map +0 -1
  1247. package/dist/default/icons/dist/react/minimal/speech.js.map +0 -1
  1248. package/dist/default/icons/dist/react/minimal/speed.js.map +0 -1
  1249. package/dist/default/icons/dist/react/minimal/spinner.js.map +0 -1
  1250. package/dist/default/icons/dist/react/minimal/switches.js.map +0 -1
  1251. package/dist/default/icons/dist/react/minimal/volume-high.js.map +0 -1
  1252. package/dist/default/icons/dist/react/minimal/volume-low.js.map +0 -1
  1253. package/dist/default/icons/dist/react/minimal/volume-off.js.map +0 -1
  1254. package/dist/default/internal/skins/default-audio/components/buttons/mute-button.js.map +0 -1
  1255. package/dist/default/internal/skins/default-audio/components/buttons/play-button.js.map +0 -1
  1256. package/dist/default/internal/skins/default-audio/components/buttons/seek-button.js.map +0 -1
  1257. package/dist/default/internal/skins/default-audio/components/controls/volume-popover.js +0 -32
  1258. package/dist/default/internal/skins/default-audio/components/controls/volume-popover.js.map +0 -1
  1259. package/dist/default/internal/skins/default-audio/components/feedback/buffering-indicator.js +0 -17
  1260. package/dist/default/internal/skins/default-audio/components/feedback/buffering-indicator.js.map +0 -1
  1261. package/dist/default/internal/skins/default-audio/components/menus/radio-item.js.map +0 -1
  1262. package/dist/default/internal/skins/default-audio/controls.js +0 -70
  1263. package/dist/default/internal/skins/default-audio/controls.js.map +0 -1
  1264. package/dist/default/internal/skins/default-audio/skin.js.map +0 -1
  1265. package/dist/default/internal/skins/default-audio/skins/shared/audio/play-button.js +0 -22
  1266. package/dist/default/internal/skins/default-audio/skins/shared/audio/play-button.js.map +0 -1
  1267. package/dist/default/internal/skins/default-audio/skins/shared/audio/settings-menu.js +0 -44
  1268. package/dist/default/internal/skins/default-audio/skins/shared/audio/settings-menu.js.map +0 -1
  1269. package/dist/default/internal/skins/default-live-audio/components/buttons/mute-button.js.map +0 -1
  1270. package/dist/default/internal/skins/default-live-audio/components/buttons/play-button.js.map +0 -1
  1271. package/dist/default/internal/skins/default-live-audio/components/controls/volume-popover.js +0 -32
  1272. package/dist/default/internal/skins/default-live-audio/components/controls/volume-popover.js.map +0 -1
  1273. package/dist/default/internal/skins/default-live-audio/components/feedback/buffering-indicator.js +0 -17
  1274. package/dist/default/internal/skins/default-live-audio/components/feedback/buffering-indicator.js.map +0 -1
  1275. package/dist/default/internal/skins/default-live-audio/controls.js +0 -37
  1276. package/dist/default/internal/skins/default-live-audio/controls.js.map +0 -1
  1277. package/dist/default/internal/skins/default-live-audio/skin.js.map +0 -1
  1278. package/dist/default/internal/skins/default-live-audio/skins/shared/audio/play-button.js +0 -22
  1279. package/dist/default/internal/skins/default-live-audio/skins/shared/audio/play-button.js.map +0 -1
  1280. package/dist/default/internal/skins/default-live-video/components/buttons/airplay-button.js.map +0 -1
  1281. package/dist/default/internal/skins/default-live-video/components/buttons/captions-button.js.map +0 -1
  1282. package/dist/default/internal/skins/default-live-video/components/buttons/cast-button.js.map +0 -1
  1283. package/dist/default/internal/skins/default-live-video/components/buttons/fullscreen-button.js.map +0 -1
  1284. package/dist/default/internal/skins/default-live-video/components/buttons/mute-button.js.map +0 -1
  1285. package/dist/default/internal/skins/default-live-video/components/buttons/pip-button.js.map +0 -1
  1286. package/dist/default/internal/skins/default-live-video/components/buttons/play-button.js.map +0 -1
  1287. package/dist/default/internal/skins/default-live-video/components/controls/volume-popover.js +0 -32
  1288. package/dist/default/internal/skins/default-live-video/components/controls/volume-popover.js.map +0 -1
  1289. package/dist/default/internal/skins/default-live-video/components/feedback/buffering-indicator.js +0 -17
  1290. package/dist/default/internal/skins/default-live-video/components/feedback/buffering-indicator.js.map +0 -1
  1291. package/dist/default/internal/skins/default-live-video/components/feedback/status-indicator.js +0 -51
  1292. package/dist/default/internal/skins/default-live-video/components/feedback/status-indicator.js.map +0 -1
  1293. package/dist/default/internal/skins/default-live-video/components/feedback/volume-indicator.js +0 -29
  1294. package/dist/default/internal/skins/default-live-video/components/feedback/volume-indicator.js.map +0 -1
  1295. package/dist/default/internal/skins/default-live-video/components/menus/captions-menu.js.map +0 -1
  1296. package/dist/default/internal/skins/default-live-video/components/menus/radio-item.js.map +0 -1
  1297. package/dist/default/internal/skins/default-live-video/controls.js +0 -59
  1298. package/dist/default/internal/skins/default-live-video/controls.js.map +0 -1
  1299. package/dist/default/internal/skins/default-live-video/skin.js.map +0 -1
  1300. package/dist/default/internal/skins/default-live-video/skins/shared/live-video/status-indicators.js +0 -22
  1301. package/dist/default/internal/skins/default-live-video/skins/shared/live-video/status-indicators.js.map +0 -1
  1302. package/dist/default/internal/skins/default-video/components/buttons/airplay-button.js.map +0 -1
  1303. package/dist/default/internal/skins/default-video/components/buttons/captions-button.js.map +0 -1
  1304. package/dist/default/internal/skins/default-video/components/buttons/cast-button.js.map +0 -1
  1305. package/dist/default/internal/skins/default-video/components/buttons/fullscreen-button.js.map +0 -1
  1306. package/dist/default/internal/skins/default-video/components/buttons/mute-button.js.map +0 -1
  1307. package/dist/default/internal/skins/default-video/components/buttons/pip-button.js.map +0 -1
  1308. package/dist/default/internal/skins/default-video/components/buttons/play-button.js.map +0 -1
  1309. package/dist/default/internal/skins/default-video/components/controls/volume-popover.js +0 -32
  1310. package/dist/default/internal/skins/default-video/components/controls/volume-popover.js.map +0 -1
  1311. package/dist/default/internal/skins/default-video/components/feedback/buffering-indicator.js +0 -17
  1312. package/dist/default/internal/skins/default-video/components/feedback/buffering-indicator.js.map +0 -1
  1313. package/dist/default/internal/skins/default-video/components/feedback/seek-indicator.js +0 -18
  1314. package/dist/default/internal/skins/default-video/components/feedback/seek-indicator.js.map +0 -1
  1315. package/dist/default/internal/skins/default-video/components/feedback/status-indicator.js +0 -51
  1316. package/dist/default/internal/skins/default-video/components/feedback/status-indicator.js.map +0 -1
  1317. package/dist/default/internal/skins/default-video/components/feedback/volume-indicator.js +0 -29
  1318. package/dist/default/internal/skins/default-video/components/feedback/volume-indicator.js.map +0 -1
  1319. package/dist/default/internal/skins/default-video/components/menus/audio-track-menu.js.map +0 -1
  1320. package/dist/default/internal/skins/default-video/components/menus/captions-submenu.js.map +0 -1
  1321. package/dist/default/internal/skins/default-video/components/menus/menu-chevron.js.map +0 -1
  1322. package/dist/default/internal/skins/default-video/components/menus/playback-rate-submenu.js.map +0 -1
  1323. package/dist/default/internal/skins/default-video/components/menus/quality-menu.js.map +0 -1
  1324. package/dist/default/internal/skins/default-video/components/menus/radio-item.js.map +0 -1
  1325. package/dist/default/internal/skins/default-video/components/menus/settings-menu.js.map +0 -1
  1326. package/dist/default/internal/skins/default-video/components/sliders/time-slider.js.map +0 -1
  1327. package/dist/default/internal/skins/default-video/controls.js +0 -79
  1328. package/dist/default/internal/skins/default-video/controls.js.map +0 -1
  1329. package/dist/default/internal/skins/default-video/skin.js.map +0 -1
  1330. package/dist/default/internal/skins/default-video/skins/shared/video/settings-menu.js +0 -22
  1331. package/dist/default/internal/skins/default-video/skins/shared/video/settings-menu.js.map +0 -1
  1332. package/dist/default/internal/skins/default-video/skins/shared/video/status-indicators.js +0 -24
  1333. package/dist/default/internal/skins/default-video/skins/shared/video/status-indicators.js.map +0 -1
  1334. package/dist/default/internal/skins/minimal-audio/components/buttons/mute-button.js.map +0 -1
  1335. package/dist/default/internal/skins/minimal-audio/components/buttons/play-button.js.map +0 -1
  1336. package/dist/default/internal/skins/minimal-audio/components/buttons/seek-button.js.map +0 -1
  1337. package/dist/default/internal/skins/minimal-audio/components/controls/volume-popover.js +0 -32
  1338. package/dist/default/internal/skins/minimal-audio/components/controls/volume-popover.js.map +0 -1
  1339. package/dist/default/internal/skins/minimal-audio/components/feedback/buffering-indicator.js +0 -17
  1340. package/dist/default/internal/skins/minimal-audio/components/feedback/buffering-indicator.js.map +0 -1
  1341. package/dist/default/internal/skins/minimal-audio/components/menus/radio-item.js.map +0 -1
  1342. package/dist/default/internal/skins/minimal-audio/controls.js +0 -74
  1343. package/dist/default/internal/skins/minimal-audio/controls.js.map +0 -1
  1344. package/dist/default/internal/skins/minimal-audio/skin.js.map +0 -1
  1345. package/dist/default/internal/skins/minimal-audio/skins/shared/audio/play-button.js +0 -22
  1346. package/dist/default/internal/skins/minimal-audio/skins/shared/audio/play-button.js.map +0 -1
  1347. package/dist/default/internal/skins/minimal-audio/skins/shared/audio/settings-menu.js +0 -44
  1348. package/dist/default/internal/skins/minimal-audio/skins/shared/audio/settings-menu.js.map +0 -1
  1349. package/dist/default/internal/skins/minimal-live-audio/components/buttons/mute-button.js.map +0 -1
  1350. package/dist/default/internal/skins/minimal-live-audio/components/buttons/play-button.js.map +0 -1
  1351. package/dist/default/internal/skins/minimal-live-audio/components/controls/volume-popover.js +0 -32
  1352. package/dist/default/internal/skins/minimal-live-audio/components/controls/volume-popover.js.map +0 -1
  1353. package/dist/default/internal/skins/minimal-live-audio/components/feedback/buffering-indicator.js +0 -17
  1354. package/dist/default/internal/skins/minimal-live-audio/components/feedback/buffering-indicator.js.map +0 -1
  1355. package/dist/default/internal/skins/minimal-live-audio/controls.js +0 -42
  1356. package/dist/default/internal/skins/minimal-live-audio/controls.js.map +0 -1
  1357. package/dist/default/internal/skins/minimal-live-audio/skin.js.map +0 -1
  1358. package/dist/default/internal/skins/minimal-live-audio/skins/shared/audio/play-button.js +0 -22
  1359. package/dist/default/internal/skins/minimal-live-audio/skins/shared/audio/play-button.js.map +0 -1
  1360. package/dist/default/internal/skins/minimal-live-video/components/buttons/airplay-button.js.map +0 -1
  1361. package/dist/default/internal/skins/minimal-live-video/components/buttons/captions-button.js.map +0 -1
  1362. package/dist/default/internal/skins/minimal-live-video/components/buttons/cast-button.js.map +0 -1
  1363. package/dist/default/internal/skins/minimal-live-video/components/buttons/fullscreen-button.js.map +0 -1
  1364. package/dist/default/internal/skins/minimal-live-video/components/buttons/mute-button.js.map +0 -1
  1365. package/dist/default/internal/skins/minimal-live-video/components/buttons/pip-button.js.map +0 -1
  1366. package/dist/default/internal/skins/minimal-live-video/components/buttons/play-button.js.map +0 -1
  1367. package/dist/default/internal/skins/minimal-live-video/components/controls/volume-popover.js +0 -32
  1368. package/dist/default/internal/skins/minimal-live-video/components/controls/volume-popover.js.map +0 -1
  1369. package/dist/default/internal/skins/minimal-live-video/components/feedback/buffering-indicator.js +0 -17
  1370. package/dist/default/internal/skins/minimal-live-video/components/feedback/buffering-indicator.js.map +0 -1
  1371. package/dist/default/internal/skins/minimal-live-video/components/feedback/status-indicator.js +0 -51
  1372. package/dist/default/internal/skins/minimal-live-video/components/feedback/status-indicator.js.map +0 -1
  1373. package/dist/default/internal/skins/minimal-live-video/components/feedback/volume-indicator.js +0 -29
  1374. package/dist/default/internal/skins/minimal-live-video/components/feedback/volume-indicator.js.map +0 -1
  1375. package/dist/default/internal/skins/minimal-live-video/components/menus/captions-menu.js.map +0 -1
  1376. package/dist/default/internal/skins/minimal-live-video/components/menus/radio-item.js.map +0 -1
  1377. package/dist/default/internal/skins/minimal-live-video/controls.js +0 -70
  1378. package/dist/default/internal/skins/minimal-live-video/controls.js.map +0 -1
  1379. package/dist/default/internal/skins/minimal-live-video/skin.js.map +0 -1
  1380. package/dist/default/internal/skins/minimal-live-video/skins/shared/live-video/status-indicators.js +0 -22
  1381. package/dist/default/internal/skins/minimal-live-video/skins/shared/live-video/status-indicators.js.map +0 -1
  1382. package/dist/default/internal/skins/minimal-video/components/buttons/airplay-button.js.map +0 -1
  1383. package/dist/default/internal/skins/minimal-video/components/buttons/captions-button.js.map +0 -1
  1384. package/dist/default/internal/skins/minimal-video/components/buttons/cast-button.js.map +0 -1
  1385. package/dist/default/internal/skins/minimal-video/components/buttons/fullscreen-button.js.map +0 -1
  1386. package/dist/default/internal/skins/minimal-video/components/buttons/mute-button.js.map +0 -1
  1387. package/dist/default/internal/skins/minimal-video/components/buttons/pip-button.js.map +0 -1
  1388. package/dist/default/internal/skins/minimal-video/components/buttons/play-button.js.map +0 -1
  1389. package/dist/default/internal/skins/minimal-video/components/controls/volume-popover.js +0 -32
  1390. package/dist/default/internal/skins/minimal-video/components/controls/volume-popover.js.map +0 -1
  1391. package/dist/default/internal/skins/minimal-video/components/feedback/buffering-indicator.js +0 -17
  1392. package/dist/default/internal/skins/minimal-video/components/feedback/buffering-indicator.js.map +0 -1
  1393. package/dist/default/internal/skins/minimal-video/components/feedback/seek-indicator.js +0 -18
  1394. package/dist/default/internal/skins/minimal-video/components/feedback/seek-indicator.js.map +0 -1
  1395. package/dist/default/internal/skins/minimal-video/components/feedback/status-indicator.js +0 -51
  1396. package/dist/default/internal/skins/minimal-video/components/feedback/status-indicator.js.map +0 -1
  1397. package/dist/default/internal/skins/minimal-video/components/feedback/volume-indicator.js +0 -29
  1398. package/dist/default/internal/skins/minimal-video/components/feedback/volume-indicator.js.map +0 -1
  1399. package/dist/default/internal/skins/minimal-video/components/menus/audio-track-menu.js.map +0 -1
  1400. package/dist/default/internal/skins/minimal-video/components/menus/captions-submenu.js.map +0 -1
  1401. package/dist/default/internal/skins/minimal-video/components/menus/menu-chevron.js.map +0 -1
  1402. package/dist/default/internal/skins/minimal-video/components/menus/playback-rate-submenu.js.map +0 -1
  1403. package/dist/default/internal/skins/minimal-video/components/menus/quality-menu.js.map +0 -1
  1404. package/dist/default/internal/skins/minimal-video/components/menus/radio-item.js.map +0 -1
  1405. package/dist/default/internal/skins/minimal-video/components/menus/settings-menu.js.map +0 -1
  1406. package/dist/default/internal/skins/minimal-video/components/sliders/time-slider.js.map +0 -1
  1407. package/dist/default/internal/skins/minimal-video/controls.js +0 -93
  1408. package/dist/default/internal/skins/minimal-video/controls.js.map +0 -1
  1409. package/dist/default/internal/skins/minimal-video/skin.js.map +0 -1
  1410. package/dist/default/internal/skins/minimal-video/skins/shared/video/settings-menu.js +0 -22
  1411. package/dist/default/internal/skins/minimal-video/skins/shared/video/settings-menu.js.map +0 -1
  1412. package/dist/default/internal/skins/minimal-video/skins/shared/video/status-indicators.js +0 -24
  1413. package/dist/default/internal/skins/minimal-video/skins/shared/video/status-indicators.js.map +0 -1
  1414. package/dist/default/internal/skins/shared/components/buttons/button-tooltip.js.map +0 -1
  1415. package/dist/default/internal/skins/shared/components/buttons/button.js.map +0 -1
  1416. package/dist/default/internal/skins/shared/components/buttons/live-button.js.map +0 -1
  1417. package/dist/default/internal/skins/shared/components/buttons/playback-rate-button.js.map +0 -1
  1418. package/dist/default/internal/skins/shared/components/feedback/error-dialog.js +0 -29
  1419. package/dist/default/internal/skins/shared/components/feedback/error-dialog.js.map +0 -1
  1420. package/dist/default/internal/skins/shared/components/feedback/status-announcer.js +0 -15
  1421. package/dist/default/internal/skins/shared/components/feedback/status-announcer.js.map +0 -1
  1422. package/dist/default/internal/skins/shared/components/layout/container.js.map +0 -1
  1423. package/dist/default/internal/skins/shared/components/layout/poster.js +0 -20
  1424. package/dist/default/internal/skins/shared/components/layout/poster.js.map +0 -1
  1425. package/dist/default/internal/skins/shared/components/sliders/slider.js.map +0 -1
  1426. package/dist/default/internal/skins/shared/components/sliders/volume-slider.js.map +0 -1
  1427. package/dist/default/internal/skins/shared/skins/shared/audio/error-dialog.js +0 -29
  1428. package/dist/default/internal/skins/shared/skins/shared/audio/error-dialog.js.map +0 -1
  1429. package/dist/default/internal/skins/shared/skins/shared/audio/time-slider.js +0 -42
  1430. package/dist/default/internal/skins/shared/skins/shared/audio/time-slider.js.map +0 -1
  1431. package/dist/default/internal/skins/shared/skins/shared/live-playback-hotkeys.js +0 -37
  1432. package/dist/default/internal/skins/shared/skins/shared/live-playback-hotkeys.js.map +0 -1
  1433. package/dist/default/internal/skins/shared/skins/shared/live-video/gestures.js +0 -31
  1434. package/dist/default/internal/skins/shared/skins/shared/live-video/gestures.js.map +0 -1
  1435. package/dist/default/internal/skins/shared/skins/shared/live-video/hotkeys.js +0 -29
  1436. package/dist/default/internal/skins/shared/skins/shared/live-video/hotkeys.js.map +0 -1
  1437. package/dist/default/internal/skins/shared/skins/shared/playback-hotkeys.js +0 -84
  1438. package/dist/default/internal/skins/shared/skins/shared/playback-hotkeys.js.map +0 -1
  1439. package/dist/default/internal/skins/shared/skins/shared/video/gestures.js +0 -43
  1440. package/dist/default/internal/skins/shared/skins/shared/video/gestures.js.map +0 -1
  1441. package/dist/default/internal/skins/shared/skins/shared/video/hotkeys.js +0 -29
  1442. package/dist/default/internal/skins/shared/skins/shared/video/hotkeys.js.map +0 -1
  1443. package/dist/default/media/audio.js.map +0 -1
  1444. package/dist/default/media/background-video/adapter.js.map +0 -1
  1445. package/dist/default/media/cloudflare-video/adapter.js.map +0 -1
  1446. package/dist/default/media/dash-video/adapter.js.map +0 -1
  1447. package/dist/default/media/hls-audio/adapter.js.map +0 -1
  1448. package/dist/default/media/hls-background-video/adapter.js.map +0 -1
  1449. package/dist/default/media/hls-video/adapter.js.map +0 -1
  1450. package/dist/default/media/hlsjs-video/adapter.js.map +0 -1
  1451. package/dist/default/media/mux-audio/hls-js.js.map +0 -1
  1452. package/dist/default/media/mux-audio/spf.js.map +0 -1
  1453. package/dist/default/media/mux-video/hls-js.js.map +0 -1
  1454. package/dist/default/media/mux-video/spf.js.map +0 -1
  1455. package/dist/default/media/mux-video/storyboard.js.map +0 -1
  1456. package/dist/default/media/native-hls-video/adapter.js.map +0 -1
  1457. package/dist/default/media/shaka-video/adapter.js.map +0 -1
  1458. package/dist/default/media/spotify-audio/adapter.js.map +0 -1
  1459. package/dist/default/media/tiktok-video/adapter.js.map +0 -1
  1460. package/dist/default/media/twitch-video/adapter.js.map +0 -1
  1461. package/dist/default/media/video.js.map +0 -1
  1462. package/dist/default/media/vimeo-video/adapter.js.map +0 -1
  1463. package/dist/default/media/wistia-video/adapter.js.map +0 -1
  1464. package/dist/default/media/youtube-video/adapter.js.map +0 -1
  1465. package/dist/default/player/container.js.map +0 -1
  1466. package/dist/default/player/context.js.map +0 -1
  1467. package/dist/default/player/create-player.js.map +0 -1
  1468. package/dist/default/player/popup-group-context.js.map +0 -1
  1469. package/dist/default/presets/audio/index.js.map +0 -1
  1470. package/dist/default/presets/audio/minimal-skin.js.map +0 -1
  1471. package/dist/default/presets/audio/player.js.map +0 -1
  1472. package/dist/default/presets/audio/skin.js.map +0 -1
  1473. package/dist/default/presets/background/index.js.map +0 -1
  1474. package/dist/default/presets/background/player.js.map +0 -1
  1475. package/dist/default/presets/background/skin.js.map +0 -1
  1476. package/dist/default/presets/live-audio/index.js.map +0 -1
  1477. package/dist/default/presets/live-audio/minimal-skin.js.map +0 -1
  1478. package/dist/default/presets/live-audio/player.js.map +0 -1
  1479. package/dist/default/presets/live-audio/skin.js.map +0 -1
  1480. package/dist/default/presets/live-video/index.js.map +0 -1
  1481. package/dist/default/presets/live-video/minimal-skin.js.map +0 -1
  1482. package/dist/default/presets/live-video/player.js.map +0 -1
  1483. package/dist/default/presets/live-video/skin.js.map +0 -1
  1484. package/dist/default/presets/video/index.js.map +0 -1
  1485. package/dist/default/presets/video/minimal-skin.js.map +0 -1
  1486. package/dist/default/presets/video/player.js.map +0 -1
  1487. package/dist/default/presets/video/skin.js.map +0 -1
  1488. package/dist/default/ui/airplay-button/component.js.map +0 -1
  1489. package/dist/default/ui/alert-dialog/index.parts.js.map +0 -1
  1490. package/dist/default/ui/alert-dialog/root.js.map +0 -1
  1491. package/dist/default/ui/audio-track/use-audio-track-options.js.map +0 -1
  1492. package/dist/default/ui/audio-track-radio-group/component.js.map +0 -1
  1493. package/dist/default/ui/audio-track-radio-group/index.parts.js.map +0 -1
  1494. package/dist/default/ui/buffering-indicator/component.js.map +0 -1
  1495. package/dist/default/ui/captions-button/component.js.map +0 -1
  1496. package/dist/default/ui/captions-radio-group/component.js.map +0 -1
  1497. package/dist/default/ui/captions-radio-group/index.parts.js.map +0 -1
  1498. package/dist/default/ui/captions-radio-group/use-captions-options.js.map +0 -1
  1499. package/dist/default/ui/cast-button/component.js.map +0 -1
  1500. package/dist/default/ui/controls/backdrop.js.map +0 -1
  1501. package/dist/default/ui/controls/content.js.map +0 -1
  1502. package/dist/default/ui/controls/context.js.map +0 -1
  1503. package/dist/default/ui/controls/group.js.map +0 -1
  1504. package/dist/default/ui/controls/index.parts.js.map +0 -1
  1505. package/dist/default/ui/controls/root.js.map +0 -1
  1506. package/dist/default/ui/create-context-part.js.map +0 -1
  1507. package/dist/default/ui/create-media-button.js.map +0 -1
  1508. package/dist/default/ui/dialog/backdrop.js.map +0 -1
  1509. package/dist/default/ui/dialog/close.js.map +0 -1
  1510. package/dist/default/ui/dialog/context.js.map +0 -1
  1511. package/dist/default/ui/dialog/description.js.map +0 -1
  1512. package/dist/default/ui/dialog/index.parts.js.map +0 -1
  1513. package/dist/default/ui/dialog/popup.js.map +0 -1
  1514. package/dist/default/ui/dialog/root.js.map +0 -1
  1515. package/dist/default/ui/dialog/title.js.map +0 -1
  1516. package/dist/default/ui/dialog/trigger.js.map +0 -1
  1517. package/dist/default/ui/dialog/use-dialog-root.js.map +0 -1
  1518. package/dist/default/ui/error-dialog/close.js.map +0 -1
  1519. package/dist/default/ui/error-dialog/context.js.map +0 -1
  1520. package/dist/default/ui/error-dialog/description.js.map +0 -1
  1521. package/dist/default/ui/error-dialog/index.parts.js.map +0 -1
  1522. package/dist/default/ui/error-dialog/root.js.map +0 -1
  1523. package/dist/default/ui/error-dialog/title.js.map +0 -1
  1524. package/dist/default/ui/fullscreen-button/component.js.map +0 -1
  1525. package/dist/default/ui/gesture/component.js.map +0 -1
  1526. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +0 -1
  1527. package/dist/default/ui/gesture/use-tap-gesture.js.map +0 -1
  1528. package/dist/default/ui/hooks/create-radio-options-hook.js.map +0 -1
  1529. package/dist/default/ui/hooks/use-button.js.map +0 -1
  1530. package/dist/default/ui/hooks/use-positioned-state.js.map +0 -1
  1531. package/dist/default/ui/hooks/use-slider.js.map +0 -1
  1532. package/dist/default/ui/hotkey/component.js.map +0 -1
  1533. package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +0 -1
  1534. package/dist/default/ui/hotkey/use-hotkey.js.map +0 -1
  1535. package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +0 -1
  1536. package/dist/default/ui/input-indicator/use-input-action-subscription.js.map +0 -1
  1537. package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +0 -1
  1538. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +0 -1
  1539. package/dist/default/ui/live-button/component.js.map +0 -1
  1540. package/dist/default/ui/menu/checkbox-item.js.map +0 -1
  1541. package/dist/default/ui/menu/content.js.map +0 -1
  1542. package/dist/default/ui/menu/context.js.map +0 -1
  1543. package/dist/default/ui/menu/group-label.js.map +0 -1
  1544. package/dist/default/ui/menu/group.js.map +0 -1
  1545. package/dist/default/ui/menu/index.parts.js.map +0 -1
  1546. package/dist/default/ui/menu/item-indicator.js.map +0 -1
  1547. package/dist/default/ui/menu/item.js.map +0 -1
  1548. package/dist/default/ui/menu/keyboard.js.map +0 -1
  1549. package/dist/default/ui/menu/popup.js.map +0 -1
  1550. package/dist/default/ui/menu/radio-group.js.map +0 -1
  1551. package/dist/default/ui/menu/radio-item.js.map +0 -1
  1552. package/dist/default/ui/menu/root.js.map +0 -1
  1553. package/dist/default/ui/menu/separator.js.map +0 -1
  1554. package/dist/default/ui/menu/trigger.js.map +0 -1
  1555. package/dist/default/ui/menu/use-menu-group.js.map +0 -1
  1556. package/dist/default/ui/mute-button/component.js.map +0 -1
  1557. package/dist/default/ui/pip-button/component.js.map +0 -1
  1558. package/dist/default/ui/play-button/component.js.map +0 -1
  1559. package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +0 -1
  1560. package/dist/default/ui/playback-rate-button/component.js.map +0 -1
  1561. package/dist/default/ui/playback-rate-radio-group/component.js.map +0 -1
  1562. package/dist/default/ui/playback-rate-radio-group/index.parts.js.map +0 -1
  1563. package/dist/default/ui/popover/arrow.js.map +0 -1
  1564. package/dist/default/ui/popover/context.js.map +0 -1
  1565. package/dist/default/ui/popover/index.parts.js.map +0 -1
  1566. package/dist/default/ui/popover/popup.js.map +0 -1
  1567. package/dist/default/ui/popover/root.js.map +0 -1
  1568. package/dist/default/ui/popover/trigger.js.map +0 -1
  1569. package/dist/default/ui/popover/use-popup-position.js.map +0 -1
  1570. package/dist/default/ui/poster/context.js.map +0 -1
  1571. package/dist/default/ui/poster/image.js.map +0 -1
  1572. package/dist/default/ui/poster/index.parts.js.map +0 -1
  1573. package/dist/default/ui/poster/root.js.map +0 -1
  1574. package/dist/default/ui/quality/use-quality-options.js.map +0 -1
  1575. package/dist/default/ui/quality-radio-group/component.js.map +0 -1
  1576. package/dist/default/ui/quality-radio-group/index.parts.js.map +0 -1
  1577. package/dist/default/ui/seek-button/component.js.map +0 -1
  1578. package/dist/default/ui/seek-indicator/context.js.map +0 -1
  1579. package/dist/default/ui/seek-indicator/index.parts.js.map +0 -1
  1580. package/dist/default/ui/seek-indicator/root.js.map +0 -1
  1581. package/dist/default/ui/seek-indicator/value.js.map +0 -1
  1582. package/dist/default/ui/slider/buffer.js.map +0 -1
  1583. package/dist/default/ui/slider/context.js.map +0 -1
  1584. package/dist/default/ui/slider/fill.js.map +0 -1
  1585. package/dist/default/ui/slider/index.parts.js.map +0 -1
  1586. package/dist/default/ui/slider/preview.js.map +0 -1
  1587. package/dist/default/ui/slider/root.js.map +0 -1
  1588. package/dist/default/ui/slider/thumb.js.map +0 -1
  1589. package/dist/default/ui/slider/thumbnail/index.parts.js.map +0 -1
  1590. package/dist/default/ui/slider/thumbnail/root.js.map +0 -1
  1591. package/dist/default/ui/slider/track.js.map +0 -1
  1592. package/dist/default/ui/slider/value.js.map +0 -1
  1593. package/dist/default/ui/status-announcer/component.js.map +0 -1
  1594. package/dist/default/ui/status-indicator/context.js.map +0 -1
  1595. package/dist/default/ui/status-indicator/index.parts.js.map +0 -1
  1596. package/dist/default/ui/status-indicator/root.js.map +0 -1
  1597. package/dist/default/ui/status-indicator/value.js.map +0 -1
  1598. package/dist/default/ui/thumbnail/context.js.map +0 -1
  1599. package/dist/default/ui/thumbnail/image.js.map +0 -1
  1600. package/dist/default/ui/thumbnail/index.parts.js.map +0 -1
  1601. package/dist/default/ui/thumbnail/root.js.map +0 -1
  1602. package/dist/default/ui/time/group.js.map +0 -1
  1603. package/dist/default/ui/time/index.parts.js.map +0 -1
  1604. package/dist/default/ui/time/separator.js.map +0 -1
  1605. package/dist/default/ui/time/value.js.map +0 -1
  1606. package/dist/default/ui/time-slider/chapter-title.js.map +0 -1
  1607. package/dist/default/ui/time-slider/chapters.js.map +0 -1
  1608. package/dist/default/ui/time-slider/index.parts.js.map +0 -1
  1609. package/dist/default/ui/time-slider/root.js.map +0 -1
  1610. package/dist/default/ui/time-slider/segments.js.map +0 -1
  1611. package/dist/default/ui/title/component.js.map +0 -1
  1612. package/dist/default/ui/tooltip/arrow.js.map +0 -1
  1613. package/dist/default/ui/tooltip/context.js.map +0 -1
  1614. package/dist/default/ui/tooltip/group-context.js.map +0 -1
  1615. package/dist/default/ui/tooltip/index.parts.js.map +0 -1
  1616. package/dist/default/ui/tooltip/label.js.map +0 -1
  1617. package/dist/default/ui/tooltip/popup.js.map +0 -1
  1618. package/dist/default/ui/tooltip/provider.js.map +0 -1
  1619. package/dist/default/ui/tooltip/root.js.map +0 -1
  1620. package/dist/default/ui/tooltip/shortcut.js.map +0 -1
  1621. package/dist/default/ui/tooltip/trigger.js.map +0 -1
  1622. package/dist/default/ui/volume-indicator/context.js.map +0 -1
  1623. package/dist/default/ui/volume-indicator/fill.js.map +0 -1
  1624. package/dist/default/ui/volume-indicator/index.parts.js.map +0 -1
  1625. package/dist/default/ui/volume-indicator/root.js.map +0 -1
  1626. package/dist/default/ui/volume-indicator/value.js.map +0 -1
  1627. package/dist/default/ui/volume-popover/context.js.map +0 -1
  1628. package/dist/default/ui/volume-popover/index.parts.js.map +0 -1
  1629. package/dist/default/ui/volume-popover/popup.js.map +0 -1
  1630. package/dist/default/ui/volume-popover/root.js.map +0 -1
  1631. package/dist/default/ui/volume-popover/trigger.js.map +0 -1
  1632. package/dist/default/ui/volume-slider/index.parts.js.map +0 -1
  1633. package/dist/default/ui/volume-slider/root.js.map +0 -1
  1634. package/dist/default/utils/merge-props.js.map +0 -1
  1635. package/dist/default/utils/use-attach-iframe.js +0 -13
  1636. package/dist/default/utils/use-attach-iframe.js.map +0 -1
  1637. package/dist/default/utils/use-attach-media.js.map +0 -1
  1638. package/dist/default/utils/use-composed-refs.js.map +0 -1
  1639. package/dist/default/utils/use-destroy.js.map +0 -1
  1640. package/dist/default/utils/use-force-render.js.map +0 -1
  1641. package/dist/default/utils/use-latest-ref.js.map +0 -1
  1642. package/dist/default/utils/use-media-extension.js.map +0 -1
  1643. package/dist/default/utils/use-media-instance.js.map +0 -1
  1644. package/dist/default/utils/use-render.js.map +0 -1
  1645. package/dist/default/utils/use-safe-id.js.map +0 -1
  1646. package/dist/default/utils/use-sync-props.js.map +0 -1
  1647. package/dist/dev/extensions/google-cast/extension.d.ts.map +0 -1
  1648. package/dist/dev/extensions/mux-data/extension.d.ts.map +0 -1
  1649. package/dist/dev/i18n/context.d.ts.map +0 -1
  1650. package/dist/dev/i18n/create-i18n.d.ts.map +0 -1
  1651. package/dist/dev/i18n/text.d.ts.map +0 -1
  1652. package/dist/dev/icons/dist/react/default/index.d.ts.map +0 -1
  1653. package/dist/dev/icons/dist/react/minimal/index.d.ts.map +0 -1
  1654. package/dist/dev/icons/index.d.ts.map +0 -1
  1655. package/dist/dev/icons/minimal/index.d.ts.map +0 -1
  1656. package/dist/dev/index.d.ts.map +0 -1
  1657. package/dist/dev/internal/skins/default-audio/components/controls/volume-popover.js +0 -32
  1658. package/dist/dev/internal/skins/default-audio/components/controls/volume-popover.js.map +0 -1
  1659. package/dist/dev/internal/skins/default-audio/components/feedback/buffering-indicator.js +0 -17
  1660. package/dist/dev/internal/skins/default-audio/components/feedback/buffering-indicator.js.map +0 -1
  1661. package/dist/dev/internal/skins/default-audio/controls.js +0 -70
  1662. package/dist/dev/internal/skins/default-audio/controls.js.map +0 -1
  1663. package/dist/dev/internal/skins/default-audio/skins/shared/audio/play-button.js +0 -22
  1664. package/dist/dev/internal/skins/default-audio/skins/shared/audio/play-button.js.map +0 -1
  1665. package/dist/dev/internal/skins/default-audio/skins/shared/audio/settings-menu.js +0 -44
  1666. package/dist/dev/internal/skins/default-audio/skins/shared/audio/settings-menu.js.map +0 -1
  1667. package/dist/dev/internal/skins/default-live-audio/components/controls/volume-popover.js +0 -32
  1668. package/dist/dev/internal/skins/default-live-audio/components/controls/volume-popover.js.map +0 -1
  1669. package/dist/dev/internal/skins/default-live-audio/components/feedback/buffering-indicator.js +0 -17
  1670. package/dist/dev/internal/skins/default-live-audio/components/feedback/buffering-indicator.js.map +0 -1
  1671. package/dist/dev/internal/skins/default-live-audio/controls.js +0 -37
  1672. package/dist/dev/internal/skins/default-live-audio/controls.js.map +0 -1
  1673. package/dist/dev/internal/skins/default-live-audio/skins/shared/audio/play-button.js +0 -22
  1674. package/dist/dev/internal/skins/default-live-audio/skins/shared/audio/play-button.js.map +0 -1
  1675. package/dist/dev/internal/skins/default-live-video/components/controls/volume-popover.js +0 -32
  1676. package/dist/dev/internal/skins/default-live-video/components/controls/volume-popover.js.map +0 -1
  1677. package/dist/dev/internal/skins/default-live-video/components/feedback/buffering-indicator.js +0 -17
  1678. package/dist/dev/internal/skins/default-live-video/components/feedback/buffering-indicator.js.map +0 -1
  1679. package/dist/dev/internal/skins/default-live-video/components/feedback/status-indicator.js +0 -51
  1680. package/dist/dev/internal/skins/default-live-video/components/feedback/status-indicator.js.map +0 -1
  1681. package/dist/dev/internal/skins/default-live-video/components/feedback/volume-indicator.js +0 -29
  1682. package/dist/dev/internal/skins/default-live-video/components/feedback/volume-indicator.js.map +0 -1
  1683. package/dist/dev/internal/skins/default-live-video/controls.js +0 -59
  1684. package/dist/dev/internal/skins/default-live-video/controls.js.map +0 -1
  1685. package/dist/dev/internal/skins/default-live-video/skins/shared/live-video/status-indicators.js +0 -22
  1686. package/dist/dev/internal/skins/default-live-video/skins/shared/live-video/status-indicators.js.map +0 -1
  1687. package/dist/dev/internal/skins/default-video/components/controls/volume-popover.js +0 -32
  1688. package/dist/dev/internal/skins/default-video/components/controls/volume-popover.js.map +0 -1
  1689. package/dist/dev/internal/skins/default-video/components/feedback/buffering-indicator.js +0 -17
  1690. package/dist/dev/internal/skins/default-video/components/feedback/buffering-indicator.js.map +0 -1
  1691. package/dist/dev/internal/skins/default-video/components/feedback/seek-indicator.js +0 -18
  1692. package/dist/dev/internal/skins/default-video/components/feedback/seek-indicator.js.map +0 -1
  1693. package/dist/dev/internal/skins/default-video/components/feedback/status-indicator.js +0 -51
  1694. package/dist/dev/internal/skins/default-video/components/feedback/status-indicator.js.map +0 -1
  1695. package/dist/dev/internal/skins/default-video/components/feedback/volume-indicator.js +0 -29
  1696. package/dist/dev/internal/skins/default-video/components/feedback/volume-indicator.js.map +0 -1
  1697. package/dist/dev/internal/skins/default-video/controls.js +0 -79
  1698. package/dist/dev/internal/skins/default-video/controls.js.map +0 -1
  1699. package/dist/dev/internal/skins/default-video/skins/shared/video/settings-menu.js +0 -22
  1700. package/dist/dev/internal/skins/default-video/skins/shared/video/settings-menu.js.map +0 -1
  1701. package/dist/dev/internal/skins/default-video/skins/shared/video/status-indicators.js +0 -24
  1702. package/dist/dev/internal/skins/default-video/skins/shared/video/status-indicators.js.map +0 -1
  1703. package/dist/dev/internal/skins/minimal-audio/components/controls/volume-popover.js +0 -32
  1704. package/dist/dev/internal/skins/minimal-audio/components/controls/volume-popover.js.map +0 -1
  1705. package/dist/dev/internal/skins/minimal-audio/components/feedback/buffering-indicator.js +0 -17
  1706. package/dist/dev/internal/skins/minimal-audio/components/feedback/buffering-indicator.js.map +0 -1
  1707. package/dist/dev/internal/skins/minimal-audio/controls.js +0 -74
  1708. package/dist/dev/internal/skins/minimal-audio/controls.js.map +0 -1
  1709. package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/play-button.js +0 -22
  1710. package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/play-button.js.map +0 -1
  1711. package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/settings-menu.js +0 -44
  1712. package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/settings-menu.js.map +0 -1
  1713. package/dist/dev/internal/skins/minimal-live-audio/components/controls/volume-popover.js +0 -32
  1714. package/dist/dev/internal/skins/minimal-live-audio/components/controls/volume-popover.js.map +0 -1
  1715. package/dist/dev/internal/skins/minimal-live-audio/components/feedback/buffering-indicator.js +0 -17
  1716. package/dist/dev/internal/skins/minimal-live-audio/components/feedback/buffering-indicator.js.map +0 -1
  1717. package/dist/dev/internal/skins/minimal-live-audio/controls.js +0 -42
  1718. package/dist/dev/internal/skins/minimal-live-audio/controls.js.map +0 -1
  1719. package/dist/dev/internal/skins/minimal-live-audio/skins/shared/audio/play-button.js +0 -22
  1720. package/dist/dev/internal/skins/minimal-live-audio/skins/shared/audio/play-button.js.map +0 -1
  1721. package/dist/dev/internal/skins/minimal-live-video/components/controls/volume-popover.js +0 -32
  1722. package/dist/dev/internal/skins/minimal-live-video/components/controls/volume-popover.js.map +0 -1
  1723. package/dist/dev/internal/skins/minimal-live-video/components/feedback/buffering-indicator.js +0 -17
  1724. package/dist/dev/internal/skins/minimal-live-video/components/feedback/buffering-indicator.js.map +0 -1
  1725. package/dist/dev/internal/skins/minimal-live-video/components/feedback/status-indicator.js +0 -51
  1726. package/dist/dev/internal/skins/minimal-live-video/components/feedback/status-indicator.js.map +0 -1
  1727. package/dist/dev/internal/skins/minimal-live-video/components/feedback/volume-indicator.js +0 -29
  1728. package/dist/dev/internal/skins/minimal-live-video/components/feedback/volume-indicator.js.map +0 -1
  1729. package/dist/dev/internal/skins/minimal-live-video/controls.js +0 -70
  1730. package/dist/dev/internal/skins/minimal-live-video/controls.js.map +0 -1
  1731. package/dist/dev/internal/skins/minimal-live-video/skins/shared/live-video/status-indicators.js +0 -22
  1732. package/dist/dev/internal/skins/minimal-live-video/skins/shared/live-video/status-indicators.js.map +0 -1
  1733. package/dist/dev/internal/skins/minimal-video/components/controls/volume-popover.js +0 -32
  1734. package/dist/dev/internal/skins/minimal-video/components/controls/volume-popover.js.map +0 -1
  1735. package/dist/dev/internal/skins/minimal-video/components/feedback/buffering-indicator.js +0 -17
  1736. package/dist/dev/internal/skins/minimal-video/components/feedback/buffering-indicator.js.map +0 -1
  1737. package/dist/dev/internal/skins/minimal-video/components/feedback/seek-indicator.js +0 -18
  1738. package/dist/dev/internal/skins/minimal-video/components/feedback/seek-indicator.js.map +0 -1
  1739. package/dist/dev/internal/skins/minimal-video/components/feedback/status-indicator.js +0 -51
  1740. package/dist/dev/internal/skins/minimal-video/components/feedback/status-indicator.js.map +0 -1
  1741. package/dist/dev/internal/skins/minimal-video/components/feedback/volume-indicator.js +0 -29
  1742. package/dist/dev/internal/skins/minimal-video/components/feedback/volume-indicator.js.map +0 -1
  1743. package/dist/dev/internal/skins/minimal-video/controls.js +0 -93
  1744. package/dist/dev/internal/skins/minimal-video/controls.js.map +0 -1
  1745. package/dist/dev/internal/skins/minimal-video/skins/shared/video/settings-menu.js +0 -22
  1746. package/dist/dev/internal/skins/minimal-video/skins/shared/video/settings-menu.js.map +0 -1
  1747. package/dist/dev/internal/skins/minimal-video/skins/shared/video/status-indicators.js +0 -24
  1748. package/dist/dev/internal/skins/minimal-video/skins/shared/video/status-indicators.js.map +0 -1
  1749. package/dist/dev/internal/skins/shared/components/feedback/error-dialog.js +0 -29
  1750. package/dist/dev/internal/skins/shared/components/feedback/error-dialog.js.map +0 -1
  1751. package/dist/dev/internal/skins/shared/components/feedback/status-announcer.js +0 -15
  1752. package/dist/dev/internal/skins/shared/components/feedback/status-announcer.js.map +0 -1
  1753. package/dist/dev/internal/skins/shared/components/layout/poster.js +0 -20
  1754. package/dist/dev/internal/skins/shared/components/layout/poster.js.map +0 -1
  1755. package/dist/dev/internal/skins/shared/skins/shared/audio/error-dialog.js +0 -29
  1756. package/dist/dev/internal/skins/shared/skins/shared/audio/error-dialog.js.map +0 -1
  1757. package/dist/dev/internal/skins/shared/skins/shared/audio/time-slider.js +0 -42
  1758. package/dist/dev/internal/skins/shared/skins/shared/audio/time-slider.js.map +0 -1
  1759. package/dist/dev/internal/skins/shared/skins/shared/live-playback-hotkeys.js +0 -37
  1760. package/dist/dev/internal/skins/shared/skins/shared/live-playback-hotkeys.js.map +0 -1
  1761. package/dist/dev/internal/skins/shared/skins/shared/live-video/gestures.js +0 -31
  1762. package/dist/dev/internal/skins/shared/skins/shared/live-video/gestures.js.map +0 -1
  1763. package/dist/dev/internal/skins/shared/skins/shared/live-video/hotkeys.js +0 -29
  1764. package/dist/dev/internal/skins/shared/skins/shared/live-video/hotkeys.js.map +0 -1
  1765. package/dist/dev/internal/skins/shared/skins/shared/playback-hotkeys.js +0 -84
  1766. package/dist/dev/internal/skins/shared/skins/shared/playback-hotkeys.js.map +0 -1
  1767. package/dist/dev/internal/skins/shared/skins/shared/video/gestures.js +0 -43
  1768. package/dist/dev/internal/skins/shared/skins/shared/video/gestures.js.map +0 -1
  1769. package/dist/dev/internal/skins/shared/skins/shared/video/hotkeys.js +0 -29
  1770. package/dist/dev/internal/skins/shared/skins/shared/video/hotkeys.js.map +0 -1
  1771. package/dist/dev/media/audio.d.ts.map +0 -1
  1772. package/dist/dev/media/background-video/adapter.d.ts.map +0 -1
  1773. package/dist/dev/media/cloudflare-video/adapter.d.ts.map +0 -1
  1774. package/dist/dev/media/dash-video/adapter.d.ts.map +0 -1
  1775. package/dist/dev/media/hls-audio/adapter.d.ts.map +0 -1
  1776. package/dist/dev/media/hls-background-video/adapter.d.ts.map +0 -1
  1777. package/dist/dev/media/hls-video/adapter.d.ts.map +0 -1
  1778. package/dist/dev/media/hlsjs-video/adapter.d.ts.map +0 -1
  1779. package/dist/dev/media/mux-audio/hls-js.d.ts.map +0 -1
  1780. package/dist/dev/media/mux-audio/spf.d.ts.map +0 -1
  1781. package/dist/dev/media/mux-video/hls-js.d.ts.map +0 -1
  1782. package/dist/dev/media/mux-video/spf.d.ts.map +0 -1
  1783. package/dist/dev/media/native-hls-video/adapter.d.ts.map +0 -1
  1784. package/dist/dev/media/shaka-video/adapter.d.ts.map +0 -1
  1785. package/dist/dev/media/spotify-audio/adapter.d.ts.map +0 -1
  1786. package/dist/dev/media/tiktok-video/adapter.d.ts.map +0 -1
  1787. package/dist/dev/media/twitch-video/adapter.d.ts.map +0 -1
  1788. package/dist/dev/media/video.d.ts.map +0 -1
  1789. package/dist/dev/media/vimeo-video/adapter.d.ts.map +0 -1
  1790. package/dist/dev/media/wistia-video/adapter.d.ts.map +0 -1
  1791. package/dist/dev/media/youtube-video/adapter.d.ts.map +0 -1
  1792. package/dist/dev/player/container.d.ts.map +0 -1
  1793. package/dist/dev/player/context.d.ts.map +0 -1
  1794. package/dist/dev/player/create-player.d.ts.map +0 -1
  1795. package/dist/dev/presets/audio/minimal-skin.d.ts.map +0 -1
  1796. package/dist/dev/presets/audio/player.d.ts.map +0 -1
  1797. package/dist/dev/presets/audio/skin.d.ts.map +0 -1
  1798. package/dist/dev/presets/background/player.d.ts.map +0 -1
  1799. package/dist/dev/presets/background/skin.d.ts.map +0 -1
  1800. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +0 -1
  1801. package/dist/dev/presets/live-audio/player.d.ts.map +0 -1
  1802. package/dist/dev/presets/live-audio/skin.d.ts.map +0 -1
  1803. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +0 -1
  1804. package/dist/dev/presets/live-video/player.d.ts.map +0 -1
  1805. package/dist/dev/presets/live-video/skin.d.ts.map +0 -1
  1806. package/dist/dev/presets/types.d.ts.map +0 -1
  1807. package/dist/dev/presets/video/minimal-skin.d.ts.map +0 -1
  1808. package/dist/dev/presets/video/player.d.ts.map +0 -1
  1809. package/dist/dev/presets/video/skin.d.ts.map +0 -1
  1810. package/dist/dev/ui/airplay-button/component.d.ts.map +0 -1
  1811. package/dist/dev/ui/alert-dialog/index.parts.d.ts.map +0 -1
  1812. package/dist/dev/ui/alert-dialog/root.d.ts.map +0 -1
  1813. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +0 -1
  1814. package/dist/dev/ui/audio-track-radio-group/component.d.ts.map +0 -1
  1815. package/dist/dev/ui/audio-track-radio-group/index.parts.d.ts.map +0 -1
  1816. package/dist/dev/ui/buffering-indicator/component.d.ts.map +0 -1
  1817. package/dist/dev/ui/captions-button/component.d.ts.map +0 -1
  1818. package/dist/dev/ui/captions-radio-group/component.d.ts.map +0 -1
  1819. package/dist/dev/ui/captions-radio-group/index.parts.d.ts.map +0 -1
  1820. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +0 -1
  1821. package/dist/dev/ui/cast-button/component.d.ts.map +0 -1
  1822. package/dist/dev/ui/controls/backdrop.d.ts.map +0 -1
  1823. package/dist/dev/ui/controls/content.d.ts.map +0 -1
  1824. package/dist/dev/ui/controls/group.d.ts.map +0 -1
  1825. package/dist/dev/ui/controls/index.parts.d.ts.map +0 -1
  1826. package/dist/dev/ui/controls/root.d.ts.map +0 -1
  1827. package/dist/dev/ui/dialog/backdrop.d.ts.map +0 -1
  1828. package/dist/dev/ui/dialog/close.d.ts.map +0 -1
  1829. package/dist/dev/ui/dialog/context.d.ts.map +0 -1
  1830. package/dist/dev/ui/dialog/description.d.ts.map +0 -1
  1831. package/dist/dev/ui/dialog/index.parts.d.ts.map +0 -1
  1832. package/dist/dev/ui/dialog/popup.d.ts.map +0 -1
  1833. package/dist/dev/ui/dialog/root.d.ts.map +0 -1
  1834. package/dist/dev/ui/dialog/title.d.ts.map +0 -1
  1835. package/dist/dev/ui/dialog/trigger.d.ts.map +0 -1
  1836. package/dist/dev/ui/error-dialog/close.d.ts.map +0 -1
  1837. package/dist/dev/ui/error-dialog/context.d.ts.map +0 -1
  1838. package/dist/dev/ui/error-dialog/description.d.ts.map +0 -1
  1839. package/dist/dev/ui/error-dialog/index.parts.d.ts.map +0 -1
  1840. package/dist/dev/ui/error-dialog/root.d.ts.map +0 -1
  1841. package/dist/dev/ui/error-dialog/title.d.ts.map +0 -1
  1842. package/dist/dev/ui/fullscreen-button/component.d.ts.map +0 -1
  1843. package/dist/dev/ui/gesture/component.d.ts.map +0 -1
  1844. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +0 -1
  1845. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +0 -1
  1846. package/dist/dev/ui/hooks/create-radio-options-hook.d.ts.map +0 -1
  1847. package/dist/dev/ui/hooks/use-button.d.ts.map +0 -1
  1848. package/dist/dev/ui/hooks/use-slider.d.ts.map +0 -1
  1849. package/dist/dev/ui/hotkey/component.d.ts.map +0 -1
  1850. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +0 -1
  1851. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +0 -1
  1852. package/dist/dev/ui/live-button/component.d.ts.map +0 -1
  1853. package/dist/dev/ui/menu/checkbox-item.d.ts.map +0 -1
  1854. package/dist/dev/ui/menu/content.d.ts.map +0 -1
  1855. package/dist/dev/ui/menu/context.d.ts.map +0 -1
  1856. package/dist/dev/ui/menu/group-label.d.ts.map +0 -1
  1857. package/dist/dev/ui/menu/group.d.ts.map +0 -1
  1858. package/dist/dev/ui/menu/index.parts.d.ts.map +0 -1
  1859. package/dist/dev/ui/menu/item-indicator.d.ts.map +0 -1
  1860. package/dist/dev/ui/menu/item.d.ts.map +0 -1
  1861. package/dist/dev/ui/menu/popup.d.ts.map +0 -1
  1862. package/dist/dev/ui/menu/radio-group.d.ts.map +0 -1
  1863. package/dist/dev/ui/menu/radio-item.d.ts.map +0 -1
  1864. package/dist/dev/ui/menu/root.d.ts.map +0 -1
  1865. package/dist/dev/ui/menu/separator.d.ts.map +0 -1
  1866. package/dist/dev/ui/menu/trigger.d.ts.map +0 -1
  1867. package/dist/dev/ui/mute-button/component.d.ts.map +0 -1
  1868. package/dist/dev/ui/pip-button/component.d.ts.map +0 -1
  1869. package/dist/dev/ui/play-button/component.d.ts.map +0 -1
  1870. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +0 -1
  1871. package/dist/dev/ui/playback-rate-button/component.d.ts.map +0 -1
  1872. package/dist/dev/ui/playback-rate-radio-group/component.d.ts.map +0 -1
  1873. package/dist/dev/ui/playback-rate-radio-group/index.parts.d.ts.map +0 -1
  1874. package/dist/dev/ui/popover/arrow.d.ts.map +0 -1
  1875. package/dist/dev/ui/popover/context.d.ts.map +0 -1
  1876. package/dist/dev/ui/popover/index.parts.d.ts.map +0 -1
  1877. package/dist/dev/ui/popover/popup.d.ts.map +0 -1
  1878. package/dist/dev/ui/popover/root.d.ts.map +0 -1
  1879. package/dist/dev/ui/popover/trigger.d.ts.map +0 -1
  1880. package/dist/dev/ui/poster/image.d.ts.map +0 -1
  1881. package/dist/dev/ui/poster/index.parts.d.ts.map +0 -1
  1882. package/dist/dev/ui/poster/root.d.ts.map +0 -1
  1883. package/dist/dev/ui/quality/use-quality-options.d.ts.map +0 -1
  1884. package/dist/dev/ui/quality-radio-group/component.d.ts.map +0 -1
  1885. package/dist/dev/ui/quality-radio-group/index.parts.d.ts.map +0 -1
  1886. package/dist/dev/ui/seek-button/component.d.ts.map +0 -1
  1887. package/dist/dev/ui/seek-indicator/index.parts.d.ts.map +0 -1
  1888. package/dist/dev/ui/seek-indicator/root.d.ts.map +0 -1
  1889. package/dist/dev/ui/seek-indicator/value.d.ts.map +0 -1
  1890. package/dist/dev/ui/slider/buffer.d.ts.map +0 -1
  1891. package/dist/dev/ui/slider/fill.d.ts.map +0 -1
  1892. package/dist/dev/ui/slider/index.parts.d.ts.map +0 -1
  1893. package/dist/dev/ui/slider/preview.d.ts.map +0 -1
  1894. package/dist/dev/ui/slider/root.d.ts.map +0 -1
  1895. package/dist/dev/ui/slider/thumb.d.ts.map +0 -1
  1896. package/dist/dev/ui/slider/thumbnail/index.parts.d.ts.map +0 -1
  1897. package/dist/dev/ui/slider/thumbnail/root.d.ts.map +0 -1
  1898. package/dist/dev/ui/slider/track.d.ts.map +0 -1
  1899. package/dist/dev/ui/slider/value.d.ts.map +0 -1
  1900. package/dist/dev/ui/status-announcer/component.d.ts.map +0 -1
  1901. package/dist/dev/ui/status-indicator/index.parts.d.ts.map +0 -1
  1902. package/dist/dev/ui/status-indicator/root.d.ts.map +0 -1
  1903. package/dist/dev/ui/status-indicator/value.d.ts.map +0 -1
  1904. package/dist/dev/ui/thumbnail/image.d.ts.map +0 -1
  1905. package/dist/dev/ui/thumbnail/index.parts.d.ts.map +0 -1
  1906. package/dist/dev/ui/thumbnail/root.d.ts.map +0 -1
  1907. package/dist/dev/ui/time/group.d.ts.map +0 -1
  1908. package/dist/dev/ui/time/index.parts.d.ts.map +0 -1
  1909. package/dist/dev/ui/time/separator.d.ts.map +0 -1
  1910. package/dist/dev/ui/time/value.d.ts.map +0 -1
  1911. package/dist/dev/ui/time-slider/chapter-title.d.ts.map +0 -1
  1912. package/dist/dev/ui/time-slider/chapters.d.ts.map +0 -1
  1913. package/dist/dev/ui/time-slider/index.parts.d.ts.map +0 -1
  1914. package/dist/dev/ui/time-slider/root.d.ts.map +0 -1
  1915. package/dist/dev/ui/title/component.d.ts.map +0 -1
  1916. package/dist/dev/ui/tooltip/arrow.d.ts.map +0 -1
  1917. package/dist/dev/ui/tooltip/context.d.ts.map +0 -1
  1918. package/dist/dev/ui/tooltip/index.parts.d.ts.map +0 -1
  1919. package/dist/dev/ui/tooltip/label.d.ts.map +0 -1
  1920. package/dist/dev/ui/tooltip/popup.d.ts.map +0 -1
  1921. package/dist/dev/ui/tooltip/provider.d.ts.map +0 -1
  1922. package/dist/dev/ui/tooltip/root.d.ts.map +0 -1
  1923. package/dist/dev/ui/tooltip/shortcut.d.ts.map +0 -1
  1924. package/dist/dev/ui/tooltip/trigger.d.ts.map +0 -1
  1925. package/dist/dev/ui/volume-indicator/fill.d.ts.map +0 -1
  1926. package/dist/dev/ui/volume-indicator/index.parts.d.ts.map +0 -1
  1927. package/dist/dev/ui/volume-indicator/root.d.ts.map +0 -1
  1928. package/dist/dev/ui/volume-indicator/value.d.ts.map +0 -1
  1929. package/dist/dev/ui/volume-popover/index.parts.d.ts.map +0 -1
  1930. package/dist/dev/ui/volume-popover/popup.d.ts.map +0 -1
  1931. package/dist/dev/ui/volume-popover/root.d.ts.map +0 -1
  1932. package/dist/dev/ui/volume-popover/trigger.d.ts.map +0 -1
  1933. package/dist/dev/ui/volume-slider/index.parts.d.ts.map +0 -1
  1934. package/dist/dev/ui/volume-slider/root.d.ts.map +0 -1
  1935. package/dist/dev/utils/merge-props.d.ts.map +0 -1
  1936. package/dist/dev/utils/types.d.ts.map +0 -1
  1937. package/dist/dev/utils/use-attach-iframe.js +0 -13
  1938. package/dist/dev/utils/use-attach-iframe.js.map +0 -1
  1939. package/dist/dev/utils/use-attach-media.d.ts.map +0 -1
  1940. package/dist/dev/utils/use-composed-refs.d.ts.map +0 -1
  1941. package/dist/dev/utils/use-destroy.d.ts.map +0 -1
  1942. package/dist/dev/utils/use-latest-ref.d.ts.map +0 -1
  1943. package/dist/dev/utils/use-media-extension.d.ts.map +0 -1
  1944. package/dist/dev/utils/use-media-instance.d.ts.map +0 -1
  1945. package/dist/dev/utils/use-render.d.ts.map +0 -1
  1946. package/docs/concepts/accessibility.md +0 -68
  1947. package/docs/concepts/browser-support.md +0 -45
  1948. package/docs/concepts/bundlers.md +0 -43
  1949. package/docs/concepts/features.md +0 -142
  1950. package/docs/concepts/media-sources.md +0 -483
  1951. package/docs/concepts/mux-data.md +0 -85
  1952. package/docs/concepts/overview.md +0 -119
  1953. package/docs/concepts/presets.md +0 -230
  1954. package/docs/concepts/security.md +0 -32
  1955. package/docs/concepts/skins.md +0 -216
  1956. package/docs/concepts/typescript.md +0 -34
  1957. package/docs/concepts/ui-components.md +0 -90
  1958. package/docs/concepts/v10-roadmap.md +0 -75
  1959. package/docs/concepts/why-videojs.md +0 -119
  1960. package/docs/how-to/add-a-background-video.md +0 -218
  1961. package/docs/how-to/add-a-poster-and-loading-placeholder.md +0 -234
  1962. package/docs/how-to/add-keyboard-shortcuts-and-gestures.md +0 -97
  1963. package/docs/how-to/add-quality-selector.md +0 -273
  1964. package/docs/how-to/autoplay.md +0 -180
  1965. package/docs/how-to/build-with-ai.md +0 -39
  1966. package/docs/how-to/build-your-own-component.md +0 -271
  1967. package/docs/how-to/cast-to-airplay-and-chromecast.md +0 -158
  1968. package/docs/how-to/customize-skins.md +0 -368
  1969. package/docs/how-to/go-fullscreen-and-lock-orientation.md +0 -153
  1970. package/docs/how-to/handle-playback-errors.md +0 -92
  1971. package/docs/how-to/installation.md +0 -158
  1972. package/docs/how-to/internationalize-the-player.md +0 -368
  1973. package/docs/how-to/migrate-from-media-chrome.md +0 -467
  1974. package/docs/how-to/migrate-from-mux-player.md +0 -696
  1975. package/docs/how-to/migrate-from-plyr.md +0 -424
  1976. package/docs/how-to/migrate-from-video-js-8.md +0 -614
  1977. package/docs/how-to/play-live-streams.md +0 -147
  1978. package/docs/how-to/remember-user-preferences.md +0 -180
  1979. package/docs/how-to/show-and-hide-controls.md +0 -182
  1980. package/docs/how-to/show-captions-and-subtitles.md +0 -156
  1981. package/docs/how-to/show-timeline-thumbnail-previews.md +0 -172
  1982. package/docs/how-to/use-picture-in-picture.md +0 -150
  1983. package/docs/reference/airplay-button.md +0 -298
  1984. package/docs/reference/alert-dialog.md +0 -649
  1985. package/docs/reference/audio-minimal-skin.md +0 -36
  1986. package/docs/reference/audio-skin.md +0 -36
  1987. package/docs/reference/audio-track-radio-group.md +0 -517
  1988. package/docs/reference/audio.md +0 -78
  1989. package/docs/reference/background-video-skin.md +0 -32
  1990. package/docs/reference/background-video.md +0 -56
  1991. package/docs/reference/buffering-indicator.md +0 -154
  1992. package/docs/reference/captions-button.md +0 -261
  1993. package/docs/reference/captions-radio-group.md +0 -526
  1994. package/docs/reference/cast-button.md +0 -285
  1995. package/docs/reference/cloudflare-video.md +0 -237
  1996. package/docs/reference/controls.md +0 -508
  1997. package/docs/reference/create-i18n.md +0 -96
  1998. package/docs/reference/create-player.md +0 -328
  1999. package/docs/reference/create-selector.md +0 -67
  2000. package/docs/reference/create-translator.md +0 -81
  2001. package/docs/reference/dash-video.md +0 -140
  2002. package/docs/reference/dialog.md +0 -833
  2003. package/docs/reference/error-dialog.md +0 -590
  2004. package/docs/reference/feature-audio-track.md +0 -70
  2005. package/docs/reference/feature-buffer.md +0 -70
  2006. package/docs/reference/feature-controls.md +0 -96
  2007. package/docs/reference/feature-error.md +0 -75
  2008. package/docs/reference/feature-fullscreen.md +0 -122
  2009. package/docs/reference/feature-live.md +0 -127
  2010. package/docs/reference/feature-metadata.md +0 -141
  2011. package/docs/reference/feature-orientation-lock.md +0 -131
  2012. package/docs/reference/feature-pip.md +0 -104
  2013. package/docs/reference/feature-playback-rate.md +0 -80
  2014. package/docs/reference/feature-playback.md +0 -119
  2015. package/docs/reference/feature-quality.md +0 -80
  2016. package/docs/reference/feature-remote-playback.md +0 -86
  2017. package/docs/reference/feature-source.md +0 -80
  2018. package/docs/reference/feature-stream-type.md +0 -65
  2019. package/docs/reference/feature-text-tracks.md +0 -138
  2020. package/docs/reference/feature-time.md +0 -94
  2021. package/docs/reference/feature-volume.md +0 -121
  2022. package/docs/reference/fullscreen-button.md +0 -241
  2023. package/docs/reference/gesture.md +0 -201
  2024. package/docs/reference/get-i18n-translations.md +0 -66
  2025. package/docs/reference/google-cast.md +0 -73
  2026. package/docs/reference/has-registered-locale.md +0 -55
  2027. package/docs/reference/hls-audio.md +0 -81
  2028. package/docs/reference/hls-background-video.md +0 -75
  2029. package/docs/reference/hls-video.md +0 -93
  2030. package/docs/reference/hlsjs-video.md +0 -766
  2031. package/docs/reference/hotkey.md +0 -188
  2032. package/docs/reference/i-18-n-context.md +0 -92
  2033. package/docs/reference/i18n-provider.md +0 -33
  2034. package/docs/reference/live-audio-minimal-skin.md +0 -38
  2035. package/docs/reference/live-audio-skin.md +0 -38
  2036. package/docs/reference/live-button.md +0 -280
  2037. package/docs/reference/live-video-minimal-skin.md +0 -44
  2038. package/docs/reference/live-video-skin.md +0 -44
  2039. package/docs/reference/menu.md +0 -1581
  2040. package/docs/reference/merge-props.md +0 -56
  2041. package/docs/reference/mute-button.md +0 -340
  2042. package/docs/reference/mux-audio.md +0 -784
  2043. package/docs/reference/mux-background-video.md +0 -34
  2044. package/docs/reference/mux-data.md +0 -97
  2045. package/docs/reference/mux-video.md +0 -884
  2046. package/docs/reference/native-hls-video.md +0 -148
  2047. package/docs/reference/on-i18n-registry-change.md +0 -57
  2048. package/docs/reference/pip-button.md +0 -241
  2049. package/docs/reference/play-button.md +0 -227
  2050. package/docs/reference/playback-rate-button.md +0 -187
  2051. package/docs/reference/playback-rate-radio-group.md +0 -519
  2052. package/docs/reference/player-container.md +0 -100
  2053. package/docs/reference/player.md +0 -108
  2054. package/docs/reference/popover.md +0 -698
  2055. package/docs/reference/poster.md +0 -393
  2056. package/docs/reference/quality-radio-group.md +0 -531
  2057. package/docs/reference/register-i18n.md +0 -72
  2058. package/docs/reference/render-element.md +0 -216
  2059. package/docs/reference/seek-button.md +0 -215
  2060. package/docs/reference/seek-indicator.md +0 -448
  2061. package/docs/reference/shaka-video.md +0 -411
  2062. package/docs/reference/slider.md +0 -1223
  2063. package/docs/reference/spotify-audio.md +0 -202
  2064. package/docs/reference/status-announcer.md +0 -341
  2065. package/docs/reference/status-indicator.md +0 -535
  2066. package/docs/reference/thumbnail.md +0 -460
  2067. package/docs/reference/tiktok-video.md +0 -294
  2068. package/docs/reference/time-slider.md +0 -1325
  2069. package/docs/reference/time.md +0 -688
  2070. package/docs/reference/title.md +0 -216
  2071. package/docs/reference/tooltip.md +0 -939
  2072. package/docs/reference/translation-phrases.md +0 -453
  2073. package/docs/reference/twitch-video.md +0 -225
  2074. package/docs/reference/use-attach-media.md +0 -59
  2075. package/docs/reference/use-audio-track-options.md +0 -109
  2076. package/docs/reference/use-button.md +0 -136
  2077. package/docs/reference/use-captions-options.md +0 -113
  2078. package/docs/reference/use-composed-refs.md +0 -59
  2079. package/docs/reference/use-container-attach.md +0 -50
  2080. package/docs/reference/use-container.md +0 -39
  2081. package/docs/reference/use-destroy.md +0 -89
  2082. package/docs/reference/use-dialog-context.md +0 -63
  2083. package/docs/reference/use-double-tap-gesture.md +0 -75
  2084. package/docs/reference/use-error-dialog-context.md +0 -41
  2085. package/docs/reference/use-hotkey-shortcut.md +0 -79
  2086. package/docs/reference/use-hotkey.md +0 -62
  2087. package/docs/reference/use-latest-ref.md +0 -73
  2088. package/docs/reference/use-locale.md +0 -133
  2089. package/docs/reference/use-media-attach.md +0 -54
  2090. package/docs/reference/use-media-extension.md +0 -62
  2091. package/docs/reference/use-media-instance.md +0 -79
  2092. package/docs/reference/use-media.md +0 -149
  2093. package/docs/reference/use-menu-context.md +0 -115
  2094. package/docs/reference/use-optional-container.md +0 -33
  2095. package/docs/reference/use-optional-menu-context.md +0 -115
  2096. package/docs/reference/use-optional-player.md +0 -77
  2097. package/docs/reference/use-playback-rate-options.md +0 -123
  2098. package/docs/reference/use-player-context.md +0 -98
  2099. package/docs/reference/use-player.md +0 -245
  2100. package/docs/reference/use-popover-context.md +0 -95
  2101. package/docs/reference/use-quality-options.md +0 -109
  2102. package/docs/reference/use-selector.md +0 -144
  2103. package/docs/reference/use-slider.md +0 -133
  2104. package/docs/reference/use-snapshot.md +0 -153
  2105. package/docs/reference/use-store.md +0 -257
  2106. package/docs/reference/use-tap-gesture.md +0 -75
  2107. package/docs/reference/use-tooltip-context.md +0 -115
  2108. package/docs/reference/use-translator.md +0 -127
  2109. package/docs/reference/video-minimal-skin.md +0 -42
  2110. package/docs/reference/video-skin.md +0 -42
  2111. package/docs/reference/video.md +0 -82
  2112. package/docs/reference/vimeo-video.md +0 -738
  2113. package/docs/reference/volume-indicator.md +0 -601
  2114. package/docs/reference/volume-popover.md +0 -572
  2115. package/docs/reference/volume-slider.md +0 -914
  2116. package/docs/reference/wistia-video.md +0 -75
  2117. package/docs/reference/youtube-video.md +0 -353
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/menu/index.parts.ts"],"sourcesContent":["export { MenuCheckboxItem as CheckboxItem, type MenuCheckboxItemProps as CheckboxItemProps } from './checkbox-item';\nexport { MenuContent as Content, type MenuContentProps as ContentProps } from './content';\nexport { MenuGroup as Group, type MenuGroupProps as GroupProps } from './group';\nexport { MenuGroupLabel as GroupLabel, type MenuGroupLabelProps as GroupLabelProps } from './group-label';\nexport { MenuItem as Item, type MenuItemProps as ItemProps } from './item';\nexport {\n MenuItemIndicator as ItemIndicator,\n type MenuItemIndicatorProps as ItemIndicatorProps,\n} from './item-indicator';\nexport { MenuPopup as Popup, type MenuPopupProps as PopupProps } from './popup';\nexport { MenuRadioGroup as RadioGroup, type MenuRadioGroupProps as RadioGroupProps } from './radio-group';\nexport { MenuRadioItem as RadioItem, type MenuRadioItemProps as RadioItemProps } from './radio-item';\nexport { MenuRoot as Root, type MenuRootProps as RootProps } from './root';\nexport { MenuSeparator as Separator, type MenuSeparatorProps as SeparatorProps } from './separator';\nexport { MenuTrigger as Trigger, type MenuTriggerProps as TriggerProps } from './trigger';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"item-indicator.js","names":[],"sources":["../../../../src/ui/menu/item-indicator.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuContext, useOptionalMenuRadioItemContext } from './context';\n\nexport interface MenuItemIndicatorProps extends UIComponentProps<'span', MenuState> {\n /** Whether the indicator is currently shown. Typically bound to the parent item's checked state. */\n checked?: boolean;\n /** When `true`, renders even when unchecked (useful for animating out). Defaults to `false`. */\n forceMount?: boolean;\n}\n\n/** Visual indicator for a checked state. Only renders when `checked` is `true` (or `forceMount` is set). */\nexport const MenuItemIndicator = forwardRef<HTMLSpanElement, MenuItemIndicatorProps>(function MenuItemIndicator(\n { render, className, style, checked, forceMount = false, ...elementProps },\n forwardedRef\n) {\n const { state } = useMenuContext();\n const itemChecked = useOptionalMenuRadioItemContext();\n const resolvedChecked = checked ?? itemChecked;\n if (!resolvedChecked && !forceMount) return null;\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ 'aria-hidden': true }, elementProps],\n }\n );\n});\n\nexport namespace MenuItemIndicator {\n export type Props = MenuItemIndicatorProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;AAeA,MAAa,oBAAoB,WAAoD,SAAS,kBAC5F,EAAE,QAAQ,WAAW,OAAO,SAAS,aAAa,OAAO,GAAG,gBAC5D,cACA;CACA,MAAM,EAAE,UAAU,eAAe;CACjC,MAAM,cAAc,gCAAgC;CAEpD,IAAI,EADoB,WAAW,gBACX,CAAC,YAAY,OAAO;CAE5C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,eAAe,KAAK,GAAG,YAAY;CAC/C,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"item.js","names":[],"sources":["../../../../src/ui/menu/item.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport { completeMenuItemSelection } from '@videojs/core/dom';\nimport { forwardRef, useCallback, useEffect, useRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuContext } from './context';\n\nexport interface MenuItemProps extends UIComponentProps<'div', MenuState> {\n /** Called when the item is selected. */\n onSelect?: () => void;\n /** Whether the item is disabled. */\n disabled?: boolean;\n}\n\n/** A single action in the menu. Renders a `<div>` with `role=\"menuitem\"`. */\nexport const MenuItem = forwardRef<HTMLDivElement, MenuItemProps>(function MenuItem(\n { render, className, style, onSelect, disabled, onClick, ...elementProps },\n forwardedRef\n) {\n const { menu, state } = useMenuContext();\n const elementRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n return menu.registerItem(element);\n }, [menu]);\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\n\n onClick?.(event);\n\n if (event.defaultPrevented) return;\n\n onSelect?.();\n completeMenuItemSelection(menu);\n },\n [disabled, onClick, onSelect, menu]\n );\n\n const handlePointerEnter = useCallback(() => {\n const element = elementRef.current;\n if (!element || disabled) return;\n\n menu.highlight(element, { focus: false, pointer: true });\n }, [menu, disabled]);\n\n return (\n <MenuItemContent\n disabled={disabled}\n elementProps={elementProps}\n onClick={handleClick}\n onPointerEnter={handlePointerEnter}\n render={render}\n className={className}\n style={style}\n state={state}\n forwardedRef={forwardedRef}\n elementRef={elementRef}\n />\n );\n});\n\ninterface MenuItemContentProps {\n disabled: boolean | undefined;\n elementProps: Record<string, unknown>;\n onClick: (event: React.MouseEvent<HTMLDivElement>) => void;\n onPointerEnter: () => void;\n render: MenuItemProps['render'];\n className: MenuItemProps['className'];\n style: MenuItemProps['style'];\n state: MenuState;\n forwardedRef: React.ForwardedRef<HTMLDivElement>;\n elementRef: React.RefObject<HTMLDivElement | null>;\n}\n\nfunction MenuItemContent({\n disabled,\n elementProps,\n onClick,\n onPointerEnter,\n render,\n className,\n style,\n state,\n forwardedRef,\n elementRef,\n}: MenuItemContentProps) {\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: [forwardedRef, elementRef],\n props: [\n {\n role: 'menuitem' as const,\n 'aria-disabled': disabled ? true : undefined,\n onClick,\n onPointerEnter,\n },\n elementProps,\n ],\n }\n );\n}\n\nexport namespace MenuItem {\n export type Props = MenuItemProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;;;AAgBA,MAAa,WAAW,WAA0C,SAAS,SACzE,EAAE,QAAQ,WAAW,OAAO,UAAU,UAAU,SAAS,GAAG,gBAC5D,cACA;CACA,MAAM,EAAE,MAAM,UAAU,eAAe;CACvC,MAAM,aAAa,OAAuB,IAAI;CAE9C,gBAAgB;EACd,MAAM,UAAU,WAAW;EAC3B,IAAI,CAAC,SAAS;EAEd,OAAO,KAAK,aAAa,OAAO;CAClC,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,cAAc,aACjB,UAA4C;EAC3C,IAAI,UAAU;EAEd,UAAU,KAAK;EAEf,IAAI,MAAM,kBAAkB;EAE5B,WAAW;EACX,0BAA0B,IAAI;CAChC,GACA;EAAC;EAAU;EAAS;EAAU;CAAI,CACpC;CAEA,MAAM,qBAAqB,kBAAkB;EAC3C,MAAM,UAAU,WAAW;EAC3B,IAAI,CAAC,WAAW,UAAU;EAE1B,KAAK,UAAU,SAAS;GAAE,OAAO;GAAO,SAAS;EAAK,CAAC;CACzD,GAAG,CAAC,MAAM,QAAQ,CAAC;CAEnB,OACE,oBAAC,iBAAD;EACY;EACI;EACd,SAAS;EACT,gBAAgB;EACR;EACG;EACJ;EACA;EACO;EACF;CACb,CAAA;AAEL,CAAC;AAeD,SAAS,gBAAgB,EACvB,UACA,cACA,SACA,gBACA,QACA,WACA,OACA,OACA,cACA,cACuB;CACvB,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,cAAc,UAAU;EAC9B,OAAO,CACL;GACE,MAAM;GACN,iBAAiB,WAAW,OAAO,KAAA;GACnC;GACA;EACF,GACA,YACF;CACF,CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboard.js","names":[],"sources":["../../../../src/ui/menu/keyboard.ts"],"sourcesContent":["import { isMenuNavigationKey } from '@videojs/core/dom';\n\nconst preventedEvents = new WeakSet<Event>();\nconst canceledEvents = new WeakSet<Event>();\n\n// Menu keys are prevented during capture before native player hotkeys run.\n// Track that internal prevention so bubble handlers can still honor a consumer\n// that calls preventDefault() to opt out of the built-in menu behavior.\nexport function preventMenuKeyDefault(event: React.KeyboardEvent<HTMLElement>): void {\n if (event.key !== 'Escape' && isMenuNavigationKey(event) && !event.defaultPrevented) {\n event.preventDefault();\n preventedEvents.add(event.nativeEvent);\n }\n}\n\nexport function callKeyDownHandler<T extends HTMLElement>(\n handler: React.KeyboardEventHandler<T> | undefined,\n event: React.KeyboardEvent<T>\n): boolean {\n const defaultPreventedBeforeHandler =\n event.defaultPrevented && (!preventedEvents.has(event.nativeEvent) || canceledEvents.has(event.nativeEvent));\n\n if (!handler) return defaultPreventedBeforeHandler;\n\n let defaultPreventedByHandler = false;\n const preventDefault = event.preventDefault;\n\n event.preventDefault = () => {\n defaultPreventedByHandler = true;\n preventDefault.call(event);\n };\n\n try {\n handler(event);\n } finally {\n event.preventDefault = preventDefault;\n }\n\n if (defaultPreventedByHandler) canceledEvents.add(event.nativeEvent);\n\n return defaultPreventedBeforeHandler || defaultPreventedByHandler;\n}\n"],"mappings":";;AAEA,MAAM,kCAAkB,IAAI,QAAe;AAC3C,MAAM,iCAAiB,IAAI,QAAe;AAK1C,SAAgB,sBAAsB,OAA+C;CACnF,IAAI,MAAM,QAAQ,YAAY,oBAAoB,KAAK,KAAK,CAAC,MAAM,kBAAkB;EACnF,MAAM,eAAe;EACrB,gBAAgB,IAAI,MAAM,WAAW;CACvC;AACF;AAEA,SAAgB,mBACd,SACA,OACS;CACT,MAAM,gCACJ,MAAM,qBAAqB,CAAC,gBAAgB,IAAI,MAAM,WAAW,KAAK,eAAe,IAAI,MAAM,WAAW;CAE5G,IAAI,CAAC,SAAS,OAAO;CAErB,IAAI,4BAA4B;CAChC,MAAM,iBAAiB,MAAM;CAE7B,MAAM,uBAAuB;EAC3B,4BAA4B;EAC5B,eAAe,KAAK,KAAK;CAC3B;CAEA,IAAI;EACF,QAAQ,KAAK;CACf,UAAU;EACR,MAAM,iBAAiB;CACzB;CAEA,IAAI,2BAA2B,eAAe,IAAI,MAAM,WAAW;CAEnE,OAAO,iCAAiC;AAC1C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popup.js","names":[],"sources":["../../../../src/ui/menu/popup.tsx"],"sourcesContent":["import { MenuPopupDataAttrs, type MenuState } from '@videojs/core';\nimport { createMenuPopup, getRootPositionOptions, MenuPositioningCSSVars } from '@videojs/core/dom';\nimport { forwardRef, useCallback, useMemo, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\nimport { usePopupPosition } from '../popover/use-popup-position';\nimport { MenuPopupContextProvider, useMenuContext } from './context';\n\nexport interface MenuPopupProps extends UIComponentProps<'div', MenuState> {\n /** Keep the popup mounted, hidden, and inert while closed. */\n keepMounted?: boolean;\n}\n\n/** Positioned menu surface that contains one or more sibling Content pages. */\nexport const MenuPopup = forwardRef<HTMLDivElement, MenuPopupProps>(function MenuPopup(\n { render, className, style, onBlur, keepMounted = false, ...elementProps },\n forwardedRef\n) {\n const { core, menu, parent, state, preferredSide, setPositionedSide, anchorName, boundary, container } =\n useMenuContext();\n if (__DEV__ && parent) throw new Error('Menu.Popup must be a direct child of a root Menu.Root');\n\n const [popup] = useState(createMenuPopup);\n const [popupElement, setPopupElement] = useState<HTMLElement | null>(null);\n const internalRef = useRef<HTMLDivElement>(null);\n const setInternalElement = useCallback(\n (element: HTMLDivElement | null) => {\n menu.setPopupElement(element);\n popup.setElement(element);\n setPopupElement(element);\n },\n [menu, popup]\n );\n const composedRef = useComposedRefs(forwardedRef, internalRef, setInternalElement);\n const positionOptions = useMemo(\n () => getRootPositionOptions(preferredSide, state.align),\n [preferredSide, state.align]\n );\n const positioningStyle = usePopupPosition({\n open: state.open,\n anchorName,\n position: positionOptions,\n triggerSource: menu,\n popupRef: internalRef,\n boundary,\n container,\n cssVars: MenuPositioningCSSVars,\n trackResize: false,\n onSideChange: setPositionedSide,\n });\n\n useDestroy(popup);\n\n const inactive = !state.open && state.status !== 'ending';\n if (inactive && !keepMounted) return null;\n\n const popupNode = renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: MenuPopupDataAttrs,\n ref: composedRef,\n props: [\n { style: positioningStyle, ...core.getPopupAttrs() },\n {\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n onBlur?.(event);\n menu.contentProps.onFocusOut(event);\n },\n },\n elementProps,\n { hidden: inactive, inert: inactive || undefined },\n ],\n }\n );\n\n return <MenuPopupContextProvider value={{ popup, element: popupElement }}>{popupNode}</MenuPopupContextProvider>;\n});\n\nexport namespace MenuPopup {\n export type Props = MenuPopupProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;;;;;;;AAiBA,MAAa,YAAY,WAA2C,SAAS,UAC3E,EAAE,QAAQ,WAAW,OAAO,QAAQ,cAAc,OAAO,GAAG,gBAC5D,cACA;CACA,MAAM,EAAE,MAAM,MAAM,QAAQ,OAAO,eAAe,mBAAmB,YAAY,UAAU,cACzF,eAAe;CAGjB,MAAM,CAAC,SAAS,SAAS,eAAe;CACxC,MAAM,CAAC,cAAc,mBAAmB,SAA6B,IAAI;CACzE,MAAM,cAAc,OAAuB,IAAI;CAC/C,MAAM,qBAAqB,aACxB,YAAmC;EAClC,KAAK,gBAAgB,OAAO;EAC5B,MAAM,WAAW,OAAO;EACxB,gBAAgB,OAAO;CACzB,GACA,CAAC,MAAM,KAAK,CACd;CACA,MAAM,cAAc,gBAAgB,cAAc,aAAa,kBAAkB;CACjF,MAAM,kBAAkB,cAChB,uBAAuB,eAAe,MAAM,KAAK,GACvD,CAAC,eAAe,MAAM,KAAK,CAC7B;CACA,MAAM,mBAAmB,iBAAiB;EACxC,MAAM,MAAM;EACZ;EACA,UAAU;EACV,eAAe;EACf,UAAU;EACV;EACA;EACA,SAAS;EACT,aAAa;EACb,cAAc;CAChB,CAAC;CAED,WAAW,KAAK;CAEhB,MAAM,WAAW,CAAC,MAAM,QAAQ,MAAM,WAAW;CACjD,IAAI,YAAY,CAAC,aAAa,OAAO;CAErC,MAAM,YAAY,cAChB,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK;EACL,OAAO;GACL;IAAE,OAAO;IAAkB,GAAG,KAAK,cAAc;GAAE;GACnD,EACE,SAAS,UAA4C;IACnD,SAAS,KAAK;IACd,KAAK,aAAa,WAAW,KAAK;GACpC,EACF;GACA;GACA;IAAE,QAAQ;IAAU,OAAO,YAAY,KAAA;GAAU;EACnD;CACF,CACF;CAEA,OAAO,oBAAC,0BAAD;EAA0B,OAAO;GAAE;GAAO,SAAS;EAAa;EAAI,UAAA;CAAoC,CAAA;AACjH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio-group.js","names":[],"sources":["../../../../src/ui/menu/radio-group.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { MenuRadioGroupContextProvider, useMenuContext } from './context';\nimport { getMenuGroupProps, MenuGroupProvider } from './use-menu-group';\n\nexport interface MenuRadioGroupProps extends UIComponentProps<'div', MenuState> {\n /** The currently selected value. */\n value: string;\n /** Called when the user selects a radio item. */\n onValueChange: (value: string) => void;\n}\n\n/** A group of mutually exclusive radio items. Renders a `<div>` with `role=\"group\"`. */\nexport const MenuRadioGroup = forwardRef<HTMLDivElement, MenuRadioGroupProps>(function MenuRadioGroup(\n { render, className, style, value, onValueChange, ...elementProps },\n forwardedRef\n) {\n const { state } = useMenuContext();\n\n return (\n <MenuGroupProvider>\n {(labelId) => (\n <MenuRadioGroupContextProvider value={{ value, onValueChange }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [getMenuGroupProps(labelId, elementProps), elementProps],\n }\n )}\n </MenuRadioGroupContextProvider>\n )}\n </MenuGroupProvider>\n );\n});\n\nexport namespace MenuRadioGroup {\n export type Props = MenuRadioGroupProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;;;AAgBA,MAAa,iBAAiB,WAAgD,SAAS,eACrF,EAAE,QAAQ,WAAW,OAAO,OAAO,eAAe,GAAG,gBACrD,cACA;CACA,MAAM,EAAE,UAAU,eAAe;CAEjC,OACE,oBAAC,mBAAD,EAAA,WACI,YACA,oBAAC,+BAAD;EAA+B,OAAO;GAAE;GAAO;EAAc;EAC1D,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,KAAK,CAAC,YAAY;GAClB,OAAO,CAAC,kBAAkB,SAAS,YAAY,GAAG,YAAY;EAChE,CACF;CAC6B,CAAA,EAEhB,CAAA;AAEvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio-item.js","names":[],"sources":["../../../../src/ui/menu/radio-item.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport { completeMenuItemSelection } from '@videojs/core/dom';\nimport { forwardRef, useCallback, useEffect, useRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { MenuRadioItemContextProvider, useMenuContext, useMenuRadioGroupContext } from './context';\n\nexport interface MenuRadioItemProps extends UIComponentProps<'div', MenuState> {\n /** The value this item represents. */\n value: string;\n /** Whether the item is disabled. */\n disabled?: boolean;\n}\n\n/** A radio-style menu item. Renders a `<div>` with `role=\"menuitemradio\"`. */\nexport const MenuRadioItem = forwardRef<HTMLDivElement, MenuRadioItemProps>(function MenuRadioItem(\n { render, className, style, value, disabled, onClick, ...elementProps },\n forwardedRef\n) {\n const { menu, state } = useMenuContext();\n const { value: groupValue, onValueChange } = useMenuRadioGroupContext();\n const elementRef = useRef<HTMLDivElement>(null);\n const checked = groupValue === value;\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n return menu.registerItem(element);\n }, [menu]);\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\n\n onClick?.(event);\n\n if (event.defaultPrevented) return;\n\n onValueChange(value);\n completeMenuItemSelection(menu);\n },\n [disabled, onClick, onValueChange, value, menu]\n );\n\n const handlePointerEnter = useCallback(() => {\n const element = elementRef.current;\n if (!element || disabled) return;\n\n menu.highlight(element, { focus: false, pointer: true });\n }, [menu, disabled]);\n\n return (\n <MenuRadioItemContextProvider value={checked}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: [forwardedRef, elementRef],\n props: [\n {\n role: 'menuitemradio' as const,\n 'aria-checked': checked,\n 'aria-disabled': disabled ? true : undefined,\n onClick: handleClick,\n onPointerEnter: handlePointerEnter,\n },\n elementProps,\n ],\n }\n )}\n </MenuRadioItemContextProvider>\n );\n});\n\nexport namespace MenuRadioItem {\n export type Props = MenuRadioItemProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;;;AAgBA,MAAa,gBAAgB,WAA+C,SAAS,cACnF,EAAE,QAAQ,WAAW,OAAO,OAAO,UAAU,SAAS,GAAG,gBACzD,cACA;CACA,MAAM,EAAE,MAAM,UAAU,eAAe;CACvC,MAAM,EAAE,OAAO,YAAY,kBAAkB,yBAAyB;CACtE,MAAM,aAAa,OAAuB,IAAI;CAC9C,MAAM,UAAU,eAAe;CAE/B,gBAAgB;EACd,MAAM,UAAU,WAAW;EAC3B,IAAI,CAAC,SAAS;EAEd,OAAO,KAAK,aAAa,OAAO;CAClC,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,cAAc,aACjB,UAA4C;EAC3C,IAAI,UAAU;EAEd,UAAU,KAAK;EAEf,IAAI,MAAM,kBAAkB;EAE5B,cAAc,KAAK;EACnB,0BAA0B,IAAI;CAChC,GACA;EAAC;EAAU;EAAS;EAAe;EAAO;CAAI,CAChD;CAEA,MAAM,qBAAqB,kBAAkB;EAC3C,MAAM,UAAU,WAAW;EAC3B,IAAI,CAAC,WAAW,UAAU;EAE1B,KAAK,UAAU,SAAS;GAAE,OAAO;GAAO,SAAS;EAAK,CAAC;CACzD,GAAG,CAAC,MAAM,QAAQ,CAAC;CAEnB,OACE,oBAAC,8BAAD;EAA8B,OAAO;EAClC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CACL;IACE,MAAM;IACN,gBAAgB;IAChB,iBAAiB,WAAW,OAAO,KAAA;IACnC,SAAS;IACT,gBAAgB;GAClB,GACA,YACF;EACF,CACF;CAC4B,CAAA;AAElC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/menu/root.tsx"],"sourcesContent":["import { MenuCore, type MenuOptionState, resolveMenuOptionState } from '@videojs/core';\nimport {\n createMenu,\n createTransition,\n type MenuChangeDetails,\n type PositioningBoundary,\n selectControls,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport type { ReactNode } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';\n\nimport { useOptionalContainer, useOptionalPlayer } 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 { MenuContextProvider, useOptionalMenuContext } from './context';\n\nexport interface MenuRootProps extends Omit<MenuCore.Props, 'boundary'> {\n /** Boundary used to constrain the root menu popup size. */\n boundary?: PositioningBoundary;\n /** Called when the menu open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: MenuChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function MenuRoot({\n open: controlledOpen,\n defaultOpen = MenuCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n boundary = 'container',\n children,\n ...coreProps\n}: MenuRootProps): ReactNode {\n // Detect if we are nested inside a parent Menu.Content — if so, operate as\n // a submenu: no popover positioning, Trigger acts as a parent item.\n const parentMenu = useOptionalMenuContext();\n const controls = useOptionalControlsContext();\n const controlsState = useOptionalPlayer(selectControls);\n const container = useOptionalContainer();\n const popupGroup = useOptionalPopupGroup();\n const isSubmenu = parentMenu !== null;\n const { side, align, closeOnEscape, closeOnOutsideClick } = coreProps;\n\n const [core] = useState(() => new MenuCore(coreProps));\n\n const isControlled = controlledOpen !== undefined;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const resolvedOpen = controlledOpen ?? uncontrolledOpen;\n\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n\n const closeOnEscapeRef = useLatestRef(closeOnEscape);\n const closeOnOutsideClickRef = useLatestRef(closeOnOutsideClick);\n\n const popupGroupRef = useLatestRef(popupGroup);\n const isSubmenuRef = useLatestRef(isSubmenu);\n\n const [menu] = useState(() => {\n const instance = createMenu({\n transition: createTransition(),\n onOpenChange(nextOpen, details) {\n if (!isControlled) setUncontrolledOpen(nextOpen);\n\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete(nextOpen) {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n closeOnEscape: () => closeOnEscapeRef.current ?? MenuCore.defaultProps.closeOnEscape,\n closeOnOutsideClick: () => closeOnOutsideClickRef.current ?? MenuCore.defaultProps.closeOnOutsideClick,\n group: () => (isSubmenuRef.current ? undefined : popupGroupRef.current),\n });\n\n return instance;\n });\n\n const anchorName = useSafeId();\n const contentId = useSafeId('menu');\n\n useLayoutEffect(() => parentMenu?.menu.registerSubmenu(menu), [menu, parentMenu?.menu]);\n\n // Commit only the open state resolved by controlled/uncontrolled ownership.\n useLayoutEffect(() => {\n menu.syncOpen(resolvedOpen);\n }, [menu, resolvedOpen]);\n\n useEffect(() => {\n if (isSubmenu || controls?.state.visible !== false) return;\n\n menu.close('imperative-action');\n }, [controls?.state.visible, isSubmenu, menu]);\n\n useDestroy(menu);\n\n const input = useSnapshot(menu.input);\n\n useEffect(() => {\n if (!input.active || isSubmenu) return;\n\n return controlsState?.requestControlsLock();\n }, [controlsState?.requestControlsLock, input.active, isSubmenu]);\n\n const preferredState = useMemo(() => {\n core.setProps({ side, align, closeOnEscape, closeOnOutsideClick });\n core.setInput({ ...input, isSubmenu });\n return core.getState();\n }, [core, input, side, align, closeOnEscape, closeOnOutsideClick, isSubmenu]);\n const { state, preferredSide, setPositionedSide } = usePositionedState(preferredState);\n\n const [optionStates, setOptionStates] = useState<ReadonlyMap<symbol, MenuOptionState>>(() => new Map());\n const [optionSource] = useState(() => Symbol('menu'));\n const setOptionState = useCallback((source: symbol, optionState: MenuOptionState | null) => {\n setOptionStates((current) => {\n const previous = current.get(source);\n if (optionState && isSameOptionState(previous, optionState)) return current;\n\n if (!optionState && !previous) return current;\n\n const next = new Map(current);\n\n if (optionState) next.set(source, optionState);\n else next.delete(source);\n\n return next;\n });\n }, []);\n const optionState = useMemo(() => resolveMenuOptionState(optionStates.values()), [optionStates]);\n const setParentOptionState = parentMenu?.setOptionState;\n\n useEffect(() => {\n if (!optionState?.disabled && !optionState?.hidden) return;\n\n menu.close('imperative-action');\n }, [menu, optionState?.disabled, optionState?.hidden]);\n\n useLayoutEffect(() => {\n if (!setParentOptionState) return undefined;\n\n setParentOptionState(optionSource, optionState);\n\n return () => setParentOptionState(optionSource, null);\n }, [optionSource, optionState, setParentOptionState]);\n\n const contextValue = useMemo(\n () => ({\n core,\n menu,\n parent: parentMenu,\n state,\n preferredSide,\n setPositionedSide,\n contentId,\n anchorName,\n boundary,\n container,\n optionState,\n setOptionState,\n }),\n [\n core,\n menu,\n parentMenu,\n state,\n preferredSide,\n setPositionedSide,\n contentId,\n anchorName,\n boundary,\n container,\n optionState,\n setOptionState,\n ]\n );\n\n return <MenuContextProvider value={contextValue}>{children}</MenuContextProvider>;\n}\n\nfunction isSameOptionState(a: MenuOptionState | undefined, b: MenuOptionState): boolean {\n return (\n a?.value === b.value && a.disabled === b.disabled && a.hidden === b.hidden && a.availability === b.availability\n );\n}\n\nexport namespace MenuRoot {\n export type Props = MenuRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;;AA+BA,SAAgB,SAAS,EACvB,MAAM,gBACN,cAAc,SAAS,aAAa,aACpC,cAAc,kBACd,sBAAsB,0BACtB,WAAW,aACX,UACA,GAAG,aACwB;CAG3B,MAAM,aAAa,uBAAuB;CAC1C,MAAM,WAAW,2BAA2B;CAC5C,MAAM,gBAAgB,kBAAkB,cAAc;CACtD,MAAM,YAAY,qBAAqB;CACvC,MAAM,aAAa,sBAAsB;CACzC,MAAM,YAAY,eAAe;CACjC,MAAM,EAAE,MAAM,OAAO,eAAe,wBAAwB;CAE5D,MAAM,CAAC,QAAQ,eAAe,IAAI,SAAS,SAAS,CAAC;CAErD,MAAM,eAAe,mBAAmB,KAAA;CACxC,MAAM,CAAC,kBAAkB,uBAAuB,SAAS,WAAW;CACpE,MAAM,eAAe,kBAAkB;CAEvC,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CAErE,MAAM,mBAAmB,aAAa,aAAa;CACnD,MAAM,yBAAyB,aAAa,mBAAmB;CAE/D,MAAM,gBAAgB,aAAa,UAAU;CAC7C,MAAM,eAAe,aAAa,SAAS;CAE3C,MAAM,CAAC,QAAQ,eAAe;EAgB5B,OAfiB,WAAW;GAC1B,YAAY,iBAAiB;GAC7B,aAAa,UAAU,SAAS;IAC9B,IAAI,CAAC,cAAc,oBAAoB,QAAQ;IAE/C,gBAAgB,UAAU,UAAU,OAAO;GAC7C;GACA,qBAAqB,UAAU;IAC7B,wBAAwB,UAAU,QAAQ;GAC5C;GACA,qBAAqB,iBAAiB,WAAW,SAAS,aAAa;GACvE,2BAA2B,uBAAuB,WAAW,SAAS,aAAa;GACnF,aAAc,aAAa,UAAU,KAAA,IAAY,cAAc;EACjE,CAEc;CAChB,CAAC;CAED,MAAM,aAAa,UAAU;CAC7B,MAAM,YAAY,UAAU,MAAM;CAElC,sBAAsB,YAAY,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,YAAY,IAAI,CAAC;CAGtF,sBAAsB;EACpB,KAAK,SAAS,YAAY;CAC5B,GAAG,CAAC,MAAM,YAAY,CAAC;CAEvB,gBAAgB;EACd,IAAI,aAAa,UAAU,MAAM,YAAY,OAAO;EAEpD,KAAK,MAAM,mBAAmB;CAChC,GAAG;EAAC,UAAU,MAAM;EAAS;EAAW;CAAI,CAAC;CAE7C,WAAW,IAAI;CAEf,MAAM,QAAQ,YAAY,KAAK,KAAK;CAEpC,gBAAgB;EACd,IAAI,CAAC,MAAM,UAAU,WAAW;EAEhC,OAAO,eAAe,oBAAoB;CAC5C,GAAG;EAAC,eAAe;EAAqB,MAAM;EAAQ;CAAS,CAAC;CAEhE,MAAM,iBAAiB,cAAc;EACnC,KAAK,SAAS;GAAE;GAAM;GAAO;GAAe;EAAoB,CAAC;EACjE,KAAK,SAAS;GAAE,GAAG;GAAO;EAAU,CAAC;EACrC,OAAO,KAAK,SAAS;CACvB,GAAG;EAAC;EAAM;EAAO;EAAM;EAAO;EAAe;EAAqB;CAAS,CAAC;CAC5E,MAAM,EAAE,OAAO,eAAe,sBAAsB,mBAAmB,cAAc;CAErF,MAAM,CAAC,cAAc,mBAAmB,+BAAqD,IAAI,IAAI,CAAC;CACtG,MAAM,CAAC,gBAAgB,eAAe,OAAO,MAAM,CAAC;CACpD,MAAM,iBAAiB,aAAa,QAAgB,gBAAwC;EAC1F,iBAAiB,YAAY;GAC3B,MAAM,WAAW,QAAQ,IAAI,MAAM;GACnC,IAAI,eAAe,kBAAkB,UAAU,WAAW,GAAG,OAAO;GAEpE,IAAI,CAAC,eAAe,CAAC,UAAU,OAAO;GAEtC,MAAM,OAAO,IAAI,IAAI,OAAO;GAE5B,IAAI,aAAa,KAAK,IAAI,QAAQ,WAAW;QACxC,KAAK,OAAO,MAAM;GAEvB,OAAO;EACT,CAAC;CACH,GAAG,CAAC,CAAC;CACL,MAAM,cAAc,cAAc,uBAAuB,aAAa,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;CAC/F,MAAM,uBAAuB,YAAY;CAEzC,gBAAgB;EACd,IAAI,CAAC,aAAa,YAAY,CAAC,aAAa,QAAQ;EAEpD,KAAK,MAAM,mBAAmB;CAChC,GAAG;EAAC;EAAM,aAAa;EAAU,aAAa;CAAM,CAAC;CAErD,sBAAsB;EACpB,IAAI,CAAC,sBAAsB,OAAO,KAAA;EAElC,qBAAqB,cAAc,WAAW;EAE9C,aAAa,qBAAqB,cAAc,IAAI;CACtD,GAAG;EAAC;EAAc;EAAa;CAAoB,CAAC;CAEpD,MAAM,eAAe,eACZ;EACL;EACA;EACA,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OAAO,oBAAC,qBAAD;EAAqB,OAAO;EAAe;CAA8B,CAAA;AAClF;AAEA,SAAS,kBAAkB,GAAgC,GAA6B;CACtF,OACE,GAAG,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE;AAEvG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"separator.js","names":[],"sources":["../../../../src/ui/menu/separator.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuContext } from './context';\n\nexport interface MenuSeparatorProps extends UIComponentProps<'div', MenuState> {}\n\n/** Visual divider between groups of items. Renders a `<div>` with `role=\"separator\"`. */\nexport const MenuSeparator = forwardRef<HTMLDivElement, MenuSeparatorProps>(function MenuSeparator(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { state } = useMenuContext();\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ role: 'separator' as const }, elementProps],\n }\n );\n});\n\nexport namespace MenuSeparator {\n export type Props = MenuSeparatorProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;AAUA,MAAa,gBAAgB,WAA+C,SAAS,cACnF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,UAAU,eAAe;CAEjC,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,MAAM,YAAqB,GAAG,YAAY;CACtD,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"trigger.js","names":[],"sources":["../../../../src/ui/menu/trigger.tsx"],"sourcesContent":["import type { MenuCore, MenuOptionState, MenuState } from '@videojs/core';\nimport { isMenuNavigationKey } from '@videojs/core/dom';\nimport { isInteractiveActivation } from '@videojs/utils/dom';\nimport { forwardRef, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { MenuTriggerChildContextProvider, useMenuContext } from './context';\nimport { callKeyDownHandler, preventMenuKeyDefault } from './keyboard';\n\ntype MenuTriggerElement = HTMLButtonElement | HTMLDivElement;\n\nexport interface MenuTriggerProps extends Omit<\n UIComponentProps<'button', MenuState>,\n 'type' | 'onClick' | 'onKeyDown'\n> {\n /** Disables the trigger. */\n disabled?: boolean;\n onClick?: React.MouseEventHandler<MenuTriggerElement>;\n onKeyDown?: React.KeyboardEventHandler<MenuTriggerElement>;\n}\n\n/**\n * Button that toggles the menu visibility. At root level renders a `<button>`. When inside a parent menu (as a submenu\n * trigger), renders as a `<div role=\"menuitem\">` that opens the submenu on click or ArrowRight.\n */\nexport const MenuTrigger = forwardRef<HTMLButtonElement | HTMLDivElement, MenuTriggerProps>(function MenuTrigger(\n { render, className, style, disabled, onClick, onKeyDown, ...elementProps },\n forwardedRef\n) {\n const { core, menu, parent, state, contentId, optionState } = useMenuContext();\n const resolvedDisabled = disabled || optionState?.disabled || false;\n const isSubMenuTrigger = parent !== null;\n const controlledId = state.open || state.status === 'ending' ? contentId : undefined;\n\n const elementRef = useRef<HTMLElement>(null);\n const triggerId = useSafeId('sub-trigger');\n\n const parentMenuApi = parent?.menu ?? null;\n\n // Register with the parent menu's item list when acting as a submenu trigger.\n useEffect(() => {\n if (!isSubMenuTrigger || !parentMenuApi) return;\n\n const element = elementRef.current;\n if (!element) return;\n\n menu.setTriggerElement(element);\n const unregister = parentMenuApi.registerItem(element);\n\n return () => {\n unregister();\n menu.setTriggerElement(null);\n };\n }, [isSubMenuTrigger, menu, parentMenuApi]);\n\n const openSubMenu = useCallback(() => {\n if (!resolvedDisabled) menu.open('click');\n }, [resolvedDisabled, menu]);\n\n const handleSubMenuClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event);\n\n if (event.defaultPrevented) return;\n\n openSubMenu();\n },\n [onClick, openSubMenu]\n );\n\n const handleSubMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const defaultPreventedByUser = callKeyDownHandler(onKeyDown, event);\n if (resolvedDisabled || defaultPreventedByUser) return;\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n openSubMenu();\n }\n },\n [resolvedDisabled, onKeyDown, openSubMenu]\n );\n\n const handlePointerEnter = useCallback(() => {\n const element = elementRef.current;\n if (!element || resolvedDisabled || !parentMenuApi) return;\n\n parentMenuApi.highlight(element, { focus: false, pointer: true });\n }, [resolvedDisabled, parentMenuApi]);\n\n // Root trigger mode — standard button that toggles the menu.\n const triggerRef = useCallback(\n (element: HTMLButtonElement | null) => {\n menu.setTriggerElement(element);\n },\n [menu]\n );\n\n const handleRootKeyDown = useCallback(\n (event: React.KeyboardEvent<MenuTriggerElement>) => {\n const defaultPreventedByUser = callKeyDownHandler(onKeyDown, event);\n\n if (resolvedDisabled || defaultPreventedByUser) {\n if (resolvedDisabled && isMenuNavigationKey(event)) event.preventDefault();\n\n return;\n }\n\n if (isInteractiveActivation(event.nativeEvent)) {\n event.preventDefault();\n menu.triggerProps.onClick(event.nativeEvent);\n return;\n }\n\n menu.triggerProps.onKeyDown(event);\n },\n [resolvedDisabled, menu.triggerProps, onKeyDown]\n );\n\n const rootTriggerProps = useMemo(\n () => ({\n onClick: resolvedDisabled\n ? (event: React.MouseEvent<HTMLElement>) => event.preventDefault()\n : menu.triggerProps.onClick,\n onKeyDown: handleRootKeyDown,\n }),\n [resolvedDisabled, handleRootKeyDown, menu.triggerProps]\n );\n\n // Submenu trigger mode — renders as a div with role=\"menuitem\"\n if (isSubMenuTrigger) {\n return (\n <MenuTriggerSubmenu\n render={render}\n className={className}\n style={style}\n disabled={resolvedDisabled}\n elementProps={elementProps}\n forwardedRef={forwardedRef}\n elementRef={elementRef}\n triggerId={triggerId}\n triggerAttrs={core.getTriggerAttrs(state, controlledId)}\n availability={optionState?.availability}\n hidden={optionState?.hidden}\n state={state}\n onSubMenuClick={handleSubMenuClick}\n onSubMenuKeyDown={handleSubMenuKeyDown}\n onPointerEnter={handlePointerEnter}\n />\n );\n }\n\n return (\n <MenuTriggerChildContextProvider value>\n {renderElement(\n 'button',\n { render, className, style },\n {\n state,\n ref: [forwardedRef as React.Ref<HTMLButtonElement>, triggerRef],\n props: [\n { type: 'button' as const, ...core.getTriggerAttrs(state, controlledId) },\n resolvedDisabled ? { disabled: true, 'aria-disabled': 'true' as const } : undefined,\n optionState ? { 'data-availability': optionState.availability } : undefined,\n state.open ? { onKeyDownCapture: preventMenuKeyDefault } : undefined,\n rootTriggerProps,\n elementProps,\n optionState?.hidden ? { hidden: true } : undefined,\n ],\n }\n )}\n </MenuTriggerChildContextProvider>\n );\n});\n\nexport namespace MenuTrigger {\n export type Props = MenuTriggerProps;\n export type State = MenuState;\n}\n\ninterface MenuTriggerSubmenuProps {\n render: MenuTriggerProps['render'];\n className: MenuTriggerProps['className'];\n style: MenuTriggerProps['style'];\n disabled: boolean | undefined;\n elementProps: Record<string, unknown>;\n forwardedRef: React.ForwardedRef<HTMLButtonElement | HTMLDivElement>;\n elementRef: React.RefObject<HTMLElement | null>;\n triggerId: string;\n triggerAttrs: ReturnType<MenuCore['getTriggerAttrs']>;\n availability: MenuOptionState['availability'] | undefined;\n hidden: boolean | undefined;\n state: MenuState;\n onSubMenuClick: (event: React.MouseEvent<HTMLDivElement>) => void;\n onSubMenuKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n onPointerEnter: () => void;\n}\n\nfunction MenuTriggerSubmenu({\n render,\n className,\n style,\n disabled,\n elementProps,\n forwardedRef,\n elementRef,\n triggerId,\n triggerAttrs,\n availability,\n hidden,\n state,\n onSubMenuClick,\n onSubMenuKeyDown,\n onPointerEnter,\n}: MenuTriggerSubmenuProps) {\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: [forwardedRef, elementRef as React.Ref<HTMLDivElement>],\n props: [\n {\n id: triggerId,\n role: 'menuitem' as const,\n ...triggerAttrs,\n 'aria-disabled': disabled ? true : undefined,\n 'data-availability': availability,\n 'data-has-submenu': '',\n onClick: onSubMenuClick,\n onKeyDownCapture: preventMenuKeyDefault,\n onKeyDown: onSubMenuKeyDown,\n onPointerEnter,\n },\n elementProps,\n hidden ? { hidden: true } : undefined,\n ],\n }\n );\n}\n"],"mappings":";;;;;;;;;;;;;AA2BA,MAAa,cAAc,WAAiE,SAAS,YACnG,EAAE,QAAQ,WAAW,OAAO,UAAU,SAAS,WAAW,GAAG,gBAC7D,cACA;CACA,MAAM,EAAE,MAAM,MAAM,QAAQ,OAAO,WAAW,gBAAgB,eAAe;CAC7E,MAAM,mBAAmB,YAAY,aAAa,YAAY;CAC9D,MAAM,mBAAmB,WAAW;CACpC,MAAM,eAAe,MAAM,QAAQ,MAAM,WAAW,WAAW,YAAY,KAAA;CAE3E,MAAM,aAAa,OAAoB,IAAI;CAC3C,MAAM,YAAY,UAAU,aAAa;CAEzC,MAAM,gBAAgB,QAAQ,QAAQ;CAGtC,gBAAgB;EACd,IAAI,CAAC,oBAAoB,CAAC,eAAe;EAEzC,MAAM,UAAU,WAAW;EAC3B,IAAI,CAAC,SAAS;EAEd,KAAK,kBAAkB,OAAO;EAC9B,MAAM,aAAa,cAAc,aAAa,OAAO;EAErD,aAAa;GACX,WAAW;GACX,KAAK,kBAAkB,IAAI;EAC7B;CACF,GAAG;EAAC;EAAkB;EAAM;CAAa,CAAC;CAE1C,MAAM,cAAc,kBAAkB;EACpC,IAAI,CAAC,kBAAkB,KAAK,KAAK,OAAO;CAC1C,GAAG,CAAC,kBAAkB,IAAI,CAAC;CAE3B,MAAM,qBAAqB,aACxB,UAA4C;EAC3C,UAAU,KAAK;EAEf,IAAI,MAAM,kBAAkB;EAE5B,YAAY;CACd,GACA,CAAC,SAAS,WAAW,CACvB;CAEA,MAAM,uBAAuB,aAC1B,UAA+C;EAC9C,MAAM,yBAAyB,mBAAmB,WAAW,KAAK;EAClE,IAAI,oBAAoB,wBAAwB;EAEhD,IAAI,MAAM,QAAQ,cAAc;GAC9B,MAAM,eAAe;GACrB,YAAY;EACd;CACF,GACA;EAAC;EAAkB;EAAW;CAAW,CAC3C;CAEA,MAAM,qBAAqB,kBAAkB;EAC3C,MAAM,UAAU,WAAW;EAC3B,IAAI,CAAC,WAAW,oBAAoB,CAAC,eAAe;EAEpD,cAAc,UAAU,SAAS;GAAE,OAAO;GAAO,SAAS;EAAK,CAAC;CAClE,GAAG,CAAC,kBAAkB,aAAa,CAAC;CAGpC,MAAM,aAAa,aAChB,YAAsC;EACrC,KAAK,kBAAkB,OAAO;CAChC,GACA,CAAC,IAAI,CACP;CAEA,MAAM,oBAAoB,aACvB,UAAmD;EAClD,MAAM,yBAAyB,mBAAmB,WAAW,KAAK;EAElE,IAAI,oBAAoB,wBAAwB;GAC9C,IAAI,oBAAoB,oBAAoB,KAAK,GAAG,MAAM,eAAe;GAEzE;EACF;EAEA,IAAI,wBAAwB,MAAM,WAAW,GAAG;GAC9C,MAAM,eAAe;GACrB,KAAK,aAAa,QAAQ,MAAM,WAAW;GAC3C;EACF;EAEA,KAAK,aAAa,UAAU,KAAK;CACnC,GACA;EAAC;EAAkB,KAAK;EAAc;CAAS,CACjD;CAEA,MAAM,mBAAmB,eAChB;EACL,SAAS,oBACJ,UAAyC,MAAM,eAAe,IAC/D,KAAK,aAAa;EACtB,WAAW;CACb,IACA;EAAC;EAAkB;EAAmB,KAAK;CAAY,CACzD;CAGA,IAAI,kBACF,OACE,oBAAC,oBAAD;EACU;EACG;EACJ;EACP,UAAU;EACI;EACA;EACF;EACD;EACX,cAAc,KAAK,gBAAgB,OAAO,YAAY;EACtD,cAAc,aAAa;EAC3B,QAAQ,aAAa;EACd;EACP,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;CACjB,CAAA;CAIL,OACE,oBAAC,iCAAD;EAAiC,OAAA;EAC9B,UAAA,cACC,UACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,KAAK,CAAC,cAA8C,UAAU;GAC9D,OAAO;IACL;KAAE,MAAM;KAAmB,GAAG,KAAK,gBAAgB,OAAO,YAAY;IAAE;IACxE,mBAAmB;KAAE,UAAU;KAAM,iBAAiB;IAAgB,IAAI,KAAA;IAC1E,cAAc,EAAE,qBAAqB,YAAY,aAAa,IAAI,KAAA;IAClE,MAAM,OAAO,EAAE,kBAAkB,sBAAsB,IAAI,KAAA;IAC3D;IACA;IACA,aAAa,SAAS,EAAE,QAAQ,KAAK,IAAI,KAAA;GAC3C;EACF,CACF;CAC+B,CAAA;AAErC,CAAC;AAyBD,SAAS,mBAAmB,EAC1B,QACA,WACA,OACA,UACA,cACA,cACA,YACA,WACA,cACA,cACA,QACA,OACA,gBACA,kBACA,kBAC0B;CAC1B,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,cAAc,UAAuC;EAC3D,OAAO;GACL;IACE,IAAI;IACJ,MAAM;IACN,GAAG;IACH,iBAAiB,WAAW,OAAO,KAAA;IACnC,qBAAqB;IACrB,oBAAoB;IACpB,SAAS;IACT,kBAAkB;IAClB,WAAW;IACX;GACF;GACA;GACA,SAAS,EAAE,QAAQ,KAAK,IAAI,KAAA;EAC9B;CACF,CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-menu-group.js","names":[],"sources":["../../../../src/ui/menu/use-menu-group.tsx"],"sourcesContent":["import { type ReactElement, useCallback, useMemo, useState } from 'react';\n\nimport { MenuGroupContextProvider } from './context';\n\ninterface MenuGroupProviderProps {\n children: (labelId: string | undefined) => ReactElement | null;\n}\n\ninterface MenuGroupElementProps {\n 'aria-label'?: unknown;\n 'aria-labelledby'?: unknown;\n}\n\nfunction hasExplicitLabel(elementProps: MenuGroupElementProps): boolean {\n return elementProps['aria-label'] !== undefined || elementProps['aria-labelledby'] !== undefined;\n}\n\nexport function getMenuGroupProps(\n labelId: string | undefined,\n elementProps: MenuGroupElementProps\n): { role: 'group'; 'aria-labelledby'?: string | undefined } {\n return {\n role: 'group',\n 'aria-labelledby': hasExplicitLabel(elementProps) ? undefined : labelId,\n };\n}\n\nexport function MenuGroupProvider({ children }: MenuGroupProviderProps): ReactElement | null {\n const [labelId, setLabelId] = useState<string>();\n\n const registerLabel = useCallback((id: string) => {\n setLabelId(id);\n\n return () => {\n setLabelId((current) => (current === id ? undefined : current));\n };\n }, []);\n\n const value = useMemo(() => ({ registerLabel }), [registerLabel]);\n\n return <MenuGroupContextProvider value={value}>{children(labelId)}</MenuGroupContextProvider>;\n}\n"],"mappings":";;;;AAaA,SAAS,iBAAiB,cAA8C;CACtE,OAAO,aAAa,kBAAkB,KAAA,KAAa,aAAa,uBAAuB,KAAA;AACzF;AAEA,SAAgB,kBACd,SACA,cAC2D;CAC3D,OAAO;EACL,MAAM;EACN,mBAAmB,iBAAiB,YAAY,IAAI,KAAA,IAAY;CAClE;AACF;AAEA,SAAgB,kBAAkB,EAAE,YAAyD;CAC3F,MAAM,CAAC,SAAS,cAAc,SAAiB;CAE/C,MAAM,gBAAgB,aAAa,OAAe;EAChD,WAAW,EAAE;EAEb,aAAa;GACX,YAAY,YAAa,YAAY,KAAK,KAAA,IAAY,OAAQ;EAChE;CACF,GAAG,CAAC,CAAC;CAEL,MAAM,QAAQ,eAAe,EAAE,cAAc,IAAI,CAAC,aAAa,CAAC;CAEhE,OAAO,oBAAC,0BAAD;EAAiC;EAAQ,UAAA,SAAS,OAAO;CAA4B,CAAA;AAC9F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/mute-button/component.tsx"],"sourcesContent":["import { MuteButtonCore, MuteButtonDataAttrs } from '@videojs/core';\nimport { selectVolume } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface MuteButtonProps extends UIComponentProps<'button', MuteButtonCore.State>, MuteButtonCore.Props {}\n\n/** A button that toggles mute state. */\nexport const MuteButton = createMediaButton<MuteButtonCore, MuteButtonProps>({\n displayName: 'MuteButton',\n core: MuteButtonCore,\n stateAttrMap: MuteButtonDataAttrs,\n selector: selectVolume,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'toggleMuted',\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace MuteButton {\n export type Props = MuteButtonProps;\n export type State = MuteButtonCore.State;\n}\n"],"mappings":";;;;;AASA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;CACd,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/pip-button/component.tsx"],"sourcesContent":["import { PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { selectPiP } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PiPButtonProps extends UIComponentProps<'button', PiPButtonCore.State>, PiPButtonCore.Props {}\n\n/** A button that toggles picture-in-picture. */\nexport const PiPButton = createMediaButton<PiPButtonCore, PiPButtonProps>({\n displayName: 'PiPButton',\n core: PiPButtonCore,\n stateAttrMap: PiPButtonDataAttrs,\n selector: selectPiP,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'togglePictureInPicture',\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace PiPButton {\n export type Props = PiPButtonProps;\n export type State = PiPButtonCore.State;\n}\n"],"mappings":";;;;;AASA,MAAa,YAAY,kBAAiD;CACxE,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;CACd,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/play-button/component.tsx"],"sourcesContent":["import { PlayButtonCore, PlayButtonDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PlayButtonProps extends UIComponentProps<'button', PlayButtonCore.State>, PlayButtonCore.Props {}\n\n/**\n * A button that toggles playback.\n *\n * @example\n * ```tsx\n * <PlayButton />\n *\n * <PlayButton\n * render={(props, state) => (\n * <button {...props}>\n * {state.paused ? <PlayIcon /> : <PauseIcon />}\n * </button>\n * )}\n * />\n * ```;\n */\nexport const PlayButton = createMediaButton<PlayButtonCore, PlayButtonProps>({\n displayName: 'PlayButton',\n core: PlayButtonCore,\n stateAttrMap: PlayButtonDataAttrs,\n selector: selectPlayback,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'togglePaused',\n});\n\nexport namespace PlayButton {\n export type Props = PlayButtonProps;\n export type State = PlayButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwBA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-playback-rate-options.js","names":["PlaybackRateRadioGroupCoreClass"],"sources":["../../../../src/ui/playback-rate/use-playback-rate-options.ts"],"sourcesContent":["import {\n type PlaybackRateRadioGroupCore,\n PlaybackRateRadioGroupCore as PlaybackRateRadioGroupCoreClass,\n type PlaybackRateRadioGroupOption,\n} from '@videojs/core';\nimport { selectPlaybackRate } from '@videojs/core/dom';\nimport { useCallback } from 'react';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface PlaybackRateOptionsProps extends PlaybackRateRadioGroupCore.Props {}\n\nexport type PlaybackRateOption = TranslatedRadioOption<PlaybackRateRadioGroupOption>;\n\nexport interface PlaybackRateOptionsResult {\n state: PlaybackRateRadioGroupCore.State;\n label: string;\n rate: number;\n value: string;\n selectedLabel: string;\n options: PlaybackRateOption[];\n disabled: boolean;\n hidden: boolean;\n setRate: (rate: number) => void;\n setValue: (value: string) => void;\n}\n\nconst usePlaybackRateRadioOptions = createRadioOptionsHook({\n name: 'usePlaybackRateOptions',\n feature: 'playbackRate',\n selector: selectPlaybackRate,\n createCore: () => new PlaybackRateRadioGroupCoreClass(),\n});\n\n/**\n * Create playback rate menu options from the player playback rate state. Returns `null` when the playback rate feature\n * is not configured.\n *\n * @param props - Optional `label`, `formatRate`, and `disabled` overrides.\n */\nexport function usePlaybackRateOptions(props?: PlaybackRateOptionsProps): PlaybackRateOptionsResult | null {\n const result = usePlaybackRateRadioOptions(props);\n const setRate = useCallback((rate: number) => result?.setValue(String(rate)), [result?.setValue]);\n\n if (!result) return null;\n\n return {\n ...result,\n rate: result.state.rate,\n setRate,\n };\n}\n\nexport namespace usePlaybackRateOptions {\n export type Props = PlaybackRateOptionsProps;\n export type Result = PlaybackRateOptionsResult;\n export type Option = PlaybackRateOption;\n}\n"],"mappings":";;;;;AA2BA,MAAM,8BAA8B,uBAAuB;CACzD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAIA,2BAAgC;AACxD,CAAC;;;;;;;AAQD,SAAgB,uBAAuB,OAAoE;CACzG,MAAM,SAAS,4BAA4B,KAAK;CAChD,MAAM,UAAU,aAAa,SAAiB,QAAQ,SAAS,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC;CAEhG,IAAI,CAAC,QAAQ,OAAO;CAEpB,OAAO;EACL,GAAG;EACH,MAAM,OAAO,MAAM;EACnB;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/playback-rate-button/component.tsx"],"sourcesContent":["import { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PlaybackRateButtonProps\n extends UIComponentProps<'button', PlaybackRateButtonCore.State>, PlaybackRateButtonCore.Props {}\n\n/**\n * A button that cycles through playback rates.\n *\n * @example\n * ```tsx\n * <PlaybackRateButton />\n *\n * <PlaybackRateButton\n * render={(props, state) => (\n * <button {...props}>\n * {state.rate}&times;\n * </button>\n * )}\n * />\n * ```;\n */\nexport const PlaybackRateButton = createMediaButton<PlaybackRateButtonCore, PlaybackRateButtonProps>({\n displayName: 'PlaybackRateButton',\n core: PlaybackRateButtonCore,\n stateAttrMap: PlaybackRateButtonDataAttrs,\n selector: selectPlaybackRate,\n action: (core, state) => core.cycle(state),\n hotkeyAction: 'speedUp',\n});\n\nexport namespace PlaybackRateButton {\n export type Props = PlaybackRateButtonProps;\n export type State = PlaybackRateButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,MAAa,qBAAqB,kBAAmE;CACnG,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,MAAM,KAAK;CACzC,cAAc;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/playback-rate-radio-group/component.tsx"],"sourcesContent":["import { type MenuOptionState, type PlaybackRateRadioGroupCore, PlaybackRateRadioGroupDataAttrs } from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { ReactElement, ReactNode } from 'react';\nimport { createContext, Fragment, forwardRef, useContext } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuOptionState } from '../menu/context';\nimport { MenuRadioGroup } from '../menu/radio-group';\nimport type { MenuRadioItemProps } from '../menu/radio-item';\nimport {\n type PlaybackRateOption,\n type PlaybackRateOptionsProps,\n type PlaybackRateOptionsResult,\n usePlaybackRateOptions,\n} from '../playback-rate';\n\nexport type PlaybackRateRadioGroupItemState = PlaybackRateOption & {\n /** Whether this playback rate is currently selected. */\n checked: boolean;\n};\n\nexport interface PlaybackRateRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Playback rate represented by the item. */\n 'data-rate': string;\n}\n\nexport interface PlaybackRateRadioGroupRootProps extends PlaybackRateOptionsProps {\n children?: ReactNode;\n}\n\nexport interface PlaybackRateRadioGroupOptionsProps extends Omit<\n UIComponentProps<'div', PlaybackRateRadioGroupCore.State>,\n 'children'\n> {\n /** Render one consumer-owned menu radio item for every playback rate. */\n renderItem: (props: PlaybackRateRadioGroupItemProps, state: PlaybackRateRadioGroupItemState) => ReactElement;\n}\n\nexport type PlaybackRateRadioGroupValueProps = UIComponentProps<'span', PlaybackRateOptionsResult>;\n\nexport interface PlaybackRateRadioGroupLegacyProps\n extends PlaybackRateRadioGroupOptionsProps, PlaybackRateOptionsProps {}\n\nconst PlaybackRateRadioGroupContext = createContext<PlaybackRateOptionsResult | null | undefined>(undefined);\n\n/** Owns playback-rate option state and shares it with an enclosing menu. Does not render a DOM element. */\nexport function PlaybackRateRadioGroupRoot({ children, ...props }: PlaybackRateRadioGroupRootProps): ReactNode {\n const playbackRate = usePlaybackRateOptions(props);\n\n useMenuOptionState(toMenuOptionState(playbackRate));\n\n return (\n <PlaybackRateRadioGroupContext.Provider value={playbackRate}>{children}</PlaybackRateRadioGroupContext.Provider>\n );\n}\n\n/** Displays the selected playback-rate label. */\nexport const PlaybackRateRadioGroupValue = forwardRef<HTMLSpanElement, PlaybackRateRadioGroupValueProps>(\n function PlaybackRateRadioGroupValue({ render, className, style, ...elementProps }, forwardedRef) {\n const playbackRate = usePlaybackRateRadioGroupContext();\n if (!playbackRate) return null;\n\n return renderElement(\n 'span',\n { render, className, style },\n { state: playbackRate, ref: forwardedRef, props: [elementProps, { children: playbackRate.selectedLabel }] }\n );\n }\n);\n\n/** Renders menu radio items for the player's available playback rates. */\nexport const PlaybackRateRadioGroupOptions = forwardRef<HTMLDivElement, PlaybackRateRadioGroupOptionsProps>(\n function PlaybackRateRadioGroupOptions(componentProps, forwardedRef) {\n const {\n renderItem,\n render,\n className,\n style,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledBy,\n ...elementProps\n } = componentProps;\n const playbackRate = usePlaybackRateRadioGroupContext();\n if (!playbackRate) return null;\n\n const { state, value, options, setValue } = playbackRate;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? playbackRate.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, PlaybackRateRadioGroupDataAttrs)}\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-rate': option.value,\n children: option.label,\n },\n itemState\n )}\n </Fragment>\n );\n })}\n </MenuRadioGroup>\n );\n }\n);\n\n/** @internal Compatibility adapter for the existing preset sources. */\nexport const PlaybackRateRadioGroupLegacy = forwardRef<HTMLDivElement, PlaybackRateRadioGroupLegacyProps>(\n function PlaybackRateRadioGroupLegacy({ label, formatRate, disabled, ...props }, forwardedRef) {\n return (\n <PlaybackRateRadioGroupRoot label={label} formatRate={formatRate} disabled={disabled}>\n <PlaybackRateRadioGroupOptions {...props} ref={forwardedRef} />\n </PlaybackRateRadioGroupRoot>\n );\n }\n);\n\nfunction usePlaybackRateRadioGroupContext(): PlaybackRateOptionsResult | null {\n const playbackRate = useContext(PlaybackRateRadioGroupContext);\n\n if (playbackRate === undefined) {\n throw new Error('PlaybackRateRadioGroup parts must be used within PlaybackRateRadioGroup.Root');\n }\n\n return playbackRate;\n}\n\nfunction toMenuOptionState(playbackRate: PlaybackRateOptionsResult | null): MenuOptionState {\n return {\n value: playbackRate?.selectedLabel ?? '',\n disabled: playbackRate?.disabled ?? true,\n hidden: playbackRate?.hidden ?? true,\n availability: playbackRate?.state.availability ?? 'unsupported',\n };\n}\n\nexport namespace PlaybackRateRadioGroupRoot {\n export type Props = PlaybackRateRadioGroupRootProps;\n}\n\nexport namespace PlaybackRateRadioGroupValue {\n export type Props = PlaybackRateRadioGroupValueProps;\n export type State = PlaybackRateOptionsResult;\n}\n\nexport namespace PlaybackRateRadioGroupOptions {\n export type Props = PlaybackRateRadioGroupOptionsProps;\n export type State = PlaybackRateRadioGroupCore.State;\n export type ItemProps = PlaybackRateRadioGroupItemProps;\n export type ItemState = PlaybackRateRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;AA6CA,MAAM,gCAAgC,cAA4D,KAAA,CAAS;;AAG3G,SAAgB,2BAA2B,EAAE,UAAU,GAAG,SAAqD;CAC7G,MAAM,eAAe,uBAAuB,KAAK;CAEjD,mBAAmB,kBAAkB,YAAY,CAAC;CAElD,OACE,oBAAC,8BAA8B,UAA/B;EAAwC,OAAO;EAAe;CAAiD,CAAA;AAEnH;;AAGA,MAAa,8BAA8B,WACzC,SAAS,4BAA4B,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAAgB,cAAc;CAChG,MAAM,eAAe,iCAAiC;CACtD,IAAI,CAAC,cAAc,OAAO;CAE1B,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EAAE,OAAO;EAAc,KAAK;EAAc,OAAO,CAAC,cAAc,EAAE,UAAU,aAAa,cAAc,CAAC;CAAE,CAC5G;AACF,CACF;;AAGA,MAAa,gCAAgC,WAC3C,SAAS,8BAA8B,gBAAgB,cAAc;CACnE,MAAM,EACJ,YACA,QACA,WACA,OACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,eAAe,iCAAiC;CACtD,IAAI,CAAC,cAAc,OAAO;CAE1B,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,aAAa,QAAQ,KAAA;CAExF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,+BAA+B;EAC5D,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,aAAa,OAAO;IACpB,UAAU,OAAO;GACnB,GACA,SACF,EACQ,GAVK,OAAO,KAUZ;EAEd,CAAC;CACa,CAAA;AAEpB,CACF;;AAGA,MAAa,+BAA+B,WAC1C,SAAS,6BAA6B,EAAE,OAAO,YAAY,UAAU,GAAG,SAAS,cAAc;CAC7F,OACE,oBAAC,4BAAD;EAAmC;EAAmB;EAAsB;EAC1E,UAAA,oBAAC,+BAAD;GAA+B,GAAI;GAAO,KAAK;EAAe,CAAA;CACpC,CAAA;AAEhC,CACF;AAEA,SAAS,mCAAqE;CAC5E,MAAM,eAAe,WAAW,6BAA6B;CAE7D,IAAI,iBAAiB,KAAA,GACnB,MAAM,IAAI,MAAM,8EAA8E;CAGhG,OAAO;AACT;AAEA,SAAS,kBAAkB,cAAiE;CAC1F,OAAO;EACL,OAAO,cAAc,iBAAiB;EACtC,UAAU,cAAc,YAAY;EACpC,QAAQ,cAAc,UAAU;EAChC,cAAc,cAAc,MAAM,gBAAgB;CACpD;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/playback-rate-radio-group/index.parts.ts"],"sourcesContent":["export {\n type PlaybackRateRadioGroupItemProps as ItemProps,\n type PlaybackRateRadioGroupItemState as ItemState,\n PlaybackRateRadioGroupOptions as Options,\n type PlaybackRateRadioGroupOptionsProps as OptionsProps,\n PlaybackRateRadioGroupRoot as Root,\n type PlaybackRateRadioGroupRootProps as RootProps,\n PlaybackRateRadioGroupValue as Value,\n type PlaybackRateRadioGroupValueProps as ValueProps,\n} from './component';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"arrow.js","names":[],"sources":["../../../../src/ui/popover/arrow.tsx"],"sourcesContent":["import type { PopoverState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { usePopoverContext } from './context';\n\nexport interface PopoverArrowProps extends UIComponentProps<'div', PopoverState> {}\n\n/** Decorative arrow pointing from the popup toward the trigger. Hidden from assistive technology. */\nexport const PopoverArrow = createContextPart<PopoverArrowProps, PopoverState>({\n displayName: 'PopoverArrow',\n tag: 'div',\n useContext: usePopoverContext,\n staticProps: { 'aria-hidden': 'true' as const },\n});\n\nexport namespace PopoverArrow {\n export type Props = PopoverArrowProps;\n export type State = PopoverState;\n}\n"],"mappings":";;;;AASA,MAAa,eAAe,kBAAmD;CAC7E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,aAAa,EAAE,eAAe,OAAgB;AAChD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/popover/context.tsx"],"sourcesContent":["import type { PopoverCore, StateAttrMap } from '@videojs/core';\nimport type { MediaContainer, PopoverApi, PositioningBoundary } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface PopoverContextValue {\n core: PopoverCore;\n popover: PopoverApi;\n state: PopoverCore.State;\n preferredSide: PopoverCore.State['side'];\n setPositionedSide: (side: PopoverCore.State['side']) => void;\n stateAttrMap: StateAttrMap<PopoverCore.State>;\n anchorName: string;\n popupId: string;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\n\nexport const PopoverContextProvider = PopoverContext.Provider;\n\n/** Returns the current popover compound-component context. Throws outside `Popover.Root`. */\nexport function usePopoverContext(): PopoverContextValue {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error('Popover compound components must be used within a Popover.Root');\n\n return ctx;\n}\n"],"mappings":";;AAiBA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,yBAAyB,eAAe;;AAGrD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,cAAc;CACrC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,gEAAgE;CAE1F,OAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/popover/index.parts.ts"],"sourcesContent":["export { PopoverArrow as Arrow, type PopoverArrowProps as ArrowProps } from './arrow';\nexport { PopoverPopup as Popup, type PopoverPopupProps as PopupProps } from './popup';\nexport { PopoverRoot as Root, type PopoverRootProps as RootProps } from './root';\nexport { PopoverTrigger as Trigger, type PopoverTriggerProps as TriggerProps } from './trigger';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popup.js","names":[],"sources":["../../../../src/ui/popover/popup.tsx"],"sourcesContent":["import type { PopoverState } from '@videojs/core';\nimport { forwardRef, useCallback, useMemo, useRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { usePopoverContext } from './context';\nimport { usePopupPosition } from './use-popup-position';\n\nexport interface PopoverPopupProps extends UIComponentProps<'div', PopoverState> {}\n\n/**\n * Container for the popover content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript\n * fallback.\n */\nexport const PopoverPopup = forwardRef<HTMLDivElement, PopoverPopupProps>(function PopoverPopup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const {\n core,\n popover,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap,\n anchorName,\n popupId,\n boundary,\n container,\n } = usePopoverContext();\n const internalRef = useRef<HTMLDivElement>(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n popover.setPopupElement(el);\n },\n [popover]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: preferredSide, align: state.align }), [preferredSide, state.align]);\n\n const positioningStyle = usePopupPosition({\n open: state.open,\n anchorName,\n position: posOpts,\n triggerSource: popover,\n popupRef: internalRef,\n boundary,\n container,\n onSideChange: setPositionedSide,\n });\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n // Remap DOM focus events to React synthetic event names.\n const { onFocusOut, ...restPopupProps } = popover.popupProps;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [\n {\n id: popupId,\n style: positioningStyle,\n ...core.getPopupAttrs(state),\n },\n { ...restPopupProps, onBlur: onFocusOut },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace PopoverPopup {\n export type Props = PopoverPopupProps;\n export type State = PopoverState;\n}\n"],"mappings":";;;;;;;;;;AAeA,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EACJ,MACA,SACA,OACA,eACA,mBACA,cACA,YACA,SACA,UACA,cACE,kBAAkB;CACtB,MAAM,cAAc,OAAuB,IAAI;CAE/C,MAAM,WAAW,aACd,OAA8B;EAC7B,QAAQ,gBAAgB,EAAE;CAC5B,GACA,CAAC,OAAO,CACV;CAEA,MAAM,cAAc,gBAAgB,cAAc,UAAU,WAAW;CAIvE,MAAM,UAAU,eAAe;EAAE,MAAM;EAAe,OAAO,MAAM;CAAM,IAAI,CAAC,eAAe,MAAM,KAAK,CAAC;CAEzG,MAAM,mBAAmB,iBAAiB;EACxC,MAAM,MAAM;EACZ;EACA,UAAU;EACV,eAAe;EACf,UAAU;EACV;EACA;EACA,cAAc;CAChB,CAAC;CAID,IAAI,CAAC,MAAM,MACT,OAAO;CAIT,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;CAElD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,KAAK;GAC7B;GACA;IAAE,GAAG;IAAgB,QAAQ;GAAW;GACxC;EACF;CACF,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/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 Omit<CorePopoverProps, 'boundary'> {\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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"trigger.js","names":[],"sources":["../../../../src/ui/popover/trigger.tsx"],"sourcesContent":["import type { PopoverState } from '@videojs/core';\nimport { forwardRef, useCallback } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { usePopoverContext } from './context';\n\nexport interface PopoverTriggerProps extends UIComponentProps<'button', PopoverState> {}\n\n/** Button that toggles the popover visibility. Renders a `<button>` element. */\nexport const PopoverTrigger = forwardRef<HTMLButtonElement, PopoverTriggerProps>(function PopoverTrigger(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { core, popover, state, stateAttrMap, popupId } = usePopoverContext();\n const controlledId = state.open ? popupId : undefined;\n\n const triggerRef = useCallback(\n (el: HTMLButtonElement | null) => {\n popover.setTriggerElement(el);\n },\n [popover]\n );\n\n // Remap DOM focus events to React synthetic event names.\n // createPopover() uses onFocusIn/onFocusOut (matching DOM focusin/focusout),\n // but React maps those to onFocus/onBlur.\n const { onFocusIn, onFocusOut, ...restTriggerProps } = popover.triggerProps;\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef, triggerRef],\n props: [\n {\n type: 'button' as const,\n ...core.getTriggerAttrs(state, controlledId),\n },\n { ...restTriggerProps, onFocus: onFocusIn, onBlur: onFocusOut },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace PopoverTrigger {\n export type Props = PopoverTriggerProps;\n export type State = PopoverState;\n}\n"],"mappings":";;;;;AAUA,MAAa,iBAAiB,WAAmD,SAAS,eACxF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,MAAM,SAAS,OAAO,cAAc,YAAY,kBAAkB;CAC1E,MAAM,eAAe,MAAM,OAAO,UAAU,KAAA;CAE5C,MAAM,aAAa,aAChB,OAAiC;EAChC,QAAQ,kBAAkB,EAAE;CAC9B,GACA,CAAC,OAAO,CACV;CAKA,MAAM,EAAE,WAAW,YAAY,GAAG,qBAAqB,QAAQ;CAE/D,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,cAAc,UAAU;EAC9B,OAAO;GACL;IACE,MAAM;IACN,GAAG,KAAK,gBAAgB,OAAO,YAAY;GAC7C;GACA;IAAE,GAAG;IAAkB,SAAS;IAAW,QAAQ;GAAW;GAC9D;EACF;CACF,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/poster/context.tsx"],"sourcesContent":["import { type PosterImageLoadState, type PosterState } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface PosterContextValue {\n state: PosterState;\n setImageLoadState: (state: PosterImageLoadState) => void;\n}\n\nconst PosterContext = createContext<PosterContextValue | null>(null);\n\nexport function PosterProvider({ value, children }: ProviderProps<PosterContextValue>) {\n return <PosterContext.Provider value={value}>{children}</PosterContext.Provider>;\n}\n\nexport function usePosterContext(): PosterContextValue {\n const ctx = useContext(PosterContext);\n if (!ctx) throw new Error('Poster compound components must be used within a Poster.Root');\n\n return ctx;\n}\n"],"mappings":";;;;AAQA,MAAM,gBAAgB,cAAyC,IAAI;AAEnE,SAAgB,eAAe,EAAE,OAAO,YAA+C;CACrF,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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.js","names":[],"sources":["../../../../src/ui/poster/image.tsx"],"sourcesContent":["import type { PosterCore, PosterImageLoadState } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { usePosterContext } from './context';\n\nexport interface PosterImageProps 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 poster image managed by `Poster.Root`.\n *\n * Renders an `img`, so `srcSet`, `sizes`, `loading`, and the rest of the native image attributes remain available.\n * Leave the source off and the player's resolved poster fills it in. The image is decorative unless you supply `alt`.\n */\nexport const PosterImage = forwardRef(function PosterImage(\n componentProps: PosterImageProps,\n forwardedRef: ForwardedRef<HTMLImageElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state, setImageLoadState } = usePosterContext();\n\n const { src: authoredSrc, srcSet: authoredSrcSet } = elementProps;\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 ? state.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 didCheckInitialImageRef = useRef(false);\n const requested = useLatestRef({ src, srcSet: authoredSrcSet });\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 // Before paint, so the root's first frame already carries `data-loading` for a\n // source that is resolving instead of flashing the layers keyed off that state.\n // The reset lives in the same effect: a passive cleanup would run after this\n // layout write when Strict Mode re-runs effects, leaving the root at `none`.\n useLayoutEffect(() => {\n setImageLoadState(loadState);\n\n return () => setImageLoadState('none');\n }, [authoredSrcSet, loadState, setImageLoadState, src]);\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 // The check rides on the ref, so an override that renders nothing until a\n // source resolves is still read the moment its image mounts.\n const checkInitialImage = useCallback(\n (img: HTMLImageElement | null) => {\n if (!img || didCheckInitialImageRef.current) return;\n\n didCheckInitialImageRef.current = true;\n\n const { src, srcSet } = requested.current;\n\n if (img.naturalWidth > 0) setRequest({ src, srcSet, state: 'loaded' });\n else if (img.complete && (img.getAttribute('src') || img.hasAttribute('srcset'))) {\n setRequest({ src, srcSet, state: 'error' });\n }\n },\n [requested]\n );\n const ref = useComposedRefs(forwardedRef, checkInitialImage);\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 = () => setRequest({ src, srcSet: authoredSrcSet, state: 'loaded' });\n const handleError = () => setRequest({ src, srcSet: authoredSrcSet, state: 'error' });\n\n return renderElement(\n 'img',\n { render, className, style },\n {\n state,\n ref,\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 PosterImage {\n export type Props = PosterImageProps;\n}\n"],"mappings":";;;;;;;;;;;;AAyBA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,OAAO,sBAAsB,iBAAiB;CAEtD,MAAM,EAAE,KAAK,aAAa,QAAQ,mBAAmB;CAKrD,MAAM,MAAM,gBAAgB,mBAAmB,KAAA,IAAY,MAAM,MAAM;CAEvE,MAAM,mBAAyC,CAAC,OAAO,mBAAmB,KAAA,IAAY,SAAS;CAC/F,MAAM,CAAC,SAAS,cAAc,gBAA8B;EAC1D;EACA,QAAQ;EACR,OAAO;CACT,EAAE;CACF,MAAM,0BAA0B,OAAO,KAAK;CAC5C,MAAM,YAAY,aAAa;EAAE;EAAK,QAAQ;CAAe,CAAC;CAM9D,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;CAMnD,sBAAsB;EACpB,kBAAkB,SAAS;EAE3B,aAAa,kBAAkB,MAAM;CACvC,GAAG;EAAC;EAAgB;EAAW;EAAmB;CAAG,CAAC;CActD,MAAM,oBAAoB,aACvB,QAAiC;EAChC,IAAI,CAAC,OAAO,wBAAwB,SAAS;EAE7C,wBAAwB,UAAU;EAElC,MAAM,EAAE,KAAK,WAAW,UAAU;EAElC,IAAI,IAAI,eAAe,GAAG,WAAW;GAAE;GAAK;GAAQ,OAAO;EAAS,CAAC;OAChE,IAAI,IAAI,aAAa,IAAI,aAAa,KAAK,KAAK,IAAI,aAAa,QAAQ,IAC5E,WAAW;GAAE;GAAK;GAAQ,OAAO;EAAQ,CAAC;CAE9C,GACA,CAAC,SAAS,CACZ;CACA,MAAM,MAAM,gBAAgB,cAAc,iBAAiB;CAI3D,MAAM,mBAAmB,WAAW;EAAE;EAAK,QAAQ;EAAgB,OAAO;CAAS,CAAC;CACpF,MAAM,oBAAoB,WAAW;EAAE;EAAK,QAAQ;EAAgB,OAAO;CAAQ,CAAC;CAEpF,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,OAAO;GACL,EAAE,KAAK,GAAG;GACV;GACA;IAEE,KAAK,OAAO,KAAA;IACZ,QAAQ;IACR,SAAS;GACX;EACF;CACF,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/poster/index.parts.ts"],"sourcesContent":["export { PosterImage as Image, type PosterImageProps as ImageProps } from './image';\nexport { PosterRoot as Root, type PosterRootProps as RootProps } from './root';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/poster/root.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, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { PosterProvider } from './context';\n\nexport interface PosterRootProps extends UIComponentProps<'div', PosterCore.State> {}\n\n/**\n * Manages poster visibility and image loading state.\n *\n * Renders a `div` and exposes `data-visible`, `data-loading`, `data-loaded`, and `data-error` for styling every layer\n * in the poster presentation. Render `Poster.Image` inside it for the image that supplies the loading lifecycle.\n */\nexport const PosterRoot = forwardRef(function PosterRoot(\n componentProps: PosterRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\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 const [reportedLoadState, setImageLoadState] = useState<PosterImageLoadState | null>(null);\n\n if (!playback) {\n if (__DEV__) logMissingFeature('Poster.Root', 'playback');\n\n return null;\n }\n\n // The metadata feature is optional: without it nothing resolves a URL, and\n // this stays a visibility wrapper around whatever source the image supplies.\n core.setMedia({\n started: playback.started,\n poster: metadata?.poster ?? '',\n });\n\n // Until the image reports, a resolved poster is on its way. Server markup then\n // already carries `data-loading`, and hydration lands on the state the image\n // reports first rather than flashing the layers keyed off that attribute.\n core.setImageLoadState(reportedLoadState ?? (metadata?.poster ? 'loading' : 'none'));\n\n const state = core.getState();\n\n return (\n <PosterProvider value={{ state, setImageLoadState }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: PosterDataAttrs,\n ref: forwardedRef,\n props: elementProps,\n }\n )}\n </PosterProvider>\n );\n});\n\nexport namespace PosterRoot {\n export type Props = PosterRootProps;\n export type State = PosterCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;AAkBA,MAAa,aAAa,WAAW,SAAS,WAC5C,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;CAC9C,MAAM,CAAC,mBAAmB,qBAAqB,SAAsC,IAAI;CAEzF,IAAI,CAAC,UAGH,OAAO;CAKT,KAAK,SAAS;EACZ,SAAS,SAAS;EAClB,QAAQ,UAAU,UAAU;CAC9B,CAAC;CAKD,KAAK,kBAAkB,sBAAsB,UAAU,SAAS,YAAY,OAAO;CAEnF,MAAM,QAAQ,KAAK,SAAS;CAE5B,OACE,oBAAC,gBAAD;EAAgB,OAAO;GAAE;GAAO;EAAkB;EAC/C,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK;GACL,OAAO;EACT,CACF;CACc,CAAA;AAEpB,CAAC"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/quality-radio-group/component.tsx"],"sourcesContent":["import { type MenuOptionState, type QualityRadioGroupCore, QualityRadioGroupDataAttrs } from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { ReactElement, ReactNode } from 'react';\nimport { createContext, Fragment, forwardRef, useContext } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuOptionState } from '../menu/context';\nimport { MenuRadioGroup } from '../menu/radio-group';\nimport type { MenuRadioItemProps } from '../menu/radio-item';\nimport { type QualityOption, type QualityOptionsProps, type QualityOptionsResult, useQualityOptions } from '../quality';\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 QualityRadioGroupRootProps extends QualityOptionsProps {\n children?: ReactNode;\n}\n\nexport interface QualityRadioGroupOptionsProps extends Omit<\n UIComponentProps<'div', QualityRadioGroupCore.State>,\n 'children'\n> {\n /** Render one consumer-owned menu radio item for every quality option. */\n renderItem: (props: QualityRadioGroupItemProps, state: QualityRadioGroupItemState) => ReactElement;\n}\n\nexport type QualityRadioGroupValueProps = UIComponentProps<'span', QualityOptionsResult>;\n\nexport interface QualityRadioGroupLegacyProps extends QualityRadioGroupOptionsProps, QualityOptionsProps {}\n\nconst QualityRadioGroupContext = createContext<QualityOptionsResult | null | undefined>(undefined);\n\n/** Owns quality option state and shares it with an enclosing menu. Does not render a DOM element. */\nexport function QualityRadioGroupRoot({ children, ...props }: QualityRadioGroupRootProps): ReactNode {\n const quality = useQualityOptions(props);\n\n useMenuOptionState(toMenuOptionState(quality));\n\n return <QualityRadioGroupContext.Provider value={quality}>{children}</QualityRadioGroupContext.Provider>;\n}\n\n/** Displays the selected quality label. */\nexport const QualityRadioGroupValue = forwardRef<HTMLSpanElement, QualityRadioGroupValueProps>(\n function QualityRadioGroupValue({ render, className, style, ...elementProps }, forwardedRef) {\n const quality = useQualityRadioGroupContext();\n if (!quality) return null;\n\n return renderElement(\n 'span',\n { render, className, style },\n { state: quality, ref: forwardedRef, props: [elementProps, { children: quality.selectedLabel }] }\n );\n }\n);\n\n/** Renders menu radio items for the player's video renditions. */\nexport const QualityRadioGroupOptions = forwardRef<HTMLDivElement, QualityRadioGroupOptionsProps>(\n function QualityRadioGroupOptions(componentProps, forwardedRef) {\n const {\n renderItem,\n render,\n className,\n style,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledBy,\n ...elementProps\n } = componentProps;\n const quality = useQualityRadioGroupContext();\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\n/** @internal Compatibility adapter for the existing preset sources. */\nexport const QualityRadioGroupLegacy = forwardRef<HTMLDivElement, QualityRadioGroupLegacyProps>(\n function QualityRadioGroupLegacy({ label, formatRendition, disabled, ...props }, forwardedRef) {\n return (\n <QualityRadioGroupRoot label={label} formatRendition={formatRendition} disabled={disabled}>\n <QualityRadioGroupOptions {...props} ref={forwardedRef} />\n </QualityRadioGroupRoot>\n );\n }\n);\n\nfunction useQualityRadioGroupContext(): QualityOptionsResult | null {\n const quality = useContext(QualityRadioGroupContext);\n if (quality === undefined) throw new Error('QualityRadioGroup parts must be used within QualityRadioGroup.Root');\n\n return quality;\n}\n\nfunction toMenuOptionState(quality: QualityOptionsResult | null): MenuOptionState {\n return {\n value: quality?.selectedLabel ?? '',\n disabled: quality?.disabled ?? true,\n hidden: quality?.hidden ?? true,\n availability: quality?.state.availability ?? 'unsupported',\n };\n}\n\nexport namespace QualityRadioGroupRoot {\n export type Props = QualityRadioGroupRootProps;\n}\n\nexport namespace QualityRadioGroupValue {\n export type Props = QualityRadioGroupValueProps;\n export type State = QualityOptionsResult;\n}\n\nexport namespace QualityRadioGroupOptions {\n export type Props = QualityRadioGroupOptionsProps;\n export type State = QualityRadioGroupCore.State;\n export type ItemProps = QualityRadioGroupItemProps;\n export type ItemState = QualityRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;AAuCA,MAAM,2BAA2B,cAAuD,KAAA,CAAS;;AAGjG,SAAgB,sBAAsB,EAAE,UAAU,GAAG,SAAgD;CACnG,MAAM,UAAU,kBAAkB,KAAK;CAEvC,mBAAmB,kBAAkB,OAAO,CAAC;CAE7C,OAAO,oBAAC,yBAAyB,UAA1B;EAAmC,OAAO;EAAU;CAA4C,CAAA;AACzG;;AAGA,MAAa,yBAAyB,WACpC,SAAS,uBAAuB,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAAgB,cAAc;CAC3F,MAAM,UAAU,4BAA4B;CAC5C,IAAI,CAAC,SAAS,OAAO;CAErB,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EAAE,OAAO;EAAS,KAAK;EAAc,OAAO,CAAC,cAAc,EAAE,UAAU,QAAQ,cAAc,CAAC;CAAE,CAClG;AACF,CACF;;AAGA,MAAa,2BAA2B,WACtC,SAAS,yBAAyB,gBAAgB,cAAc;CAC9D,MAAM,EACJ,YACA,QACA,WACA,OACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,UAAU,4BAA4B;CAC5C,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;;AAGA,MAAa,0BAA0B,WACrC,SAAS,wBAAwB,EAAE,OAAO,iBAAiB,UAAU,GAAG,SAAS,cAAc;CAC7F,OACE,oBAAC,uBAAD;EAA8B;EAAwB;EAA2B;EAC/E,UAAA,oBAAC,0BAAD;GAA0B,GAAI;GAAO,KAAK;EAAe,CAAA;CACpC,CAAA;AAE3B,CACF;AAEA,SAAS,8BAA2D;CAClE,MAAM,UAAU,WAAW,wBAAwB;CACnD,IAAI,YAAY,KAAA,GAAW,MAAM,IAAI,MAAM,oEAAoE;CAE/G,OAAO;AACT;AAEA,SAAS,kBAAkB,SAAuD;CAChF,OAAO;EACL,OAAO,SAAS,iBAAiB;EACjC,UAAU,SAAS,YAAY;EAC/B,QAAQ,SAAS,UAAU;EAC3B,cAAc,SAAS,MAAM,gBAAgB;CAC/C;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/quality-radio-group/index.parts.ts"],"sourcesContent":["export {\n type QualityRadioGroupItemProps as ItemProps,\n type QualityRadioGroupItemState as ItemState,\n QualityRadioGroupOptions as Options,\n type QualityRadioGroupOptionsProps as OptionsProps,\n QualityRadioGroupRoot as Root,\n type QualityRadioGroupRootProps as RootProps,\n QualityRadioGroupValue as Value,\n type QualityRadioGroupValueProps as ValueProps,\n} from './component';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/seek-button/component.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 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/seek-indicator/index.parts.ts"],"sourcesContent":["export { SeekIndicatorRoot as Root, type SeekIndicatorRootProps as RootProps } from './root';\nexport { SeekIndicatorValue as Value, type SeekIndicatorValueProps as ValueProps } from './value';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/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 +0,0 @@
1
- {"version":3,"file":"value.js","names":[],"sources":["../../../../src/ui/seek-indicator/value.tsx"],"sourcesContent":["import { getSeekIndicatorDisplayValue, type SeekIndicatorCore } 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 { useSeekIndicatorContext } from './context';\n\nexport interface SeekIndicatorValueProps extends UIComponentProps<'div', SeekIndicatorCore.State> {}\n\nexport const SeekIndicatorValue = forwardRef(function SeekIndicatorValue(\n componentProps: SeekIndicatorValueProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state } = useSeekIndicatorContext();\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [{ children: getSeekIndicatorDisplayValue(state) }, elementProps],\n }\n );\n});\n\nexport namespace SeekIndicatorValue {\n export type Props = SeekIndicatorValueProps;\n}\n"],"mappings":";;;;;AAUA,MAAa,qBAAqB,WAAW,SAAS,mBACpD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,UAAU,wBAAwB;CAE1C,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CAAC,EAAE,UAAU,6BAA6B,KAAK,EAAE,GAAG,YAAY;CACzE,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buffer.js","names":[],"sources":["../../../../src/ui/slider/buffer.tsx"],"sourcesContent":["import type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderBufferProps extends UIComponentProps<'div', SliderState> {}\n\n/** Displays the buffered range on the slider track. */\nexport const SliderBuffer = createContextPart<SliderBufferProps, SliderState>({\n displayName: 'SliderBuffer',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderBuffer {\n export type Props = SliderBufferProps;\n}\n"],"mappings":";;;;AASA,MAAa,eAAe,kBAAkD;CAC5E,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"}
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"fill.js","names":[],"sources":["../../../../src/ui/slider/fill.tsx"],"sourcesContent":["import type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderFillProps extends UIComponentProps<'div', SliderState> {}\n\n/** Displays the filled portion from start to the current value. */\nexport const SliderFill = createContextPart<SliderFillProps, SliderState>({\n displayName: 'SliderFill',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderFill {\n export type Props = SliderFillProps;\n}\n"],"mappings":";;;;AASA,MAAa,aAAa,kBAAgD;CACxE,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/slider/index.parts.ts"],"sourcesContent":["export { SliderBuffer as Buffer, type SliderBufferProps as BufferProps } from './buffer';\nexport { SliderFill as Fill, type SliderFillProps as FillProps } from './fill';\nexport { SliderPreview as Preview, type SliderPreviewProps as PreviewProps } from './preview';\nexport { SliderRoot as Root, type SliderRootProps as RootProps } from './root';\nexport { SliderThumb as Thumb, type SliderThumbProps as ThumbProps } from './thumb';\nexport * as Thumbnail from './thumbnail/index.parts';\nexport { SliderTrack as Track, type SliderTrackProps as TrackProps } from './track';\nexport { SliderValue as Value, type SliderValueProps as ValueProps } from './value';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview.js","names":[],"sources":["../../../../src/ui/slider/preview.tsx"],"sourcesContent":["import type { SliderPreviewProps as CoreSliderPreviewProps, SliderState } from '@videojs/core';\nimport { getSliderPreviewStyle } from '@videojs/core/dom';\nimport { observeResize } from '@videojs/utils/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderPreviewProps extends CoreSliderPreviewProps, UIComponentProps<'div', SliderState> {}\n\n/** Positioning container for preview content that tracks the pointer along the slider. */\nexport const SliderPreview = forwardRef(function SliderPreview(\n componentProps: SliderPreviewProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, overflow = 'clamp', ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state } = context;\n\n const measureRef = useRef<HTMLDivElement>(null);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n const el = measureRef.current;\n if (!el) return;\n\n return observeResize(el, ([entry]) => {\n setWidth(entry!.contentRect.width);\n });\n }, []);\n\n const positionStyle = getSliderPreviewStyle(width, overflow);\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: [forwardedRef, measureRef],\n props: [{ style: positionStyle }, elementProps],\n }\n );\n});\n\nexport namespace SliderPreview {\n export type Props = SliderPreviewProps;\n}\n"],"mappings":";;;;;;;AAaA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,SAAS,GAAG,iBAAiB;CAE1E,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,UAAU;CAElB,MAAM,aAAa,OAAuB,IAAI;CAC9C,MAAM,CAAC,OAAO,YAAY,SAAS,CAAC;CAEpC,gBAAgB;EACd,MAAM,KAAK,WAAW;EACtB,IAAI,CAAC,IAAI;EAET,OAAO,cAAc,KAAK,CAAC,WAAW;GACpC,SAAS,MAAO,YAAY,KAAK;EACnC,CAAC;CACH,GAAG,CAAC,CAAC;CAEL,MAAM,gBAAgB,sBAAsB,OAAO,QAAQ;CAE3D,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK,CAAC,cAAc,UAAU;EAC9B,OAAO,CAAC,EAAE,OAAO,cAAc,GAAG,YAAY;CAChD,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/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 +0,0 @@
1
- {"version":3,"file":"thumb.js","names":[],"sources":["../../../../src/ui/slider/thumb.tsx"],"sourcesContent":["import type { SliderState } 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 { useSliderContext } from './context';\n\nexport interface SliderThumbProps extends UIComponentProps<'div', SliderState> {}\n\n/** Draggable handle for setting the slider value. Receives focus and handles keyboard interaction. */\nexport const SliderThumb = forwardRef(function SliderThumb(\n componentProps: SliderThumbProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state, thumbRef, thumbProps, getAttrs } = context;\n const attrs = getAttrs(state);\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: [forwardedRef, thumbRef],\n props: [attrs, thumbProps, elementProps],\n }\n );\n});\n\nexport namespace SliderThumb {\n export type Props = SliderThumbProps;\n}\n"],"mappings":";;;;;AAWA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CAEtD,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,OAAO,UAAU,YAAY,aAAa;CAClD,MAAM,QAAQ,SAAS,KAAK;CAE5B,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK,CAAC,cAAc,QAAQ;EAC5B,OAAO;GAAC;GAAO;GAAY;EAAY;CACzC,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../../src/ui/slider/thumbnail/index.parts.ts"],"sourcesContent":["export { ThumbnailImage as Image, type ThumbnailImageProps as ImageProps } from '../../thumbnail/image';\nexport { SliderThumbnailRoot as Root, type SliderThumbnailRootProps as RootProps } from './root';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","names":["Thumbnail.Root"],"sources":["../../../../../src/ui/slider/thumbnail/root.tsx"],"sourcesContent":["import type { ThumbnailCore } from '@videojs/core';\nimport { forwardRef, type ForwardedRef } from 'react';\n\nimport { Thumbnail } from '../../thumbnail';\nimport type { ThumbnailRootProps } from '../../thumbnail/root';\nimport { useSliderPointerValue } from '../context';\n\nexport interface SliderThumbnailRootProps extends Omit<ThumbnailRootProps, 'time'> {}\n\n/**\n * Resolves, sizes, and clips the thumbnail at the slider pointer.\n *\n * Render `Slider.Thumbnail.Image` inside it for the controlled image. Other children can provide loading indicators,\n * overlays, or temporary presentation layers.\n */\nexport const SliderThumbnailRoot = forwardRef(function SliderThumbnailRoot(\n componentProps: SliderThumbnailRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const pointerValue = useSliderPointerValue();\n\n return <Thumbnail.Root ref={forwardedRef} {...componentProps} time={pointerValue} />;\n});\n\nexport namespace SliderThumbnailRoot {\n export type Props = SliderThumbnailRootProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;;;AAeA,MAAa,sBAAsB,WAAW,SAAS,oBACrD,gBACA,cACA;CACA,MAAM,eAAe,sBAAsB;CAE3C,OAAO,oBAACA,eAAD;EAAgB,KAAK;EAAc,GAAI;EAAgB,MAAM;CAAe,CAAA;AACrF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"track.js","names":[],"sources":["../../../../src/ui/slider/track.tsx"],"sourcesContent":["import type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderTrackProps extends UIComponentProps<'div', SliderState> {}\n\n/** Contains the slider's visual track and interactive hit zone. */\nexport const SliderTrack = createContextPart<SliderTrackProps, SliderState>({\n displayName: 'SliderTrack',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderTrack {\n export type Props = SliderTrackProps;\n}\n"],"mappings":";;;;AASA,MAAa,cAAc,kBAAiD;CAC1E,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"value.js","names":[],"sources":["../../../../src/ui/slider/value.tsx"],"sourcesContent":["import type { SliderState } 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 { useSliderContext, useSliderPointerValue } from './context';\n\nexport interface SliderValueProps extends UIComponentProps<'output', SliderState> {\n /** Which slider value to display: the current position or the pointer position. */\n type?: 'current' | 'pointer' | undefined;\n /** Custom formatter for the displayed value. Overrides the root's `formatValue`. */\n format?: ((value: number) => string) | undefined;\n}\n\n/** Displays a formatted text representation of the slider value. Renders an `<output>` element. */\nexport const SliderValue = forwardRef(function SliderValue(\n componentProps: SliderValueProps,\n forwardedRef: ForwardedRef<HTMLOutputElement>\n) {\n const { render, className, style, type = 'current', format, ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state, formatValue } = context;\n const pointerValue = useSliderPointerValue(type === 'pointer');\n\n const rawValue = type === 'pointer' ? pointerValue : state.value;\n\n const text = format ? format(rawValue) : formatValue ? formatValue(rawValue, type) : String(Math.round(rawValue));\n\n return renderElement(\n 'output',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [{ 'aria-live': 'off', children: text }, elementProps],\n }\n );\n});\n\nexport namespace SliderValue {\n export type Props = SliderValueProps;\n}\n"],"mappings":";;;;;AAgBA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,WAAW,QAAQ,GAAG,iBAAiB;CAEhF,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,OAAO,gBAAgB;CAC/B,MAAM,eAAe,sBAAsB,SAAS,SAAS;CAE7D,MAAM,WAAW,SAAS,YAAY,eAAe,MAAM;CAE3D,MAAM,OAAO,SAAS,OAAO,QAAQ,IAAI,cAAc,YAAY,UAAU,IAAI,IAAI,OAAO,KAAK,MAAM,QAAQ,CAAC;CAEhH,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK;EACL,OAAO,CAAC;GAAE,aAAa;GAAO,UAAU;EAAK,GAAG,YAAY;CAC9D,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/status-announcer/component.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 +0,0 @@
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 +0,0 @@
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 './root';\nexport { StatusIndicatorValue as Value, type StatusIndicatorValueProps as ValueProps } from './value';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"value.js","names":[],"sources":["../../../../src/ui/status-indicator/value.tsx"],"sourcesContent":["import { getStatusIndicatorDisplayValue, type StatusIndicatorCore } 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 { useStatusIndicatorContext } from './context';\n\nexport interface StatusIndicatorValueProps extends UIComponentProps<'span', StatusIndicatorCore.State> {}\n\nexport const StatusIndicatorValue = forwardRef(function StatusIndicatorValue(\n componentProps: StatusIndicatorValueProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state } = useStatusIndicatorContext();\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [{ children: getStatusIndicatorDisplayValue(state) }, elementProps],\n }\n );\n});\n\nexport namespace StatusIndicatorValue {\n export type Props = StatusIndicatorValueProps;\n}\n"],"mappings":";;;;;AAUA,MAAa,uBAAuB,WAAW,SAAS,qBACtD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,UAAU,0BAA0B;CAE5C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CAAC,EAAE,UAAU,+BAA+B,KAAK,EAAE,GAAG,YAAY;CAC3E,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/thumbnail/context.tsx"],"sourcesContent":["import type { ThumbnailCore, ThumbnailState } from '@videojs/core';\nimport { createContext, type CSSProperties, type ProviderProps, type RefCallback, useContext } from 'react';\n\nexport interface ThumbnailContextValue {\n core: ThumbnailCore;\n state: ThumbnailState;\n src: string | undefined;\n imageStyle: CSSProperties | undefined;\n /** CORS mode inherited from the media element, supplied only for `<track>`-sourced thumbnails. */\n inheritedCrossOrigin: ThumbnailCore.ImageProps['crossOrigin'];\n /** Attach to the image so the root can track its loading lifecycle. */\n imageRef: RefCallback<HTMLImageElement>;\n}\n\nconst ThumbnailContext = createContext<ThumbnailContextValue | null>(null);\n\nexport function ThumbnailProvider({ value, children }: ProviderProps<ThumbnailContextValue>) {\n return <ThumbnailContext.Provider value={value}>{children}</ThumbnailContext.Provider>;\n}\n\nexport function useThumbnailContext(): ThumbnailContextValue {\n const ctx = useContext(ThumbnailContext);\n if (!ctx) throw new Error('Thumbnail compound components must be used within a Thumbnail.Root');\n\n return ctx;\n}\n"],"mappings":";;;AAcA,MAAM,mBAAmB,cAA4C,IAAI;AAEzE,SAAgB,kBAAkB,EAAE,OAAO,YAAkD;CAC3F,OAAO,oBAAC,iBAAiB,UAAlB;EAAkC;EAAQ;CAAoC,CAAA;AACvF;AAEA,SAAgB,sBAA6C;CAC3D,MAAM,MAAM,WAAW,gBAAgB;CACvC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,oEAAoE;CAE9F,OAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.js","names":[],"sources":["../../../../src/ui/thumbnail/image.tsx"],"sourcesContent":["import type { ThumbnailCore, ThumbnailFetchPriority } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { useThumbnailContext } from './context';\n\nexport interface ThumbnailImageProps extends Omit<\n UIComponentProps<'img', ThumbnailCore.State>,\n 'crossOrigin' | 'fetchPriority' | 'loading' | 'src'\n> {\n /** CORS setting for the selected image. Leave unset to follow the media element, or pass `null` to opt out. */\n crossOrigin?: ThumbnailCore.ImageProps['crossOrigin'];\n /** Image loading strategy. */\n loading?: ThumbnailCore.ImageProps['loading'];\n /** Image fetch priority hint. */\n fetchPriority?: ThumbnailCore.ImageProps['fetchPriority'];\n}\n\n/**\n * Displays the image selected and measured by `Thumbnail.Root`.\n *\n * Renders an `img`, so native image attributes and the `render` escape hatch remain available without replacing the\n * root that owns thumbnail state.\n */\nexport const ThumbnailImage = forwardRef(function ThumbnailImage(\n componentProps: ThumbnailImageProps,\n forwardedRef: ForwardedRef<HTMLImageElement>\n) {\n const { render, className, style, crossOrigin, loading, fetchPriority, ...elementProps } = componentProps;\n const { core, state, src, imageStyle, inheritedCrossOrigin, imageRef } = useThumbnailContext();\n\n // One stable callback, so React does not detach and reattach the image on every render\n // and the root only hears about mounts, unmounts, and `render` swaps.\n const ref = useComposedRefs(forwardedRef, imageRef);\n\n return renderElement(\n 'img',\n { render, className, style },\n {\n state,\n ref,\n props: [\n { alt: '', 'aria-hidden': 'true', decoding: 'async' },\n elementProps,\n {\n src,\n crossOrigin: core.resolveCrossOrigin(crossOrigin, inheritedCrossOrigin),\n loading,\n style: imageStyle,\n // SAFETY: The core and React types contain the same fetch-priority literals; React alone omits `undefined`.\n fetchPriority: fetchPriority as ThumbnailFetchPriority,\n },\n ],\n }\n );\n});\n\nexport namespace ThumbnailImage {\n export type Props = ThumbnailImageProps;\n}\n"],"mappings":";;;;;;;;;;;AA2BA,MAAa,iBAAiB,WAAW,SAAS,eAChD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,aAAa,SAAS,eAAe,GAAG,iBAAiB;CAC3F,MAAM,EAAE,MAAM,OAAO,KAAK,YAAY,sBAAsB,aAAa,oBAAoB;CAI7F,MAAM,MAAM,gBAAgB,cAAc,QAAQ;CAElD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,OAAO;GACL;IAAE,KAAK;IAAI,eAAe;IAAQ,UAAU;GAAQ;GACpD;GACA;IACE;IACA,aAAa,KAAK,mBAAmB,aAAa,oBAAoB;IACtE;IACA,OAAO;IAEQ;GACjB;EACF;CACF,CACF;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/thumbnail/index.parts.ts"],"sourcesContent":["export { ThumbnailImage as Image, type ThumbnailImageProps as ImageProps } from './image';\nexport { ThumbnailRoot as Root, type ThumbnailRootProps as RootProps } from './root';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/thumbnail/root.tsx"],"sourcesContent":["import { mapCuesToThumbnails, ThumbnailCore, ThumbnailDataAttrs } from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { CSSProperties, ForwardedRef } from 'react';\nimport { forwardRef, useCallback, 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';\nimport { ThumbnailProvider } from './context';\n\nexport interface ThumbnailRootProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.RootProps {}\n\n/**\n * Resolves, sizes, and clips a thumbnail for a point in time.\n *\n * Renders a `div` and exposes `data-hidden`, `data-loading`, and `data-error` for styling every layer in the preview.\n * Render `Thumbnail.Image` inside it for the image the root controls and measures.\n */\nexport const ThumbnailRoot = forwardRef(function ThumbnailRoot(\n componentProps: ThumbnailRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, time = 0, thumbnails: externalThumbnails, ...elementProps } = 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 a render when the image loads, fails, or the root is resized.\n const [, setRenderToken] = useState(0);\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((token) => token + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // The image reports itself through this ref, so a mount, unmount, or `render` swap rebinds without an effect.\n const imageRef = useCallback(\n (img: HTMLImageElement | null) => {\n const previous = imgRef.current;\n\n imgRef.current = img;\n\n if (img) handle.connect();\n else if (previous) handle.disconnectImg(previous);\n },\n [handle]\n );\n\n // A supplied list takes priority over automatic <track> detection.\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 handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imageStyle: 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 imageStyle = {\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 (\n <ThumbnailProvider\n value={{\n core,\n state,\n src: thumbnail?.url,\n imageStyle,\n // Only `<track>`-sourced thumbnails follow the media element's CORS mode.\n inheritedCrossOrigin: externalThumbnails?.length ? undefined : textTrack?.thumbnailTrackCrossOrigin,\n imageRef,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [core.getAttrs(state), { style: containerStyle }, elementProps],\n }\n )}\n </ThumbnailProvider>\n );\n});\n\nexport namespace ThumbnailRoot {\n export type Props = ThumbnailRootProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,GAAG,YAAY,oBAAoB,GAAG,iBAAiB;CAEhG,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;CACrC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,UAAU,QAAQ,CAAC;CAC1D,CAAC,CACH;CAEA,WAAW,cAAc,OAAO,QAAQ,CAAC;CAGzC,MAAM,WAAW,aACd,QAAiC;EAChC,MAAM,WAAW,OAAO;EAExB,OAAO,UAAU;EAEjB,IAAI,KAAK,OAAO,QAAQ;OACnB,IAAI,UAAU,OAAO,cAAc,QAAQ;CAClD,GACA,CAAC,MAAM,CACT;CAGA,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,OAAO,UAAU,WAAW,GAAG;CAE/B,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,SAAS;CAEnE,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,aAAa;IACX,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,OACE,oBAAC,mBAAD;EACE,OAAO;GACL;GACA;GACA,KAAK,WAAW;GAChB;GAEA,sBAAsB,oBAAoB,SAAS,KAAA,IAAY,WAAW;GAC1E;EACF;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,MAAM;GAC1B,OAAO;IAAC,KAAK,SAAS,KAAK;IAAG,EAAE,OAAO,eAAe;IAAG;GAAY;EACvE,CACF;CACiB,CAAA;AAEvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"group.js","names":[],"sources":["../../../../src/ui/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 +0,0 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/time/index.parts.ts"],"sourcesContent":["export { Group, type GroupProps } from './group';\nexport { Separator, type SeparatorProps } from './separator';\nexport { Value, type ValueProps } from './value';\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"separator.js","names":[],"sources":["../../../../src/ui/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"}