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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/dist/default/i18n/context.js +0 -1
  2. package/dist/default/i18n/context.js.map +1 -1
  3. package/dist/default/i18n/create-i18n.js +0 -1
  4. package/dist/default/i18n/create-i18n.js.map +1 -1
  5. package/dist/default/media/audio.js +0 -1
  6. package/dist/default/media/audio.js.map +1 -1
  7. package/dist/default/media/video.js +0 -1
  8. package/dist/default/media/video.js.map +1 -1
  9. package/dist/default/player/container.js +0 -1
  10. package/dist/default/player/container.js.map +1 -1
  11. package/dist/default/player/context.js +0 -1
  12. package/dist/default/player/context.js.map +1 -1
  13. package/dist/default/player/create-player.js +0 -1
  14. package/dist/default/player/create-player.js.map +1 -1
  15. package/dist/default/player/popup-group-context.js +0 -1
  16. package/dist/default/player/popup-group-context.js.map +1 -1
  17. package/dist/default/presets/audio/minimal-skin.css +16 -19
  18. package/dist/default/presets/audio/minimal-skin.js +1 -0
  19. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  20. package/dist/default/presets/audio/minimal-skin.tailwind.js +1 -0
  21. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  22. package/dist/default/presets/audio/skin.css +27 -30
  23. package/dist/default/presets/audio/skin.js +1 -0
  24. package/dist/default/presets/audio/skin.js.map +1 -1
  25. package/dist/default/presets/audio/skin.tailwind.js +1 -0
  26. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  27. package/dist/default/presets/background/skin.js +1 -0
  28. package/dist/default/presets/background/skin.js.map +1 -1
  29. package/dist/default/presets/live-audio/minimal-skin.css +16 -19
  30. package/dist/default/presets/live-audio/minimal-skin.js +1 -0
  31. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
  32. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +1 -0
  33. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  34. package/dist/default/presets/live-audio/skin.css +27 -30
  35. package/dist/default/presets/live-audio/skin.js +1 -0
  36. package/dist/default/presets/live-audio/skin.js.map +1 -1
  37. package/dist/default/presets/live-audio/skin.tailwind.js +1 -0
  38. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
  39. package/dist/default/presets/live-video/minimal-skin.css +20 -19
  40. package/dist/default/presets/live-video/minimal-skin.js +1 -0
  41. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  42. package/dist/default/presets/live-video/minimal-skin.tailwind.js +1 -0
  43. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  44. package/dist/default/presets/live-video/skin.css +31 -30
  45. package/dist/default/presets/live-video/skin.js +1 -0
  46. package/dist/default/presets/live-video/skin.js.map +1 -1
  47. package/dist/default/presets/live-video/skin.tailwind.js +1 -0
  48. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  49. package/dist/default/presets/video/minimal-skin.css +20 -19
  50. package/dist/default/presets/video/minimal-skin.js +1 -0
  51. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  52. package/dist/default/presets/video/minimal-skin.tailwind.js +1 -0
  53. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  54. package/dist/default/presets/video/skin.css +31 -30
  55. package/dist/default/presets/video/skin.js +1 -0
  56. package/dist/default/presets/video/skin.js.map +1 -1
  57. package/dist/default/presets/video/skin.tailwind.js +1 -0
  58. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  59. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +6 -6
  60. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  61. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  62. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  63. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  64. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  65. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  66. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  67. package/dist/default/ui/airplay-button/airplay-button.js +0 -1
  68. package/dist/default/ui/airplay-button/airplay-button.js.map +1 -1
  69. package/dist/default/ui/alert-dialog/alert-dialog-close.js +0 -1
  70. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  71. package/dist/default/ui/alert-dialog/alert-dialog-description.js +0 -1
  72. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  73. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +0 -1
  74. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  75. package/dist/default/ui/alert-dialog/alert-dialog-root.js +0 -1
  76. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  77. package/dist/default/ui/alert-dialog/alert-dialog-title.js +0 -1
  78. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  79. package/dist/default/ui/alert-dialog/context.js +0 -1
  80. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  81. package/dist/default/ui/audio-track/use-audio-track-options.js +0 -1
  82. package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -1
  83. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js +0 -1
  84. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  85. package/dist/default/ui/buffering-indicator/buffering-indicator.js +0 -1
  86. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  87. package/dist/default/ui/captions-button/captions-button.js +0 -1
  88. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  89. package/dist/default/ui/captions-radio-group/captions-radio-group.js +0 -1
  90. package/dist/default/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  91. package/dist/default/ui/captions-radio-group/use-captions-options.js +0 -1
  92. package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -1
  93. package/dist/default/ui/cast-button/cast-button.js +0 -1
  94. package/dist/default/ui/cast-button/cast-button.js.map +1 -1
  95. package/dist/default/ui/controls/context.js +0 -1
  96. package/dist/default/ui/controls/context.js.map +1 -1
  97. package/dist/default/ui/controls/controls-group.js +0 -1
  98. package/dist/default/ui/controls/controls-group.js.map +1 -1
  99. package/dist/default/ui/controls/controls-root.js +0 -1
  100. package/dist/default/ui/controls/controls-root.js.map +1 -1
  101. package/dist/default/ui/create-context-part.js +0 -1
  102. package/dist/default/ui/create-context-part.js.map +1 -1
  103. package/dist/default/ui/create-media-button.js +0 -1
  104. package/dist/default/ui/create-media-button.js.map +1 -1
  105. package/dist/default/ui/error-dialog/context.js +0 -1
  106. package/dist/default/ui/error-dialog/context.js.map +1 -1
  107. package/dist/default/ui/error-dialog/error-dialog-close.js +0 -1
  108. package/dist/default/ui/error-dialog/error-dialog-close.js.map +1 -1
  109. package/dist/default/ui/error-dialog/error-dialog-description.js +0 -1
  110. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -1
  111. package/dist/default/ui/error-dialog/error-dialog-root.js +0 -1
  112. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -1
  113. package/dist/default/ui/error-dialog/error-dialog-title.js +0 -1
  114. package/dist/default/ui/error-dialog/error-dialog-title.js.map +1 -1
  115. package/dist/default/ui/fullscreen-button/fullscreen-button.js +0 -1
  116. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  117. package/dist/default/ui/gesture/gesture.js +0 -1
  118. package/dist/default/ui/gesture/gesture.js.map +1 -1
  119. package/dist/default/ui/gesture/use-doubletap-gesture.js +0 -1
  120. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  121. package/dist/default/ui/gesture/use-tap-gesture.js +0 -1
  122. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  123. package/dist/default/ui/hooks/create-radio-options-hook.js +0 -1
  124. package/dist/default/ui/hooks/create-radio-options-hook.js.map +1 -1
  125. package/dist/default/ui/hooks/use-button.js +0 -1
  126. package/dist/default/ui/hooks/use-button.js.map +1 -1
  127. package/dist/default/ui/hooks/use-positioned-state.js +0 -1
  128. package/dist/default/ui/hooks/use-positioned-state.js.map +1 -1
  129. package/dist/default/ui/hooks/use-slider.js +0 -1
  130. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  131. package/dist/default/ui/hotkey/hotkey.js +0 -1
  132. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  133. package/dist/default/ui/hotkey/use-hotkey-shortcut.js +0 -1
  134. package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  135. package/dist/default/ui/hotkey/use-hotkey.js +0 -1
  136. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
  137. package/dist/default/ui/input-indicator/use-indicator-visibility.js +0 -1
  138. package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  139. package/dist/default/ui/input-indicator/use-input-action-subscription.js +0 -1
  140. package/dist/default/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  141. package/dist/default/ui/input-indicator/use-input-indicator-root.js +0 -1
  142. package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  143. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js +0 -1
  144. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  145. package/dist/default/ui/live-button/live-button.js +0 -1
  146. package/dist/default/ui/live-button/live-button.js.map +1 -1
  147. package/dist/default/ui/menu/context.js +0 -1
  148. package/dist/default/ui/menu/context.js.map +1 -1
  149. package/dist/default/ui/menu/menu-checkbox-item.js +0 -1
  150. package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
  151. package/dist/default/ui/menu/menu-content.js +0 -1
  152. package/dist/default/ui/menu/menu-content.js.map +1 -1
  153. package/dist/default/ui/menu/menu-group-label.js +0 -1
  154. package/dist/default/ui/menu/menu-group-label.js.map +1 -1
  155. package/dist/default/ui/menu/menu-group.js +0 -1
  156. package/dist/default/ui/menu/menu-group.js.map +1 -1
  157. package/dist/default/ui/menu/menu-item-indicator.js +0 -1
  158. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  159. package/dist/default/ui/menu/menu-item.js +0 -1
  160. package/dist/default/ui/menu/menu-item.js.map +1 -1
  161. package/dist/default/ui/menu/menu-radio-group.js +0 -1
  162. package/dist/default/ui/menu/menu-radio-group.js.map +1 -1
  163. package/dist/default/ui/menu/menu-radio-item.js +0 -1
  164. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  165. package/dist/default/ui/menu/menu-root.js +0 -1
  166. package/dist/default/ui/menu/menu-root.js.map +1 -1
  167. package/dist/default/ui/menu/menu-separator.js +0 -1
  168. package/dist/default/ui/menu/menu-separator.js.map +1 -1
  169. package/dist/default/ui/menu/menu-trigger.js +26 -12
  170. package/dist/default/ui/menu/menu-trigger.js.map +1 -1
  171. package/dist/default/ui/menu/use-menu-group.js +0 -1
  172. package/dist/default/ui/menu/use-menu-group.js.map +1 -1
  173. package/dist/default/ui/mute-button/mute-button.js +0 -1
  174. package/dist/default/ui/mute-button/mute-button.js.map +1 -1
  175. package/dist/default/ui/pip-button/pip-button.js +0 -1
  176. package/dist/default/ui/pip-button/pip-button.js.map +1 -1
  177. package/dist/default/ui/play-button/play-button.js +0 -1
  178. package/dist/default/ui/play-button/play-button.js.map +1 -1
  179. package/dist/default/ui/playback-rate/use-playback-rate-options.js +0 -1
  180. package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  181. package/dist/default/ui/playback-rate-button/playback-rate-button.js +0 -1
  182. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  183. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js +0 -1
  184. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  185. package/dist/default/ui/popover/context.js +0 -1
  186. package/dist/default/ui/popover/context.js.map +1 -1
  187. package/dist/default/ui/popover/popover-arrow.js +0 -1
  188. package/dist/default/ui/popover/popover-arrow.js.map +1 -1
  189. package/dist/default/ui/popover/popover-popup.js +0 -1
  190. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  191. package/dist/default/ui/popover/popover-root.js +0 -1
  192. package/dist/default/ui/popover/popover-root.js.map +1 -1
  193. package/dist/default/ui/popover/popover-trigger.js +0 -1
  194. package/dist/default/ui/popover/popover-trigger.js.map +1 -1
  195. package/dist/default/ui/popover/use-popup-position.js +0 -1
  196. package/dist/default/ui/popover/use-popup-position.js.map +1 -1
  197. package/dist/default/ui/poster/poster.js +0 -1
  198. package/dist/default/ui/poster/poster.js.map +1 -1
  199. package/dist/default/ui/quality/use-quality-options.js +0 -1
  200. package/dist/default/ui/quality/use-quality-options.js.map +1 -1
  201. package/dist/default/ui/quality-radio-group/quality-radio-group.js +0 -1
  202. package/dist/default/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  203. package/dist/default/ui/seek-button/seek-button.js +0 -1
  204. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  205. package/dist/default/ui/seek-indicator/context.js +0 -1
  206. package/dist/default/ui/seek-indicator/context.js.map +1 -1
  207. package/dist/default/ui/seek-indicator/seek-indicator-root.js +0 -1
  208. package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  209. package/dist/default/ui/seek-indicator/seek-indicator-value.js +0 -1
  210. package/dist/default/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  211. package/dist/default/ui/slider/context.js +0 -1
  212. package/dist/default/ui/slider/context.js.map +1 -1
  213. package/dist/default/ui/slider/slider-buffer.js +0 -1
  214. package/dist/default/ui/slider/slider-buffer.js.map +1 -1
  215. package/dist/default/ui/slider/slider-fill.js +0 -1
  216. package/dist/default/ui/slider/slider-fill.js.map +1 -1
  217. package/dist/default/ui/slider/slider-preview.js +0 -1
  218. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  219. package/dist/default/ui/slider/slider-root.js +0 -1
  220. package/dist/default/ui/slider/slider-root.js.map +1 -1
  221. package/dist/default/ui/slider/slider-thumb.js +0 -1
  222. package/dist/default/ui/slider/slider-thumb.js.map +1 -1
  223. package/dist/default/ui/slider/slider-thumbnail.js +0 -1
  224. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  225. package/dist/default/ui/slider/slider-track.js +0 -1
  226. package/dist/default/ui/slider/slider-track.js.map +1 -1
  227. package/dist/default/ui/slider/slider-value.js +0 -1
  228. package/dist/default/ui/slider/slider-value.js.map +1 -1
  229. package/dist/default/ui/status-announcer/status-announcer.js +0 -1
  230. package/dist/default/ui/status-announcer/status-announcer.js.map +1 -1
  231. package/dist/default/ui/status-indicator/context.js +0 -1
  232. package/dist/default/ui/status-indicator/context.js.map +1 -1
  233. package/dist/default/ui/status-indicator/status-indicator-root.js +0 -1
  234. package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -1
  235. package/dist/default/ui/status-indicator/status-indicator-value.js +0 -1
  236. package/dist/default/ui/status-indicator/status-indicator-value.js.map +1 -1
  237. package/dist/default/ui/thumbnail/thumbnail.js +0 -1
  238. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  239. package/dist/default/ui/time/time-group.js +0 -1
  240. package/dist/default/ui/time/time-group.js.map +1 -1
  241. package/dist/default/ui/time/time-separator.js +0 -1
  242. package/dist/default/ui/time/time-separator.js.map +1 -1
  243. package/dist/default/ui/time/time-value.js +0 -1
  244. package/dist/default/ui/time/time-value.js.map +1 -1
  245. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js +0 -1
  246. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  247. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +0 -1
  248. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -1
  249. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js +0 -1
  250. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -1
  251. package/dist/default/ui/time-slider/time-slider-root.js +0 -1
  252. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  253. package/dist/default/ui/tooltip/context.js +0 -1
  254. package/dist/default/ui/tooltip/context.js.map +1 -1
  255. package/dist/default/ui/tooltip/group-context.js +0 -1
  256. package/dist/default/ui/tooltip/group-context.js.map +1 -1
  257. package/dist/default/ui/tooltip/tooltip-arrow.js +0 -1
  258. package/dist/default/ui/tooltip/tooltip-arrow.js.map +1 -1
  259. package/dist/default/ui/tooltip/tooltip-label.js +0 -1
  260. package/dist/default/ui/tooltip/tooltip-label.js.map +1 -1
  261. package/dist/default/ui/tooltip/tooltip-popup.js +0 -1
  262. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  263. package/dist/default/ui/tooltip/tooltip-provider.js +0 -1
  264. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  265. package/dist/default/ui/tooltip/tooltip-root.js +0 -1
  266. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  267. package/dist/default/ui/tooltip/tooltip-shortcut.js +0 -1
  268. package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -1
  269. package/dist/default/ui/tooltip/tooltip-trigger.js +0 -1
  270. package/dist/default/ui/tooltip/tooltip-trigger.js.map +1 -1
  271. package/dist/default/ui/volume-indicator/context.js +0 -1
  272. package/dist/default/ui/volume-indicator/context.js.map +1 -1
  273. package/dist/default/ui/volume-indicator/volume-indicator-fill.js +0 -1
  274. package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  275. package/dist/default/ui/volume-indicator/volume-indicator-root.js +0 -1
  276. package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  277. package/dist/default/ui/volume-indicator/volume-indicator-value.js +0 -1
  278. package/dist/default/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  279. package/dist/default/ui/volume-slider/volume-slider-root.js +0 -1
  280. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  281. package/dist/default/utils/merge-props.js +0 -1
  282. package/dist/default/utils/merge-props.js.map +1 -1
  283. package/dist/default/utils/use-attach-iframe.js +0 -1
  284. package/dist/default/utils/use-attach-iframe.js.map +1 -1
  285. package/dist/default/utils/use-attach-media.js +0 -1
  286. package/dist/default/utils/use-attach-media.js.map +1 -1
  287. package/dist/default/utils/use-composed-refs.js +0 -1
  288. package/dist/default/utils/use-composed-refs.js.map +1 -1
  289. package/dist/default/utils/use-destroy.js +0 -1
  290. package/dist/default/utils/use-destroy.js.map +1 -1
  291. package/dist/default/utils/use-force-render.js +0 -1
  292. package/dist/default/utils/use-force-render.js.map +1 -1
  293. package/dist/default/utils/use-latest-ref.js +0 -1
  294. package/dist/default/utils/use-latest-ref.js.map +1 -1
  295. package/dist/default/utils/use-media-component.js +0 -1
  296. package/dist/default/utils/use-media-component.js.map +1 -1
  297. package/dist/default/utils/use-media-instance.js +0 -1
  298. package/dist/default/utils/use-media-instance.js.map +1 -1
  299. package/dist/default/utils/use-render.js +0 -1
  300. package/dist/default/utils/use-render.js.map +1 -1
  301. package/dist/default/utils/use-safe-id.js +0 -1
  302. package/dist/default/utils/use-safe-id.js.map +1 -1
  303. package/dist/dev/i18n/context.d.ts.map +1 -1
  304. package/dist/dev/i18n/context.js +0 -1
  305. package/dist/dev/i18n/context.js.map +1 -1
  306. package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
  307. package/dist/dev/i18n/create-i18n.js +0 -1
  308. package/dist/dev/i18n/create-i18n.js.map +1 -1
  309. package/dist/dev/media/audio.d.ts.map +1 -1
  310. package/dist/dev/media/audio.js +0 -1
  311. package/dist/dev/media/audio.js.map +1 -1
  312. package/dist/dev/media/video.d.ts.map +1 -1
  313. package/dist/dev/media/video.js +0 -1
  314. package/dist/dev/media/video.js.map +1 -1
  315. package/dist/dev/player/container.d.ts.map +1 -1
  316. package/dist/dev/player/container.js +0 -1
  317. package/dist/dev/player/container.js.map +1 -1
  318. package/dist/dev/player/context.d.ts.map +1 -1
  319. package/dist/dev/player/context.js +0 -1
  320. package/dist/dev/player/context.js.map +1 -1
  321. package/dist/dev/player/create-player.d.ts.map +1 -1
  322. package/dist/dev/player/create-player.js +0 -1
  323. package/dist/dev/player/create-player.js.map +1 -1
  324. package/dist/dev/player/popup-group-context.js +0 -1
  325. package/dist/dev/player/popup-group-context.js.map +1 -1
  326. package/dist/dev/presets/audio/minimal-skin.css +16 -19
  327. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  328. package/dist/dev/presets/audio/minimal-skin.js +1 -0
  329. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  330. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  331. package/dist/dev/presets/audio/minimal-skin.tailwind.js +1 -0
  332. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  333. package/dist/dev/presets/audio/skin.css +27 -30
  334. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  335. package/dist/dev/presets/audio/skin.js +1 -0
  336. package/dist/dev/presets/audio/skin.js.map +1 -1
  337. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  338. package/dist/dev/presets/audio/skin.tailwind.js +1 -0
  339. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  340. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  341. package/dist/dev/presets/background/skin.js +1 -0
  342. package/dist/dev/presets/background/skin.js.map +1 -1
  343. package/dist/dev/presets/live-audio/minimal-skin.css +16 -19
  344. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
  345. package/dist/dev/presets/live-audio/minimal-skin.js +1 -0
  346. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
  347. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
  348. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +1 -0
  349. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  350. package/dist/dev/presets/live-audio/skin.css +27 -30
  351. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
  352. package/dist/dev/presets/live-audio/skin.js +1 -0
  353. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  354. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
  355. package/dist/dev/presets/live-audio/skin.tailwind.js +1 -0
  356. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
  357. package/dist/dev/presets/live-video/minimal-skin.css +20 -19
  358. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  359. package/dist/dev/presets/live-video/minimal-skin.js +1 -0
  360. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  361. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  362. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +1 -0
  363. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  364. package/dist/dev/presets/live-video/skin.css +31 -30
  365. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  366. package/dist/dev/presets/live-video/skin.js +1 -0
  367. package/dist/dev/presets/live-video/skin.js.map +1 -1
  368. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  369. package/dist/dev/presets/live-video/skin.tailwind.js +1 -0
  370. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  371. package/dist/dev/presets/video/minimal-skin.css +20 -19
  372. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  373. package/dist/dev/presets/video/minimal-skin.js +1 -0
  374. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  375. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  376. package/dist/dev/presets/video/minimal-skin.tailwind.js +1 -0
  377. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  378. package/dist/dev/presets/video/skin.css +31 -30
  379. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  380. package/dist/dev/presets/video/skin.js +1 -0
  381. package/dist/dev/presets/video/skin.js.map +1 -1
  382. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  383. package/dist/dev/presets/video/skin.tailwind.js +1 -0
  384. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  385. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +6 -6
  386. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  387. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  388. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  389. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  390. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  391. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  392. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  393. package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -1
  394. package/dist/dev/ui/airplay-button/airplay-button.js +0 -1
  395. package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -1
  396. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
  397. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +0 -1
  398. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  399. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
  400. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +0 -1
  401. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  402. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
  403. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +0 -1
  404. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  405. package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map +1 -1
  406. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +0 -1
  407. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  408. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
  409. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +0 -1
  410. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  411. package/dist/dev/ui/alert-dialog/context.d.ts.map +1 -1
  412. package/dist/dev/ui/alert-dialog/context.js +0 -1
  413. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  414. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +1 -1
  415. package/dist/dev/ui/audio-track/use-audio-track-options.js +0 -1
  416. package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -1
  417. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts.map +1 -1
  418. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js +0 -1
  419. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  420. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  421. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +0 -1
  422. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  423. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  424. package/dist/dev/ui/captions-button/captions-button.js +0 -1
  425. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  426. package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts.map +1 -1
  427. package/dist/dev/ui/captions-radio-group/captions-radio-group.js +0 -1
  428. package/dist/dev/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  429. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -1
  430. package/dist/dev/ui/captions-radio-group/use-captions-options.js +0 -1
  431. package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -1
  432. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -1
  433. package/dist/dev/ui/cast-button/cast-button.js +0 -1
  434. package/dist/dev/ui/cast-button/cast-button.js.map +1 -1
  435. package/dist/dev/ui/controls/context.js +0 -1
  436. package/dist/dev/ui/controls/context.js.map +1 -1
  437. package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
  438. package/dist/dev/ui/controls/controls-group.js +0 -1
  439. package/dist/dev/ui/controls/controls-group.js.map +1 -1
  440. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  441. package/dist/dev/ui/controls/controls-root.js +0 -1
  442. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  443. package/dist/dev/ui/create-context-part.js +0 -1
  444. package/dist/dev/ui/create-context-part.js.map +1 -1
  445. package/dist/dev/ui/create-media-button.js +0 -1
  446. package/dist/dev/ui/create-media-button.js.map +1 -1
  447. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -1
  448. package/dist/dev/ui/error-dialog/context.js +0 -1
  449. package/dist/dev/ui/error-dialog/context.js.map +1 -1
  450. package/dist/dev/ui/error-dialog/error-dialog-close.d.ts.map +1 -1
  451. package/dist/dev/ui/error-dialog/error-dialog-close.js +0 -1
  452. package/dist/dev/ui/error-dialog/error-dialog-close.js.map +1 -1
  453. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  454. package/dist/dev/ui/error-dialog/error-dialog-description.js +0 -1
  455. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -1
  456. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -1
  457. package/dist/dev/ui/error-dialog/error-dialog-root.js +0 -1
  458. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -1
  459. package/dist/dev/ui/error-dialog/error-dialog-title.d.ts.map +1 -1
  460. package/dist/dev/ui/error-dialog/error-dialog-title.js +0 -1
  461. package/dist/dev/ui/error-dialog/error-dialog-title.js.map +1 -1
  462. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  463. package/dist/dev/ui/fullscreen-button/fullscreen-button.js +0 -1
  464. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  465. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
  466. package/dist/dev/ui/gesture/gesture.js +0 -1
  467. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  468. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  469. package/dist/dev/ui/gesture/use-doubletap-gesture.js +0 -1
  470. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  471. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  472. package/dist/dev/ui/gesture/use-tap-gesture.js +0 -1
  473. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  474. package/dist/dev/ui/hooks/create-radio-options-hook.d.ts.map +1 -1
  475. package/dist/dev/ui/hooks/create-radio-options-hook.js +0 -1
  476. package/dist/dev/ui/hooks/create-radio-options-hook.js.map +1 -1
  477. package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
  478. package/dist/dev/ui/hooks/use-button.js +0 -1
  479. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  480. package/dist/dev/ui/hooks/use-positioned-state.js +0 -1
  481. package/dist/dev/ui/hooks/use-positioned-state.js.map +1 -1
  482. package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
  483. package/dist/dev/ui/hooks/use-slider.js +0 -1
  484. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  485. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  486. package/dist/dev/ui/hotkey/hotkey.js +0 -1
  487. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  488. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -1
  489. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +0 -1
  490. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  491. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -1
  492. package/dist/dev/ui/hotkey/use-hotkey.js +0 -1
  493. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
  494. package/dist/dev/ui/input-indicator/use-indicator-visibility.js +0 -1
  495. package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  496. package/dist/dev/ui/input-indicator/use-input-action-subscription.js +0 -1
  497. package/dist/dev/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  498. package/dist/dev/ui/input-indicator/use-input-indicator-root.js +0 -1
  499. package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  500. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js +0 -1
  501. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  502. package/dist/dev/ui/live-button/live-button.d.ts.map +1 -1
  503. package/dist/dev/ui/live-button/live-button.js +0 -1
  504. package/dist/dev/ui/live-button/live-button.js.map +1 -1
  505. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  506. package/dist/dev/ui/menu/context.js +0 -1
  507. package/dist/dev/ui/menu/context.js.map +1 -1
  508. package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -1
  509. package/dist/dev/ui/menu/menu-checkbox-item.js +0 -1
  510. package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -1
  511. package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
  512. package/dist/dev/ui/menu/menu-content.js +0 -1
  513. package/dist/dev/ui/menu/menu-content.js.map +1 -1
  514. package/dist/dev/ui/menu/menu-group-label.d.ts.map +1 -1
  515. package/dist/dev/ui/menu/menu-group-label.js +0 -1
  516. package/dist/dev/ui/menu/menu-group-label.js.map +1 -1
  517. package/dist/dev/ui/menu/menu-group.d.ts.map +1 -1
  518. package/dist/dev/ui/menu/menu-group.js +0 -1
  519. package/dist/dev/ui/menu/menu-group.js.map +1 -1
  520. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  521. package/dist/dev/ui/menu/menu-item-indicator.js +0 -1
  522. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  523. package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
  524. package/dist/dev/ui/menu/menu-item.js +0 -1
  525. package/dist/dev/ui/menu/menu-item.js.map +1 -1
  526. package/dist/dev/ui/menu/menu-radio-group.d.ts.map +1 -1
  527. package/dist/dev/ui/menu/menu-radio-group.js +0 -1
  528. package/dist/dev/ui/menu/menu-radio-group.js.map +1 -1
  529. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  530. package/dist/dev/ui/menu/menu-radio-item.js +0 -1
  531. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  532. package/dist/dev/ui/menu/menu-root.d.ts.map +1 -1
  533. package/dist/dev/ui/menu/menu-root.js +0 -1
  534. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  535. package/dist/dev/ui/menu/menu-separator.d.ts.map +1 -1
  536. package/dist/dev/ui/menu/menu-separator.js +0 -1
  537. package/dist/dev/ui/menu/menu-separator.js.map +1 -1
  538. package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
  539. package/dist/dev/ui/menu/menu-trigger.js +26 -12
  540. package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
  541. package/dist/dev/ui/menu/use-menu-group.js +0 -1
  542. package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
  543. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  544. package/dist/dev/ui/mute-button/mute-button.js +0 -1
  545. package/dist/dev/ui/mute-button/mute-button.js.map +1 -1
  546. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  547. package/dist/dev/ui/pip-button/pip-button.js +0 -1
  548. package/dist/dev/ui/pip-button/pip-button.js.map +1 -1
  549. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  550. package/dist/dev/ui/play-button/play-button.js +0 -1
  551. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  552. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -1
  553. package/dist/dev/ui/playback-rate/use-playback-rate-options.js +0 -1
  554. package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  555. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  556. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +0 -1
  557. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  558. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts.map +1 -1
  559. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js +0 -1
  560. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  561. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  562. package/dist/dev/ui/popover/context.js +0 -1
  563. package/dist/dev/ui/popover/context.js.map +1 -1
  564. package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
  565. package/dist/dev/ui/popover/popover-arrow.js +0 -1
  566. package/dist/dev/ui/popover/popover-arrow.js.map +1 -1
  567. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  568. package/dist/dev/ui/popover/popover-popup.js +0 -1
  569. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  570. package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
  571. package/dist/dev/ui/popover/popover-root.js +0 -1
  572. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  573. package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
  574. package/dist/dev/ui/popover/popover-trigger.js +0 -1
  575. package/dist/dev/ui/popover/popover-trigger.js.map +1 -1
  576. package/dist/dev/ui/popover/use-popup-position.js +0 -1
  577. package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
  578. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  579. package/dist/dev/ui/poster/poster.js +0 -1
  580. package/dist/dev/ui/poster/poster.js.map +1 -1
  581. package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -1
  582. package/dist/dev/ui/quality/use-quality-options.js +0 -1
  583. package/dist/dev/ui/quality/use-quality-options.js.map +1 -1
  584. package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts.map +1 -1
  585. package/dist/dev/ui/quality-radio-group/quality-radio-group.js +0 -1
  586. package/dist/dev/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  587. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  588. package/dist/dev/ui/seek-button/seek-button.js +0 -1
  589. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  590. package/dist/dev/ui/seek-indicator/context.js +0 -1
  591. package/dist/dev/ui/seek-indicator/context.js.map +1 -1
  592. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -1
  593. package/dist/dev/ui/seek-indicator/seek-indicator-root.js +0 -1
  594. package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  595. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map +1 -1
  596. package/dist/dev/ui/seek-indicator/seek-indicator-value.js +0 -1
  597. package/dist/dev/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  598. package/dist/dev/ui/slider/context.js +0 -1
  599. package/dist/dev/ui/slider/context.js.map +1 -1
  600. package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
  601. package/dist/dev/ui/slider/slider-buffer.js +0 -1
  602. package/dist/dev/ui/slider/slider-buffer.js.map +1 -1
  603. package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
  604. package/dist/dev/ui/slider/slider-fill.js +0 -1
  605. package/dist/dev/ui/slider/slider-fill.js.map +1 -1
  606. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  607. package/dist/dev/ui/slider/slider-preview.js +0 -1
  608. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  609. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  610. package/dist/dev/ui/slider/slider-root.js +0 -1
  611. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  612. package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
  613. package/dist/dev/ui/slider/slider-thumb.js +0 -1
  614. package/dist/dev/ui/slider/slider-thumb.js.map +1 -1
  615. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  616. package/dist/dev/ui/slider/slider-thumbnail.js +0 -1
  617. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  618. package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
  619. package/dist/dev/ui/slider/slider-track.js +0 -1
  620. package/dist/dev/ui/slider/slider-track.js.map +1 -1
  621. package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
  622. package/dist/dev/ui/slider/slider-value.js +0 -1
  623. package/dist/dev/ui/slider/slider-value.js.map +1 -1
  624. package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -1
  625. package/dist/dev/ui/status-announcer/status-announcer.js +0 -1
  626. package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -1
  627. package/dist/dev/ui/status-indicator/context.js +0 -1
  628. package/dist/dev/ui/status-indicator/context.js.map +1 -1
  629. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -1
  630. package/dist/dev/ui/status-indicator/status-indicator-root.js +0 -1
  631. package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -1
  632. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map +1 -1
  633. package/dist/dev/ui/status-indicator/status-indicator-value.js +0 -1
  634. package/dist/dev/ui/status-indicator/status-indicator-value.js.map +1 -1
  635. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  636. package/dist/dev/ui/thumbnail/thumbnail.js +0 -1
  637. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  638. package/dist/dev/ui/time/time-group.d.ts.map +1 -1
  639. package/dist/dev/ui/time/time-group.js +0 -1
  640. package/dist/dev/ui/time/time-group.js.map +1 -1
  641. package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
  642. package/dist/dev/ui/time/time-separator.js +0 -1
  643. package/dist/dev/ui/time/time-separator.js.map +1 -1
  644. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  645. package/dist/dev/ui/time/time-value.js +0 -1
  646. package/dist/dev/ui/time/time-value.js.map +1 -1
  647. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js +0 -1
  648. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  649. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.d.ts.map +1 -1
  650. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +0 -1
  651. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -1
  652. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.d.ts.map +1 -1
  653. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js +0 -1
  654. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -1
  655. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  656. package/dist/dev/ui/time-slider/time-slider-root.js +0 -1
  657. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  658. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  659. package/dist/dev/ui/tooltip/context.js +0 -1
  660. package/dist/dev/ui/tooltip/context.js.map +1 -1
  661. package/dist/dev/ui/tooltip/group-context.js +0 -1
  662. package/dist/dev/ui/tooltip/group-context.js.map +1 -1
  663. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
  664. package/dist/dev/ui/tooltip/tooltip-arrow.js +0 -1
  665. package/dist/dev/ui/tooltip/tooltip-arrow.js.map +1 -1
  666. package/dist/dev/ui/tooltip/tooltip-label.d.ts.map +1 -1
  667. package/dist/dev/ui/tooltip/tooltip-label.js +0 -1
  668. package/dist/dev/ui/tooltip/tooltip-label.js.map +1 -1
  669. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  670. package/dist/dev/ui/tooltip/tooltip-popup.js +0 -1
  671. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  672. package/dist/dev/ui/tooltip/tooltip-provider.d.ts.map +1 -1
  673. package/dist/dev/ui/tooltip/tooltip-provider.js +0 -1
  674. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  675. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  676. package/dist/dev/ui/tooltip/tooltip-root.js +0 -1
  677. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  678. package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -1
  679. package/dist/dev/ui/tooltip/tooltip-shortcut.js +0 -1
  680. package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -1
  681. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  682. package/dist/dev/ui/tooltip/tooltip-trigger.js +0 -1
  683. package/dist/dev/ui/tooltip/tooltip-trigger.js.map +1 -1
  684. package/dist/dev/ui/volume-indicator/context.js +0 -1
  685. package/dist/dev/ui/volume-indicator/context.js.map +1 -1
  686. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts.map +1 -1
  687. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +0 -1
  688. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  689. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
  690. package/dist/dev/ui/volume-indicator/volume-indicator-root.js +0 -1
  691. package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  692. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts.map +1 -1
  693. package/dist/dev/ui/volume-indicator/volume-indicator-value.js +0 -1
  694. package/dist/dev/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  695. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  696. package/dist/dev/ui/volume-slider/volume-slider-root.js +0 -1
  697. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  698. package/dist/dev/utils/merge-props.d.ts.map +1 -1
  699. package/dist/dev/utils/merge-props.js +0 -1
  700. package/dist/dev/utils/merge-props.js.map +1 -1
  701. package/dist/dev/utils/use-attach-iframe.js +0 -1
  702. package/dist/dev/utils/use-attach-iframe.js.map +1 -1
  703. package/dist/dev/utils/use-attach-media.d.ts.map +1 -1
  704. package/dist/dev/utils/use-attach-media.js +0 -1
  705. package/dist/dev/utils/use-attach-media.js.map +1 -1
  706. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -1
  707. package/dist/dev/utils/use-composed-refs.js +0 -1
  708. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  709. package/dist/dev/utils/use-destroy.d.ts.map +1 -1
  710. package/dist/dev/utils/use-destroy.js +0 -1
  711. package/dist/dev/utils/use-destroy.js.map +1 -1
  712. package/dist/dev/utils/use-force-render.js +0 -1
  713. package/dist/dev/utils/use-force-render.js.map +1 -1
  714. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -1
  715. package/dist/dev/utils/use-latest-ref.js +0 -1
  716. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  717. package/dist/dev/utils/use-media-component.d.ts.map +1 -1
  718. package/dist/dev/utils/use-media-component.js +0 -1
  719. package/dist/dev/utils/use-media-component.js.map +1 -1
  720. package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
  721. package/dist/dev/utils/use-media-instance.js +0 -1
  722. package/dist/dev/utils/use-media-instance.js.map +1 -1
  723. package/dist/dev/utils/use-render.d.ts.map +1 -1
  724. package/dist/dev/utils/use-render.js +0 -1
  725. package/dist/dev/utils/use-render.js.map +1 -1
  726. package/dist/dev/utils/use-safe-id.js +0 -1
  727. package/dist/dev/utils/use-safe-id.js.map +1 -1
  728. package/docs/README.md +1 -1
  729. package/docs/concepts/features.md +2 -2
  730. package/docs/concepts/media-sources.md +79 -1
  731. package/docs/concepts/skins.md +31 -30
  732. package/docs/how-to/build-your-own-component.md +1 -1
  733. package/docs/how-to/customize-skins.md +94 -98
  734. package/docs/how-to/migrate-from-media-chrome.md +412 -0
  735. package/docs/how-to/migrate-from-mux-player.md +551 -0
  736. package/docs/how-to/migrate-from-plyr.md +385 -0
  737. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  738. package/docs/llms.txt +9 -0
  739. package/docs/reference/feature-volume.md +4 -2
  740. package/docs/reference/mute-button.md +34 -0
  741. package/docs/reference/volume-slider.md +1 -1
  742. package/package.json +8 -8
