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

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 (865) hide show
  1. package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
  2. package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
  3. package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
  4. package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
  5. package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
  6. package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
  7. package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
  8. package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
  9. package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
  10. package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
  11. package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
  12. package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
  13. package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
  14. package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
  15. package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
  16. package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  17. package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
  18. package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
  19. package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
  20. package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  21. package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  22. package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
  23. package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  24. package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
  25. package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
  26. package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  27. package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  28. package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
  29. package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
  30. package/dist/default/i18n/context.js +0 -1
  31. package/dist/default/i18n/context.js.map +1 -1
  32. package/dist/default/i18n/create-i18n.js +0 -1
  33. package/dist/default/i18n/create-i18n.js.map +1 -1
  34. package/dist/default/i18n/index.js +2 -1
  35. package/dist/default/i18n/text.js +20 -0
  36. package/dist/default/i18n/text.js.map +1 -0
  37. package/dist/default/icons/dist/react/default/airplay-exit.js +3 -3
  38. package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
  39. package/dist/default/icons/dist/react/minimal/airplay-exit.js +3 -3
  40. package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  41. package/dist/default/index.js +2 -1
  42. package/dist/default/media/audio.js +0 -1
  43. package/dist/default/media/audio.js.map +1 -1
  44. package/dist/default/media/hls-background-video/media.js +18 -3
  45. package/dist/default/media/hls-background-video/media.js.map +1 -1
  46. package/dist/default/media/video.js +0 -1
  47. package/dist/default/media/video.js.map +1 -1
  48. package/dist/default/player/container.js +0 -1
  49. package/dist/default/player/container.js.map +1 -1
  50. package/dist/default/player/context.js +0 -1
  51. package/dist/default/player/context.js.map +1 -1
  52. package/dist/default/player/create-player.js +0 -1
  53. package/dist/default/player/create-player.js.map +1 -1
  54. package/dist/default/player/popup-group-context.js +0 -1
  55. package/dist/default/player/popup-group-context.js.map +1 -1
  56. package/dist/default/presets/audio/minimal-skin.css +117 -118
  57. package/dist/default/presets/audio/minimal-skin.js +2 -1
  58. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  59. package/dist/default/presets/audio/minimal-skin.tailwind.js +2 -1
  60. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  61. package/dist/default/presets/audio/skin.css +95 -99
  62. package/dist/default/presets/audio/skin.js +2 -1
  63. package/dist/default/presets/audio/skin.js.map +1 -1
  64. package/dist/default/presets/audio/skin.tailwind.js +2 -1
  65. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  66. package/dist/default/presets/background/skin.js +1 -0
  67. package/dist/default/presets/background/skin.js.map +1 -1
  68. package/dist/default/presets/live-audio/minimal-skin.css +117 -118
  69. package/dist/default/presets/live-audio/minimal-skin.js +1 -0
  70. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
  71. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +1 -0
  72. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  73. package/dist/default/presets/live-audio/skin.css +95 -99
  74. package/dist/default/presets/live-audio/skin.js +1 -0
  75. package/dist/default/presets/live-audio/skin.js.map +1 -1
  76. package/dist/default/presets/live-audio/skin.tailwind.js +1 -0
  77. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
  78. package/dist/default/presets/live-video/minimal-skin.css +158 -137
  79. package/dist/default/presets/live-video/minimal-skin.js +4 -8
  80. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  81. package/dist/default/presets/live-video/minimal-skin.tailwind.js +6 -8
  82. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  83. package/dist/default/presets/live-video/skin.css +120 -106
  84. package/dist/default/presets/live-video/skin.js +4 -8
  85. package/dist/default/presets/live-video/skin.js.map +1 -1
  86. package/dist/default/presets/live-video/skin.tailwind.js +8 -10
  87. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  88. package/dist/default/presets/video/minimal-skin.css +158 -137
  89. package/dist/default/presets/video/minimal-skin.js +4 -8
  90. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  91. package/dist/default/presets/video/minimal-skin.tailwind.js +6 -8
  92. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  93. package/dist/default/presets/video/skin.css +120 -106
  94. package/dist/default/presets/video/skin.js +4 -8
  95. package/dist/default/presets/video/skin.js.map +1 -1
  96. package/dist/default/presets/video/skin.tailwind.js +7 -9
  97. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  98. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
  99. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  100. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
  101. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  102. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +13 -13
  103. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  104. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  105. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  106. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +3 -3
  107. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  108. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  109. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  110. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  111. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  112. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  113. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  114. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -6
  115. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  116. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  117. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  118. package/dist/default/ui/airplay-button/airplay-button.js +0 -1
  119. package/dist/default/ui/airplay-button/airplay-button.js.map +1 -1
  120. package/dist/default/ui/alert-dialog/alert-dialog-close.js +0 -1
  121. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  122. package/dist/default/ui/alert-dialog/alert-dialog-description.js +0 -1
  123. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  124. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +0 -1
  125. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  126. package/dist/default/ui/alert-dialog/alert-dialog-root.js +0 -1
  127. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  128. package/dist/default/ui/alert-dialog/alert-dialog-title.js +0 -1
  129. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  130. package/dist/default/ui/alert-dialog/context.js +0 -1
  131. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  132. package/dist/default/ui/audio-track/use-audio-track-options.js +0 -1
  133. package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -1
  134. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js +0 -1
  135. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  136. package/dist/default/ui/buffering-indicator/buffering-indicator.js +0 -1
  137. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  138. package/dist/default/ui/captions-button/captions-button.js +0 -1
  139. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  140. package/dist/default/ui/captions-radio-group/captions-radio-group.js +0 -1
  141. package/dist/default/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  142. package/dist/default/ui/captions-radio-group/use-captions-options.js +0 -1
  143. package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -1
  144. package/dist/default/ui/cast-button/cast-button.js +0 -1
  145. package/dist/default/ui/cast-button/cast-button.js.map +1 -1
  146. package/dist/default/ui/controls/context.js +0 -1
  147. package/dist/default/ui/controls/context.js.map +1 -1
  148. package/dist/default/ui/controls/controls-group.js +0 -1
  149. package/dist/default/ui/controls/controls-group.js.map +1 -1
  150. package/dist/default/ui/controls/controls-root.js +0 -1
  151. package/dist/default/ui/controls/controls-root.js.map +1 -1
  152. package/dist/default/ui/create-context-part.js +0 -1
  153. package/dist/default/ui/create-context-part.js.map +1 -1
  154. package/dist/default/ui/create-media-button.js +0 -1
  155. package/dist/default/ui/create-media-button.js.map +1 -1
  156. package/dist/default/ui/error-dialog/context.js +0 -1
  157. package/dist/default/ui/error-dialog/context.js.map +1 -1
  158. package/dist/default/ui/error-dialog/error-dialog-close.js +0 -1
  159. package/dist/default/ui/error-dialog/error-dialog-close.js.map +1 -1
  160. package/dist/default/ui/error-dialog/error-dialog-description.js +0 -1
  161. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -1
  162. package/dist/default/ui/error-dialog/error-dialog-root.js +0 -1
  163. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -1
  164. package/dist/default/ui/error-dialog/error-dialog-title.js +0 -1
  165. package/dist/default/ui/error-dialog/error-dialog-title.js.map +1 -1
  166. package/dist/default/ui/fullscreen-button/fullscreen-button.js +0 -1
  167. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  168. package/dist/default/ui/gesture/gesture.js +0 -1
  169. package/dist/default/ui/gesture/gesture.js.map +1 -1
  170. package/dist/default/ui/gesture/use-doubletap-gesture.js +0 -1
  171. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  172. package/dist/default/ui/gesture/use-tap-gesture.js +0 -1
  173. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  174. package/dist/default/ui/hooks/create-radio-options-hook.js +0 -1
  175. package/dist/default/ui/hooks/create-radio-options-hook.js.map +1 -1
  176. package/dist/default/ui/hooks/use-button.js +0 -1
  177. package/dist/default/ui/hooks/use-button.js.map +1 -1
  178. package/dist/default/ui/hooks/use-positioned-state.js +0 -1
  179. package/dist/default/ui/hooks/use-positioned-state.js.map +1 -1
  180. package/dist/default/ui/hooks/use-slider.js +0 -1
  181. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  182. package/dist/default/ui/hotkey/hotkey.js +0 -1
  183. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  184. package/dist/default/ui/hotkey/use-hotkey-shortcut.js +0 -1
  185. package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  186. package/dist/default/ui/hotkey/use-hotkey.js +0 -1
  187. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
  188. package/dist/default/ui/input-indicator/use-indicator-visibility.js +0 -1
  189. package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  190. package/dist/default/ui/input-indicator/use-input-action-subscription.js +0 -1
  191. package/dist/default/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  192. package/dist/default/ui/input-indicator/use-input-indicator-root.js +0 -1
  193. package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  194. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js +0 -1
  195. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  196. package/dist/default/ui/live-button/live-button.js +0 -1
  197. package/dist/default/ui/live-button/live-button.js.map +1 -1
  198. package/dist/default/ui/menu/context.js +6 -2
  199. package/dist/default/ui/menu/context.js.map +1 -1
  200. package/dist/default/ui/menu/menu-checkbox-item.js +0 -1
  201. package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
  202. package/dist/default/ui/menu/menu-content.js +0 -1
  203. package/dist/default/ui/menu/menu-content.js.map +1 -1
  204. package/dist/default/ui/menu/menu-group-label.js +0 -1
  205. package/dist/default/ui/menu/menu-group-label.js.map +1 -1
  206. package/dist/default/ui/menu/menu-group.js +0 -1
  207. package/dist/default/ui/menu/menu-group.js.map +1 -1
  208. package/dist/default/ui/menu/menu-item-indicator.js +3 -3
  209. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  210. package/dist/default/ui/menu/menu-item.js +0 -1
  211. package/dist/default/ui/menu/menu-item.js.map +1 -1
  212. package/dist/default/ui/menu/menu-radio-group.js +0 -1
  213. package/dist/default/ui/menu/menu-radio-group.js.map +1 -1
  214. package/dist/default/ui/menu/menu-radio-item.js +19 -16
  215. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  216. package/dist/default/ui/menu/menu-root.js +5 -7
  217. package/dist/default/ui/menu/menu-root.js.map +1 -1
  218. package/dist/default/ui/menu/menu-separator.js +0 -1
  219. package/dist/default/ui/menu/menu-separator.js.map +1 -1
  220. package/dist/default/ui/menu/menu-trigger.js +26 -12
  221. package/dist/default/ui/menu/menu-trigger.js.map +1 -1
  222. package/dist/default/ui/menu/use-menu-group.js +0 -1
  223. package/dist/default/ui/menu/use-menu-group.js.map +1 -1
  224. package/dist/default/ui/mute-button/mute-button.js +0 -1
  225. package/dist/default/ui/mute-button/mute-button.js.map +1 -1
  226. package/dist/default/ui/pip-button/pip-button.js +0 -1
  227. package/dist/default/ui/pip-button/pip-button.js.map +1 -1
  228. package/dist/default/ui/play-button/play-button.js +0 -1
  229. package/dist/default/ui/play-button/play-button.js.map +1 -1
  230. package/dist/default/ui/playback-rate/use-playback-rate-options.js +0 -1
  231. package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  232. package/dist/default/ui/playback-rate-button/playback-rate-button.js +0 -1
  233. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  234. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js +0 -1
  235. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  236. package/dist/default/ui/popover/context.js +0 -1
  237. package/dist/default/ui/popover/context.js.map +1 -1
  238. package/dist/default/ui/popover/popover-arrow.js +0 -1
  239. package/dist/default/ui/popover/popover-arrow.js.map +1 -1
  240. package/dist/default/ui/popover/popover-popup.js +0 -1
  241. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  242. package/dist/default/ui/popover/popover-root.js +0 -1
  243. package/dist/default/ui/popover/popover-root.js.map +1 -1
  244. package/dist/default/ui/popover/popover-trigger.js +0 -1
  245. package/dist/default/ui/popover/popover-trigger.js.map +1 -1
  246. package/dist/default/ui/popover/use-popup-position.js +0 -1
  247. package/dist/default/ui/popover/use-popup-position.js.map +1 -1
  248. package/dist/default/ui/poster/poster.js +64 -18
  249. package/dist/default/ui/poster/poster.js.map +1 -1
  250. package/dist/default/ui/quality/use-quality-options.js +0 -1
  251. package/dist/default/ui/quality/use-quality-options.js.map +1 -1
  252. package/dist/default/ui/quality-radio-group/quality-radio-group.js +0 -1
  253. package/dist/default/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  254. package/dist/default/ui/seek-button/seek-button.js +0 -1
  255. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  256. package/dist/default/ui/seek-indicator/context.js +0 -1
  257. package/dist/default/ui/seek-indicator/context.js.map +1 -1
  258. package/dist/default/ui/seek-indicator/seek-indicator-root.js +0 -1
  259. package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  260. package/dist/default/ui/seek-indicator/seek-indicator-value.js +0 -1
  261. package/dist/default/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  262. package/dist/default/ui/slider/context.js +0 -1
  263. package/dist/default/ui/slider/context.js.map +1 -1
  264. package/dist/default/ui/slider/slider-buffer.js +0 -1
  265. package/dist/default/ui/slider/slider-buffer.js.map +1 -1
  266. package/dist/default/ui/slider/slider-fill.js +0 -1
  267. package/dist/default/ui/slider/slider-fill.js.map +1 -1
  268. package/dist/default/ui/slider/slider-preview.js +0 -1
  269. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  270. package/dist/default/ui/slider/slider-root.js +0 -1
  271. package/dist/default/ui/slider/slider-root.js.map +1 -1
  272. package/dist/default/ui/slider/slider-thumb.js +0 -1
  273. package/dist/default/ui/slider/slider-thumb.js.map +1 -1
  274. package/dist/default/ui/slider/slider-thumbnail.js +0 -1
  275. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  276. package/dist/default/ui/slider/slider-track.js +0 -1
  277. package/dist/default/ui/slider/slider-track.js.map +1 -1
  278. package/dist/default/ui/slider/slider-value.js +0 -1
  279. package/dist/default/ui/slider/slider-value.js.map +1 -1
  280. package/dist/default/ui/status-announcer/status-announcer.js +0 -1
  281. package/dist/default/ui/status-announcer/status-announcer.js.map +1 -1
  282. package/dist/default/ui/status-indicator/context.js +0 -1
  283. package/dist/default/ui/status-indicator/context.js.map +1 -1
  284. package/dist/default/ui/status-indicator/status-indicator-root.js +0 -1
  285. package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -1
  286. package/dist/default/ui/status-indicator/status-indicator-value.js +0 -1
  287. package/dist/default/ui/status-indicator/status-indicator-value.js.map +1 -1
  288. package/dist/default/ui/thumbnail/thumbnail.js +0 -1
  289. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  290. package/dist/default/ui/time/time-group.js +0 -1
  291. package/dist/default/ui/time/time-group.js.map +1 -1
  292. package/dist/default/ui/time/time-separator.js +0 -1
  293. package/dist/default/ui/time/time-separator.js.map +1 -1
  294. package/dist/default/ui/time/time-value.js +0 -1
  295. package/dist/default/ui/time/time-value.js.map +1 -1
  296. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js +0 -1
  297. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  298. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +0 -1
  299. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -1
  300. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js +0 -1
  301. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -1
  302. package/dist/default/ui/time-slider/time-slider-root.js +0 -1
  303. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  304. package/dist/default/ui/tooltip/context.js +0 -1
  305. package/dist/default/ui/tooltip/context.js.map +1 -1
  306. package/dist/default/ui/tooltip/group-context.js +0 -1
  307. package/dist/default/ui/tooltip/group-context.js.map +1 -1
  308. package/dist/default/ui/tooltip/tooltip-arrow.js +0 -1
  309. package/dist/default/ui/tooltip/tooltip-arrow.js.map +1 -1
  310. package/dist/default/ui/tooltip/tooltip-label.js +0 -1
  311. package/dist/default/ui/tooltip/tooltip-label.js.map +1 -1
  312. package/dist/default/ui/tooltip/tooltip-popup.js +0 -1
  313. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  314. package/dist/default/ui/tooltip/tooltip-provider.js +0 -1
  315. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  316. package/dist/default/ui/tooltip/tooltip-root.js +0 -1
  317. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  318. package/dist/default/ui/tooltip/tooltip-shortcut.js +0 -1
  319. package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -1
  320. package/dist/default/ui/tooltip/tooltip-trigger.js +0 -1
  321. package/dist/default/ui/tooltip/tooltip-trigger.js.map +1 -1
  322. package/dist/default/ui/volume-indicator/context.js +0 -1
  323. package/dist/default/ui/volume-indicator/context.js.map +1 -1
  324. package/dist/default/ui/volume-indicator/volume-indicator-fill.js +0 -1
  325. package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  326. package/dist/default/ui/volume-indicator/volume-indicator-root.js +0 -1
  327. package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  328. package/dist/default/ui/volume-indicator/volume-indicator-value.js +0 -1
  329. package/dist/default/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  330. package/dist/default/ui/volume-slider/volume-slider-root.js +0 -1
  331. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  332. package/dist/default/utils/merge-props.js +0 -1
  333. package/dist/default/utils/merge-props.js.map +1 -1
  334. package/dist/default/utils/use-attach-iframe.js +0 -1
  335. package/dist/default/utils/use-attach-iframe.js.map +1 -1
  336. package/dist/default/utils/use-attach-media.js +0 -1
  337. package/dist/default/utils/use-attach-media.js.map +1 -1
  338. package/dist/default/utils/use-composed-refs.js +0 -1
  339. package/dist/default/utils/use-composed-refs.js.map +1 -1
  340. package/dist/default/utils/use-destroy.js +0 -1
  341. package/dist/default/utils/use-destroy.js.map +1 -1
  342. package/dist/default/utils/use-force-render.js +0 -1
  343. package/dist/default/utils/use-force-render.js.map +1 -1
  344. package/dist/default/utils/use-latest-ref.js +0 -1
  345. package/dist/default/utils/use-latest-ref.js.map +1 -1
  346. package/dist/default/utils/use-media-component.js +0 -1
  347. package/dist/default/utils/use-media-component.js.map +1 -1
  348. package/dist/default/utils/use-media-instance.js +0 -1
  349. package/dist/default/utils/use-media-instance.js.map +1 -1
  350. package/dist/default/utils/use-render.js +2 -9
  351. package/dist/default/utils/use-render.js.map +1 -1
  352. package/dist/default/utils/use-safe-id.js +0 -1
  353. package/dist/default/utils/use-safe-id.js.map +1 -1
  354. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
  355. package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
  356. package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
  357. package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
  358. package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
  359. package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
  360. package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
  361. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
  362. package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
  363. package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
  364. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
  365. package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
  366. package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
  367. package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
  368. package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
  369. package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  370. package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
  371. package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
  372. package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
  373. package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  374. package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  375. package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
  376. package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  377. package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
  378. package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
  379. package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  380. package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  381. package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
  382. package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
  383. package/dist/dev/i18n/context.d.ts.map +1 -1
  384. package/dist/dev/i18n/context.js +0 -1
  385. package/dist/dev/i18n/context.js.map +1 -1
  386. package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
  387. package/dist/dev/i18n/create-i18n.js +0 -1
  388. package/dist/dev/i18n/create-i18n.js.map +1 -1
  389. package/dist/dev/i18n/index.d.ts +2 -1
  390. package/dist/dev/i18n/index.js +2 -1
  391. package/dist/dev/i18n/text.d.ts +11 -0
  392. package/dist/dev/i18n/text.d.ts.map +1 -0
  393. package/dist/dev/i18n/text.js +20 -0
  394. package/dist/dev/i18n/text.js.map +1 -0
  395. package/dist/dev/icons/dist/react/default/airplay-exit.js +3 -3
  396. package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
  397. package/dist/dev/icons/dist/react/minimal/airplay-exit.js +3 -3
  398. package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  399. package/dist/dev/icons/index.d.ts +6 -1
  400. package/dist/dev/icons/index.d.ts.map +1 -0
  401. package/dist/dev/icons/minimal/index.d.ts +6 -1
  402. package/dist/dev/icons/minimal/index.d.ts.map +1 -0
  403. package/dist/dev/index.d.ts +3 -2
  404. package/dist/dev/index.js +2 -1
  405. package/dist/dev/media/audio.d.ts.map +1 -1
  406. package/dist/dev/media/audio.js +0 -1
  407. package/dist/dev/media/audio.js.map +1 -1
  408. package/dist/dev/media/hls-background-video/media.d.ts +8 -0
  409. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
  410. package/dist/dev/media/hls-background-video/media.js +18 -3
  411. package/dist/dev/media/hls-background-video/media.js.map +1 -1
  412. package/dist/dev/media/video.d.ts.map +1 -1
  413. package/dist/dev/media/video.js +0 -1
  414. package/dist/dev/media/video.js.map +1 -1
  415. package/dist/dev/player/container.d.ts.map +1 -1
  416. package/dist/dev/player/container.js +0 -1
  417. package/dist/dev/player/container.js.map +1 -1
  418. package/dist/dev/player/context.d.ts.map +1 -1
  419. package/dist/dev/player/context.js +0 -1
  420. package/dist/dev/player/context.js.map +1 -1
  421. package/dist/dev/player/create-player.d.ts.map +1 -1
  422. package/dist/dev/player/create-player.js +0 -1
  423. package/dist/dev/player/create-player.js.map +1 -1
  424. package/dist/dev/player/popup-group-context.js +0 -1
  425. package/dist/dev/player/popup-group-context.js.map +1 -1
  426. package/dist/dev/presets/audio/minimal-skin.css +117 -118
  427. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  428. package/dist/dev/presets/audio/minimal-skin.js +2 -1
  429. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  430. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  431. package/dist/dev/presets/audio/minimal-skin.tailwind.js +2 -1
  432. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  433. package/dist/dev/presets/audio/player.d.ts +2 -2
  434. package/dist/dev/presets/audio/skin.css +95 -99
  435. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  436. package/dist/dev/presets/audio/skin.js +2 -1
  437. package/dist/dev/presets/audio/skin.js.map +1 -1
  438. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  439. package/dist/dev/presets/audio/skin.tailwind.js +2 -1
  440. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  441. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  442. package/dist/dev/presets/background/skin.js +1 -0
  443. package/dist/dev/presets/background/skin.js.map +1 -1
  444. package/dist/dev/presets/live-audio/minimal-skin.css +117 -118
  445. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
  446. package/dist/dev/presets/live-audio/minimal-skin.js +1 -0
  447. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
  448. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
  449. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +1 -0
  450. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  451. package/dist/dev/presets/live-audio/player.d.ts +2 -2
  452. package/dist/dev/presets/live-audio/skin.css +95 -99
  453. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
  454. package/dist/dev/presets/live-audio/skin.js +1 -0
  455. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  456. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
  457. package/dist/dev/presets/live-audio/skin.tailwind.js +1 -0
  458. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
  459. package/dist/dev/presets/live-video/minimal-skin.css +158 -137
  460. package/dist/dev/presets/live-video/minimal-skin.js +4 -8
  461. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  462. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +6 -8
  463. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  464. package/dist/dev/presets/live-video/player.d.ts +2 -2
  465. package/dist/dev/presets/live-video/skin.css +120 -106
  466. package/dist/dev/presets/live-video/skin.js +4 -8
  467. package/dist/dev/presets/live-video/skin.js.map +1 -1
  468. package/dist/dev/presets/live-video/skin.tailwind.js +8 -10
  469. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  470. package/dist/dev/presets/types.d.ts +15 -2
  471. package/dist/dev/presets/types.d.ts.map +1 -1
  472. package/dist/dev/presets/video/minimal-skin.css +158 -137
  473. package/dist/dev/presets/video/minimal-skin.js +4 -8
  474. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  475. package/dist/dev/presets/video/minimal-skin.tailwind.js +6 -8
  476. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  477. package/dist/dev/presets/video/player.d.ts +2 -2
  478. package/dist/dev/presets/video/skin.css +120 -106
  479. package/dist/dev/presets/video/skin.js +4 -8
  480. package/dist/dev/presets/video/skin.js.map +1 -1
  481. package/dist/dev/presets/video/skin.tailwind.js +7 -9
  482. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  483. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -1
  484. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  485. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +8 -1
  486. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  487. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +13 -13
  488. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  489. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  490. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  491. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +3 -3
  492. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  493. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  494. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  495. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  496. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  497. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  498. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  499. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -6
  500. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  501. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  502. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  503. package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -1
  504. package/dist/dev/ui/airplay-button/airplay-button.js +0 -1
  505. package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -1
  506. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
  507. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +0 -1
  508. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  509. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
  510. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +0 -1
  511. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  512. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
  513. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +0 -1
  514. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  515. package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map +1 -1
  516. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +0 -1
  517. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  518. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
  519. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +0 -1
  520. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  521. package/dist/dev/ui/alert-dialog/context.d.ts.map +1 -1
  522. package/dist/dev/ui/alert-dialog/context.js +0 -1
  523. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  524. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +1 -1
  525. package/dist/dev/ui/audio-track/use-audio-track-options.js +0 -1
  526. package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -1
  527. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts.map +1 -1
  528. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js +0 -1
  529. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  530. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  531. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +0 -1
  532. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  533. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  534. package/dist/dev/ui/captions-button/captions-button.js +0 -1
  535. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  536. package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts.map +1 -1
  537. package/dist/dev/ui/captions-radio-group/captions-radio-group.js +0 -1
  538. package/dist/dev/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  539. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -1
  540. package/dist/dev/ui/captions-radio-group/use-captions-options.js +0 -1
  541. package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -1
  542. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -1
  543. package/dist/dev/ui/cast-button/cast-button.js +0 -1
  544. package/dist/dev/ui/cast-button/cast-button.js.map +1 -1
  545. package/dist/dev/ui/controls/context.js +0 -1
  546. package/dist/dev/ui/controls/context.js.map +1 -1
  547. package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
  548. package/dist/dev/ui/controls/controls-group.js +0 -1
  549. package/dist/dev/ui/controls/controls-group.js.map +1 -1
  550. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  551. package/dist/dev/ui/controls/controls-root.js +0 -1
  552. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  553. package/dist/dev/ui/create-context-part.js +0 -1
  554. package/dist/dev/ui/create-context-part.js.map +1 -1
  555. package/dist/dev/ui/create-media-button.js +0 -1
  556. package/dist/dev/ui/create-media-button.js.map +1 -1
  557. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -1
  558. package/dist/dev/ui/error-dialog/context.js +0 -1
  559. package/dist/dev/ui/error-dialog/context.js.map +1 -1
  560. package/dist/dev/ui/error-dialog/error-dialog-close.d.ts.map +1 -1
  561. package/dist/dev/ui/error-dialog/error-dialog-close.js +0 -1
  562. package/dist/dev/ui/error-dialog/error-dialog-close.js.map +1 -1
  563. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  564. package/dist/dev/ui/error-dialog/error-dialog-description.js +0 -1
  565. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -1
  566. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -1
  567. package/dist/dev/ui/error-dialog/error-dialog-root.js +0 -1
  568. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -1
  569. package/dist/dev/ui/error-dialog/error-dialog-title.d.ts.map +1 -1
  570. package/dist/dev/ui/error-dialog/error-dialog-title.js +0 -1
  571. package/dist/dev/ui/error-dialog/error-dialog-title.js.map +1 -1
  572. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  573. package/dist/dev/ui/fullscreen-button/fullscreen-button.js +0 -1
  574. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  575. package/dist/dev/ui/gesture/gesture.d.ts +6 -13
  576. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
  577. package/dist/dev/ui/gesture/gesture.js +0 -1
  578. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  579. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +2 -5
  580. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  581. package/dist/dev/ui/gesture/use-doubletap-gesture.js +0 -1
  582. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  583. package/dist/dev/ui/gesture/use-tap-gesture.d.ts +2 -5
  584. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  585. package/dist/dev/ui/gesture/use-tap-gesture.js +0 -1
  586. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  587. package/dist/dev/ui/hooks/create-radio-options-hook.d.ts.map +1 -1
  588. package/dist/dev/ui/hooks/create-radio-options-hook.js +0 -1
  589. package/dist/dev/ui/hooks/create-radio-options-hook.js.map +1 -1
  590. package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
  591. package/dist/dev/ui/hooks/use-button.js +0 -1
  592. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  593. package/dist/dev/ui/hooks/use-positioned-state.js +0 -1
  594. package/dist/dev/ui/hooks/use-positioned-state.js.map +1 -1
  595. package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
  596. package/dist/dev/ui/hooks/use-slider.js +0 -1
  597. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  598. package/dist/dev/ui/hotkey/hotkey.d.ts +6 -12
  599. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  600. package/dist/dev/ui/hotkey/hotkey.js +0 -1
  601. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  602. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -1
  603. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +0 -1
  604. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  605. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -1
  606. package/dist/dev/ui/hotkey/use-hotkey.js +0 -1
  607. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
  608. package/dist/dev/ui/input-indicator/use-indicator-visibility.js +0 -1
  609. package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  610. package/dist/dev/ui/input-indicator/use-input-action-subscription.js +0 -1
  611. package/dist/dev/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  612. package/dist/dev/ui/input-indicator/use-input-indicator-root.js +0 -1
  613. package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  614. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js +0 -1
  615. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  616. package/dist/dev/ui/live-button/live-button.d.ts.map +1 -1
  617. package/dist/dev/ui/live-button/live-button.js +0 -1
  618. package/dist/dev/ui/live-button/live-button.js.map +1 -1
  619. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  620. package/dist/dev/ui/menu/context.js +6 -2
  621. package/dist/dev/ui/menu/context.js.map +1 -1
  622. package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -1
  623. package/dist/dev/ui/menu/menu-checkbox-item.js +0 -1
  624. package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -1
  625. package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
  626. package/dist/dev/ui/menu/menu-content.js +0 -1
  627. package/dist/dev/ui/menu/menu-content.js.map +1 -1
  628. package/dist/dev/ui/menu/menu-group-label.d.ts.map +1 -1
  629. package/dist/dev/ui/menu/menu-group-label.js +0 -1
  630. package/dist/dev/ui/menu/menu-group-label.js.map +1 -1
  631. package/dist/dev/ui/menu/menu-group.d.ts.map +1 -1
  632. package/dist/dev/ui/menu/menu-group.js +0 -1
  633. package/dist/dev/ui/menu/menu-group.js.map +1 -1
  634. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  635. package/dist/dev/ui/menu/menu-item-indicator.js +3 -3
  636. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  637. package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
  638. package/dist/dev/ui/menu/menu-item.js +0 -1
  639. package/dist/dev/ui/menu/menu-item.js.map +1 -1
  640. package/dist/dev/ui/menu/menu-radio-group.d.ts.map +1 -1
  641. package/dist/dev/ui/menu/menu-radio-group.js +0 -1
  642. package/dist/dev/ui/menu/menu-radio-group.js.map +1 -1
  643. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  644. package/dist/dev/ui/menu/menu-radio-item.js +19 -16
  645. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  646. package/dist/dev/ui/menu/menu-root.d.ts.map +1 -1
  647. package/dist/dev/ui/menu/menu-root.js +5 -7
  648. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  649. package/dist/dev/ui/menu/menu-separator.d.ts.map +1 -1
  650. package/dist/dev/ui/menu/menu-separator.js +0 -1
  651. package/dist/dev/ui/menu/menu-separator.js.map +1 -1
  652. package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
  653. package/dist/dev/ui/menu/menu-trigger.js +26 -12
  654. package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
  655. package/dist/dev/ui/menu/use-menu-group.js +0 -1
  656. package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
  657. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  658. package/dist/dev/ui/mute-button/mute-button.js +0 -1
  659. package/dist/dev/ui/mute-button/mute-button.js.map +1 -1
  660. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  661. package/dist/dev/ui/pip-button/pip-button.js +0 -1
  662. package/dist/dev/ui/pip-button/pip-button.js.map +1 -1
  663. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  664. package/dist/dev/ui/play-button/play-button.js +0 -1
  665. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  666. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -1
  667. package/dist/dev/ui/playback-rate/use-playback-rate-options.js +0 -1
  668. package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  669. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  670. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +0 -1
  671. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  672. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts.map +1 -1
  673. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js +0 -1
  674. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  675. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  676. package/dist/dev/ui/popover/context.js +0 -1
  677. package/dist/dev/ui/popover/context.js.map +1 -1
  678. package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
  679. package/dist/dev/ui/popover/popover-arrow.js +0 -1
  680. package/dist/dev/ui/popover/popover-arrow.js.map +1 -1
  681. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  682. package/dist/dev/ui/popover/popover-popup.js +0 -1
  683. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  684. package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
  685. package/dist/dev/ui/popover/popover-root.js +0 -1
  686. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  687. package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
  688. package/dist/dev/ui/popover/popover-trigger.js +0 -1
  689. package/dist/dev/ui/popover/popover-trigger.js.map +1 -1
  690. package/dist/dev/ui/popover/use-popup-position.js +0 -1
  691. package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
  692. package/dist/dev/ui/poster/poster.d.ts +15 -4
  693. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  694. package/dist/dev/ui/poster/poster.js +64 -18
  695. package/dist/dev/ui/poster/poster.js.map +1 -1
  696. package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -1
  697. package/dist/dev/ui/quality/use-quality-options.js +0 -1
  698. package/dist/dev/ui/quality/use-quality-options.js.map +1 -1
  699. package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts.map +1 -1
  700. package/dist/dev/ui/quality-radio-group/quality-radio-group.js +0 -1
  701. package/dist/dev/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  702. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  703. package/dist/dev/ui/seek-button/seek-button.js +0 -1
  704. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  705. package/dist/dev/ui/seek-indicator/context.js +0 -1
  706. package/dist/dev/ui/seek-indicator/context.js.map +1 -1
  707. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -1
  708. package/dist/dev/ui/seek-indicator/seek-indicator-root.js +0 -1
  709. package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  710. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map +1 -1
  711. package/dist/dev/ui/seek-indicator/seek-indicator-value.js +0 -1
  712. package/dist/dev/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  713. package/dist/dev/ui/slider/context.js +0 -1
  714. package/dist/dev/ui/slider/context.js.map +1 -1
  715. package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
  716. package/dist/dev/ui/slider/slider-buffer.js +0 -1
  717. package/dist/dev/ui/slider/slider-buffer.js.map +1 -1
  718. package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
  719. package/dist/dev/ui/slider/slider-fill.js +0 -1
  720. package/dist/dev/ui/slider/slider-fill.js.map +1 -1
  721. package/dist/dev/ui/slider/slider-preview.d.ts +5 -9
  722. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  723. package/dist/dev/ui/slider/slider-preview.js +0 -1
  724. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  725. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  726. package/dist/dev/ui/slider/slider-root.js +0 -1
  727. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  728. package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
  729. package/dist/dev/ui/slider/slider-thumb.js +0 -1
  730. package/dist/dev/ui/slider/slider-thumb.js.map +1 -1
  731. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  732. package/dist/dev/ui/slider/slider-thumbnail.js +0 -1
  733. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  734. package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
  735. package/dist/dev/ui/slider/slider-track.js +0 -1
  736. package/dist/dev/ui/slider/slider-track.js.map +1 -1
  737. package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
  738. package/dist/dev/ui/slider/slider-value.js +0 -1
  739. package/dist/dev/ui/slider/slider-value.js.map +1 -1
  740. package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -1
  741. package/dist/dev/ui/status-announcer/status-announcer.js +0 -1
  742. package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -1
  743. package/dist/dev/ui/status-indicator/context.js +0 -1
  744. package/dist/dev/ui/status-indicator/context.js.map +1 -1
  745. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -1
  746. package/dist/dev/ui/status-indicator/status-indicator-root.js +0 -1
  747. package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -1
  748. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map +1 -1
  749. package/dist/dev/ui/status-indicator/status-indicator-value.js +0 -1
  750. package/dist/dev/ui/status-indicator/status-indicator-value.js.map +1 -1
  751. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  752. package/dist/dev/ui/thumbnail/thumbnail.js +0 -1
  753. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  754. package/dist/dev/ui/time/time-group.d.ts.map +1 -1
  755. package/dist/dev/ui/time/time-group.js +0 -1
  756. package/dist/dev/ui/time/time-group.js.map +1 -1
  757. package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
  758. package/dist/dev/ui/time/time-separator.js +0 -1
  759. package/dist/dev/ui/time/time-separator.js.map +1 -1
  760. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  761. package/dist/dev/ui/time/time-value.js +0 -1
  762. package/dist/dev/ui/time/time-value.js.map +1 -1
  763. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js +0 -1
  764. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  765. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.d.ts.map +1 -1
  766. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +0 -1
  767. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -1
  768. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.d.ts.map +1 -1
  769. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js +0 -1
  770. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -1
  771. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  772. package/dist/dev/ui/time-slider/time-slider-root.js +0 -1
  773. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  774. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  775. package/dist/dev/ui/tooltip/context.js +0 -1
  776. package/dist/dev/ui/tooltip/context.js.map +1 -1
  777. package/dist/dev/ui/tooltip/group-context.js +0 -1
  778. package/dist/dev/ui/tooltip/group-context.js.map +1 -1
  779. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
  780. package/dist/dev/ui/tooltip/tooltip-arrow.js +0 -1
  781. package/dist/dev/ui/tooltip/tooltip-arrow.js.map +1 -1
  782. package/dist/dev/ui/tooltip/tooltip-label.d.ts.map +1 -1
  783. package/dist/dev/ui/tooltip/tooltip-label.js +0 -1
  784. package/dist/dev/ui/tooltip/tooltip-label.js.map +1 -1
  785. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  786. package/dist/dev/ui/tooltip/tooltip-popup.js +0 -1
  787. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  788. package/dist/dev/ui/tooltip/tooltip-provider.d.ts.map +1 -1
  789. package/dist/dev/ui/tooltip/tooltip-provider.js +0 -1
  790. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  791. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  792. package/dist/dev/ui/tooltip/tooltip-root.js +0 -1
  793. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  794. package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -1
  795. package/dist/dev/ui/tooltip/tooltip-shortcut.js +0 -1
  796. package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -1
  797. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  798. package/dist/dev/ui/tooltip/tooltip-trigger.js +0 -1
  799. package/dist/dev/ui/tooltip/tooltip-trigger.js.map +1 -1
  800. package/dist/dev/ui/volume-indicator/context.js +0 -1
  801. package/dist/dev/ui/volume-indicator/context.js.map +1 -1
  802. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts.map +1 -1
  803. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +0 -1
  804. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  805. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
  806. package/dist/dev/ui/volume-indicator/volume-indicator-root.js +0 -1
  807. package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  808. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts.map +1 -1
  809. package/dist/dev/ui/volume-indicator/volume-indicator-value.js +0 -1
  810. package/dist/dev/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  811. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  812. package/dist/dev/ui/volume-slider/volume-slider-root.js +0 -1
  813. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  814. package/dist/dev/utils/merge-props.d.ts.map +1 -1
  815. package/dist/dev/utils/merge-props.js +0 -1
  816. package/dist/dev/utils/merge-props.js.map +1 -1
  817. package/dist/dev/utils/use-attach-iframe.js +0 -1
  818. package/dist/dev/utils/use-attach-iframe.js.map +1 -1
  819. package/dist/dev/utils/use-attach-media.d.ts.map +1 -1
  820. package/dist/dev/utils/use-attach-media.js +0 -1
  821. package/dist/dev/utils/use-attach-media.js.map +1 -1
  822. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -1
  823. package/dist/dev/utils/use-composed-refs.js +0 -1
  824. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  825. package/dist/dev/utils/use-destroy.d.ts.map +1 -1
  826. package/dist/dev/utils/use-destroy.js +0 -1
  827. package/dist/dev/utils/use-destroy.js.map +1 -1
  828. package/dist/dev/utils/use-force-render.js +0 -1
  829. package/dist/dev/utils/use-force-render.js.map +1 -1
  830. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -1
  831. package/dist/dev/utils/use-latest-ref.js +0 -1
  832. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  833. package/dist/dev/utils/use-media-component.d.ts.map +1 -1
  834. package/dist/dev/utils/use-media-component.js +0 -1
  835. package/dist/dev/utils/use-media-component.js.map +1 -1
  836. package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
  837. package/dist/dev/utils/use-media-instance.js +0 -1
  838. package/dist/dev/utils/use-media-instance.js.map +1 -1
  839. package/dist/dev/utils/use-render.d.ts.map +1 -1
  840. package/dist/dev/utils/use-render.js +2 -9
  841. package/dist/dev/utils/use-render.js.map +1 -1
  842. package/dist/dev/utils/use-safe-id.js +0 -1
  843. package/dist/dev/utils/use-safe-id.js.map +1 -1
  844. package/docs/README.md +1 -1
  845. package/docs/concepts/features.md +2 -2
  846. package/docs/concepts/media-sources.md +79 -1
  847. package/docs/concepts/skins.md +128 -126
  848. package/docs/how-to/build-your-own-component.md +1 -1
  849. package/docs/how-to/customize-skins.md +511 -505
  850. package/docs/how-to/migrate-from-media-chrome.md +412 -0
  851. package/docs/how-to/migrate-from-mux-player.md +551 -0
  852. package/docs/how-to/migrate-from-plyr.md +385 -0
  853. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  854. package/docs/llms.txt +9 -0
  855. package/docs/reference/create-player.md +2 -2
  856. package/docs/reference/feature-volume.md +4 -2
  857. package/docs/reference/menu.md +6 -18
  858. package/docs/reference/mute-button.md +34 -0
  859. package/docs/reference/popover.md +6 -6
  860. package/docs/reference/poster.md +187 -13
  861. package/docs/reference/slider.md +1 -1
  862. package/docs/reference/time-slider.md +1 -1
  863. package/docs/reference/tooltip.md +10 -10
  864. package/docs/reference/volume-slider.md +2 -2
  865. package/package.json +13 -8
