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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1415) hide show
  1. package/dist/default/__generated__/skins/default-video/styles/base.css +25 -0
  2. package/dist/default/__generated__/skins/default-video/styles/buttons.css +152 -0
  3. package/dist/default/__generated__/skins/default-video/styles/container.css +45 -0
  4. package/dist/default/__generated__/skins/default-video/styles/controls.css +45 -0
  5. package/dist/default/__generated__/skins/default-video/styles/overlays.css +11 -0
  6. package/dist/default/__generated__/skins/default-video/styles/popups.css +45 -0
  7. package/dist/default/__generated__/skins/default-video/styles/poster.css +47 -0
  8. package/dist/default/__generated__/skins/default-video/styles/sliders.css +112 -0
  9. package/dist/default/__generated__/skins/default-video/styles/styles.css +514 -0
  10. package/dist/default/__generated__/skins/default-video/styles/theme.css +22 -0
  11. package/dist/default/i18n/context.js +3 -4
  12. package/dist/default/i18n/context.js.map +1 -1
  13. package/dist/default/i18n/create-i18n.js +0 -1
  14. package/dist/default/i18n/create-i18n.js.map +1 -1
  15. package/dist/default/i18n/locales/id/register.js +8 -0
  16. package/dist/default/i18n/locales/id/register.js.map +1 -0
  17. package/dist/default/i18n/locales/id.js +2 -0
  18. package/dist/default/i18n/locales/lt/register.js +8 -0
  19. package/dist/default/i18n/locales/lt/register.js.map +1 -0
  20. package/dist/default/i18n/locales/lt.js +2 -0
  21. package/dist/default/icons/dist/react/default/airplay-enter.js.map +1 -1
  22. package/dist/default/icons/dist/react/default/airplay-exit.js +1 -2
  23. package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
  24. package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
  25. package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
  26. package/dist/default/icons/dist/react/default/cast-enter.js +2 -45
  27. package/dist/default/icons/dist/react/default/cast-enter.js.map +1 -1
  28. package/dist/default/icons/dist/react/default/cast-exit.js +4 -61
  29. package/dist/default/icons/dist/react/default/cast-exit.js.map +1 -1
  30. package/dist/default/icons/dist/react/default/check.js.map +1 -1
  31. package/dist/default/icons/dist/react/default/chevron.js.map +1 -1
  32. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  33. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  34. package/dist/default/icons/dist/react/default/gear.js.map +1 -1
  35. package/dist/default/icons/dist/react/default/pause.js.map +1 -1
  36. package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -1
  37. package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -1
  38. package/dist/default/icons/dist/react/default/play.js.map +1 -1
  39. package/dist/default/icons/dist/react/default/quality.js +1 -1
  40. package/dist/default/icons/dist/react/default/quality.js.map +1 -1
  41. package/dist/default/icons/dist/react/default/restart.js.map +1 -1
  42. package/dist/default/icons/dist/react/default/seek.js.map +1 -1
  43. package/dist/default/icons/dist/react/default/speech.js.map +1 -1
  44. package/dist/default/icons/dist/react/default/speed.js.map +1 -1
  45. package/dist/default/icons/dist/react/default/spinner.js +1 -1
  46. package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
  47. package/dist/default/icons/dist/react/default/switches.js.map +1 -1
  48. package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
  49. package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
  50. package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
  51. package/dist/default/icons/dist/react/minimal/airplay-enter.js.map +1 -1
  52. package/dist/default/icons/dist/react/minimal/airplay-exit.js +1 -2
  53. package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  54. package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
  55. package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
  56. package/dist/default/icons/dist/react/minimal/cast-enter.js +2 -45
  57. package/dist/default/icons/dist/react/minimal/cast-enter.js.map +1 -1
  58. package/dist/default/icons/dist/react/minimal/cast-exit.js +4 -61
  59. package/dist/default/icons/dist/react/minimal/cast-exit.js.map +1 -1
  60. package/dist/default/icons/dist/react/minimal/check.js.map +1 -1
  61. package/dist/default/icons/dist/react/minimal/chevron.js.map +1 -1
  62. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  63. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  64. package/dist/default/icons/dist/react/minimal/gear.js.map +1 -1
  65. package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
  66. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -1
  67. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -1
  68. package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
  69. package/dist/default/icons/dist/react/minimal/quality.js +1 -1
  70. package/dist/default/icons/dist/react/minimal/quality.js.map +1 -1
  71. package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
  72. package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
  73. package/dist/default/icons/dist/react/minimal/speech.js +7 -40
  74. package/dist/default/icons/dist/react/minimal/speech.js.map +1 -1
  75. package/dist/default/icons/dist/react/minimal/speed.js.map +1 -1
  76. package/dist/default/icons/dist/react/minimal/spinner.js +1 -1
  77. package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
  78. package/dist/default/icons/dist/react/minimal/switches.js.map +1 -1
  79. package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
  80. package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
  81. package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
  82. package/dist/default/index.js +7 -3
  83. package/dist/default/media/audio.js +0 -1
  84. package/dist/default/media/audio.js.map +1 -1
  85. package/dist/default/media/cloudflare-video/index.js +2 -0
  86. package/dist/default/media/cloudflare-video/media.js +38 -0
  87. package/dist/default/media/cloudflare-video/media.js.map +1 -0
  88. package/dist/default/media/google-cast/google-cast.js +3 -3
  89. package/dist/default/media/google-cast/google-cast.js.map +1 -1
  90. package/dist/default/media/hls-audio/index.js +2 -0
  91. package/dist/default/media/hls-audio/media.js +21 -0
  92. package/dist/default/media/hls-audio/media.js.map +1 -0
  93. package/dist/default/media/hls-background-video/index.js +2 -0
  94. package/dist/default/media/hls-background-video/media.js +45 -0
  95. package/dist/default/media/hls-background-video/media.js.map +1 -0
  96. package/dist/default/media/hls-video/index.js +2 -0
  97. package/dist/{dev/media/simple-hls-video → default/media/hls-video}/media.js +6 -7
  98. package/dist/default/media/hls-video/media.js.map +1 -0
  99. package/dist/default/media/mux-audio/{media.js → hls-js.js} +2 -2
  100. package/dist/default/media/mux-audio/hls-js.js.map +1 -0
  101. package/dist/default/media/mux-audio/index.js +1 -1
  102. package/dist/default/media/mux-audio/spf.js +26 -0
  103. package/dist/default/media/mux-audio/spf.js.map +1 -0
  104. package/dist/default/media/mux-background-video/index.js +2 -0
  105. package/dist/default/media/mux-data/mux-data.js +7 -3
  106. package/dist/default/media/mux-data/mux-data.js.map +1 -1
  107. package/dist/default/media/mux-video/hls-js.js +27 -0
  108. package/dist/default/media/mux-video/hls-js.js.map +1 -0
  109. package/dist/default/media/mux-video/index.js +1 -1
  110. package/dist/default/media/mux-video/spf.js +27 -0
  111. package/dist/default/media/mux-video/spf.js.map +1 -0
  112. package/dist/default/media/mux-video/storyboard.js +43 -0
  113. package/dist/default/media/mux-video/storyboard.js.map +1 -0
  114. package/dist/default/media/spotify-audio/index.js +2 -0
  115. package/dist/default/media/spotify-audio/media.js +40 -0
  116. package/dist/default/media/spotify-audio/media.js.map +1 -0
  117. package/dist/default/media/tiktok-video/index.js +2 -0
  118. package/dist/default/media/tiktok-video/media.js +38 -0
  119. package/dist/default/media/tiktok-video/media.js.map +1 -0
  120. package/dist/default/media/twitch-video/index.js +2 -0
  121. package/dist/default/media/twitch-video/media.js +38 -0
  122. package/dist/default/media/twitch-video/media.js.map +1 -0
  123. package/dist/default/media/video.js +0 -1
  124. package/dist/default/media/video.js.map +1 -1
  125. package/dist/default/media/vimeo-video/media.js +4 -4
  126. package/dist/default/media/vimeo-video/media.js.map +1 -1
  127. package/dist/default/media/youtube-video/index.js +2 -0
  128. package/dist/default/media/youtube-video/media.js +37 -0
  129. package/dist/default/media/youtube-video/media.js.map +1 -0
  130. package/dist/default/player/container.js +8 -4
  131. package/dist/default/player/container.js.map +1 -1
  132. package/dist/default/player/context.js +6 -11
  133. package/dist/default/player/context.js.map +1 -1
  134. package/dist/default/player/create-player.js +44 -14
  135. package/dist/default/player/create-player.js.map +1 -1
  136. package/dist/default/player/popup-group-context.js +17 -0
  137. package/dist/default/player/popup-group-context.js.map +1 -0
  138. package/dist/default/presets/audio/index.js +8 -1
  139. package/dist/default/presets/audio/index.js.map +1 -0
  140. package/dist/default/presets/audio/minimal-skin.css +423 -295
  141. package/dist/default/presets/audio/minimal-skin.js +13 -19
  142. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  143. package/dist/default/presets/audio/minimal-skin.tailwind.js +82 -20
  144. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  145. package/dist/default/presets/audio/player.js +13 -0
  146. package/dist/default/presets/audio/player.js.map +1 -0
  147. package/dist/default/presets/audio/skin.css +459 -345
  148. package/dist/default/presets/audio/skin.js +14 -19
  149. package/dist/default/presets/audio/skin.js.map +1 -1
  150. package/dist/default/presets/audio/skin.tailwind.js +15 -19
  151. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  152. package/dist/default/presets/background/index.js +8 -1
  153. package/dist/default/presets/background/index.js.map +1 -0
  154. package/dist/default/presets/background/player.js +13 -0
  155. package/dist/default/presets/background/player.js.map +1 -0
  156. package/dist/default/presets/background/skin.css +3 -3
  157. package/dist/default/presets/background/skin.js +1 -0
  158. package/dist/default/presets/background/skin.js.map +1 -1
  159. package/dist/default/presets/live-audio/index.js +8 -1
  160. package/dist/default/presets/live-audio/index.js.map +1 -0
  161. package/dist/default/presets/live-audio/minimal-skin.css +423 -295
  162. package/dist/default/presets/live-audio/minimal-skin.js +3 -2
  163. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
  164. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +5 -4
  165. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  166. package/dist/default/presets/live-audio/player.js +13 -0
  167. package/dist/default/presets/live-audio/player.js.map +1 -0
  168. package/dist/default/presets/live-audio/skin.css +459 -345
  169. package/dist/default/presets/live-audio/skin.js +3 -2
  170. package/dist/default/presets/live-audio/skin.js.map +1 -1
  171. package/dist/default/presets/live-audio/skin.tailwind.js +5 -4
  172. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
  173. package/dist/default/presets/live-video/index.js +8 -1
  174. package/dist/default/presets/live-video/index.js.map +1 -0
  175. package/dist/default/presets/live-video/minimal-skin.css +656 -588
  176. package/dist/default/presets/live-video/minimal-skin.js +13 -12
  177. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  178. package/dist/default/presets/live-video/minimal-skin.tailwind.js +28 -26
  179. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  180. package/dist/default/presets/live-video/player.js +13 -0
  181. package/dist/default/presets/live-video/player.js.map +1 -0
  182. package/dist/default/presets/live-video/skin.css +661 -622
  183. package/dist/default/presets/live-video/skin.js +12 -11
  184. package/dist/default/presets/live-video/skin.js.map +1 -1
  185. package/dist/default/presets/live-video/skin.tailwind.js +25 -112
  186. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  187. package/dist/default/presets/video/index.js +8 -1
  188. package/dist/default/presets/video/index.js.map +1 -0
  189. package/dist/default/presets/video/minimal-skin.css +656 -588
  190. package/dist/default/presets/video/minimal-skin.js +213 -211
  191. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  192. package/dist/default/presets/video/minimal-skin.tailwind.js +227 -233
  193. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  194. package/dist/default/presets/video/player.js +13 -0
  195. package/dist/default/presets/video/player.js.map +1 -0
  196. package/dist/default/presets/video/skin.css +661 -622
  197. package/dist/default/presets/video/skin.js +213 -207
  198. package/dist/default/presets/video/skin.js.map +1 -1
  199. package/dist/default/presets/video/skin.tailwind.js +225 -227
  200. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  201. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +6 -6
  202. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  203. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  204. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  205. package/dist/default/skins/dist/default/default/tailwind/components/button.js +4 -4
  206. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  207. package/dist/default/skins/dist/default/default/tailwind/components/container.js +8 -0
  208. package/dist/default/skins/dist/default/default/tailwind/components/container.js.map +1 -0
  209. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  210. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  211. package/dist/default/skins/dist/default/default/tailwind/components/error.js +1 -1
  212. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  213. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -1
  214. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  215. package/dist/default/skins/dist/default/default/tailwind/components/input-indicator-overlay.js +7 -0
  216. package/dist/default/skins/dist/default/default/tailwind/components/input-indicator-overlay.js.map +1 -0
  217. package/dist/default/skins/dist/default/default/tailwind/components/input-indicator.js +9 -0
  218. package/dist/default/skins/dist/default/default/tailwind/components/input-indicator.js.map +1 -0
  219. package/dist/default/skins/dist/default/default/tailwind/components/menu.js +8 -12
  220. package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
  221. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  222. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  223. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +1 -1
  224. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  225. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +1 -1
  226. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  227. package/dist/default/skins/dist/default/default/tailwind/components/seek-indicator.js +12 -0
  228. package/dist/default/skins/dist/default/default/tailwind/components/seek-indicator.js.map +1 -0
  229. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +17 -9
  230. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  231. package/dist/default/skins/dist/default/default/tailwind/components/status-indicator.js +29 -0
  232. package/dist/default/skins/dist/default/default/tailwind/components/status-indicator.js.map +1 -0
  233. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +1 -1
  234. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  235. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +3 -4
  236. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  237. package/dist/default/skins/dist/default/default/tailwind/components/time.js +2 -2
  238. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  239. package/dist/default/skins/dist/default/default/tailwind/components/volume-indicator.js +18 -0
  240. package/dist/default/skins/dist/default/default/tailwind/components/volume-indicator.js.map +1 -0
  241. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +22 -19
  242. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  243. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +6 -6
  244. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  245. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  246. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  247. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +4 -4
  248. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  249. package/dist/default/skins/dist/default/minimal/tailwind/components/container.js +8 -0
  250. package/dist/default/skins/dist/default/minimal/tailwind/components/container.js.map +1 -0
  251. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  252. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  253. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +1 -1
  254. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  255. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
  256. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  257. package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js +7 -0
  258. package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js.map +1 -0
  259. package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator.js +10 -0
  260. package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator.js.map +1 -0
  261. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +9 -13
  262. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
  263. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  264. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  265. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +2 -2
  266. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  267. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +1 -1
  268. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  269. package/dist/default/skins/dist/default/minimal/tailwind/components/seek-indicator.js +12 -0
  270. package/dist/default/skins/dist/default/minimal/tailwind/components/seek-indicator.js.map +1 -0
  271. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +17 -9
  272. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  273. package/dist/default/skins/dist/default/minimal/tailwind/components/status-indicator.js +29 -0
  274. package/dist/default/skins/dist/default/minimal/tailwind/components/status-indicator.js.map +1 -0
  275. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +3 -5
  276. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  277. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +2 -2
  278. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  279. package/dist/default/skins/dist/default/minimal/tailwind/components/volume-indicator.js +19 -0
  280. package/dist/default/skins/dist/default/minimal/tailwind/components/volume-indicator.js.map +1 -0
  281. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +14 -15
  282. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  283. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +22 -20
  284. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  285. package/dist/default/ui/airplay-button/airplay-button.js +0 -1
  286. package/dist/default/ui/airplay-button/airplay-button.js.map +1 -1
  287. package/dist/default/ui/alert-dialog/alert-dialog-close.js +0 -1
  288. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  289. package/dist/default/ui/alert-dialog/alert-dialog-description.js +0 -1
  290. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  291. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +0 -1
  292. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  293. package/dist/default/ui/alert-dialog/alert-dialog-root.js +0 -1
  294. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  295. package/dist/default/ui/alert-dialog/alert-dialog-title.js +0 -1
  296. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  297. package/dist/default/ui/alert-dialog/context.js +0 -1
  298. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  299. package/dist/default/ui/audio-track/use-audio-track-options.js +8 -24
  300. package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -1
  301. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js +64 -0
  302. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -0
  303. package/dist/default/ui/audio-track-radio-group/index.js +2 -0
  304. package/dist/default/ui/buffering-indicator/buffering-indicator.js +0 -1
  305. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  306. package/dist/default/ui/captions-button/captions-button.js +0 -1
  307. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  308. package/dist/default/ui/captions-radio-group/captions-radio-group.js +64 -0
  309. package/dist/default/ui/captions-radio-group/captions-radio-group.js.map +1 -0
  310. package/dist/default/ui/captions-radio-group/index.js +2 -1
  311. package/dist/default/ui/captions-radio-group/use-captions-options.js +12 -30
  312. package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -1
  313. package/dist/default/ui/cast-button/cast-button.js +0 -1
  314. package/dist/default/ui/cast-button/cast-button.js.map +1 -1
  315. package/dist/default/ui/controls/context.js +0 -1
  316. package/dist/default/ui/controls/context.js.map +1 -1
  317. package/dist/default/ui/controls/controls-group.js +0 -1
  318. package/dist/default/ui/controls/controls-group.js.map +1 -1
  319. package/dist/default/ui/controls/controls-root.js +0 -1
  320. package/dist/default/ui/controls/controls-root.js.map +1 -1
  321. package/dist/default/ui/create-context-part.js +0 -1
  322. package/dist/default/ui/create-context-part.js.map +1 -1
  323. package/dist/default/ui/create-media-button.js +0 -1
  324. package/dist/default/ui/create-media-button.js.map +1 -1
  325. package/dist/default/ui/error-dialog/context.js +0 -1
  326. package/dist/default/ui/error-dialog/context.js.map +1 -1
  327. package/dist/default/ui/error-dialog/error-dialog-close.js +0 -1
  328. package/dist/default/ui/error-dialog/error-dialog-close.js.map +1 -1
  329. package/dist/default/ui/error-dialog/error-dialog-description.js +0 -1
  330. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -1
  331. package/dist/default/ui/error-dialog/error-dialog-root.js +0 -1
  332. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -1
  333. package/dist/default/ui/error-dialog/error-dialog-title.js +0 -1
  334. package/dist/default/ui/error-dialog/error-dialog-title.js.map +1 -1
  335. package/dist/default/ui/fullscreen-button/fullscreen-button.js +0 -1
  336. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  337. package/dist/default/ui/gesture/gesture.js +0 -1
  338. package/dist/default/ui/gesture/gesture.js.map +1 -1
  339. package/dist/default/ui/gesture/use-doubletap-gesture.js +0 -1
  340. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  341. package/dist/default/ui/gesture/use-tap-gesture.js +0 -1
  342. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  343. package/dist/default/ui/hooks/create-radio-options-hook.js +42 -0
  344. package/dist/default/ui/hooks/create-radio-options-hook.js.map +1 -0
  345. package/dist/default/ui/hooks/use-button.js +0 -1
  346. package/dist/default/ui/hooks/use-button.js.map +1 -1
  347. package/dist/default/ui/hooks/use-positioned-state.js +0 -1
  348. package/dist/default/ui/hooks/use-positioned-state.js.map +1 -1
  349. package/dist/default/ui/hooks/use-slider.js +49 -14
  350. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  351. package/dist/default/ui/hotkey/hotkey.js +0 -1
  352. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  353. package/dist/default/ui/hotkey/use-hotkey-shortcut.js +0 -1
  354. package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  355. package/dist/default/ui/hotkey/use-hotkey.js +0 -1
  356. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
  357. package/dist/{dev/ui/input-indicators → default/ui/input-indicator}/use-indicator-visibility.js +1 -2
  358. package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +1 -0
  359. package/dist/{dev/ui/input-indicators → default/ui/input-indicator}/use-input-action-subscription.js +1 -2
  360. package/dist/default/ui/input-indicator/use-input-action-subscription.js.map +1 -0
  361. package/dist/default/ui/{input-indicators → input-indicator}/use-input-indicator-root.js +1 -2
  362. package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +1 -0
  363. package/dist/{dev/ui/input-indicators → default/ui/input-indicator}/use-rendered-indicator-state.js +1 -2
  364. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +1 -0
  365. package/dist/default/ui/live-button/live-button.js +0 -1
  366. package/dist/default/ui/live-button/live-button.js.map +1 -1
  367. package/dist/default/ui/menu/context.js +1 -12
  368. package/dist/default/ui/menu/context.js.map +1 -1
  369. package/dist/default/ui/menu/index.parts.js +3 -9
  370. package/dist/default/ui/menu/index.parts.js.map +1 -1
  371. package/dist/default/ui/menu/menu-checkbox-item.js +4 -2
  372. package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
  373. package/dist/default/ui/menu/menu-content.js +78 -237
  374. package/dist/default/ui/menu/menu-content.js.map +1 -1
  375. package/dist/default/ui/menu/menu-group-label.js +0 -1
  376. package/dist/default/ui/menu/menu-group-label.js.map +1 -1
  377. package/dist/default/ui/menu/menu-group.js +0 -1
  378. package/dist/default/ui/menu/menu-group.js.map +1 -1
  379. package/dist/default/ui/menu/menu-item-indicator.js +0 -1
  380. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  381. package/dist/default/ui/menu/menu-item.js +11 -19
  382. package/dist/default/ui/menu/menu-item.js.map +1 -1
  383. package/dist/default/ui/menu/menu-keyboard.js +31 -0
  384. package/dist/default/ui/menu/menu-keyboard.js.map +1 -0
  385. package/dist/default/ui/menu/menu-radio-group.js +0 -1
  386. package/dist/default/ui/menu/menu-radio-group.js.map +1 -1
  387. package/dist/default/ui/menu/menu-radio-item.js +8 -7
  388. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  389. package/dist/default/ui/menu/menu-root.js +46 -62
  390. package/dist/default/ui/menu/menu-root.js.map +1 -1
  391. package/dist/default/ui/menu/menu-separator.js +0 -1
  392. package/dist/default/ui/menu/menu-separator.js.map +1 -1
  393. package/dist/default/ui/menu/menu-trigger.js +75 -98
  394. package/dist/default/ui/menu/menu-trigger.js.map +1 -1
  395. package/dist/default/ui/menu/use-menu-group.js +0 -1
  396. package/dist/default/ui/menu/use-menu-group.js.map +1 -1
  397. package/dist/default/ui/mute-button/mute-button.js +2 -2
  398. package/dist/default/ui/mute-button/mute-button.js.map +1 -1
  399. package/dist/default/ui/pip-button/pip-button.js +0 -1
  400. package/dist/default/ui/pip-button/pip-button.js.map +1 -1
  401. package/dist/default/ui/play-button/play-button.js +0 -1
  402. package/dist/default/ui/play-button/play-button.js.map +1 -1
  403. package/dist/default/ui/playback-rate/use-playback-rate-options.js +14 -23
  404. package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  405. package/dist/default/ui/playback-rate-button/playback-rate-button.js +0 -1
  406. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  407. package/dist/default/ui/playback-rate-radio-group/index.js +2 -0
  408. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js +64 -0
  409. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -0
  410. package/dist/default/ui/popover/context.js +0 -1
  411. package/dist/default/ui/popover/context.js.map +1 -1
  412. package/dist/default/ui/popover/popover-arrow.js +0 -1
  413. package/dist/default/ui/popover/popover-arrow.js.map +1 -1
  414. package/dist/default/ui/popover/popover-popup.js +10 -81
  415. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  416. package/dist/default/ui/popover/popover-root.js +2 -2
  417. package/dist/default/ui/popover/popover-root.js.map +1 -1
  418. package/dist/default/ui/popover/popover-trigger.js +4 -6
  419. package/dist/default/ui/popover/popover-trigger.js.map +1 -1
  420. package/dist/default/ui/popover/use-popup-position.js +33 -0
  421. package/dist/default/ui/popover/use-popup-position.js.map +1 -0
  422. package/dist/default/ui/poster/poster.js +8 -5
  423. package/dist/default/ui/poster/poster.js.map +1 -1
  424. package/dist/default/ui/quality/use-quality-options.js +9 -31
  425. package/dist/default/ui/quality/use-quality-options.js.map +1 -1
  426. package/dist/default/ui/quality-radio-group/index.js +2 -0
  427. package/dist/default/ui/quality-radio-group/quality-radio-group.js +65 -0
  428. package/dist/default/ui/quality-radio-group/quality-radio-group.js.map +1 -0
  429. package/dist/default/ui/seek-button/seek-button.js +0 -1
  430. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  431. package/dist/default/ui/seek-indicator/context.js +0 -1
  432. package/dist/default/ui/seek-indicator/context.js.map +1 -1
  433. package/dist/default/ui/seek-indicator/seek-indicator-root.js +1 -2
  434. package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  435. package/dist/default/ui/seek-indicator/seek-indicator-value.js +0 -1
  436. package/dist/default/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  437. package/dist/default/ui/slider/context.js +7 -3
  438. package/dist/default/ui/slider/context.js.map +1 -1
  439. package/dist/default/ui/slider/slider-buffer.js +0 -1
  440. package/dist/default/ui/slider/slider-buffer.js.map +1 -1
  441. package/dist/default/ui/slider/slider-fill.js +0 -1
  442. package/dist/default/ui/slider/slider-fill.js.map +1 -1
  443. package/dist/default/ui/slider/slider-preview.js +2 -4
  444. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  445. package/dist/default/ui/slider/slider-root.js +3 -2
  446. package/dist/default/ui/slider/slider-root.js.map +1 -1
  447. package/dist/default/ui/slider/slider-thumb.js +0 -1
  448. package/dist/default/ui/slider/slider-thumb.js.map +1 -1
  449. package/dist/default/ui/slider/slider-thumbnail.js +2 -3
  450. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  451. package/dist/default/ui/slider/slider-track.js +0 -1
  452. package/dist/default/ui/slider/slider-track.js.map +1 -1
  453. package/dist/default/ui/slider/slider-value.js +3 -3
  454. package/dist/default/ui/slider/slider-value.js.map +1 -1
  455. package/dist/default/ui/status-announcer/status-announcer.js +7 -5
  456. package/dist/default/ui/status-announcer/status-announcer.js.map +1 -1
  457. package/dist/default/ui/status-indicator/context.js +0 -1
  458. package/dist/default/ui/status-indicator/context.js.map +1 -1
  459. package/dist/default/ui/status-indicator/status-indicator-root.js +2 -3
  460. package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -1
  461. package/dist/default/ui/status-indicator/status-indicator-value.js +0 -1
  462. package/dist/default/ui/status-indicator/status-indicator-value.js.map +1 -1
  463. package/dist/default/ui/thumbnail/thumbnail.js +0 -1
  464. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  465. package/dist/default/ui/time/time-group.js +0 -1
  466. package/dist/default/ui/time/time-group.js.map +1 -1
  467. package/dist/default/ui/time/time-separator.js +0 -1
  468. package/dist/default/ui/time/time-separator.js.map +1 -1
  469. package/dist/default/ui/time/time-value.js +13 -6
  470. package/dist/default/ui/time/time-value.js.map +1 -1
  471. package/dist/default/ui/time-slider/index.parts.js +5 -1
  472. package/dist/default/ui/time-slider/index.parts.js.map +1 -1
  473. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js +60 -0
  474. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -0
  475. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +45 -0
  476. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -0
  477. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js +51 -0
  478. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -0
  479. package/dist/default/ui/time-slider/time-slider-root.js +6 -5
  480. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  481. package/dist/default/ui/tooltip/context.js +0 -1
  482. package/dist/default/ui/tooltip/context.js.map +1 -1
  483. package/dist/default/ui/tooltip/group-context.js +0 -1
  484. package/dist/default/ui/tooltip/group-context.js.map +1 -1
  485. package/dist/default/ui/tooltip/tooltip-arrow.js +0 -1
  486. package/dist/default/ui/tooltip/tooltip-arrow.js.map +1 -1
  487. package/dist/default/ui/tooltip/tooltip-label.js +0 -1
  488. package/dist/default/ui/tooltip/tooltip-label.js.map +1 -1
  489. package/dist/default/ui/tooltip/tooltip-popup.js +13 -83
  490. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  491. package/dist/default/ui/tooltip/tooltip-provider.js +0 -1
  492. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  493. package/dist/default/ui/tooltip/tooltip-root.js +5 -2
  494. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  495. package/dist/default/ui/tooltip/tooltip-shortcut.js +0 -1
  496. package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -1
  497. package/dist/default/ui/tooltip/tooltip-trigger.js +2 -5
  498. package/dist/default/ui/tooltip/tooltip-trigger.js.map +1 -1
  499. package/dist/default/ui/volume-indicator/context.js +0 -1
  500. package/dist/default/ui/volume-indicator/context.js.map +1 -1
  501. package/dist/default/ui/volume-indicator/volume-indicator-fill.js +0 -1
  502. package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  503. package/dist/default/ui/volume-indicator/volume-indicator-root.js +1 -2
  504. package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  505. package/dist/default/ui/volume-indicator/volume-indicator-value.js +0 -1
  506. package/dist/default/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  507. package/dist/default/ui/volume-slider/volume-slider-root.js +10 -5
  508. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  509. package/dist/default/utils/merge-props.js +0 -1
  510. package/dist/default/utils/merge-props.js.map +1 -1
  511. package/dist/default/utils/use-attach-iframe.js +0 -1
  512. package/dist/default/utils/use-attach-iframe.js.map +1 -1
  513. package/dist/default/utils/use-attach-media.js +0 -1
  514. package/dist/default/utils/use-attach-media.js.map +1 -1
  515. package/dist/default/utils/use-composed-refs.js +0 -1
  516. package/dist/default/utils/use-composed-refs.js.map +1 -1
  517. package/dist/default/utils/use-destroy.js +0 -1
  518. package/dist/default/utils/use-destroy.js.map +1 -1
  519. package/dist/default/utils/use-force-render.js +0 -1
  520. package/dist/default/utils/use-force-render.js.map +1 -1
  521. package/dist/default/utils/use-latest-ref.js +0 -1
  522. package/dist/default/utils/use-latest-ref.js.map +1 -1
  523. package/dist/default/utils/use-media-component.js +0 -1
  524. package/dist/default/utils/use-media-component.js.map +1 -1
  525. package/dist/default/utils/use-media-instance.js +0 -1
  526. package/dist/default/utils/use-media-instance.js.map +1 -1
  527. package/dist/default/utils/use-render.js +0 -1
  528. package/dist/default/utils/use-render.js.map +1 -1
  529. package/dist/default/utils/use-safe-id.js +0 -1
  530. package/dist/default/utils/use-safe-id.js.map +1 -1
  531. package/dist/dev/__generated__/skins/default-video/styles/base.css +25 -0
  532. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +152 -0
  533. package/dist/dev/__generated__/skins/default-video/styles/container.css +45 -0
  534. package/dist/dev/__generated__/skins/default-video/styles/controls.css +45 -0
  535. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +11 -0
  536. package/dist/dev/__generated__/skins/default-video/styles/popups.css +45 -0
  537. package/dist/dev/__generated__/skins/default-video/styles/poster.css +47 -0
  538. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +112 -0
  539. package/dist/dev/__generated__/skins/default-video/styles/styles.css +514 -0
  540. package/dist/dev/__generated__/skins/default-video/styles/theme.css +22 -0
  541. package/dist/dev/_virtual/_rolldown/runtime.js +15 -1
  542. package/dist/dev/i18n/context.d.ts.map +1 -1
  543. package/dist/dev/i18n/context.js +3 -4
  544. package/dist/dev/i18n/context.js.map +1 -1
  545. package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
  546. package/dist/dev/i18n/create-i18n.js +0 -1
  547. package/dist/dev/i18n/create-i18n.js.map +1 -1
  548. package/dist/dev/i18n/locales/id/register.d.ts +1 -0
  549. package/dist/dev/i18n/locales/id/register.js +8 -0
  550. package/dist/dev/i18n/locales/id/register.js.map +1 -0
  551. package/dist/dev/i18n/locales/id.d.ts +2 -0
  552. package/dist/dev/i18n/locales/id.js +2 -0
  553. package/dist/dev/i18n/locales/lt/register.d.ts +1 -0
  554. package/dist/dev/i18n/locales/lt/register.js +8 -0
  555. package/dist/dev/i18n/locales/lt/register.js.map +1 -0
  556. package/dist/dev/i18n/locales/lt.d.ts +2 -0
  557. package/dist/dev/i18n/locales/lt.js +2 -0
  558. package/dist/dev/icons/dist/react/default/airplay-enter.js.map +1 -1
  559. package/dist/dev/icons/dist/react/default/airplay-exit.js +1 -2
  560. package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
  561. package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
  562. package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
  563. package/dist/dev/icons/dist/react/default/cast-enter.js +2 -45
  564. package/dist/dev/icons/dist/react/default/cast-enter.js.map +1 -1
  565. package/dist/dev/icons/dist/react/default/cast-exit.js +4 -61
  566. package/dist/dev/icons/dist/react/default/cast-exit.js.map +1 -1
  567. package/dist/dev/icons/dist/react/default/check.js.map +1 -1
  568. package/dist/dev/icons/dist/react/default/chevron.js.map +1 -1
  569. package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  570. package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  571. package/dist/dev/icons/dist/react/default/gear.js.map +1 -1
  572. package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
  573. package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -1
  574. package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -1
  575. package/dist/dev/icons/dist/react/default/play.js.map +1 -1
  576. package/dist/dev/icons/dist/react/default/quality.js +1 -1
  577. package/dist/dev/icons/dist/react/default/quality.js.map +1 -1
  578. package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
  579. package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
  580. package/dist/dev/icons/dist/react/default/speech.js.map +1 -1
  581. package/dist/dev/icons/dist/react/default/speed.js.map +1 -1
  582. package/dist/dev/icons/dist/react/default/spinner.js +1 -1
  583. package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
  584. package/dist/dev/icons/dist/react/default/switches.js.map +1 -1
  585. package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
  586. package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
  587. package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
  588. package/dist/dev/icons/dist/react/minimal/airplay-enter.js.map +1 -1
  589. package/dist/dev/icons/dist/react/minimal/airplay-exit.js +1 -2
  590. package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  591. package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
  592. package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
  593. package/dist/dev/icons/dist/react/minimal/cast-enter.js +2 -45
  594. package/dist/dev/icons/dist/react/minimal/cast-enter.js.map +1 -1
  595. package/dist/dev/icons/dist/react/minimal/cast-exit.js +4 -61
  596. package/dist/dev/icons/dist/react/minimal/cast-exit.js.map +1 -1
  597. package/dist/dev/icons/dist/react/minimal/check.js.map +1 -1
  598. package/dist/dev/icons/dist/react/minimal/chevron.js.map +1 -1
  599. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  600. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  601. package/dist/dev/icons/dist/react/minimal/gear.js.map +1 -1
  602. package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
  603. package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -1
  604. package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -1
  605. package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
  606. package/dist/dev/icons/dist/react/minimal/quality.js +1 -1
  607. package/dist/dev/icons/dist/react/minimal/quality.js.map +1 -1
  608. package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
  609. package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
  610. package/dist/dev/icons/dist/react/minimal/speech.js +7 -40
  611. package/dist/dev/icons/dist/react/minimal/speech.js.map +1 -1
  612. package/dist/dev/icons/dist/react/minimal/speed.js.map +1 -1
  613. package/dist/dev/icons/dist/react/minimal/spinner.js +1 -1
  614. package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
  615. package/dist/dev/icons/dist/react/minimal/switches.js.map +1 -1
  616. package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
  617. package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
  618. package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
  619. package/dist/dev/index.d.ts +18 -2
  620. package/dist/dev/index.d.ts.map +1 -0
  621. package/dist/dev/index.js +7 -3
  622. package/dist/dev/media/audio.d.ts.map +1 -1
  623. package/dist/dev/media/audio.js +0 -1
  624. package/dist/dev/media/audio.js.map +1 -1
  625. package/dist/dev/media/cloudflare-video/index.d.ts +2 -0
  626. package/dist/dev/media/cloudflare-video/index.js +2 -0
  627. package/dist/dev/media/cloudflare-video/media.d.ts +13 -0
  628. package/dist/dev/media/cloudflare-video/media.d.ts.map +1 -0
  629. package/dist/dev/media/cloudflare-video/media.js +38 -0
  630. package/dist/dev/media/cloudflare-video/media.js.map +1 -0
  631. package/dist/dev/media/google-cast/google-cast.d.ts +3 -3
  632. package/dist/dev/media/google-cast/google-cast.js +3 -3
  633. package/dist/dev/media/google-cast/google-cast.js.map +1 -1
  634. package/dist/dev/media/hls-audio/index.d.ts +2 -0
  635. package/dist/dev/media/hls-audio/index.js +2 -0
  636. package/dist/dev/media/hls-audio/media.d.ts +13 -0
  637. package/dist/dev/media/hls-audio/media.d.ts.map +1 -0
  638. package/dist/dev/media/hls-audio/media.js +21 -0
  639. package/dist/dev/media/hls-audio/media.js.map +1 -0
  640. package/dist/dev/media/hls-background-video/index.d.ts +2 -0
  641. package/dist/dev/media/hls-background-video/index.js +2 -0
  642. package/dist/dev/media/hls-background-video/media.d.ts +28 -0
  643. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -0
  644. package/dist/dev/media/hls-background-video/media.js +45 -0
  645. package/dist/dev/media/hls-background-video/media.js.map +1 -0
  646. package/dist/dev/media/hls-video/index.d.ts +2 -0
  647. package/dist/dev/media/hls-video/index.js +2 -0
  648. package/dist/dev/media/hls-video/media.d.ts +13 -0
  649. package/dist/dev/media/hls-video/media.d.ts.map +1 -0
  650. package/dist/{default/media/simple-hls-video → dev/media/hls-video}/media.js +6 -7
  651. package/dist/dev/media/hls-video/media.js.map +1 -0
  652. package/dist/dev/media/mux-audio/{media.d.ts → hls-js.d.ts} +3 -3
  653. package/dist/dev/media/mux-audio/hls-js.d.ts.map +1 -0
  654. package/dist/dev/media/mux-audio/{media.js → hls-js.js} +2 -2
  655. package/dist/dev/media/mux-audio/hls-js.js.map +1 -0
  656. package/dist/dev/media/mux-audio/index.d.ts +1 -1
  657. package/dist/dev/media/mux-audio/index.js +1 -1
  658. package/dist/dev/media/mux-audio/spf.d.ts +14 -0
  659. package/dist/dev/media/mux-audio/spf.d.ts.map +1 -0
  660. package/dist/dev/media/mux-audio/spf.js +26 -0
  661. package/dist/dev/media/mux-audio/spf.js.map +1 -0
  662. package/dist/dev/media/mux-background-video/index.d.ts +3 -0
  663. package/dist/dev/media/mux-background-video/index.js +2 -0
  664. package/dist/dev/media/mux-data/mux-data.d.ts +7 -3
  665. package/dist/dev/media/mux-data/mux-data.d.ts.map +1 -1
  666. package/dist/dev/media/mux-data/mux-data.js +7 -3
  667. package/dist/dev/media/mux-data/mux-data.js.map +1 -1
  668. package/dist/dev/media/mux-video/{media.d.ts → hls-js.d.ts} +3 -3
  669. package/dist/dev/media/mux-video/hls-js.d.ts.map +1 -0
  670. package/dist/dev/media/mux-video/hls-js.js +27 -0
  671. package/dist/dev/media/mux-video/hls-js.js.map +1 -0
  672. package/dist/dev/media/mux-video/index.d.ts +1 -1
  673. package/dist/dev/media/mux-video/index.js +1 -1
  674. package/dist/dev/media/mux-video/spf.d.ts +14 -0
  675. package/dist/dev/media/mux-video/spf.d.ts.map +1 -0
  676. package/dist/dev/media/mux-video/spf.js +27 -0
  677. package/dist/dev/media/mux-video/spf.js.map +1 -0
  678. package/dist/dev/media/mux-video/storyboard.js +43 -0
  679. package/dist/dev/media/mux-video/storyboard.js.map +1 -0
  680. package/dist/dev/media/spotify-audio/index.d.ts +2 -0
  681. package/dist/dev/media/spotify-audio/index.js +2 -0
  682. package/dist/dev/media/spotify-audio/media.d.ts +13 -0
  683. package/dist/dev/media/spotify-audio/media.d.ts.map +1 -0
  684. package/dist/dev/media/spotify-audio/media.js +40 -0
  685. package/dist/dev/media/spotify-audio/media.js.map +1 -0
  686. package/dist/dev/media/tiktok-video/index.d.ts +2 -0
  687. package/dist/dev/media/tiktok-video/index.js +2 -0
  688. package/dist/dev/media/tiktok-video/media.d.ts +13 -0
  689. package/dist/dev/media/tiktok-video/media.d.ts.map +1 -0
  690. package/dist/dev/media/tiktok-video/media.js +38 -0
  691. package/dist/dev/media/tiktok-video/media.js.map +1 -0
  692. package/dist/dev/media/twitch-video/index.d.ts +2 -0
  693. package/dist/dev/media/twitch-video/index.js +2 -0
  694. package/dist/dev/media/twitch-video/media.d.ts +13 -0
  695. package/dist/dev/media/twitch-video/media.d.ts.map +1 -0
  696. package/dist/dev/media/twitch-video/media.js +38 -0
  697. package/dist/dev/media/twitch-video/media.js.map +1 -0
  698. package/dist/dev/media/video.d.ts.map +1 -1
  699. package/dist/dev/media/video.js +0 -1
  700. package/dist/dev/media/video.js.map +1 -1
  701. package/dist/dev/media/vimeo-video/media.d.ts.map +1 -1
  702. package/dist/dev/media/vimeo-video/media.js +4 -4
  703. package/dist/dev/media/vimeo-video/media.js.map +1 -1
  704. package/dist/dev/media/youtube-video/index.d.ts +2 -0
  705. package/dist/dev/media/youtube-video/index.js +2 -0
  706. package/dist/dev/media/youtube-video/media.d.ts +13 -0
  707. package/dist/dev/media/youtube-video/media.d.ts.map +1 -0
  708. package/dist/dev/media/youtube-video/media.js +37 -0
  709. package/dist/dev/media/youtube-video/media.js.map +1 -0
  710. package/dist/dev/player/container.d.ts.map +1 -1
  711. package/dist/dev/player/container.js +8 -4
  712. package/dist/dev/player/container.js.map +1 -1
  713. package/dist/dev/player/context.d.ts +7 -8
  714. package/dist/dev/player/context.d.ts.map +1 -1
  715. package/dist/dev/player/context.js +6 -11
  716. package/dist/dev/player/context.js.map +1 -1
  717. package/dist/dev/player/create-player.d.ts +6 -8
  718. package/dist/dev/player/create-player.d.ts.map +1 -1
  719. package/dist/dev/player/create-player.js +45 -15
  720. package/dist/dev/player/create-player.js.map +1 -1
  721. package/dist/dev/player/popup-group-context.js +17 -0
  722. package/dist/dev/player/popup-group-context.js.map +1 -0
  723. package/dist/dev/presets/audio/index.d.ts +2 -1
  724. package/dist/dev/presets/audio/index.js +8 -1
  725. package/dist/dev/presets/audio/index.js.map +1 -0
  726. package/dist/dev/presets/audio/minimal-skin.css +423 -295
  727. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  728. package/dist/dev/presets/audio/minimal-skin.js +13 -19
  729. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  730. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  731. package/dist/dev/presets/audio/minimal-skin.tailwind.js +82 -20
  732. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  733. package/dist/dev/presets/audio/player.d.ts +13 -0
  734. package/dist/dev/presets/audio/player.d.ts.map +1 -0
  735. package/dist/dev/presets/audio/player.js +13 -0
  736. package/dist/dev/presets/audio/player.js.map +1 -0
  737. package/dist/dev/presets/audio/skin.css +459 -345
  738. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  739. package/dist/dev/presets/audio/skin.js +14 -19
  740. package/dist/dev/presets/audio/skin.js.map +1 -1
  741. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  742. package/dist/dev/presets/audio/skin.tailwind.js +15 -19
  743. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  744. package/dist/dev/presets/background/index.d.ts +2 -1
  745. package/dist/dev/presets/background/index.js +8 -1
  746. package/dist/dev/presets/background/index.js.map +1 -0
  747. package/dist/dev/presets/background/player.d.ts +10 -0
  748. package/dist/dev/presets/background/player.d.ts.map +1 -0
  749. package/dist/dev/presets/background/player.js +13 -0
  750. package/dist/dev/presets/background/player.js.map +1 -0
  751. package/dist/dev/presets/background/skin.css +3 -3
  752. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  753. package/dist/dev/presets/background/skin.js +1 -0
  754. package/dist/dev/presets/background/skin.js.map +1 -1
  755. package/dist/dev/presets/live-audio/index.d.ts +2 -1
  756. package/dist/dev/presets/live-audio/index.js +8 -1
  757. package/dist/dev/presets/live-audio/index.js.map +1 -0
  758. package/dist/dev/presets/live-audio/minimal-skin.css +423 -295
  759. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
  760. package/dist/dev/presets/live-audio/minimal-skin.js +3 -2
  761. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
  762. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
  763. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +5 -4
  764. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  765. package/dist/dev/presets/live-audio/player.d.ts +13 -0
  766. package/dist/dev/presets/live-audio/player.d.ts.map +1 -0
  767. package/dist/dev/presets/live-audio/player.js +13 -0
  768. package/dist/dev/presets/live-audio/player.js.map +1 -0
  769. package/dist/dev/presets/live-audio/skin.css +459 -345
  770. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
  771. package/dist/dev/presets/live-audio/skin.js +3 -2
  772. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  773. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
  774. package/dist/dev/presets/live-audio/skin.tailwind.js +5 -4
  775. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
  776. package/dist/dev/presets/live-video/index.d.ts +2 -1
  777. package/dist/dev/presets/live-video/index.js +8 -1
  778. package/dist/dev/presets/live-video/index.js.map +1 -0
  779. package/dist/dev/presets/live-video/minimal-skin.css +656 -588
  780. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  781. package/dist/dev/presets/live-video/minimal-skin.js +13 -12
  782. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  783. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  784. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +28 -26
  785. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  786. package/dist/dev/presets/live-video/player.d.ts +13 -0
  787. package/dist/dev/presets/live-video/player.d.ts.map +1 -0
  788. package/dist/dev/presets/live-video/player.js +13 -0
  789. package/dist/dev/presets/live-video/player.js.map +1 -0
  790. package/dist/dev/presets/live-video/skin.css +661 -622
  791. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  792. package/dist/dev/presets/live-video/skin.js +12 -11
  793. package/dist/dev/presets/live-video/skin.js.map +1 -1
  794. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  795. package/dist/dev/presets/live-video/skin.tailwind.js +25 -112
  796. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  797. package/dist/dev/presets/video/index.d.ts +2 -1
  798. package/dist/dev/presets/video/index.js +8 -1
  799. package/dist/dev/presets/video/index.js.map +1 -0
  800. package/dist/dev/presets/video/minimal-skin.css +656 -588
  801. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  802. package/dist/dev/presets/video/minimal-skin.js +213 -211
  803. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  804. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  805. package/dist/dev/presets/video/minimal-skin.tailwind.js +227 -233
  806. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  807. package/dist/dev/presets/video/player.d.ts +13 -0
  808. package/dist/dev/presets/video/player.d.ts.map +1 -0
  809. package/dist/dev/presets/video/player.js +13 -0
  810. package/dist/dev/presets/video/player.js.map +1 -0
  811. package/dist/dev/presets/video/skin.css +661 -622
  812. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  813. package/dist/dev/presets/video/skin.js +213 -207
  814. package/dist/dev/presets/video/skin.js.map +1 -1
  815. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  816. package/dist/dev/presets/video/skin.tailwind.js +225 -227
  817. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  818. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +6 -6
  819. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  820. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  821. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  822. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +4 -4
  823. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  824. package/dist/dev/skins/dist/default/default/tailwind/components/container.js +8 -0
  825. package/dist/dev/skins/dist/default/default/tailwind/components/container.js.map +1 -0
  826. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
  827. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  828. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +1 -1
  829. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  830. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -1
  831. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  832. package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator-overlay.js +7 -0
  833. package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator-overlay.js.map +1 -0
  834. package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator.js +9 -0
  835. package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator.js.map +1 -0
  836. package/dist/dev/skins/dist/default/default/tailwind/components/menu.js +8 -12
  837. package/dist/dev/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
  838. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  839. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  840. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +1 -1
  841. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  842. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +1 -1
  843. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  844. package/dist/dev/skins/dist/default/default/tailwind/components/seek-indicator.js +12 -0
  845. package/dist/dev/skins/dist/default/default/tailwind/components/seek-indicator.js.map +1 -0
  846. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +17 -9
  847. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  848. package/dist/dev/skins/dist/default/default/tailwind/components/status-indicator.js +29 -0
  849. package/dist/dev/skins/dist/default/default/tailwind/components/status-indicator.js.map +1 -0
  850. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +1 -1
  851. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  852. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +3 -4
  853. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  854. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +2 -2
  855. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  856. package/dist/dev/skins/dist/default/default/tailwind/components/volume-indicator.js +18 -0
  857. package/dist/dev/skins/dist/default/default/tailwind/components/volume-indicator.js.map +1 -0
  858. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +22 -19
  859. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  860. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +6 -6
  861. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  862. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  863. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  864. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +4 -4
  865. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  866. package/dist/dev/skins/dist/default/minimal/tailwind/components/container.js +8 -0
  867. package/dist/dev/skins/dist/default/minimal/tailwind/components/container.js.map +1 -0
  868. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  869. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  870. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +1 -1
  871. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  872. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
  873. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  874. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js +7 -0
  875. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js.map +1 -0
  876. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator.js +10 -0
  877. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator.js.map +1 -0
  878. package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js +9 -13
  879. package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
  880. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  881. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  882. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +2 -2
  883. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  884. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +1 -1
  885. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  886. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek-indicator.js +12 -0
  887. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek-indicator.js.map +1 -0
  888. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +17 -9
  889. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  890. package/dist/dev/skins/dist/default/minimal/tailwind/components/status-indicator.js +29 -0
  891. package/dist/dev/skins/dist/default/minimal/tailwind/components/status-indicator.js.map +1 -0
  892. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +3 -5
  893. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  894. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +2 -2
  895. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  896. package/dist/dev/skins/dist/default/minimal/tailwind/components/volume-indicator.js +19 -0
  897. package/dist/dev/skins/dist/default/minimal/tailwind/components/volume-indicator.js.map +1 -0
  898. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +14 -15
  899. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  900. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +22 -20
  901. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  902. package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -1
  903. package/dist/dev/ui/airplay-button/airplay-button.js +0 -1
  904. package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -1
  905. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
  906. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +0 -1
  907. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  908. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
  909. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +0 -1
  910. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  911. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
  912. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +0 -1
  913. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  914. package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map +1 -1
  915. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +0 -1
  916. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  917. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
  918. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +0 -1
  919. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  920. package/dist/dev/ui/alert-dialog/context.d.ts.map +1 -1
  921. package/dist/dev/ui/alert-dialog/context.js +0 -1
  922. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  923. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts +6 -6
  924. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +1 -1
  925. package/dist/dev/ui/audio-track/use-audio-track-options.js +9 -28
  926. package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -1
  927. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts +43 -0
  928. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts.map +1 -0
  929. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js +64 -0
  930. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -0
  931. package/dist/dev/ui/audio-track-radio-group/index.d.ts +2 -0
  932. package/dist/dev/ui/audio-track-radio-group/index.js +2 -0
  933. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  934. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +0 -1
  935. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  936. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  937. package/dist/dev/ui/captions-button/captions-button.js +0 -1
  938. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  939. package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts +43 -0
  940. package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts.map +1 -0
  941. package/dist/dev/ui/captions-radio-group/captions-radio-group.js +64 -0
  942. package/dist/dev/ui/captions-radio-group/captions-radio-group.js.map +1 -0
  943. package/dist/dev/ui/captions-radio-group/index.d.ts +2 -1
  944. package/dist/dev/ui/captions-radio-group/index.js +2 -1
  945. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts +6 -6
  946. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -1
  947. package/dist/dev/ui/captions-radio-group/use-captions-options.js +13 -34
  948. package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -1
  949. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -1
  950. package/dist/dev/ui/cast-button/cast-button.js +0 -1
  951. package/dist/dev/ui/cast-button/cast-button.js.map +1 -1
  952. package/dist/dev/ui/controls/context.js +0 -1
  953. package/dist/dev/ui/controls/context.js.map +1 -1
  954. package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
  955. package/dist/dev/ui/controls/controls-group.js +0 -1
  956. package/dist/dev/ui/controls/controls-group.js.map +1 -1
  957. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  958. package/dist/dev/ui/controls/controls-root.js +0 -1
  959. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  960. package/dist/dev/ui/create-context-part.js +0 -1
  961. package/dist/dev/ui/create-context-part.js.map +1 -1
  962. package/dist/dev/ui/create-media-button.js +0 -1
  963. package/dist/dev/ui/create-media-button.js.map +1 -1
  964. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -1
  965. package/dist/dev/ui/error-dialog/context.js +0 -1
  966. package/dist/dev/ui/error-dialog/context.js.map +1 -1
  967. package/dist/dev/ui/error-dialog/error-dialog-close.d.ts.map +1 -1
  968. package/dist/dev/ui/error-dialog/error-dialog-close.js +0 -1
  969. package/dist/dev/ui/error-dialog/error-dialog-close.js.map +1 -1
  970. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  971. package/dist/dev/ui/error-dialog/error-dialog-description.js +0 -1
  972. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -1
  973. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -1
  974. package/dist/dev/ui/error-dialog/error-dialog-root.js +0 -1
  975. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -1
  976. package/dist/dev/ui/error-dialog/error-dialog-title.d.ts.map +1 -1
  977. package/dist/dev/ui/error-dialog/error-dialog-title.js +0 -1
  978. package/dist/dev/ui/error-dialog/error-dialog-title.js.map +1 -1
  979. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  980. package/dist/dev/ui/fullscreen-button/fullscreen-button.js +0 -1
  981. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  982. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
  983. package/dist/dev/ui/gesture/gesture.js +0 -1
  984. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  985. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  986. package/dist/dev/ui/gesture/use-doubletap-gesture.js +0 -1
  987. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  988. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  989. package/dist/dev/ui/gesture/use-tap-gesture.js +0 -1
  990. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  991. package/dist/dev/ui/hooks/create-radio-options-hook.d.ts +11 -0
  992. package/dist/dev/ui/hooks/create-radio-options-hook.d.ts.map +1 -0
  993. package/dist/dev/ui/hooks/create-radio-options-hook.js +45 -0
  994. package/dist/dev/ui/hooks/create-radio-options-hook.js.map +1 -0
  995. package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
  996. package/dist/dev/ui/hooks/use-button.js +0 -1
  997. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  998. package/dist/dev/ui/hooks/use-positioned-state.js +0 -1
  999. package/dist/dev/ui/hooks/use-positioned-state.js.map +1 -1
  1000. package/dist/dev/ui/hooks/use-slider.d.ts +2 -1
  1001. package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
  1002. package/dist/dev/ui/hooks/use-slider.js +49 -14
  1003. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  1004. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  1005. package/dist/dev/ui/hotkey/hotkey.js +0 -1
  1006. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  1007. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -1
  1008. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +0 -1
  1009. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  1010. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -1
  1011. package/dist/dev/ui/hotkey/use-hotkey.js +0 -1
  1012. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
  1013. package/dist/{default/ui/input-indicators → dev/ui/input-indicator}/use-indicator-visibility.js +1 -2
  1014. package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -0
  1015. package/dist/{default/ui/input-indicators → dev/ui/input-indicator}/use-input-action-subscription.js +1 -2
  1016. package/dist/dev/ui/input-indicator/use-input-action-subscription.js.map +1 -0
  1017. package/dist/dev/ui/{input-indicators → input-indicator}/use-input-indicator-root.js +1 -2
  1018. package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -0
  1019. package/dist/{default/ui/input-indicators → dev/ui/input-indicator}/use-rendered-indicator-state.js +1 -2
  1020. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js.map +1 -0
  1021. package/dist/dev/ui/live-button/live-button.d.ts.map +1 -1
  1022. package/dist/dev/ui/live-button/live-button.js +0 -1
  1023. package/dist/dev/ui/live-button/live-button.js.map +1 -1
  1024. package/dist/dev/ui/menu/context.d.ts +1 -10
  1025. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  1026. package/dist/dev/ui/menu/context.js +1 -12
  1027. package/dist/dev/ui/menu/context.js.map +1 -1
  1028. package/dist/dev/ui/menu/index.parts.d.ts +3 -6
  1029. package/dist/dev/ui/menu/index.parts.js +3 -9
  1030. package/dist/dev/ui/menu/index.parts.js.map +1 -1
  1031. package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -1
  1032. package/dist/dev/ui/menu/menu-checkbox-item.js +4 -2
  1033. package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -1
  1034. package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
  1035. package/dist/dev/ui/menu/menu-content.js +78 -237
  1036. package/dist/dev/ui/menu/menu-content.js.map +1 -1
  1037. package/dist/dev/ui/menu/menu-group-label.d.ts.map +1 -1
  1038. package/dist/dev/ui/menu/menu-group-label.js +0 -1
  1039. package/dist/dev/ui/menu/menu-group-label.js.map +1 -1
  1040. package/dist/dev/ui/menu/menu-group.d.ts.map +1 -1
  1041. package/dist/dev/ui/menu/menu-group.js +0 -1
  1042. package/dist/dev/ui/menu/menu-group.js.map +1 -1
  1043. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  1044. package/dist/dev/ui/menu/menu-item-indicator.js +0 -1
  1045. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  1046. package/dist/dev/ui/menu/menu-item.d.ts +0 -3
  1047. package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
  1048. package/dist/dev/ui/menu/menu-item.js +11 -19
  1049. package/dist/dev/ui/menu/menu-item.js.map +1 -1
  1050. package/dist/dev/ui/menu/menu-keyboard.js +31 -0
  1051. package/dist/dev/ui/menu/menu-keyboard.js.map +1 -0
  1052. package/dist/dev/ui/menu/menu-radio-group.d.ts.map +1 -1
  1053. package/dist/dev/ui/menu/menu-radio-group.js +0 -1
  1054. package/dist/dev/ui/menu/menu-radio-group.js.map +1 -1
  1055. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  1056. package/dist/dev/ui/menu/menu-radio-item.js +8 -7
  1057. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  1058. package/dist/dev/ui/menu/menu-root.d.ts.map +1 -1
  1059. package/dist/dev/ui/menu/menu-root.js +46 -62
  1060. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  1061. package/dist/dev/ui/menu/menu-separator.d.ts.map +1 -1
  1062. package/dist/dev/ui/menu/menu-separator.js +0 -1
  1063. package/dist/dev/ui/menu/menu-separator.js.map +1 -1
  1064. package/dist/dev/ui/menu/menu-trigger.d.ts +5 -5
  1065. package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
  1066. package/dist/dev/ui/menu/menu-trigger.js +75 -98
  1067. package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
  1068. package/dist/dev/ui/menu/use-menu-group.js +0 -1
  1069. package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
  1070. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  1071. package/dist/dev/ui/mute-button/mute-button.js +2 -2
  1072. package/dist/dev/ui/mute-button/mute-button.js.map +1 -1
  1073. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  1074. package/dist/dev/ui/pip-button/pip-button.js +0 -1
  1075. package/dist/dev/ui/pip-button/pip-button.js.map +1 -1
  1076. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  1077. package/dist/dev/ui/play-button/play-button.js +0 -1
  1078. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  1079. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts +6 -7
  1080. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -1
  1081. package/dist/dev/ui/playback-rate/use-playback-rate-options.js +15 -27
  1082. package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  1083. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  1084. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +0 -1
  1085. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  1086. package/dist/dev/ui/playback-rate-radio-group/index.d.ts +2 -0
  1087. package/dist/dev/ui/playback-rate-radio-group/index.js +2 -0
  1088. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts +43 -0
  1089. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts.map +1 -0
  1090. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js +64 -0
  1091. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -0
  1092. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  1093. package/dist/dev/ui/popover/context.js +0 -1
  1094. package/dist/dev/ui/popover/context.js.map +1 -1
  1095. package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
  1096. package/dist/dev/ui/popover/popover-arrow.js +0 -1
  1097. package/dist/dev/ui/popover/popover-arrow.js.map +1 -1
  1098. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  1099. package/dist/dev/ui/popover/popover-popup.js +10 -81
  1100. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  1101. package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
  1102. package/dist/dev/ui/popover/popover-root.js +2 -2
  1103. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  1104. package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
  1105. package/dist/dev/ui/popover/popover-trigger.js +4 -6
  1106. package/dist/dev/ui/popover/popover-trigger.js.map +1 -1
  1107. package/dist/dev/ui/popover/use-popup-position.js +33 -0
  1108. package/dist/dev/ui/popover/use-popup-position.js.map +1 -0
  1109. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  1110. package/dist/dev/ui/poster/poster.js +8 -5
  1111. package/dist/dev/ui/poster/poster.js.map +1 -1
  1112. package/dist/dev/ui/quality/use-quality-options.d.ts +6 -8
  1113. package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -1
  1114. package/dist/dev/ui/quality/use-quality-options.js +10 -35
  1115. package/dist/dev/ui/quality/use-quality-options.js.map +1 -1
  1116. package/dist/dev/ui/quality-radio-group/index.d.ts +2 -0
  1117. package/dist/dev/ui/quality-radio-group/index.js +2 -0
  1118. package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts +44 -0
  1119. package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts.map +1 -0
  1120. package/dist/dev/ui/quality-radio-group/quality-radio-group.js +65 -0
  1121. package/dist/dev/ui/quality-radio-group/quality-radio-group.js.map +1 -0
  1122. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  1123. package/dist/dev/ui/seek-button/seek-button.js +0 -1
  1124. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  1125. package/dist/dev/ui/seek-indicator/context.js +0 -1
  1126. package/dist/dev/ui/seek-indicator/context.js.map +1 -1
  1127. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -1
  1128. package/dist/dev/ui/seek-indicator/seek-indicator-root.js +1 -2
  1129. package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  1130. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map +1 -1
  1131. package/dist/dev/ui/seek-indicator/seek-indicator-value.js +0 -1
  1132. package/dist/dev/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  1133. package/dist/dev/ui/slider/context.js +7 -3
  1134. package/dist/dev/ui/slider/context.js.map +1 -1
  1135. package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
  1136. package/dist/dev/ui/slider/slider-buffer.js +0 -1
  1137. package/dist/dev/ui/slider/slider-buffer.js.map +1 -1
  1138. package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
  1139. package/dist/dev/ui/slider/slider-fill.js +0 -1
  1140. package/dist/dev/ui/slider/slider-fill.js.map +1 -1
  1141. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  1142. package/dist/dev/ui/slider/slider-preview.js +2 -4
  1143. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  1144. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  1145. package/dist/dev/ui/slider/slider-root.js +3 -2
  1146. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  1147. package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
  1148. package/dist/dev/ui/slider/slider-thumb.js +0 -1
  1149. package/dist/dev/ui/slider/slider-thumb.js.map +1 -1
  1150. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  1151. package/dist/dev/ui/slider/slider-thumbnail.js +2 -3
  1152. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  1153. package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
  1154. package/dist/dev/ui/slider/slider-track.js +0 -1
  1155. package/dist/dev/ui/slider/slider-track.js.map +1 -1
  1156. package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
  1157. package/dist/dev/ui/slider/slider-value.js +3 -3
  1158. package/dist/dev/ui/slider/slider-value.js.map +1 -1
  1159. package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -1
  1160. package/dist/dev/ui/status-announcer/status-announcer.js +7 -5
  1161. package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -1
  1162. package/dist/dev/ui/status-indicator/context.js +0 -1
  1163. package/dist/dev/ui/status-indicator/context.js.map +1 -1
  1164. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -1
  1165. package/dist/dev/ui/status-indicator/status-indicator-root.js +2 -3
  1166. package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -1
  1167. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map +1 -1
  1168. package/dist/dev/ui/status-indicator/status-indicator-value.js +0 -1
  1169. package/dist/dev/ui/status-indicator/status-indicator-value.js.map +1 -1
  1170. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  1171. package/dist/dev/ui/thumbnail/thumbnail.js +0 -1
  1172. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  1173. package/dist/dev/ui/time/time-group.d.ts.map +1 -1
  1174. package/dist/dev/ui/time/time-group.js +0 -1
  1175. package/dist/dev/ui/time/time-group.js.map +1 -1
  1176. package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
  1177. package/dist/dev/ui/time/time-separator.js +0 -1
  1178. package/dist/dev/ui/time/time-separator.js.map +1 -1
  1179. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  1180. package/dist/dev/ui/time/time-value.js +13 -6
  1181. package/dist/dev/ui/time/time-value.js.map +1 -1
  1182. package/dist/dev/ui/time-slider/index.parts.d.ts +4 -2
  1183. package/dist/dev/ui/time-slider/index.parts.js +5 -1
  1184. package/dist/dev/ui/time-slider/index.parts.js.map +1 -1
  1185. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js +60 -0
  1186. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -0
  1187. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.d.ts +19 -0
  1188. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.d.ts.map +1 -0
  1189. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +45 -0
  1190. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -0
  1191. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.d.ts +22 -0
  1192. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.d.ts.map +1 -0
  1193. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js +51 -0
  1194. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -0
  1195. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  1196. package/dist/dev/ui/time-slider/time-slider-root.js +6 -5
  1197. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  1198. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  1199. package/dist/dev/ui/tooltip/context.js +0 -1
  1200. package/dist/dev/ui/tooltip/context.js.map +1 -1
  1201. package/dist/dev/ui/tooltip/group-context.js +0 -1
  1202. package/dist/dev/ui/tooltip/group-context.js.map +1 -1
  1203. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
  1204. package/dist/dev/ui/tooltip/tooltip-arrow.js +0 -1
  1205. package/dist/dev/ui/tooltip/tooltip-arrow.js.map +1 -1
  1206. package/dist/dev/ui/tooltip/tooltip-label.d.ts.map +1 -1
  1207. package/dist/dev/ui/tooltip/tooltip-label.js +0 -1
  1208. package/dist/dev/ui/tooltip/tooltip-label.js.map +1 -1
  1209. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  1210. package/dist/dev/ui/tooltip/tooltip-popup.js +13 -83
  1211. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  1212. package/dist/dev/ui/tooltip/tooltip-provider.d.ts.map +1 -1
  1213. package/dist/dev/ui/tooltip/tooltip-provider.js +0 -1
  1214. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  1215. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  1216. package/dist/dev/ui/tooltip/tooltip-root.js +5 -2
  1217. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  1218. package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -1
  1219. package/dist/dev/ui/tooltip/tooltip-shortcut.js +0 -1
  1220. package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -1
  1221. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  1222. package/dist/dev/ui/tooltip/tooltip-trigger.js +2 -5
  1223. package/dist/dev/ui/tooltip/tooltip-trigger.js.map +1 -1
  1224. package/dist/dev/ui/volume-indicator/context.js +0 -1
  1225. package/dist/dev/ui/volume-indicator/context.js.map +1 -1
  1226. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts.map +1 -1
  1227. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +0 -1
  1228. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  1229. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
  1230. package/dist/dev/ui/volume-indicator/volume-indicator-root.js +1 -2
  1231. package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  1232. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts.map +1 -1
  1233. package/dist/dev/ui/volume-indicator/volume-indicator-value.js +0 -1
  1234. package/dist/dev/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  1235. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  1236. package/dist/dev/ui/volume-slider/volume-slider-root.js +10 -5
  1237. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  1238. package/dist/dev/utils/merge-props.d.ts.map +1 -1
  1239. package/dist/dev/utils/merge-props.js +0 -1
  1240. package/dist/dev/utils/merge-props.js.map +1 -1
  1241. package/dist/dev/utils/use-attach-iframe.js +0 -1
  1242. package/dist/dev/utils/use-attach-iframe.js.map +1 -1
  1243. package/dist/dev/utils/use-attach-media.d.ts.map +1 -1
  1244. package/dist/dev/utils/use-attach-media.js +0 -1
  1245. package/dist/dev/utils/use-attach-media.js.map +1 -1
  1246. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -1
  1247. package/dist/dev/utils/use-composed-refs.js +0 -1
  1248. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  1249. package/dist/dev/utils/use-destroy.d.ts.map +1 -1
  1250. package/dist/dev/utils/use-destroy.js +0 -1
  1251. package/dist/dev/utils/use-destroy.js.map +1 -1
  1252. package/dist/dev/utils/use-force-render.js +0 -1
  1253. package/dist/dev/utils/use-force-render.js.map +1 -1
  1254. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -1
  1255. package/dist/dev/utils/use-latest-ref.js +0 -1
  1256. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  1257. package/dist/dev/utils/use-media-component.d.ts.map +1 -1
  1258. package/dist/dev/utils/use-media-component.js +0 -1
  1259. package/dist/dev/utils/use-media-component.js.map +1 -1
  1260. package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
  1261. package/dist/dev/utils/use-media-instance.js +0 -1
  1262. package/dist/dev/utils/use-media-instance.js.map +1 -1
  1263. package/dist/dev/utils/use-render.d.ts.map +1 -1
  1264. package/dist/dev/utils/use-render.js +0 -1
  1265. package/dist/dev/utils/use-render.js.map +1 -1
  1266. package/dist/dev/utils/use-safe-id.js +0 -1
  1267. package/dist/dev/utils/use-safe-id.js.map +1 -1
  1268. package/docs/README.md +1 -1
  1269. package/docs/concepts/cast.md +6 -6
  1270. package/docs/concepts/features.md +11 -8
  1271. package/docs/concepts/i18n.md +16 -26
  1272. package/docs/concepts/media-sources.md +461 -0
  1273. package/docs/concepts/mux-data.md +9 -7
  1274. package/docs/concepts/overview.md +15 -18
  1275. package/docs/concepts/presets.md +18 -19
  1276. package/docs/concepts/skins.md +868 -862
  1277. package/docs/concepts/ui-components.md +3 -3
  1278. package/docs/concepts/why-videojs.md +4 -4
  1279. package/docs/how-to/build-your-own-component.md +8 -6
  1280. package/docs/how-to/customize-skins.md +2679 -2369
  1281. package/docs/how-to/i18n-override-translations.md +3 -3
  1282. package/docs/how-to/i18n-register-locale.md +3 -3
  1283. package/docs/how-to/i18n-ssr.md +3 -3
  1284. package/docs/how-to/i18n-switch-locale.md +3 -3
  1285. package/docs/how-to/installation.md +3 -8
  1286. package/docs/how-to/migrate-from-media-chrome.md +412 -0
  1287. package/docs/how-to/migrate-from-mux-player.md +551 -0
  1288. package/docs/how-to/migrate-from-plyr.md +385 -0
  1289. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  1290. package/docs/llms.txt +51 -39
  1291. package/docs/reference/airplay-button.md +6 -6
  1292. package/docs/reference/audio-track-radio-group.md +198 -29
  1293. package/docs/reference/buffering-indicator.md +6 -6
  1294. package/docs/reference/captions-button.md +6 -6
  1295. package/docs/reference/captions-radio-group.md +206 -29
  1296. package/docs/reference/cast-button.md +6 -6
  1297. package/docs/reference/controls.md +6 -6
  1298. package/docs/reference/create-player.md +22 -31
  1299. package/docs/reference/create-translator.md +1 -1
  1300. package/docs/reference/dash-video.md +14 -0
  1301. package/docs/reference/feature-controls.md +13 -1
  1302. package/docs/reference/feature-fullscreen.md +1 -1
  1303. package/docs/reference/feature-orientation-lock.md +2 -2
  1304. package/docs/reference/feature-text-tracks.md +3 -1
  1305. package/docs/reference/feature-volume.md +14 -2
  1306. package/docs/reference/fullscreen-button.md +6 -6
  1307. package/docs/reference/get-i18n-translations.md +1 -1
  1308. package/docs/reference/has-registered-locale.md +1 -1
  1309. package/docs/reference/{simple-hls-audio-only.md → hls-audio.md} +5 -5
  1310. package/docs/reference/{simple-hls-video.md → hls-video.md} +4 -4
  1311. package/docs/reference/hlsjs-video.md +17 -9
  1312. package/docs/reference/menu.md +65 -157
  1313. package/docs/reference/mute-button.md +94 -18
  1314. package/docs/reference/mux-audio.md +1 -107
  1315. package/docs/reference/mux-video.md +1 -107
  1316. package/docs/reference/native-hls-video.md +24 -0
  1317. package/docs/reference/pip-button.md +6 -6
  1318. package/docs/reference/play-button.md +6 -6
  1319. package/docs/reference/playback-rate-button.md +6 -6
  1320. package/docs/reference/playback-rate-radio-group.md +200 -29
  1321. package/docs/reference/player-container.md +25 -25
  1322. package/docs/reference/player-provider.md +24 -24
  1323. package/docs/reference/popover.md +6 -6
  1324. package/docs/reference/poster.md +6 -6
  1325. package/docs/reference/quality-radio-group.md +200 -31
  1326. package/docs/reference/register-i18n.md +1 -1
  1327. package/docs/reference/seek-button.md +6 -6
  1328. package/docs/reference/slider.md +1 -1
  1329. package/docs/reference/thumbnail.md +7 -7
  1330. package/docs/reference/time-slider.md +251 -7
  1331. package/docs/reference/time.md +78 -34
  1332. package/docs/reference/translation-phrases.md +27 -3
  1333. package/docs/reference/use-container-attach.md +5 -5
  1334. package/docs/reference/use-locale.md +1 -1
  1335. package/docs/reference/use-media-attach.md +2 -2
  1336. package/docs/reference/use-media.md +16 -10
  1337. package/docs/reference/use-player-context.md +2 -7
  1338. package/docs/reference/use-player.md +25 -19
  1339. package/docs/reference/use-store.md +15 -15
  1340. package/docs/reference/volume-slider.md +13 -11
  1341. package/package.json +28 -8
  1342. package/dist/default/media/mux-audio/media.js.map +0 -1
  1343. package/dist/default/media/mux-video/media.js +0 -56
  1344. package/dist/default/media/mux-video/media.js.map +0 -1
  1345. package/dist/default/media/simple-hls-audio-only/index.js +0 -2
  1346. package/dist/default/media/simple-hls-audio-only/media.js +0 -22
  1347. package/dist/default/media/simple-hls-audio-only/media.js.map +0 -1
  1348. package/dist/default/media/simple-hls-video/index.js +0 -2
  1349. package/dist/default/media/simple-hls-video/media.js.map +0 -1
  1350. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js +0 -40
  1351. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js.map +0 -1
  1352. package/dist/default/skins/dist/default/default/tailwind/components/root.js +0 -8
  1353. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +0 -1
  1354. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js +0 -41
  1355. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +0 -1
  1356. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +0 -8
  1357. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +0 -1
  1358. package/dist/default/tailwind.css +0 -42
  1359. package/dist/default/ui/input-indicators/use-indicator-visibility.js.map +0 -1
  1360. package/dist/default/ui/input-indicators/use-input-action-subscription.js.map +0 -1
  1361. package/dist/default/ui/input-indicators/use-input-indicator-root.js.map +0 -1
  1362. package/dist/default/ui/input-indicators/use-rendered-indicator-state.js.map +0 -1
  1363. package/dist/default/ui/menu/menu-back.js +0 -34
  1364. package/dist/default/ui/menu/menu-back.js.map +0 -1
  1365. package/dist/default/ui/menu/menu-item-setting-provider.js +0 -77
  1366. package/dist/default/ui/menu/menu-item-setting-provider.js.map +0 -1
  1367. package/dist/default/ui/menu/menu-item-value.js +0 -28
  1368. package/dist/default/ui/menu/menu-item-value.js.map +0 -1
  1369. package/dist/default/ui/menu/menu-view.js +0 -23
  1370. package/dist/default/ui/menu/menu-view.js.map +0 -1
  1371. package/dist/dev/media/mux-audio/media.d.ts.map +0 -1
  1372. package/dist/dev/media/mux-audio/media.js.map +0 -1
  1373. package/dist/dev/media/mux-video/media.d.ts.map +0 -1
  1374. package/dist/dev/media/mux-video/media.js +0 -56
  1375. package/dist/dev/media/mux-video/media.js.map +0 -1
  1376. package/dist/dev/media/simple-hls-audio-only/index.d.ts +0 -2
  1377. package/dist/dev/media/simple-hls-audio-only/index.js +0 -2
  1378. package/dist/dev/media/simple-hls-audio-only/media.d.ts +0 -13
  1379. package/dist/dev/media/simple-hls-audio-only/media.d.ts.map +0 -1
  1380. package/dist/dev/media/simple-hls-audio-only/media.js +0 -22
  1381. package/dist/dev/media/simple-hls-audio-only/media.js.map +0 -1
  1382. package/dist/dev/media/simple-hls-video/index.d.ts +0 -2
  1383. package/dist/dev/media/simple-hls-video/index.js +0 -2
  1384. package/dist/dev/media/simple-hls-video/media.d.ts +0 -13
  1385. package/dist/dev/media/simple-hls-video/media.d.ts.map +0 -1
  1386. package/dist/dev/media/simple-hls-video/media.js.map +0 -1
  1387. package/dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js +0 -40
  1388. package/dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js.map +0 -1
  1389. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +0 -8
  1390. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +0 -1
  1391. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js +0 -41
  1392. package/dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +0 -1
  1393. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +0 -8
  1394. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +0 -1
  1395. package/dist/dev/tailwind.css +0 -42
  1396. package/dist/dev/ui/input-indicators/use-indicator-visibility.js.map +0 -1
  1397. package/dist/dev/ui/input-indicators/use-input-action-subscription.js.map +0 -1
  1398. package/dist/dev/ui/input-indicators/use-input-indicator-root.js.map +0 -1
  1399. package/dist/dev/ui/input-indicators/use-rendered-indicator-state.js.map +0 -1
  1400. package/dist/dev/ui/menu/menu-back.d.ts +0 -17
  1401. package/dist/dev/ui/menu/menu-back.d.ts.map +0 -1
  1402. package/dist/dev/ui/menu/menu-back.js +0 -34
  1403. package/dist/dev/ui/menu/menu-back.js.map +0 -1
  1404. package/dist/dev/ui/menu/menu-item-setting-provider.js +0 -77
  1405. package/dist/dev/ui/menu/menu-item-setting-provider.js.map +0 -1
  1406. package/dist/dev/ui/menu/menu-item-type.d.ts +0 -5
  1407. package/dist/dev/ui/menu/menu-item-type.d.ts.map +0 -1
  1408. package/dist/dev/ui/menu/menu-item-value.d.ts +0 -12
  1409. package/dist/dev/ui/menu/menu-item-value.d.ts.map +0 -1
  1410. package/dist/dev/ui/menu/menu-item-value.js +0 -28
  1411. package/dist/dev/ui/menu/menu-item-value.js.map +0 -1
  1412. package/dist/dev/ui/menu/menu-view.d.ts +0 -13
  1413. package/dist/dev/ui/menu/menu-view.d.ts.map +0 -1
  1414. package/dist/dev/ui/menu/menu-view.js +0 -23
  1415. package/dist/dev/ui/menu/menu-view.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fullscreen-button.js","names":[],"sources":["../../../../src/ui/fullscreen-button/fullscreen-button.tsx"],"sourcesContent":["'use client';\n\nimport { FullscreenButtonCore, FullscreenButtonDataAttrs } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface FullscreenButtonProps\n extends UIComponentProps<'button', FullscreenButtonCore.State>,\n FullscreenButtonCore.Props {}\n\n/** A button that toggles fullscreen. */\nexport const FullscreenButton = createMediaButton<FullscreenButtonCore, FullscreenButtonProps>({\n displayName: 'FullscreenButton',\n core: FullscreenButtonCore,\n stateAttrMap: FullscreenButtonDataAttrs,\n selector: selectFullscreen,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'toggleFullscreen',\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace FullscreenButton {\n export type Props = FullscreenButtonProps;\n export type State = FullscreenButtonCore.State;\n}\n"],"mappings":";;;;;;AAaA,MAAa,mBAAmB,kBAA+D;CAC7F,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;CACd,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
1
+ {"version":3,"file":"fullscreen-button.js","names":[],"sources":["../../../../src/ui/fullscreen-button/fullscreen-button.tsx"],"sourcesContent":["import { FullscreenButtonCore, FullscreenButtonDataAttrs } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface FullscreenButtonProps\n extends UIComponentProps<'button', FullscreenButtonCore.State>,\n FullscreenButtonCore.Props {}\n\n/** A button that toggles fullscreen. */\nexport const FullscreenButton = createMediaButton<FullscreenButtonCore, FullscreenButtonProps>({\n displayName: 'FullscreenButton',\n core: FullscreenButtonCore,\n stateAttrMap: FullscreenButtonDataAttrs,\n selector: selectFullscreen,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'toggleFullscreen',\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace FullscreenButton {\n export type Props = FullscreenButtonProps;\n export type State = FullscreenButtonCore.State;\n}\n"],"mappings":";;;;;AAWA,MAAa,mBAAmB,kBAA+D;CAC7F,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;CACd,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useContainer, usePlayer } from "../../player/context.js";
3
2
  import { createDoubleTapGesture, createTapGesture, resolveGestureAction } from "@videojs/core/dom";
4
3
  import { useEffect } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.js","names":[],"sources":["../../../../src/ui/gesture/gesture.tsx"],"sourcesContent":["'use client';\n\nimport type { AnyPlayerStore } from '@videojs/core/dom';\nimport {\n createDoubleTapGesture,\n createTapGesture,\n type GestureActionName,\n type GesturePointerType,\n type GestureRegion,\n resolveGestureAction,\n} from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface GestureProps {\n type: 'tap' | 'doubletap' | (string & {});\n action: GestureActionName | (string & {});\n value?: number;\n pointer?: GesturePointerType;\n region?: GestureRegion;\n disabled?: boolean;\n}\n\nexport function Gesture({ type, action, value, pointer, region, disabled }: GestureProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !type || !action || disabled) return;\n\n const resolver = resolveGestureAction(action);\n if (!resolver) return;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = { pointer, region, action, value };\n\n if (type === 'doubletap') {\n return createDoubleTapGesture(container, onActivate, options);\n }\n\n return createTapGesture(container, onActivate, options);\n }, [container, store, type, action, value, pointer, region, disabled]);\n\n return null;\n}\n\nexport namespace Gesture {\n export type Props = GestureProps;\n}\n\n/** @deprecated Use `GestureProps` instead. */\nexport type MediaGestureProps = GestureProps;\n\n/** @deprecated Use `Gesture` instead. */\nexport const MediaGesture = Gesture;\n"],"mappings":";;;;;AAyBA,SAAgB,QAAQ,EAAE,MAAM,QAAQ,OAAO,SAAS,QAAQ,YAAqC;CACnG,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAE/B,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,UAAU;EAEhD,MAAM,WAAW,qBAAqB,MAAM;EAC5C,IAAI,CAAC,UAAU;EAEf,MAAM,cAAc,UAAwB;GAC1C,SAAS;IAAE;IAAO;IAAO;GAAM,CAAC;EAClC;EAEA,MAAM,UAAU;GAAE;GAAS;GAAQ;GAAQ;EAAM;EAEjD,IAAI,SAAS,aACX,OAAO,uBAAuB,WAAW,YAAY,OAAO;EAG9D,OAAO,iBAAiB,WAAW,YAAY,OAAO;CACxD,GAAG;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAS;EAAQ;CAAQ,CAAC;CAErE,OAAO;AACT;;AAUA,MAAa,eAAe"}