@@ -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 { AirPlayButtonCore, AirPlayButtonDataAttrs } from "@videojs/core";
@@ -1 +1 @@
1
- {"version":3,"file":"airplay-button.js","names":[],"sources":["../../../../src/ui/airplay-button/airplay-button.tsx"],"sourcesContent":["'use client';\n\nimport { AirPlayButtonCore, AirPlayButtonDataAttrs } 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 AirPlayButtonProps\n extends UIComponentProps<'button', AirPlayButtonCore.State>,\n AirPlayButtonCore.Props {}\n\n/** A button that toggles AirPlay to a remote device. */\nexport const AirPlayButton = createMediaButton<AirPlayButtonCore, AirPlayButtonProps>({\n displayName: 'AirPlayButton',\n core: AirPlayButtonCore,\n stateAttrMap: AirPlayButtonDataAttrs,\n selector: selectRemotePlayback,\n action: (core, state) => core.toggle(state),\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace AirPlayButton {\n export type Props = AirPlayButtonProps;\n export type State = AirPlayButtonCore.State;\n}\n"],"mappings":";;;;;;AAaA,MAAa,gBAAgB,kBAAyD;CACpF,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":"airplay-button.js","names":[],"sources":["../../../../src/ui/airplay-button/airplay-button.tsx"],"sourcesContent":["import { AirPlayButtonCore, AirPlayButtonDataAttrs } 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 AirPlayButtonProps\n extends UIComponentProps<'button', AirPlayButtonCore.State>,\n AirPlayButtonCore.Props {}\n\n/** A button that toggles AirPlay to a remote device. */\nexport const AirPlayButton = createMediaButton<AirPlayButtonCore, AirPlayButtonProps>({\n displayName: 'AirPlayButton',\n core: AirPlayButtonCore,\n stateAttrMap: AirPlayButtonDataAttrs,\n selector: selectRemotePlayback,\n action: (core, state) => core.toggle(state),\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace AirPlayButton {\n export type Props = AirPlayButtonProps;\n export type State = AirPlayButtonCore.State;\n}\n"],"mappings":";;;;;AAWA,MAAa,gBAAgB,kBAAyD;CACpF,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-close.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-close.tsx"],"mappings":";;;UASiB,8BAA8B,2BAA2B,gBAAgB;cAE7E,kCAAgB,0BAAA,KAAA,gDAAA,cAAA;kBAsBZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
1
+ {"version":3,"file":"alert-dialog-close.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-close.tsx"],"mappings":";;;UAOiB,8BAA8B,2BAA2B,gBAAgB;cAE7E,kCAAgB,0BAAA,KAAA,gDAAA,cAAA;kBAsBZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../utils/use-render.js";
3
2
  import { useAlertDialogContext } from "./context.js";