@@ -1 +1 @@
1
- {"version":3,"file":"buffering-indicator.d.ts","names":[],"sources":["../../../../src/ui/buffering-indicator/buffering-indicator.tsx"],"mappings":";;;UAYiB,gCACP,wBAAwB,uBAAuB,QACrD,uBAAuB;;;;;;;;;;;;;;;;;;;cAoBd,oCAAkB,0BAAA,KAAA,kDAAA,cAAA;kBAqCd;OACH,QAAQ;OACR,QAAQ,uBAAuB"}
1
+ {"version":3,"file":"buffering-indicator.d.ts","names":[],"sources":["../../../../src/ui/buffering-indicator/buffering-indicator.tsx"],"mappings":";;;UAUiB,gCACP,wBAAwB,uBAAuB,QACrD,uBAAuB;;;;;;;;;;;;;;;;;;;cAoBd,oCAAkB,0BAAA,KAAA,kDAAA,cAAA;kBAqCd;OACH,QAAQ;OACR,QAAQ,uBAAuB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { usePlayer } from "../../player/context.js";
3
2
  import { useDestroy } from "../../utils/use-destroy.js";
4
3
  import { renderElement } from "../../utils/use-render.js";
@@ -1 +1 @@
1
- {"version":3,"file":"buffering-indicator.js","names":[],"sources":["../../../../src/ui/buffering-indicator/buffering-indicator.tsx"],"sourcesContent":["'use client';\n\nimport { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState, useSyncExternalStore } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface BufferingIndicatorProps\n extends UIComponentProps<'div', BufferingIndicatorCore.State>,\n BufferingIndicatorCore.Props {}\n\n/**\n * Displays a buffering indicator when media is waiting for data.\n *\n * Visibility is delayed (default 500ms) to avoid flashing on quick buffers.\n *\n * @example\n * ```tsx\n * <BufferingIndicator />\n *\n * <BufferingIndicator delay={1000} />\n *\n * <BufferingIndicator\n * render={(props, state) => (\n * <div {...props}>{state.visible && <Spinner />}</div>\n * )}\n * />\n * ```\n */\nexport const BufferingIndicator = forwardRef(function BufferingIndicator(\n componentProps: BufferingIndicatorProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, delay, ...elementProps } = componentProps;\n\n const playback = usePlayer(selectPlayback);\n\n const [core] = useState(() => new BufferingIndicatorCore());\n useDestroy(core);\n core.setProps({ delay });\n\n if (playback) core.update(playback);\n\n const state = useSyncExternalStore(\n (cb) => core.state.subscribe(cb),\n () => core.state.current,\n () => core.state.current\n );\n\n if (!playback) {\n if (__DEV__) logMissingFeature('BufferingIndicator', 'playback');\n return null;\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: BufferingIndicatorDataAttrs,\n ref: [forwardedRef],\n props: [elementProps],\n }\n );\n});\n\nexport namespace BufferingIndicator {\n export type Props = BufferingIndicatorProps;\n export type State = BufferingIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAa,qBAAqB,WAAW,SAAS,mBACpD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,GAAG,iBAAiB;CAE7D,MAAM,WAAW,UAAU,cAAc;CAEzC,MAAM,CAAC,QAAQ,eAAe,IAAI,uBAAuB,CAAC;CAC1D,WAAW,IAAI;CACf,KAAK,SAAS,EAAE,MAAM,CAAC;CAEvB,IAAI,UAAU,KAAK,OAAO,QAAQ;CAElC,MAAM,QAAQ,sBACX,OAAO,KAAK,MAAM,UAAU,EAAE,SACzB,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,IAAI,CAAC,UAAU;EACA,kBAAkB,sBAAsB,UAAU;EAC/D,OAAO;CACT;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,YAAY;CACtB,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"buffering-indicator.js","names":[],"sources":["../../../../src/ui/buffering-indicator/buffering-indicator.tsx"],"sourcesContent":["import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState, useSyncExternalStore } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface BufferingIndicatorProps\n extends UIComponentProps<'div', BufferingIndicatorCore.State>,\n BufferingIndicatorCore.Props {}\n\n/**\n * Displays a buffering indicator when media is waiting for data.\n *\n * Visibility is delayed (default 500ms) to avoid flashing on quick buffers.\n *\n * @example\n * ```tsx\n * <BufferingIndicator />\n *\n * <BufferingIndicator delay={1000} />\n *\n * <BufferingIndicator\n * render={(props, state) => (\n * <div {...props}>{state.visible && <Spinner />}</div>\n * )}\n * />\n * ```\n */\nexport const BufferingIndicator = forwardRef(function BufferingIndicator(\n componentProps: BufferingIndicatorProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, delay, ...elementProps } = componentProps;\n\n const playback = usePlayer(selectPlayback);\n\n const [core] = useState(() => new BufferingIndicatorCore());\n useDestroy(core);\n core.setProps({ delay });\n\n if (playback) core.update(playback);\n\n const state = useSyncExternalStore(\n (cb) => core.state.subscribe(cb),\n () => core.state.current,\n () => core.state.current\n );\n\n if (!playback) {\n if (__DEV__) logMissingFeature('BufferingIndicator', 'playback');\n return null;\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: BufferingIndicatorDataAttrs,\n ref: [forwardedRef],\n props: [elementProps],\n }\n );\n});\n\nexport namespace BufferingIndicator {\n export type Props = BufferingIndicatorProps;\n export type State = BufferingIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAa,qBAAqB,WAAW,SAAS,mBACpD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,GAAG,iBAAiB;CAE7D,MAAM,WAAW,UAAU,cAAc;CAEzC,MAAM,CAAC,QAAQ,eAAe,IAAI,uBAAuB,CAAC;CAC1D,WAAW,IAAI;CACf,KAAK,SAAS,EAAE,MAAM,CAAC;CAEvB,IAAI,UAAU,KAAK,OAAO,QAAQ;CAElC,MAAM,QAAQ,sBACX,OAAO,KAAK,MAAM,UAAU,EAAE,SACzB,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,IAAI,CAAC,UAAU;EACA,kBAAkB,sBAAsB,UAAU;EAC/D,OAAO;CACT;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,YAAY;CACtB,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"captions-button.d.ts","names":[],"sources":["../../../../src/ui/captions-button/captions-button.tsx"],"mappings":";;;UAQiB,4BACP,2BAA2B,mBAAmB,QACpD,mBAAmB;;cAGV,gCAAc,0BAAA,sCAAA,cAAA;kBAUV;OACH,QAAQ;OACR,QAAQ,mBAAmB"}
1
+ {"version":3,"file":"captions-button.d.ts","names":[],"sources":["../../../../src/ui/captions-button/captions-button.tsx"],"mappings":";;;UAMiB,4BACP,2BAA2B,mBAAmB,QACpD,mBAAmB;;cAGV,gCAAc,0BAAA,sCAAA,cAAA;kBAUV;OACH,QAAQ;OACR,QAAQ,mBAAmB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createMediaButton } from "../create-media-button.js";
3
2
  import { selectTextTrack } from "@videojs/core/dom";
4
3
  import { CaptionsButtonCore, CaptionsButtonDataAttrs } from "@videojs/core";
@@ -1 +1 @@
1
- {"version":3,"file":"captions-button.js","names":[],"sources":["../../../../src/ui/captions-button/captions-button.tsx"],"sourcesContent":["'use client';\n\nimport { CaptionsButtonCore, CaptionsButtonDataAttrs } from '@videojs/core';\nimport { selectTextTrack } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CaptionsButtonProps\n extends UIComponentProps<'button', CaptionsButtonCore.State>,\n CaptionsButtonCore.Props {}\n\n/** A button that toggles captions. */\nexport const CaptionsButton = createMediaButton<CaptionsButtonCore, CaptionsButtonProps>({\n displayName: 'CaptionsButton',\n core: CaptionsButtonCore,\n stateAttrMap: CaptionsButtonDataAttrs,\n selector: selectTextTrack,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'toggleSubtitles',\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace CaptionsButton {\n export type Props = CaptionsButtonProps;\n export type State = CaptionsButtonCore.State;\n}\n"],"mappings":";;;;;;AAaA,MAAa,iBAAiB,kBAA2D;CACvF,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":"captions-button.js","names":[],"sources":["../../../../src/ui/captions-button/captions-button.tsx"],"sourcesContent":["import { CaptionsButtonCore, CaptionsButtonDataAttrs } from '@videojs/core';\nimport { selectTextTrack } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CaptionsButtonProps\n extends UIComponentProps<'button', CaptionsButtonCore.State>,\n CaptionsButtonCore.Props {}\n\n/** A button that toggles captions. */\nexport const CaptionsButton = createMediaButton<CaptionsButtonCore, CaptionsButtonProps>({\n displayName: 'CaptionsButton',\n core: CaptionsButtonCore,\n stateAttrMap: CaptionsButtonDataAttrs,\n selector: selectTextTrack,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'toggleSubtitles',\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace CaptionsButton {\n export type Props = CaptionsButtonProps;\n export type State = CaptionsButtonCore.State;\n}\n"],"mappings":";;;;;AAWA,MAAa,iBAAiB,kBAA2D;CACvF,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;CACd,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"captions-radio-group.d.ts","names":[],"sources":["../../../../src/ui/captions-radio-group/captions-radio-group.tsx"],"mappings":";;;;;;KAaY,8BAA8B;;EAExC;;UAGe,oCAAoC,KAAK;;EAExD;;UAGe,gCACP,KAAK,wBAAwB,uBAAuB,qBAC1D;;EAEF,aAAa,OAAO,6BAA6B,OAAO,gCAAgC;;;;;;;;;;;;;;;;;cAkB7E,oCAAkB,0BAAA,KAAA,kDAAA,cAAA;kBAyDd;OACH,QAAQ;OACR,QAAQ,uBAAuB;OAC/B,YAAY;OACZ,YAAY"}
1
+ {"version":3,"file":"captions-radio-group.d.ts","names":[],"sources":["../../../../src/ui/captions-radio-group/captions-radio-group.tsx"],"mappings":";;;;;;KAWY,8BAA8B;;EAExC;;UAGe,oCAAoC,KAAK;;EAExD;;UAGe,gCACP,KAAK,wBAAwB,uBAAuB,qBAC1D;;EAEF,aAAa,OAAO,6BAA6B,OAAO,gCAAgC;;;;;;;;;;;;;;;;;cAkB7E,oCAAkB,0BAAA,KAAA,kDAAA,cAAA;kBAyDd;OACH,QAAQ;OACR,QAAQ,uBAAuB;OAC/B,YAAY;OACZ,YAAY"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { MenuRadioGroup } from "../menu/menu-radio-group.js";
3
2
  import { useCaptionsOptions } from "./use-captions-options.js";
4
3
  import { getStateDataAttrs } from "@videojs/core/dom";
@@ -1 +1 @@
1
- {"version":3,"file":"captions-radio-group.js","names":[],"sources":["../../../../src/ui/captions-radio-group/captions-radio-group.tsx"],"sourcesContent":["'use client';\n\nimport { type CaptionsRadioGroupCore, CaptionsRadioGroupDataAttrs } from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { ReactElement } from 'react';\nimport { Fragment, forwardRef } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../utils/types';\nimport { MenuRadioGroup } from '../menu/menu-radio-group';\nimport type { MenuRadioItemProps } from '../menu/menu-radio-item';\nimport { type CaptionsOption, type CaptionsOptionsProps, useCaptionsOptions } from './use-captions-options';\n\nexport type CaptionsRadioGroupItemState = CaptionsOption & {\n /** Whether this option is currently selected. */\n checked: boolean;\n};\n\nexport interface CaptionsRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Text track value represented by the item. */\n 'data-track': string;\n}\n\nexport interface CaptionsRadioGroupProps\n extends Omit<UIComponentProps<'div', CaptionsRadioGroupCore.State>, 'children'>,\n CaptionsOptionsProps {\n /** Render one consumer-owned menu radio item for every captions option. */\n renderItem: (props: CaptionsRadioGroupItemProps, state: CaptionsRadioGroupItemState) => ReactElement;\n}\n\n/**\n * Renders menu radio items for the player's captions and subtitles tracks.\n *\n * @example\n * ```tsx\n * <CaptionsRadioGroup\n * renderItem={(props, item) => (\n * <Menu.RadioItem {...props}>\n * {item.label}\n * <Menu.ItemIndicator checked={item.checked} />\n * </Menu.RadioItem>\n * )}\n * />\n * ```\n */\nexport const CaptionsRadioGroup = forwardRef<HTMLDivElement, CaptionsRadioGroupProps>(\n function CaptionsRadioGroup(componentProps, forwardedRef) {\n const {\n renderItem,\n render,\n className,\n style,\n label,\n formatTrack,\n disabled,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledBy,\n ...elementProps\n } = componentProps;\n const captions = useCaptionsOptions({ label, formatTrack, disabled });\n if (!captions) return null;\n\n const { state, value, options, setValue } = captions;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? captions.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, CaptionsRadioGroupDataAttrs)}\n {...elementProps}\n ref={forwardedRef}\n className={isFunction(className) ? className(state) : className}\n style={isFunction(style) ? style(state) : style}\n render={isFunction(render) ? (props: HTMLProps) => render(props, state) : render}\n value={value}\n onValueChange={setValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-disabled={state.disabled || undefined}\n hidden={state.hidden}\n >\n {options.map((option) => {\n const itemState = { ...option, checked: option.value === value };\n\n return (\n <Fragment key={option.value}>\n {renderItem(\n {\n value: option.value,\n disabled: option.disabled,\n 'data-track': option.value,\n children: option.label,\n },\n itemState\n )}\n </Fragment>\n );\n })}\n </MenuRadioGroup>\n );\n }\n);\n\nexport namespace CaptionsRadioGroup {\n export type Props = CaptionsRadioGroupProps;\n export type State = CaptionsRadioGroupCore.State;\n export type ItemProps = CaptionsRadioGroupItemProps;\n export type ItemState = CaptionsRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAa,qBAAqB,WAChC,SAAS,mBAAmB,gBAAgB,cAAc;CACxD,MAAM,EACJ,YACA,QACA,WACA,OACA,OACA,aACA,UACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,WAAW,mBAAmB;EAAE;EAAO;EAAa;CAAS,CAAC;CACpE,IAAI,CAAC,UAAU,OAAO;CAEtB,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,SAAS,QAAQ,KAAA;CAEpF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,2BAA2B;EACxD,GAAI;EACJ,KAAK;EACL,WAAW,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;EACtD,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;EAC1C,QAAQ,WAAW,MAAM,KAAK,UAAqB,OAAO,OAAO,KAAK,IAAI;EACnE;EACP,eAAe;EACf,cAAY;EACZ,mBAAiB;EACjB,iBAAe,MAAM,YAAY,KAAA;EACjC,QAAQ,MAAM;EAEb,UAAA,QAAQ,KAAK,WAAW;GACvB,MAAM,YAAY;IAAE,GAAG;IAAQ,SAAS,OAAO,UAAU;GAAM;GAE/D,OACE,oBAAC,UAAD,EAAA,UACG,WACC;IACE,OAAO,OAAO;IACd,UAAU,OAAO;IACjB,cAAc,OAAO;IACrB,UAAU,OAAO;GACnB,GACA,SACF,EACQ,GAVK,OAAO,KAUZ;EAEd,CAAC;CACa,CAAA;AAEpB,CACF"}
1
+ {"version":3,"file":"captions-radio-group.js","names":[],"sources":["../../../../src/ui/captions-radio-group/captions-radio-group.tsx"],"sourcesContent":["import { type CaptionsRadioGroupCore, CaptionsRadioGroupDataAttrs } from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { ReactElement } from 'react';\nimport { Fragment, forwardRef } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../utils/types';\nimport { MenuRadioGroup } from '../menu/menu-radio-group';\nimport type { MenuRadioItemProps } from '../menu/menu-radio-item';\nimport { type CaptionsOption, type CaptionsOptionsProps, useCaptionsOptions } from './use-captions-options';\n\nexport type CaptionsRadioGroupItemState = CaptionsOption & {\n /** Whether this option is currently selected. */\n checked: boolean;\n};\n\nexport interface CaptionsRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Text track value represented by the item. */\n 'data-track': string;\n}\n\nexport interface CaptionsRadioGroupProps\n extends Omit<UIComponentProps<'div', CaptionsRadioGroupCore.State>, 'children'>,\n CaptionsOptionsProps {\n /** Render one consumer-owned menu radio item for every captions option. */\n renderItem: (props: CaptionsRadioGroupItemProps, state: CaptionsRadioGroupItemState) => ReactElement;\n}\n\n/**\n * Renders menu radio items for the player's captions and subtitles tracks.\n *\n * @example\n * ```tsx\n * <CaptionsRadioGroup\n * renderItem={(props, item) => (\n * <Menu.RadioItem {...props}>\n * {item.label}\n * <Menu.ItemIndicator checked={item.checked} />\n * </Menu.RadioItem>\n * )}\n * />\n * ```\n */\nexport const CaptionsRadioGroup = forwardRef<HTMLDivElement, CaptionsRadioGroupProps>(\n function CaptionsRadioGroup(componentProps, forwardedRef) {\n const {\n renderItem,\n render,\n className,\n style,\n label,\n formatTrack,\n disabled,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledBy,\n ...elementProps\n } = componentProps;\n const captions = useCaptionsOptions({ label, formatTrack, disabled });\n if (!captions) return null;\n\n const { state, value, options, setValue } = captions;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? captions.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, CaptionsRadioGroupDataAttrs)}\n {...elementProps}\n ref={forwardedRef}\n className={isFunction(className) ? className(state) : className}\n style={isFunction(style) ? style(state) : style}\n render={isFunction(render) ? (props: HTMLProps) => render(props, state) : render}\n value={value}\n onValueChange={setValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-disabled={state.disabled || undefined}\n hidden={state.hidden}\n >\n {options.map((option) => {\n const itemState = { ...option, checked: option.value === value };\n\n return (\n <Fragment key={option.value}>\n {renderItem(\n {\n value: option.value,\n disabled: option.disabled,\n 'data-track': option.value,\n children: option.label,\n },\n itemState\n )}\n </Fragment>\n );\n })}\n </MenuRadioGroup>\n );\n }\n);\n\nexport namespace CaptionsRadioGroup {\n export type Props = CaptionsRadioGroupProps;\n export type State = CaptionsRadioGroupCore.State;\n export type ItemProps = CaptionsRadioGroupItemProps;\n export type ItemState = CaptionsRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAa,qBAAqB,WAChC,SAAS,mBAAmB,gBAAgB,cAAc;CACxD,MAAM,EACJ,YACA,QACA,WACA,OACA,OACA,aACA,UACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,WAAW,mBAAmB;EAAE;EAAO;EAAa;CAAS,CAAC;CACpE,IAAI,CAAC,UAAU,OAAO;CAEtB,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,SAAS,QAAQ,KAAA;CAEpF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,2BAA2B;EACxD,GAAI;EACJ,KAAK;EACL,WAAW,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;EACtD,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;EAC1C,QAAQ,WAAW,MAAM,KAAK,UAAqB,OAAO,OAAO,KAAK,IAAI;EACnE;EACP,eAAe;EACf,cAAY;EACZ,mBAAiB;EACjB,iBAAe,MAAM,YAAY,KAAA;EACjC,QAAQ,MAAM;EAEb,UAAA,QAAQ,KAAK,WAAW;GACvB,MAAM,YAAY;IAAE,GAAG;IAAQ,SAAS,OAAO,UAAU;GAAM;GAE/D,OACE,oBAAC,UAAD,EAAA,UACG,WACC;IACE,OAAO,OAAO;IACd,UAAU,OAAO;IACjB,cAAc,OAAO;IACrB,UAAU,OAAO;GACnB,GACA,SACF,EACQ,GAVK,OAAO,KAUZ;EAEd,CAAC;CACa,CAAA;AAEpB,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-captions-options.d.ts","names":[],"sources":["../../../../src/ui/captions-radio-group/use-captions-options.ts"],"mappings":";;;UAOiB,6BAA6B,uBAAuB;KAEzD,iBAAiB,sBAAsB;UAElC;EACf,OAAO,uBAAuB;EAC9B;EACA;EACA;EACA,SAAS;EACT;EACA;EACA;EACA,WAAW;;;;;;;;;iBAiBG,mBAAmB,QAAQ,uBAAuB;kBASjD;OACH,QAAQ;OACR,SAAS;OACT,SAAS"}
1
+ {"version":3,"file":"use-captions-options.d.ts","names":[],"sources":["../../../../src/ui/captions-radio-group/use-captions-options.ts"],"mappings":";;;UAKiB,6BAA6B,uBAAuB;KAEzD,iBAAiB,sBAAsB;UAElC;EACf,OAAO,uBAAuB;EAC9B;EACA;EACA;EACA,SAAS;EACT;EACA;EACA;EACA,WAAW;;;;;;;;;iBAiBG,mBAAmB,QAAQ,uBAAuB;kBASjD;OACH,QAAQ;OACR,SAAS;OACT,SAAS"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createRadioOptionsHook } from "../hooks/create-radio-options-hook.js";
3
2
  import { selectTextTrack } from "@videojs/core/dom";
4
3
  import { CaptionsRadioGroupCore } from "@videojs/core";
@@ -1 +1 @@
1
- {"version":3,"file":"use-captions-options.js","names":[],"sources":["../../../../src/ui/captions-radio-group/use-captions-options.ts"],"sourcesContent":["'use client';\n\nimport { CaptionsRadioGroupCore, type CaptionsRadioGroupOption } from '@videojs/core';\nimport { selectTextTrack } from '@videojs/core/dom';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface CaptionsOptionsProps extends CaptionsRadioGroupCore.Props {}\n\nexport type CaptionsOption = TranslatedRadioOption<CaptionsRadioGroupOption>;\n\nexport interface CaptionsOptionsResult {\n state: CaptionsRadioGroupCore.State;\n label: string;\n value: string;\n selectedLabel: string;\n options: CaptionsOption[];\n disabled: boolean;\n hidden: boolean;\n showMenu: boolean;\n setValue: (value: string) => void;\n}\n\nconst useCaptionsRadioOptions = createRadioOptionsHook({\n name: 'useCaptionsOptions',\n feature: 'textTrack',\n selector: selectTextTrack,\n createCore: () => new CaptionsRadioGroupCore(),\n});\n\n/**\n * Create captions menu options (including an `Off` option) from the player\n * text track state. Returns `null` when the text tracks feature is not\n * configured.\n *\n * @param props - Optional `label`, `formatTrack`, and `disabled` overrides.\n */\nexport function useCaptionsOptions(props?: CaptionsOptionsProps): CaptionsOptionsResult | null {\n 'use no memo';\n\n const result = useCaptionsRadioOptions(props);\n if (!result) return null;\n\n return { ...result, showMenu: result.state.options.length > 2 };\n}\n\nexport namespace useCaptionsOptions {\n export type Props = CaptionsOptionsProps;\n export type Result = CaptionsOptionsResult;\n export type Option = CaptionsOption;\n}\n"],"mappings":";;;;;AAuBA,MAAM,0BAA0B,uBAAuB;CACrD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAI,uBAAuB;AAC/C,CAAC;;;;;;;;AASD,SAAgB,mBAAmB,OAA4D;CAC7F;CAEA,MAAM,SAAS,wBAAwB,KAAK;CAC5C,IAAI,CAAC,QAAQ,OAAO;CAEpB,OAAO;EAAE,GAAG;EAAQ,UAAU,OAAO,MAAM,QAAQ,SAAS;CAAE;AAChE"}
1
+ {"version":3,"file":"use-captions-options.js","names":[],"sources":["../../../../src/ui/captions-radio-group/use-captions-options.ts"],"sourcesContent":["import { CaptionsRadioGroupCore, type CaptionsRadioGroupOption } from '@videojs/core';\nimport { selectTextTrack } from '@videojs/core/dom';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface CaptionsOptionsProps extends CaptionsRadioGroupCore.Props {}\n\nexport type CaptionsOption = TranslatedRadioOption<CaptionsRadioGroupOption>;\n\nexport interface CaptionsOptionsResult {\n state: CaptionsRadioGroupCore.State;\n label: string;\n value: string;\n selectedLabel: string;\n options: CaptionsOption[];\n disabled: boolean;\n hidden: boolean;\n showMenu: boolean;\n setValue: (value: string) => void;\n}\n\nconst useCaptionsRadioOptions = createRadioOptionsHook({\n name: 'useCaptionsOptions',\n feature: 'textTrack',\n selector: selectTextTrack,\n createCore: () => new CaptionsRadioGroupCore(),\n});\n\n/**\n * Create captions menu options (including an `Off` option) from the player\n * text track state. Returns `null` when the text tracks feature is not\n * configured.\n *\n * @param props - Optional `label`, `formatTrack`, and `disabled` overrides.\n */\nexport function useCaptionsOptions(props?: CaptionsOptionsProps): CaptionsOptionsResult | null {\n 'use no memo';\n\n const result = useCaptionsRadioOptions(props);\n if (!result) return null;\n\n return { ...result, showMenu: result.state.options.length > 2 };\n}\n\nexport namespace useCaptionsOptions {\n export type Props = CaptionsOptionsProps;\n export type Result = CaptionsOptionsResult;\n export type Option = CaptionsOption;\n}\n"],"mappings":";;;;AAqBA,MAAM,0BAA0B,uBAAuB;CACrD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAI,uBAAuB;AAC/C,CAAC;;;;;;;;AASD,SAAgB,mBAAmB,OAA4D;CAC7F;CAEA,MAAM,SAAS,wBAAwB,KAAK;CAC5C,IAAI,CAAC,QAAQ,OAAO;CAEpB,OAAO;EAAE,GAAG;EAAQ,UAAU,OAAO,MAAM,QAAQ,SAAS;CAAE;AAChE"}
@@ -1 +1 @@
1
- {"version":3,"file":"cast-button.d.ts","names":[],"sources":["../../../../src/ui/cast-button/cast-button.tsx"],"mappings":";;;UAQiB,wBAAwB,2BAA2B,eAAe,QAAQ,eAAe;;cAG7F,4BAAU,0BAAA,kCAAA,cAAA;kBASN;OACH,QAAQ;OACR,QAAQ,eAAe"}
1
+ {"version":3,"file":"cast-button.d.ts","names":[],"sources":["../../../../src/ui/cast-button/cast-button.tsx"],"mappings":";;;UAMiB,wBAAwB,2BAA2B,eAAe,QAAQ,eAAe;;cAG7F,4BAAU,0BAAA,kCAAA,cAAA;kBASN;OACH,QAAQ;OACR,QAAQ,eAAe"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createMediaButton } from "../create-media-button.js";
3
2
  import { selectRemotePlayback } from "@videojs/core/dom";
4
3
  import { CastButtonCore, CastButtonDataAttrs } from "@videojs/core";
@@ -1 +1 @@
1
- {"version":3,"file":"cast-button.js","names":[],"sources":["../../../../src/ui/cast-button/cast-button.tsx"],"sourcesContent":["'use client';\n\nimport { CastButtonCore, CastButtonDataAttrs } from '@videojs/core';\nimport { selectRemotePlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CastButtonProps extends UIComponentProps<'button', CastButtonCore.State>, CastButtonCore.Props {}\n\n/** A button that toggles casting to a remote device. */\nexport const CastButton = createMediaButton<CastButtonCore, CastButtonProps>({\n displayName: 'CastButton',\n core: CastButtonCore,\n stateAttrMap: CastButtonDataAttrs,\n selector: selectRemotePlayback,\n action: (core, state) => core.toggle(state),\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace CastButton {\n export type Props = CastButtonProps;\n export type State = CastButtonCore.State;\n}\n"],"mappings":";;;;;;AAWA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
1
+ {"version":3,"file":"cast-button.js","names":[],"sources":["../../../../src/ui/cast-button/cast-button.tsx"],"sourcesContent":["import { CastButtonCore, CastButtonDataAttrs } from '@videojs/core';\nimport { selectRemotePlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CastButtonProps extends UIComponentProps<'button', CastButtonCore.State>, CastButtonCore.Props {}\n\n/** A button that toggles casting to a remote device. */\nexport const CastButton = createMediaButton<CastButtonCore, CastButtonProps>({\n displayName: 'CastButton',\n core: CastButtonCore,\n stateAttrMap: CastButtonDataAttrs,\n selector: selectRemotePlayback,\n action: (core, state) => core.toggle(state),\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace CastButton {\n export type Props = CastButtonProps;\n export type State = CastButtonCore.State;\n}\n"],"mappings":";;;;;AASA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createContext, useContext } from "react";
3
2
  //#region src/ui/controls/context.tsx
4
3
  const ControlsContext = createContext(null);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/controls/context.tsx"],"sourcesContent":["'use client';\n\nimport type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst ControlsContext = createContext<ControlsContextValue | null>(null);\n\nexport const ControlsContextProvider = ControlsContext.Provider;\n\nexport function useControlsContext(): ControlsContextValue {\n const ctx = useContext(ControlsContext);\n if (!ctx) throw new Error('Controls compound components must be used within a Controls.Root');\n return ctx;\n}\n\nexport function useOptionalControlsContext(): ControlsContextValue | null {\n return useContext(ControlsContext);\n}\n"],"mappings":";;;AAUA,MAAM,kBAAkB,cAA2C,IAAI;AAEvE,MAAa,0BAA0B,gBAAgB;AAEvD,SAAgB,qBAA2C;CACzD,MAAM,MAAM,WAAW,eAAe;CACtC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,kEAAkE;CAC5F,OAAO;AACT;AAEA,SAAgB,6BAA0D;CACxE,OAAO,WAAW,eAAe;AACnC"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/controls/context.tsx"],"sourcesContent":["import type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst ControlsContext = createContext<ControlsContextValue | null>(null);\n\nexport const ControlsContextProvider = ControlsContext.Provider;\n\nexport function useControlsContext(): ControlsContextValue {\n const ctx = useContext(ControlsContext);\n if (!ctx) throw new Error('Controls compound components must be used within a Controls.Root');\n return ctx;\n}\n\nexport function useOptionalControlsContext(): ControlsContextValue | null {\n return useContext(ControlsContext);\n}\n"],"mappings":";;AAQA,MAAM,kBAAkB,cAA2C,IAAI;AAEvE,MAAa,0BAA0B,gBAAgB;AAEvD,SAAgB,qBAA2C;CACzD,MAAM,MAAM,WAAW,eAAe;CACtC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,kEAAkE;CAC5F,OAAO;AACT;AAEA,SAAgB,6BAA0D;CACxE,OAAO,WAAW,eAAe;AACnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controls-group.d.ts","names":[],"sources":["../../../../src/ui/controls/controls-group.tsx"],"mappings":";;;;UAUiB,2BAA2B,wBAAwB,aAAa;EAC/E,WAAW;;;cAIA,+BAAa,0BAAA,KAAA,6CAAA,cAAA;kBAqBT;OACH,QAAQ"}
1
+ {"version":3,"file":"controls-group.d.ts","names":[],"sources":["../../../../src/ui/controls/controls-group.tsx"],"mappings":";;;;UAQiB,2BAA2B,wBAAwB,aAAa;EAC/E,WAAW;;;cAIA,+BAAa,0BAAA,KAAA,6CAAA,cAAA;kBAqBT;OACH,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../utils/use-render.js";
3
2
  import { useControlsContext } from "./context.js";
4
3
  import { forwardRef } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"controls-group.js","names":[],"sources":["../../../../src/ui/controls/controls-group.tsx"],"sourcesContent":["'use client';\n\nimport type { ControlsCore } from '@videojs/core';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useControlsContext } from './context';\n\nexport interface ControlsGroupProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Layout group for related controls; sets `role=\"group\"` when labeled. */\nexport const ControlsGroup = forwardRef(function ControlsGroup(\n componentProps: ControlsGroupProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const { state, stateAttrMap } = useControlsContext();\n const role = elementProps['aria-label'] || elementProps['aria-labelledby'] ? 'group' : undefined;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef],\n props: [{ role, children }, elementProps],\n }\n );\n});\n\nexport namespace ControlsGroup {\n export type Props = ControlsGroupProps;\n}\n"],"mappings":";;;;;;AAeA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,EAAE,OAAO,iBAAiB,mBAAmB;CACnD,MAAM,OAAO,aAAa,iBAAiB,aAAa,qBAAqB,UAAU,KAAA;CAEvF,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE;GAAM;EAAS,GAAG,YAAY;CAC1C,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"controls-group.js","names":[],"sources":["../../../../src/ui/controls/controls-group.tsx"],"sourcesContent":["import type { ControlsCore } from '@videojs/core';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useControlsContext } from './context';\n\nexport interface ControlsGroupProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Layout group for related controls; sets `role=\"group\"` when labeled. */\nexport const ControlsGroup = forwardRef(function ControlsGroup(\n componentProps: ControlsGroupProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const { state, stateAttrMap } = useControlsContext();\n const role = elementProps['aria-label'] || elementProps['aria-labelledby'] ? 'group' : undefined;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef],\n props: [{ role, children }, elementProps],\n }\n );\n});\n\nexport namespace ControlsGroup {\n export type Props = ControlsGroupProps;\n}\n"],"mappings":";;;;;AAaA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,EAAE,OAAO,iBAAiB,mBAAmB;CACnD,MAAM,OAAO,aAAa,iBAAiB,aAAa,qBAAqB,UAAU,KAAA;CAEvF,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE;GAAM;EAAS,GAAG,YAAY;CAC1C,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controls-root.d.ts","names":[],"sources":["../../../../src/ui/controls/controls-root.tsx"],"mappings":";;;;UAYiB,0BAA0B,wBAAwB,aAAa;EAC9E,WAAW;;;cAIA,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAkCR;OACH,QAAQ;OACR,QAAQ,aAAa"}
1
+ {"version":3,"file":"controls-root.d.ts","names":[],"sources":["../../../../src/ui/controls/controls-root.tsx"],"mappings":";;;;UAUiB,0BAA0B,wBAAwB,aAAa;EAC9E,WAAW;;;cAIA,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAkCR;OACH,QAAQ;OACR,QAAQ,aAAa"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { usePlayer } from "../../player/context.js";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { ControlsContextProvider } from "./context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"controls-root.js","names":[],"sources":["../../../../src/ui/controls/controls-root.tsx"],"sourcesContent":["'use client';\n\nimport { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { ControlsContextProvider } from './context';\n\nexport interface ControlsRootProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Root container for player controls state and rendered control content. */\nexport const ControlsRoot = forwardRef(function ControlsRoot(\n componentProps: ControlsRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const controls = usePlayer(selectControls);\n\n const [core] = useState(() => new ControlsCore());\n\n if (!controls) {\n if (__DEV__) logMissingFeature('Controls.Root', 'controls');\n return null;\n }\n\n core.setMedia(controls);\n const state = core.getState();\n\n return (\n <ControlsContextProvider value={{ state, stateAttrMap: ControlsDataAttrs }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ControlsDataAttrs,\n ref: [forwardedRef],\n props: [{ children }, elementProps, { 'data-interactive': '' }],\n }\n )}\n </ControlsContextProvider>\n );\n});\n\nexport namespace ControlsRoot {\n export type Props = ControlsRootProps;\n export type State = ControlsCore.State;\n}\n"],"mappings":";;;;;;;;;;AAiBA,MAAa,eAAe,WAAW,SAAS,aAC9C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,WAAW,UAAU,cAAc;CAEzC,MAAM,CAAC,QAAQ,eAAe,IAAI,aAAa,CAAC;CAEhD,IAAI,CAAC,UAAU;EACA,kBAAkB,iBAAiB,UAAU;EAC1D,OAAO;CACT;CAEA,KAAK,SAAS,QAAQ;CACtB,MAAM,QAAQ,KAAK,SAAS;CAE5B,OACE,oBAAC,yBAAD;EAAyB,OAAO;GAAE;GAAO,cAAc;EAAkB;EACtE,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,YAAY;GAClB,OAAO;IAAC,EAAE,SAAS;IAAG;IAAc,EAAE,oBAAoB,GAAG;GAAC;EAChE,CACF;CACuB,CAAA;AAE7B,CAAC"}
1
+ {"version":3,"file":"controls-root.js","names":[],"sources":["../../../../src/ui/controls/controls-root.tsx"],"sourcesContent":["import { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { ControlsContextProvider } from './context';\n\nexport interface ControlsRootProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Root container for player controls state and rendered control content. */\nexport const ControlsRoot = forwardRef(function ControlsRoot(\n componentProps: ControlsRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const controls = usePlayer(selectControls);\n\n const [core] = useState(() => new ControlsCore());\n\n if (!controls) {\n if (__DEV__) logMissingFeature('Controls.Root', 'controls');\n return null;\n }\n\n core.setMedia(controls);\n const state = core.getState();\n\n return (\n <ControlsContextProvider value={{ state, stateAttrMap: ControlsDataAttrs }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ControlsDataAttrs,\n ref: [forwardedRef],\n props: [{ children }, elementProps, { 'data-interactive': '' }],\n }\n )}\n </ControlsContextProvider>\n );\n});\n\nexport namespace ControlsRoot {\n export type Props = ControlsRootProps;\n export type State = ControlsCore.State;\n}\n"],"mappings":";;;;;;;;;AAeA,MAAa,eAAe,WAAW,SAAS,aAC9C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,WAAW,UAAU,cAAc;CAEzC,MAAM,CAAC,QAAQ,eAAe,IAAI,aAAa,CAAC;CAEhD,IAAI,CAAC,UAAU;EACA,kBAAkB,iBAAiB,UAAU;EAC1D,OAAO;CACT;CAEA,KAAK,SAAS,QAAQ;CACtB,MAAM,QAAQ,KAAK,SAAS;CAE5B,OACE,oBAAC,yBAAD;EAAyB,OAAO;GAAE;GAAO,cAAc;EAAkB;EACtE,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,YAAY;GAClB,OAAO;IAAC,EAAE,SAAS;IAAG;IAAc,EAAE,oBAAoB,GAAG;GAAC;EAChE,CACF;CACuB,CAAA;AAE7B,CAAC"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../utils/use-render.js";
3
2
  import { forwardRef } from "react";
4
3
  //#region src/ui/create-context-part.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"create-context-part.js","names":[],"sources":["../../../src/ui/create-context-part.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap } from '@videojs/core';\nimport type { ForwardRefExoticComponent } from 'react';\nimport { forwardRef } from 'react';\nimport type { UIComponentProps } from '@/utils/types';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\n\ninterface ContextPartConfig<Props extends object, State extends object> {\n displayName: string;\n tag: keyof React.JSX.IntrinsicElements;\n useContext: () => { state: State; stateAttrMap: StateAttrMap<State> };\n staticProps?: Partial<Props>;\n /** Derive props from state on each render (e.g. `id` from a state field). */\n getProps?: (state: State) => Record<string, unknown>;\n}\n\nexport function createContextPart<Props extends UIComponentProps<any, any>, State extends object>(\n config: ContextPartConfig<Props, State>\n): ForwardRefExoticComponent<Props> {\n const { displayName, tag, useContext, staticProps, getProps } = config;\n\n const Component = forwardRef<HTMLElement, Props>(function ContextPart(componentProps, forwardedRef) {\n const { render, className, style, ...elementProps } = componentProps;\n const context = useContext();\n const dynamicProps = getProps?.(context.state);\n\n return renderElement(tag, { render, className, style } as renderElementFn.ComponentProps<State>, {\n state: context.state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [staticProps, dynamicProps, elementProps].filter(Boolean),\n });\n });\n\n Component.displayName = displayName;\n\n return Component as ForwardRefExoticComponent<Props>;\n}\n"],"mappings":";;;;AAkBA,SAAgB,kBACd,QACkC;CAClC,MAAM,EAAE,aAAa,KAAK,YAAY,aAAa,aAAa;CAEhE,MAAM,YAAY,WAA+B,SAAS,YAAY,gBAAgB,cAAc;EAClG,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;EACtD,MAAM,UAAU,WAAW;EAC3B,MAAM,eAAe,WAAW,QAAQ,KAAK;EAE7C,OAAO,cAAc,KAAK;GAAE;GAAQ;GAAW;EAAM,GAA4C;GAC/F,OAAO,QAAQ;GACf,cAAc,QAAQ;GACtB,KAAK;GACL,OAAO;IAAC;IAAa;IAAc;GAAY,CAAC,CAAC,OAAO,OAAO;EACjE,CAAC;CACH,CAAC;CAED,UAAU,cAAc;CAExB,OAAO;AACT"}
1
+ {"version":3,"file":"create-context-part.js","names":[],"sources":["../../../src/ui/create-context-part.tsx"],"sourcesContent":["import type { StateAttrMap } from '@videojs/core';\nimport type { ForwardRefExoticComponent } from 'react';\nimport { forwardRef } from 'react';\nimport type { UIComponentProps } from '@/utils/types';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\n\ninterface ContextPartConfig<Props extends object, State extends object> {\n displayName: string;\n tag: keyof React.JSX.IntrinsicElements;\n useContext: () => { state: State; stateAttrMap: StateAttrMap<State> };\n staticProps?: Partial<Props>;\n /** Derive props from state on each render (e.g. `id` from a state field). */\n getProps?: (state: State) => Record<string, unknown>;\n}\n\nexport function createContextPart<Props extends UIComponentProps<any, any>, State extends object>(\n config: ContextPartConfig<Props, State>\n): ForwardRefExoticComponent<Props> {\n const { displayName, tag, useContext, staticProps, getProps } = config;\n\n const Component = forwardRef<HTMLElement, Props>(function ContextPart(componentProps, forwardedRef) {\n const { render, className, style, ...elementProps } = componentProps;\n const context = useContext();\n const dynamicProps = getProps?.(context.state);\n\n return renderElement(tag, { render, className, style } as renderElementFn.ComponentProps<State>, {\n state: context.state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [staticProps, dynamicProps, elementProps].filter(Boolean),\n });\n });\n\n Component.displayName = displayName;\n\n return Component as ForwardRefExoticComponent<Props>;\n}\n"],"mappings":";;;AAgBA,SAAgB,kBACd,QACkC;CAClC,MAAM,EAAE,aAAa,KAAK,YAAY,aAAa,aAAa;CAEhE,MAAM,YAAY,WAA+B,SAAS,YAAY,gBAAgB,cAAc;EAClG,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;EACtD,MAAM,UAAU,WAAW;EAC3B,MAAM,eAAe,WAAW,QAAQ,KAAK;EAE7C,OAAO,cAAc,KAAK;GAAE;GAAQ;GAAW;EAAM,GAA4C;GAC/F,OAAO,QAAQ;GACf,cAAc,QAAQ;GACtB,KAAK;GACL,OAAO;IAAC;IAAa;IAAc;GAAY,CAAC,CAAC,OAAO,OAAO;EACjE,CAAC;CACH,CAAC;CAED,UAAU,cAAc;CAExB,OAAO;AACT"}
@@ -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":"create-media-button.js","names":[],"sources":["../../../src/ui/create-media-button.tsx"],"sourcesContent":["'use client';\n\nimport type { InferComponentState, InferMediaState, MediaButtonComponent, StateAttrMap } from '@videojs/core';\nimport { logMissingFeature } from '@videojs/core/dom';\nimport { isText, translateText } from '@videojs/core/i18n';\nimport type { Selector } from '@videojs/store';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { forwardRef, useLayoutEffect, useState } from 'react';\n\nimport { useTranslator } from '../i18n/context';\nimport { usePlayer } from '../player/context';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\nimport { useButton } from './hooks/use-button';\nimport { useHotkeyShortcut } from './hotkey/use-hotkey-shortcut';\nimport { useOptionalMenuTriggerChildContext } from './menu/context';\nimport { useOptionalTooltipContext } from './tooltip/context';\n\ninterface MediaButtonConfig<Core extends Required<MediaButtonComponent>> {\n displayName: string;\n core: { new (): Core; defaultProps: Record<string, unknown> };\n stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n selector: Selector<object, InferMediaState<Core> | undefined>;\n action: (core: Core, state: InferMediaState<Core>) => void | Promise<void>;\n hotkeyAction?: string;\n hotkeyValue?: (props: Record<string, unknown>) => number | undefined;\n tooltipLabel?: (core: Core, state: InferComponentState<Core>) => string | undefined;\n /** Returns `false` to render `null` (e.g., when the underlying feature is unsupported). */\n isSupported?: (state: InferComponentState<Core>) => boolean;\n}\n\ntype LabelParams = Record<string, string | number>;\ntype LabelParamsCore<State> = {\n getLabelParams?: (state: State) => LabelParams | undefined;\n};\n\nfunction getLabelParams<Core extends MediaButtonComponent>(\n core: Core,\n state: InferComponentState<Core>\n): LabelParams | undefined {\n return (core as LabelParamsCore<InferComponentState<Core>>).getLabelParams?.(state);\n}\n\n/** Creates a media button React component from a core class and config. */\nexport function createMediaButton<Core extends Required<MediaButtonComponent>, Props extends object>(\n config: MediaButtonConfig<Core>\n): ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>> {\n const {\n displayName,\n core: CoreClass,\n stateAttrMap,\n selector,\n action,\n hotkeyAction,\n hotkeyValue,\n tooltipLabel,\n isSupported,\n } = config;\n\n // Props that exist in the core's defaultProps are routed to setProps; the rest go to the DOM element.\n const corePropKeys = new Set(Object.keys(CoreClass.defaultProps));\n\n const Component = forwardRef(function MediaButton(\n componentProps: Record<string, unknown>,\n forwardedRef: ForwardedRef<HTMLButtonElement>\n ) {\n const { render, className, style, ...rest } = componentProps;\n\n const coreProps: Record<string, unknown> = {};\n const elementProps: Record<string, unknown> = {};\n\n for (const key of Object.keys(rest)) {\n if (corePropKeys.has(key)) {\n coreProps[key] = rest[key];\n } else {\n elementProps[key] = rest[key];\n }\n }\n\n const tooltipCtx = useOptionalTooltipContext();\n const menuTriggerChild = useOptionalMenuTriggerChildContext();\n const setTooltipContent = tooltipCtx?.setContent;\n const feature = usePlayer(selector);\n const shortcut = useHotkeyShortcut(hotkeyAction, hotkeyValue?.(coreProps));\n const translator = useTranslator();\n\n const [core] = useState(() => new CoreClass());\n\n if (corePropKeys.has('menuTrigger') && isUndefined(coreProps.menuTrigger)) {\n coreProps.menuTrigger = menuTriggerChild;\n }\n\n core.setProps(coreProps);\n\n const { getButtonProps, buttonRef } = useButton({\n displayName,\n // `useButton` invokes `onActivate` synchronously from click/keyup\n // handlers, so any rejection here would be unhandled. Log in dev for\n // visibility but absorb the failure at this UI boundary.\n onActivate: () => {\n Promise.resolve(action(core, feature!)).catch((error) => {\n if (__DEV__) console.error(`[${displayName}]`, error);\n });\n },\n isDisabled: () => !!coreProps.disabled || !feature,\n });\n\n // Derive state and label before the hooks boundary so the\n // useLayoutEffect below (called unconditionally) can reference them.\n type State = InferComponentState<Core>;\n if (feature) core.setMedia(feature);\n const state = feature ? (core.getState() as State) : null;\n const supported = state ? (isSupported?.(state) ?? true) : false;\n const label =\n state && supported ? translateText(core.getLabel(state), translator, getLabelParams(core, state)) : undefined;\n const tooltipText = state && supported ? (tooltipLabel?.(core, state) ?? label) : undefined;\n\n // Forward label to tooltip popup content when inside a Tooltip.Root.\n useLayoutEffect(() => {\n if (!setTooltipContent) return;\n setTooltipContent(tooltipText ? { label: tooltipText, shortcut: shortcut.shortcut } : undefined);\n return () => setTooltipContent(undefined);\n }, [setTooltipContent, tooltipText, shortcut.shortcut]);\n\n if (!feature || !state) {\n if (__DEV__) logMissingFeature(displayName, selector.displayName ?? displayName);\n return null;\n }\n\n if (!supported) return null;\n\n const attrs = core.getAttrs(state) as Record<string, unknown>;\n const ariaLabel = attrs['aria-label'];\n const resolvedAttrs = {\n ...attrs,\n ...(isText(ariaLabel)\n ? { 'aria-label': translateText(ariaLabel, translator, getLabelParams(core, state)) }\n : undefined),\n 'aria-keyshortcuts': shortcut.aria,\n };\n\n return renderElement(\n 'button',\n { render, className, style } as renderElementFn.ComponentProps<InferComponentState<Core>>,\n {\n state,\n stateAttrMap,\n ref: [forwardedRef, buttonRef],\n props: [getButtonProps(), resolvedAttrs, elementProps],\n }\n );\n });\n\n Component.displayName = displayName;\n\n return Component as unknown as ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>>;\n}\n"],"mappings":";;;;;;;;;;;;;AAqCA,SAAS,eACP,MACA,OACyB;CACzB,OAAQ,KAAoD,iBAAiB,KAAK;AACpF;;AAGA,SAAgB,kBACd,QACqE;CACrE,MAAM,EACJ,aACA,MAAM,WACN,cACA,UACA,QACA,cACA,aACA,cACA,gBACE;CAGJ,MAAM,eAAe,IAAI,IAAI,OAAO,KAAK,UAAU,YAAY,CAAC;CAEhE,MAAM,YAAY,WAAW,SAAS,YACpC,gBACA,cACA;EACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,SAAS;EAE9C,MAAM,YAAqC,CAAC;EAC5C,MAAM,eAAwC,CAAC;EAE/C,KAAK,MAAM,OAAO,OAAO,KAAK,IAAI,GAChC,IAAI,aAAa,IAAI,GAAG,GACtB,UAAU,OAAO,KAAK;OAEtB,aAAa,OAAO,KAAK;EAI7B,MAAM,aAAa,0BAA0B;EAC7C,MAAM,mBAAmB,mCAAmC;EAC5D,MAAM,oBAAoB,YAAY;EACtC,MAAM,UAAU,UAAU,QAAQ;EAClC,MAAM,WAAW,kBAAkB,cAAc,cAAc,SAAS,CAAC;EACzE,MAAM,aAAa,cAAc;EAEjC,MAAM,CAAC,QAAQ,eAAe,IAAI,UAAU,CAAC;EAE7C,IAAI,aAAa,IAAI,aAAa,KAAK,YAAY,UAAU,WAAW,GACtE,UAAU,cAAc;EAG1B,KAAK,SAAS,SAAS;EAEvB,MAAM,EAAE,gBAAgB,cAAc,UAAU;GAC9C;GAIA,kBAAkB;IAChB,QAAQ,QAAQ,OAAO,MAAM,OAAQ,CAAC,CAAC,CAAC,OAAO,UAAU;KAC1C,QAAQ,MAAM,IAAI,YAAY,IAAI,KAAK;IACtD,CAAC;GACH;GACA,kBAAkB,CAAC,CAAC,UAAU,YAAY,CAAC;EAC7C,CAAC;EAKD,IAAI,SAAS,KAAK,SAAS,OAAO;EAClC,MAAM,QAAQ,UAAW,KAAK,SAAS,IAAc;EACrD,MAAM,YAAY,QAAS,cAAc,KAAK,KAAK,OAAQ;EAC3D,MAAM,QACJ,SAAS,YAAY,cAAc,KAAK,SAAS,KAAK,GAAG,YAAY,eAAe,MAAM,KAAK,CAAC,IAAI,KAAA;EACtG,MAAM,cAAc,SAAS,YAAa,eAAe,MAAM,KAAK,KAAK,QAAS,KAAA;EAGlF,sBAAsB;GACpB,IAAI,CAAC,mBAAmB;GACxB,kBAAkB,cAAc;IAAE,OAAO;IAAa,UAAU,SAAS;GAAS,IAAI,KAAA,CAAS;GAC/F,aAAa,kBAAkB,KAAA,CAAS;EAC1C,GAAG;GAAC;GAAmB;GAAa,SAAS;EAAQ,CAAC;EAEtD,IAAI,CAAC,WAAW,CAAC,OAAO;GACT,kBAAkB,aAAa,SAAS,eAAe,WAAW;GAC/E,OAAO;EACT;EAEA,IAAI,CAAC,WAAW,OAAO;EAEvB,MAAM,QAAQ,KAAK,SAAS,KAAK;EACjC,MAAM,YAAY,MAAM;EACxB,MAAM,gBAAgB;GACpB,GAAG;GACH,GAAI,OAAO,SAAS,IAChB,EAAE,cAAc,cAAc,WAAW,YAAY,eAAe,MAAM,KAAK,CAAC,EAAE,IAClF,KAAA;GACJ,qBAAqB,SAAS;EAChC;EAEA,OAAO,cACL,UACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA;GACA,KAAK,CAAC,cAAc,SAAS;GAC7B,OAAO;IAAC,eAAe;IAAG;IAAe;GAAY;EACvD,CACF;CACF,CAAC;CAED,UAAU,cAAc;CAExB,OAAO;AACT"}
1
+ {"version":3,"file":"create-media-button.js","names":[],"sources":["../../../src/ui/create-media-button.tsx"],"sourcesContent":["import type { InferComponentState, InferMediaState, MediaButtonComponent, StateAttrMap } from '@videojs/core';\nimport { logMissingFeature } from '@videojs/core/dom';\nimport { isText, translateText } from '@videojs/core/i18n';\nimport type { Selector } from '@videojs/store';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { forwardRef, useLayoutEffect, useState } from 'react';\n\nimport { useTranslator } from '../i18n/context';\nimport { usePlayer } from '../player/context';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\nimport { useButton } from './hooks/use-button';\nimport { useHotkeyShortcut } from './hotkey/use-hotkey-shortcut';\nimport { useOptionalMenuTriggerChildContext } from './menu/context';\nimport { useOptionalTooltipContext } from './tooltip/context';\n\ninterface MediaButtonConfig<Core extends Required<MediaButtonComponent>> {\n displayName: string;\n core: { new (): Core; defaultProps: Record<string, unknown> };\n stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n selector: Selector<object, InferMediaState<Core> | undefined>;\n action: (core: Core, state: InferMediaState<Core>) => void | Promise<void>;\n hotkeyAction?: string;\n hotkeyValue?: (props: Record<string, unknown>) => number | undefined;\n tooltipLabel?: (core: Core, state: InferComponentState<Core>) => string | undefined;\n /** Returns `false` to render `null` (e.g., when the underlying feature is unsupported). */\n isSupported?: (state: InferComponentState<Core>) => boolean;\n}\n\ntype LabelParams = Record<string, string | number>;\ntype LabelParamsCore<State> = {\n getLabelParams?: (state: State) => LabelParams | undefined;\n};\n\nfunction getLabelParams<Core extends MediaButtonComponent>(\n core: Core,\n state: InferComponentState<Core>\n): LabelParams | undefined {\n return (core as LabelParamsCore<InferComponentState<Core>>).getLabelParams?.(state);\n}\n\n/** Creates a media button React component from a core class and config. */\nexport function createMediaButton<Core extends Required<MediaButtonComponent>, Props extends object>(\n config: MediaButtonConfig<Core>\n): ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>> {\n const {\n displayName,\n core: CoreClass,\n stateAttrMap,\n selector,\n action,\n hotkeyAction,\n hotkeyValue,\n tooltipLabel,\n isSupported,\n } = config;\n\n // Props that exist in the core's defaultProps are routed to setProps; the rest go to the DOM element.\n const corePropKeys = new Set(Object.keys(CoreClass.defaultProps));\n\n const Component = forwardRef(function MediaButton(\n componentProps: Record<string, unknown>,\n forwardedRef: ForwardedRef<HTMLButtonElement>\n ) {\n const { render, className, style, ...rest } = componentProps;\n\n const coreProps: Record<string, unknown> = {};\n const elementProps: Record<string, unknown> = {};\n\n for (const key of Object.keys(rest)) {\n if (corePropKeys.has(key)) {\n coreProps[key] = rest[key];\n } else {\n elementProps[key] = rest[key];\n }\n }\n\n const tooltipCtx = useOptionalTooltipContext();\n const menuTriggerChild = useOptionalMenuTriggerChildContext();\n const setTooltipContent = tooltipCtx?.setContent;\n const feature = usePlayer(selector);\n const shortcut = useHotkeyShortcut(hotkeyAction, hotkeyValue?.(coreProps));\n const translator = useTranslator();\n\n const [core] = useState(() => new CoreClass());\n\n if (corePropKeys.has('menuTrigger') && isUndefined(coreProps.menuTrigger)) {\n coreProps.menuTrigger = menuTriggerChild;\n }\n\n core.setProps(coreProps);\n\n const { getButtonProps, buttonRef } = useButton({\n displayName,\n // `useButton` invokes `onActivate` synchronously from click/keyup\n // handlers, so any rejection here would be unhandled. Log in dev for\n // visibility but absorb the failure at this UI boundary.\n onActivate: () => {\n Promise.resolve(action(core, feature!)).catch((error) => {\n if (__DEV__) console.error(`[${displayName}]`, error);\n });\n },\n isDisabled: () => !!coreProps.disabled || !feature,\n });\n\n // Derive state and label before the hooks boundary so the\n // useLayoutEffect below (called unconditionally) can reference them.\n type State = InferComponentState<Core>;\n if (feature) core.setMedia(feature);\n const state = feature ? (core.getState() as State) : null;\n const supported = state ? (isSupported?.(state) ?? true) : false;\n const label =\n state && supported ? translateText(core.getLabel(state), translator, getLabelParams(core, state)) : undefined;\n const tooltipText = state && supported ? (tooltipLabel?.(core, state) ?? label) : undefined;\n\n // Forward label to tooltip popup content when inside a Tooltip.Root.\n useLayoutEffect(() => {\n if (!setTooltipContent) return;\n setTooltipContent(tooltipText ? { label: tooltipText, shortcut: shortcut.shortcut } : undefined);\n return () => setTooltipContent(undefined);\n }, [setTooltipContent, tooltipText, shortcut.shortcut]);\n\n if (!feature || !state) {\n if (__DEV__) logMissingFeature(displayName, selector.displayName ?? displayName);\n return null;\n }\n\n if (!supported) return null;\n\n const attrs = core.getAttrs(state) as Record<string, unknown>;\n const ariaLabel = attrs['aria-label'];\n const resolvedAttrs = {\n ...attrs,\n ...(isText(ariaLabel)\n ? { 'aria-label': translateText(ariaLabel, translator, getLabelParams(core, state)) }\n : undefined),\n 'aria-keyshortcuts': shortcut.aria,\n };\n\n return renderElement(\n 'button',\n { render, className, style } as renderElementFn.ComponentProps<InferComponentState<Core>>,\n {\n state,\n stateAttrMap,\n ref: [forwardedRef, buttonRef],\n props: [getButtonProps(), resolvedAttrs, elementProps],\n }\n );\n });\n\n Component.displayName = displayName;\n\n return Component as unknown as ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>>;\n}\n"],"mappings":";;;;;;;;;;;;AAmCA,SAAS,eACP,MACA,OACyB;CACzB,OAAQ,KAAoD,iBAAiB,KAAK;AACpF;;AAGA,SAAgB,kBACd,QACqE;CACrE,MAAM,EACJ,aACA,MAAM,WACN,cACA,UACA,QACA,cACA,aACA,cACA,gBACE;CAGJ,MAAM,eAAe,IAAI,IAAI,OAAO,KAAK,UAAU,YAAY,CAAC;CAEhE,MAAM,YAAY,WAAW,SAAS,YACpC,gBACA,cACA;EACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,SAAS;EAE9C,MAAM,YAAqC,CAAC;EAC5C,MAAM,eAAwC,CAAC;EAE/C,KAAK,MAAM,OAAO,OAAO,KAAK,IAAI,GAChC,IAAI,aAAa,IAAI,GAAG,GACtB,UAAU,OAAO,KAAK;OAEtB,aAAa,OAAO,KAAK;EAI7B,MAAM,aAAa,0BAA0B;EAC7C,MAAM,mBAAmB,mCAAmC;EAC5D,MAAM,oBAAoB,YAAY;EACtC,MAAM,UAAU,UAAU,QAAQ;EAClC,MAAM,WAAW,kBAAkB,cAAc,cAAc,SAAS,CAAC;EACzE,MAAM,aAAa,cAAc;EAEjC,MAAM,CAAC,QAAQ,eAAe,IAAI,UAAU,CAAC;EAE7C,IAAI,aAAa,IAAI,aAAa,KAAK,YAAY,UAAU,WAAW,GACtE,UAAU,cAAc;EAG1B,KAAK,SAAS,SAAS;EAEvB,MAAM,EAAE,gBAAgB,cAAc,UAAU;GAC9C;GAIA,kBAAkB;IAChB,QAAQ,QAAQ,OAAO,MAAM,OAAQ,CAAC,CAAC,CAAC,OAAO,UAAU;KAC1C,QAAQ,MAAM,IAAI,YAAY,IAAI,KAAK;IACtD,CAAC;GACH;GACA,kBAAkB,CAAC,CAAC,UAAU,YAAY,CAAC;EAC7C,CAAC;EAKD,IAAI,SAAS,KAAK,SAAS,OAAO;EAClC,MAAM,QAAQ,UAAW,KAAK,SAAS,IAAc;EACrD,MAAM,YAAY,QAAS,cAAc,KAAK,KAAK,OAAQ;EAC3D,MAAM,QACJ,SAAS,YAAY,cAAc,KAAK,SAAS,KAAK,GAAG,YAAY,eAAe,MAAM,KAAK,CAAC,IAAI,KAAA;EACtG,MAAM,cAAc,SAAS,YAAa,eAAe,MAAM,KAAK,KAAK,QAAS,KAAA;EAGlF,sBAAsB;GACpB,IAAI,CAAC,mBAAmB;GACxB,kBAAkB,cAAc;IAAE,OAAO;IAAa,UAAU,SAAS;GAAS,IAAI,KAAA,CAAS;GAC/F,aAAa,kBAAkB,KAAA,CAAS;EAC1C,GAAG;GAAC;GAAmB;GAAa,SAAS;EAAQ,CAAC;EAEtD,IAAI,CAAC,WAAW,CAAC,OAAO;GACT,kBAAkB,aAAa,SAAS,eAAe,WAAW;GAC/E,OAAO;EACT;EAEA,IAAI,CAAC,WAAW,OAAO;EAEvB,MAAM,QAAQ,KAAK,SAAS,KAAK;EACjC,MAAM,YAAY,MAAM;EACxB,MAAM,gBAAgB;GACpB,GAAG;GACH,GAAI,OAAO,SAAS,IAChB,EAAE,cAAc,cAAc,WAAW,YAAY,eAAe,MAAM,KAAK,CAAC,EAAE,IAClF,KAAA;GACJ,qBAAqB,SAAS;EAChC;EAEA,OAAO,cACL,UACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA;GACA,KAAK,CAAC,cAAc,SAAS;GAC7B,OAAO;IAAC,eAAe;IAAG;IAAe;GAAY;EACvD,CACF;CACF,CAAC;CAED,UAAU,cAAc;CAExB,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/context.tsx"],"mappings":";;UAKiB;EACf,WAAW;;iBAOG,yBAAyB"}
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/context.tsx"],"mappings":";;UAGiB;EACf,WAAW;;iBAOG,yBAAyB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createContext, useContext } from "react";
3
2
  //#region src/ui/error-dialog/context.tsx
4
3
  const ErrorDialogContext = createContext(null);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/error-dialog/context.tsx"],"sourcesContent":["'use client';\n\nimport type { ErrorLike } from '@videojs/media';\nimport { createContext, useContext } from 'react';\n\nexport interface ErrorDialogContextValue {\n lastError: ErrorLike | null;\n}\n\nconst ErrorDialogContext = createContext<ErrorDialogContextValue | null>(null);\n\nexport const ErrorDialogContextProvider = ErrorDialogContext.Provider;\n\nexport function useErrorDialogContext(): ErrorDialogContextValue {\n const ctx = useContext(ErrorDialogContext);\n if (!ctx) throw new Error('ErrorDialog compound components must be used within an ErrorDialog.Root');\n return ctx;\n}\n"],"mappings":";;;AASA,MAAM,qBAAqB,cAA8C,IAAI;AAE7E,MAAa,6BAA6B,mBAAmB;AAE7D,SAAgB,wBAAiD;CAC/D,MAAM,MAAM,WAAW,kBAAkB;CACzC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,yEAAyE;CACnG,OAAO;AACT"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/error-dialog/context.tsx"],"sourcesContent":["import type { ErrorLike } from '@videojs/media';\nimport { createContext, useContext } from 'react';\n\nexport interface ErrorDialogContextValue {\n lastError: ErrorLike | null;\n}\n\nconst ErrorDialogContext = createContext<ErrorDialogContextValue | null>(null);\n\nexport const ErrorDialogContextProvider = ErrorDialogContext.Provider;\n\nexport function useErrorDialogContext(): ErrorDialogContextValue {\n const ctx = useContext(ErrorDialogContext);\n if (!ctx) throw new Error('ErrorDialog compound components must be used within an ErrorDialog.Root');\n return ctx;\n}\n"],"mappings":";;AAOA,MAAM,qBAAqB,cAA8C,IAAI;AAE7E,MAAa,6BAA6B,mBAAmB;AAE7D,SAAgB,wBAAiD;CAC/D,MAAM,MAAM,WAAW,kBAAkB;CACzC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,yEAAyE;CACnG,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-dialog-close.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-close.tsx"],"mappings":";;;UAWiB,8BAA8B,2BAA2B,gBAAgB;cAE7E,kCAAgB,0BAAA,KAAA,gDAAA,cAAA;kBA0BZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