1
+ {"version":3,"file":"gesture.js","names":[],"sources":["../../../../src/ui/gesture/gesture.tsx"],"sourcesContent":["import type { AnyPlayerStore } from '@videojs/core/dom';\nimport {\n createDoubleTapGesture,\n createTapGesture,\n type GestureActionName,\n type GesturePointerType,\n type GestureRegion,\n resolveGestureAction,\n} from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface GestureProps {\n type: 'tap' | 'doubletap' | (string & {});\n action: GestureActionName | (string & {});\n value?: number;\n pointer?: GesturePointerType;\n region?: GestureRegion;\n disabled?: boolean;\n}\n\nexport function Gesture({ type, action, value, pointer, region, disabled }: GestureProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !type || !action || disabled) return;\n\n const resolver = resolveGestureAction(action);\n if (!resolver) return;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = { pointer, region, action, value };\n\n if (type === 'doubletap') {\n return createDoubleTapGesture(container, onActivate, options);\n }\n\n return createTapGesture(container, onActivate, options);\n }, [container, store, type, action, value, pointer, region, disabled]);\n\n return null;\n}\n\nexport namespace Gesture {\n export type Props = GestureProps;\n}\n\n/** @deprecated Use `GestureProps` instead. */\nexport type MediaGestureProps = GestureProps;\n\n/** @deprecated Use `Gesture` instead. */\nexport const MediaGesture = Gesture;\n"],"mappings":";;;;AAuBA,SAAgB,QAAQ,EAAE,MAAM,QAAQ,OAAO,SAAS,QAAQ,YAAqC;CACnG,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAE/B,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,UAAU;EAEhD,MAAM,WAAW,qBAAqB,MAAM;EAC5C,IAAI,CAAC,UAAU;EAEf,MAAM,cAAc,UAAwB;GAC1C,SAAS;IAAE;IAAO;IAAO;GAAM,CAAC;EAClC;EAEA,MAAM,UAAU;GAAE;GAAS;GAAQ;GAAQ;EAAM;EAEjD,IAAI,SAAS,aACX,OAAO,uBAAuB,WAAW,YAAY,OAAO;EAG9D,OAAO,iBAAiB,WAAW,YAAY,OAAO;CACxD,GAAG;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAS;EAAQ;CAAQ,CAAC;CAErE,OAAO;AACT;;AAUA,MAAa,eAAe"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useContainer } from "../../player/context.js";
3
2
  import { useLatestRef } from "../../utils/use-latest-ref.js";