4
3
  import { forwardRef, useCallback } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-close.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-close.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore } from '@videojs/core';\nimport { forwardRef, useCallback } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from './context';\n\nexport interface AlertDialogCloseProps extends UIComponentProps<'button', AlertDialogCore.State> {}\n\nexport const AlertDialogClose = forwardRef<HTMLButtonElement, AlertDialogCloseProps>(function AlertDialogClose(\n { render, className, style, disabled, ...elementProps },\n forwardedRef\n) {\n const { dialog, state } = useAlertDialogContext();\n\n const handleClick = useCallback(() => {\n if (disabled) return;\n dialog.close();\n }, [dialog, disabled]);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ type: 'button' as const, disabled, onClick: handleClick }, elementProps],\n }\n );\n});\n\nexport namespace AlertDialogClose {\n export type Props = AlertDialogCloseProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;AAWA,MAAa,mBAAmB,WAAqD,SAAS,iBAC5F,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,QAAQ,UAAU,sBAAsB;CAEhD,MAAM,cAAc,kBAAkB;EACpC,IAAI,UAAU;EACd,OAAO,MAAM;CACf,GAAG,CAAC,QAAQ,QAAQ,CAAC;CAErB,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,MAAM;GAAmB;GAAU,SAAS;EAAY,GAAG,YAAY;CACnF,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"alert-dialog-close.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-close.tsx"],"sourcesContent":["import type { AlertDialogCore } from '@videojs/core';\nimport { forwardRef, useCallback } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from './context';\n\nexport interface AlertDialogCloseProps extends UIComponentProps<'button', AlertDialogCore.State> {}\n\nexport const AlertDialogClose = forwardRef<HTMLButtonElement, AlertDialogCloseProps>(function AlertDialogClose(\n { render, className, style, disabled, ...elementProps },\n forwardedRef\n) {\n const { dialog, state } = useAlertDialogContext();\n\n const handleClick = useCallback(() => {\n if (disabled) return;\n dialog.close();\n }, [dialog, disabled]);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ type: 'button' as const, disabled, onClick: handleClick }, elementProps],\n }\n );\n});\n\nexport namespace AlertDialogClose {\n export type Props = AlertDialogCloseProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;AASA,MAAa,mBAAmB,WAAqD,SAAS,iBAC5F,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,QAAQ,UAAU,sBAAsB;CAEhD,MAAM,cAAc,kBAAkB;EACpC,IAAI,UAAU;EACd,OAAO,MAAM;CACf,GAAG,CAAC,QAAQ,QAAQ,CAAC;CAErB,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,MAAM;GAAmB;GAAU,SAAS;EAAY,GAAG,YAAY;CACnF,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-description.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-description.tsx"],"mappings":";;;UAQiB,oCAAoC,sBAAsB,gBAAgB;cAE9E,wCAAsB,0BAAA;kBAOlB;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