1
+ {"version":3,"file":"error-dialog-close.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-close.tsx"],"mappings":";;;UASiB,8BAA8B,2BAA2B,gBAAgB;cAE7E,kCAAgB,0BAAA,KAAA,gDAAA,cAAA;kBA0BZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useTranslator } from "../../i18n/context.js";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { useAlertDialogContext } from "../alert-dialog/context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"error-dialog-close.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-close.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore } from '@videojs/core';\nimport { getErrorDialogDismissText } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode, useCallback } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from '../alert-dialog/context';\n\nexport interface ErrorDialogCloseProps extends UIComponentProps<'button', AlertDialogCore.State> {}\n\nexport const ErrorDialogClose = forwardRef<HTMLButtonElement, ErrorDialogCloseProps>(function ErrorDialogClose(\n { render, className, style, disabled, children, ...elementProps },\n forwardedRef\n) {\n const t = useTranslator();\n const { dialog, state, stateAttrMap } = useAlertDialogContext();\n\n const handleClick = useCallback(() => {\n if (disabled) return;\n dialog.close();\n }, [dialog, disabled]);\n\n const content: ReactNode = children ?? translateText(getErrorDialogDismissText(), t);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ type: 'button' as const, disabled, onClick: handleClick, children: content }, elementProps],\n }\n );\n});\n\nexport namespace ErrorDialogClose {\n export type Props = ErrorDialogCloseProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;;;;AAaA,MAAa,mBAAmB,WAAqD,SAAS,iBAC5F,EAAE,QAAQ,WAAW,OAAO,UAAU,UAAU,GAAG,gBACnD,cACA;CACA,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,QAAQ,OAAO,iBAAiB,sBAAsB;CAE9D,MAAM,cAAc,kBAAkB;EACpC,IAAI,UAAU;EACd,OAAO,MAAM;CACf,GAAG,CAAC,QAAQ,QAAQ,CAAC;CAErB,MAAM,UAAqB,YAAY,cAAc,0BAA0B,GAAG,CAAC;CAEnF,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,MAAM;GAAmB;GAAU,SAAS;GAAa,UAAU;EAAQ,GAAG,YAAY;CACtG,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"error-dialog-close.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-close.tsx"],"sourcesContent":["import type { AlertDialogCore } from '@videojs/core';\nimport { getErrorDialogDismissText } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode, useCallback } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from '../alert-dialog/context';\n\nexport interface ErrorDialogCloseProps extends UIComponentProps<'button', AlertDialogCore.State> {}\n\nexport const ErrorDialogClose = forwardRef<HTMLButtonElement, ErrorDialogCloseProps>(function ErrorDialogClose(\n { render, className, style, disabled, children, ...elementProps },\n forwardedRef\n) {\n const t = useTranslator();\n const { dialog, state, stateAttrMap } = useAlertDialogContext();\n\n const handleClick = useCallback(() => {\n if (disabled) return;\n dialog.close();\n }, [dialog, disabled]);\n\n const content: ReactNode = children ?? translateText(getErrorDialogDismissText(), t);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ type: 'button' as const, disabled, onClick: handleClick, children: content }, elementProps],\n }\n );\n});\n\nexport namespace ErrorDialogClose {\n export type Props = ErrorDialogCloseProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;;;AAWA,MAAa,mBAAmB,WAAqD,SAAS,iBAC5F,EAAE,QAAQ,WAAW,OAAO,UAAU,UAAU,GAAG,gBACnD,cACA;CACA,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,QAAQ,OAAO,iBAAiB,sBAAsB;CAE9D,MAAM,cAAc,kBAAkB;EACpC,IAAI,UAAU;EACd,OAAO,MAAM;CACf,GAAG,CAAC,QAAQ,QAAQ,CAAC;CAErB,MAAM,UAAqB,YAAY,cAAc,0BAA0B,GAAG,CAAC;CAEnF,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,MAAM;GAAmB;GAAU,SAAS;GAAa,UAAU;EAAQ,GAAG,YAAY;CACtG,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-dialog-description.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-description.tsx"],"mappings":";;;UAYiB,oCAAoC,sBAAsB,gBAAgB;cAE9E,wCAAsB,0BAAA,KAAA,sDAAA,cAAA;kBAqBlB;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
1
+ {"version":3,"file":"error-dialog-description.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-description.tsx"],"mappings":";;;UAUiB,oCAAoC,sBAAsB,gBAAgB;cAE9E,wCAAsB,0BAAA,KAAA,sDAAA,cAAA;kBAqBlB;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useTranslator } from "../../i18n/context.js";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { useAlertDialogContext } from "../alert-dialog/context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"error-dialog-description.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-description.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore } from '@videojs/core';\nimport { resolveErrorDialogDescription } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from '../alert-dialog/context';\nimport { useErrorDialogContext } from './context';\n\nexport interface ErrorDialogDescriptionProps extends UIComponentProps<'p', AlertDialogCore.State> {}\n\nexport const ErrorDialogDescription = forwardRef<HTMLParagraphElement, ErrorDialogDescriptionProps>(\n function ErrorDialogDescription({ render, className, style, children, ...elementProps }, forwardedRef) {\n const t = useTranslator();\n const { state, stateAttrMap } = useAlertDialogContext();\n const { lastError } = useErrorDialogContext();\n const description = resolveErrorDialogDescription(lastError);\n const content: ReactNode = children ?? translateText(description, t);\n\n return renderElement(\n 'p',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ id: state.descriptionId, children: content }, elementProps],\n }\n );\n }\n);\n\nexport namespace ErrorDialogDescription {\n export type Props = ErrorDialogDescriptionProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;;;;;AAcA,MAAa,yBAAyB,WACpC,SAAS,uBAAuB,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBAAgB,cAAc;CACrG,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,OAAO,iBAAiB,sBAAsB;CACtD,MAAM,EAAE,cAAc,sBAAsB;CAC5C,MAAM,cAAc,8BAA8B,SAAS;CAC3D,MAAM,UAAqB,YAAY,cAAc,aAAa,CAAC;CAEnE,OAAO,cACL,KACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,IAAI,MAAM;GAAe,UAAU;EAAQ,GAAG,YAAY;CACtE,CACF;AACF,CACF"}
1
+ {"version":3,"file":"error-dialog-description.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-description.tsx"],"sourcesContent":["import type { AlertDialogCore } from '@videojs/core';\nimport { resolveErrorDialogDescription } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from '../alert-dialog/context';\nimport { useErrorDialogContext } from './context';\n\nexport interface ErrorDialogDescriptionProps extends UIComponentProps<'p', AlertDialogCore.State> {}\n\nexport const ErrorDialogDescription = forwardRef<HTMLParagraphElement, ErrorDialogDescriptionProps>(\n function ErrorDialogDescription({ render, className, style, children, ...elementProps }, forwardedRef) {\n const t = useTranslator();\n const { state, stateAttrMap } = useAlertDialogContext();\n const { lastError } = useErrorDialogContext();\n const description = resolveErrorDialogDescription(lastError);\n const content: ReactNode = children ?? translateText(description, t);\n\n return renderElement(\n 'p',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ id: state.descriptionId, children: content }, elementProps],\n }\n );\n }\n);\n\nexport namespace ErrorDialogDescription {\n export type Props = ErrorDialogDescriptionProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;;;;AAYA,MAAa,yBAAyB,WACpC,SAAS,uBAAuB,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBAAgB,cAAc;CACrG,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,OAAO,iBAAiB,sBAAsB;CACtD,MAAM,EAAE,cAAc,sBAAsB;CAC5C,MAAM,cAAc,8BAA8B,SAAS;CAC3D,MAAM,UAAqB,YAAY,cAAc,aAAa,CAAC;CAEnE,OAAO,cACL,KACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,IAAI,MAAM;GAAe,UAAU;EAAQ,GAAG,YAAY;CACtE,CACF;AACF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-dialog-root.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-root.tsx"],"mappings":";;UAeiB;EACf,WAAW;;iBAGG,kBAAkB,YAAY,uBAAuB;kBAsDpD;OACH,QAAQ"}
1
+ {"version":3,"file":"error-dialog-root.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-root.tsx"],"mappings":";;UAaiB;EACf,WAAW;;iBAGG,kBAAkB,YAAY,uBAAuB;kBAsDpD;OACH,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { usePlayer } from "../../player/context.js";
3
2
  import { useLatestRef } from "../../utils/use-latest-ref.js";