4
3
  import { createDoubleTapGesture } from "@videojs/core/dom";
@@ -1 +1 @@
1
- {"version":3,"file":"use-doubletap-gesture.js","names":[],"sources":["../../../../src/ui/gesture/use-doubletap-gesture.ts"],"sourcesContent":["'use client';\n\nimport { createDoubleTapGesture, type GesturePointerType, type GestureRegion } from '@videojs/core/dom';\nimport type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseDoubleTapGestureOptions {\n pointer?: GesturePointerType;\n region?: GestureRegion;\n disabled?: boolean;\n target?: RefObject<HTMLElement | null>;\n}\n\nexport function useDoubleTapGesture(\n onActivate: (event: PointerEvent) => void,\n options?: UseDoubleTapGestureOptions\n): void {\n const { pointer, region, disabled = false, target } = options ?? {};\n const contextContainer = useContainer();\n const container = target?.current ?? contextContainer;\n const onActivateRef = useLatestRef(onActivate);\n\n useEffect(() => {\n if (!container || disabled) return;\n\n return createDoubleTapGesture(container, (event) => onActivateRef.current(event), { pointer, region });\n }, [container, disabled, pointer, region]);\n}\n"],"mappings":";;;;;;AAgBA,SAAgB,oBACd,YACA,SACM;CACN,MAAM,EAAE,SAAS,QAAQ,WAAW,OAAO,WAAW,WAAW,CAAC;CAClE,MAAM,mBAAmB,aAAa;CACtC,MAAM,YAAY,QAAQ,WAAW;CACrC,MAAM,gBAAgB,aAAa,UAAU;CAE7C,gBAAgB;EACd,IAAI,CAAC,aAAa,UAAU;EAE5B,OAAO,uBAAuB,YAAY,UAAU,cAAc,QAAQ,KAAK,GAAG;GAAE;GAAS;EAAO,CAAC;CACvG,GAAG;EAAC;EAAW;EAAU;EAAS;CAAM,CAAC;AAC3C"}
1
+ {"version":3,"file":"use-doubletap-gesture.js","names":[],"sources":["../../../../src/ui/gesture/use-doubletap-gesture.ts"],"sourcesContent":["import { createDoubleTapGesture, type GesturePointerType, type GestureRegion } from '@videojs/core/dom';\nimport type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseDoubleTapGestureOptions {\n pointer?: GesturePointerType;\n region?: GestureRegion;\n disabled?: boolean;\n target?: RefObject<HTMLElement | null>;\n}\n\nexport function useDoubleTapGesture(\n onActivate: (event: PointerEvent) => void,\n options?: UseDoubleTapGestureOptions\n): void {\n const { pointer, region, disabled = false, target } = options ?? {};\n const contextContainer = useContainer();\n const container = target?.current ?? contextContainer;\n const onActivateRef = useLatestRef(onActivate);\n\n useEffect(() => {\n if (!container || disabled) return;\n\n return createDoubleTapGesture(container, (event) => onActivateRef.current(event), { pointer, region });\n }, [container, disabled, pointer, region]);\n}\n"],"mappings":";;;;;AAcA,SAAgB,oBACd,YACA,SACM;CACN,MAAM,EAAE,SAAS,QAAQ,WAAW,OAAO,WAAW,WAAW,CAAC;CAClE,MAAM,mBAAmB,aAAa;CACtC,MAAM,YAAY,QAAQ,WAAW;CACrC,MAAM,gBAAgB,aAAa,UAAU;CAE7C,gBAAgB;EACd,IAAI,CAAC,aAAa,UAAU;EAE5B,OAAO,uBAAuB,YAAY,UAAU,cAAc,QAAQ,KAAK,GAAG;GAAE;GAAS;EAAO,CAAC;CACvG,GAAG;EAAC;EAAW;EAAU;EAAS;CAAM,CAAC;AAC3C"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useContainer } from "../../player/context.js";
3
2
  import { useLatestRef } from "../../utils/use-latest-ref.js";
