@videojs/react 10.0.0-beta.2 → 10.0.0-beta.22

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 (802) hide show
  1. package/dist/default/_virtual/_rolldown/runtime.js +6 -11
  2. package/dist/default/icons/dist/react/default/captions-off.js +1 -3
  3. package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
  4. package/dist/default/icons/dist/react/default/captions-on.js +1 -3
  5. package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
  6. package/dist/default/icons/dist/react/default/cast-enter.js +32 -0
  7. package/dist/default/icons/dist/react/default/cast-enter.js.map +1 -0
  8. package/dist/default/icons/dist/react/default/cast-exit.js +36 -0
  9. package/dist/default/icons/dist/react/default/cast-exit.js.map +1 -0
  10. package/dist/default/icons/dist/react/default/fullscreen-enter.js +1 -3
  11. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  12. package/dist/default/icons/dist/react/default/fullscreen-exit.js +1 -3
  13. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  14. package/dist/default/icons/dist/react/default/pause.js +1 -3
  15. package/dist/default/icons/dist/react/default/pause.js.map +1 -1
  16. package/dist/default/icons/dist/react/default/pip-enter.js +32 -0
  17. package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -0
  18. package/dist/default/icons/dist/react/default/pip-exit.js +32 -0
  19. package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -0
  20. package/dist/default/icons/dist/react/default/play.js +1 -3
  21. package/dist/default/icons/dist/react/default/play.js.map +1 -1
  22. package/dist/default/icons/dist/react/default/restart.js +1 -3
  23. package/dist/default/icons/dist/react/default/restart.js.map +1 -1
  24. package/dist/default/icons/dist/react/default/seek.js +1 -3
  25. package/dist/default/icons/dist/react/default/seek.js.map +1 -1
  26. package/dist/default/icons/dist/react/default/spinner.js +1 -3
  27. package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
  28. package/dist/default/icons/dist/react/default/volume-high.js +1 -3
  29. package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
  30. package/dist/default/icons/dist/react/default/volume-low.js +1 -3
  31. package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
  32. package/dist/default/icons/dist/react/default/volume-off.js +1 -3
  33. package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
  34. package/dist/default/icons/dist/react/minimal/captions-off.js +1 -3
  35. package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
  36. package/dist/default/icons/dist/react/minimal/captions-on.js +1 -3
  37. package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
  38. package/dist/default/icons/dist/react/minimal/cast-enter.js +28 -0
  39. package/dist/default/icons/dist/react/minimal/cast-enter.js.map +1 -0
  40. package/dist/default/icons/dist/react/minimal/cast-exit.js +32 -0
  41. package/dist/default/icons/dist/react/minimal/cast-exit.js.map +1 -0
  42. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +1 -3
  43. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  44. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +1 -3
  45. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  46. package/dist/default/icons/dist/react/minimal/pause.js +1 -3
  47. package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
  48. package/dist/default/icons/dist/react/minimal/pip-enter.js +36 -0
  49. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -0
  50. package/dist/default/icons/dist/react/minimal/pip-exit.js +36 -0
  51. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -0
  52. package/dist/default/icons/dist/react/minimal/play.js +1 -3
  53. package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
  54. package/dist/default/icons/dist/react/minimal/restart.js +1 -3
  55. package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
  56. package/dist/default/icons/dist/react/minimal/seek.js +1 -3
  57. package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
  58. package/dist/default/icons/dist/react/minimal/spinner.js +1 -3
  59. package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
  60. package/dist/default/icons/dist/react/minimal/volume-high.js +1 -3
  61. package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
  62. package/dist/default/icons/dist/react/minimal/volume-low.js +1 -3
  63. package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
  64. package/dist/default/icons/dist/react/minimal/volume-off.js +1 -3
  65. package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
  66. package/dist/default/index.js +26 -14
  67. package/dist/default/media/audio.js +5 -10
  68. package/dist/default/media/audio.js.map +1 -1
  69. package/dist/default/media/background-video/index.js +4 -6
  70. package/dist/default/media/background-video/index.js.map +1 -1
  71. package/dist/default/media/dash-video/index.js +21 -0
  72. package/dist/default/media/dash-video/index.js.map +1 -0
  73. package/dist/default/media/hls-video/index.js +8 -13
  74. package/dist/default/media/hls-video/index.js.map +1 -1
  75. package/dist/default/media/mux-audio/index.js +20 -0
  76. package/dist/default/media/mux-audio/index.js.map +1 -0
  77. package/dist/default/media/mux-video/index.js +21 -0
  78. package/dist/default/media/mux-video/index.js.map +1 -0
  79. package/dist/default/media/native-hls-video/index.js +21 -0
  80. package/dist/default/media/native-hls-video/index.js.map +1 -0
  81. package/dist/default/media/simple-hls-video/index.js +8 -12
  82. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  83. package/dist/default/media/video.js +5 -10
  84. package/dist/default/media/video.js.map +1 -1
  85. package/dist/default/player/context.js +27 -15
  86. package/dist/default/player/context.js.map +1 -1
  87. package/dist/default/player/create-player.js +18 -6
  88. package/dist/default/player/create-player.js.map +1 -1
  89. package/dist/default/presets/audio/index.js +1 -2
  90. package/dist/default/presets/audio/minimal-skin.css +293 -194
  91. package/dist/default/presets/audio/minimal-skin.js +144 -123
  92. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  93. package/dist/default/presets/audio/minimal-skin.tailwind.js +156 -137
  94. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  95. package/dist/default/presets/audio/skin.css +276 -186
  96. package/dist/default/presets/audio/skin.js +218 -126
  97. package/dist/default/presets/audio/skin.js.map +1 -1
  98. package/dist/default/presets/audio/skin.tailwind.js +166 -141
  99. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  100. package/dist/default/presets/background/index.js +1 -2
  101. package/dist/default/presets/background/skin.js +1 -2
  102. package/dist/default/presets/background/skin.js.map +1 -1
  103. package/dist/default/presets/video/index.js +1 -2
  104. package/dist/default/presets/video/minimal-skin.css +593 -340
  105. package/dist/default/presets/video/minimal-skin.js +149 -122
  106. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  107. package/dist/default/presets/video/minimal-skin.tailwind.js +160 -138
  108. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  109. package/dist/default/presets/video/skin.css +561 -323
  110. package/dist/default/presets/video/skin.js +310 -171
  111. package/dist/default/presets/video/skin.js.map +1 -1
  112. package/dist/default/presets/video/skin.tailwind.js +215 -186
  113. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  114. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +17 -32
  115. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  116. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  117. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  118. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  119. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  120. package/dist/default/skins/dist/default/default/tailwind/components/button.js +5 -5
  121. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  122. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +2 -3
  123. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  124. package/dist/default/skins/dist/default/default/tailwind/components/error.js +4 -5
  125. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  126. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -2
  127. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  128. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  129. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  130. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  131. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  132. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +5 -6
  133. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  134. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +15 -0
  135. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  136. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +12 -0
  137. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  138. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -3
  139. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  140. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +2 -3
  141. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  142. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +2 -3
  143. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  144. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +2 -3
  145. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  146. package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
  147. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  148. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +41 -25
  149. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  150. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +18 -27
  151. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  152. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  153. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  154. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  155. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  156. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +5 -5
  157. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  158. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  159. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  160. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +4 -5
  161. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  162. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  163. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  164. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  165. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  166. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +5 -5
  167. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  168. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +15 -0
  169. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  170. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +13 -0
  171. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  172. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  173. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  174. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +2 -3
  175. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  176. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  177. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  178. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  179. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  180. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +44 -23
  181. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  182. package/dist/{dev/skins/dist/default/default/tailwind/components → default/skins/dist/default/shared/tailwind}/icon-state.js +12 -2
  183. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  184. package/dist/default/ui/alert-dialog/alert-dialog-close.js +2 -4
  185. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  186. package/dist/default/ui/alert-dialog/alert-dialog-description.js +2 -4
  187. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  188. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +2 -4
  189. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  190. package/dist/default/ui/alert-dialog/alert-dialog-root.js +5 -7
  191. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  192. package/dist/default/ui/alert-dialog/alert-dialog-title.js +2 -4
  193. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  194. package/dist/default/ui/alert-dialog/context.js +2 -4
  195. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  196. package/dist/default/ui/alert-dialog/index.js +1 -2
  197. package/dist/default/ui/alert-dialog/index.parts.js +1 -2
  198. package/dist/default/ui/buffering-indicator/buffering-indicator.js +4 -4
  199. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  200. package/dist/default/ui/buffering-indicator/index.js +1 -2
  201. package/dist/default/ui/captions-button/captions-button.js +4 -5
  202. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  203. package/dist/default/ui/captions-button/index.js +1 -2
  204. package/dist/default/ui/cast-button/cast-button.js +17 -0
  205. package/dist/default/ui/cast-button/cast-button.js.map +1 -0
  206. package/dist/default/ui/cast-button/index.js +2 -0
  207. package/dist/default/ui/controls/context.js +2 -4
  208. package/dist/default/ui/controls/context.js.map +1 -1
  209. package/dist/default/ui/controls/controls-group.js +2 -4
  210. package/dist/default/ui/controls/controls-group.js.map +1 -1
  211. package/dist/default/ui/controls/controls-root.js +2 -4
  212. package/dist/default/ui/controls/controls-root.js.map +1 -1
  213. package/dist/default/ui/controls/index.js +1 -2
  214. package/dist/default/ui/controls/index.parts.js +1 -2
  215. package/dist/default/ui/create-context-part.js +2 -4
  216. package/dist/default/ui/create-context-part.js.map +1 -1
  217. package/dist/default/ui/create-media-button.js +22 -10
  218. package/dist/default/ui/create-media-button.js.map +1 -1
  219. package/dist/default/ui/error-dialog/context.js +14 -0
  220. package/dist/default/ui/error-dialog/context.js.map +1 -0
  221. package/dist/default/ui/error-dialog/error-dialog-description.js +28 -0
  222. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -0
  223. package/dist/default/ui/error-dialog/error-dialog-root.js +57 -0
  224. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -0
  225. package/dist/default/ui/error-dialog/index.js +3 -0
  226. package/dist/default/ui/error-dialog/index.parts.js +18 -0
  227. package/dist/default/ui/error-dialog/index.parts.js.map +1 -0
  228. package/dist/default/ui/fullscreen-button/fullscreen-button.js +4 -5
  229. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  230. package/dist/default/ui/fullscreen-button/index.js +1 -2
  231. package/dist/default/ui/gesture/media-gesture.js +42 -0
  232. package/dist/default/ui/gesture/media-gesture.js.map +1 -0
  233. package/dist/default/ui/gesture/use-doubletap-gesture.js +29 -0
  234. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -0
  235. package/dist/default/ui/gesture/use-tap-gesture.js +29 -0
  236. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -0
  237. package/dist/default/ui/hooks/use-button.js +2 -4
  238. package/dist/default/ui/hooks/use-button.js.map +1 -1
  239. package/dist/default/ui/hooks/use-slider.js +4 -6
  240. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  241. package/dist/default/ui/hotkey/media-hotkey.js +41 -0
  242. package/dist/default/ui/hotkey/media-hotkey.js.map +1 -0
  243. package/dist/default/ui/hotkey/use-aria-key-shortcuts.js +16 -0
  244. package/dist/default/ui/hotkey/use-aria-key-shortcuts.js.map +1 -0
  245. package/dist/default/ui/hotkey/use-hotkey.js +32 -0
  246. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -0
  247. package/dist/default/ui/mute-button/index.js +1 -2
  248. package/dist/default/ui/mute-button/mute-button.js +4 -5
  249. package/dist/default/ui/mute-button/mute-button.js.map +1 -1
  250. package/dist/default/ui/pip-button/index.js +1 -2
  251. package/dist/default/ui/pip-button/pip-button.js +4 -5
  252. package/dist/default/ui/pip-button/pip-button.js.map +1 -1
  253. package/dist/default/ui/play-button/index.js +1 -2
  254. package/dist/default/ui/play-button/play-button.js +4 -5
  255. package/dist/default/ui/play-button/play-button.js.map +1 -1
  256. package/dist/default/ui/playback-rate-button/index.js +1 -2
  257. package/dist/default/ui/playback-rate-button/playback-rate-button.js +2 -4
  258. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  259. package/dist/default/ui/popover/context.js +2 -4
  260. package/dist/default/ui/popover/context.js.map +1 -1
  261. package/dist/default/ui/popover/index.js +1 -2
  262. package/dist/default/ui/popover/index.parts.js +1 -2
  263. package/dist/default/ui/popover/popover-arrow.js +2 -4
  264. package/dist/default/ui/popover/popover-arrow.js.map +1 -1
  265. package/dist/default/ui/popover/popover-popup.js +13 -6
  266. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  267. package/dist/default/ui/popover/popover-root.js +4 -6
  268. package/dist/default/ui/popover/popover-root.js.map +1 -1
  269. package/dist/default/ui/popover/popover-trigger.js +2 -4
  270. package/dist/default/ui/popover/popover-trigger.js.map +1 -1
  271. package/dist/default/ui/poster/index.js +1 -2
  272. package/dist/default/ui/poster/poster.js +2 -4
  273. package/dist/default/ui/poster/poster.js.map +1 -1
  274. package/dist/default/ui/seek-button/index.js +1 -2
  275. package/dist/default/ui/seek-button/seek-button.js +2 -4
  276. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  277. package/dist/default/ui/slider/context.js +2 -4
  278. package/dist/default/ui/slider/context.js.map +1 -1
  279. package/dist/default/ui/slider/index.js +1 -2
  280. package/dist/default/ui/slider/index.parts.js +1 -2
  281. package/dist/default/ui/slider/slider-buffer.js +2 -4
  282. package/dist/default/ui/slider/slider-buffer.js.map +1 -1
  283. package/dist/default/ui/slider/slider-fill.js +2 -4
  284. package/dist/default/ui/slider/slider-fill.js.map +1 -1
  285. package/dist/default/ui/slider/slider-preview.js +2 -4
  286. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  287. package/dist/default/ui/slider/slider-root.js +2 -4
  288. package/dist/default/ui/slider/slider-root.js.map +1 -1
  289. package/dist/default/ui/slider/slider-thumb.js +2 -4
  290. package/dist/default/ui/slider/slider-thumb.js.map +1 -1
  291. package/dist/default/ui/slider/slider-thumbnail.js +2 -4
  292. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  293. package/dist/default/ui/slider/slider-track.js +2 -4
  294. package/dist/default/ui/slider/slider-track.js.map +1 -1
  295. package/dist/default/ui/slider/slider-value.js +2 -4
  296. package/dist/default/ui/slider/slider-value.js.map +1 -1
  297. package/dist/default/ui/thumbnail/index.js +2 -0
  298. package/dist/default/ui/thumbnail/thumbnail.js +3 -6
  299. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  300. package/dist/default/ui/time/index.js +1 -2
  301. package/dist/default/ui/time/index.parts.js +1 -2
  302. package/dist/default/ui/time/time-group.js +2 -4
  303. package/dist/default/ui/time/time-group.js.map +1 -1
  304. package/dist/default/ui/time/time-separator.js +2 -4
  305. package/dist/default/ui/time/time-separator.js.map +1 -1
  306. package/dist/default/ui/time/time-value.js +2 -4
  307. package/dist/default/ui/time/time-value.js.map +1 -1
  308. package/dist/default/ui/time-slider/index.js +1 -2
  309. package/dist/default/ui/time-slider/index.parts.js +1 -2
  310. package/dist/default/ui/time-slider/time-slider-root.js +6 -8
  311. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  312. package/dist/default/ui/tooltip/context.js +6 -5
  313. package/dist/default/ui/tooltip/context.js.map +1 -1
  314. package/dist/default/ui/tooltip/group-context.js +2 -4
  315. package/dist/default/ui/tooltip/group-context.js.map +1 -1
  316. package/dist/default/ui/tooltip/index.js +2 -3
  317. package/dist/default/ui/tooltip/index.parts.js +1 -2
  318. package/dist/default/ui/tooltip/tooltip-arrow.js +2 -4
  319. package/dist/default/ui/tooltip/tooltip-arrow.js.map +1 -1
  320. package/dist/default/ui/tooltip/tooltip-popup.js +15 -7
  321. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  322. package/dist/default/ui/tooltip/tooltip-provider.js +2 -4
  323. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  324. package/dist/default/ui/tooltip/tooltip-root.js +9 -7
  325. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  326. package/dist/default/ui/tooltip/tooltip-trigger.js +4 -9
  327. package/dist/default/ui/tooltip/tooltip-trigger.js.map +1 -1
  328. package/dist/default/ui/volume-slider/index.js +1 -2
  329. package/dist/default/ui/volume-slider/index.parts.js +1 -2
  330. package/dist/default/ui/volume-slider/volume-slider-root.js +36 -20
  331. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  332. package/dist/default/utils/attach-media-element.js +1 -1
  333. package/dist/default/utils/media-props.js +14 -6
  334. package/dist/default/utils/media-props.js.map +1 -1
  335. package/dist/default/utils/merge-props.js +2 -3
  336. package/dist/default/utils/merge-props.js.map +1 -1
  337. package/dist/default/utils/use-composed-refs.js +2 -4
  338. package/dist/default/utils/use-composed-refs.js.map +1 -1
  339. package/dist/default/utils/use-destroy.js +14 -8
  340. package/dist/default/utils/use-destroy.js.map +1 -1
  341. package/dist/default/utils/use-force-render.js +2 -4
  342. package/dist/default/utils/use-force-render.js.map +1 -1
  343. package/dist/default/utils/use-latest-ref.js +2 -4
  344. package/dist/default/utils/use-latest-ref.js.map +1 -1
  345. package/dist/default/utils/use-media-instance.js +22 -0
  346. package/dist/default/utils/use-media-instance.js.map +1 -0
  347. package/dist/default/utils/use-render.js +7 -5
  348. package/dist/default/utils/use-render.js.map +1 -1
  349. package/dist/default/utils/use-safe-id.js +3 -5
  350. package/dist/default/utils/use-safe-id.js.map +1 -1
  351. package/dist/dev/_virtual/_rolldown/runtime.js +6 -11
  352. package/dist/dev/icons/dist/react/default/captions-off.js +1 -3
  353. package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
  354. package/dist/dev/icons/dist/react/default/captions-on.js +1 -3
  355. package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
  356. package/dist/dev/icons/dist/react/default/cast-enter.js +32 -0
  357. package/dist/dev/icons/dist/react/default/cast-enter.js.map +1 -0
  358. package/dist/dev/icons/dist/react/default/cast-exit.js +36 -0
  359. package/dist/dev/icons/dist/react/default/cast-exit.js.map +1 -0
  360. package/dist/dev/icons/dist/react/default/fullscreen-enter.js +1 -3
  361. package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  362. package/dist/dev/icons/dist/react/default/fullscreen-exit.js +1 -3
  363. package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  364. package/dist/dev/icons/dist/react/default/pause.js +1 -3
  365. package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
  366. package/dist/dev/icons/dist/react/default/pip-enter.js +32 -0
  367. package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -0
  368. package/dist/dev/icons/dist/react/default/pip-exit.js +32 -0
  369. package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -0
  370. package/dist/dev/icons/dist/react/default/play.js +1 -3
  371. package/dist/dev/icons/dist/react/default/play.js.map +1 -1
  372. package/dist/dev/icons/dist/react/default/restart.js +1 -3
  373. package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
  374. package/dist/dev/icons/dist/react/default/seek.js +1 -3
  375. package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
  376. package/dist/dev/icons/dist/react/default/spinner.js +1 -3
  377. package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
  378. package/dist/dev/icons/dist/react/default/volume-high.js +1 -3
  379. package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
  380. package/dist/dev/icons/dist/react/default/volume-low.js +1 -3
  381. package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
  382. package/dist/dev/icons/dist/react/default/volume-off.js +1 -3
  383. package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
  384. package/dist/dev/icons/dist/react/minimal/captions-off.js +1 -3
  385. package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
  386. package/dist/dev/icons/dist/react/minimal/captions-on.js +1 -3
  387. package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
  388. package/dist/dev/icons/dist/react/minimal/cast-enter.js +28 -0
  389. package/dist/dev/icons/dist/react/minimal/cast-enter.js.map +1 -0
  390. package/dist/dev/icons/dist/react/minimal/cast-exit.js +32 -0
  391. package/dist/dev/icons/dist/react/minimal/cast-exit.js.map +1 -0
  392. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +1 -3
  393. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  394. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +1 -3
  395. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  396. package/dist/dev/icons/dist/react/minimal/pause.js +1 -3
  397. package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
  398. package/dist/dev/icons/dist/react/minimal/pip-enter.js +36 -0
  399. package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -0
  400. package/dist/dev/icons/dist/react/minimal/pip-exit.js +36 -0
  401. package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -0
  402. package/dist/dev/icons/dist/react/minimal/play.js +1 -3
  403. package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
  404. package/dist/dev/icons/dist/react/minimal/restart.js +1 -3
  405. package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
  406. package/dist/dev/icons/dist/react/minimal/seek.js +1 -3
  407. package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
  408. package/dist/dev/icons/dist/react/minimal/spinner.js +1 -3
  409. package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
  410. package/dist/dev/icons/dist/react/minimal/volume-high.js +1 -3
  411. package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
  412. package/dist/dev/icons/dist/react/minimal/volume-low.js +1 -3
  413. package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
  414. package/dist/dev/icons/dist/react/minimal/volume-off.js +1 -3
  415. package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
  416. package/dist/dev/index.d.ts +23 -8
  417. package/dist/dev/index.js +26 -14
  418. package/dist/dev/media/audio.d.ts.map +1 -1
  419. package/dist/dev/media/audio.js +5 -10
  420. package/dist/dev/media/audio.js.map +1 -1
  421. package/dist/dev/media/background-video/index.js +4 -6
  422. package/dist/dev/media/background-video/index.js.map +1 -1
  423. package/dist/dev/media/dash-video/index.d.ts +16 -0
  424. package/dist/dev/media/dash-video/index.d.ts.map +1 -0
  425. package/dist/dev/media/dash-video/index.js +21 -0
  426. package/dist/dev/media/dash-video/index.js.map +1 -0
  427. package/dist/dev/media/hls-video/index.d.ts +8 -3
  428. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  429. package/dist/dev/media/hls-video/index.js +8 -13
  430. package/dist/dev/media/hls-video/index.js.map +1 -1
  431. package/dist/dev/media/mux-audio/index.d.ts +13 -0
  432. package/dist/dev/media/mux-audio/index.d.ts.map +1 -0
  433. package/dist/dev/media/mux-audio/index.js +20 -0
  434. package/dist/dev/media/mux-audio/index.js.map +1 -0
  435. package/dist/dev/media/mux-video/index.d.ts +16 -0
  436. package/dist/dev/media/mux-video/index.d.ts.map +1 -0
  437. package/dist/dev/media/mux-video/index.js +21 -0
  438. package/dist/dev/media/mux-video/index.js.map +1 -0
  439. package/dist/dev/media/native-hls-video/index.d.ts +16 -0
  440. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -0
  441. package/dist/dev/media/native-hls-video/index.js +21 -0
  442. package/dist/dev/media/native-hls-video/index.js.map +1 -0
  443. package/dist/dev/media/simple-hls-video/index.d.ts +4 -1
  444. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  445. package/dist/dev/media/simple-hls-video/index.js +8 -12
  446. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  447. package/dist/dev/media/video.d.ts.map +1 -1
  448. package/dist/dev/media/video.js +5 -10
  449. package/dist/dev/media/video.js.map +1 -1
  450. package/dist/dev/player/context.d.ts +24 -7
  451. package/dist/dev/player/context.d.ts.map +1 -1
  452. package/dist/dev/player/context.js +27 -15
  453. package/dist/dev/player/context.js.map +1 -1
  454. package/dist/dev/player/create-player.js +18 -6
  455. package/dist/dev/player/create-player.js.map +1 -1
  456. package/dist/dev/presets/audio/index.js +1 -2
  457. package/dist/dev/presets/audio/minimal-skin.css +293 -194
  458. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  459. package/dist/dev/presets/audio/minimal-skin.js +144 -123
  460. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  461. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  462. package/dist/dev/presets/audio/minimal-skin.tailwind.js +156 -137
  463. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  464. package/dist/dev/presets/audio/skin.css +276 -186
  465. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  466. package/dist/dev/presets/audio/skin.js +218 -126
  467. package/dist/dev/presets/audio/skin.js.map +1 -1
  468. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  469. package/dist/dev/presets/audio/skin.tailwind.js +166 -141
  470. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  471. package/dist/dev/presets/background/index.js +1 -2
  472. package/dist/dev/presets/background/skin.js +1 -2
  473. package/dist/dev/presets/background/skin.js.map +1 -1
  474. package/dist/dev/presets/types.d.ts +6 -1
  475. package/dist/dev/presets/types.d.ts.map +1 -1
  476. package/dist/dev/presets/video/index.js +1 -2
  477. package/dist/dev/presets/video/minimal-skin.css +593 -340
  478. package/dist/dev/presets/video/minimal-skin.d.ts +2 -2
  479. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  480. package/dist/dev/presets/video/minimal-skin.js +149 -122
  481. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  482. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  483. package/dist/dev/presets/video/minimal-skin.tailwind.js +160 -138
  484. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  485. package/dist/dev/presets/video/skin.css +561 -323
  486. package/dist/dev/presets/video/skin.d.ts +2 -2
  487. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  488. package/dist/dev/presets/video/skin.js +310 -171
  489. package/dist/dev/presets/video/skin.js.map +1 -1
  490. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  491. package/dist/dev/presets/video/skin.tailwind.js +215 -186
  492. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  493. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +17 -32
  494. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  495. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  496. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  497. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  498. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  499. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +5 -5
  500. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  501. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +2 -3
  502. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  503. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +4 -5
  504. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  505. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -2
  506. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  507. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  508. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  509. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  510. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  511. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +5 -6
  512. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  513. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +15 -0
  514. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  515. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +12 -0
  516. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  517. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +2 -3
  518. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  519. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +2 -3
  520. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  521. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +2 -3
  522. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  523. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +2 -3
  524. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  525. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
  526. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  527. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +41 -25
  528. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  529. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +18 -27
  530. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  531. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  532. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  533. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  534. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  535. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +5 -5
  536. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  537. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  538. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  539. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +4 -5
  540. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  541. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  542. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  543. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  544. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  545. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +5 -5
  546. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  547. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +15 -0
  548. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  549. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +13 -0
  550. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  551. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  552. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  553. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +2 -3
  554. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  555. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  556. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  557. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  558. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  559. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +44 -23
  560. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  561. package/dist/{default/skins/dist/default/default/tailwind/components → dev/skins/dist/default/shared/tailwind}/icon-state.js +12 -2
  562. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  563. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +2 -4
  564. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  565. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +2 -4
  566. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  567. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +2 -4
  568. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  569. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +5 -7
  570. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  571. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +2 -4
  572. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  573. package/dist/dev/ui/alert-dialog/context.js +2 -4
  574. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  575. package/dist/dev/ui/alert-dialog/index.js +1 -2
  576. package/dist/dev/ui/alert-dialog/index.parts.js +1 -2
  577. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  578. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +4 -4
  579. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  580. package/dist/dev/ui/buffering-indicator/index.js +1 -2
  581. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  582. package/dist/dev/ui/captions-button/captions-button.js +4 -5
  583. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  584. package/dist/dev/ui/captions-button/index.js +1 -2
  585. package/dist/dev/ui/cast-button/cast-button.d.ts +15 -0
  586. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -0
  587. package/dist/dev/ui/cast-button/cast-button.js +17 -0
  588. package/dist/dev/ui/cast-button/cast-button.js.map +1 -0
  589. package/dist/dev/ui/cast-button/index.d.ts +2 -0
  590. package/dist/dev/ui/cast-button/index.js +2 -0
  591. package/dist/dev/ui/controls/context.js +2 -4
  592. package/dist/dev/ui/controls/context.js.map +1 -1
  593. package/dist/dev/ui/controls/controls-group.js +2 -4
  594. package/dist/dev/ui/controls/controls-group.js.map +1 -1
  595. package/dist/dev/ui/controls/controls-root.js +2 -4
  596. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  597. package/dist/dev/ui/controls/index.js +1 -2
  598. package/dist/dev/ui/controls/index.parts.js +1 -2
  599. package/dist/dev/ui/create-context-part.js +2 -4
  600. package/dist/dev/ui/create-context-part.js.map +1 -1
  601. package/dist/dev/ui/create-media-button.js +22 -10
  602. package/dist/dev/ui/create-media-button.js.map +1 -1
  603. package/dist/dev/ui/error-dialog/context.d.ts +10 -0
  604. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -0
  605. package/dist/dev/ui/error-dialog/context.js +14 -0
  606. package/dist/dev/ui/error-dialog/context.js.map +1 -0
  607. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +14 -0
  608. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -0
  609. package/dist/dev/ui/error-dialog/error-dialog-description.js +28 -0
  610. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -0
  611. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts +15 -0
  612. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -0
  613. package/dist/dev/ui/error-dialog/error-dialog-root.js +57 -0
  614. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -0
  615. package/dist/dev/ui/error-dialog/index.d.ts +3 -0
  616. package/dist/dev/ui/error-dialog/index.js +3 -0
  617. package/dist/dev/ui/error-dialog/index.parts.d.ts +13 -0
  618. package/dist/dev/ui/error-dialog/index.parts.d.ts.map +1 -0
  619. package/dist/dev/ui/error-dialog/index.parts.js +18 -0
  620. package/dist/dev/ui/error-dialog/index.parts.js.map +1 -0
  621. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  622. package/dist/dev/ui/fullscreen-button/fullscreen-button.js +4 -5
  623. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  624. package/dist/dev/ui/fullscreen-button/index.js +1 -2
  625. package/dist/dev/ui/gesture/media-gesture.d.ts +23 -0
  626. package/dist/dev/ui/gesture/media-gesture.d.ts.map +1 -0
  627. package/dist/dev/ui/gesture/media-gesture.js +42 -0
  628. package/dist/dev/ui/gesture/media-gesture.js.map +1 -0
  629. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +14 -0
  630. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -0
  631. package/dist/dev/ui/gesture/use-doubletap-gesture.js +29 -0
  632. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -0
  633. package/dist/dev/ui/gesture/use-tap-gesture.d.ts +14 -0
  634. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -0
  635. package/dist/dev/ui/gesture/use-tap-gesture.js +29 -0
  636. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -0
  637. package/dist/dev/ui/hooks/use-button.js +2 -4
  638. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  639. package/dist/dev/ui/hooks/use-slider.d.ts +1 -1
  640. package/dist/dev/ui/hooks/use-slider.js +4 -6
  641. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  642. package/dist/dev/ui/hotkey/media-hotkey.d.ts +21 -0
  643. package/dist/dev/ui/hotkey/media-hotkey.d.ts.map +1 -0
  644. package/dist/dev/ui/hotkey/media-hotkey.js +41 -0
  645. package/dist/dev/ui/hotkey/media-hotkey.js.map +1 -0
  646. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.d.ts +5 -0
  647. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.d.ts.map +1 -0
  648. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.js +16 -0
  649. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.js.map +1 -0
  650. package/dist/dev/ui/hotkey/use-hotkey.d.ts +12 -0
  651. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -0
  652. package/dist/dev/ui/hotkey/use-hotkey.js +32 -0
  653. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -0
  654. package/dist/dev/ui/mute-button/index.js +1 -2
  655. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  656. package/dist/dev/ui/mute-button/mute-button.js +4 -5
  657. package/dist/dev/ui/mute-button/mute-button.js.map +1 -1
  658. package/dist/dev/ui/pip-button/index.js +1 -2
  659. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  660. package/dist/dev/ui/pip-button/pip-button.js +4 -5
  661. package/dist/dev/ui/pip-button/pip-button.js.map +1 -1
  662. package/dist/dev/ui/play-button/index.js +1 -2
  663. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  664. package/dist/dev/ui/play-button/play-button.js +4 -5
  665. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  666. package/dist/dev/ui/playback-rate-button/index.js +1 -2
  667. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +2 -4
  668. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  669. package/dist/dev/ui/popover/context.js +2 -4
  670. package/dist/dev/ui/popover/context.js.map +1 -1
  671. package/dist/dev/ui/popover/index.js +1 -2
  672. package/dist/dev/ui/popover/index.parts.js +1 -2
  673. package/dist/dev/ui/popover/popover-arrow.js +2 -4
  674. package/dist/dev/ui/popover/popover-arrow.js.map +1 -1
  675. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  676. package/dist/dev/ui/popover/popover-popup.js +13 -6
  677. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  678. package/dist/dev/ui/popover/popover-root.js +4 -6
  679. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  680. package/dist/dev/ui/popover/popover-trigger.js +2 -4
  681. package/dist/dev/ui/popover/popover-trigger.js.map +1 -1
  682. package/dist/dev/ui/poster/index.js +1 -2
  683. package/dist/dev/ui/poster/poster.js +2 -4
  684. package/dist/dev/ui/poster/poster.js.map +1 -1
  685. package/dist/dev/ui/seek-button/index.js +1 -2
  686. package/dist/dev/ui/seek-button/seek-button.js +2 -4
  687. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  688. package/dist/dev/ui/slider/context.js +2 -4
  689. package/dist/dev/ui/slider/context.js.map +1 -1
  690. package/dist/dev/ui/slider/index.js +1 -2
  691. package/dist/dev/ui/slider/index.parts.js +1 -2
  692. package/dist/dev/ui/slider/slider-buffer.js +2 -4
  693. package/dist/dev/ui/slider/slider-buffer.js.map +1 -1
  694. package/dist/dev/ui/slider/slider-fill.js +2 -4
  695. package/dist/dev/ui/slider/slider-fill.js.map +1 -1
  696. package/dist/dev/ui/slider/slider-preview.js +2 -4
  697. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  698. package/dist/dev/ui/slider/slider-root.js +2 -4
  699. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  700. package/dist/dev/ui/slider/slider-thumb.js +2 -4
  701. package/dist/dev/ui/slider/slider-thumb.js.map +1 -1
  702. package/dist/dev/ui/slider/slider-thumbnail.js +2 -4
  703. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  704. package/dist/dev/ui/slider/slider-track.js +2 -4
  705. package/dist/dev/ui/slider/slider-track.js.map +1 -1
  706. package/dist/dev/ui/slider/slider-value.js +2 -4
  707. package/dist/dev/ui/slider/slider-value.js.map +1 -1
  708. package/dist/dev/ui/thumbnail/index.d.ts +2 -0
  709. package/dist/dev/ui/thumbnail/index.js +2 -0
  710. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  711. package/dist/dev/ui/thumbnail/thumbnail.js +3 -6
  712. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  713. package/dist/dev/ui/time/index.js +1 -2
  714. package/dist/dev/ui/time/index.parts.js +1 -2
  715. package/dist/dev/ui/time/time-group.js +2 -4
  716. package/dist/dev/ui/time/time-group.js.map +1 -1
  717. package/dist/dev/ui/time/time-separator.js +2 -4
  718. package/dist/dev/ui/time/time-separator.js.map +1 -1
  719. package/dist/dev/ui/time/time-value.js +2 -4
  720. package/dist/dev/ui/time/time-value.js.map +1 -1
  721. package/dist/dev/ui/time-slider/index.js +1 -2
  722. package/dist/dev/ui/time-slider/index.parts.js +1 -2
  723. package/dist/dev/ui/time-slider/time-slider-root.js +6 -8
  724. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  725. package/dist/dev/ui/tooltip/context.d.ts +4 -1
  726. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  727. package/dist/dev/ui/tooltip/context.js +6 -5
  728. package/dist/dev/ui/tooltip/context.js.map +1 -1
  729. package/dist/dev/ui/tooltip/group-context.js +2 -4
  730. package/dist/dev/ui/tooltip/group-context.js.map +1 -1
  731. package/dist/dev/ui/tooltip/index.d.ts +2 -2
  732. package/dist/dev/ui/tooltip/index.js +2 -3
  733. package/dist/dev/ui/tooltip/index.parts.js +1 -2
  734. package/dist/dev/ui/tooltip/tooltip-arrow.js +2 -4
  735. package/dist/dev/ui/tooltip/tooltip-arrow.js.map +1 -1
  736. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  737. package/dist/dev/ui/tooltip/tooltip-popup.js +15 -7
  738. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  739. package/dist/dev/ui/tooltip/tooltip-provider.js +2 -4
  740. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  741. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  742. package/dist/dev/ui/tooltip/tooltip-root.js +9 -7
  743. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  744. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  745. package/dist/dev/ui/tooltip/tooltip-trigger.js +4 -9
  746. package/dist/dev/ui/tooltip/tooltip-trigger.js.map +1 -1
  747. package/dist/dev/ui/volume-slider/index.js +1 -2
  748. package/dist/dev/ui/volume-slider/index.parts.js +1 -2
  749. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  750. package/dist/dev/ui/volume-slider/volume-slider-root.js +36 -20
  751. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  752. package/dist/dev/utils/attach-media-element.d.ts +9 -0
  753. package/dist/dev/utils/attach-media-element.d.ts.map +1 -0
  754. package/dist/dev/utils/attach-media-element.js +1 -1
  755. package/dist/dev/utils/media-props.d.ts +8 -0
  756. package/dist/dev/utils/media-props.d.ts.map +1 -0
  757. package/dist/dev/utils/media-props.js +14 -6
  758. package/dist/dev/utils/media-props.js.map +1 -1
  759. package/dist/dev/utils/merge-props.js +2 -3
  760. package/dist/dev/utils/merge-props.js.map +1 -1
  761. package/dist/dev/utils/use-composed-refs.d.ts +29 -0
  762. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -0
  763. package/dist/dev/utils/use-composed-refs.js +2 -4
  764. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  765. package/dist/dev/utils/use-destroy.d.ts +22 -0
  766. package/dist/dev/utils/use-destroy.d.ts.map +1 -0
  767. package/dist/dev/utils/use-destroy.js +14 -8
  768. package/dist/dev/utils/use-destroy.js.map +1 -1
  769. package/dist/dev/utils/use-force-render.js +2 -4
  770. package/dist/dev/utils/use-force-render.js.map +1 -1
  771. package/dist/dev/utils/use-latest-ref.d.ts +18 -0
  772. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -0
  773. package/dist/dev/utils/use-latest-ref.js +2 -4
  774. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  775. package/dist/dev/utils/use-media-instance.d.ts +16 -0
  776. package/dist/dev/utils/use-media-instance.d.ts.map +1 -0
  777. package/dist/dev/utils/use-media-instance.js +22 -0
  778. package/dist/dev/utils/use-media-instance.js.map +1 -0
  779. package/dist/dev/utils/use-render.d.ts.map +1 -1
  780. package/dist/dev/utils/use-render.js +7 -5
  781. package/dist/dev/utils/use-render.js.map +1 -1
  782. package/dist/dev/utils/use-safe-id.js +3 -5
  783. package/dist/dev/utils/use-safe-id.js.map +1 -1
  784. package/package.json +15 -15
  785. package/dist/default/icons/dist/react/default/pip.js +0 -27
  786. package/dist/default/icons/dist/react/default/pip.js.map +0 -1
  787. package/dist/default/icons/dist/react/minimal/pip.js +0 -27
  788. package/dist/default/icons/dist/react/minimal/pip.js.map +0 -1
  789. package/dist/default/presets/video/error-dialog.js +0 -51
  790. package/dist/default/presets/video/error-dialog.js.map +0 -1
  791. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  792. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  793. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  794. package/dist/dev/icons/dist/react/default/pip.js +0 -27
  795. package/dist/dev/icons/dist/react/default/pip.js.map +0 -1
  796. package/dist/dev/icons/dist/react/minimal/pip.js +0 -27
  797. package/dist/dev/icons/dist/react/minimal/pip.js.map +0 -1
  798. package/dist/dev/presets/video/error-dialog.js +0 -51
  799. package/dist/dev/presets/video/error-dialog.js.map +0 -1
  800. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  801. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  802. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