1
+ {"version":3,"file":"alert-dialog-description.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-description.tsx"],"mappings":";;;UAMiB,oCAAoC,sBAAsB,gBAAgB;cAE9E,wCAAsB,0BAAA;kBAOlB;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useAlertDialogContext } from "./context.js";
3
2
  import { createContextPart } from "../create-context-part.js";
4
3
  //#region src/ui/alert-dialog/alert-dialog-description.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-description.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-description.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useAlertDialogContext } from './context';\n\nexport interface AlertDialogDescriptionProps extends UIComponentProps<'p', AlertDialogCore.State> {}\n\nexport const AlertDialogDescription = createContextPart<AlertDialogDescriptionProps, AlertDialogCore.State>({\n displayName: 'AlertDialogDescription',\n tag: 'p',\n useContext: useAlertDialogContext,\n getProps: (state) => ({ id: state.descriptionId }),\n});\n\nexport namespace AlertDialogDescription {\n export type Props = AlertDialogDescriptionProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;AAUA,MAAa,yBAAyB,kBAAsE;CAC1G,aAAa;CACb,KAAK;CACL,YAAY;CACZ,WAAW,WAAW,EAAE,IAAI,MAAM,cAAc;AAClD,CAAC"}
1
+ {"version":3,"file":"alert-dialog-description.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-description.tsx"],"sourcesContent":["import type { AlertDialogCore } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useAlertDialogContext } from './context';\n\nexport interface AlertDialogDescriptionProps extends UIComponentProps<'p', AlertDialogCore.State> {}\n\nexport const AlertDialogDescription = createContextPart<AlertDialogDescriptionProps, AlertDialogCore.State>({\n displayName: 'AlertDialogDescription',\n tag: 'p',\n useContext: useAlertDialogContext,\n getProps: (state) => ({ id: state.descriptionId }),\n});\n\nexport namespace AlertDialogDescription {\n export type Props = AlertDialogDescriptionProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;AAQA,MAAa,yBAAyB,kBAAsE;CAC1G,aAAa;CACb,KAAK;CACL,YAAY;CACZ,WAAW,WAAW,EAAE,IAAI,MAAM,cAAc;AAClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-popup.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-popup.tsx"],"mappings":";;;UAUiB,8BAA8B,wBAAwB,gBAAgB;cAE1E,kCAAgB,0BAAA,KAAA,gDAAA,cAAA;kBA6BZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
1
+ {"version":3,"file":"alert-dialog-popup.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-popup.tsx"],"mappings":";;;UAQiB,8BAA8B,wBAAwB,gBAAgB;cAE1E,kCAAgB,0BAAA,KAAA,gDAAA,cAAA;kBA6BZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useComposedRefs } from "../../utils/use-composed-refs.js";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { useAlertDialogContext } from "./context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-popup.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-popup.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore } from '@videojs/core';\nimport { forwardRef, useCallback } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from './context';\n\nexport interface AlertDialogPopupProps extends UIComponentProps<'div', AlertDialogCore.State> {}\n\nexport const AlertDialogPopup = forwardRef<HTMLDivElement, AlertDialogPopupProps>(function AlertDialogPopup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { core, dialog, state, stateAttrMap } = useAlertDialogContext();\n\n const elementRef = useCallback(\n (el: HTMLDivElement | null) => {\n dialog.setElement(el);\n },\n [dialog]\n );\n\n const composedRef = useComposedRefs(forwardedRef, elementRef);\n\n if (!state.open) return null;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [{ tabIndex: -1, ...core.getAttrs(state) }, elementProps],\n }\n );\n});\n\nexport namespace AlertDialogPopup {\n export type Props = AlertDialogPopupProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;;AAYA,MAAa,mBAAmB,WAAkD,SAAS,iBACzF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,MAAM,QAAQ,OAAO,iBAAiB,sBAAsB;CASpE,MAAM,cAAc,gBAAgB,cAPjB,aAChB,OAA8B;EAC7B,OAAO,WAAW,EAAE;CACtB,GACA,CAAC,MAAM,CAGkD,CAAC;CAE5D,IAAI,CAAC,MAAM,MAAM,OAAO;CAExB,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,UAAU;GAAI,GAAG,KAAK,SAAS,KAAK;EAAE,GAAG,YAAY;CACjE,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"alert-dialog-popup.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-popup.tsx"],"sourcesContent":["import type { AlertDialogCore } from '@videojs/core';\nimport { forwardRef, useCallback } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from './context';\n\nexport interface AlertDialogPopupProps extends UIComponentProps<'div', AlertDialogCore.State> {}\n\nexport const AlertDialogPopup = forwardRef<HTMLDivElement, AlertDialogPopupProps>(function AlertDialogPopup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { core, dialog, state, stateAttrMap } = useAlertDialogContext();\n\n const elementRef = useCallback(\n (el: HTMLDivElement | null) => {\n dialog.setElement(el);\n },\n [dialog]\n );\n\n const composedRef = useComposedRefs(forwardedRef, elementRef);\n\n if (!state.open) return null;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [{ tabIndex: -1, ...core.getAttrs(state) }, elementProps],\n }\n );\n});\n\nexport namespace AlertDialogPopup {\n export type Props = AlertDialogPopupProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;AAUA,MAAa,mBAAmB,WAAkD,SAAS,iBACzF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,MAAM,QAAQ,OAAO,iBAAiB,sBAAsB;CASpE,MAAM,cAAc,gBAAgB,cAPjB,aAChB,OAA8B;EAC7B,OAAO,WAAW,EAAE;CACtB,GACA,CAAC,MAAM,CAGkD,CAAC;CAE5D,IAAI,CAAC,MAAM,MAAM,OAAO;CAExB,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,UAAU;GAAI,GAAG,KAAK,SAAS,KAAK;EAAE,GAAG,YAAY;CACjE,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-root.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-root.tsx"],"mappings":";;;UAaiB,6BAA6B;;EAE5C,gBAAgB;;EAEhB,wBAAwB;EACxB,WAAW;;iBAGG,kBACd,MAAM,gBACN,aACA,cAAc,kBACd,sBAAsB,0BACtB,YACC,uBAAuB;kBA2DT;OACH,QAAQ"}
1
+ {"version":3,"file":"alert-dialog-root.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-root.tsx"],"mappings":";;;UAWiB,6BAA6B;;EAE5C,gBAAgB;;EAEhB,wBAAwB;EACxB,WAAW;;iBAGG,kBACd,MAAM,gBACN,aACA,cAAc,kBACd,sBAAsB,0BACtB,YACC,uBAAuB;kBA2DT;OACH,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useLatestRef } from "../../utils/use-latest-ref.js";
3
2
  import { useDestroy } from "../../utils/use-destroy.js";