4
3
  import { createTapGesture } from "@videojs/core/dom";
@@ -1 +1 @@
1
- {"version":3,"file":"use-tap-gesture.js","names":[],"sources":["../../../../src/ui/gesture/use-tap-gesture.ts"],"sourcesContent":["'use client';\n\nimport { createTapGesture, type GesturePointerType, type GestureRegion } from '@videojs/core/dom';\nimport type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseTapGestureOptions {\n pointer?: GesturePointerType;\n region?: GestureRegion;\n disabled?: boolean;\n target?: RefObject<HTMLElement | null>;\n}\n\nexport function useTapGesture(onActivate: (event: PointerEvent) => void, options?: UseTapGestureOptions): void {\n const { pointer, region, disabled = false, target } = options ?? {};\n const contextContainer = useContainer();\n const container = target?.current ?? contextContainer;\n const onActivateRef = useLatestRef(onActivate);\n\n useEffect(() => {\n if (!container || disabled) return;\n\n return createTapGesture(container, (event) => onActivateRef.current(event), { pointer, region });\n }, [container, disabled, pointer, region]);\n}\n"],"mappings":";;;;;;AAgBA,SAAgB,cAAc,YAA2C,SAAsC;CAC7G,MAAM,EAAE,SAAS,QAAQ,WAAW,OAAO,WAAW,WAAW,CAAC;CAClE,MAAM,mBAAmB,aAAa;CACtC,MAAM,YAAY,QAAQ,WAAW;CACrC,MAAM,gBAAgB,aAAa,UAAU;CAE7C,gBAAgB;EACd,IAAI,CAAC,aAAa,UAAU;EAE5B,OAAO,iBAAiB,YAAY,UAAU,cAAc,QAAQ,KAAK,GAAG;GAAE;GAAS;EAAO,CAAC;CACjG,GAAG;EAAC;EAAW;EAAU;EAAS;CAAM,CAAC;AAC3C"}
1
+ {"version":3,"file":"use-tap-gesture.js","names":[],"sources":["../../../../src/ui/gesture/use-tap-gesture.ts"],"sourcesContent":["import { createTapGesture, type GesturePointerType, type GestureRegion } from '@videojs/core/dom';\nimport type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseTapGestureOptions {\n pointer?: GesturePointerType;\n region?: GestureRegion;\n disabled?: boolean;\n target?: RefObject<HTMLElement | null>;\n}\n\nexport function useTapGesture(onActivate: (event: PointerEvent) => void, options?: UseTapGestureOptions): void {\n const { pointer, region, disabled = false, target } = options ?? {};\n const contextContainer = useContainer();\n const container = target?.current ?? contextContainer;\n const onActivateRef = useLatestRef(onActivate);\n\n useEffect(() => {\n if (!container || disabled) return;\n\n return createTapGesture(container, (event) => onActivateRef.current(event), { pointer, region });\n }, [container, disabled, pointer, region]);\n}\n"],"mappings":";;;;;AAcA,SAAgB,cAAc,YAA2C,SAAsC;CAC7G,MAAM,EAAE,SAAS,QAAQ,WAAW,OAAO,WAAW,WAAW,CAAC;CAClE,MAAM,mBAAmB,aAAa;CACtC,MAAM,YAAY,QAAQ,WAAW;CACrC,MAAM,gBAAgB,aAAa,UAAU;CAE7C,gBAAgB;EACd,IAAI,CAAC,aAAa,UAAU;EAE5B,OAAO,iBAAiB,YAAY,UAAU,cAAc,QAAQ,KAAK,GAAG;GAAE;GAAS;EAAO,CAAC;CACjG,GAAG;EAAC;EAAW;EAAU;EAAS;CAAM,CAAC;AAC3C"}
@@ -0,0 +1,42 @@
1
+ import { useTranslator } from "../../i18n/context.js";
2
+ import { usePlayer } from "../../player/context.js";
3
+ import "@videojs/core/dom";
4
+ import { translateText } from "@videojs/core/i18n";
5
+ import { useCallback, useState } from "react";
6
+ //#region src/ui/hooks/create-radio-options-hook.ts
7
+ /** Creates framework adapter mechanics shared by media-backed radio option hooks. */
8
+ function createRadioOptionsHook({ name, feature, selector, createCore }) {
9
+ return function useRadioOptions(props) {
10
+ "use no memo";
11
+ const media = usePlayer(selector);
12
+ const t = useTranslator();
13
+ const [core] = useState(createCore);
14
+ core.setProps(props ?? {});
15
+ const setValue = useCallback((value) => core.selectValue(media, value), [core, media]);
16
+ if (!media) return null;
17
+ core.setMedia(media);
18
+ const state = core.getState();
19
+ const options = state.options.map((option) => {
20
+ const { label, labelParams, disabled, ...rest } = option;
21
+ return {
22
+ ...rest,
23
+ label: translateText(label, t, labelParams),
24
+ disabled: state.disabled || disabled
25
+ };
26
+ });
27
+ return {
28
+ state,
29
+ label: translateText(core.getLabel(state), t, core.getLabelParams?.(state)),
30
+ value: state.value,
31
+ selectedLabel: options.find((option) => option.value === state.value)?.label ?? "",
32
+ options,
33
+ disabled: state.disabled,
34
+ hidden: state.hidden,
35
+ setValue
36
+ };
37
+ };
38
+ }
39
+ //#endregion
40
+ export { createRadioOptionsHook };
41
+
42
+ //# sourceMappingURL=create-radio-options-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-radio-options-hook.js","names":[],"sources":["../../../../src/ui/hooks/create-radio-options-hook.ts"],"sourcesContent":["import type { RadioOption, RadioOptionsState } from '@videojs/core';\nimport { logMissingFeature } from '@videojs/core/dom';\nimport { type Text, type TextParams, translateText } from '@videojs/core/i18n';\nimport type { UnknownState } from '@videojs/store';\nimport { useCallback, useState } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\n\ninterface RadioOptionsCore<Props, Media, State extends RadioOptionsState> {\n setProps(props: Props): void;\n setMedia(media: Media): void;\n getState(): State;\n getLabel(state: State): Text | string;\n getLabelParams?(state: State): TextParams | undefined;\n selectValue(media: Media, value: string): void;\n}\n\ninterface RadioOptionsHookConfig<Props, Media, State extends RadioOptionsState> {\n name: string;\n feature: string;\n selector: ((state: UnknownState) => Media | null) & { displayName?: string | undefined };\n createCore: () => RadioOptionsCore<Props, Media, State>;\n}\n\ntype StateOption<State extends RadioOptionsState> = State extends RadioOptionsState<infer Option> ? Option : never;\n\nexport type TranslatedRadioOption<Option extends RadioOption> = Omit<Option, 'label' | 'labelParams' | 'disabled'> & {\n label: string;\n disabled: boolean;\n};\n\nexport interface RadioOptionsHookResult<Option extends RadioOption, State extends RadioOptionsState> {\n state: State;\n label: string;\n value: string;\n selectedLabel: string;\n options: TranslatedRadioOption<Option>[];\n disabled: boolean;\n hidden: boolean;\n setValue: (value: string) => void;\n}\n\n/** Creates framework adapter mechanics shared by media-backed radio option hooks. */\nexport function createRadioOptionsHook<Props, Media, State extends RadioOptionsState>({\n name,\n feature,\n selector,\n createCore,\n}: RadioOptionsHookConfig<Props, Media, State>): (\n props?: Props\n) => RadioOptionsHookResult<StateOption<State>, State> | null {\n return function useRadioOptions(props?: Props): RadioOptionsHookResult<StateOption<State>, State> | null {\n 'use no memo';\n\n const media = usePlayer(selector);\n const t = useTranslator();\n const [core] = useState(createCore);\n\n core.setProps(props ?? ({} as Props));\n\n const setValue = useCallback((value: string) => core.selectValue(media!, value), [core, media]);\n\n if (!media) {\n if (__DEV__) logMissingFeature(name, selector.displayName ?? feature);\n return null;\n }\n\n core.setMedia(media);\n const state = core.getState();\n const options = state.options.map((option) => {\n const { label, labelParams, disabled, ...rest } = option;\n\n return {\n ...rest,\n label: translateText(label, t, labelParams),\n disabled: state.disabled || disabled,\n } as TranslatedRadioOption<StateOption<State>>;\n });\n\n return {\n state,\n label: translateText(core.getLabel(state), t, core.getLabelParams?.(state)),\n value: state.value,\n selectedLabel: options.find((option) => option.value === state.value)?.label ?? '',\n options,\n disabled: state.disabled,\n hidden: state.hidden,\n setValue,\n };\n };\n}\n"],"mappings":";;;;;;;AA4CA,SAAgB,uBAAsE,EACpF,MACA,SACA,UACA,cAG4D;CAC5D,OAAO,SAAS,gBAAgB,OAAyE;EACvG;EAEA,MAAM,QAAQ,UAAU,QAAQ;EAChC,MAAM,IAAI,cAAc;EACxB,MAAM,CAAC,QAAQ,SAAS,UAAU;EAElC,KAAK,SAAS,SAAU,CAAC,CAAW;EAEpC,MAAM,WAAW,aAAa,UAAkB,KAAK,YAAY,OAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC;EAE9F,IAAI,CAAC,OAEH,OAAO;EAGT,KAAK,SAAS,KAAK;EACnB,MAAM,QAAQ,KAAK,SAAS;EAC5B,MAAM,UAAU,MAAM,QAAQ,KAAK,WAAW;GAC5C,MAAM,EAAE,OAAO,aAAa,UAAU,GAAG,SAAS;GAElD,OAAO;IACL,GAAG;IACH,OAAO,cAAc,OAAO,GAAG,WAAW;IAC1C,UAAU,MAAM,YAAY;GAC9B;EACF,CAAC;EAED,OAAO;GACL;GACA,OAAO,cAAc,KAAK,SAAS,KAAK,GAAG,GAAG,KAAK,iBAAiB,KAAK,CAAC;GAC1E,OAAO,MAAM;GACb,eAAe,QAAQ,MAAM,WAAW,OAAO,UAAU,MAAM,KAAK,CAAC,EAAE,SAAS;GAChF;GACA,UAAU,MAAM;GAChB,QAAQ,MAAM;GACd;EACF;CACF;AACF"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { mergeProps } from "../../utils/merge-props.js";
3
2
  import { createButton } from "@videojs/core/dom";