@@ -1,7 +1,6 @@
1
- 'use client';
2
-
1
+ "use client";
2
+ import { useLatestRef } from "./use-latest-ref.js";
3
3
  import { useEffect, useRef } from "react";
4
-
5
4
  //#region src/utils/use-destroy.ts
6
5
  /**
7
6
  * Destroy an instance on unmount, deferring destruction to survive React
@@ -14,20 +13,27 @@ import { useEffect, useRef } from "react";
14
13
  * @param instance - Object with a `destroy()` method.
15
14
  * @param setup - Optional setup called on first mount. Skipped on StrictMode
16
15
  * re-mount since the previous setup was never torn down.
16
+ * @param teardown - Optional teardown called right before `destroy()` on real
17
+ * unmount. Skipped on StrictMode simulated unmount.
17
18
  */
18
- function useDestroy(instance, setup) {
19
+ function useDestroy(instance, setup, teardown) {
19
20
  const pendingRef = useRef(null);
21
+ const setupRef = useLatestRef(setup);
22
+ const teardownRef = useLatestRef(teardown);
20
23
  useEffect(() => {
21
24
  if (pendingRef.current !== null) {
22
25
  clearTimeout(pendingRef.current);
23
26
  pendingRef.current = null;
24
- } else setup?.();
27
+ } else setupRef.current?.();
25
28
  return () => {
26
- pendingRef.current = setTimeout(() => instance.destroy(), 0);
29
+ pendingRef.current = setTimeout(() => {
30
+ teardownRef.current?.();
31
+ instance.destroy();
32
+ }, 0);
27
33
  };
28
- }, [instance, setup]);
34
+ }, [instance]);
29
35
  }