4
3
  import { AlertDialogContextProvider } from "./context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-root.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-root.tsx"],"sourcesContent":["'use client';\n\nimport { AlertDialogCore, AlertDialogDataAttrs, type AlertDialogProps } from '@videojs/core';\nimport { createAlertDialog, createTransition } from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { AlertDialogContextProvider } from './context';\n\nexport interface AlertDialogRootProps extends AlertDialogProps {\n /** Called when the open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function AlertDialogRoot({\n open: controlledOpen,\n defaultOpen = AlertDialogCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n children,\n}: AlertDialogRootProps): ReactNode {\n const [core] = useState(() => new AlertDialogCore());\n\n const isControlled = controlledOpen !== undefined;\n\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n\n const [dialog] = useState(() => {\n const instance = createAlertDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => {\n onOpenChangeRef.current?.(nextOpen);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n });\n\n if (!isControlled && defaultOpen) {\n instance.open();\n }\n\n return instance;\n });\n\n const titleId = useSafeId('alert-dialog-title');\n const descriptionId = useSafeId('alert-dialog-desc');\n\n core.setTitleId(titleId);\n core.setDescriptionId(descriptionId);\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (controlledOpen === undefined) return;\n\n const { active: inputOpen } = dialog.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n dialog.open();\n } else {\n dialog.close();\n }\n }, [controlledOpen, dialog]);\n\n useDestroy(dialog);\n\n const input = useSnapshot(dialog.input);\n core.setInput(input);\n const state = core.getState();\n\n return (\n <AlertDialogContextProvider value={{ core, dialog, state, stateAttrMap: AlertDialogDataAttrs }}>\n {children}\n </AlertDialogContextProvider>\n );\n}\n\nexport namespace AlertDialogRoot {\n export type Props = AlertDialogRootProps;\n}\n"],"mappings":";;;;;;;;;;;AAqBA,SAAgB,gBAAgB,EAC9B,MAAM,gBACN,cAAc,gBAAgB,aAAa,aAC3C,cAAc,kBACd,sBAAsB,0BACtB,YACkC;CAClC,MAAM,CAAC,QAAQ,eAAe,IAAI,gBAAgB,CAAC;CAEnD,MAAM,eAAe,mBAAmB,KAAA;CAExC,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CAErE,MAAM,CAAC,UAAU,eAAe;EAC9B,MAAM,WAAW,kBAAkB;GACjC,YAAY,iBAAiB;GAC7B,eAAe,aAAsB;IACnC,gBAAgB,UAAU,QAAQ;GACpC;GACA,uBAAuB,aAAsB;IAC3C,wBAAwB,UAAU,QAAQ;GAC5C;EACF,CAAC;EAED,IAAI,CAAC,gBAAgB,aACnB,SAAS,KAAK;EAGhB,OAAO;CACT,CAAC;CAED,MAAM,UAAU,UAAU,oBAAoB;CAC9C,MAAM,gBAAgB,UAAU,mBAAmB;CAEnD,KAAK,WAAW,OAAO;CACvB,KAAK,iBAAiB,aAAa;CAGnC,gBAAgB;EACd,IAAI,mBAAmB,KAAA,GAAW;EAElC,MAAM,EAAE,QAAQ,cAAc,OAAO,MAAM;EAC3C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBACF,OAAO,KAAK;OAEZ,OAAO,MAAM;CAEjB,GAAG,CAAC,gBAAgB,MAAM,CAAC;CAE3B,WAAW,MAAM;CAEjB,MAAM,QAAQ,YAAY,OAAO,KAAK;CACtC,KAAK,SAAS,KAAK;CAGnB,OACE,oBAAC,4BAAD;EAA4B,OAAO;GAAE;GAAM;GAAQ,OAHvC,KAAK,SAGsC;GAAG,cAAc;EAAqB;EAC1F;CACyB,CAAA;AAEhC"}