4
3
  import { useCallback } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"use-button.js","names":[],"sources":["../../../../src/ui/hooks/use-button.ts"],"sourcesContent":["'use client';\n\nimport { createButton, type UIEvent } from '@videojs/core/dom';\nimport type { ComponentPropsWithRef, Ref } from 'react';\nimport { useCallback } from 'react';\nimport { mergeProps } from '../../utils/merge-props';\n\nexport interface UseButtonParameters {\n displayName: string;\n onActivate: (event: UIEvent) => void;\n isDisabled: () => boolean;\n}\n\nexport interface UseButtonReturnValue {\n getButtonProps: (externalProps?: ComponentPropsWithRef<'button'>) => ComponentPropsWithRef<'button'>;\n buttonRef: Ref<HTMLElement>;\n}\n\n/**\n * Hook for button behavior with keyboard and pointer interaction.\n *\n * @example\n * ```tsx\n * const { getButtonProps, buttonRef } = useButton({\n * displayName: 'PlayButton',\n * onActivate: () => togglePlayback(),\n * isDisabled: () => disabled,\n * });\n *\n * return useRender('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [elementProps, getButtonProps],\n * });\n * ```\n *\n * @param params - Button configuration with activation handler and disabled check.\n */\nexport function useButton(params: UseButtonParameters): UseButtonReturnValue {\n const { displayName, onActivate, isDisabled } = params;\n\n const buttonRef = useCallback(\n (element: HTMLElement | null) => {\n if (__DEV__ && element && element.tagName !== 'BUTTON') {\n console.warn(`${displayName} should render a <button> element for accessibility`);\n }\n },\n [displayName]\n );\n\n const getButtonProps = useCallback(\n (externalProps?: ComponentPropsWithRef<'button'>): ComponentPropsWithRef<'button'> => {\n const buttonProps = createButton({ onActivate, isDisabled });\n return mergeProps(buttonProps, externalProps);\n },\n [onActivate, isDisabled]\n );\n\n return { getButtonProps, buttonRef };\n}\n\nexport namespace useButton {\n export type Parameters = UseButtonParameters;\n export type ReturnValue = UseButtonReturnValue;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,SAAgB,UAAU,QAAmD;CAC3E,MAAM,EAAE,aAAa,YAAY,eAAe;CAEhD,MAAM,YAAY,aACf,YAAgC,CAIjC,GACA,CAAC,WAAW,CACd;CAUA,OAAO;EAAE,gBARc,aACpB,kBAAqF;GAEpF,OAAO,WADa,aAAa;IAAE;IAAY;GAAW,CAC9B,GAAG,aAAa;EAC9C,GACA,CAAC,YAAY,UAAU,CAGH;EAAG;CAAU;AACrC"}
1
+ {"version":3,"file":"use-button.js","names":[],"sources":["../../../../src/ui/hooks/use-button.ts"],"sourcesContent":["import { createButton, type UIEvent } from '@videojs/core/dom';\nimport type { ComponentPropsWithRef, Ref } from 'react';\nimport { useCallback } from 'react';\nimport { mergeProps } from '../../utils/merge-props';\n\nexport interface UseButtonParameters {\n displayName: string;\n onActivate: (event: UIEvent) => void;\n isDisabled: () => boolean;\n}\n\nexport interface UseButtonReturnValue {\n getButtonProps: (externalProps?: ComponentPropsWithRef<'button'>) => ComponentPropsWithRef<'button'>;\n buttonRef: Ref<HTMLElement>;\n}\n\n/**\n * Hook for button behavior with keyboard and pointer interaction.\n *\n * @example\n * ```tsx\n * const { getButtonProps, buttonRef } = useButton({\n * displayName: 'PlayButton',\n * onActivate: () => togglePlayback(),\n * isDisabled: () => disabled,\n * });\n *\n * return useRender('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [elementProps, getButtonProps],\n * });\n * ```\n *\n * @param params - Button configuration with activation handler and disabled check.\n */\nexport function useButton(params: UseButtonParameters): UseButtonReturnValue {\n const { displayName, onActivate, isDisabled } = params;\n\n const buttonRef = useCallback(\n (element: HTMLElement | null) => {\n if (__DEV__ && element && element.tagName !== 'BUTTON') {\n console.warn(`${displayName} should render a <button> element for accessibility`);\n }\n },\n [displayName]\n );\n\n const getButtonProps = useCallback(\n (externalProps?: ComponentPropsWithRef<'button'>): ComponentPropsWithRef<'button'> => {\n const buttonProps = createButton({ onActivate, isDisabled });\n return mergeProps(buttonProps, externalProps);\n },\n [onActivate, isDisabled]\n );\n\n return { getButtonProps, buttonRef };\n}\n\nexport namespace useButton {\n export type Parameters = UseButtonParameters;\n export type ReturnValue = UseButtonReturnValue;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAoCA,SAAgB,UAAU,QAAmD;CAC3E,MAAM,EAAE,aAAa,YAAY,eAAe;CAEhD,MAAM,YAAY,aACf,YAAgC,CAIjC,GACA,CAAC,WAAW,CACd;CAUA,OAAO;EAAE,gBARc,aACpB,kBAAqF;GAEpF,OAAO,WADa,aAAa;IAAE;IAAY;GAAW,CAC9B,GAAG,aAAa;EAC9C,GACA,CAAC,YAAY,UAAU,CAGH;EAAG;CAAU;AACrC"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useCallback, useEffect, useMemo, useState } from "react";
3
2
  //#region src/ui/hooks/use-positioned-state.ts
4
3
  function usePositionedState(preferredState) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-positioned-state.js","names":[],"sources":["../../../../src/ui/hooks/use-positioned-state.ts"],"sourcesContent":["'use client';\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\ninterface PopupState {\n open: boolean;\n side: string | undefined;\n}\n\ninterface PositionedState<State extends PopupState> {\n state: State;\n preferredSide: State['side'];\n setPositionedSide: (side: State['side']) => void;\n}\n\nexport function usePositionedState<State extends PopupState>(preferredState: State): PositionedState<State> {\n const preferredSide = preferredState.side;\n const [position, setPosition] = useState<{ preferred: State['side']; side: State['side'] }>({\n preferred: preferredSide,\n side: preferredSide,\n });\n\n const side = preferredState.open && position.preferred === preferredSide ? position.side : preferredSide;\n\n const state = useMemo(\n () => (side === preferredSide ? preferredState : { ...preferredState, side }),\n [side, preferredState, preferredSide]\n );\n\n const setPositionedSide = useCallback(\n (nextSide: State['side']) =>\n setPosition((prev) =>\n prev.preferred === preferredSide && prev.side === nextSide ? prev : { preferred: preferredSide, side: nextSide }\n ),\n [preferredSide]\n );\n\n useEffect(() => {\n if (!preferredState.open) setPositionedSide(preferredSide);\n }, [preferredState.open, preferredSide, setPositionedSide]);\n\n return { state, preferredSide, setPositionedSide };\n}\n"],"mappings":";;;AAeA,SAAgB,mBAA6C,gBAA+C;CAC1G,MAAM,gBAAgB,eAAe;CACrC,MAAM,CAAC,UAAU,eAAe,SAA4D;EAC1F,WAAW;EACX,MAAM;CACR,CAAC;CAED,MAAM,OAAO,eAAe,QAAQ,SAAS,cAAc,gBAAgB,SAAS,OAAO;CAE3F,MAAM,QAAQ,cACL,SAAS,gBAAgB,iBAAiB;EAAE,GAAG;EAAgB;CAAK,GAC3E;EAAC;EAAM;EAAgB;CAAa,CACtC;CAEA,MAAM,oBAAoB,aACvB,aACC,aAAa,SACX,KAAK,cAAc,iBAAiB,KAAK,SAAS,WAAW,OAAO;EAAE,WAAW;EAAe,MAAM;CAAS,CACjH,GACF,CAAC,aAAa,CAChB;CAEA,gBAAgB;EACd,IAAI,CAAC,eAAe,MAAM,kBAAkB,aAAa;CAC3D,GAAG;EAAC,eAAe;EAAM;EAAe;CAAiB,CAAC;CAE1D,OAAO;EAAE;EAAO;EAAe;CAAkB;AACnD"}
1
+ {"version":3,"file":"use-positioned-state.js","names":[],"sources":["../../../../src/ui/hooks/use-positioned-state.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\n\ninterface PopupState {\n open: boolean;\n side: string | undefined;\n}\n\ninterface PositionedState<State extends PopupState> {\n state: State;\n preferredSide: State['side'];\n setPositionedSide: (side: State['side']) => void;\n}\n\nexport function usePositionedState<State extends PopupState>(preferredState: State): PositionedState<State> {\n const preferredSide = preferredState.side;\n const [position, setPosition] = useState<{ preferred: State['side']; side: State['side'] }>({\n preferred: preferredSide,\n side: preferredSide,\n });\n\n const side = preferredState.open && position.preferred === preferredSide ? position.side : preferredSide;\n\n const state = useMemo(\n () => (side === preferredSide ? preferredState : { ...preferredState, side }),\n [side, preferredState, preferredSide]\n );\n\n const setPositionedSide = useCallback(\n (nextSide: State['side']) =>\n setPosition((prev) =>\n prev.preferred === preferredSide && prev.side === nextSide ? prev : { preferred: preferredSide, side: nextSide }\n ),\n [preferredSide]\n );\n\n useEffect(() => {\n if (!preferredState.open) setPositionedSide(preferredSide);\n }, [preferredState.open, preferredSide, setPositionedSide]);\n\n return { state, preferredSide, setPositionedSide };\n}\n"],"mappings":";;AAaA,SAAgB,mBAA6C,gBAA+C;CAC1G,MAAM,gBAAgB,eAAe;CACrC,MAAM,CAAC,UAAU,eAAe,SAA4D;EAC1F,WAAW;EACX,MAAM;CACR,CAAC;CAED,MAAM,OAAO,eAAe,QAAQ,SAAS,cAAc,gBAAgB,SAAS,OAAO;CAE3F,MAAM,QAAQ,cACL,SAAS,gBAAgB,iBAAiB;EAAE,GAAG;EAAgB;CAAK,GAC3E;EAAC;EAAM;EAAgB;CAAa,CACtC;CAEA,MAAM,oBAAoB,aACvB,aACC,aAAa,SACX,KAAK,cAAc,iBAAiB,KAAK,SAAS,WAAW,OAAO;EAAE,WAAW;EAAe,MAAM;CAAS,CACjH,GACF,CAAC,aAAa,CAChB;CAEA,gBAAgB;EACd,IAAI,CAAC,eAAe,MAAM,kBAAkB,aAAa;CAC3D,GAAG;EAAC,eAAe;EAAM;EAAe;CAAiB,CAAC;CAE1D,OAAO;EAAE;EAAO;EAAe;CAAkB;AACnD"}
@@ -1,11 +1,11 @@
1
- "use client";
1
+ import { useOptionalPlayer } from "../../player/context.js";
2
2
  import { useLatestRef } from "../../utils/use-latest-ref.js";
3
3
  import { useDestroy } from "../../utils/use-destroy.js";
4
4
  import { useForceRender } from "../../utils/use-force-render.js";
5
- import { createSlider } from "@videojs/core/dom";
5
+ import { createSlider, selectControls } from "@videojs/core/dom";
6
6
  import { useSnapshot } from "@videojs/store/react";
7
- import { useCallback, useLayoutEffect, useRef, useState } from "react";
8
- import { isRTL } from "@videojs/utils/dom";
7
+ import { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
8
+ import { applyStyles, isRTL } from "@videojs/utils/dom";
9
9
  //#region src/ui/hooks/use-slider.ts
10
10
  /**
11
11
  * Manages slider input lifecycle for React.
@@ -16,6 +16,13 @@ import { isRTL } from "@videojs/utils/dom";
16
16
  */
17
17
  function useSlider(options) {
18
18
  const optionsRef = useLatestRef(options);
19
+ const requestControlsLock = useOptionalPlayer(selectControls)?.requestControlsLock;
20
+ const releaseControlsLockRef = useRef(null);
21
+ const releaseControlsLock = useCallback(() => {
22
+ releaseControlsLockRef.current?.();
23
+ releaseControlsLockRef.current = null;
24
+ }, []);
25
+ useEffect(() => releaseControlsLock, [releaseControlsLock]);
19
26
  const rootElementRef = useRef(null);
20
27
  const thumbElementRef = useRef(null);
21
28
  const forceRender = useForceRender();
@@ -33,25 +40,53 @@ function useSlider(options) {
33
40
  adjustPercent: optionsRef.current.adjustPercent,
34
41
  onValueChange: (percent) => optionsRef.current.onValueChange?.(percent),
35
42
  onValueCommit: (percent) => optionsRef.current.onValueCommit?.(percent),
36
- onDragStart: () => optionsRef.current.onDragStart?.(),
37
- onDragEnd: () => optionsRef.current.onDragEnd?.()
43
+ onDragStart: () => {
44
+ releaseControlsLockRef.current ??= requestControlsLock?.() ?? null;
45
+ optionsRef.current.onDragStart?.();
46
+ },
47
+ onDragEnd: () => {
48
+ releaseControlsLock();
49
+ optionsRef.current.onDragEnd?.();
50
+ }
38
51
  });
39
52
  });
40
53
  useDestroy(slider);
41
- const input = useSnapshot(slider.input);
54
+ const interaction = useSnapshot(slider.input, ({ dragging, pointing, focused }) => ({
55
+ dragging,
56
+ pointing,
57
+ focused
58
+ }));
59
+ const input = {
60
+ ...slider.input.current,
61
+ ...interaction
62
+ };
42
63
  const state = options.computeState(input);
43
64
  useLayoutEffect(() => {
44
65
  if (state.thumbAlignment === "edge" && rootElementRef.current && thumbElementRef.current) forceRender();
45
66
  }, [state.thumbAlignment]);