30
-
31
36
  //#endregion
32
37
  export { useDestroy };
38
+
33
39
  //# sourceMappingURL=use-destroy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-destroy.js","names":[],"sources":["../../../src/utils/use-destroy.ts"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef } from 'react';\n\ninterface Destroyable {\n destroy(): void;\n}\n\n/**\n * Destroy an instance on unmount, deferring destruction to survive React\n * StrictMode's simulated unmount/re-mount cycle.\n *\n * StrictMode runs effects, then immediately runs cleanup, then re-runs\n * effects — all synchronously. By deferring `destroy()` to a macrotask,\n * the re-mount effect can cancel it before it fires.\n *\n * @param instance - Object with a `destroy()` method.\n * @param setup - Optional setup called on first mount. Skipped on StrictMode\n * re-mount since the previous setup was never torn down.\n */\nexport function useDestroy(instance: Destroyable, setup?: () => void): void {\n const pendingRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (pendingRef.current !== null) {\n clearTimeout(pendingRef.current);\n pendingRef.current = null;\n } else {\n setup?.();\n }\n\n return () => {\n pendingRef.current = setTimeout(() => instance.destroy(), 0);\n };\n }, [instance, setup]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,SAAgB,WAAW,UAAuB,OAA0B;CAC1E,MAAM,aAAa,OAA6C,KAAK;AAErE,iBAAgB;AACd,MAAI,WAAW,YAAY,MAAM;AAC/B,gBAAa,WAAW,QAAQ;AAChC,cAAW,UAAU;QAErB,UAAS;AAGX,eAAa;AACX,cAAW,UAAU,iBAAiB,SAAS,SAAS,EAAE,EAAE;;IAE7D,CAAC,UAAU,MAAM,CAAC"}