1
+ {"version":3,"file":"alert-dialog-root.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-root.tsx"],"sourcesContent":["import { AlertDialogCore, AlertDialogDataAttrs, type AlertDialogProps } from '@videojs/core';\nimport { createAlertDialog, createTransition } from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { AlertDialogContextProvider } from './context';\n\nexport interface AlertDialogRootProps extends AlertDialogProps {\n /** Called when the open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function AlertDialogRoot({\n open: controlledOpen,\n defaultOpen = AlertDialogCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n children,\n}: AlertDialogRootProps): ReactNode {\n const [core] = useState(() => new AlertDialogCore());\n\n const isControlled = controlledOpen !== undefined;\n\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n\n const [dialog] = useState(() => {\n const instance = createAlertDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => {\n onOpenChangeRef.current?.(nextOpen);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n });\n\n if (!isControlled && defaultOpen) {\n instance.open();\n }\n\n return instance;\n });\n\n const titleId = useSafeId('alert-dialog-title');\n const descriptionId = useSafeId('alert-dialog-desc');\n\n core.setTitleId(titleId);\n core.setDescriptionId(descriptionId);\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (controlledOpen === undefined) return;\n\n const { active: inputOpen } = dialog.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n dialog.open();\n } else {\n dialog.close();\n }\n }, [controlledOpen, dialog]);\n\n useDestroy(dialog);\n\n const input = useSnapshot(dialog.input);\n core.setInput(input);\n const state = core.getState();\n\n return (\n <AlertDialogContextProvider value={{ core, dialog, state, stateAttrMap: AlertDialogDataAttrs }}>\n {children}\n </AlertDialogContextProvider>\n );\n}\n\nexport namespace AlertDialogRoot {\n export type Props = AlertDialogRootProps;\n}\n"],"mappings":";;;;;;;;;;AAmBA,SAAgB,gBAAgB,EAC9B,MAAM,gBACN,cAAc,gBAAgB,aAAa,aAC3C,cAAc,kBACd,sBAAsB,0BACtB,YACkC;CAClC,MAAM,CAAC,QAAQ,eAAe,IAAI,gBAAgB,CAAC;CAEnD,MAAM,eAAe,mBAAmB,KAAA;CAExC,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CAErE,MAAM,CAAC,UAAU,eAAe;EAC9B,MAAM,WAAW,kBAAkB;GACjC,YAAY,iBAAiB;GAC7B,eAAe,aAAsB;IACnC,gBAAgB,UAAU,QAAQ;GACpC;GACA,uBAAuB,aAAsB;IAC3C,wBAAwB,UAAU,QAAQ;GAC5C;EACF,CAAC;EAED,IAAI,CAAC,gBAAgB,aACnB,SAAS,KAAK;EAGhB,OAAO;CACT,CAAC;CAED,MAAM,UAAU,UAAU,oBAAoB;CAC9C,MAAM,gBAAgB,UAAU,mBAAmB;CAEnD,KAAK,WAAW,OAAO;CACvB,KAAK,iBAAiB,aAAa;CAGnC,gBAAgB;EACd,IAAI,mBAAmB,KAAA,GAAW;EAElC,MAAM,EAAE,QAAQ,cAAc,OAAO,MAAM;EAC3C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBACF,OAAO,KAAK;OAEZ,OAAO,MAAM;CAEjB,GAAG,CAAC,gBAAgB,MAAM,CAAC;CAE3B,WAAW,MAAM;CAEjB,MAAM,QAAQ,YAAY,OAAO,KAAK;CACtC,KAAK,SAAS,KAAK;CAGnB,OACE,oBAAC,4BAAD;EAA4B,OAAO;GAAE;GAAM;GAAQ,OAHvC,KAAK,SAGsC;GAAG,cAAc;EAAqB;EAC1F;CACyB,CAAA;AAEhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-title.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-title.tsx"],"mappings":";;;UAQiB,8BAA8B,uBAAuB,gBAAgB;cAEzE,kCAAgB,0BAAA;kBAOZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
1
+ {"version":3,"file":"alert-dialog-title.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-title.tsx"],"mappings":";;;UAMiB,8BAA8B,uBAAuB,gBAAgB;cAEzE,kCAAgB,0BAAA;kBAOZ;OACH,QAAQ;OACR,QAAQ,gBAAgB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useAlertDialogContext } from "./context.js";
3
2
  import { createContextPart } from "../create-context-part.js";