67
+ const cssVars = options.getCSSVars(slider.adjustForAlignment(state));
68
+ const syncStyles = useCallback((element = rootElementRef.current) => {
69
+ if (!element) return;
70
+ const next = optionsRef.current.computeState(slider.input.current);
71
+ applyStyles(element, optionsRef.current.getCSSVars(slider.adjustForAlignment(next)));
72
+ }, [slider]);
73
+ useLayoutEffect(() => {
74
+ syncStyles();
75
+ return slider.input.subscribe(syncStyles);
76
+ }, [slider, syncStyles]);
77
+ const rootRef = useCallback((element) => {
78
+ rootElementRef.current = element;
79
+ syncStyles(element);
80
+ }, [syncStyles]);
81
+ const thumbRef = useCallback((element) => {
82
+ thumbElementRef.current = element;
83
+ }, []);
46
84
  return {
47
85
  state,
48
- cssVars: options.getCSSVars(slider.adjustForAlignment(state)),
49
- rootRef: useCallback((element) => {
50
- rootElementRef.current = element;
51
- }, []),
52
- thumbRef: useCallback((element) => {
53
- thumbElementRef.current = element;
54
- }, []),
86
+ input: slider.input,
87
+ cssVars,
88
+ rootRef,
89
+ thumbRef,
55
90
  rootProps: slider.rootProps,
56
91
  rootStyle: slider.rootStyle,
57
92
  thumbProps: slider.thumbProps
@@ -1 +1 @@
1
- {"version":3,"file":"use-slider.js","names":[],"sources":["../../../../src/ui/hooks/use-slider.ts"],"sourcesContent":["'use client';\n\nimport type { SliderInput, SliderState } from '@videojs/core';\nimport {\n createSlider,\n type SliderApi,\n type SliderOptions,\n type SliderRootProps,\n type SliderRootStyle,\n type SliderThumbProps,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { isRTL } from '@videojs/utils/dom';\nimport { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useForceRender } from '../../utils/use-force-render';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseSliderOptions<State extends SliderState = SliderState>\n extends Pick<\n SliderOptions,\n | 'getPercent'\n | 'getStepPercent'\n | 'getLargeStepPercent'\n | 'changeThrottle'\n | 'onValueChange'\n | 'onValueCommit'\n | 'onDragStart'\n | 'onDragEnd'\n > {\n computeState: (input: SliderInput) => State;\n orientation?: 'horizontal' | 'vertical' | undefined;\n disabled?: boolean | undefined;\n /** Adjust a raw 0–100 percent for thumb alignment. Called for fill and pointer percents. */\n adjustPercent?: ((rawPercent: number, thumbSize: number, trackSize: number) => number) | undefined;\n /** Compute CSS variable map from the (possibly alignment-adjusted) state. */\n getCSSVars: (state: State) => Record<string, string>;\n}\n\nexport interface UseSliderReturnValue<State extends SliderState = SliderState> {\n state: State;\n cssVars: Record<string, string>;\n rootRef: React.RefCallback<HTMLElement>;\n thumbRef: React.RefCallback<HTMLElement>;\n rootProps: SliderRootProps;\n rootStyle: SliderRootStyle;\n thumbProps: SliderThumbProps;\n}\n\n/**\n * Manages slider input lifecycle for React.\n *\n * Wraps `createSlider()` from `@videojs/core/dom` and subscribes to its\n * input state via `useSnapshot`. Returns split props for the root\n * (pointer events) and thumb (keyboard/focus) elements.\n */\nexport function useSlider<State extends SliderState = SliderState>(\n options: UseSliderOptions<State>\n): UseSliderReturnValue<State> {\n const optionsRef = useLatestRef(options);\n\n const rootElementRef = useRef<HTMLElement | null>(null);\n const thumbElementRef = useRef<HTMLElement | null>(null);\n const forceRender = useForceRender();\n\n // Lazy-init the slider handle. Stable across re-renders.\n const [slider] = useState<SliderApi>(() => {\n const stableOptions: SliderOptions = {\n getElement: () => rootElementRef.current!,\n getThumbElement: () => thumbElementRef.current,\n getOrientation: () => optionsRef.current.orientation ?? 'horizontal',\n isRTL: () => (rootElementRef.current ? isRTL(rootElementRef.current) : false),\n isDisabled: () => optionsRef.current.disabled ?? false,\n getPercent: () => optionsRef.current.getPercent(),\n getStepPercent: () => optionsRef.current.getStepPercent(),\n getLargeStepPercent: () => optionsRef.current.getLargeStepPercent(),\n changeThrottle: optionsRef.current.changeThrottle,\n adjustPercent: optionsRef.current.adjustPercent,\n onValueChange: (percent) => optionsRef.current.onValueChange?.(percent),\n onValueCommit: (percent) => optionsRef.current.onValueCommit?.(percent),\n onDragStart: () => optionsRef.current.onDragStart?.(),\n onDragEnd: () => optionsRef.current.onDragEnd?.(),\n };\n\n return createSlider(stableOptions);\n });\n\n useDestroy(slider);\n\n // Subscribe to slider input state.\n const input = useSnapshot(slider.input);\n\n // Compute derived state from input + caller-provided projection.\n const state = options.computeState(input);\n\n // Force a synchronous re-render after mount so edge thumb alignment\n // can read DOM measurements from the now-populated element refs.\n useLayoutEffect(() => {\n if (state.thumbAlignment === 'edge' && rootElementRef.current && thumbElementRef.current) {\n forceRender();\n }\n }, [state.thumbAlignment]);\n\n // Adjust CSS var percents for edge thumb alignment using live DOM measurements.\n const cssVars = options.getCSSVars(slider.adjustForAlignment(state));\n\n // Ref callbacks for root and thumb elements.\n const rootRef = useCallback((element: HTMLElement | null) => {\n rootElementRef.current = element;\n }, []);\n\n const thumbRef = useCallback((element: HTMLElement | null) => {\n thumbElementRef.current = element;\n }, []);\n\n return {\n state,\n cssVars,\n rootRef,\n thumbRef,\n rootProps: slider.rootProps,\n rootStyle: slider.rootStyle,\n thumbProps: slider.thumbProps,\n };\n}\n\nexport namespace useSlider {\n export type Options = UseSliderOptions;\n export type ReturnValue = UseSliderReturnValue;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAwDA,SAAgB,UACd,SAC6B;CAC7B,MAAM,aAAa,aAAa,OAAO;CAEvC,MAAM,iBAAiB,OAA2B,IAAI;CACtD,MAAM,kBAAkB,OAA2B,IAAI;CACvD,MAAM,cAAc,eAAe;CAGnC,MAAM,CAAC,UAAU,eAA0B;EAkBzC,OAAO,aAAa;GAhBlB,kBAAkB,eAAe;GACjC,uBAAuB,gBAAgB;GACvC,sBAAsB,WAAW,QAAQ,eAAe;GACxD,aAAc,eAAe,UAAU,MAAM,eAAe,OAAO,IAAI;GACvE,kBAAkB,WAAW,QAAQ,YAAY;GACjD,kBAAkB,WAAW,QAAQ,WAAW;GAChD,sBAAsB,WAAW,QAAQ,eAAe;GACxD,2BAA2B,WAAW,QAAQ,oBAAoB;GAClE,gBAAgB,WAAW,QAAQ;GACnC,eAAe,WAAW,QAAQ;GAClC,gBAAgB,YAAY,WAAW,QAAQ,gBAAgB,OAAO;GACtE,gBAAgB,YAAY,WAAW,QAAQ,gBAAgB,OAAO;GACtE,mBAAmB,WAAW,QAAQ,cAAc;GACpD,iBAAiB,WAAW,QAAQ,YAAY;EAGlB,CAAC;CACnC,CAAC;CAED,WAAW,MAAM;CAGjB,MAAM,QAAQ,YAAY,OAAO,KAAK;CAGtC,MAAM,QAAQ,QAAQ,aAAa,KAAK;CAIxC,sBAAsB;EACpB,IAAI,MAAM,mBAAmB,UAAU,eAAe,WAAW,gBAAgB,SAC/E,YAAY;CAEhB,GAAG,CAAC,MAAM,cAAc,CAAC;CAczB,OAAO;EACL;EACA,SAbc,QAAQ,WAAW,OAAO,mBAAmB,KAAK,CAa1D;EACN,SAXc,aAAa,YAAgC;GAC3D,eAAe,UAAU;EAC3B,GAAG,CAAC,CASI;EACN,UARe,aAAa,YAAgC;GAC5D,gBAAgB,UAAU;EAC5B,GAAG,CAAC,CAMK;EACP,WAAW,OAAO;EAClB,WAAW,OAAO;EAClB,YAAY,OAAO;CACrB;AACF"}
1
+ {"version":3,"file":"use-slider.js","names":[],"sources":["../../../../src/ui/hooks/use-slider.ts"],"sourcesContent":["import type { SliderInput, SliderState } from '@videojs/core';\nimport {\n createSlider,\n type SliderApi,\n type SliderOptions,\n type SliderRootProps,\n type SliderRootStyle,\n type SliderThumbProps,\n selectControls,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { useOptionalPlayer } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useForceRender } from '../../utils/use-force-render';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseSliderOptions<State extends SliderState = SliderState>\n extends Pick<\n SliderOptions,\n | 'getPercent'\n | 'getStepPercent'\n | 'getLargeStepPercent'\n | 'changeThrottle'\n | 'onValueChange'\n | 'onValueCommit'\n | 'onDragStart'\n | 'onDragEnd'\n > {\n computeState: (input: SliderInput) => State;\n orientation?: 'horizontal' | 'vertical' | undefined;\n disabled?: boolean | undefined;\n /** Adjust a raw 0–100 percent for thumb alignment. Called for fill and pointer percents. */\n adjustPercent?: ((rawPercent: number, thumbSize: number, trackSize: number) => number) | undefined;\n /** Compute CSS variable map from the (possibly alignment-adjusted) state. */\n getCSSVars: (state: State) => Record<string, string>;\n}\n\nexport interface UseSliderReturnValue<State extends SliderState = SliderState> {\n state: State;\n input: SliderApi['input'];\n cssVars: Record<string, string>;\n rootRef: React.RefCallback<HTMLElement>;\n thumbRef: React.RefCallback<HTMLElement>;\n rootProps: SliderRootProps;\n rootStyle: SliderRootStyle;\n thumbProps: SliderThumbProps;\n}\n\n/**\n * Manages slider input lifecycle for React.\n *\n * Wraps `createSlider()` from `@videojs/core/dom` and subscribes to its\n * input state via `useSnapshot`. Returns split props for the root\n * (pointer events) and thumb (keyboard/focus) elements.\n */\nexport function useSlider<State extends SliderState = SliderState>(\n options: UseSliderOptions<State>\n): UseSliderReturnValue<State> {\n const optionsRef = useLatestRef(options);\n const controls = useOptionalPlayer(selectControls);\n const requestControlsLock = controls?.requestControlsLock;\n const releaseControlsLockRef = useRef<(() => void) | null>(null);\n\n const releaseControlsLock = useCallback(() => {\n releaseControlsLockRef.current?.();\n releaseControlsLockRef.current = null;\n }, []);\n\n useEffect(() => releaseControlsLock, [releaseControlsLock]);\n\n const rootElementRef = useRef<HTMLElement | null>(null);\n const thumbElementRef = useRef<HTMLElement | null>(null);\n const forceRender = useForceRender();\n\n // Lazy-init the slider handle. Stable across re-renders.\n const [slider] = useState<SliderApi>(() => {\n const stableOptions: SliderOptions = {\n getElement: () => rootElementRef.current!,\n getThumbElement: () => thumbElementRef.current,\n getOrientation: () => optionsRef.current.orientation ?? 'horizontal',\n isRTL: () => (rootElementRef.current ? isRTL(rootElementRef.current) : false),\n isDisabled: () => optionsRef.current.disabled ?? false,\n getPercent: () => optionsRef.current.getPercent(),\n getStepPercent: () => optionsRef.current.getStepPercent(),\n getLargeStepPercent: () => optionsRef.current.getLargeStepPercent(),\n changeThrottle: optionsRef.current.changeThrottle,\n adjustPercent: optionsRef.current.adjustPercent,\n onValueChange: (percent) => optionsRef.current.onValueChange?.(percent),\n onValueCommit: (percent) => optionsRef.current.onValueCommit?.(percent),\n onDragStart: () => {\n releaseControlsLockRef.current ??= requestControlsLock?.() ?? null;\n optionsRef.current.onDragStart?.();\n },\n onDragEnd: () => {\n releaseControlsLock();\n optionsRef.current.onDragEnd?.();\n },\n };\n\n return createSlider(stableOptions);\n });\n\n useDestroy(slider);\n\n // Percentage changes are rendered directly below. React only needs to\n // re-render when interaction state changes.\n const interaction = useSnapshot(slider.input, ({ dragging, pointing, focused }) => ({\n dragging,\n pointing,\n focused,\n }));\n const input = { ...slider.input.current, ...interaction };\n\n // Compute derived state from input + caller-provided projection.\n const state = options.computeState(input);\n\n // Force a synchronous re-render after mount so edge thumb alignment\n // can read DOM measurements from the now-populated element refs.\n useLayoutEffect(() => {\n if (state.thumbAlignment === 'edge' && rootElementRef.current && thumbElementRef.current) {\n forceRender();\n }\n }, [state.thumbAlignment]);\n\n // Adjust CSS var percents for edge thumb alignment using live DOM measurements.\n const cssVars = options.getCSSVars(slider.adjustForAlignment(state));\n\n const syncStyles = useCallback(\n (element = rootElementRef.current) => {\n if (!element) return;\n const next = optionsRef.current.computeState(slider.input.current);\n applyStyles(element, optionsRef.current.getCSSVars(slider.adjustForAlignment(next)));\n },\n [slider]\n );\n\n useLayoutEffect(() => {\n syncStyles();\n return slider.input.subscribe(syncStyles);\n }, [slider, syncStyles]);\n\n // Ref callbacks for root and thumb elements.\n const rootRef = useCallback(\n (element: HTMLElement | null) => {\n rootElementRef.current = element;\n syncStyles(element);\n },\n [syncStyles]\n );\n\n const thumbRef = useCallback((element: HTMLElement | null) => {\n thumbElementRef.current = element;\n }, []);\n\n return {\n state,\n input: slider.input,\n cssVars,\n rootRef,\n thumbRef,\n rootProps: slider.rootProps,\n rootStyle: slider.rootStyle,\n thumbProps: slider.thumbProps,\n };\n}\n\nexport namespace useSlider {\n export type Options = UseSliderOptions;\n export type ReturnValue = UseSliderReturnValue;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAyDA,SAAgB,UACd,SAC6B;CAC7B,MAAM,aAAa,aAAa,OAAO;CAEvC,MAAM,sBADW,kBAAkB,cACA,CAAC,EAAE;CACtC,MAAM,yBAAyB,OAA4B,IAAI;CAE/D,MAAM,sBAAsB,kBAAkB;EAC5C,uBAAuB,UAAU;EACjC,uBAAuB,UAAU;CACnC,GAAG,CAAC,CAAC;CAEL,gBAAgB,qBAAqB,CAAC,mBAAmB,CAAC;CAE1D,MAAM,iBAAiB,OAA2B,IAAI;CACtD,MAAM,kBAAkB,OAA2B,IAAI;CACvD,MAAM,cAAc,eAAe;CAGnC,MAAM,CAAC,UAAU,eAA0B;EAwBzC,OAAO,aAAa;GAtBlB,kBAAkB,eAAe;GACjC,uBAAuB,gBAAgB;GACvC,sBAAsB,WAAW,QAAQ,eAAe;GACxD,aAAc,eAAe,UAAU,MAAM,eAAe,OAAO,IAAI;GACvE,kBAAkB,WAAW,QAAQ,YAAY;GACjD,kBAAkB,WAAW,QAAQ,WAAW;GAChD,sBAAsB,WAAW,QAAQ,eAAe;GACxD,2BAA2B,WAAW,QAAQ,oBAAoB;GAClE,gBAAgB,WAAW,QAAQ;GACnC,eAAe,WAAW,QAAQ;GAClC,gBAAgB,YAAY,WAAW,QAAQ,gBAAgB,OAAO;GACtE,gBAAgB,YAAY,WAAW,QAAQ,gBAAgB,OAAO;GACtE,mBAAmB;IACjB,uBAAuB,YAAY,sBAAsB,KAAK;IAC9D,WAAW,QAAQ,cAAc;GACnC;GACA,iBAAiB;IACf,oBAAoB;IACpB,WAAW,QAAQ,YAAY;GACjC;EAG8B,CAAC;CACnC,CAAC;CAED,WAAW,MAAM;CAIjB,MAAM,cAAc,YAAY,OAAO,QAAQ,EAAE,UAAU,UAAU,eAAe;EAClF;EACA;EACA;CACF,EAAE;CACF,MAAM,QAAQ;EAAE,GAAG,OAAO,MAAM;EAAS,GAAG;CAAY;CAGxD,MAAM,QAAQ,QAAQ,aAAa,KAAK;CAIxC,sBAAsB;EACpB,IAAI,MAAM,mBAAmB,UAAU,eAAe,WAAW,gBAAgB,SAC/E,YAAY;CAEhB,GAAG,CAAC,MAAM,cAAc,CAAC;CAGzB,MAAM,UAAU,QAAQ,WAAW,OAAO,mBAAmB,KAAK,CAAC;CAEnE,MAAM,aAAa,aAChB,UAAU,eAAe,YAAY;EACpC,IAAI,CAAC,SAAS;EACd,MAAM,OAAO,WAAW,QAAQ,aAAa,OAAO,MAAM,OAAO;EACjE,YAAY,SAAS,WAAW,QAAQ,WAAW,OAAO,mBAAmB,IAAI,CAAC,CAAC;CACrF,GACA,CAAC,MAAM,CACT;CAEA,sBAAsB;EACpB,WAAW;EACX,OAAO,OAAO,MAAM,UAAU,UAAU;CAC1C,GAAG,CAAC,QAAQ,UAAU,CAAC;CAGvB,MAAM,UAAU,aACb,YAAgC;EAC/B,eAAe,UAAU;EACzB,WAAW,OAAO;CACpB,GACA,CAAC,UAAU,CACb;CAEA,MAAM,WAAW,aAAa,YAAgC;EAC5D,gBAAgB,UAAU;CAC5B,GAAG,CAAC,CAAC;CAEL,OAAO;EACL;EACA,OAAO,OAAO;EACd;EACA;EACA;EACA,WAAW,OAAO;EAClB,WAAW,OAAO;EAClB,YAAY,OAAO;CACrB;AACF"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useContainer, usePlayer } from "../../player/context.js";
3
2
  import { createHotkey, isHotkeyToggleAction, resolveHotkeyAction } from "@videojs/core/dom";
4
3
  import { useEffect } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"hotkey.js","names":[],"sources":["../../../../src/ui/hotkey/hotkey.tsx"],"sourcesContent":["'use client';\n\nimport type { AnyPlayerStore } from '@videojs/core/dom';\nimport { createHotkey, type HotkeyActionName, isHotkeyToggleAction, resolveHotkeyAction } from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface HotkeyProps {\n keys: string;\n action: HotkeyActionName | (string & {});\n value?: number;\n disabled?: boolean;\n target?: 'player' | 'document';\n}\n\nexport function Hotkey({ keys, action, value, disabled, target }: HotkeyProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !keys || !action || disabled) return;\n\n const resolver = resolveHotkeyAction(action);\n if (!resolver) return;\n\n return createHotkey(container, {\n keys,\n action,\n value,\n target,\n disabled,\n repeatable: !isHotkeyToggleAction(action),\n onActivate: (_event, key) => {\n resolver({ store, key, value });\n },\n });\n }, [container, store, keys, action, value, disabled, target]);\n\n return null;\n}\n\nexport namespace Hotkey {\n export type Props = HotkeyProps;\n}\n\n/** @deprecated Use `HotkeyProps` instead. */\nexport type MediaHotkeyProps = HotkeyProps;\n\n/** @deprecated Use `Hotkey` instead. */\nexport const MediaHotkey = Hotkey;\n"],"mappings":";;;;;AAiBA,SAAgB,OAAO,EAAE,MAAM,QAAQ,OAAO,UAAU,UAAkC;CACxF,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAE/B,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,UAAU;EAEhD,MAAM,WAAW,oBAAoB,MAAM;EAC3C,IAAI,CAAC,UAAU;EAEf,OAAO,aAAa,WAAW;GAC7B;GACA;GACA;GACA;GACA;GACA,YAAY,CAAC,qBAAqB,MAAM;GACxC,aAAa,QAAQ,QAAQ;IAC3B,SAAS;KAAE;KAAO;KAAK;IAAM,CAAC;GAChC;EACF,CAAC;CACH,GAAG;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAU;CAAM,CAAC;CAE5D,OAAO;AACT;;AAUA,MAAa,cAAc"}
1
+ {"version":3,"file":"hotkey.js","names":[],"sources":["../../../../src/ui/hotkey/hotkey.tsx"],"sourcesContent":["import type { AnyPlayerStore } from '@videojs/core/dom';\nimport { createHotkey, type HotkeyActionName, isHotkeyToggleAction, resolveHotkeyAction } from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface HotkeyProps {\n keys: string;\n action: HotkeyActionName | (string & {});\n value?: number;\n disabled?: boolean;\n target?: 'player' | 'document';\n}\n\nexport function Hotkey({ keys, action, value, disabled, target }: HotkeyProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !keys || !action || disabled) return;\n\n const resolver = resolveHotkeyAction(action);\n if (!resolver) return;\n\n return createHotkey(container, {\n keys,\n action,\n value,\n target,\n disabled,\n repeatable: !isHotkeyToggleAction(action),\n onActivate: (_event, key) => {\n resolver({ store, key, value });\n },\n });\n }, [container, store, keys, action, value, disabled, target]);\n\n return null;\n}\n\nexport namespace Hotkey {\n export type Props = HotkeyProps;\n}\n\n/** @deprecated Use `HotkeyProps` instead. */\nexport type MediaHotkeyProps = HotkeyProps;\n\n/** @deprecated Use `Hotkey` instead. */\nexport const MediaHotkey = Hotkey;\n"],"mappings":";;;;AAeA,SAAgB,OAAO,EAAE,MAAM,QAAQ,OAAO,UAAU,UAAkC;CACxF,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAE/B,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,UAAU;EAEhD,MAAM,WAAW,oBAAoB,MAAM;EAC3C,IAAI,CAAC,UAAU;EAEf,OAAO,aAAa,WAAW;GAC7B;GACA;GACA;GACA;GACA;GACA,YAAY,CAAC,qBAAqB,MAAM;GACxC,aAAa,QAAQ,QAAQ;IAC3B,SAAS;KAAE;KAAO;KAAK;IAAM,CAAC;GAChC;EACF,CAAC;CACH,GAAG;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAU;CAAM,CAAC;CAE5D,OAAO;AACT;;AAUA,MAAa,cAAc"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useContainer } from "../../player/context.js";
3
2
  import { getHotkeyCoordinator } from "@videojs/core/dom";
4
3
  import { useEffect, useState } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"use-hotkey-shortcut.js","names":[],"sources":["../../../../src/ui/hotkey/use-hotkey-shortcut.ts"],"sourcesContent":["'use client';\n\nimport { getHotkeyCoordinator, type HotkeyShortcutDetails } from '@videojs/core/dom';\nimport { useEffect, useState } from 'react';\n\nimport { useContainer } from '../../player/context';\n\nexport function useHotkeyShortcut(action: string | undefined, value?: number | undefined): HotkeyShortcutDetails {\n const container = useContainer();\n\n const [shortcut, setShortcut] = useState<HotkeyShortcutDetails>({});\n\n useEffect(() => {\n if (!container || !action) {\n setShortcut({});\n return;\n }\n\n const coordinator = getHotkeyCoordinator(container);\n const update = () => setShortcut(coordinator.getShortcut(action, value));\n\n update();\n return coordinator.subscribeShortcutChanges(update);\n }, [container, action, value]);\n\n return shortcut;\n}\n"],"mappings":";;;;;AAOA,SAAgB,kBAAkB,QAA4B,OAAmD;CAC/G,MAAM,YAAY,aAAa;CAE/B,MAAM,CAAC,UAAU,eAAe,SAAgC,CAAC,CAAC;CAElE,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ;GACzB,YAAY,CAAC,CAAC;GACd;EACF;EAEA,MAAM,cAAc,qBAAqB,SAAS;EAClD,MAAM,eAAe,YAAY,YAAY,YAAY,QAAQ,KAAK,CAAC;EAEvE,OAAO;EACP,OAAO,YAAY,yBAAyB,MAAM;CACpD,GAAG;EAAC;EAAW;EAAQ;CAAK,CAAC;CAE7B,OAAO;AACT"}
1
+ {"version":3,"file":"use-hotkey-shortcut.js","names":[],"sources":["../../../../src/ui/hotkey/use-hotkey-shortcut.ts"],"sourcesContent":["import { getHotkeyCoordinator, type HotkeyShortcutDetails } from '@videojs/core/dom';\nimport { useEffect, useState } from 'react';\n\nimport { useContainer } from '../../player/context';\n\nexport function useHotkeyShortcut(action: string | undefined, value?: number | undefined): HotkeyShortcutDetails {\n const container = useContainer();\n\n const [shortcut, setShortcut] = useState<HotkeyShortcutDetails>({});\n\n useEffect(() => {\n if (!container || !action) {\n setShortcut({});\n return;\n }\n\n const coordinator = getHotkeyCoordinator(container);\n const update = () => setShortcut(coordinator.getShortcut(action, value));\n\n update();\n return coordinator.subscribeShortcutChanges(update);\n }, [container, action, value]);\n\n return shortcut;\n}\n"],"mappings":";;;;AAKA,SAAgB,kBAAkB,QAA4B,OAAmD;CAC/G,MAAM,YAAY,aAAa;CAE/B,MAAM,CAAC,UAAU,eAAe,SAAgC,CAAC,CAAC;CAElE,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ;GACzB,YAAY,CAAC,CAAC;GACd;EACF;EAEA,MAAM,cAAc,qBAAqB,SAAS;EAClD,MAAM,eAAe,YAAY,YAAY,YAAY,QAAQ,KAAK,CAAC;EAEvE,OAAO;EACP,OAAO,YAAY,yBAAyB,MAAM;CACpD,GAAG;EAAC;EAAW;EAAQ;CAAK,CAAC;CAE7B,OAAO;AACT"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useContainer } from "../../player/context.js";
3
2
  import { useLatestRef } from "../../utils/use-latest-ref.js";
4
3
  import { createHotkey } from "@videojs/core/dom";
@@ -1 +1 @@
1
- {"version":3,"file":"use-hotkey.js","names":[],"sources":["../../../../src/ui/hotkey/use-hotkey.ts"],"sourcesContent":["'use client';\n\nimport { createHotkey } from '@videojs/core/dom';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseHotkeyOptions {\n keys: string;\n onActivate: (event: KeyboardEvent, key: string) => void;\n target?: 'player' | 'document';\n repeatable?: boolean;\n disabled?: boolean;\n}\n\nexport function useHotkey(options: UseHotkeyOptions): void {\n const { keys, target = 'player', repeatable = true, disabled = false } = options;\n const container = useContainer();\n const onActivateRef = useLatestRef(options.onActivate);\n\n useEffect(() => {\n if (!container || !keys || disabled) return;\n\n return createHotkey(container, {\n keys,\n target,\n repeatable,\n disabled,\n onActivate: (event, key) => onActivateRef.current(event, key),\n });\n }, [container, keys, target, repeatable, disabled]);\n}\n"],"mappings":";;;;;;AAgBA,SAAgB,UAAU,SAAiC;CACzD,MAAM,EAAE,MAAM,SAAS,UAAU,aAAa,MAAM,WAAW,UAAU;CACzE,MAAM,YAAY,aAAa;CAC/B,MAAM,gBAAgB,aAAa,QAAQ,UAAU;CAErD,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,UAAU;EAErC,OAAO,aAAa,WAAW;GAC7B;GACA;GACA;GACA;GACA,aAAa,OAAO,QAAQ,cAAc,QAAQ,OAAO,GAAG;EAC9D,CAAC;CACH,GAAG;EAAC;EAAW;EAAM;EAAQ;EAAY;CAAQ,CAAC;AACpD"}
1
+ {"version":3,"file":"use-hotkey.js","names":[],"sources":["../../../../src/ui/hotkey/use-hotkey.ts"],"sourcesContent":["import { createHotkey } from '@videojs/core/dom';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseHotkeyOptions {\n keys: string;\n onActivate: (event: KeyboardEvent, key: string) => void;\n target?: 'player' | 'document';\n repeatable?: boolean;\n disabled?: boolean;\n}\n\nexport function useHotkey(options: UseHotkeyOptions): void {\n const { keys, target = 'player', repeatable = true, disabled = false } = options;\n const container = useContainer();\n const onActivateRef = useLatestRef(options.onActivate);\n\n useEffect(() => {\n if (!container || !keys || disabled) return;\n\n return createHotkey(container, {\n keys,\n target,\n repeatable,\n disabled,\n onActivate: (event, key) => onActivateRef.current(event, key),\n });\n }, [container, keys, target, repeatable, disabled]);\n}\n"],"mappings":";;;;;AAcA,SAAgB,UAAU,SAAiC;CACzD,MAAM,EAAE,MAAM,SAAS,UAAU,aAAa,MAAM,WAAW,UAAU;CACzE,MAAM,YAAY,aAAa;CAC/B,MAAM,gBAAgB,aAAa,QAAQ,UAAU;CAErD,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,UAAU;EAErC,OAAO,aAAa,WAAW;GAC7B;GACA;GACA;GACA;GACA,aAAa,OAAO,QAAQ,cAAc,QAAQ,OAAO,GAAG;EAC9D,CAAC;CACH,GAAG;EAAC;EAAW;EAAM;EAAQ;EAAY;CAAQ,CAAC;AACpD"}
@@ -1,9 +1,8 @@
1
- "use client";
2
1
  import { useContainer } from "../../player/context.js";
3
2
  import { useLatestRef } from "../../utils/use-latest-ref.js";
4
3
  import { getIndicatorVisibilityCoordinator } from "@videojs/core/dom";
5
4
  import { useCallback, useEffect, useRef, useState } from "react";
6
- //#region src/ui/input-indicators/use-indicator-visibility.ts
5
+ //#region src/ui/input-indicator/use-indicator-visibility.ts
7
6
  function useIndicatorVisibility(close) {
8
7
  const container = useContainer();
9
8
  const closeRef = useLatestRef(close);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-indicator-visibility.js","names":[],"sources":["../../../../src/ui/input-indicator/use-indicator-visibility.ts"],"sourcesContent":["import type { IndicatorVisibilityHandle } from '@videojs/core';\nimport { getIndicatorVisibilityCoordinator } from '@videojs/core/dom';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport function useIndicatorVisibility(close: () => void): () => void {\n const container = useContainer();\n const closeRef = useLatestRef(close);\n const coordinatorRef = useRef<ReturnType<typeof getIndicatorVisibilityCoordinator> | null>(null);\n const [handle] = useState<IndicatorVisibilityHandle>(() => ({\n close: () => closeRef.current(),\n }));\n\n useEffect(() => {\n if (!container) return;\n\n const coordinator = getIndicatorVisibilityCoordinator(container);\n coordinatorRef.current = coordinator;\n\n return coordinator.register(handle);\n }, [container, handle]);\n\n return useCallback(() => {\n coordinatorRef.current?.show(handle);\n }, [handle]);\n}\n"],"mappings":";;;;;AAOA,SAAgB,uBAAuB,OAA+B;CACpE,MAAM,YAAY,aAAa;CAC/B,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,iBAAiB,OAAoE,IAAI;CAC/F,MAAM,CAAC,UAAU,gBAA2C,EAC1D,aAAa,SAAS,QAAQ,EAChC,EAAE;CAEF,gBAAgB;EACd,IAAI,CAAC,WAAW;EAEhB,MAAM,cAAc,kCAAkC,SAAS;EAC/D,eAAe,UAAU;EAEzB,OAAO,YAAY,SAAS,MAAM;CACpC,GAAG,CAAC,WAAW,MAAM,CAAC;CAEtB,OAAO,kBAAkB;EACvB,eAAe,SAAS,KAAK,MAAM;CACrC,GAAG,CAAC,MAAM,CAAC;AACb"}
@@ -1,9 +1,8 @@
1
- "use client";
2
1
  import { useContainer, usePlayer } from "../../player/context.js";
3
2
  import { useLatestRef } from "../../utils/use-latest-ref.js";
4
3
  import { getMediaSnapshot, subscribeToInputActions } from "@videojs/core/dom";
5
4
  import { useEffect } from "react";
6
- //#region src/ui/input-indicators/use-input-action-subscription.ts
5
+ //#region src/ui/input-indicator/use-input-action-subscription.ts
7
6
  function useInputActionSubscription(callback) {
8
7
  const container = useContainer();
9
8
  const store = usePlayer();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-input-action-subscription.js","names":[],"sources":["../../../../src/ui/input-indicator/use-input-action-subscription.ts"],"sourcesContent":["import type { InputActionEvent, MediaSnapshot } from '@videojs/core';\nimport { getMediaSnapshot, subscribeToInputActions } from '@videojs/core/dom';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport function useInputActionSubscription(callback: (event: InputActionEvent, snapshot: MediaSnapshot) => void): void {\n const container = useContainer();\n const store = usePlayer();\n const callbackRef = useLatestRef(callback);\n const storeRef = useLatestRef(store);\n\n useEffect(() => {\n if (!container) return;\n\n return subscribeToInputActions(container, (event) => {\n callbackRef.current(event, getMediaSnapshot(storeRef.current));\n });\n }, [container]);\n}\n"],"mappings":";;;;;AAOA,SAAgB,2BAA2B,UAA4E;CACrH,MAAM,YAAY,aAAa;CAC/B,MAAM,QAAQ,UAAU;CACxB,MAAM,cAAc,aAAa,QAAQ;CACzC,MAAM,WAAW,aAAa,KAAK;CAEnC,gBAAgB;EACd,IAAI,CAAC,WAAW;EAEhB,OAAO,wBAAwB,YAAY,UAAU;GACnD,YAAY,QAAQ,OAAO,iBAAiB,SAAS,OAAO,CAAC;EAC/D,CAAC;CACH,GAAG,CAAC,SAAS,CAAC;AAChB"}
@@ -1,10 +1,9 @@
1
- "use client";
2
1
  import { useDestroy } from "../../utils/use-destroy.js";
3
2
  import { useIndicatorVisibility } from "./use-indicator-visibility.js";
4
3
  import { useInputActionSubscription } from "./use-input-action-subscription.js";
5
4
  import { useRenderedIndicatorState } from "./use-rendered-indicator-state.js";
6
5
  import { useState, useSyncExternalStore } from "react";
7
- //#region src/ui/input-indicators/use-input-indicator-root.ts
6
+ //#region src/ui/input-indicator/use-input-indicator-root.ts
8
7
  function useInputIndicatorRoot(createCore, props, options) {
9
8
  const [core] = useState(createCore);
10
9
  useDestroy(core);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-input-indicator-root.js","names":[],"sources":["../../../../src/ui/input-indicator/use-input-indicator-root.ts"],"sourcesContent":["import type { IndicatorLifecycleState, InputActionEvent, MediaSnapshot } from '@videojs/core';\nimport type { State as StoreState } from '@videojs/store';\nimport { useState, useSyncExternalStore } from 'react';\n\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useIndicatorVisibility } from './use-indicator-visibility';\nimport { useInputActionSubscription } from './use-input-action-subscription';\nimport { type RenderedIndicatorOptions, useRenderedIndicatorState } from './use-rendered-indicator-state';\n\ninterface InputIndicatorRootCore<IndicatorState extends IndicatorLifecycleState, Props> {\n readonly state: StoreState<IndicatorState>;\n setProps(props: Props): void;\n destroy(): void;\n close(): void;\n processEvent(event: InputActionEvent, snapshot: MediaSnapshot): boolean;\n}\n\nexport function useInputIndicatorRoot<IndicatorState extends IndicatorLifecycleState, Props>(\n createCore: () => InputIndicatorRootCore<IndicatorState, Props>,\n props: Props,\n options?: RenderedIndicatorOptions\n) {\n const [core] = useState(createCore);\n useDestroy(core);\n core.setProps(props);\n const showIndicator = useIndicatorVisibility(() => core.close());\n\n useInputActionSubscription((event, snapshot) => {\n if (core.processEvent(event, snapshot)) showIndicator();\n });\n\n const currentState = useSyncExternalStore(\n (callback) => core.state.subscribe(callback),\n () => core.state.current,\n () => core.state.current\n );\n\n return useRenderedIndicatorState(currentState, options);\n}\n"],"mappings":";;;;;;AAiBA,SAAgB,sBACd,YACA,OACA,SACA;CACA,MAAM,CAAC,QAAQ,SAAS,UAAU;CAClC,WAAW,IAAI;CACf,KAAK,SAAS,KAAK;CACnB,MAAM,gBAAgB,6BAA6B,KAAK,MAAM,CAAC;CAE/D,4BAA4B,OAAO,aAAa;EAC9C,IAAI,KAAK,aAAa,OAAO,QAAQ,GAAG,cAAc;CACxD,CAAC;CAQD,OAAO,0BANc,sBAClB,aAAa,KAAK,MAAM,UAAU,QAAQ,SACrC,KAAK,MAAM,eACX,KAAK,MAAM,OAGyB,GAAG,OAAO;AACxD"}
@@ -1,9 +1,8 @@
1
- "use client";
2
1
  import { useDestroy } from "../../utils/use-destroy.js";
3
2
  import { createTransition } from "@videojs/core/dom";
4
3
  import { useLayoutEffect, useRef, useState, useSyncExternalStore } from "react";
5
4
  import { getRenderedIndicatorState, isIndicatorPresent } from "@videojs/core";
6
- //#region src/ui/input-indicators/use-rendered-indicator-state.ts
5
+ //#region src/ui/input-indicator/use-rendered-indicator-state.ts
7
6
  function useRenderedIndicatorState(currentState, options = {}) {
8
7
  const elementRef = useRef(null);
9
8
  const currentStateRef = useRef(currentState);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-rendered-indicator-state.js","names":[],"sources":["../../../../src/ui/input-indicator/use-rendered-indicator-state.ts"],"sourcesContent":["import { getRenderedIndicatorState, type IndicatorLifecycleState, isIndicatorPresent } from '@videojs/core';\nimport { createTransition } from '@videojs/core/dom';\nimport { useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';\n\nimport { useDestroy } from '../../utils/use-destroy';\n\nexport interface RenderedIndicatorOptions {\n replayOnUpdate?: boolean | undefined;\n}\n\nexport function useRenderedIndicatorState<State extends IndicatorLifecycleState>(\n currentState: State,\n options: RenderedIndicatorOptions = {}\n) {\n const elementRef = useRef<HTMLElement>(null);\n const currentStateRef = useRef(currentState);\n const snapshotRef = useRef(currentState);\n const [transition] = useState(() => createTransition());\n useDestroy(transition);\n currentStateRef.current = currentState;\n\n const transitionState = useSyncExternalStore(\n (callback) => transition.state.subscribe(callback),\n () => transition.state.current,\n () => transition.state.current\n );\n\n const { generation, open } = currentState;\n\n useLayoutEffect(() => {\n if (open) {\n const nextState = currentStateRef.current;\n if (nextState.generation !== generation) return;\n\n snapshotRef.current = nextState;\n const transitionState = transition.state.current;\n if (!transitionState.active || options.replayOnUpdate !== false) {\n void transition.open(elementRef.current);\n } else if (transitionState.status === 'ending') {\n transition.cancel();\n }\n return;\n }\n\n const { active, status } = transition.state.current;\n if (active && status !== 'ending') {\n void transition.close(elementRef.current);\n }\n }, [generation, open, options.replayOnUpdate, transition]);\n\n return {\n elementRef,\n present: isIndicatorPresent(currentState, transitionState),\n state: getRenderedIndicatorState(currentState, snapshotRef.current, transitionState),\n };\n}\n"],"mappings":";;;;;AAUA,SAAgB,0BACd,cACA,UAAoC,CAAC,GACrC;CACA,MAAM,aAAa,OAAoB,IAAI;CAC3C,MAAM,kBAAkB,OAAO,YAAY;CAC3C,MAAM,cAAc,OAAO,YAAY;CACvC,MAAM,CAAC,cAAc,eAAe,iBAAiB,CAAC;CACtD,WAAW,UAAU;CACrB,gBAAgB,UAAU;CAE1B,MAAM,kBAAkB,sBACrB,aAAa,WAAW,MAAM,UAAU,QAAQ,SAC3C,WAAW,MAAM,eACjB,WAAW,MAAM,OACzB;CAEA,MAAM,EAAE,YAAY,SAAS;CAE7B,sBAAsB;EACpB,IAAI,MAAM;GACR,MAAM,YAAY,gBAAgB;GAClC,IAAI,UAAU,eAAe,YAAY;GAEzC,YAAY,UAAU;GACtB,MAAM,kBAAkB,WAAW,MAAM;GACzC,IAAI,CAAC,gBAAgB,UAAU,QAAQ,mBAAmB,OACxD,WAAgB,KAAK,WAAW,OAAO;QAClC,IAAI,gBAAgB,WAAW,UACpC,WAAW,OAAO;GAEpB;EACF;EAEA,MAAM,EAAE,QAAQ,WAAW,WAAW,MAAM;EAC5C,IAAI,UAAU,WAAW,UACvB,WAAgB,MAAM,WAAW,OAAO;CAE5C,GAAG;EAAC;EAAY;EAAM,QAAQ;EAAgB;CAAU,CAAC;CAEzD,OAAO;EACL;EACA,SAAS,mBAAmB,cAAc,eAAe;EACzD,OAAO,0BAA0B,cAAc,YAAY,SAAS,eAAe;CACrF;AACF"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useTranslator } from "../../i18n/context.js";
3
2
  import { usePlayer } from "../../player/context.js";
4
3
  import { renderElement } from "../../utils/use-render.js";
@@ -1 +1 @@
1
- {"version":3,"file":"live-button.js","names":[],"sources":["../../../../src/ui/live-button/live-button.tsx"],"sourcesContent":["'use client';\n\nimport { LiveButtonCore, LiveButtonDataAttrs, type LiveButtonMediaState } from '@videojs/core';\nimport { logMissingFeature, selectBuffer, selectLive, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode, useLayoutEffect, useState } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useButton } from '../hooks/use-button';\nimport { useOptionalTooltipContext } from '../tooltip/context';\n\nconst DISPLAY_NAME = 'LiveButton';\n\nexport interface LiveButtonProps extends UIComponentProps<'button', LiveButtonCore.State>, LiveButtonCore.Props {}\n\n/**\n * A button that indicates live status and seeks to the live edge when\n * pressed. Exposes `data-live` while the stream is live (or DVR) and\n * `data-live-edge` while playing at the live edge so skins can style a\n * red-dot ↔ grey-dot treatment.\n *\n * Selects from `live`, `time`, and `buffer` features and composes them\n * itself rather than going through `createMediaButton`, since the LiveButton\n * needs three feature slices to detect the live edge and seek.\n *\n * Displays the translated live badge when no children are provided.\n *\n * @example\n * ```tsx\n * <LiveButton />\n * ```\n *\n * @see https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md\n */\nexport const LiveButton = forwardRef<HTMLButtonElement, LiveButtonProps>(\n function LiveButton(componentProps, forwardedRef): ReactNode {\n const { children, render, className, style, label, disabled, ...elementProps } = componentProps;\n\n const live = usePlayer(selectLive);\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n\n const media: LiveButtonMediaState | null =\n live && time && buffer\n ? {\n currentTime: time.currentTime,\n seek: time.seek,\n seekable: buffer.seekable,\n liveEdgeStart: live.liveEdgeStart,\n targetLiveWindow: live.targetLiveWindow,\n }\n : null;\n\n const tooltipCtx = useOptionalTooltipContext();\n const translator = useTranslator();\n const [core] = useState(() => new LiveButtonCore());\n core.setProps({ label, disabled });\n\n const { getButtonProps, buttonRef } = useButton({\n displayName: DISPLAY_NAME,\n onActivate: () => {\n if (media) core.seekToLive(media);\n },\n isDisabled: () => !!disabled || !media,\n });\n\n if (media) core.setMedia(media);\n const state = media ? core.getState() : null;\n const labelText = state ? translateText(core.getLabel(state), translator) : undefined;\n\n useLayoutEffect(() => {\n if (!tooltipCtx) return;\n tooltipCtx.setContent(labelText ? { label: labelText } : undefined);\n return () => tooltipCtx.setContent(undefined);\n }, [tooltipCtx, labelText]);\n\n if (!media || !state) {\n if (__DEV__) logMissingFeature(DISPLAY_NAME, selectLive.displayName ?? 'live');\n return null;\n }\n\n const attrs = core.getAttrs(state);\n const labelAttr = attrs['aria-label'];\n const content = children ?? translateText(LiveButtonCore.defaultText, translator);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap: LiveButtonDataAttrs,\n ref: [forwardedRef, buttonRef],\n props: [\n attrs,\n {\n children: content,\n ...elementProps,\n 'aria-label': labelAttr ? translateText(labelAttr, translator) : labelAttr,\n },\n getButtonProps(),\n ],\n }\n );\n }\n);\n\nLiveButton.displayName = DISPLAY_NAME;\n\nexport namespace LiveButton {\n export type Props = LiveButtonProps;\n export type State = LiveButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;AAuBrB,MAAa,aAAa,WACxB,SAAS,WAAW,gBAAgB,cAAyB;CAC3D,MAAM,EAAE,UAAU,QAAQ,WAAW,OAAO,OAAO,UAAU,GAAG,iBAAiB;CAEjF,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,SAAS,UAAU,YAAY;CAErC,MAAM,QACJ,QAAQ,QAAQ,SACZ;EACE,aAAa,KAAK;EAClB,MAAM,KAAK;EACX,UAAU,OAAO;EACjB,eAAe,KAAK;EACpB,kBAAkB,KAAK;CACzB,IACA;CAEN,MAAM,aAAa,0BAA0B;CAC7C,MAAM,aAAa,cAAc;CACjC,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAClD,KAAK,SAAS;EAAE;EAAO;CAAS,CAAC;CAEjC,MAAM,EAAE,gBAAgB,cAAc,UAAU;EAC9C,aAAa;EACb,kBAAkB;GAChB,IAAI,OAAO,KAAK,WAAW,KAAK;EAClC;EACA,kBAAkB,CAAC,CAAC,YAAY,CAAC;CACnC,CAAC;CAED,IAAI,OAAO,KAAK,SAAS,KAAK;CAC9B,MAAM,QAAQ,QAAQ,KAAK,SAAS,IAAI;CACxC,MAAM,YAAY,QAAQ,cAAc,KAAK,SAAS,KAAK,GAAG,UAAU,IAAI,KAAA;CAE5E,sBAAsB;EACpB,IAAI,CAAC,YAAY;EACjB,WAAW,WAAW,YAAY,EAAE,OAAO,UAAU,IAAI,KAAA,CAAS;EAClE,aAAa,WAAW,WAAW,KAAA,CAAS;CAC9C,GAAG,CAAC,YAAY,SAAS,CAAC;CAE1B,IAAI,CAAC,SAAS,CAAC,OAEb,OAAO;CAGT,MAAM,QAAQ,KAAK,SAAS,KAAK;CACjC,MAAM,YAAY,MAAM;CACxB,MAAM,UAAU,YAAY,cAAc,eAAe,aAAa,UAAU;CAEhF,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,SAAS;EAC7B,OAAO;GACL;GACA;IACE,UAAU;IACV,GAAG;IACH,cAAc,YAAY,cAAc,WAAW,UAAU,IAAI;GACnE;GACA,eAAe;EACjB;CACF,CACF;AACF,CACF;AAEA,WAAW,cAAc"}
1
+ {"version":3,"file":"live-button.js","names":[],"sources":["../../../../src/ui/live-button/live-button.tsx"],"sourcesContent":["import { LiveButtonCore, LiveButtonDataAttrs, type LiveButtonMediaState } from '@videojs/core';\nimport { logMissingFeature, selectBuffer, selectLive, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode, useLayoutEffect, useState } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useButton } from '../hooks/use-button';\nimport { useOptionalTooltipContext } from '../tooltip/context';\n\nconst DISPLAY_NAME = 'LiveButton';\n\nexport interface LiveButtonProps extends UIComponentProps<'button', LiveButtonCore.State>, LiveButtonCore.Props {}\n\n/**\n * A button that indicates live status and seeks to the live edge when\n * pressed. Exposes `data-live` while the stream is live (or DVR) and\n * `data-live-edge` while playing at the live edge so skins can style a\n * red-dot ↔ grey-dot treatment.\n *\n * Selects from `live`, `time`, and `buffer` features and composes them\n * itself rather than going through `createMediaButton`, since the LiveButton\n * needs three feature slices to detect the live edge and seek.\n *\n * Displays the translated live badge when no children are provided.\n *\n * @example\n * ```tsx\n * <LiveButton />\n * ```\n *\n * @see https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md\n */\nexport const LiveButton = forwardRef<HTMLButtonElement, LiveButtonProps>(\n function LiveButton(componentProps, forwardedRef): ReactNode {\n const { children, render, className, style, label, disabled, ...elementProps } = componentProps;\n\n const live = usePlayer(selectLive);\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n\n const media: LiveButtonMediaState | null =\n live && time && buffer\n ? {\n currentTime: time.currentTime,\n seek: time.seek,\n seekable: buffer.seekable,\n liveEdgeStart: live.liveEdgeStart,\n targetLiveWindow: live.targetLiveWindow,\n }\n : null;\n\n const tooltipCtx = useOptionalTooltipContext();\n const translator = useTranslator();\n const [core] = useState(() => new LiveButtonCore());\n core.setProps({ label, disabled });\n\n const { getButtonProps, buttonRef } = useButton({\n displayName: DISPLAY_NAME,\n onActivate: () => {\n if (media) core.seekToLive(media);\n },\n isDisabled: () => !!disabled || !media,\n });\n\n if (media) core.setMedia(media);\n const state = media ? core.getState() : null;\n const labelText = state ? translateText(core.getLabel(state), translator) : undefined;\n\n useLayoutEffect(() => {\n if (!tooltipCtx) return;\n tooltipCtx.setContent(labelText ? { label: labelText } : undefined);\n return () => tooltipCtx.setContent(undefined);\n }, [tooltipCtx, labelText]);\n\n if (!media || !state) {\n if (__DEV__) logMissingFeature(DISPLAY_NAME, selectLive.displayName ?? 'live');\n return null;\n }\n\n const attrs = core.getAttrs(state);\n const labelAttr = attrs['aria-label'];\n const content = children ?? translateText(LiveButtonCore.defaultText, translator);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap: LiveButtonDataAttrs,\n ref: [forwardedRef, buttonRef],\n props: [\n attrs,\n {\n children: content,\n ...elementProps,\n 'aria-label': labelAttr ? translateText(labelAttr, translator) : labelAttr,\n },\n getButtonProps(),\n ],\n }\n );\n }\n);\n\nLiveButton.displayName = DISPLAY_NAME;\n\nexport namespace LiveButton {\n export type Props = LiveButtonProps;\n export type State = LiveButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;AAYA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;AAuBrB,MAAa,aAAa,WACxB,SAAS,WAAW,gBAAgB,cAAyB;CAC3D,MAAM,EAAE,UAAU,QAAQ,WAAW,OAAO,OAAO,UAAU,GAAG,iBAAiB;CAEjF,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,SAAS,UAAU,YAAY;CAErC,MAAM,QACJ,QAAQ,QAAQ,SACZ;EACE,aAAa,KAAK;EAClB,MAAM,KAAK;EACX,UAAU,OAAO;EACjB,eAAe,KAAK;EACpB,kBAAkB,KAAK;CACzB,IACA;CAEN,MAAM,aAAa,0BAA0B;CAC7C,MAAM,aAAa,cAAc;CACjC,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAClD,KAAK,SAAS;EAAE;EAAO;CAAS,CAAC;CAEjC,MAAM,EAAE,gBAAgB,cAAc,UAAU;EAC9C,aAAa;EACb,kBAAkB;GAChB,IAAI,OAAO,KAAK,WAAW,KAAK;EAClC;EACA,kBAAkB,CAAC,CAAC,YAAY,CAAC;CACnC,CAAC;CAED,IAAI,OAAO,KAAK,SAAS,KAAK;CAC9B,MAAM,QAAQ,QAAQ,KAAK,SAAS,IAAI;CACxC,MAAM,YAAY,QAAQ,cAAc,KAAK,SAAS,KAAK,GAAG,UAAU,IAAI,KAAA;CAE5E,sBAAsB;EACpB,IAAI,CAAC,YAAY;EACjB,WAAW,WAAW,YAAY,EAAE,OAAO,UAAU,IAAI,KAAA,CAAS;EAClE,aAAa,WAAW,WAAW,KAAA,CAAS;CAC9C,GAAG,CAAC,YAAY,SAAS,CAAC;CAE1B,IAAI,CAAC,SAAS,CAAC,OAEb,OAAO;CAGT,MAAM,QAAQ,KAAK,SAAS,KAAK;CACjC,MAAM,YAAY,MAAM;CACxB,MAAM,UAAU,YAAY,cAAc,eAAe,aAAa,UAAU;CAEhF,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,SAAS;EAC7B,OAAO;GACL;GACA;IACE,UAAU;IACV,GAAG;IACH,cAAc,YAAY,cAAc,WAAW,UAAU,IAAI;GACnE;GACA,eAAe;EACjB;CACF,CACF;AACF,CACF;AAEA,WAAW,cAAc"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createContext, useContext } from "react";
3
2
  //#region src/ui/menu/context.tsx
4
3
  const MenuContext = createContext(null);
@@ -11,11 +10,6 @@ function useMenuContext() {
11
10
  function useOptionalMenuContext() {
12
11
  return useContext(MenuContext);
13
12
  }
14
- const SubMenuContext = createContext(null);
15
- const SubMenuContextProvider = SubMenuContext.Provider;
16
- function useSubMenuContext() {
17
- return useContext(SubMenuContext);
18
- }
19
13
  const MenuGroupContext = createContext(null);
20
14
  const MenuGroupContextProvider = MenuGroupContext.Provider;
21
15
  function useMenuGroupContext() {
@@ -33,12 +27,7 @@ const MenuTriggerChildContextProvider = MenuTriggerChildContext.Provider;
33
27
  function useOptionalMenuTriggerChildContext() {
34
28
  return useContext(MenuTriggerChildContext);
35
29
  }
36
- const MenuItemSettingContext = createContext(null);
37
- const MenuItemSettingContextProvider = MenuItemSettingContext.Provider;
38
- function useOptionalMenuItemSettingContext() {
39
- return useContext(MenuItemSettingContext);
40
- }
41
30
  //#endregion
42
- export { MenuContextProvider, MenuGroupContextProvider, MenuItemSettingContextProvider, MenuRadioGroupContextProvider, MenuTriggerChildContextProvider, SubMenuContextProvider, useMenuContext, useMenuGroupContext, useMenuRadioGroupContext, useOptionalMenuContext, useOptionalMenuItemSettingContext, useOptionalMenuTriggerChildContext, useSubMenuContext };
31
+ export { MenuContextProvider, MenuGroupContextProvider, MenuRadioGroupContextProvider, MenuTriggerChildContextProvider, useMenuContext, useMenuGroupContext, useMenuRadioGroupContext, useOptionalMenuContext, useOptionalMenuTriggerChildContext };
43
32
 
44
33
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/menu/context.tsx"],"sourcesContent":["'use client';\n\nimport type { MenuCore, MenuState, StateAttrMap } from '@videojs/core';\nimport type { MediaContainer, MenuApi, PositioningBoundary } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nimport type { MenuItemSettingType } from './menu-item-type';\n\nexport interface MenuContextValue {\n core: MenuCore;\n menu: MenuApi;\n state: MenuState;\n preferredSide: MenuState['side'];\n setPositionedSide: (side: MenuState['side']) => void;\n stateAttrMap: StateAttrMap<MenuState>;\n contentId: string;\n anchorName: string;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n /** ID of the currently visible submenu, or null when at root view. */\n activeSubMenuId: string | null;\n /** Triggerer ID of the active submenu entry (for focus restoration on pop). */\n activeSubMenuTriggerId: string | null;\n /** Direction of the most recent navigation. */\n navigationDirection: 'forward' | 'back';\n /** Push a submenu onto the navigation stack. */\n push: (menuId: string, triggerId: string) => void;\n /** Pop the current submenu from the navigation stack. */\n pop: () => void;\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null);\n\nexport const MenuContextProvider = MenuContext.Provider;\n\nexport function useMenuContext(): MenuContextValue {\n const ctx = useContext(MenuContext);\n if (!ctx) throw new Error('Menu compound components must be used within a Menu.Root');\n return ctx;\n}\n\nexport function useOptionalMenuContext(): MenuContextValue | null {\n return useContext(MenuContext);\n}\n\n// ---------------------------------------------------------------------------\n// Sub-menu identity context — provided by a nested Menu.Root so child parts\n// (Trigger, Content) can read the submenu ID and access the parent menu for\n// push/pop and item registration.\n// ---------------------------------------------------------------------------\n\nexport interface SubMenuContextValue {\n /** Stable ID for this submenu (matches the contentId of the nested Root). */\n subMenuId: string;\n /** The parent menu's context — used by Trigger to register and push. */\n parentMenu: MenuContextValue;\n}\n\nconst SubMenuContext = createContext<SubMenuContextValue | null>(null);\n\nexport const SubMenuContextProvider = SubMenuContext.Provider;\n\nexport function useSubMenuContext(): SubMenuContextValue | null {\n return useContext(SubMenuContext);\n}\n\n// ---------------------------------------------------------------------------\n// Group context — shared by group-like parts and MenuGroupLabel\n// ---------------------------------------------------------------------------\n\nexport interface MenuGroupContextValue {\n registerLabel: (id: string) => () => void;\n}\n\nconst MenuGroupContext = createContext<MenuGroupContextValue | null>(null);\n\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\n\nexport function useMenuGroupContext(): MenuGroupContextValue | null {\n return useContext(MenuGroupContext);\n}\n\n// ---------------------------------------------------------------------------\n// Radio group context — shared between MenuRadioGroup and MenuRadioItem\n// ---------------------------------------------------------------------------\n\nexport interface MenuRadioGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst MenuRadioGroupContext = createContext<MenuRadioGroupContextValue | null>(null);\n\nexport const MenuRadioGroupContextProvider = MenuRadioGroupContext.Provider;\n\nexport function useMenuRadioGroupContext(): MenuRadioGroupContextValue {\n const ctx = useContext(MenuRadioGroupContext);\n if (!ctx) throw new Error('Menu.RadioItem must be used within a Menu.RadioGroup');\n return ctx;\n}\n\n// ---------------------------------------------------------------------------\n// Root trigger render context — provided by Menu.Trigger for render children.\n// ---------------------------------------------------------------------------\n\nconst MenuTriggerChildContext = createContext(false);\n\nexport const MenuTriggerChildContextProvider = MenuTriggerChildContext.Provider;\n\nexport function useOptionalMenuTriggerChildContext(): boolean {\n return useContext(MenuTriggerChildContext);\n}\n\n// ---------------------------------------------------------------------------\n// Menu item setting context — provided by Menu.Item or Menu.Trigger when `type`\n// is set; consumed by Menu.ItemValue.\n// ---------------------------------------------------------------------------\n\nexport interface MenuItemSettingContextValue {\n type: MenuItemSettingType;\n label: string;\n availability: 'available' | 'unavailable';\n}\n\nconst MenuItemSettingContext = createContext<MenuItemSettingContextValue | null>(null);\n\nexport const MenuItemSettingContextProvider = MenuItemSettingContext.Provider;\n\nexport function useMenuItemSettingContext(): MenuItemSettingContextValue {\n const ctx = useContext(MenuItemSettingContext);\n if (!ctx) throw new Error('Menu.ItemValue must be used within a Menu.Item or Menu.Trigger with `type` set');\n return ctx;\n}\n\nexport function useOptionalMenuItemSettingContext(): MenuItemSettingContextValue | null {\n return useContext(MenuItemSettingContext);\n}\n"],"mappings":";;;AA+BA,MAAM,cAAc,cAAuC,IAAI;AAE/D,MAAa,sBAAsB,YAAY;AAE/C,SAAgB,iBAAmC;CACjD,MAAM,MAAM,WAAW,WAAW;CAClC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,0DAA0D;CACpF,OAAO;AACT;AAEA,SAAgB,yBAAkD;CAChE,OAAO,WAAW,WAAW;AAC/B;AAeA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAgD;CAC9D,OAAO,WAAW,cAAc;AAClC;AAUA,MAAM,mBAAmB,cAA4C,IAAI;AAEzE,MAAa,2BAA2B,iBAAiB;AAEzD,SAAgB,sBAAoD;CAClE,OAAO,WAAW,gBAAgB;AACpC;AAWA,MAAM,wBAAwB,cAAiD,IAAI;AAEnF,MAAa,gCAAgC,sBAAsB;AAEnE,SAAgB,2BAAuD;CACrE,MAAM,MAAM,WAAW,qBAAqB;CAC5C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,sDAAsD;CAChF,OAAO;AACT;AAMA,MAAM,0BAA0B,cAAc,KAAK;AAEnD,MAAa,kCAAkC,wBAAwB;AAEvE,SAAgB,qCAA8C;CAC5D,OAAO,WAAW,uBAAuB;AAC3C;AAaA,MAAM,yBAAyB,cAAkD,IAAI;AAErF,MAAa,iCAAiC,uBAAuB;AAQrE,SAAgB,oCAAwE;CACtF,OAAO,WAAW,sBAAsB;AAC1C"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/menu/context.tsx"],"sourcesContent":["import type { MenuCore, MenuState, StateAttrMap } from '@videojs/core';\nimport type { MediaContainer, MenuApi, PositioningBoundary } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface MenuContextValue {\n core: MenuCore;\n menu: MenuApi;\n parent: MenuContextValue | null;\n state: MenuState;\n preferredSide: MenuState['side'];\n setPositionedSide: (side: MenuState['side']) => void;\n stateAttrMap: StateAttrMap<MenuState>;\n contentId: string;\n anchorName: string;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null);\n\nexport const MenuContextProvider = MenuContext.Provider;\n\nexport function useMenuContext(): MenuContextValue {\n const ctx = useContext(MenuContext);\n if (!ctx) throw new Error('Menu compound components must be used within a Menu.Root');\n return ctx;\n}\n\nexport function useOptionalMenuContext(): MenuContextValue | null {\n return useContext(MenuContext);\n}\n\n// ---------------------------------------------------------------------------\n// Group context — shared by group-like parts and MenuGroupLabel\n// ---------------------------------------------------------------------------\n\nexport interface MenuGroupContextValue {\n registerLabel: (id: string) => () => void;\n}\n\nconst MenuGroupContext = createContext<MenuGroupContextValue | null>(null);\n\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\n\nexport function useMenuGroupContext(): MenuGroupContextValue | null {\n return useContext(MenuGroupContext);\n}\n\n// ---------------------------------------------------------------------------\n// Radio group context — shared between MenuRadioGroup and MenuRadioItem\n// ---------------------------------------------------------------------------\n\nexport interface MenuRadioGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst MenuRadioGroupContext = createContext<MenuRadioGroupContextValue | null>(null);\n\nexport const MenuRadioGroupContextProvider = MenuRadioGroupContext.Provider;\n\nexport function useMenuRadioGroupContext(): MenuRadioGroupContextValue {\n const ctx = useContext(MenuRadioGroupContext);\n if (!ctx) throw new Error('Menu.RadioItem must be used within a Menu.RadioGroup');\n return ctx;\n}\n\n// ---------------------------------------------------------------------------\n// Root trigger render context — provided by Menu.Trigger for render children.\n// ---------------------------------------------------------------------------\n\nconst MenuTriggerChildContext = createContext(false);\n\nexport const MenuTriggerChildContextProvider = MenuTriggerChildContext.Provider;\n\nexport function useOptionalMenuTriggerChildContext(): boolean {\n return useContext(MenuTriggerChildContext);\n}\n"],"mappings":";;AAkBA,MAAM,cAAc,cAAuC,IAAI;AAE/D,MAAa,sBAAsB,YAAY;AAE/C,SAAgB,iBAAmC;CACjD,MAAM,MAAM,WAAW,WAAW;CAClC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,0DAA0D;CACpF,OAAO;AACT;AAEA,SAAgB,yBAAkD;CAChE,OAAO,WAAW,WAAW;AAC/B;AAUA,MAAM,mBAAmB,cAA4C,IAAI;AAEzE,MAAa,2BAA2B,iBAAiB;AAEzD,SAAgB,sBAAoD;CAClE,OAAO,WAAW,gBAAgB;AACpC;AAWA,MAAM,wBAAwB,cAAiD,IAAI;AAEnF,MAAa,gCAAgC,sBAAsB;AAEnE,SAAgB,2BAAuD;CACrE,MAAM,MAAM,WAAW,qBAAqB;CAC5C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,sDAAsD;CAChF,OAAO;AACT;AAMA,MAAM,0BAA0B,cAAc,KAAK;AAEnD,MAAa,kCAAkC,wBAAwB;AAEvE,SAAgB,qCAA8C;CAC5D,OAAO,WAAW,uBAAuB;AAC3C"}
@@ -1,36 +1,30 @@
1
1
  import { __exportAll } from "../../_virtual/_rolldown/runtime.js";
2
- import { MenuBack } from "./menu-back.js";
2
+ import { MenuRadioGroup } from "./menu-radio-group.js";
3
3
  import { MenuCheckboxItem } from "./menu-checkbox-item.js";
4
4
  import { MenuContent } from "./menu-content.js";
5
5
  import { MenuGroup } from "./menu-group.js";
6
6
  import { MenuGroupLabel } from "./menu-group-label.js";
7
7
  import { MenuItem } from "./menu-item.js";
8
8
  import { MenuItemIndicator } from "./menu-item-indicator.js";
9
- import { MenuItemValue } from "./menu-item-value.js";
10
- import { MenuRadioGroup } from "./menu-radio-group.js";
11
9
  import { MenuRadioItem } from "./menu-radio-item.js";
12
10
  import { MenuRoot } from "./menu-root.js";
13
11
  import { MenuSeparator } from "./menu-separator.js";
14
12
  import { MenuTrigger } from "./menu-trigger.js";
15
- import { MenuView } from "./menu-view.js";
16
13
  //#region src/ui/menu/index.parts.ts
17
14
  var index_parts_exports = /* @__PURE__ */ __exportAll({
18
- Back: () => MenuBack,
19
15
  CheckboxItem: () => MenuCheckboxItem,
20
16
  Content: () => MenuContent,
21
17
  Group: () => MenuGroup,
22
18
  GroupLabel: () => MenuGroupLabel,
23
19
  Item: () => MenuItem,
24
20
  ItemIndicator: () => MenuItemIndicator,
25
- ItemValue: () => MenuItemValue,
26
21
  RadioGroup: () => MenuRadioGroup,
27
22
  RadioItem: () => MenuRadioItem,
28
23
  Root: () => MenuRoot,
29
24
  Separator: () => MenuSeparator,
30
- Trigger: () => MenuTrigger,
31
- View: () => MenuView
25
+ Trigger: () => MenuTrigger
32
26
  });
33
27
  //#endregion
34
- export { MenuBack as Back, MenuCheckboxItem as CheckboxItem, MenuContent as Content, MenuGroup as Group, MenuGroupLabel as GroupLabel, MenuItem as Item, MenuItemIndicator as ItemIndicator, MenuItemValue as ItemValue, MenuRadioGroup as RadioGroup, MenuRadioItem as RadioItem, MenuRoot as Root, MenuSeparator as Separator, MenuTrigger as Trigger, MenuView as View, index_parts_exports };
28
+ export { MenuCheckboxItem as CheckboxItem, MenuContent as Content, MenuGroup as Group, MenuGroupLabel as GroupLabel, MenuItem as Item, MenuItemIndicator as ItemIndicator, MenuRadioGroup as RadioGroup, MenuRadioItem as RadioItem, MenuRoot as Root, MenuSeparator as Separator, MenuTrigger as Trigger, index_parts_exports };
35
29
 
36
30
  //# sourceMappingURL=index.parts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/menu/index.parts.ts"],"sourcesContent":["export { MenuBack as Back, type MenuBackProps as BackProps } from './menu-back';\nexport {\n MenuCheckboxItem as CheckboxItem,\n type MenuCheckboxItemProps as CheckboxItemProps,\n} from './menu-checkbox-item';\nexport { MenuContent as Content, type MenuContentProps as ContentProps } from './menu-content';\nexport { MenuGroup as Group, type MenuGroupProps as GroupProps } from './menu-group';\nexport { MenuGroupLabel as GroupLabel, type MenuGroupLabelProps as GroupLabelProps } from './menu-group-label';\nexport { MenuItem as Item, type MenuItemProps as ItemProps } from './menu-item';\nexport {\n MenuItemIndicator as ItemIndicator,\n type MenuItemIndicatorProps as ItemIndicatorProps,\n} from './menu-item-indicator';\nexport { MenuItemValue as ItemValue, type MenuItemValueProps as ItemValueProps } from './menu-item-value';\nexport { MenuRadioGroup as RadioGroup, type MenuRadioGroupProps as RadioGroupProps } from './menu-radio-group';\nexport { MenuRadioItem as RadioItem, type MenuRadioItemProps as RadioItemProps } from './menu-radio-item';\nexport { MenuRoot as Root, type MenuRootProps as RootProps } from './menu-root';\nexport { MenuSeparator as Separator, type MenuSeparatorProps as SeparatorProps } from './menu-separator';\nexport { MenuTrigger as Trigger, type MenuTriggerProps as TriggerProps } from './menu-trigger';\nexport { MenuView as View, type MenuViewProps as ViewProps } from './menu-view';\n"],"mappings":""}
1
+ {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/menu/index.parts.ts"],"sourcesContent":["export {\n MenuCheckboxItem as CheckboxItem,\n type MenuCheckboxItemProps as CheckboxItemProps,\n} from './menu-checkbox-item';\nexport { MenuContent as Content, type MenuContentProps as ContentProps } from './menu-content';\nexport { MenuGroup as Group, type MenuGroupProps as GroupProps } from './menu-group';\nexport { MenuGroupLabel as GroupLabel, type MenuGroupLabelProps as GroupLabelProps } from './menu-group-label';\nexport { MenuItem as Item, type MenuItemProps as ItemProps } from './menu-item';\nexport {\n MenuItemIndicator as ItemIndicator,\n type MenuItemIndicatorProps as ItemIndicatorProps,\n} from './menu-item-indicator';\nexport { MenuRadioGroup as RadioGroup, type MenuRadioGroupProps as RadioGroupProps } from './menu-radio-group';\nexport { MenuRadioItem as RadioItem, type MenuRadioItemProps as RadioItemProps } from './menu-radio-item';\nexport { MenuRoot as Root, type MenuRootProps as RootProps } from './menu-root';\nexport { MenuSeparator as Separator, type MenuSeparatorProps as SeparatorProps } from './menu-separator';\nexport { MenuTrigger as Trigger, type MenuTriggerProps as TriggerProps } from './menu-trigger';\n"],"mappings":""}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../utils/use-render.js";
3
2
  import { useMenuContext } from "./context.js";
4
3
  import { forwardRef, useCallback, useEffect, useRef } from "react";
@@ -25,7 +24,10 @@ const MenuCheckboxItem = forwardRef(function MenuCheckboxItem({ render, classNam
25
24
  const handlePointerEnter = useCallback(() => {
26
25
  const element = elementRef.current;
27
26
  if (!element || disabled) return;
28
- menu.highlight(element, { focus: false });
27
+ menu.highlight(element, {
28
+ focus: false,
29
+ pointer: true
30
+ });
29
31
  }, [menu, disabled]);
30
32
  return renderElement("div", {
31
33
  render,