1
+ {"version":3,"file":"use-destroy.js","names":[],"sources":["../../../src/utils/use-destroy.ts"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef } from 'react';\n\nimport { useLatestRef } from './use-latest-ref';\n\ninterface Destroyable {\n destroy(): void;\n}\n\n/**\n * Destroy an instance on unmount, deferring destruction to survive React\n * StrictMode's simulated unmount/re-mount cycle.\n *\n * StrictMode runs effects, then immediately runs cleanup, then re-runs\n * effects — all synchronously. By deferring `destroy()` to a macrotask,\n * the re-mount effect can cancel it before it fires.\n *\n * @param instance - Object with a `destroy()` method.\n * @param setup - Optional setup called on first mount. Skipped on StrictMode\n * re-mount since the previous setup was never torn down.\n * @param teardown - Optional teardown called right before `destroy()` on real\n * unmount. Skipped on StrictMode simulated unmount.\n */\nexport function useDestroy(instance: Destroyable, setup?: () => void, teardown?: () => void): void {\n const pendingRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const setupRef = useLatestRef(setup);\n const teardownRef = useLatestRef(teardown);\n\n useEffect(() => {\n if (pendingRef.current !== null) {\n clearTimeout(pendingRef.current);\n pendingRef.current = null;\n } else {\n setupRef.current?.();\n }\n\n return () => {\n pendingRef.current = setTimeout(() => {\n teardownRef.current?.();\n instance.destroy();\n }, 0);\n };\n }, [instance]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAwBA,SAAgB,WAAW,UAAuB,OAAoB,UAA6B;CACjG,MAAM,aAAa,OAA6C,KAAK;CACrE,MAAM,WAAW,aAAa,MAAM;CACpC,MAAM,cAAc,aAAa,SAAS;AAE1C,iBAAgB;AACd,MAAI,WAAW,YAAY,MAAM;AAC/B,gBAAa,WAAW,QAAQ;AAChC,cAAW,UAAU;QAErB,UAAS,WAAW;AAGtB,eAAa;AACX,cAAW,UAAU,iBAAiB;AACpC,gBAAY,WAAW;AACvB,aAAS,SAAS;MACjB,EAAE;;IAEN,CAAC,SAAS,CAAC"}
@@ -1,13 +1,11 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useReducer } from "react";
4
-
5
3
  //#region src/utils/use-force-render.ts
6
4
  function useForceRender() {
7
5
  const [, forceRender] = useReducer((c) => c + 1, 0);
8
6
  return forceRender;
9
7
  }
10
-
11
8
  //#endregion
12
9
  export { useForceRender };
10
+
13
11
  //# sourceMappingURL=use-force-render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-force-render.js","names":[],"sources":["../../../src/utils/use-force-render.ts"],"sourcesContent":["'use client';\n\nimport { useReducer } from 'react';\n\nexport function useForceRender() {\n const [, forceRender] = useReducer((c: number) => c + 1, 0);\n return forceRender;\n}\n\nexport namespace useForceRender {\n export type Result = () => void;\n}\n"],"mappings":";;;;;AAIA,SAAgB,iBAAiB;CAC/B,MAAM,GAAG,eAAe,YAAY,MAAc,IAAI,GAAG,EAAE;AAC3D,QAAO"}
1
+ {"version":3,"file":"use-force-render.js","names":[],"sources":["../../../src/utils/use-force-render.ts"],"sourcesContent":["'use client';\n\nimport { useReducer } from 'react';\n\nexport function useForceRender() {\n const [, forceRender] = useReducer((c: number) => c + 1, 0);\n return forceRender;\n}\n\nexport namespace useForceRender {\n export type Result = () => void;\n}\n"],"mappings":";;;AAIA,SAAgB,iBAAiB;CAC/B,MAAM,GAAG,eAAe,YAAY,MAAc,IAAI,GAAG,EAAE;AAC3D,QAAO"}
@@ -0,0 +1,18 @@
1
+ //#region src/utils/use-latest-ref.d.ts
2
+ /**
3
+ * Keep a ref that always points to the latest value.
4
+ *
5
+ * Useful for capturing callbacks or derived values inside closures
6
+ * that are created once (e.g. factory callbacks) without stale reads.
7
+ */
8
+ declare function useLatestRef<Value>(value: Value): Readonly<{
9
+ current: Value;
10
+ }>;
11
+ declare namespace useLatestRef {
12
+ type Result<Value> = Readonly<{
13
+ current: Value;
14
+ }>;
15
+ }
16
+ //#endregion
17
+ export { useLatestRef };
18
+ //# sourceMappingURL=use-latest-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-latest-ref.d.ts","names":[],"sources":["../../../src/utils/use-latest-ref.ts"],"mappings":";;AAUA;;;;;iBAAgB,YAAA,OAAA,CAAoB,KAAA,EAAO,KAAA,GAAQ,QAAA;EAAW,OAAA,EAAS,KAAA;AAAA;AAAA,kBAMtD,YAAA;EAAA,KACH,MAAA,UAAgB,QAAA;IAAW,OAAA,EAAS,KAAA;EAAA;AAAA"}
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useRef } from "react";
4
-
5
3
  //#region src/utils/use-latest-ref.ts
6
4
  /**
7
5
  * Keep a ref that always points to the latest value.
@@ -14,7 +12,7 @@ function useLatestRef(value) {
14
12
  ref.current = value;
15
13
  return ref;
16
14
  }
17
-
18
15
  //#endregion
19
16
  export { useLatestRef };
17
+
20
18
  //# sourceMappingURL=use-latest-ref.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-latest-ref.js","names":[],"sources":["../../../src/utils/use-latest-ref.ts"],"sourcesContent":["'use client';\n\nimport { useRef } from 'react';\n\n/**\n * Keep a ref that always points to the latest value.\n *\n * Useful for capturing callbacks or derived values inside closures\n * that are created once (e.g. factory callbacks) without stale reads.\n */\nexport function useLatestRef<Value>(value: Value): Readonly<{ current: Value }> {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\n\nexport namespace useLatestRef {\n export type Result<Value> = Readonly<{ current: Value }>;\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAgB,aAAoB,OAA4C;CAC9E,MAAM,MAAM,OAAO,MAAM;AACzB,KAAI,UAAU;AACd,QAAO"}
1
+ {"version":3,"file":"use-latest-ref.js","names":[],"sources":["../../../src/utils/use-latest-ref.ts"],"sourcesContent":["'use client';\n\nimport { useRef } from 'react';\n\n/**\n * Keep a ref that always points to the latest value.\n *\n * Useful for capturing callbacks or derived values inside closures\n * that are created once (e.g. factory callbacks) without stale reads.\n */\nexport function useLatestRef<Value>(value: Value): Readonly<{ current: Value }> {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\n\nexport namespace useLatestRef {\n export type Result<Value> = Readonly<{ current: Value }>;\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,aAAoB,OAA4C;CAC9E,MAAM,MAAM,OAAO,MAAM;AACzB,KAAI,UAAU;AACd,QAAO"}
@@ -0,0 +1,16 @@
1
+ import { Media } from "@videojs/core";
2
+
3
+ //#region src/utils/use-media-instance.d.ts
4
+ /**
5
+ * Create and manage a media instance lifecycle within a player context.
6
+ *
7
+ * Instantiates the media class once, attaches it to the player on mount,
8
+ * and safely detaches on unmount using a functional updater to avoid race
9
+ * conditions when swapping media components (e.g. DashVideo → HlsVideo).
10
+ */
11
+ declare function useMediaInstance<Instance extends Media & {
12
+ destroy(): void;
13
+ }>(MediaClass: new () => Instance): Instance;
14
+ //#endregion
15
+ export { useMediaInstance };
16
+ //# sourceMappingURL=use-media-instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-media-instance.d.ts","names":[],"sources":["../../../src/utils/use-media-instance.ts"],"mappings":";;;;;AAeA;;;;;iBAAgB,gBAAA,kBAAkC,KAAA;EAAU,OAAA;AAAA,EAAA,CAC1D,UAAA,YAAsB,QAAA,GACrB,QAAA"}
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { useMediaAttach } from "../player/context.js";
3
+ import { useDestroy } from "./use-destroy.js";
4
+ import { useState } from "react";
5
+ //#region src/utils/use-media-instance.ts
6
+ /**
7
+ * Create and manage a media instance lifecycle within a player context.
8
+ *
9
+ * Instantiates the media class once, attaches it to the player on mount,
10
+ * and safely detaches on unmount using a functional updater to avoid race
11
+ * conditions when swapping media components (e.g. DashVideo → HlsVideo).
12
+ */
13
+ function useMediaInstance(MediaClass) {
14
+ const [instance] = useState(() => new MediaClass());
15
+ const setMedia = useMediaAttach();
16
+ useDestroy(instance, () => setMedia?.(instance), () => setMedia?.((prev) => prev === instance ? null : prev));
17
+ return instance;
18
+ }
19
+ //#endregion
20
+ export { useMediaInstance };
21
+
22
+ //# sourceMappingURL=use-media-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-media-instance.js","names":[],"sources":["../../../src/utils/use-media-instance.ts"],"sourcesContent":["'use client';\n\nimport type { Media } from '@videojs/core';\nimport { useState } from 'react';\n\nimport { useMediaAttach } from '../player/context';\nimport { useDestroy } from './use-destroy';\n\n/**\n * Create and manage a media instance lifecycle within a player context.\n *\n * Instantiates the media class once, attaches it to the player on mount,\n * and safely detaches on unmount using a functional updater to avoid race\n * conditions when swapping media components (e.g. DashVideo → HlsVideo).\n */\nexport function useMediaInstance<Instance extends Media & { destroy(): void }>(\n MediaClass: new () => Instance\n): Instance {\n const [instance] = useState(() => new MediaClass());\n const setMedia = useMediaAttach();\n\n useDestroy(\n instance,\n () => setMedia?.(instance),\n () => setMedia?.((prev) => (prev === instance ? null : prev))\n );\n\n return instance;\n}\n"],"mappings":";;;;;;;;;;;;AAeA,SAAgB,iBACd,YACU;CACV,MAAM,CAAC,YAAY,eAAe,IAAI,YAAY,CAAC;CACnD,MAAM,WAAW,gBAAgB;AAEjC,YACE,gBACM,WAAW,SAAS,QACpB,YAAY,SAAU,SAAS,WAAW,OAAO,KAAM,CAC9D;AAED,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-render.d.ts","names":[],"sources":["../../../src/utils/use-render.tsx"],"mappings":";;;;;KAUK,gBAAA,SAAyB,KAAA,CAAM,GAAA,CAAI,iBAAA;AAAA,UAEvB,uBAAA;EACf,SAAA,cAAuB,KAAA,EAAO,KAAA;EAC9B,KAAA,GAAQ,aAAA,KAAkB,KAAA,EAAO,KAAA,KAAU,aAAA;EAC3C,MAAA,GAAS,UAAA,CAAW,KAAA;AAAA;AAAA,UAGL,mBAAA,oCAAuD,OAAA;EACtE,KAAA,EAAO,KAAA;EACP,GAAA,GAAM,GAAA,CAAI,mBAAA,IAAuB,GAAA,CAAI,mBAAA;EACrC,KAAA;EACA,YAAA,GAAe,YAAA,CAAa,KAAA;AAAA;;;;;;;;;;;;;;;;;;;;;iBA4Cd,aAAA,mDAEc,OAAA,kBACZ,gBAAA,CAAA,CAEhB,OAAA,EAAS,OAAA,EACT,cAAA,EAAgB,uBAAA,CAAwB,KAAA,GACxC,MAAA,EAAQ,mBAAA,CAAoB,KAAA,EAAO,mBAAA,IAClC,YAAA;AAAA,kBAgDc,aAAA;EAAA,KACH,cAAA,UAAwB,uBAAA,CAAwB,KAAA;EAAA,KAChD,UAAA,oCAA8C,OAAA,IAAW,mBAAA,CAAoB,KAAA,EAAO,mBAAA;AAAA"}
1
+ {"version":3,"file":"use-render.d.ts","names":[],"sources":["../../../src/utils/use-render.tsx"],"mappings":";;;;;KAeK,gBAAA,SAAyB,KAAA,CAAM,GAAA,CAAI,iBAAA;AAAA,UAEvB,uBAAA;EACf,SAAA,cAAuB,KAAA,EAAO,KAAA;EAC9B,KAAA,GAAQ,aAAA,KAAkB,KAAA,EAAO,KAAA,KAAU,aAAA;EAC3C,MAAA,GAAS,UAAA,CAAW,KAAA;AAAA;AAAA,UAGL,mBAAA,oCAAuD,OAAA;EACtE,KAAA,EAAO,KAAA;EACP,GAAA,GAAM,GAAA,CAAI,mBAAA,IAAuB,GAAA,CAAI,mBAAA;EACrC,KAAA;EACA,YAAA,GAAe,YAAA,CAAa,KAAA;AAAA;;;;;;;;;;;;;;;;;;;;;iBA4Cd,aAAA,mDAEc,OAAA,kBACZ,gBAAA,CAAA,CAEhB,OAAA,EAAS,OAAA,EACT,cAAA,EAAgB,uBAAA,CAAwB,KAAA,GACxC,MAAA,EAAQ,mBAAA,CAAoB,KAAA,EAAO,mBAAA,IAClC,YAAA;AAAA,kBAgDc,aAAA;EAAA,KACH,cAAA,UAAwB,uBAAA,CAAwB,KAAA;EAAA,KAChD,UAAA,oCAA8C,OAAA,IAAW,mBAAA,CAAoB,KAAA,EAAO,mBAAA;AAAA"}
@@ -1,12 +1,14 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { composeRefs } from "./use-composed-refs.js";
4
3
  import { mergeProps } from "./merge-props.js";
5
4
  import { getStateDataAttrs } from "@videojs/core/dom";
6
5
  import { cloneElement, createElement, isValidElement } from "react";
7
6
  import { isFunction } from "@videojs/utils/predicate";
8
-
9
7
  //#region src/utils/use-render.tsx
8
+ /** Check if a value is a render prop (function or React element). */
9
+ function isRenderProp(value) {
10
+ return isFunction(value) || isValidElement(value);
11
+ }
10
12
  function resolveClassName(className, state) {
11
13
  return isFunction(className) ? className(state) : className;
12
14
  }
@@ -65,7 +67,7 @@ function renderElement(element, componentProps, params) {
65
67
  mergedProps.ref = composeRefs(ref, mergedProps.ref);
66
68
  return createElement(element, mergedProps);
67
69
  }
68
-
69
70
  //#endregion
70
- export { renderElement };
71
+ export { isRenderProp, renderElement };
72
+
71
73
  //# sourceMappingURL=use-render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-render.js","names":[],"sources":["../../../src/utils/use-render.tsx"],"sourcesContent":["'use client';\n\nimport { getStateDataAttrs, type StateAttrMap } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { CSSProperties, ReactElement, Ref } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport { mergeProps } from './merge-props';\nimport type { HTMLProps, RenderProp } from './types';\nimport { composeRefs } from './use-composed-refs';\n\ntype IntrinsicTagName = keyof React.JSX.IntrinsicElements;\n\nexport interface UseRenderComponentProps<State> {\n className?: string | ((state: State) => string | undefined) | undefined;\n style?: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined;\n render?: RenderProp<State> | undefined;\n}\n\nexport interface UseRenderParameters<State, RenderedElementType extends Element> {\n state: State;\n ref?: Ref<RenderedElementType> | Ref<RenderedElementType>[] | undefined;\n props?: object | object[] | undefined;\n stateAttrMap?: StateAttrMap<State> | undefined;\n}\n\nfunction resolveClassName<State>(\n className: string | ((state: State) => string | undefined) | undefined,\n state: State\n): string | undefined {\n return isFunction(className) ? className(state) : className;\n}\n\nfunction resolveStyle<State>(\n style: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined,\n state: State\n): CSSProperties | undefined {\n return isFunction(style) ? style(state) : style;\n}\n\nfunction getElementRef(element: ReactElement): Ref<unknown> | undefined {\n // React 19+ uses element.props.ref, older versions use element.ref\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elementAny = element as any;\n return elementAny.ref ?? elementAny.props?.ref;\n}\n\n/**\n * Render a UI component element.\n *\n * Handles:\n * - Default tag rendering\n * - Render prop (element or function)\n * - Props merging (event handlers chained, className concatenated, style merged)\n * - Ref composition\n * - className/style as functions of state\n *\n * @public\n * @example\n * ```tsx\n * return renderElement('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [{ type: 'button' }, elementProps, getButtonProps],\n * });\n * ```\n */\nexport function renderElement<\n State extends object,\n RenderedElementType extends Element,\n TagName extends IntrinsicTagName,\n>(\n element: TagName,\n componentProps: UseRenderComponentProps<State>,\n params: UseRenderParameters<State, RenderedElementType>\n): ReactElement | null {\n const { className: classNameProp, style: styleProp, render } = componentProps;\n const { state, ref, props, stateAttrMap } = params;\n\n // Resolve className and style if they're functions\n const className = resolveClassName(classNameProp, state);\n const style = resolveStyle(styleProp, state);\n\n // Generate data attributes from state\n const stateDataAttrs = getStateDataAttrs(state, stateAttrMap);\n\n // Merge: state data attrs first, then props (so props can override)\n const propsArray = Array.isArray(props) ? props : props ? [props] : [];\n const mergedProps = mergeProps(stateDataAttrs, ...(propsArray as Record<string, unknown>[]));\n\n if (className !== undefined) {\n // Add resolved className and style\n mergedProps.className = mergedProps.className ? `${mergedProps.className} ${className}` : className;\n }\n\n if (style !== undefined) {\n mergedProps.style = mergedProps.style ? { ...(mergedProps.style as CSSProperties), ...style } : style;\n }\n\n if (isFunction(render)) {\n // Render function: call with props and state\n const mergedRef = composeRefs(ref, mergedProps.ref);\n return render({ ...mergedProps, ref: mergedRef } as HTMLProps, state);\n }\n\n if (isValidElement(render)) {\n const elementRef = getElementRef(render);\n\n const mergedRef = composeRefs(ref, mergedProps.ref, elementRef);\n\n const elementProps = mergeProps(mergedProps, render.props as Record<string, unknown>);\n elementProps.ref = mergedRef;\n\n return cloneElement(render, elementProps);\n }\n\n // Default tag\n const mergedRef = composeRefs(ref, mergedProps.ref);\n mergedProps.ref = mergedRef;\n\n return createElement(element, mergedProps);\n}\n\nexport namespace renderElement {\n export type ComponentProps<State> = UseRenderComponentProps<State>;\n export type Parameters<State, RenderedElementType extends Element> = UseRenderParameters<State, RenderedElementType>;\n}\n"],"mappings":";;;;;;;;;AAyBA,SAAS,iBACP,WACA,OACoB;AACpB,QAAO,WAAW,UAAU,GAAG,UAAU,MAAM,GAAG;;AAGpD,SAAS,aACP,OACA,OAC2B;AAC3B,QAAO,WAAW,MAAM,GAAG,MAAM,MAAM,GAAG;;AAG5C,SAAS,cAAc,SAAiD;CAGtE,MAAM,aAAa;AACnB,QAAO,WAAW,OAAO,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;AAuB7C,SAAgB,cAKd,SACA,gBACA,QACqB;CACrB,MAAM,EAAE,WAAW,eAAe,OAAO,WAAW,WAAW;CAC/D,MAAM,EAAE,OAAO,KAAK,OAAO,iBAAiB;CAG5C,MAAM,YAAY,iBAAiB,eAAe,MAAM;CACxD,MAAM,QAAQ,aAAa,WAAW,MAAM;CAO5C,MAAM,cAAc,WAJG,kBAAkB,OAAO,aAAa,EAId,GAD5B,MAAM,QAAQ,MAAM,GAAG,QAAQ,QAAQ,CAAC,MAAM,GAAG,EAAE,CACsB;AAE5F,KAAI,cAAc,OAEhB,aAAY,YAAY,YAAY,YAAY,GAAG,YAAY,UAAU,GAAG,cAAc;AAG5F,KAAI,UAAU,OACZ,aAAY,QAAQ,YAAY,QAAQ;EAAE,GAAI,YAAY;EAAyB,GAAG;EAAO,GAAG;AAGlG,KAAI,WAAW,OAAO,EAAE;EAEtB,MAAM,YAAY,YAAY,KAAK,YAAY,IAAI;AACnD,SAAO,OAAO;GAAE,GAAG;GAAa,KAAK;GAAW,EAAe,MAAM;;AAGvE,KAAI,eAAe,OAAO,EAAE;EAC1B,MAAM,aAAa,cAAc,OAAO;EAExC,MAAM,YAAY,YAAY,KAAK,YAAY,KAAK,WAAW;EAE/D,MAAM,eAAe,WAAW,aAAa,OAAO,MAAiC;AACrF,eAAa,MAAM;AAEnB,SAAO,aAAa,QAAQ,aAAa;;AAK3C,aAAY,MADM,YAAY,KAAK,YAAY,IAAI;AAGnD,QAAO,cAAc,SAAS,YAAY"}
1
+ {"version":3,"file":"use-render.js","names":[],"sources":["../../../src/utils/use-render.tsx"],"sourcesContent":["'use client';\n\nimport { getStateDataAttrs, type StateAttrMap } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { CSSProperties, ReactElement, Ref } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport { mergeProps } from './merge-props';\nimport type { HTMLProps, RenderProp } from './types';\nimport { composeRefs } from './use-composed-refs';\n\n/** Check if a value is a render prop (function or React element). */\nexport function isRenderProp(value: unknown): value is RenderProp<any> {\n return isFunction(value) || isValidElement(value);\n}\n\ntype IntrinsicTagName = keyof React.JSX.IntrinsicElements;\n\nexport interface UseRenderComponentProps<State> {\n className?: string | ((state: State) => string | undefined) | undefined;\n style?: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined;\n render?: RenderProp<State> | undefined;\n}\n\nexport interface UseRenderParameters<State, RenderedElementType extends Element> {\n state: State;\n ref?: Ref<RenderedElementType> | Ref<RenderedElementType>[] | undefined;\n props?: object | object[] | undefined;\n stateAttrMap?: StateAttrMap<State> | undefined;\n}\n\nfunction resolveClassName<State>(\n className: string | ((state: State) => string | undefined) | undefined,\n state: State\n): string | undefined {\n return isFunction(className) ? className(state) : className;\n}\n\nfunction resolveStyle<State>(\n style: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined,\n state: State\n): CSSProperties | undefined {\n return isFunction(style) ? style(state) : style;\n}\n\nfunction getElementRef(element: ReactElement): Ref<unknown> | undefined {\n // React 19+ uses element.props.ref, older versions use element.ref\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elementAny = element as any;\n return elementAny.ref ?? elementAny.props?.ref;\n}\n\n/**\n * Render a UI component element.\n *\n * Handles:\n * - Default tag rendering\n * - Render prop (element or function)\n * - Props merging (event handlers chained, className concatenated, style merged)\n * - Ref composition\n * - className/style as functions of state\n *\n * @public\n * @example\n * ```tsx\n * return renderElement('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [{ type: 'button' }, elementProps, getButtonProps],\n * });\n * ```\n */\nexport function renderElement<\n State extends object,\n RenderedElementType extends Element,\n TagName extends IntrinsicTagName,\n>(\n element: TagName,\n componentProps: UseRenderComponentProps<State>,\n params: UseRenderParameters<State, RenderedElementType>\n): ReactElement | null {\n const { className: classNameProp, style: styleProp, render } = componentProps;\n const { state, ref, props, stateAttrMap } = params;\n\n // Resolve className and style if they're functions\n const className = resolveClassName(classNameProp, state);\n const style = resolveStyle(styleProp, state);\n\n // Generate data attributes from state\n const stateDataAttrs = getStateDataAttrs(state, stateAttrMap);\n\n // Merge: state data attrs first, then props (so props can override)\n const propsArray = Array.isArray(props) ? props : props ? [props] : [];\n const mergedProps = mergeProps(stateDataAttrs, ...(propsArray as Record<string, unknown>[]));\n\n if (className !== undefined) {\n // Add resolved className and style\n mergedProps.className = mergedProps.className ? `${mergedProps.className} ${className}` : className;\n }\n\n if (style !== undefined) {\n mergedProps.style = mergedProps.style ? { ...(mergedProps.style as CSSProperties), ...style } : style;\n }\n\n if (isFunction(render)) {\n // Render function: call with props and state\n const mergedRef = composeRefs(ref, mergedProps.ref);\n return render({ ...mergedProps, ref: mergedRef } as HTMLProps, state);\n }\n\n if (isValidElement(render)) {\n const elementRef = getElementRef(render);\n\n const mergedRef = composeRefs(ref, mergedProps.ref, elementRef);\n\n const elementProps = mergeProps(mergedProps, render.props as Record<string, unknown>);\n elementProps.ref = mergedRef;\n\n return cloneElement(render, elementProps);\n }\n\n // Default tag\n const mergedRef = composeRefs(ref, mergedProps.ref);\n mergedProps.ref = mergedRef;\n\n return createElement(element, mergedProps);\n}\n\nexport namespace renderElement {\n export type ComponentProps<State> = UseRenderComponentProps<State>;\n export type Parameters<State, RenderedElementType extends Element> = UseRenderParameters<State, RenderedElementType>;\n}\n"],"mappings":";;;;;;;;AAWA,SAAgB,aAAa,OAA0C;AACrE,QAAO,WAAW,MAAM,IAAI,eAAe,MAAM;;AAkBnD,SAAS,iBACP,WACA,OACoB;AACpB,QAAO,WAAW,UAAU,GAAG,UAAU,MAAM,GAAG;;AAGpD,SAAS,aACP,OACA,OAC2B;AAC3B,QAAO,WAAW,MAAM,GAAG,MAAM,MAAM,GAAG;;AAG5C,SAAS,cAAc,SAAiD;CAGtE,MAAM,aAAa;AACnB,QAAO,WAAW,OAAO,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;AAuB7C,SAAgB,cAKd,SACA,gBACA,QACqB;CACrB,MAAM,EAAE,WAAW,eAAe,OAAO,WAAW,WAAW;CAC/D,MAAM,EAAE,OAAO,KAAK,OAAO,iBAAiB;CAG5C,MAAM,YAAY,iBAAiB,eAAe,MAAM;CACxD,MAAM,QAAQ,aAAa,WAAW,MAAM;CAO5C,MAAM,cAAc,WAJG,kBAAkB,OAAO,aAAa,EAId,GAD5B,MAAM,QAAQ,MAAM,GAAG,QAAQ,QAAQ,CAAC,MAAM,GAAG,EAAE,CACsB;AAE5F,KAAI,cAAc,KAAA,EAEhB,aAAY,YAAY,YAAY,YAAY,GAAG,YAAY,UAAU,GAAG,cAAc;AAG5F,KAAI,UAAU,KAAA,EACZ,aAAY,QAAQ,YAAY,QAAQ;EAAE,GAAI,YAAY;EAAyB,GAAG;EAAO,GAAG;AAGlG,KAAI,WAAW,OAAO,EAAE;EAEtB,MAAM,YAAY,YAAY,KAAK,YAAY,IAAI;AACnD,SAAO,OAAO;GAAE,GAAG;GAAa,KAAK;GAAW,EAAe,MAAM;;AAGvE,KAAI,eAAe,OAAO,EAAE;EAC1B,MAAM,aAAa,cAAc,OAAO;EAExC,MAAM,YAAY,YAAY,KAAK,YAAY,KAAK,WAAW;EAE/D,MAAM,eAAe,WAAW,aAAa,OAAO,MAAiC;AACrF,eAAa,MAAM;AAEnB,SAAO,aAAa,QAAQ,aAAa;;AAK3C,aAAY,MADM,YAAY,KAAK,YAAY,IAAI;AAGnD,QAAO,cAAc,SAAS,YAAY"}
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useId } from "react";
4
-
5
3
  //#region src/utils/use-safe-id.ts
6
4
  const UNSAFE_CHARS = /[^a-zA-Z0-9_-]/g;
7
5
  /**
@@ -14,9 +12,9 @@ const UNSAFE_CHARS = /[^a-zA-Z0-9_-]/g;
14
12
  */
15
13
  function useSafeId(prefix) {
16
14
  const raw = useId().replace(UNSAFE_CHARS, "");
17
- return prefix ? `${prefix}${raw}` : raw;
15
+ return prefix ? `${prefix}-${raw}` : raw;
18
16
  }
19
-
20
17
  //#endregion
21
18
  export { useSafeId };
19
+
22
20
  //# sourceMappingURL=use-safe-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-safe-id.js","names":[],"sources":["../../../src/utils/use-safe-id.ts"],"sourcesContent":["'use client';\n\nimport { useId } from 'react';\n\nconst UNSAFE_CHARS = /[^a-zA-Z0-9_-]/g;\n\n/**\n * Generate a CSS-safe identifier from React's `useId()`.\n *\n * `useId()` returns values like `:r0:` which contain colons — invalid\n * in CSS `<dashed-ident>` tokens (used by `anchor-name` / `position-anchor`).\n * This hook strips non-alphanumeric/underscore/hyphen characters and\n * optionally prepends a prefix.\n */\nexport function useSafeId(prefix?: string): string {\n const raw = useId().replace(UNSAFE_CHARS, '');\n return prefix ? `${prefix}${raw}` : raw;\n}\n"],"mappings":";;;;;AAIA,MAAM,eAAe;;;;;;;;;AAUrB,SAAgB,UAAU,QAAyB;CACjD,MAAM,MAAM,OAAO,CAAC,QAAQ,cAAc,GAAG;AAC7C,QAAO,SAAS,GAAG,SAAS,QAAQ"}
1
+ {"version":3,"file":"use-safe-id.js","names":[],"sources":["../../../src/utils/use-safe-id.ts"],"sourcesContent":["'use client';\n\nimport { useId } from 'react';\n\nconst UNSAFE_CHARS = /[^a-zA-Z0-9_-]/g;\n\n/**\n * Generate a CSS-safe identifier from React's `useId()`.\n *\n * `useId()` returns values like `:r0:` which contain colons — invalid\n * in CSS `<dashed-ident>` tokens (used by `anchor-name` / `position-anchor`).\n * This hook strips non-alphanumeric/underscore/hyphen characters and\n * optionally prepends a prefix.\n */\nexport function useSafeId(prefix?: string): string {\n const raw = useId().replace(UNSAFE_CHARS, '');\n return prefix ? `${prefix}-${raw}` : raw;\n}\n"],"mappings":";;;AAIA,MAAM,eAAe;;;;;;;;;AAUrB,SAAgB,UAAU,QAAyB;CACjD,MAAM,MAAM,OAAO,CAAC,QAAQ,cAAc,GAAG;AAC7C,QAAO,SAAS,GAAG,OAAO,GAAG,QAAQ"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@videojs/react",
3
3
  "type": "module",
4
- "version": "10.0.0-beta.2",
4
+ "version": "10.0.0-beta.22",
5
5
  "description": "React library for building media players",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -62,25 +62,25 @@
62
62
  }
63
63
  },
64
64
  "peerDependencies": {
65
- "react": ">=16.8.0"
65
+ "react": "^18.0.0 || ^19.0.0"
66
66
  },
67
67
  "dependencies": {
68
- "@videojs/spf": "10.0.0-beta.2",
69
- "@videojs/core": "10.0.0-beta.2",
70
- "@videojs/store": "10.0.0-beta.2",
71
- "@videojs/utils": "10.0.0-beta.2"
68
+ "@videojs/core": "10.0.0-beta.22",
69
+ "@videojs/spf": "10.0.0-beta.22",
70
+ "@videojs/store": "10.0.0-beta.22",
71
+ "@videojs/utils": "10.0.0-beta.22"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@testing-library/react": "^16.3.0",
75
- "@types/react": "^19.2.7",
75
+ "@types/react": "^19.2.14",
76
76
  "jsdom": "^26.1.0",
77
- "react": "^19.2.1",
78
- "react-dom": "^19.2.1",
79
- "tsdown": "^0.20.3",
80
- "typescript": "^5.9.3",
81
- "vitest": "^3.2.4",
82
- "@videojs/skins": "10.0.0-alpha.4",
83
- "@videojs/icons": "10.0.0-beta.2"
77
+ "react": "^19.2.4",
78
+ "react-dom": "^19.2.4",
79
+ "tsdown": "^0.21.4",
80
+ "typescript": "^6.0.2",
81
+ "vitest": "^4.1.0",
82
+ "@videojs/icons": "10.0.0-beta.22",
83
+ "@videojs/skins": "10.0.0-beta.22"
84
84
  },
85
85
  "publishConfig": {
86
86
  "access": "public"
@@ -99,6 +99,6 @@
99
99
  "dev": "pnpm build:watch",
100
100
  "test": "vitest run",
101
101
  "test:watch": "vitest",
102
- "clean": "rm -rf dist types"
102
+ "clean": "rimraf --glob dist types '*.tsbuildinfo'"
103
103
  }
104
104
  }
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
-
3
- //#region ../icons/dist/react/default/pip.js
4
- const PipIcon = (props) => /* @__PURE__ */ jsxs("svg", {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 18,
7
- height: 18,
8
- fill: "none",
9
- "aria-hidden": "true",
10
- viewBox: "0 0 18 18",
11
- ...props,
12
- children: [/* @__PURE__ */ jsx("path", {
13
- fill: "currentColor",
14
- d: "M13 2a4 4 0 0 1 4 4v2.035A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.035.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z"
15
- }), /* @__PURE__ */ jsx("rect", {
16
- width: 10,
17
- height: 7,
18
- x: 8,
19
- y: 10,
20
- fill: "currentColor",
21
- rx: 2
22
- })]
23
- });
24
-
25
- //#endregion
26
- export { PipIcon as default };
27
- //# sourceMappingURL=pip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pip.js","names":[],"sources":["../../../../../../../icons/dist/react/default/pip.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M13 2a4 4 0 0 1 4 4v2.035A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.035.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, fill: \"currentColor\", rx: 2 })\n] });\nexport default PipIcon;\n"],"mappings":";;;AACA,MAAM,WAAW,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAClL,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAqM,CAAC,EAC7O,oBAAI,QAAQ;EAAE,OAAO;EAAI,QAAQ;EAAG,GAAG;EAAG,GAAG;EAAI,MAAM;EAAgB,IAAI;EAAG,CAAC,CAChG;CAAE,CAAC"}
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
-
3
- //#region ../icons/dist/react/minimal/pip.js
4
- const PipIcon = (props) => /* @__PURE__ */ jsxs("svg", {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 18,
7
- height: 18,
8
- fill: "none",
9
- "aria-hidden": "true",
10
- viewBox: "0 0 18 18",
11
- ...props,
12
- children: [/* @__PURE__ */ jsx("path", {
13
- fill: "currentColor",
14
- d: "M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z"
15
- }), /* @__PURE__ */ jsx("rect", {
16
- width: 10,
17
- height: 7,
18
- x: 8,
19
- y: 10,
20
- fill: "currentColor",
21
- rx: 2
22
- })]
23
- });
24
-
25
- //#endregion
26
- export { PipIcon as default };
27
- //# sourceMappingURL=pip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pip.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/pip.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, fill: \"currentColor\", rx: 2 })\n] });\nexport default PipIcon;\n"],"mappings":";;;AACA,MAAM,WAAW,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAClL,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAsL,CAAC,EAC9N,oBAAI,QAAQ;EAAE,OAAO;EAAI,QAAQ;EAAG,GAAG;EAAG,GAAG;EAAI,MAAM;EAAgB,IAAI;EAAG,CAAC,CAChG;CAAE,CAAC"}
@@ -1,51 +0,0 @@
1
- 'use client';
2
-
3
- import { usePlayer } from "../../player/context.js";
4
- import { AlertDialogClose } from "../../ui/alert-dialog/alert-dialog-close.js";
5
- import { AlertDialogDescription } from "../../ui/alert-dialog/alert-dialog-description.js";
6
- import { AlertDialogPopup } from "../../ui/alert-dialog/alert-dialog-popup.js";
7
- import { AlertDialogRoot } from "../../ui/alert-dialog/alert-dialog-root.js";
8
- import { AlertDialogTitle } from "../../ui/alert-dialog/alert-dialog-title.js";
9
- import { selectError } from "@videojs/core/dom";
10
- import { useRef } from "react";
11
- import { jsx, jsxs } from "react/jsx-runtime";
12
-
13
- //#region src/presets/video/error-dialog.tsx
14
- function ErrorDialog({ classes }) {
15
- const errorState = usePlayer(selectError);
16
- const lastError = useRef(errorState?.error);
17
- if (errorState?.error) lastError.current = errorState.error;
18
- if (!errorState) return null;
19
- return /* @__PURE__ */ jsx(AlertDialogRoot, {
20
- open: !!errorState.error,
21
- onOpenChange: (open) => {
22
- if (!open) errorState.dismissError();
23
- },
24
- children: /* @__PURE__ */ jsx(AlertDialogPopup, {
25
- className: classes?.root,
26
- children: /* @__PURE__ */ jsxs("div", {
27
- className: classes?.dialog,
28
- children: [/* @__PURE__ */ jsxs("div", {
29
- className: classes?.content,
30
- children: [/* @__PURE__ */ jsx(AlertDialogTitle, {
31
- className: classes?.title,
32
- children: "Something went wrong."
33
- }), /* @__PURE__ */ jsx(AlertDialogDescription, {
34
- className: classes?.description,
35
- children: lastError.current?.message ?? "An error occurred while trying to play the video. Please try again."
36
- })]
37
- }), /* @__PURE__ */ jsx("div", {
38
- className: classes?.actions,
39
- children: /* @__PURE__ */ jsx(AlertDialogClose, {
40
- className: classes?.close,
41
- children: "OK"
42
- })
43
- })]
44
- })
45
- })
46
- });
47
- }
48
-
49
- //#endregion
50
- export { ErrorDialog };
51
- //# sourceMappingURL=error-dialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-dialog.js","names":["AlertDialog.Root","AlertDialog.Popup","AlertDialog.Title","AlertDialog.Description","AlertDialog.Close"],"sources":["../../../../src/presets/video/error-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { selectError } from '@videojs/core/dom';\nimport { type ReactNode, useRef } from 'react';\nimport { usePlayer } from '@/player/context';\nimport { AlertDialog } from '@/ui/alert-dialog';\n\nexport interface ErrorDialogClasses {\n root?: string;\n dialog?: string;\n content?: string;\n title?: string;\n description?: string;\n actions?: string;\n close?: string;\n}\n\nexport function ErrorDialog({ classes }: { classes?: ErrorDialogClasses }): ReactNode {\n const errorState = usePlayer(selectError);\n const lastError = useRef(errorState?.error);\n if (errorState?.error) lastError.current = errorState.error;\n\n if (!errorState) return null;\n\n return (\n <AlertDialog.Root\n open={!!errorState.error}\n onOpenChange={(open) => {\n if (!open) errorState.dismissError();\n }}\n >\n <AlertDialog.Popup className={classes?.root}>\n <div className={classes?.dialog}>\n <div className={classes?.content}>\n <AlertDialog.Title className={classes?.title}>Something went wrong.</AlertDialog.Title>\n <AlertDialog.Description className={classes?.description}>\n {lastError.current?.message ?? 'An error occurred while trying to play the video. Please try again.'}\n </AlertDialog.Description>\n </div>\n <div className={classes?.actions}>\n <AlertDialog.Close className={classes?.close}>OK</AlertDialog.Close>\n </div>\n </div>\n </AlertDialog.Popup>\n </AlertDialog.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,SAAgB,YAAY,EAAE,WAAwD;CACpF,MAAM,aAAa,UAAU,YAAY;CACzC,MAAM,YAAY,OAAO,YAAY,MAAM;AAC3C,KAAI,YAAY,MAAO,WAAU,UAAU,WAAW;AAEtD,KAAI,CAAC,WAAY,QAAO;AAExB,QACE,oBAACA;EACC,MAAM,CAAC,CAAC,WAAW;EACnB,eAAe,SAAS;AACtB,OAAI,CAAC,KAAM,YAAW,cAAc;;YAGtC,oBAACC;GAAkB,WAAW,SAAS;aACrC,qBAAC;IAAI,WAAW,SAAS;eACvB,qBAAC;KAAI,WAAW,SAAS;gBACvB,oBAACC;MAAkB,WAAW,SAAS;gBAAO;OAAyC,EACvF,oBAACC;MAAwB,WAAW,SAAS;gBAC1C,UAAU,SAAS,WAAW;OACP;MACtB,EACN,oBAAC;KAAI,WAAW,SAAS;eACvB,oBAACC;MAAkB,WAAW,SAAS;gBAAO;OAAsB;MAChE;KACF;IACY;GACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/icon-state.js"],"sourcesContent":["//#region src/default/tailwind/components/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
@@ -1,29 +0,0 @@
1
- //#region ../skins/dist/default/minimal/tailwind/components/icon-state.js
2
- const iconState = {
3
- play: {
4
- button: "group",
5
- restart: "hidden opacity-0 group-data-ended:block group-data-ended:opacity-100",
6
- play: "hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100",
7
- pause: "hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100"
8
- },
9
- mute: {
10
- button: "group",
11
- volumeOff: "hidden opacity-0 group-data-muted:block group-data-muted:opacity-100",
12
- volumeLow: "hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100",
13
- volumeHigh: "hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100"
14
- },
15
- fullscreen: {
16
- button: "group",
17
- enter: "hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100",
18
- exit: "hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100"
19
- },
20
- captions: {
21
- button: "group",
22
- off: "hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100",
23
- on: "hidden opacity-0 group-data-active:block group-data-active:opacity-100"
24
- }
25
- };
26
-
27
- //#endregion
28
- export { iconState };
29
- //# sourceMappingURL=icon-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/icon-state.js"],"sourcesContent":["//#region src/minimal/tailwind/components/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
-
3
- //#region ../icons/dist/react/default/pip.js
4
- const PipIcon = (props) => /* @__PURE__ */ jsxs("svg", {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 18,
7
- height: 18,
8
- fill: "none",
9
- "aria-hidden": "true",
10
- viewBox: "0 0 18 18",
11
- ...props,
12
- children: [/* @__PURE__ */ jsx("path", {
13
- fill: "currentColor",
14
- d: "M13 2a4 4 0 0 1 4 4v2.035A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.035.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z"
15
- }), /* @__PURE__ */ jsx("rect", {
16
- width: 10,
17
- height: 7,
18
- x: 8,
19
- y: 10,
20
- fill: "currentColor",
21
- rx: 2
22
- })]
23
- });
24
-
25
- //#endregion
26
- export { PipIcon as default };
27
- //# sourceMappingURL=pip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pip.js","names":[],"sources":["../../../../../../../icons/dist/react/default/pip.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M13 2a4 4 0 0 1 4 4v2.035A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.035.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, fill: \"currentColor\", rx: 2 })\n] });\nexport default PipIcon;\n"],"mappings":";;;AACA,MAAM,WAAW,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAClL,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAqM,CAAC,EAC7O,oBAAI,QAAQ;EAAE,OAAO;EAAI,QAAQ;EAAG,GAAG;EAAG,GAAG;EAAI,MAAM;EAAgB,IAAI;EAAG,CAAC,CAChG;CAAE,CAAC"}
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
-
3
- //#region ../icons/dist/react/minimal/pip.js
4
- const PipIcon = (props) => /* @__PURE__ */ jsxs("svg", {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 18,
7
- height: 18,
8
- fill: "none",
9
- "aria-hidden": "true",
10
- viewBox: "0 0 18 18",
11
- ...props,
12
- children: [/* @__PURE__ */ jsx("path", {
13
- fill: "currentColor",
14
- d: "M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z"
15
- }), /* @__PURE__ */ jsx("rect", {
16
- width: 10,
17
- height: 7,
18
- x: 8,
19
- y: 10,
20
- fill: "currentColor",
21
- rx: 2
22
- })]
23
- });
24
-
25
- //#endregion
26
- export { PipIcon as default };
27
- //# sourceMappingURL=pip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pip.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/pip.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, fill: \"currentColor\", rx: 2 })\n] });\nexport default PipIcon;\n"],"mappings":";;;AACA,MAAM,WAAW,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAClL,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAsL,CAAC,EAC9N,oBAAI,QAAQ;EAAE,OAAO;EAAI,QAAQ;EAAG,GAAG;EAAG,GAAG;EAAI,MAAM;EAAgB,IAAI;EAAG,CAAC,CAChG;CAAE,CAAC"}
@@ -1,51 +0,0 @@
1
- 'use client';
2
-
3
- import { usePlayer } from "../../player/context.js";
4
- import { AlertDialogClose } from "../../ui/alert-dialog/alert-dialog-close.js";
5
- import { AlertDialogDescription } from "../../ui/alert-dialog/alert-dialog-description.js";
6
- import { AlertDialogPopup } from "../../ui/alert-dialog/alert-dialog-popup.js";
7
- import { AlertDialogRoot } from "../../ui/alert-dialog/alert-dialog-root.js";
8
- import { AlertDialogTitle } from "../../ui/alert-dialog/alert-dialog-title.js";
9
- import { selectError } from "@videojs/core/dom";
10
- import { useRef } from "react";
11
- import { jsx, jsxs } from "react/jsx-runtime";
12
-
13
- //#region src/presets/video/error-dialog.tsx
14
- function ErrorDialog({ classes }) {
15
- const errorState = usePlayer(selectError);
16
- const lastError = useRef(errorState?.error);
17
- if (errorState?.error) lastError.current = errorState.error;
18
- if (!errorState) return null;
19
- return /* @__PURE__ */ jsx(AlertDialogRoot, {
20
- open: !!errorState.error,
21
- onOpenChange: (open) => {
22
- if (!open) errorState.dismissError();
23
- },
24
- children: /* @__PURE__ */ jsx(AlertDialogPopup, {
25
- className: classes?.root,
26
- children: /* @__PURE__ */ jsxs("div", {
27
- className: classes?.dialog,
28
- children: [/* @__PURE__ */ jsxs("div", {
29
- className: classes?.content,
30
- children: [/* @__PURE__ */ jsx(AlertDialogTitle, {
31
- className: classes?.title,
32
- children: "Something went wrong."
33
- }), /* @__PURE__ */ jsx(AlertDialogDescription, {
34
- className: classes?.description,
35
- children: lastError.current?.message ?? "An error occurred while trying to play the video. Please try again."
36
- })]
37
- }), /* @__PURE__ */ jsx("div", {
38
- className: classes?.actions,
39
- children: /* @__PURE__ */ jsx(AlertDialogClose, {
40
- className: classes?.close,
41
- children: "OK"
42
- })
43
- })]
44
- })
45
- })
46
- });
47
- }
48
-
49
- //#endregion
50
- export { ErrorDialog };
51
- //# sourceMappingURL=error-dialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-dialog.js","names":["AlertDialog.Root","AlertDialog.Popup","AlertDialog.Title","AlertDialog.Description","AlertDialog.Close"],"sources":["../../../../src/presets/video/error-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { selectError } from '@videojs/core/dom';\nimport { type ReactNode, useRef } from 'react';\nimport { usePlayer } from '@/player/context';\nimport { AlertDialog } from '@/ui/alert-dialog';\n\nexport interface ErrorDialogClasses {\n root?: string;\n dialog?: string;\n content?: string;\n title?: string;\n description?: string;\n actions?: string;\n close?: string;\n}\n\nexport function ErrorDialog({ classes }: { classes?: ErrorDialogClasses }): ReactNode {\n const errorState = usePlayer(selectError);\n const lastError = useRef(errorState?.error);\n if (errorState?.error) lastError.current = errorState.error;\n\n if (!errorState) return null;\n\n return (\n <AlertDialog.Root\n open={!!errorState.error}\n onOpenChange={(open) => {\n if (!open) errorState.dismissError();\n }}\n >\n <AlertDialog.Popup className={classes?.root}>\n <div className={classes?.dialog}>\n <div className={classes?.content}>\n <AlertDialog.Title className={classes?.title}>Something went wrong.</AlertDialog.Title>\n <AlertDialog.Description className={classes?.description}>\n {lastError.current?.message ?? 'An error occurred while trying to play the video. Please try again.'}\n </AlertDialog.Description>\n </div>\n <div className={classes?.actions}>\n <AlertDialog.Close className={classes?.close}>OK</AlertDialog.Close>\n </div>\n </div>\n </AlertDialog.Popup>\n </AlertDialog.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,SAAgB,YAAY,EAAE,WAAwD;CACpF,MAAM,aAAa,UAAU,YAAY;CACzC,MAAM,YAAY,OAAO,YAAY,MAAM;AAC3C,KAAI,YAAY,MAAO,WAAU,UAAU,WAAW;AAEtD,KAAI,CAAC,WAAY,QAAO;AAExB,QACE,oBAACA;EACC,MAAM,CAAC,CAAC,WAAW;EACnB,eAAe,SAAS;AACtB,OAAI,CAAC,KAAM,YAAW,cAAc;;YAGtC,oBAACC;GAAkB,WAAW,SAAS;aACrC,qBAAC;IAAI,WAAW,SAAS;eACvB,qBAAC;KAAI,WAAW,SAAS;gBACvB,oBAACC;MAAkB,WAAW,SAAS;gBAAO;OAAyC,EACvF,oBAACC;MAAwB,WAAW,SAAS;gBAC1C,UAAU,SAAS,WAAW;OACP;MACtB,EACN,oBAAC;KAAI,WAAW,SAAS;eACvB,oBAACC;MAAkB,WAAW,SAAS;gBAAO;OAAsB;MAChE;KACF;IACY;GACH"}