4
3
  //#region src/ui/alert-dialog/alert-dialog-title.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-title.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-title.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useAlertDialogContext } from './context';\n\nexport interface AlertDialogTitleProps extends UIComponentProps<'h2', AlertDialogCore.State> {}\n\nexport const AlertDialogTitle = createContextPart<AlertDialogTitleProps, AlertDialogCore.State>({\n displayName: 'AlertDialogTitle',\n tag: 'h2',\n useContext: useAlertDialogContext,\n getProps: (state) => ({ id: state.titleId }),\n});\n\nexport namespace AlertDialogTitle {\n export type Props = AlertDialogTitleProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;AAUA,MAAa,mBAAmB,kBAAgE;CAC9F,aAAa;CACb,KAAK;CACL,YAAY;CACZ,WAAW,WAAW,EAAE,IAAI,MAAM,QAAQ;AAC5C,CAAC"}
1
+ {"version":3,"file":"alert-dialog-title.js","names":[],"sources":["../../../../src/ui/alert-dialog/alert-dialog-title.tsx"],"sourcesContent":["import type { AlertDialogCore } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useAlertDialogContext } from './context';\n\nexport interface AlertDialogTitleProps extends UIComponentProps<'h2', AlertDialogCore.State> {}\n\nexport const AlertDialogTitle = createContextPart<AlertDialogTitleProps, AlertDialogCore.State>({\n displayName: 'AlertDialogTitle',\n tag: 'h2',\n useContext: useAlertDialogContext,\n getProps: (state) => ({ id: state.titleId }),\n});\n\nexport namespace AlertDialogTitle {\n export type Props = AlertDialogTitleProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;AAQA,MAAa,mBAAmB,kBAAgE;CAC9F,aAAa;CACb,KAAK;CACL,YAAY;CACZ,WAAW,WAAW,EAAE,IAAI,MAAM,QAAQ;AAC5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/context.tsx"],"mappings":";;;UAMiB;EACf,MAAM;EACN,QAAQ;EACR,OAAO,gBAAgB;EACvB,cAAc,eAAa,gBAAgB;;iBAO7B,yBAAyB"}
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/alert-dialog/context.tsx"],"mappings":";;;UAIiB;EACf,MAAM;EACN,QAAQ;EACR,OAAO,gBAAgB;EACvB,cAAc,eAAa,gBAAgB;;iBAO7B,yBAAyB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createContext, useContext } from "react";
3
2
  //#region src/ui/alert-dialog/context.tsx