4
3
  import { useDestroy } from "../../utils/use-destroy.js";
@@ -1 +1 @@
1
- {"version":3,"file":"error-dialog-root.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-root.tsx"],"sourcesContent":["'use client';\n\nimport { AlertDialogDataAttrs, ErrorDialogCore } from '@videojs/core';\nimport { createAlertDialog, createTransition, selectError } from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { AlertDialogContextProvider } from '../alert-dialog/context';\nimport { ErrorDialogContextProvider } from './context';\n\nexport interface ErrorDialogRootProps {\n children?: ReactNode;\n}\n\nexport function ErrorDialogRoot({ children }: ErrorDialogRootProps): ReactNode {\n const [core] = useState(() => new ErrorDialogCore());\n const errorState = usePlayer(selectError);\n const lastError = useRef(errorState?.error ?? null);\n\n if (errorState?.error) lastError.current = errorState.error;\n\n const errorStateRef = useLatestRef(errorState);\n\n const [dialog] = useState(() =>\n createAlertDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => {\n if (!nextOpen) {\n errorStateRef.current?.dismissError();\n }\n },\n })\n );\n\n const titleId = useSafeId('error-dialog-title');\n const descriptionId = useSafeId('error-dialog-desc');\n\n core.setTitleId(titleId);\n core.setDescriptionId(descriptionId);\n\n useEffect(() => {\n const hasError = Boolean(errorState?.error);\n const { active: isOpen } = dialog.input.current;\n\n if (hasError && !isOpen) {\n dialog.open();\n } else if (!hasError && isOpen) {\n dialog.close();\n }\n }, [errorState?.error, dialog]);\n\n useDestroy(dialog);\n\n const input = useSnapshot(dialog.input);\n core.setInput(input);\n const state = core.getState();\n\n if (!errorState) return null;\n\n return (\n <ErrorDialogContextProvider value={{ lastError: lastError.current }}>\n <AlertDialogContextProvider value={{ core, dialog, state, stateAttrMap: AlertDialogDataAttrs }}>\n {children}\n </AlertDialogContextProvider>\n </ErrorDialogContextProvider>\n );\n}\n\nexport namespace ErrorDialogRoot {\n export type Props = ErrorDialogRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,SAAgB,gBAAgB,EAAE,YAA6C;CAC7E,MAAM,CAAC,QAAQ,eAAe,IAAI,gBAAgB,CAAC;CACnD,MAAM,aAAa,UAAU,WAAW;CACxC,MAAM,YAAY,OAAO,YAAY,SAAS,IAAI;CAElD,IAAI,YAAY,OAAO,UAAU,UAAU,WAAW;CAEtD,MAAM,gBAAgB,aAAa,UAAU;CAE7C,MAAM,CAAC,UAAU,eACf,kBAAkB;EAChB,YAAY,iBAAiB;EAC7B,eAAe,aAAsB;GACnC,IAAI,CAAC,UACH,cAAc,SAAS,aAAa;EAExC;CACF,CAAC,CACH;CAEA,MAAM,UAAU,UAAU,oBAAoB;CAC9C,MAAM,gBAAgB,UAAU,mBAAmB;CAEnD,KAAK,WAAW,OAAO;CACvB,KAAK,iBAAiB,aAAa;CAEnC,gBAAgB;EACd,MAAM,WAAW,QAAQ,YAAY,KAAK;EAC1C,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM;EAExC,IAAI,YAAY,CAAC,QACf,OAAO,KAAK;OACP,IAAI,CAAC,YAAY,QACtB,OAAO,MAAM;CAEjB,GAAG,CAAC,YAAY,OAAO,MAAM,CAAC;CAE9B,WAAW,MAAM;CAEjB,MAAM,QAAQ,YAAY,OAAO,KAAK;CACtC,KAAK,SAAS,KAAK;CACnB,MAAM,QAAQ,KAAK,SAAS;CAE5B,IAAI,CAAC,YAAY,OAAO;CAExB,OACE,oBAAC,4BAAD;EAA4B,OAAO,EAAE,WAAW,UAAU,QAAQ;EAChE,UAAA,oBAAC,4BAAD;GAA4B,OAAO;IAAE;IAAM;IAAQ;IAAO,cAAc;GAAqB;GAC1F;EACyB,CAAA;CACF,CAAA;AAEhC"}
1
+ {"version":3,"file":"error-dialog-root.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-root.tsx"],"sourcesContent":["import { AlertDialogDataAttrs, ErrorDialogCore } from '@videojs/core';\nimport { createAlertDialog, createTransition, selectError } from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { AlertDialogContextProvider } from '../alert-dialog/context';\nimport { ErrorDialogContextProvider } from './context';\n\nexport interface ErrorDialogRootProps {\n children?: ReactNode;\n}\n\nexport function ErrorDialogRoot({ children }: ErrorDialogRootProps): ReactNode {\n const [core] = useState(() => new ErrorDialogCore());\n const errorState = usePlayer(selectError);\n const lastError = useRef(errorState?.error ?? null);\n\n if (errorState?.error) lastError.current = errorState.error;\n\n const errorStateRef = useLatestRef(errorState);\n\n const [dialog] = useState(() =>\n createAlertDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => {\n if (!nextOpen) {\n errorStateRef.current?.dismissError();\n }\n },\n })\n );\n\n const titleId = useSafeId('error-dialog-title');\n const descriptionId = useSafeId('error-dialog-desc');\n\n core.setTitleId(titleId);\n core.setDescriptionId(descriptionId);\n\n useEffect(() => {\n const hasError = Boolean(errorState?.error);\n const { active: isOpen } = dialog.input.current;\n\n if (hasError && !isOpen) {\n dialog.open();\n } else if (!hasError && isOpen) {\n dialog.close();\n }\n }, [errorState?.error, dialog]);\n\n useDestroy(dialog);\n\n const input = useSnapshot(dialog.input);\n core.setInput(input);\n const state = core.getState();\n\n if (!errorState) return null;\n\n return (\n <ErrorDialogContextProvider value={{ lastError: lastError.current }}>\n <AlertDialogContextProvider value={{ core, dialog, state, stateAttrMap: AlertDialogDataAttrs }}>\n {children}\n </AlertDialogContextProvider>\n </ErrorDialogContextProvider>\n );\n}\n\nexport namespace ErrorDialogRoot {\n export type Props = ErrorDialogRootProps;\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,SAAgB,gBAAgB,EAAE,YAA6C;CAC7E,MAAM,CAAC,QAAQ,eAAe,IAAI,gBAAgB,CAAC;CACnD,MAAM,aAAa,UAAU,WAAW;CACxC,MAAM,YAAY,OAAO,YAAY,SAAS,IAAI;CAElD,IAAI,YAAY,OAAO,UAAU,UAAU,WAAW;CAEtD,MAAM,gBAAgB,aAAa,UAAU;CAE7C,MAAM,CAAC,UAAU,eACf,kBAAkB;EAChB,YAAY,iBAAiB;EAC7B,eAAe,aAAsB;GACnC,IAAI,CAAC,UACH,cAAc,SAAS,aAAa;EAExC;CACF,CAAC,CACH;CAEA,MAAM,UAAU,UAAU,oBAAoB;CAC9C,MAAM,gBAAgB,UAAU,mBAAmB;CAEnD,KAAK,WAAW,OAAO;CACvB,KAAK,iBAAiB,aAAa;CAEnC,gBAAgB;EACd,MAAM,WAAW,QAAQ,YAAY,KAAK;EAC1C,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM;EAExC,IAAI,YAAY,CAAC,QACf,OAAO,KAAK;OACP,IAAI,CAAC,YAAY,QACtB,OAAO,MAAM;CAEjB,GAAG,CAAC,YAAY,OAAO,MAAM,CAAC;CAE9B,WAAW,MAAM;CAEjB,MAAM,QAAQ,YAAY,OAAO,KAAK;CACtC,KAAK,SAAS,KAAK;CACnB,MAAM,QAAQ,KAAK,SAAS;CAE5B,IAAI,CAAC,YAAY,OAAO;CAExB,OACE,oBAAC,4BAAD;EAA4B,OAAO,EAAE,WAAW,UAAU,QAAQ;EAChE,UAAA,oBAAC,4BAAD;GAA4B,OAAO;IAAE;IAAM;IAAQ;IAAO,cAAc;GAAqB;GAC1F;EACyB,CAAA;CACF,CAAA;AAEhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-dialog-title.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-title.tsx"],"mappings":";;;UAWiB,8BAA8B,uBAAuB,gBAAgB;cAEzE,kCAAgB,0BAAA,KAAA,gDAAA,cAAA;kBAoBZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
1
+ {"version":3,"file":"error-dialog-title.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-title.tsx"],"mappings":";;;UASiB,8BAA8B,uBAAuB,gBAAgB;cAEzE,kCAAgB,0BAAA,KAAA,gDAAA,cAAA;kBAoBZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useTranslator } from "../../i18n/context.js";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { useAlertDialogContext } from "../alert-dialog/context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"error-dialog-title.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-title.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore } from '@videojs/core';\nimport { getErrorDialogTitleText } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from '../alert-dialog/context';\n\nexport interface ErrorDialogTitleProps extends UIComponentProps<'h2', AlertDialogCore.State> {}\n\nexport const ErrorDialogTitle = forwardRef<HTMLHeadingElement, ErrorDialogTitleProps>(function ErrorDialogTitle(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const t = useTranslator();\n const { state, stateAttrMap } = useAlertDialogContext();\n const content: ReactNode = children ?? translateText(getErrorDialogTitleText(), t);\n\n return renderElement(\n 'h2',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ id: state.titleId, children: content }, elementProps],\n }\n );\n});\n\nexport namespace ErrorDialogTitle {\n export type Props = ErrorDialogTitleProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;;;;AAaA,MAAa,mBAAmB,WAAsD,SAAS,iBAC7F,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,OAAO,iBAAiB,sBAAsB;CACtD,MAAM,UAAqB,YAAY,cAAc,wBAAwB,GAAG,CAAC;CAEjF,OAAO,cACL,MACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,IAAI,MAAM;GAAS,UAAU;EAAQ,GAAG,YAAY;CAChE,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"error-dialog-title.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-title.tsx"],"sourcesContent":["import type { AlertDialogCore } from '@videojs/core';\nimport { getErrorDialogTitleText } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from '../alert-dialog/context';\n\nexport interface ErrorDialogTitleProps extends UIComponentProps<'h2', AlertDialogCore.State> {}\n\nexport const ErrorDialogTitle = forwardRef<HTMLHeadingElement, ErrorDialogTitleProps>(function ErrorDialogTitle(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const t = useTranslator();\n const { state, stateAttrMap } = useAlertDialogContext();\n const content: ReactNode = children ?? translateText(getErrorDialogTitleText(), t);\n\n return renderElement(\n 'h2',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ id: state.titleId, children: content }, elementProps],\n }\n );\n});\n\nexport namespace ErrorDialogTitle {\n export type Props = ErrorDialogTitleProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;;;AAWA,MAAa,mBAAmB,WAAsD,SAAS,iBAC7F,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,OAAO,iBAAiB,sBAAsB;CACtD,MAAM,UAAqB,YAAY,cAAc,wBAAwB,GAAG,CAAC;CAEjF,OAAO,cACL,MACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,IAAI,MAAM;GAAS,UAAU;EAAQ,GAAG,YAAY;CAChE,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fullscreen-button.d.ts","names":[],"sources":["../../../../src/ui/fullscreen-button/fullscreen-button.tsx"],"mappings":";;;UAQiB,8BACP,2BAA2B,qBAAqB,QACtD,qBAAqB;;cAGZ,kCAAgB,0BAAA,wCAAA,cAAA;kBAUZ;OACH,QAAQ;OACR,QAAQ,qBAAqB"}
1
+ {"version":3,"file":"fullscreen-button.d.ts","names":[],"sources":["../../../../src/ui/fullscreen-button/fullscreen-button.tsx"],"mappings":";;;UAMiB,8BACP,2BAA2B,qBAAqB,QACtD,qBAAqB;;cAGZ,kCAAgB,0BAAA,wCAAA,cAAA;kBAUZ;OACH,QAAQ;OACR,QAAQ,qBAAqB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createMediaButton } from "../create-media-button.js";
3
2
  import { selectFullscreen } from "@videojs/core/dom";
4
3
  import { FullscreenButtonCore, FullscreenButtonDataAttrs } from "@videojs/core";
@@ -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,22 +1,15 @@
1
- import { GestureActionName, GesturePointerType, GestureRegion } from "@videojs/core/dom";
2
1
  import { ReactNode } from "react";
2
+ import { GestureProps } from "@videojs/core";
3
3
  //#region src/ui/gesture/gesture.d.ts
4
- interface GestureProps {
5
- type: 'tap' | 'doubletap' | (string & {});
6
- action: GestureActionName | (string & {});
7
- value?: number;
8
- pointer?: GesturePointerType;
9
- region?: GestureRegion;
10
- disabled?: boolean;
11
- }
12
- declare function Gesture({ type, action, value, pointer, region, disabled }: GestureProps): ReactNode;
4
+ interface GestureProps$1 extends GestureProps {}
5
+ declare function Gesture({ type, action, value, pointer, region, disabled }: GestureProps$1): ReactNode;
13
6
  declare namespace Gesture {
14
- type Props = GestureProps;
7
+ type Props = GestureProps$1;
15
8
  }
16
9
  /** @deprecated Use `GestureProps` instead. */
17
- type MediaGestureProps = GestureProps;
10
+ type MediaGestureProps = GestureProps$1;
18
11
  /** @deprecated Use `Gesture` instead. */
19
12
  declare const MediaGesture: typeof Gesture;
20
13
  //#endregion
21
- export { Gesture, GestureProps, MediaGesture, MediaGestureProps };
14
+ export { Gesture, GestureProps$1 as GestureProps, MediaGesture, MediaGestureProps };
22
15
  //# sourceMappingURL=gesture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.d.ts","names":[],"sources":["../../../../src/ui/gesture/gesture.tsx"],"mappings":";;;UAgBiB;EACf;EACA,QAAQ;EACR;EACA,UAAU;EACV,SAAS;EACT;;iBAGc,UAAU,MAAM,QAAQ,OAAO,SAAS,QAAQ,YAAY,eAAe;kBA0B1E;OACH,QAAQ;;;KAIV,oBAAoB;;cAGnB,qBAAY"}
1
+ {"version":3,"file":"gesture.d.ts","names":[],"sources":["../../../../src/ui/gesture/gesture.tsx"],"mappings":";;;UAQiB,uBAAqB;iBAEtB,UAAU,MAAM,QAAQ,OAAO,SAAS,QAAQ,YAAY,iBAAe;kBA0B1E;OACH,QAAQ;;;KAIV,oBAAoB;;cAGnB,qBAAY"}
@@ -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 { GestureProps as CoreGestureProps } from '@videojs/core';\nimport type { AnyPlayerStore } from '@videojs/core/dom';\nimport { createDoubleTapGesture, createTapGesture, resolveGestureAction } from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface GestureProps extends CoreGestureProps {}\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":";;;;AAUA,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,10 +1,7 @@
1
- import { GesturePointerType, GestureRegion } from "@videojs/core/dom";
2
1
  import { RefObject } from "react";
2
+ import { GestureProps } from "@videojs/core";
3
3
  //#region src/ui/gesture/use-doubletap-gesture.d.ts
4
- interface UseDoubleTapGestureOptions {
5
- pointer?: GesturePointerType;
6
- region?: GestureRegion;
7
- disabled?: boolean;
4
+ interface UseDoubleTapGestureOptions extends Pick<GestureProps, 'pointer' | 'region' | 'disabled'> {
8
5
  target?: RefObject<HTMLElement | null>;
9
6
  }
10
7
  declare function useDoubleTapGesture(onActivate: (event: PointerEvent) => void, options?: UseDoubleTapGestureOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-doubletap-gesture.d.ts","names":[],"sources":["../../../../src/ui/gesture/use-doubletap-gesture.ts"],"mappings":";;;UASiB;EACf,UAAU;EACV,SAAS;EACT;EACA,SAAS,UAAU;;iBAGL,oBACd,aAAa,OAAO,uBACpB,UAAU"}
1
+ {"version":3,"file":"use-doubletap-gesture.d.ts","names":[],"sources":["../../../../src/ui/gesture/use-doubletap-gesture.ts"],"mappings":";;;UAQiB,mCAAmC,KAAK;EACvD,SAAS,UAAU;;iBAGL,oBACd,aAAa,OAAO,uBACpB,UAAU"}
@@ -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 type { GestureProps } from '@videojs/core';\nimport { createDoubleTapGesture } 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 extends Pick<GestureProps, 'pointer' | 'region' | 'disabled'> {\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":";;;;;AAYA,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,10 +1,7 @@
1
- import { GesturePointerType, GestureRegion } from "@videojs/core/dom";
2
1
  import { RefObject } from "react";
2
+ import { GestureProps } from "@videojs/core";
3
3
  //#region src/ui/gesture/use-tap-gesture.d.ts
4
- interface UseTapGestureOptions {
5
- pointer?: GesturePointerType;
6
- region?: GestureRegion;
7
- disabled?: boolean;
4
+ interface UseTapGestureOptions extends Pick<GestureProps, 'pointer' | 'region' | 'disabled'> {
8
5
  target?: RefObject<HTMLElement | null>;
9
6
  }
10
7
  declare function useTapGesture(onActivate: (event: PointerEvent) => void, options?: UseTapGestureOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-tap-gesture.d.ts","names":[],"sources":["../../../../src/ui/gesture/use-tap-gesture.ts"],"mappings":";;;UASiB;EACf,UAAU;EACV,SAAS;EACT;EACA,SAAS,UAAU;;iBAGL,cAAc,aAAa,OAAO,uBAAuB,UAAU"}
1
+ {"version":3,"file":"use-tap-gesture.d.ts","names":[],"sources":["../../../../src/ui/gesture/use-tap-gesture.ts"],"mappings":";;;UAQiB,6BAA6B,KAAK;EACjD,SAAS,UAAU;;iBAGL,cAAc,aAAa,OAAO,uBAAuB,UAAU"}
@@ -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 type { GestureProps } from '@videojs/core';\nimport { createTapGesture } 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 extends Pick<GestureProps, 'pointer' | 'region' | 'disabled'> {\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":";;;;;AAYA,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 +1 @@
1
- {"version":3,"file":"create-radio-options-hook.d.ts","names":[],"sources":["../../../../src/ui/hooks/create-radio-options-hook.ts"],"mappings":";;;;KA6BY,sBAAsB,eAAe,eAAe,KAAK;EACnE;EACA"}
1
+ {"version":3,"file":"create-radio-options-hook.d.ts","names":[],"sources":["../../../../src/ui/hooks/create-radio-options-hook.ts"],"mappings":";;;;KA2BY,sBAAsB,eAAe,eAAe,KAAK;EACnE;EACA"}