@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 +1 @@
1
- {"version":3,"file":"slider-thumbnail.js","names":[],"sources":["../../../../src/ui/slider/slider-thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport type { ThumbnailCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport { Thumbnail, type ThumbnailProps } from '../thumbnail/thumbnail';\nimport { useSliderContext } from './context';\n\nexport interface SliderThumbnailProps extends Omit<ThumbnailProps, 'time'> {}\n\nexport const SliderThumbnail = forwardRef<HTMLDivElement, SliderThumbnailProps>(\n function SliderThumbnail(componentProps, forwardedRef) {\n const { pointerValue } = useSliderContext();\n return <Thumbnail ref={forwardedRef} {...componentProps} time={pointerValue} />;\n }\n);\n\nexport namespace SliderThumbnail {\n export type Props = SliderThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;AAUA,MAAa,kBAAkB,WAC7B,SAAS,gBAAgB,gBAAgB,cAAc;CACrD,MAAM,EAAE,iBAAiB,kBAAkB;AAC3C,QAAO,oBAAC;EAAU,KAAK;EAAc,GAAI;EAAgB,MAAM;GAAgB;EAElF"}
1
+ {"version":3,"file":"slider-thumbnail.js","names":[],"sources":["../../../../src/ui/slider/slider-thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport type { ThumbnailCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport { Thumbnail, type ThumbnailProps } from '../thumbnail/thumbnail';\nimport { useSliderContext } from './context';\n\nexport interface SliderThumbnailProps extends Omit<ThumbnailProps, 'time'> {}\n\nexport const SliderThumbnail = forwardRef<HTMLDivElement, SliderThumbnailProps>(\n function SliderThumbnail(componentProps, forwardedRef) {\n const { pointerValue } = useSliderContext();\n return <Thumbnail ref={forwardedRef} {...componentProps} time={pointerValue} />;\n }\n);\n\nexport namespace SliderThumbnail {\n export type Props = SliderThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;AAUA,MAAa,kBAAkB,WAC7B,SAAS,gBAAgB,gBAAgB,cAAc;CACrD,MAAM,EAAE,iBAAiB,kBAAkB;AAC3C,QAAO,oBAAC,WAAD;EAAW,KAAK;EAAc,GAAI;EAAgB,MAAM;EAAgB,CAAA;EAElF"}
@@ -1,8 +1,6 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { createContextPart } from "../create-context-part.js";
4
3
  import { useSliderContext } from "./context.js";
5
-
6
4
  //#region src/ui/slider/slider-track.tsx
7
5
  /** Contains the slider's visual track and interactive hit zone. */
8
6
  const SliderTrack = createContextPart({
@@ -10,7 +8,7 @@ const SliderTrack = createContextPart({
10
8
  tag: "div",
11
9
  useContext: useSliderContext
12
10
  });
13
-
14
11
  //#endregion
15
12
  export { SliderTrack };
13
+
16
14
  //# sourceMappingURL=slider-track.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-track.js","names":[],"sources":["../../../../src/ui/slider/slider-track.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderTrackProps extends UIComponentProps<'div', SliderState> {}\n\n/** Contains the slider's visual track and interactive hit zone. */\nexport const SliderTrack = createContextPart<SliderTrackProps, SliderState>({\n displayName: 'SliderTrack',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderTrack {\n export type Props = SliderTrackProps;\n}\n"],"mappings":";;;;;;;AAWA,MAAa,cAAc,kBAAiD;CAC1E,aAAa;CACb,KAAK;CACL,YAAY;CACb,CAAC"}
1
+ {"version":3,"file":"slider-track.js","names":[],"sources":["../../../../src/ui/slider/slider-track.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useSliderContext } from './context';\n\nexport interface SliderTrackProps extends UIComponentProps<'div', SliderState> {}\n\n/** Contains the slider's visual track and interactive hit zone. */\nexport const SliderTrack = createContextPart<SliderTrackProps, SliderState>({\n displayName: 'SliderTrack',\n tag: 'div',\n useContext: useSliderContext,\n});\n\nexport namespace SliderTrack {\n export type Props = SliderTrackProps;\n}\n"],"mappings":";;;;;AAWA,MAAa,cAAc,kBAAiD;CAC1E,aAAa;CACb,KAAK;CACL,YAAY;CACb,CAAC"}
@@ -1,9 +1,7 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { useSliderContext } from "./context.js";
5
4
  import { forwardRef } from "react";
6
-
7
5
  //#region src/ui/slider/slider-value.tsx
8
6
  /** Displays a formatted text representation of the slider value. Renders an `<output>` element. */
9
7
  const SliderValue = forwardRef(function SliderValue(componentProps, forwardedRef) {
@@ -26,7 +24,7 @@ const SliderValue = forwardRef(function SliderValue(componentProps, forwardedRef
26
24
  }, elementProps]
27
25
  });
28
26
  });
29
-
30
27
  //#endregion
31
28
  export { SliderValue };
29
+
32
30
  //# sourceMappingURL=slider-value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-value.js","names":[],"sources":["../../../../src/ui/slider/slider-value.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderValueProps extends UIComponentProps<'output', SliderState> {\n /** Which slider value to display: the current position or the pointer position. */\n type?: 'current' | 'pointer' | undefined;\n /** Custom formatter for the displayed value. Overrides the root's `formatValue`. */\n format?: ((value: number) => string) | undefined;\n}\n\n/** Displays a formatted text representation of the slider value. Renders an `<output>` element. */\nexport const SliderValue = forwardRef(function SliderValue(\n componentProps: SliderValueProps,\n forwardedRef: ForwardedRef<HTMLOutputElement>\n) {\n const { render, className, style, type = 'current', format, ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state, pointerValue, formatValue } = context;\n\n const rawValue = type === 'pointer' ? pointerValue : state.value;\n\n const text = format ? format(rawValue) : formatValue ? formatValue(rawValue, type) : String(Math.round(rawValue));\n\n return renderElement(\n 'output',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [{ 'aria-live': 'off', children: text }, elementProps],\n }\n );\n});\n\nexport namespace SliderValue {\n export type Props = SliderValueProps;\n}\n"],"mappings":";;;;;;;;AAkBA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,WAAW,QAAQ,GAAG,iBAAiB;CAEhF,MAAM,UAAU,kBAAkB;CAClC,MAAM,EAAE,OAAO,cAAc,gBAAgB;CAE7C,MAAM,WAAW,SAAS,YAAY,eAAe,MAAM;CAE3D,MAAM,OAAO,SAAS,OAAO,SAAS,GAAG,cAAc,YAAY,UAAU,KAAK,GAAG,OAAO,KAAK,MAAM,SAAS,CAAC;AAEjH,QAAO,cACL,UACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK;EACL,OAAO,CAAC;GAAE,aAAa;GAAO,UAAU;GAAM,EAAE,aAAa;EAC9D,CACF;EACD"}
1
+ {"version":3,"file":"slider-value.js","names":[],"sources":["../../../../src/ui/slider/slider-value.tsx"],"sourcesContent":["'use client';\n\nimport type { SliderState } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSliderContext } from './context';\n\nexport interface SliderValueProps extends UIComponentProps<'output', SliderState> {\n /** Which slider value to display: the current position or the pointer position. */\n type?: 'current' | 'pointer' | undefined;\n /** Custom formatter for the displayed value. Overrides the root's `formatValue`. */\n format?: ((value: number) => string) | undefined;\n}\n\n/** Displays a formatted text representation of the slider value. Renders an `<output>` element. */\nexport const SliderValue = forwardRef(function SliderValue(\n componentProps: SliderValueProps,\n forwardedRef: ForwardedRef<HTMLOutputElement>\n) {\n const { render, className, style, type = 'current', format, ...elementProps } = componentProps;\n\n const context = useSliderContext();\n const { state, pointerValue, formatValue } = context;\n\n const rawValue = type === 'pointer' ? pointerValue : state.value;\n\n const text = format ? format(rawValue) : formatValue ? formatValue(rawValue, type) : String(Math.round(rawValue));\n\n return renderElement(\n 'output',\n { render, className, style },\n {\n state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [{ 'aria-live': 'off', children: text }, elementProps],\n }\n );\n});\n\nexport namespace SliderValue {\n export type Props = SliderValueProps;\n}\n"],"mappings":";;;;;;AAkBA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,WAAW,QAAQ,GAAG,iBAAiB;CAEhF,MAAM,UAAU,kBAAkB;CAClC,MAAM,EAAE,OAAO,cAAc,gBAAgB;CAE7C,MAAM,WAAW,SAAS,YAAY,eAAe,MAAM;CAE3D,MAAM,OAAO,SAAS,OAAO,SAAS,GAAG,cAAc,YAAY,UAAU,KAAK,GAAG,OAAO,KAAK,MAAM,SAAS,CAAC;AAEjH,QAAO,cACL,UACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK;EACL,OAAO,CAAC;GAAE,aAAa;GAAO,UAAU;GAAM,EAAE,aAAa;EAC9D,CACF;EACD"}
@@ -0,0 +1,2 @@
1
+ import { Thumbnail, ThumbnailProps } from "./thumbnail.js";
2
+ export { Thumbnail, ThumbnailProps };
@@ -0,0 +1,2 @@
1
+ import { Thumbnail } from "./thumbnail.js";
2
+ export { Thumbnail };
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.d.ts","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"mappings":";;;;;UAkBiB,cAAA,SAAuB,gBAAA,QAAwB,aAAA,CAAc,KAAA,GAAQ,aAAA,CAAc,KAAA;;EAElG,UAAA,GAAa,cAAA;AAAA;AAAA,cAGF,SAAA,EAAS,KAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,cAAA,WAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,kBAqGL,SAAA;EAAA,KACH,KAAA,GAAQ,cAAA;EAAA,KACR,KAAA,GAAQ,aAAA,CAAc,KAAA;AAAA"}
1
+ {"version":3,"file":"thumbnail.d.ts","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"mappings":";;;;;UAkBiB,cAAA,SAAuB,gBAAA,QAAwB,aAAA,CAAc,KAAA,GAAQ,aAAA,CAAc,KAAA;;EAElG,UAAA,GAAa,cAAA;AAAA;AAAA,cAGF,SAAA,EAAS,KAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,cAAA,WAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,kBAsGL,SAAA;EAAA,KACH,KAAA,GAAQ,cAAA;EAAA,KACR,KAAA,GAAQ,aAAA,CAAc,KAAA;AAAA"}
@@ -1,5 +1,4 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useOptionalPlayer } from "../../player/context.js";
4
3
  import { useDestroy } from "../../utils/use-destroy.js";
5
4
  import { renderElement } from "../../utils/use-render.js";
@@ -7,7 +6,6 @@ import { createThumbnail, selectTextTrack } from "@videojs/core/dom";
7
6
  import { forwardRef, useMemo, useRef, useState } from "react";
8
7
  import { jsx } from "react/jsx-runtime";
9
8
  import { ThumbnailCore, ThumbnailDataAttrs, mapCuesToThumbnails } from "@videojs/core";
10
-
11
9
  //#region src/ui/thumbnail/thumbnail.tsx
12
10
  const Thumbnail = forwardRef(function Thumbnail(componentProps, forwardedRef) {
13
11
  const { render, className, style, time = 0, thumbnails: externalThumbnails, crossOrigin, loading, fetchPriority, ...elementProps } = componentProps;
@@ -24,8 +22,7 @@ const Thumbnail = forwardRef(function Thumbnail(componentProps, forwardedRef) {
24
22
  useDestroy(handle, () => handle.connect());
25
23
  const thumbnails = useMemo(() => {
26
24
  if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;
27
- if (!textTrack?.thumbnailCues.length) return [];
28
- return mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? void 0);
25
+ return textTrack && textTrack.thumbnailCues.length > 0 ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? void 0) : [];
29
26
  }, [externalThumbnails, textTrack]);
30
27
  const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [
31
28
  core,
@@ -79,7 +76,7 @@ const Thumbnail = forwardRef(function Thumbnail(componentProps, forwardedRef) {
79
76
  ]
80
77
  });
81
78
  });
82
-
83
79
  //#endregion
84
80
  export { Thumbnail };
81
+
85
82
  //# sourceMappingURL=thumbnail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.js","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailFetchPriority,\n type ThumbnailImage,\n} from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {\n /** Pre-parsed thumbnail images — bypasses the automatic `<track>` detection. */\n thumbnails?: ThumbnailImage[] | undefined;\n}\n\nexport const Thumbnail = forwardRef<HTMLDivElement, ThumbnailProps>(function Thumbnail(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n time = 0,\n thumbnails: externalThumbnails,\n crossOrigin,\n loading,\n fetchPriority,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new ThumbnailCore());\n const divRef = useRef<HTMLDivElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n const textTrack = useOptionalPlayer(selectTextTrack);\n\n // Force re-render when the handle's state changes (img load/error, resize).\n const [, setRenderToken] = useState(0);\n\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((n) => n + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n const thumbnails = useMemo(() => {\n if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;\n if (!textTrack?.thumbnailCues.length) return [];\n return mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined);\n }, [externalThumbnails, textTrack]);\n\n const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [core, thumbnails, time]);\n\n // Track src changes via the handle.\n handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n // Compute styles declaratively from resize result.\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imgStyle: CSSProperties | undefined;\n\n if (thumbnail && handle.naturalWidth && handle.naturalHeight) {\n const constraints = handle.readConstraints();\n const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints);\n\n if (result) {\n containerStyle = {\n overflow: 'hidden',\n width: result.containerWidth,\n height: result.containerHeight,\n };\n imgStyle = {\n width: result.imageWidth,\n height: result.imageHeight,\n maxWidth: 'none',\n transform:\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : undefined,\n };\n }\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [\n core.getAttrs(state),\n { style: containerStyle },\n elementProps,\n {\n children: (\n <img\n ref={imgRef}\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n src={thumbnail?.url}\n crossOrigin={crossOrigin === '' || crossOrigin === null ? undefined : crossOrigin}\n loading={loading}\n style={imgStyle}\n // React's types omit `| undefined` from fetchPriority — cast to satisfy exactOptionalPropertyTypes.\n fetchPriority={fetchPriority as ThumbnailFetchPriority}\n />\n ),\n },\n ],\n }\n );\n});\n\nexport namespace Thumbnail {\n export type Props = ThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;;;AAuBA,MAAa,YAAY,WAA2C,SAAS,UAAU,gBAAgB,cAAc;CACnH,MAAM,EACJ,QACA,WACA,OACA,OAAO,GACP,YAAY,oBACZ,aACA,SACA,eACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAClD,MAAM,SAAS,OAAuB,KAAK;CAC3C,MAAM,SAAS,OAAyB,KAAK;CAC7C,MAAM,YAAY,kBAAkB,gBAAgB;CAGpD,MAAM,GAAG,kBAAkB,SAAS,EAAE;CAEtC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,MAAM,IAAI,EAAE;EAClD,CAAC,CACH;AAED,YAAW,cAAc,OAAO,SAAS,CAAC;CAG1C,MAAM,aAAa,cAAc;AAC/B,MAAI,sBAAsB,mBAAmB,SAAS,EAAG,QAAO;AAChE,MAAI,CAAC,WAAW,cAAc,OAAQ,QAAO,EAAE;AAC/C,SAAO,oBAAoB,UAAU,eAAe,UAAU,qBAAqB,OAAU;IAC5F,CAAC,oBAAoB,UAAU,CAAC;CAEnC,MAAM,YAAY,cAAc,KAAK,oBAAoB,YAAY,KAAK,EAAE;EAAC;EAAM;EAAY;EAAK,CAAC;AAGrG,QAAO,UAAU,WAAW,IAAI;CAEhC,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,UAAU;CAGpE,IAAI,iBAAgC,EAAE,UAAU,UAAU;CAC1D,IAAI;AAEJ,KAAI,aAAa,OAAO,gBAAgB,OAAO,eAAe;EAC5D,MAAM,cAAc,OAAO,iBAAiB;EAC5C,MAAM,SAAS,KAAK,OAAO,WAAW,OAAO,cAAc,OAAO,eAAe,YAAY;AAE7F,MAAI,QAAQ;AACV,oBAAiB;IACf,UAAU;IACV,OAAO,OAAO;IACd,QAAQ,OAAO;IAChB;AACD,cAAW;IACT,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU;IACV,WACE,OAAO,WAAW,OAAO,UAAU,cAAc,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO;IAChG;;;AAIL,QAAO,cACL,OACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,OAAO;EAC3B,OAAO;GACL,KAAK,SAAS,MAAM;GACpB,EAAE,OAAO,gBAAgB;GACzB;GACA,EACE,UACE,oBAAC;IACC,KAAK;IACL,KAAI;IACJ,eAAY;IACZ,UAAS;IACT,KAAK,WAAW;IAChB,aAAa,gBAAgB,MAAM,gBAAgB,OAAO,SAAY;IAC7D;IACT,OAAO;IAEQ;KACf,EAEL;GACF;EACF,CACF;EACD"}
1
+ {"version":3,"file":"thumbnail.js","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailFetchPriority,\n type ThumbnailImage,\n} from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {\n /** Pre-parsed thumbnail images — bypasses the automatic `<track>` detection. */\n thumbnails?: ThumbnailImage[] | undefined;\n}\n\nexport const Thumbnail = forwardRef<HTMLDivElement, ThumbnailProps>(function Thumbnail(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n time = 0,\n thumbnails: externalThumbnails,\n crossOrigin,\n loading,\n fetchPriority,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new ThumbnailCore());\n const divRef = useRef<HTMLDivElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n const textTrack = useOptionalPlayer(selectTextTrack);\n\n // Force re-render when the handle's state changes (img load/error, resize).\n const [, setRenderToken] = useState(0);\n\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((n) => n + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n const thumbnails = useMemo(() => {\n if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;\n return textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }, [externalThumbnails, textTrack]);\n\n const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [core, thumbnails, time]);\n\n // Track src changes via the handle.\n handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n // Compute styles declaratively from resize result.\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imgStyle: CSSProperties | undefined;\n\n if (thumbnail && handle.naturalWidth && handle.naturalHeight) {\n const constraints = handle.readConstraints();\n const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints);\n\n if (result) {\n containerStyle = {\n overflow: 'hidden',\n width: result.containerWidth,\n height: result.containerHeight,\n };\n imgStyle = {\n width: result.imageWidth,\n height: result.imageHeight,\n maxWidth: 'none',\n transform:\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : undefined,\n };\n }\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [\n core.getAttrs(state),\n { style: containerStyle },\n elementProps,\n {\n children: (\n <img\n ref={imgRef}\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n src={thumbnail?.url}\n crossOrigin={crossOrigin === '' || crossOrigin === null ? undefined : crossOrigin}\n loading={loading}\n style={imgStyle}\n // React's types omit `| undefined` from fetchPriority — cast to satisfy exactOptionalPropertyTypes.\n fetchPriority={fetchPriority as ThumbnailFetchPriority}\n />\n ),\n },\n ],\n }\n );\n});\n\nexport namespace Thumbnail {\n export type Props = ThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;AAuBA,MAAa,YAAY,WAA2C,SAAS,UAAU,gBAAgB,cAAc;CACnH,MAAM,EACJ,QACA,WACA,OACA,OAAO,GACP,YAAY,oBACZ,aACA,SACA,eACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAClD,MAAM,SAAS,OAAuB,KAAK;CAC3C,MAAM,SAAS,OAAyB,KAAK;CAC7C,MAAM,YAAY,kBAAkB,gBAAgB;CAGpD,MAAM,GAAG,kBAAkB,SAAS,EAAE;CAEtC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,MAAM,IAAI,EAAE;EAClD,CAAC,CACH;AAED,YAAW,cAAc,OAAO,SAAS,CAAC;CAG1C,MAAM,aAAa,cAAc;AAC/B,MAAI,sBAAsB,mBAAmB,SAAS,EAAG,QAAO;AAChE,SAAO,aAAa,UAAU,cAAc,SAAS,IACjD,oBAAoB,UAAU,eAAe,UAAU,qBAAqB,KAAA,EAAU,GACtF,EAAE;IACL,CAAC,oBAAoB,UAAU,CAAC;CAEnC,MAAM,YAAY,cAAc,KAAK,oBAAoB,YAAY,KAAK,EAAE;EAAC;EAAM;EAAY;EAAK,CAAC;AAGrG,QAAO,UAAU,WAAW,IAAI;CAEhC,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,UAAU;CAGpE,IAAI,iBAAgC,EAAE,UAAU,UAAU;CAC1D,IAAI;AAEJ,KAAI,aAAa,OAAO,gBAAgB,OAAO,eAAe;EAC5D,MAAM,cAAc,OAAO,iBAAiB;EAC5C,MAAM,SAAS,KAAK,OAAO,WAAW,OAAO,cAAc,OAAO,eAAe,YAAY;AAE7F,MAAI,QAAQ;AACV,oBAAiB;IACf,UAAU;IACV,OAAO,OAAO;IACd,QAAQ,OAAO;IAChB;AACD,cAAW;IACT,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU;IACV,WACE,OAAO,WAAW,OAAO,UAAU,cAAc,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAA;IAChG;;;AAIL,QAAO,cACL,OACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,OAAO;EAC3B,OAAO;GACL,KAAK,SAAS,MAAM;GACpB,EAAE,OAAO,gBAAgB;GACzB;GACA,EACE,UACE,oBAAC,OAAD;IACE,KAAK;IACL,KAAI;IACJ,eAAY;IACZ,UAAS;IACT,KAAK,WAAW;IAChB,aAAa,gBAAgB,MAAM,gBAAgB,OAAO,KAAA,IAAY;IAC7D;IACT,OAAO;IAEQ;IACf,CAAA,EAEL;GACF;EACF,CACF;EACD"}
@@ -1,3 +1,2 @@
1
1
  import { index_parts_exports } from "./index.parts.js";
2
-
3
- export { index_parts_exports as Time };
2
+ export { index_parts_exports as Time };
@@ -2,14 +2,13 @@ import { __exportAll } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { Group } from "./time-group.js";
3
3
  import { Separator } from "./time-separator.js";
4
4
  import { Value } from "./time-value.js";
5
-
6
5
  //#region src/ui/time/index.parts.ts
7
6
  var index_parts_exports = /* @__PURE__ */ __exportAll({
8
7
  Group: () => Group,
9
8
  Separator: () => Separator,
10
9
  Value: () => Value
11
10
  });
12
-
13
11
  //#endregion
14
12
  export { index_parts_exports };
13
+
15
14
  //# sourceMappingURL=index.parts.js.map
@@ -1,8 +1,6 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { forwardRef } from "react";
5
-
6
4
  //#region src/ui/time/time-group.tsx
7
5
  /**
8
6
  * Container for composed time displays. Renders a `<span>` element.
@@ -28,7 +26,7 @@ const Group = forwardRef(function Group(componentProps, forwardedRef) {
28
26
  props: [{ children }, elementProps]
29
27
  });
30
28
  });
31
-
32
29
  //#endregion
33
30
  export { Group };
31
+
34
32
  //# sourceMappingURL=time-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time-group.js","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"sourcesContent":["'use client';\n\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Group (no dynamic state)\ntype GroupState = Record<string, never>;\n\nexport interface GroupProps extends UIComponentProps<'span', GroupState> {\n /** Time value components to render inside the group. */\n children?: ReactNode | undefined;\n}\n\n/**\n * Container for composed time displays. Renders a `<span>` element.\n *\n * @example\n * ```tsx\n * <Time.Group>\n * <Time.Value type=\"current\" />\n * <Time.Separator />\n * <Time.Value type=\"duration\" />\n * </Time.Group>\n * ```\n */\nexport const Group = forwardRef(function Group(\n componentProps: GroupProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const state: GroupState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ children }, elementProps],\n }\n );\n});\n\nexport namespace Group {\n export type Props = GroupProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA4BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;AAIhE,QAAO,cACL,QACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE,OANsB,EAAE;EAOxB,KAAK,CAAC,aAAa;EACnB,OAAO,CAAC,EAAE,UAAU,EAAE,aAAa;EACpC,CACF;EACD"}
1
+ {"version":3,"file":"time-group.js","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"sourcesContent":["'use client';\n\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Group (no dynamic state)\ntype GroupState = Record<string, never>;\n\nexport interface GroupProps extends UIComponentProps<'span', GroupState> {\n /** Time value components to render inside the group. */\n children?: ReactNode | undefined;\n}\n\n/**\n * Container for composed time displays. Renders a `<span>` element.\n *\n * @example\n * ```tsx\n * <Time.Group>\n * <Time.Value type=\"current\" />\n * <Time.Separator />\n * <Time.Value type=\"duration\" />\n * </Time.Group>\n * ```\n */\nexport const Group = forwardRef(function Group(\n componentProps: GroupProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const state: GroupState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ children }, elementProps],\n }\n );\n});\n\nexport namespace Group {\n export type Props = GroupProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA4BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;AAIhE,QAAO,cACL,QACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE,OANsB,EAAE;EAOxB,KAAK,CAAC,aAAa;EACnB,OAAO,CAAC,EAAE,UAAU,EAAE,aAAa;EACpC,CACF;EACD"}
@@ -1,8 +1,6 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { forwardRef } from "react";
5
-
6
4
  //#region src/ui/time/time-separator.tsx
7
5
  /**
8
6
  * Divider between time values. Hidden from screen readers.
@@ -28,7 +26,7 @@ const Separator = forwardRef(function Separator(componentProps, forwardedRef) {
28
26
  }, elementProps]
29
27
  });
30
28
  });
31
-
32
29
  //#endregion
33
30
  export { Separator };
31
+
34
32
  //# sourceMappingURL=time-separator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time-separator.js","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"sourcesContent":["'use client';\n\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Separator (no dynamic state)\ntype SeparatorState = Record<string, never>;\n\nexport interface SeparatorProps extends UIComponentProps<'span', SeparatorState> {\n /** Separator content. Defaults to \"/\". */\n children?: ReactNode | undefined;\n}\n\n/**\n * Divider between time values. Hidden from screen readers.\n *\n * @example\n * ```tsx\n * <Time.Separator />\n * <Time.Separator> of </Time.Separator>\n * ```\n */\nexport const Separator = forwardRef(function Separator(\n componentProps: SeparatorProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, children = '/', ...elementProps } = componentProps;\n\n const state: SeparatorState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ 'aria-hidden': 'true', children }, elementProps],\n }\n );\n});\n\nexport namespace Separator {\n export type Props = SeparatorProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAyBA,MAAa,YAAY,WAAW,SAAS,UAC3C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,KAAK,GAAG,iBAAiB;AAItE,QAAO,cACL,QACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE,OAN0B,EAAE;EAO5B,KAAK,CAAC,aAAa;EACnB,OAAO,CAAC;GAAE,eAAe;GAAQ;GAAU,EAAE,aAAa;EAC3D,CACF;EACD"}
1
+ {"version":3,"file":"time-separator.js","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"sourcesContent":["'use client';\n\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\n// Empty state for Separator (no dynamic state)\ntype SeparatorState = Record<string, never>;\n\nexport interface SeparatorProps extends UIComponentProps<'span', SeparatorState> {\n /** Separator content. Defaults to \"/\". */\n children?: ReactNode | undefined;\n}\n\n/**\n * Divider between time values. Hidden from screen readers.\n *\n * @example\n * ```tsx\n * <Time.Separator />\n * <Time.Separator> of </Time.Separator>\n * ```\n */\nexport const Separator = forwardRef(function Separator(\n componentProps: SeparatorProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, children = '/', ...elementProps } = componentProps;\n\n const state: SeparatorState = {};\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ 'aria-hidden': 'true', children }, elementProps],\n }\n );\n});\n\nexport namespace Separator {\n export type Props = SeparatorProps;\n}\n"],"mappings":";;;;;;;;;;;;;AAyBA,MAAa,YAAY,WAAW,SAAS,UAC3C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,KAAK,GAAG,iBAAiB;AAItE,QAAO,cACL,QACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE,OAN0B,EAAE;EAO5B,KAAK,CAAC,aAAa;EACnB,OAAO,CAAC;GAAE,eAAe;GAAQ;GAAU,EAAE,aAAa;EAC3D,CACF;EACD"}
@@ -1,12 +1,10 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { usePlayer } from "../../player/context.js";
4
3
  import { renderElement } from "../../utils/use-render.js";
5
4
  import { logMissingFeature, selectTime } from "@videojs/core/dom";
6
5
  import { forwardRef, useState } from "react";
7
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
7
  import { TimeCore, TimeDataAttrs } from "@videojs/core";
9
-
10
8
  //#region src/ui/time/time-value.tsx
11
9
  /**
12
10
  * Displays a formatted time value (current, duration, or remaining).
@@ -52,7 +50,7 @@ const Value = forwardRef(function Value(componentProps, forwardedRef) {
52
50
  }, elementProps]
53
51
  });
54
52
  });
55
-
56
53
  //#endregion
57
54
  export { Value };
55
+
58
56
  //# sourceMappingURL=time-value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time-value.js","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"sourcesContent":["'use client';\n\nimport { TimeCore, TimeDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectTime } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ValueProps extends Omit<UIComponentProps<'time', TimeCore.State>, 'children'>, TimeCore.Props {}\n\n/**\n * Displays a formatted time value (current, duration, or remaining).\n *\n * @example\n * ```tsx\n * <Time.Value />\n * <Time.Value type=\"duration\" />\n * <Time.Value type=\"remaining\" negativeSign=\"−\" />\n * ```\n */\nexport const Value = forwardRef(function Value(\n componentProps: ValueProps,\n forwardedRef: ForwardedRef<HTMLTimeElement>\n) {\n const { render, className, style, type, negativeSign, label, ...elementProps } = componentProps;\n\n const time = usePlayer(selectTime);\n\n const [core] = useState(() => new TimeCore());\n core.setProps({ type, negativeSign, label });\n\n if (!time) {\n if (__DEV__) logMissingFeature('Time.Value', 'time');\n return null;\n }\n\n core.setMedia(time);\n const state = core.getState();\n\n const content = state.negative ? (\n <>\n <span aria-hidden=\"true\">{negativeSign ?? TimeCore.defaultProps.negativeSign}</span>\n {state.text}\n </>\n ) : (\n state.text\n );\n\n return renderElement(\n 'time',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeDataAttrs,\n ref: [forwardedRef],\n props: [\n {\n dateTime: state.datetime,\n children: content,\n ...core.getAttrs(state),\n },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace Value {\n export type Props = ValueProps;\n export type State = TimeCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuBA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,cAAc,OAAO,GAAG,iBAAiB;CAEjF,MAAM,OAAO,UAAU,WAAW;CAElC,MAAM,CAAC,QAAQ,eAAe,IAAI,UAAU,CAAC;AAC7C,MAAK,SAAS;EAAE;EAAM;EAAc;EAAO,CAAC;AAE5C,KAAI,CAAC,MAAM;AACI,oBAAkB,cAAc,OAAO;AACpD,SAAO;;AAGT,MAAK,SAAS,KAAK;CACnB,MAAM,QAAQ,KAAK,UAAU;CAE7B,MAAM,UAAU,MAAM,WACpB,4CACE,oBAAC;EAAK,eAAY;YAAQ,gBAAgB,SAAS,aAAa;GAAoB,EACnF,MAAM,QACN,GAEH,MAAM;AAGR,QAAO,cACL,QACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA,cAAc;EACd,KAAK,CAAC,aAAa;EACnB,OAAO,CACL;GACE,UAAU,MAAM;GAChB,UAAU;GACV,GAAG,KAAK,SAAS,MAAM;GACxB,EACD,aACD;EACF,CACF;EACD"}
1
+ {"version":3,"file":"time-value.js","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"sourcesContent":["'use client';\n\nimport { TimeCore, TimeDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectTime } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ValueProps extends Omit<UIComponentProps<'time', TimeCore.State>, 'children'>, TimeCore.Props {}\n\n/**\n * Displays a formatted time value (current, duration, or remaining).\n *\n * @example\n * ```tsx\n * <Time.Value />\n * <Time.Value type=\"duration\" />\n * <Time.Value type=\"remaining\" negativeSign=\"−\" />\n * ```\n */\nexport const Value = forwardRef(function Value(\n componentProps: ValueProps,\n forwardedRef: ForwardedRef<HTMLTimeElement>\n) {\n const { render, className, style, type, negativeSign, label, ...elementProps } = componentProps;\n\n const time = usePlayer(selectTime);\n\n const [core] = useState(() => new TimeCore());\n core.setProps({ type, negativeSign, label });\n\n if (!time) {\n if (__DEV__) logMissingFeature('Time.Value', 'time');\n return null;\n }\n\n core.setMedia(time);\n const state = core.getState();\n\n const content = state.negative ? (\n <>\n <span aria-hidden=\"true\">{negativeSign ?? TimeCore.defaultProps.negativeSign}</span>\n {state.text}\n </>\n ) : (\n state.text\n );\n\n return renderElement(\n 'time',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeDataAttrs,\n ref: [forwardedRef],\n props: [\n {\n dateTime: state.datetime,\n children: content,\n ...core.getAttrs(state),\n },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace Value {\n export type Props = ValueProps;\n export type State = TimeCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuBA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,cAAc,OAAO,GAAG,iBAAiB;CAEjF,MAAM,OAAO,UAAU,WAAW;CAElC,MAAM,CAAC,QAAQ,eAAe,IAAI,UAAU,CAAC;AAC7C,MAAK,SAAS;EAAE;EAAM;EAAc;EAAO,CAAC;AAE5C,KAAI,CAAC,MAAM;AACI,oBAAkB,cAAc,OAAO;AACpD,SAAO;;AAGT,MAAK,SAAS,KAAK;CACnB,MAAM,QAAQ,KAAK,UAAU;CAE7B,MAAM,UAAU,MAAM,WACpB,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,QAAD;EAAM,eAAY;YAAQ,gBAAgB,SAAS,aAAa;EAAoB,CAAA,EACnF,MAAM,KACN,EAAA,CAAA,GAEH,MAAM;AAGR,QAAO,cACL,QACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA,cAAc;EACd,KAAK,CAAC,aAAa;EACnB,OAAO,CACL;GACE,UAAU,MAAM;GAChB,UAAU;GACV,GAAG,KAAK,SAAS,MAAM;GACxB,EACD,aACD;EACF,CACF;EACD"}
@@ -1,3 +1,2 @@
1
1
  import { index_parts_exports } from "./index.parts.js";
2
-
3
- export { index_parts_exports as TimeSlider };
2
+ export { index_parts_exports as TimeSlider };
@@ -6,7 +6,6 @@ import { SliderThumb } from "../slider/slider-thumb.js";
6
6
  import { SliderTrack } from "../slider/slider-track.js";
7
7
  import { SliderValue } from "../slider/slider-value.js";
8
8
  import { TimeSliderRoot } from "./time-slider-root.js";
9
-
10
9
  //#region src/ui/time-slider/index.parts.ts
11
10
  var index_parts_exports = /* @__PURE__ */ __exportAll({
12
11
  Buffer: () => SliderBuffer,
@@ -17,7 +16,7 @@ var index_parts_exports = /* @__PURE__ */ __exportAll({
17
16
  Track: () => SliderTrack,
18
17
  Value: () => SliderValue
19
18
  });
20
-
21
19
  //#endregion
22
20
  export { index_parts_exports };
21
+
23
22
  //# sourceMappingURL=index.parts.js.map
@@ -1,8 +1,7 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { usePlayer } from "../../player/context.js";
4
- import { renderElement } from "../../utils/use-render.js";
5
3
  import { useLatestRef } from "../../utils/use-latest-ref.js";
4
+ import { renderElement } from "../../utils/use-render.js";
6
5
  import { useSlider } from "../hooks/use-slider.js";
7
6
  import { SliderProvider } from "../slider/context.js";
8
7
  import { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectTime } from "@videojs/core/dom";
@@ -10,11 +9,10 @@ import { forwardRef, useState } from "react";
10
9
  import { jsx } from "react/jsx-runtime";
11
10
  import { TimeSliderCore, TimeSliderDataAttrs } from "@videojs/core";
12
11
  import { formatTime } from "@videojs/utils/time";
13
-
14
12
  //#region src/ui/time-slider/time-slider-root.tsx
15
13
  const noopSeek = () => Promise.resolve(0);
16
14
  const TimeSliderRoot = forwardRef(function TimeSliderRoot(componentProps, forwardedRef) {
17
- const { render, className, style, label, commitThrottle = TimeSliderCore.defaultProps.commitThrottle, step = TimeSliderCore.defaultProps.step, largeStep = TimeSliderCore.defaultProps.largeStep, orientation, disabled, thumbAlignment, onDragStart, onDragEnd, ...elementProps } = componentProps;
15
+ const { render, className, style, label, changeThrottle = TimeSliderCore.defaultProps.changeThrottle, step = TimeSliderCore.defaultProps.step, largeStep = TimeSliderCore.defaultProps.largeStep, orientation, disabled, thumbAlignment, onDragStart, onDragEnd, ...elementProps } = componentProps;
18
16
  const time = usePlayer(selectTime);
19
17
  const buffer = usePlayer(selectBuffer);
20
18
  const [core] = useState(() => new TimeSliderCore());
@@ -53,12 +51,12 @@ const TimeSliderRoot = forwardRef(function TimeSliderRoot(componentProps, forwar
53
51
  getLargeStepPercent: () => core.getLargeStepPercent(),
54
52
  orientation,
55
53
  disabled,
56
- commitThrottle,
54
+ changeThrottle,
57
55
  adjustPercent: (rawPercent, thumbSize, trackSize) => core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),
58
56
  getCSSVars: getTimeSliderCSSVars,
59
57
  onValueCommit: (percent) => {
60
58
  const media = mediaRef.current;
61
- if (media) media.seek(core.valueFromPercent(percent));
59
+ if (media) media.seek(core.rawValueFromPercent(percent));
62
60
  },
63
61
  onDragStart,
64
62
  onDragEnd
@@ -96,7 +94,7 @@ const TimeSliderRoot = forwardRef(function TimeSliderRoot(componentProps, forwar
96
94
  })
97
95
  });
98
96
  });
99
-
100
97
  //#endregion
101
98
  export { TimeSliderRoot };
99
+
102
100
  //# sourceMappingURL=time-slider-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time-slider-root.js","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectTime } from '@videojs/core/dom';\nimport { formatTime } from '@videojs/utils/time';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopSeek = (): Promise<number> => Promise.resolve(0);\n\nexport interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const TimeSliderRoot = forwardRef<HTMLDivElement, TimeSliderRootProps>(\n function TimeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n commitThrottle = TimeSliderCore.defaultProps.commitThrottle,\n step = TimeSliderCore.defaultProps.step,\n largeStep = TimeSliderCore.defaultProps.largeStep,\n orientation,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n\n const [core] = useState(() => new TimeSliderCore());\n core.setProps({ label, step, largeStep, orientation, disabled, thumbAlignment });\n\n // Keep a ref to the latest media state for callbacks that fire outside the render cycle.\n const mediaRef = useLatestRef(time && buffer ? { ...time, ...buffer } : null);\n\n const duration = time?.duration ?? 0;\n\n const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider<TimeSliderCore.State>({\n computeState: (input) => {\n core.setInput(input);\n if (!time || !buffer) {\n core.setMedia({\n currentTime: 0,\n duration: 0,\n seeking: false,\n seek: noopSeek,\n buffered: [],\n seekable: [],\n });\n } else {\n core.setMedia({ ...time, ...buffer });\n }\n\n return core.getState();\n },\n getPercent: () => (duration > 0 ? ((time?.currentTime ?? 0) / duration) * 100 : 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n commitThrottle,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getTimeSliderCSSVars,\n onValueCommit: (percent) => {\n const media = mediaRef.current;\n if (media) media.seek(core.valueFromPercent(percent));\n },\n onDragStart,\n onDragEnd,\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('TimeSlider', 'time');\n return null;\n }\n\n return (\n <SliderProvider\n value={{\n state,\n pointerValue: core.valueFromPercent(state.pointerPercent),\n thumbRef,\n thumbProps,\n stateAttrMap: TimeSliderDataAttrs,\n getAttrs: (sliderState) => core.getAttrs(sliderState as TimeSliderCore.State),\n formatValue: (value) => formatTime(value, duration),\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeSliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n }\n);\n\nexport namespace TimeSliderRoot {\n export type Props = TimeSliderRootProps;\n export type State = TimeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;AAcA,MAAM,iBAAkC,QAAQ,QAAQ,EAAE;AAO1D,MAAa,iBAAiB,WAC5B,SAAS,eAAe,gBAAgB,cAAc;CACpD,MAAM,EACJ,QACA,WACA,OACA,OACA,iBAAiB,eAAe,aAAa,gBAC7C,OAAO,eAAe,aAAa,MACnC,YAAY,eAAe,aAAa,WACxC,aACA,UACA,gBACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,OAAO,UAAU,WAAW;CAClC,MAAM,SAAS,UAAU,aAAa;CAEtC,MAAM,CAAC,QAAQ,eAAe,IAAI,gBAAgB,CAAC;AACnD,MAAK,SAAS;EAAE;EAAO;EAAM;EAAW;EAAa;EAAU;EAAgB,CAAC;CAGhF,MAAM,WAAW,aAAa,QAAQ,SAAS;EAAE,GAAG;EAAM,GAAG;EAAQ,GAAG,KAAK;CAE7E,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,EAAE,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eAAe,UAAgC;EAC9G,eAAe,UAAU;AACvB,QAAK,SAAS,MAAM;AACpB,OAAI,CAAC,QAAQ,CAAC,OACZ,MAAK,SAAS;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU,EAAE;IACZ,UAAU,EAAE;IACb,CAAC;OAEF,MAAK,SAAS;IAAE,GAAG;IAAM,GAAG;IAAQ,CAAC;AAGvC,UAAO,KAAK,UAAU;;EAExB,kBAAmB,WAAW,KAAM,MAAM,eAAe,KAAK,WAAY,MAAM;EAChF,sBAAsB,KAAK,gBAAgB;EAC3C,2BAA2B,KAAK,qBAAqB;EACrD;EACA;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,UAAU;EAClE,YAAY;EACZ,gBAAgB,YAAY;GAC1B,MAAM,QAAQ,SAAS;AACvB,OAAI,MAAO,OAAM,KAAK,KAAK,iBAAiB,QAAQ,CAAC;;EAEvD;EACA;EACD,CAAC;AAEF,KAAI,CAAC,MAAM;AACI,oBAAkB,cAAc,OAAO;AACpD,SAAO;;AAGT,QACE,oBAAC;EACC,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,eAAe;GACzD;GACA;GACA,cAAc;GACd,WAAW,gBAAgB,KAAK,SAAS,YAAoC;GAC7E,cAAc,UAAU,WAAW,OAAO,SAAS;GACpD;YAEA,cACC,OACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,QAAQ;GAC5B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;KAAW,EAAE;IAAE;IAAW;IAAa;GAC1E,CACF;GACc;EAGtB"}
1
+ {"version":3,"file":"time-slider-root.js","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectTime } from '@videojs/core/dom';\nimport { formatTime } from '@videojs/utils/time';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopSeek = (): Promise<number> => Promise.resolve(0);\n\nexport interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const TimeSliderRoot = forwardRef<HTMLDivElement, TimeSliderRootProps>(\n function TimeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle,\n step = TimeSliderCore.defaultProps.step,\n largeStep = TimeSliderCore.defaultProps.largeStep,\n orientation,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n\n const [core] = useState(() => new TimeSliderCore());\n core.setProps({ label, step, largeStep, orientation, disabled, thumbAlignment });\n\n // Keep a ref to the latest media state for callbacks that fire outside the render cycle.\n const mediaRef = useLatestRef(time && buffer ? { ...time, ...buffer } : null);\n\n const duration = time?.duration ?? 0;\n\n const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider<TimeSliderCore.State>({\n computeState: (input) => {\n core.setInput(input);\n if (!time || !buffer) {\n core.setMedia({\n currentTime: 0,\n duration: 0,\n seeking: false,\n seek: noopSeek,\n buffered: [],\n seekable: [],\n });\n } else {\n core.setMedia({ ...time, ...buffer });\n }\n\n return core.getState();\n },\n getPercent: () => (duration > 0 ? ((time?.currentTime ?? 0) / duration) * 100 : 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n changeThrottle,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getTimeSliderCSSVars,\n onValueCommit: (percent) => {\n const media = mediaRef.current;\n if (media) media.seek(core.rawValueFromPercent(percent));\n },\n onDragStart,\n onDragEnd,\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('TimeSlider', 'time');\n return null;\n }\n\n return (\n <SliderProvider\n value={{\n state,\n pointerValue: core.valueFromPercent(state.pointerPercent),\n thumbRef,\n thumbProps,\n stateAttrMap: TimeSliderDataAttrs,\n getAttrs: (sliderState) => core.getAttrs(sliderState as TimeSliderCore.State),\n formatValue: (value) => formatTime(value, duration),\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeSliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n }\n);\n\nexport namespace TimeSliderRoot {\n export type Props = TimeSliderRootProps;\n export type State = TimeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,iBAAkC,QAAQ,QAAQ,EAAE;AAO1D,MAAa,iBAAiB,WAC5B,SAAS,eAAe,gBAAgB,cAAc;CACpD,MAAM,EACJ,QACA,WACA,OACA,OACA,iBAAiB,eAAe,aAAa,gBAC7C,OAAO,eAAe,aAAa,MACnC,YAAY,eAAe,aAAa,WACxC,aACA,UACA,gBACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,OAAO,UAAU,WAAW;CAClC,MAAM,SAAS,UAAU,aAAa;CAEtC,MAAM,CAAC,QAAQ,eAAe,IAAI,gBAAgB,CAAC;AACnD,MAAK,SAAS;EAAE;EAAO;EAAM;EAAW;EAAa;EAAU;EAAgB,CAAC;CAGhF,MAAM,WAAW,aAAa,QAAQ,SAAS;EAAE,GAAG;EAAM,GAAG;EAAQ,GAAG,KAAK;CAE7E,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,EAAE,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eAAe,UAAgC;EAC9G,eAAe,UAAU;AACvB,QAAK,SAAS,MAAM;AACpB,OAAI,CAAC,QAAQ,CAAC,OACZ,MAAK,SAAS;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU,EAAE;IACZ,UAAU,EAAE;IACb,CAAC;OAEF,MAAK,SAAS;IAAE,GAAG;IAAM,GAAG;IAAQ,CAAC;AAGvC,UAAO,KAAK,UAAU;;EAExB,kBAAmB,WAAW,KAAM,MAAM,eAAe,KAAK,WAAY,MAAM;EAChF,sBAAsB,KAAK,gBAAgB;EAC3C,2BAA2B,KAAK,qBAAqB;EACrD;EACA;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,UAAU;EAClE,YAAY;EACZ,gBAAgB,YAAY;GAC1B,MAAM,QAAQ,SAAS;AACvB,OAAI,MAAO,OAAM,KAAK,KAAK,oBAAoB,QAAQ,CAAC;;EAE1D;EACA;EACD,CAAC;AAEF,KAAI,CAAC,MAAM;AACI,oBAAkB,cAAc,OAAO;AACpD,SAAO;;AAGT,QACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,eAAe;GACzD;GACA;GACA,cAAc;GACd,WAAW,gBAAgB,KAAK,SAAS,YAAoC;GAC7E,cAAc,UAAU,WAAW,OAAO,SAAS;GACpD;YAEA,cACC,OACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,QAAQ;GAC5B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;KAAW,EAAE;IAAE;IAAW;IAAa;GAC1E,CACF;EACc,CAAA;EAGtB"}
@@ -9,8 +9,11 @@ interface TooltipContextValue {
9
9
  stateAttrMap: StateAttrMap$1<TooltipCore.State>;
10
10
  anchorName: string;
11
11
  popupId: string;
12
+ content: string | undefined;
13
+ setContent: (content: string | undefined) => void;
12
14
  }
13
15
  declare function useTooltipContext(): TooltipContextValue;
16
+ declare function useOptionalTooltipContext(): TooltipContextValue | null;
14
17
  //#endregion
15
- export { TooltipContextValue, useTooltipContext };
18
+ export { TooltipContextValue, useOptionalTooltipContext, useTooltipContext };
16
19
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"mappings":";;;;UAMiB,mBAAA;EACf,IAAA,EAAM,WAAA;EACN,OAAA,EAAS,UAAA;EACT,KAAA,EAAO,WAAA,CAAY,KAAA;EACnB,YAAA,EAAc,cAAA,CAAa,WAAA,CAAY,KAAA;EACvC,UAAA;EACA,OAAA;AAAA;AAAA,iBAOc,iBAAA,CAAA,GAAqB,mBAAA"}
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"mappings":";;;;UAMiB,mBAAA;EACf,IAAA,EAAM,WAAA;EACN,OAAA,EAAS,UAAA;EACT,KAAA,EAAO,WAAA,CAAY,KAAA;EACnB,YAAA,EAAc,cAAA,CAAa,WAAA,CAAY,KAAA;EACvC,UAAA;EACA,OAAA;EACA,OAAA;EACA,UAAA,GAAa,OAAA;AAAA;AAAA,iBAOC,iBAAA,CAAA,GAAqB,mBAAA;AAAA,iBAMrB,yBAAA,CAAA,GAA6B,mBAAA"}
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { createContext, useContext } from "react";
4
-
5
3
  //#region src/ui/tooltip/context.tsx
6
4
  const TooltipContext = createContext(null);
7
5
  const TooltipContextProvider = TooltipContext.Provider;
@@ -10,7 +8,10 @@ function useTooltipContext() {
10
8
  if (!ctx) throw new Error("Tooltip compound components must be used within a Tooltip.Root");
11
9
  return ctx;
12
10
  }
13
-
11
+ function useOptionalTooltipContext() {
12
+ return useContext(TooltipContext);
13
+ }
14
14
  //#endregion
15
- export { TooltipContextProvider, useTooltipContext };
15
+ export { TooltipContextProvider, useOptionalTooltipContext, useTooltipContext };
16
+
16
17
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap, TooltipCore } from '@videojs/core';\nimport type { TooltipApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface TooltipContextValue {\n core: TooltipCore;\n tooltip: TooltipApi;\n state: TooltipCore.State;\n stateAttrMap: StateAttrMap<TooltipCore.State>;\n anchorName: string;\n popupId: string;\n}\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null);\n\nexport const TooltipContextProvider = TooltipContext.Provider;\n\nexport function useTooltipContext(): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) throw new Error('Tooltip compound components must be used within a Tooltip.Root');\n return ctx;\n}\n"],"mappings":";;;;;AAeA,MAAM,iBAAiB,cAA0C,KAAK;AAEtE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,eAAe;AACtC,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iEAAiE;AAC3F,QAAO"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap, TooltipCore } from '@videojs/core';\nimport type { TooltipApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface TooltipContextValue {\n core: TooltipCore;\n tooltip: TooltipApi;\n state: TooltipCore.State;\n stateAttrMap: StateAttrMap<TooltipCore.State>;\n anchorName: string;\n popupId: string;\n content: string | undefined;\n setContent: (content: string | undefined) => void;\n}\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null);\n\nexport const TooltipContextProvider = TooltipContext.Provider;\n\nexport function useTooltipContext(): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) throw new Error('Tooltip compound components must be used within a Tooltip.Root');\n return ctx;\n}\n\nexport function useOptionalTooltipContext(): TooltipContextValue | null {\n return useContext(TooltipContext);\n}\n"],"mappings":";;;AAiBA,MAAM,iBAAiB,cAA0C,KAAK;AAEtE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,eAAe;AACtC,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iEAAiE;AAC3F,QAAO;;AAGT,SAAgB,4BAAwD;AACtE,QAAO,WAAW,eAAe"}
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { createContext, useContext } from "react";
4
-
5
3
  //#region src/ui/tooltip/group-context.tsx
6
4
  const TooltipGroupContext = createContext(null);
7
5
  const TooltipGroupContextProvider = TooltipGroupContext.Provider;
@@ -9,7 +7,7 @@ const TooltipGroupContextProvider = TooltipGroupContext.Provider;
9
7
  function useTooltipGroup() {
10
8
  return useContext(TooltipGroupContext)?.group;
11
9
  }
12
-
13
10
  //#endregion
14
11
  export { TooltipGroupContextProvider, useTooltipGroup };
12
+
15
13
  //# sourceMappingURL=group-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-context.js","names":[],"sources":["../../../../src/ui/tooltip/group-context.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipGroupCore } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\ninterface TooltipGroupContextValue {\n group: TooltipGroupCore;\n}\n\nconst TooltipGroupContext = createContext<TooltipGroupContextValue | null>(null);\n\nexport const TooltipGroupContextProvider = TooltipGroupContext.Provider;\n\n/** Returns the nearest `TooltipGroupCore`, or `undefined` when used outside a `Tooltip.Provider`. */\nexport function useTooltipGroup(): TooltipGroupCore | undefined {\n return useContext(TooltipGroupContext)?.group;\n}\n"],"mappings":";;;;;AASA,MAAM,sBAAsB,cAA+C,KAAK;AAEhF,MAAa,8BAA8B,oBAAoB;;AAG/D,SAAgB,kBAAgD;AAC9D,QAAO,WAAW,oBAAoB,EAAE"}
1
+ {"version":3,"file":"group-context.js","names":[],"sources":["../../../../src/ui/tooltip/group-context.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipGroupCore } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\ninterface TooltipGroupContextValue {\n group: TooltipGroupCore;\n}\n\nconst TooltipGroupContext = createContext<TooltipGroupContextValue | null>(null);\n\nexport const TooltipGroupContextProvider = TooltipGroupContext.Provider;\n\n/** Returns the nearest `TooltipGroupCore`, or `undefined` when used outside a `Tooltip.Provider`. */\nexport function useTooltipGroup(): TooltipGroupCore | undefined {\n return useContext(TooltipGroupContext)?.group;\n}\n"],"mappings":";;;AASA,MAAM,sBAAsB,cAA+C,KAAK;AAEhF,MAAa,8BAA8B,oBAAoB;;AAG/D,SAAgB,kBAAgD;AAC9D,QAAO,WAAW,oBAAoB,EAAE"}
@@ -1,3 +1,3 @@
1
- import { TooltipContextValue, useTooltipContext } from "./context.js";
1
+ import { TooltipContextValue, useOptionalTooltipContext, useTooltipContext } from "./context.js";
2
2
  import { index_parts_d_exports } from "./index.parts.js";
3
- export { index_parts_d_exports as Tooltip, type TooltipContextValue, useTooltipContext };
3
+ export { index_parts_d_exports as Tooltip, type TooltipContextValue, useOptionalTooltipContext, useTooltipContext };
@@ -1,4 +1,3 @@
1
- import { useTooltipContext } from "./context.js";
1
+ import { useOptionalTooltipContext, useTooltipContext } from "./context.js";
2
2
  import { index_parts_exports } from "./index.parts.js";
3
-
4
- export { index_parts_exports as Tooltip, useTooltipContext };
3
+ export { index_parts_exports as Tooltip, useOptionalTooltipContext, useTooltipContext };
@@ -4,7 +4,6 @@ import { TooltipPopup } from "./tooltip-popup.js";
4
4
  import { TooltipProvider } from "./tooltip-provider.js";
5
5
  import { TooltipRoot } from "./tooltip-root.js";
6
6
  import { TooltipTrigger } from "./tooltip-trigger.js";
7
-
8
7
  //#region src/ui/tooltip/index.parts.ts
9
8
  var index_parts_exports = /* @__PURE__ */ __exportAll({
10
9
  Arrow: () => TooltipArrow,
@@ -13,7 +12,7 @@ var index_parts_exports = /* @__PURE__ */ __exportAll({
13
12
  Root: () => TooltipRoot,
14
13
  Trigger: () => TooltipTrigger
15
14
  });
16
-
17
15
  //#endregion
18
16
  export { index_parts_exports };
17
+
19
18
  //# sourceMappingURL=index.parts.js.map
@@ -1,8 +1,6 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { createContextPart } from "../create-context-part.js";
4
3
  import { useTooltipContext } from "./context.js";
5
-
6
4
  //#region src/ui/tooltip/tooltip-arrow.tsx
7
5
  /** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */
8
6
  const TooltipArrow = createContextPart({
@@ -11,7 +9,7 @@ const TooltipArrow = createContextPart({
11
9
  useContext: useTooltipContext,
12
10
  staticProps: { "aria-hidden": "true" }
13
11
  });
14
-
15
12
  //#endregion
16
13
  export { TooltipArrow };
14
+
17
15
  //# sourceMappingURL=tooltip-arrow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-arrow.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-arrow.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipArrowProps extends UIComponentProps<'div', TooltipState> {}\n\n/** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */\nexport const TooltipArrow = createContextPart<TooltipArrowProps, TooltipState>({\n displayName: 'TooltipArrow',\n tag: 'div',\n useContext: useTooltipContext,\n staticProps: { 'aria-hidden': 'true' as const },\n});\n\nexport namespace TooltipArrow {\n export type Props = TooltipArrowProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;;AAWA,MAAa,eAAe,kBAAmD;CAC7E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,aAAa,EAAE,eAAe,QAAiB;CAChD,CAAC"}
1
+ {"version":3,"file":"tooltip-arrow.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-arrow.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipArrowProps extends UIComponentProps<'div', TooltipState> {}\n\n/** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */\nexport const TooltipArrow = createContextPart<TooltipArrowProps, TooltipState>({\n displayName: 'TooltipArrow',\n tag: 'div',\n useContext: useTooltipContext,\n staticProps: { 'aria-hidden': 'true' as const },\n});\n\nexport namespace TooltipArrow {\n export type Props = TooltipArrowProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;AAWA,MAAa,eAAe,kBAAmD;CAC7E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,aAAa,EAAE,eAAe,QAAiB;CAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-popup.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"mappings":";;;;;UAciB,iBAAA,SAA0B,gBAAA,QAAwB,YAAA;;cAKtD,YAAA,EAAY,KAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,iBAAA,WAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,kBA6HR,YAAA;EAAA,KACH,KAAA,GAAQ,iBAAA;EAAA,KACR,KAAA,GAAQ,YAAA;AAAA"}
1
+ {"version":3,"file":"tooltip-popup.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"mappings":";;;;;UAciB,iBAAA,SAA0B,gBAAA,QAAwB,YAAA;;cAKtD,YAAA,EAAY,KAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,iBAAA,WAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,kBAoJR,YAAA;EAAA,KACH,KAAA,GAAQ,iBAAA;EAAA,KACR,KAAA,GAAQ,YAAA;AAAA"}
@@ -1,13 +1,11 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useComposedRefs } from "../../utils/use-composed-refs.js";
4
3
  import { renderElement } from "../../utils/use-render.js";
5
4
  import { useTooltipContext } from "./context.js";
6
- import { getAnchorPositionStyle, resolveOffsets } from "@videojs/core/dom";
5
+ import { getAnchorPositionStyle, getPopupPositionRect, resolveOffsets } from "@videojs/core/dom";
7
6
  import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from "react";
8
7
  import { TooltipCSSVars } from "@videojs/core";
9
8
  import { supportsAnchorPositioning } from "@videojs/utils/dom";
10
-
11
9
  //#region src/ui/tooltip/tooltip-popup.tsx
12
10
  const POPUP_RESET = {
13
11
  position: "fixed",
@@ -16,7 +14,7 @@ const POPUP_RESET = {
16
14
  };
17
15
  /** Container for the tooltip content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */
18
16
  const TooltipPopup = forwardRef(function TooltipPopup({ render, className, style, ...elementProps }, forwardedRef) {
19
- const { core, tooltip, state, stateAttrMap, anchorName, popupId } = useTooltipContext();
17
+ const { core, tooltip, state, stateAttrMap, anchorName, popupId, content } = useTooltipContext();
20
18
  const internalRef = useRef(null);
21
19
  const composedRef = useComposedRefs(forwardedRef, useCallback((el) => {
22
20
  tooltip.setPopupElement(el);
@@ -42,14 +40,22 @@ const TooltipPopup = forwardRef(function TooltipPopup({ render, className, style
42
40
  const triggerEl = tooltip.triggerElement;
43
41
  const popupEl = internalRef.current;
44
42
  if (!triggerEl || !popupEl) return;
45
- setManualStyle(getAnchorPositionStyle(anchorName, posOpts, triggerEl.getBoundingClientRect(), popupEl.getBoundingClientRect(), document.documentElement.getBoundingClientRect(), resolveOffsets(popupEl, TooltipCSSVars), TooltipCSSVars));
43
+ setManualStyle(getAnchorPositionStyle(anchorName, posOpts, triggerEl.getBoundingClientRect(), getPopupPositionRect(popupEl), document.documentElement.getBoundingClientRect(), resolveOffsets(popupEl, TooltipCSSVars), TooltipCSSVars));
46
44
  }
47
45
  measure();
46
+ const triggerEl = tooltip.triggerElement;
47
+ const popupEl = internalRef.current;
48
48
  let rafId = 0;
49
49
  function reposition() {
50
50
  cancelAnimationFrame(rafId);
51
51
  rafId = requestAnimationFrame(measure);
52
52
  }
53
+ reposition();
54
+ const resizeObserver = typeof ResizeObserver === "function" ? new ResizeObserver(() => {
55
+ reposition();
56
+ }) : null;
57
+ if (triggerEl && resizeObserver) resizeObserver.observe(triggerEl);
58
+ if (popupEl && resizeObserver) resizeObserver.observe(popupEl);
53
59
  window.addEventListener("scroll", reposition, {
54
60
  capture: true,
55
61
  passive: true
@@ -57,6 +63,7 @@ const TooltipPopup = forwardRef(function TooltipPopup({ render, className, style
57
63
  window.addEventListener("resize", reposition);
58
64
  return () => {
59
65
  cancelAnimationFrame(rafId);
66
+ resizeObserver?.disconnect();
60
67
  window.removeEventListener("scroll", reposition, true);
61
68
  window.removeEventListener("resize", reposition);
62
69
  };
@@ -83,6 +90,7 @@ const TooltipPopup = forwardRef(function TooltipPopup({ render, className, style
83
90
  style: positioningStyle,
84
91
  ...core.getPopupAttrs(state)
85
92
  },
93
+ { children: content },
86
94
  {
87
95
  ...restPopupProps,
88
96
  onBlur: onFocusOut
@@ -91,7 +99,7 @@ const TooltipPopup = forwardRef(function TooltipPopup({ render, className, style
91
99
  ]
92
100
  });
93
101
  });
94
-
95
102
  //#endregion
96
103
  export { TooltipPopup };
104
+
97
105
  //# sourceMappingURL=tooltip-popup.js.map