4
3
  const AlertDialogContext = createContext(null);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/alert-dialog/context.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore, StateAttrMap } from '@videojs/core';\nimport type { AlertDialogApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface AlertDialogContextValue {\n core: AlertDialogCore;\n dialog: AlertDialogApi;\n state: AlertDialogCore.State;\n stateAttrMap: StateAttrMap<AlertDialogCore.State>;\n}\n\nconst AlertDialogContext = createContext<AlertDialogContextValue | null>(null);\n\nexport const AlertDialogContextProvider = AlertDialogContext.Provider;\n\nexport function useAlertDialogContext(): AlertDialogContextValue {\n const ctx = useContext(AlertDialogContext);\n if (!ctx) throw new Error('AlertDialog compound components must be used within an AlertDialog.Root');\n return ctx;\n}\n"],"mappings":";;;AAaA,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/alert-dialog/context.tsx"],"sourcesContent":["import type { AlertDialogCore, StateAttrMap } from '@videojs/core';\nimport type { AlertDialogApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface AlertDialogContextValue {\n core: AlertDialogCore;\n dialog: AlertDialogApi;\n state: AlertDialogCore.State;\n stateAttrMap: StateAttrMap<AlertDialogCore.State>;\n}\n\nconst AlertDialogContext = createContext<AlertDialogContextValue | null>(null);\n\nexport const AlertDialogContextProvider = AlertDialogContext.Provider;\n\nexport function useAlertDialogContext(): AlertDialogContextValue {\n const ctx = useContext(AlertDialogContext);\n if (!ctx) throw new Error('AlertDialog compound components must be used within an AlertDialog.Root');\n return ctx;\n}\n"],"mappings":";;AAWA,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":"use-audio-track-options.d.ts","names":[],"sources":["../../../../src/ui/audio-track/use-audio-track-options.ts"],"mappings":";;;UAOiB,+BAA+B,yBAAyB;KAE7D,mBAAmB,sBAAsB;UAEpC;EACf,OAAO,yBAAyB;EAChC;EACA;EACA;EACA,SAAS;EACT;EACA;EACA,WAAW;;;;;;;;iBAgBG,qBAAqB,QAAQ,yBAAyB;kBAMrD;OACH,QAAQ;OACR,SAAS;OACT,SAAS"}
1
+ {"version":3,"file":"use-audio-track-options.d.ts","names":[],"sources":["../../../../src/ui/audio-track/use-audio-track-options.ts"],"mappings":";;;UAKiB,+BAA+B,yBAAyB;KAE7D,mBAAmB,sBAAsB;UAEpC;EACf,OAAO,yBAAyB;EAChC;EACA;EACA;EACA,SAAS;EACT;EACA;EACA,WAAW;;;;;;;;iBAgBG,qBAAqB,QAAQ,yBAAyB;kBAMrD;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 { selectAudioTrack } from "@videojs/core/dom";
4
3
  import { AudioTrackRadioGroupCore } from "@videojs/core";
@@ -1 +1 @@
1
- {"version":3,"file":"use-audio-track-options.js","names":[],"sources":["../../../../src/ui/audio-track/use-audio-track-options.ts"],"sourcesContent":["'use client';\n\nimport { AudioTrackRadioGroupCore, type AudioTrackRadioGroupOption } from '@videojs/core';\nimport { selectAudioTrack } from '@videojs/core/dom';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface AudioTrackOptionsProps extends AudioTrackRadioGroupCore.Props {}\n\nexport type AudioTrackOption = TranslatedRadioOption<AudioTrackRadioGroupOption>;\n\nexport interface AudioTrackOptionsResult {\n state: AudioTrackRadioGroupCore.State;\n label: string;\n value: string;\n selectedLabel: string;\n options: AudioTrackOption[];\n disabled: boolean;\n hidden: boolean;\n setValue: (value: string) => void;\n}\n\nconst useAudioTrackRadioOptions = createRadioOptionsHook({\n name: 'useAudioTrackOptions',\n feature: 'audioTrack',\n selector: selectAudioTrack,\n createCore: () => new AudioTrackRadioGroupCore(),\n});\n\n/**\n * Create audio track menu options from the player audio track state. Returns\n * `null` when the audio track feature is not configured.\n *\n * @param props - Optional `label`, `formatTrack`, and `disabled` overrides.\n */\nexport function useAudioTrackOptions(props?: AudioTrackOptionsProps): AudioTrackOptionsResult | null {\n 'use no memo';\n\n return useAudioTrackRadioOptions(props);\n}\n\nexport namespace useAudioTrackOptions {\n export type Props = AudioTrackOptionsProps;\n export type Result = AudioTrackOptionsResult;\n export type Option = AudioTrackOption;\n}\n"],"mappings":";;;;;AAsBA,MAAM,4BAA4B,uBAAuB;CACvD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAI,yBAAyB;AACjD,CAAC;;;;;;;AAQD,SAAgB,qBAAqB,OAAgE;CACnG;CAEA,OAAO,0BAA0B,KAAK;AACxC"}
1
+ {"version":3,"file":"use-audio-track-options.js","names":[],"sources":["../../../../src/ui/audio-track/use-audio-track-options.ts"],"sourcesContent":["import { AudioTrackRadioGroupCore, type AudioTrackRadioGroupOption } from '@videojs/core';\nimport { selectAudioTrack } from '@videojs/core/dom';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface AudioTrackOptionsProps extends AudioTrackRadioGroupCore.Props {}\n\nexport type AudioTrackOption = TranslatedRadioOption<AudioTrackRadioGroupOption>;\n\nexport interface AudioTrackOptionsResult {\n state: AudioTrackRadioGroupCore.State;\n label: string;\n value: string;\n selectedLabel: string;\n options: AudioTrackOption[];\n disabled: boolean;\n hidden: boolean;\n setValue: (value: string) => void;\n}\n\nconst useAudioTrackRadioOptions = createRadioOptionsHook({\n name: 'useAudioTrackOptions',\n feature: 'audioTrack',\n selector: selectAudioTrack,\n createCore: () => new AudioTrackRadioGroupCore(),\n});\n\n/**\n * Create audio track menu options from the player audio track state. Returns\n * `null` when the audio track feature is not configured.\n *\n * @param props - Optional `label`, `formatTrack`, and `disabled` overrides.\n */\nexport function useAudioTrackOptions(props?: AudioTrackOptionsProps): AudioTrackOptionsResult | null {\n 'use no memo';\n\n return useAudioTrackRadioOptions(props);\n}\n\nexport namespace useAudioTrackOptions {\n export type Props = AudioTrackOptionsProps;\n export type Result = AudioTrackOptionsResult;\n export type Option = AudioTrackOption;\n}\n"],"mappings":";;;;AAoBA,MAAM,4BAA4B,uBAAuB;CACvD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAI,yBAAyB;AACjD,CAAC;;;;;;;AAQD,SAAgB,qBAAqB,OAAgE;CACnG;CAEA,OAAO,0BAA0B,KAAK;AACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"audio-track-radio-group.d.ts","names":[],"sources":["../../../../src/ui/audio-track-radio-group/audio-track-radio-group.tsx"],"mappings":";;;;;;KAiBY,gCAAgC;;EAE1C;;UAGe,sCAAsC,KAAK;;EAE1D;;UAGe,kCACP,KAAK,wBAAwB,yBAAyB,qBAC5D;;EAEF,aAAa,OAAO,+BAA+B,OAAO,kCAAkC;;;;;;;;;;;;;;;;;cAkBjF,sCAAoB,0BAAA,KAAA,oDAAA,cAAA;kBAyDhB;OACH,QAAQ;OACR,QAAQ,yBAAyB;OACjC,YAAY;OACZ,YAAY"}
1
+ {"version":3,"file":"audio-track-radio-group.d.ts","names":[],"sources":["../../../../src/ui/audio-track-radio-group/audio-track-radio-group.tsx"],"mappings":";;;;;;KAeY,gCAAgC;;EAE1C;;UAGe,sCAAsC,KAAK;;EAE1D;;UAGe,kCACP,KAAK,wBAAwB,yBAAyB,qBAC5D;;EAEF,aAAa,OAAO,+BAA+B,OAAO,kCAAkC;;;;;;;;;;;;;;;;;cAkBjF,sCAAoB,0BAAA,KAAA,oDAAA,cAAA;kBAyDhB;OACH,QAAQ;OACR,QAAQ,yBAAyB;OACjC,YAAY;OACZ,YAAY"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useAudioTrackOptions } from "../audio-track/use-audio-track-options.js";
3
2
  import { MenuRadioGroup } from "../menu/menu-radio-group.js";
4
3
  import { getStateDataAttrs } from "@videojs/core/dom";
@@ -1 +1 @@
1
- {"version":3,"file":"audio-track-radio-group.js","names":[],"sources":["../../../../src/ui/audio-track-radio-group/audio-track-radio-group.tsx"],"sourcesContent":["'use client';\n\nimport { type AudioTrackRadioGroupCore, AudioTrackRadioGroupDataAttrs } 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 {\n type AudioTrackOption,\n type AudioTrackOptionsProps,\n useAudioTrackOptions,\n} from '../audio-track/use-audio-track-options';\nimport { MenuRadioGroup } from '../menu/menu-radio-group';\nimport type { MenuRadioItemProps } from '../menu/menu-radio-item';\n\nexport type AudioTrackRadioGroupItemState = AudioTrackOption & {\n /** Whether this option is the currently enabled audio track. */\n checked: boolean;\n};\n\nexport interface AudioTrackRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Audio track value represented by the option. */\n 'data-track': string;\n}\n\nexport interface AudioTrackRadioGroupProps\n extends Omit<UIComponentProps<'div', AudioTrackRadioGroupCore.State>, 'children'>,\n AudioTrackOptionsProps {\n /** Render one consumer-owned menu radio item for every audio track. */\n renderItem: (props: AudioTrackRadioGroupItemProps, state: AudioTrackRadioGroupItemState) => ReactElement;\n}\n\n/**\n * Renders menu radio options for the player's audio tracks.\n *\n * @example\n * ```tsx\n * <AudioTrackRadioGroup\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 AudioTrackRadioGroup = forwardRef<HTMLDivElement, AudioTrackRadioGroupProps>(\n function AudioTrackRadioGroup(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 audioTrack = useAudioTrackOptions({ label, formatTrack, disabled });\n if (!audioTrack) return null;\n\n const { state, value, options, setValue } = audioTrack;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? audioTrack.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, AudioTrackRadioGroupDataAttrs)}\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 AudioTrackRadioGroup {\n export type Props = AudioTrackRadioGroupProps;\n export type State = AudioTrackRadioGroupCore.State;\n export type ItemProps = AudioTrackRadioGroupItemProps;\n export type ItemState = AudioTrackRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAiDA,MAAa,uBAAuB,WAClC,SAAS,qBAAqB,gBAAgB,cAAc;CAC1D,MAAM,EACJ,YACA,QACA,WACA,OACA,OACA,aACA,UACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,aAAa,qBAAqB;EAAE;EAAO;EAAa;CAAS,CAAC;CACxE,IAAI,CAAC,YAAY,OAAO;CAExB,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,WAAW,QAAQ,KAAA;CAEtF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,6BAA6B;EAC1D,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":"audio-track-radio-group.js","names":[],"sources":["../../../../src/ui/audio-track-radio-group/audio-track-radio-group.tsx"],"sourcesContent":["import { type AudioTrackRadioGroupCore, AudioTrackRadioGroupDataAttrs } 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 {\n type AudioTrackOption,\n type AudioTrackOptionsProps,\n useAudioTrackOptions,\n} from '../audio-track/use-audio-track-options';\nimport { MenuRadioGroup } from '../menu/menu-radio-group';\nimport type { MenuRadioItemProps } from '../menu/menu-radio-item';\n\nexport type AudioTrackRadioGroupItemState = AudioTrackOption & {\n /** Whether this option is the currently enabled audio track. */\n checked: boolean;\n};\n\nexport interface AudioTrackRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Audio track value represented by the option. */\n 'data-track': string;\n}\n\nexport interface AudioTrackRadioGroupProps\n extends Omit<UIComponentProps<'div', AudioTrackRadioGroupCore.State>, 'children'>,\n AudioTrackOptionsProps {\n /** Render one consumer-owned menu radio item for every audio track. */\n renderItem: (props: AudioTrackRadioGroupItemProps, state: AudioTrackRadioGroupItemState) => ReactElement;\n}\n\n/**\n * Renders menu radio options for the player's audio tracks.\n *\n * @example\n * ```tsx\n * <AudioTrackRadioGroup\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 AudioTrackRadioGroup = forwardRef<HTMLDivElement, AudioTrackRadioGroupProps>(\n function AudioTrackRadioGroup(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 audioTrack = useAudioTrackOptions({ label, formatTrack, disabled });\n if (!audioTrack) return null;\n\n const { state, value, options, setValue } = audioTrack;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? audioTrack.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, AudioTrackRadioGroupDataAttrs)}\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 AudioTrackRadioGroup {\n export type Props = AudioTrackRadioGroupProps;\n export type State = AudioTrackRadioGroupCore.State;\n export type ItemProps = AudioTrackRadioGroupItemProps;\n export type ItemState = AudioTrackRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAa,uBAAuB,WAClC,SAAS,qBAAqB,gBAAgB,cAAc;CAC1D,MAAM,EACJ,YACA,QACA,WACA,OACA,OACA,aACA,UACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,aAAa,qBAAqB;EAAE;EAAO;EAAa;CAAS,CAAC;CACxE,IAAI,CAAC,YAAY,OAAO;CAExB,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,WAAW,QAAQ,KAAA;CAEtF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,6BAA6B;EAC1D,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":"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";