@videojs/react 10.0.0-beta.10 → 10.0.0-beta.12

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 (740) hide show
  1. package/dist/default/_virtual/_rolldown/runtime.js +6 -11
  2. package/dist/default/icons/dist/react/default/captions-off.js +1 -2
  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 -2
  5. package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
  6. package/dist/default/icons/dist/react/default/fullscreen-enter.js +1 -2
  7. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  8. package/dist/default/icons/dist/react/default/fullscreen-exit.js +1 -2
  9. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  10. package/dist/default/icons/dist/react/default/pause.js +1 -2
  11. package/dist/default/icons/dist/react/default/pause.js.map +1 -1
  12. package/dist/default/icons/dist/react/default/pip-enter.js +1 -2
  13. package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -1
  14. package/dist/default/icons/dist/react/default/pip-exit.js +1 -2
  15. package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -1
  16. package/dist/default/icons/dist/react/default/play.js +1 -2
  17. package/dist/default/icons/dist/react/default/play.js.map +1 -1
  18. package/dist/default/icons/dist/react/default/restart.js +1 -2
  19. package/dist/default/icons/dist/react/default/restart.js.map +1 -1
  20. package/dist/default/icons/dist/react/default/seek.js +1 -2
  21. package/dist/default/icons/dist/react/default/seek.js.map +1 -1
  22. package/dist/default/icons/dist/react/default/spinner.js +1 -2
  23. package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
  24. package/dist/default/icons/dist/react/default/volume-high.js +1 -2
  25. package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
  26. package/dist/default/icons/dist/react/default/volume-low.js +1 -2
  27. package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
  28. package/dist/default/icons/dist/react/default/volume-off.js +1 -2
  29. package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
  30. package/dist/default/icons/dist/react/minimal/captions-off.js +1 -2
  31. package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
  32. package/dist/default/icons/dist/react/minimal/captions-on.js +1 -2
  33. package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
  34. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +1 -2
  35. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  36. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +1 -2
  37. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  38. package/dist/default/icons/dist/react/minimal/pause.js +1 -2
  39. package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
  40. package/dist/default/icons/dist/react/minimal/pip-enter.js +1 -2
  41. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -1
  42. package/dist/default/icons/dist/react/minimal/pip-exit.js +1 -2
  43. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -1
  44. package/dist/default/icons/dist/react/minimal/play.js +1 -2
  45. package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
  46. package/dist/default/icons/dist/react/minimal/restart.js +1 -2
  47. package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
  48. package/dist/default/icons/dist/react/minimal/seek.js +1 -2
  49. package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
  50. package/dist/default/icons/dist/react/minimal/spinner.js +1 -2
  51. package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
  52. package/dist/default/icons/dist/react/minimal/volume-high.js +1 -2
  53. package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
  54. package/dist/default/icons/dist/react/minimal/volume-low.js +1 -2
  55. package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
  56. package/dist/default/icons/dist/react/minimal/volume-off.js +1 -2
  57. package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
  58. package/dist/default/index.js +19 -13
  59. package/dist/default/media/audio.js +2 -4
  60. package/dist/default/media/audio.js.map +1 -1
  61. package/dist/default/media/background-video/index.js +2 -4
  62. package/dist/default/media/background-video/index.js.map +1 -1
  63. package/dist/default/media/dash-video/index.js +3 -4
  64. package/dist/default/media/dash-video/index.js.map +1 -1
  65. package/dist/default/media/hls-video/index.js +3 -4
  66. package/dist/default/media/hls-video/index.js.map +1 -1
  67. package/dist/default/media/mux-video/index.js +20 -0
  68. package/dist/default/media/mux-video/index.js.map +1 -0
  69. package/dist/default/media/native-hls-video/index.js +20 -0
  70. package/dist/default/media/native-hls-video/index.js.map +1 -0
  71. package/dist/default/media/simple-hls-video/index.js +3 -3
  72. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  73. package/dist/default/media/video.js +2 -4
  74. package/dist/default/media/video.js.map +1 -1
  75. package/dist/default/player/context.js +2 -4
  76. package/dist/default/player/context.js.map +1 -1
  77. package/dist/default/player/create-player.js +2 -4
  78. package/dist/default/player/create-player.js.map +1 -1
  79. package/dist/default/presets/audio/index.js +1 -2
  80. package/dist/default/presets/audio/minimal-skin.css +81 -59
  81. package/dist/default/presets/audio/minimal-skin.js +29 -17
  82. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  83. package/dist/default/presets/audio/minimal-skin.tailwind.js +25 -15
  84. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  85. package/dist/default/presets/audio/skin.css +54 -42
  86. package/dist/default/presets/audio/skin.js +102 -84
  87. package/dist/default/presets/audio/skin.js.map +1 -1
  88. package/dist/default/presets/audio/skin.tailwind.js +98 -81
  89. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  90. package/dist/default/presets/background/index.js +1 -2
  91. package/dist/default/presets/background/skin.js +1 -2
  92. package/dist/default/presets/background/skin.js.map +1 -1
  93. package/dist/default/presets/video/index.js +1 -2
  94. package/dist/default/presets/video/minimal-skin.css +156 -75
  95. package/dist/default/presets/video/minimal-skin.js +30 -18
  96. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  97. package/dist/default/presets/video/minimal-skin.tailwind.js +29 -21
  98. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  99. package/dist/default/presets/video/skin.css +114 -58
  100. package/dist/default/presets/video/skin.js +138 -117
  101. package/dist/default/presets/video/skin.js.map +1 -1
  102. package/dist/default/presets/video/skin.tailwind.js +134 -116
  103. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  104. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +12 -16
  105. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  106. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  107. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  108. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  109. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  110. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -4
  111. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  112. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +2 -3
  113. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  114. package/dist/default/skins/dist/default/default/tailwind/components/error.js +2 -3
  115. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  116. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -2
  117. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  118. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  119. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  120. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  121. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  122. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +4 -5
  123. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  124. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +1 -2
  125. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  126. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +2 -3
  127. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
  128. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -3
  129. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  130. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -2
  131. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  132. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +2 -3
  133. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  134. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +2 -3
  135. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  136. package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
  137. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  138. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +24 -19
  139. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  140. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +13 -14
  141. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  142. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  143. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  144. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  145. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  146. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +2 -3
  147. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  148. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  149. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  150. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +2 -3
  151. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  152. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  153. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  154. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  155. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  156. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +2 -3
  157. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  158. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +1 -2
  159. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  160. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +2 -3
  161. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
  162. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  163. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  164. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -2
  165. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  166. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  167. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  168. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  169. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  170. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +21 -16
  171. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  172. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +1 -1
  173. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  174. package/dist/default/ui/alert-dialog/alert-dialog-close.js +2 -4
  175. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  176. package/dist/default/ui/alert-dialog/alert-dialog-description.js +2 -4
  177. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  178. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +2 -4
  179. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  180. package/dist/default/ui/alert-dialog/alert-dialog-root.js +5 -7
  181. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  182. package/dist/default/ui/alert-dialog/alert-dialog-title.js +2 -4
  183. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  184. package/dist/default/ui/alert-dialog/context.js +2 -4
  185. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  186. package/dist/default/ui/alert-dialog/index.js +1 -2
  187. package/dist/default/ui/alert-dialog/index.parts.js +1 -2
  188. package/dist/default/ui/buffering-indicator/buffering-indicator.js +3 -5
  189. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  190. package/dist/default/ui/buffering-indicator/index.js +1 -2
  191. package/dist/default/ui/captions-button/captions-button.js +3 -5
  192. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  193. package/dist/default/ui/captions-button/index.js +1 -2
  194. package/dist/default/ui/controls/context.js +2 -4
  195. package/dist/default/ui/controls/context.js.map +1 -1
  196. package/dist/default/ui/controls/controls-group.js +2 -4
  197. package/dist/default/ui/controls/controls-group.js.map +1 -1
  198. package/dist/default/ui/controls/controls-root.js +3 -5
  199. package/dist/default/ui/controls/controls-root.js.map +1 -1
  200. package/dist/default/ui/controls/index.js +1 -2
  201. package/dist/default/ui/controls/index.parts.js +1 -2
  202. package/dist/default/ui/create-context-part.js +2 -4
  203. package/dist/default/ui/create-context-part.js.map +1 -1
  204. package/dist/default/ui/create-media-button.js +2 -4
  205. package/dist/default/ui/create-media-button.js.map +1 -1
  206. package/dist/default/ui/error-dialog/context.js +14 -0
  207. package/dist/default/ui/error-dialog/context.js.map +1 -0
  208. package/dist/default/ui/error-dialog/error-dialog-description.js +28 -0
  209. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -0
  210. package/dist/default/ui/error-dialog/error-dialog-root.js +57 -0
  211. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -0
  212. package/dist/default/ui/error-dialog/index.js +3 -0
  213. package/dist/default/ui/error-dialog/index.parts.js +18 -0
  214. package/dist/default/ui/error-dialog/index.parts.js.map +1 -0
  215. package/dist/default/ui/fullscreen-button/fullscreen-button.js +3 -5
  216. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  217. package/dist/default/ui/fullscreen-button/index.js +1 -2
  218. package/dist/default/ui/hooks/use-button.js +2 -4
  219. package/dist/default/ui/hooks/use-button.js.map +1 -1
  220. package/dist/default/ui/hooks/use-slider.js +2 -4
  221. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  222. package/dist/default/ui/mute-button/index.js +1 -2
  223. package/dist/default/ui/mute-button/mute-button.js +3 -5
  224. package/dist/default/ui/mute-button/mute-button.js.map +1 -1
  225. package/dist/default/ui/pip-button/index.js +1 -2
  226. package/dist/default/ui/pip-button/pip-button.js +3 -5
  227. package/dist/default/ui/pip-button/pip-button.js.map +1 -1
  228. package/dist/default/ui/play-button/index.js +1 -2
  229. package/dist/default/ui/play-button/play-button.js +3 -5
  230. package/dist/default/ui/play-button/play-button.js.map +1 -1
  231. package/dist/default/ui/playback-rate-button/index.js +1 -2
  232. package/dist/default/ui/playback-rate-button/playback-rate-button.js +3 -5
  233. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  234. package/dist/default/ui/popover/context.js +2 -4
  235. package/dist/default/ui/popover/context.js.map +1 -1
  236. package/dist/default/ui/popover/index.js +1 -2
  237. package/dist/default/ui/popover/index.parts.js +1 -2
  238. package/dist/default/ui/popover/popover-arrow.js +2 -4
  239. package/dist/default/ui/popover/popover-arrow.js.map +1 -1
  240. package/dist/default/ui/popover/popover-popup.js +2 -4
  241. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  242. package/dist/default/ui/popover/popover-root.js +4 -6
  243. package/dist/default/ui/popover/popover-root.js.map +1 -1
  244. package/dist/default/ui/popover/popover-trigger.js +2 -4
  245. package/dist/default/ui/popover/popover-trigger.js.map +1 -1
  246. package/dist/default/ui/poster/index.js +1 -2
  247. package/dist/default/ui/poster/poster.js +3 -5
  248. package/dist/default/ui/poster/poster.js.map +1 -1
  249. package/dist/default/ui/seek-button/index.js +1 -2
  250. package/dist/default/ui/seek-button/seek-button.js +3 -5
  251. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  252. package/dist/default/ui/slider/context.js +2 -4
  253. package/dist/default/ui/slider/context.js.map +1 -1
  254. package/dist/default/ui/slider/index.js +1 -2
  255. package/dist/default/ui/slider/index.parts.js +1 -2
  256. package/dist/default/ui/slider/slider-buffer.js +2 -4
  257. package/dist/default/ui/slider/slider-buffer.js.map +1 -1
  258. package/dist/default/ui/slider/slider-fill.js +2 -4
  259. package/dist/default/ui/slider/slider-fill.js.map +1 -1
  260. package/dist/default/ui/slider/slider-preview.js +2 -4
  261. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  262. package/dist/default/ui/slider/slider-root.js +3 -5
  263. package/dist/default/ui/slider/slider-root.js.map +1 -1
  264. package/dist/default/ui/slider/slider-thumb.js +2 -4
  265. package/dist/default/ui/slider/slider-thumb.js.map +1 -1
  266. package/dist/default/ui/slider/slider-thumbnail.js +2 -4
  267. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  268. package/dist/default/ui/slider/slider-track.js +2 -4
  269. package/dist/default/ui/slider/slider-track.js.map +1 -1
  270. package/dist/default/ui/slider/slider-value.js +2 -4
  271. package/dist/default/ui/slider/slider-value.js.map +1 -1
  272. package/dist/default/ui/thumbnail/index.js +1 -2
  273. package/dist/default/ui/thumbnail/thumbnail.js +3 -5
  274. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  275. package/dist/default/ui/time/index.js +1 -2
  276. package/dist/default/ui/time/index.parts.js +1 -2
  277. package/dist/default/ui/time/time-group.js +2 -4
  278. package/dist/default/ui/time/time-group.js.map +1 -1
  279. package/dist/default/ui/time/time-separator.js +2 -4
  280. package/dist/default/ui/time/time-separator.js.map +1 -1
  281. package/dist/default/ui/time/time-value.js +3 -5
  282. package/dist/default/ui/time/time-value.js.map +1 -1
  283. package/dist/default/ui/time-slider/index.js +1 -2
  284. package/dist/default/ui/time-slider/index.parts.js +1 -2
  285. package/dist/default/ui/time-slider/time-slider-root.js +3 -5
  286. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  287. package/dist/default/ui/tooltip/context.js +2 -4
  288. package/dist/default/ui/tooltip/context.js.map +1 -1
  289. package/dist/default/ui/tooltip/group-context.js +2 -4
  290. package/dist/default/ui/tooltip/group-context.js.map +1 -1
  291. package/dist/default/ui/tooltip/index.js +1 -2
  292. package/dist/default/ui/tooltip/index.parts.js +1 -2
  293. package/dist/default/ui/tooltip/tooltip-arrow.js +2 -4
  294. package/dist/default/ui/tooltip/tooltip-arrow.js.map +1 -1
  295. package/dist/default/ui/tooltip/tooltip-popup.js +3 -5
  296. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  297. package/dist/default/ui/tooltip/tooltip-provider.js +3 -5
  298. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  299. package/dist/default/ui/tooltip/tooltip-root.js +4 -6
  300. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  301. package/dist/default/ui/tooltip/tooltip-trigger.js +2 -4
  302. package/dist/default/ui/tooltip/tooltip-trigger.js.map +1 -1
  303. package/dist/default/ui/volume-slider/index.js +1 -2
  304. package/dist/default/ui/volume-slider/index.parts.js +1 -2
  305. package/dist/default/ui/volume-slider/volume-slider-root.js +3 -5
  306. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  307. package/dist/default/utils/attach-media-element.js +1 -1
  308. package/dist/default/utils/media-props.js +14 -6
  309. package/dist/default/utils/media-props.js.map +1 -1
  310. package/dist/default/utils/merge-props.js +2 -3
  311. package/dist/default/utils/merge-props.js.map +1 -1
  312. package/dist/default/utils/use-composed-refs.js +2 -4
  313. package/dist/default/utils/use-composed-refs.js.map +1 -1
  314. package/dist/default/utils/use-destroy.js +2 -4
  315. package/dist/default/utils/use-destroy.js.map +1 -1
  316. package/dist/default/utils/use-force-render.js +2 -4
  317. package/dist/default/utils/use-force-render.js.map +1 -1
  318. package/dist/default/utils/use-latest-ref.js +2 -4
  319. package/dist/default/utils/use-latest-ref.js.map +1 -1
  320. package/dist/default/utils/use-media-instance.js +2 -4
  321. package/dist/default/utils/use-media-instance.js.map +1 -1
  322. package/dist/default/utils/use-render.js +2 -4
  323. package/dist/default/utils/use-render.js.map +1 -1
  324. package/dist/default/utils/use-safe-id.js +3 -5
  325. package/dist/default/utils/use-safe-id.js.map +1 -1
  326. package/dist/dev/_virtual/_rolldown/runtime.js +6 -11
  327. package/dist/dev/icons/dist/react/default/captions-off.js +1 -2
  328. package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
  329. package/dist/dev/icons/dist/react/default/captions-on.js +1 -2
  330. package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
  331. package/dist/dev/icons/dist/react/default/fullscreen-enter.js +1 -2
  332. package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  333. package/dist/dev/icons/dist/react/default/fullscreen-exit.js +1 -2
  334. package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  335. package/dist/dev/icons/dist/react/default/pause.js +1 -2
  336. package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
  337. package/dist/dev/icons/dist/react/default/pip-enter.js +1 -2
  338. package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -1
  339. package/dist/dev/icons/dist/react/default/pip-exit.js +1 -2
  340. package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -1
  341. package/dist/dev/icons/dist/react/default/play.js +1 -2
  342. package/dist/dev/icons/dist/react/default/play.js.map +1 -1
  343. package/dist/dev/icons/dist/react/default/restart.js +1 -2
  344. package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
  345. package/dist/dev/icons/dist/react/default/seek.js +1 -2
  346. package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
  347. package/dist/dev/icons/dist/react/default/spinner.js +1 -2
  348. package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
  349. package/dist/dev/icons/dist/react/default/volume-high.js +1 -2
  350. package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
  351. package/dist/dev/icons/dist/react/default/volume-low.js +1 -2
  352. package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
  353. package/dist/dev/icons/dist/react/default/volume-off.js +1 -2
  354. package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
  355. package/dist/dev/icons/dist/react/minimal/captions-off.js +1 -2
  356. package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
  357. package/dist/dev/icons/dist/react/minimal/captions-on.js +1 -2
  358. package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
  359. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +1 -2
  360. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  361. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +1 -2
  362. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  363. package/dist/dev/icons/dist/react/minimal/pause.js +1 -2
  364. package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
  365. package/dist/dev/icons/dist/react/minimal/pip-enter.js +1 -2
  366. package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -1
  367. package/dist/dev/icons/dist/react/minimal/pip-exit.js +1 -2
  368. package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -1
  369. package/dist/dev/icons/dist/react/minimal/play.js +1 -2
  370. package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
  371. package/dist/dev/icons/dist/react/minimal/restart.js +1 -2
  372. package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
  373. package/dist/dev/icons/dist/react/minimal/seek.js +1 -2
  374. package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
  375. package/dist/dev/icons/dist/react/minimal/spinner.js +1 -2
  376. package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
  377. package/dist/dev/icons/dist/react/minimal/volume-high.js +1 -2
  378. package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
  379. package/dist/dev/icons/dist/react/minimal/volume-low.js +1 -2
  380. package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
  381. package/dist/dev/icons/dist/react/minimal/volume-off.js +1 -2
  382. package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
  383. package/dist/dev/index.d.ts +17 -8
  384. package/dist/dev/index.js +19 -13
  385. package/dist/dev/media/audio.js +2 -4
  386. package/dist/dev/media/audio.js.map +1 -1
  387. package/dist/dev/media/background-video/index.js +2 -4
  388. package/dist/dev/media/background-video/index.js.map +1 -1
  389. package/dist/dev/media/dash-video/index.d.ts +4 -2
  390. package/dist/dev/media/dash-video/index.d.ts.map +1 -1
  391. package/dist/dev/media/dash-video/index.js +3 -4
  392. package/dist/dev/media/dash-video/index.js.map +1 -1
  393. package/dist/dev/media/hls-video/index.d.ts +4 -2
  394. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  395. package/dist/dev/media/hls-video/index.js +3 -4
  396. package/dist/dev/media/hls-video/index.js.map +1 -1
  397. package/dist/dev/media/mux-video/index.d.ts +13 -0
  398. package/dist/dev/media/mux-video/index.d.ts.map +1 -0
  399. package/dist/dev/media/mux-video/index.js +20 -0
  400. package/dist/dev/media/mux-video/index.js.map +1 -0
  401. package/dist/dev/media/native-hls-video/index.d.ts +13 -0
  402. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -0
  403. package/dist/dev/media/native-hls-video/index.js +20 -0
  404. package/dist/dev/media/native-hls-video/index.js.map +1 -0
  405. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  406. package/dist/dev/media/simple-hls-video/index.js +3 -3
  407. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  408. package/dist/dev/media/video.js +2 -4
  409. package/dist/dev/media/video.js.map +1 -1
  410. package/dist/dev/player/context.d.ts +11 -1
  411. package/dist/dev/player/context.d.ts.map +1 -1
  412. package/dist/dev/player/context.js +2 -4
  413. package/dist/dev/player/context.js.map +1 -1
  414. package/dist/dev/player/create-player.js +2 -4
  415. package/dist/dev/player/create-player.js.map +1 -1
  416. package/dist/dev/presets/audio/index.js +1 -2
  417. package/dist/dev/presets/audio/minimal-skin.css +81 -59
  418. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  419. package/dist/dev/presets/audio/minimal-skin.js +29 -17
  420. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  421. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  422. package/dist/dev/presets/audio/minimal-skin.tailwind.js +25 -15
  423. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  424. package/dist/dev/presets/audio/skin.css +54 -42
  425. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  426. package/dist/dev/presets/audio/skin.js +102 -84
  427. package/dist/dev/presets/audio/skin.js.map +1 -1
  428. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  429. package/dist/dev/presets/audio/skin.tailwind.js +98 -81
  430. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  431. package/dist/dev/presets/background/index.js +1 -2
  432. package/dist/dev/presets/background/skin.js +1 -2
  433. package/dist/dev/presets/background/skin.js.map +1 -1
  434. package/dist/dev/presets/video/index.js +1 -2
  435. package/dist/dev/presets/video/minimal-skin.css +156 -75
  436. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  437. package/dist/dev/presets/video/minimal-skin.js +30 -18
  438. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  439. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  440. package/dist/dev/presets/video/minimal-skin.tailwind.js +29 -21
  441. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  442. package/dist/dev/presets/video/skin.css +114 -58
  443. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  444. package/dist/dev/presets/video/skin.js +138 -117
  445. package/dist/dev/presets/video/skin.js.map +1 -1
  446. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  447. package/dist/dev/presets/video/skin.tailwind.js +134 -116
  448. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  449. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +12 -16
  450. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  451. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  452. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  453. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  454. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  455. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -4
  456. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  457. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +2 -3
  458. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  459. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +2 -3
  460. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  461. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -2
  462. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  463. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  464. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  465. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  466. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  467. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +4 -5
  468. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  469. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +1 -2
  470. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  471. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +2 -3
  472. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
  473. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +2 -3
  474. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  475. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -2
  476. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  477. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +2 -3
  478. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  479. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +2 -3
  480. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  481. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
  482. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  483. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +24 -19
  484. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  485. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +13 -14
  486. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  487. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  488. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  489. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  490. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  491. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +2 -3
  492. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  493. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  494. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  495. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +2 -3
  496. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  497. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  498. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  499. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  500. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  501. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +2 -3
  502. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  503. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +1 -2
  504. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  505. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +2 -3
  506. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
  507. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  508. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  509. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -2
  510. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  511. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  512. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  513. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  514. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  515. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +21 -16
  516. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  517. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +1 -1
  518. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  519. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts +1 -1
  520. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +2 -4
  521. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  522. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts +1 -1
  523. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +2 -4
  524. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  525. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts +1 -1
  526. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +2 -4
  527. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  528. package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts +1 -1
  529. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +5 -7
  530. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  531. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts +1 -1
  532. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +2 -4
  533. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  534. package/dist/dev/ui/alert-dialog/context.d.ts +2 -3
  535. package/dist/dev/ui/alert-dialog/context.d.ts.map +1 -1
  536. package/dist/dev/ui/alert-dialog/context.js +2 -4
  537. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  538. package/dist/dev/ui/alert-dialog/index.js +1 -2
  539. package/dist/dev/ui/alert-dialog/index.parts.js +1 -2
  540. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts +1 -1
  541. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +3 -5
  542. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  543. package/dist/dev/ui/buffering-indicator/index.js +1 -2
  544. package/dist/dev/ui/captions-button/captions-button.d.ts +1 -1
  545. package/dist/dev/ui/captions-button/captions-button.js +3 -5
  546. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  547. package/dist/dev/ui/captions-button/index.js +1 -2
  548. package/dist/dev/ui/controls/context.js +2 -4
  549. package/dist/dev/ui/controls/context.js.map +1 -1
  550. package/dist/dev/ui/controls/controls-group.d.ts +1 -1
  551. package/dist/dev/ui/controls/controls-group.js +2 -4
  552. package/dist/dev/ui/controls/controls-group.js.map +1 -1
  553. package/dist/dev/ui/controls/controls-root.d.ts +1 -1
  554. package/dist/dev/ui/controls/controls-root.js +3 -5
  555. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  556. package/dist/dev/ui/controls/index.js +1 -2
  557. package/dist/dev/ui/controls/index.parts.js +1 -2
  558. package/dist/dev/ui/create-context-part.js +2 -4
  559. package/dist/dev/ui/create-context-part.js.map +1 -1
  560. package/dist/dev/ui/create-media-button.js +2 -4
  561. package/dist/dev/ui/create-media-button.js.map +1 -1
  562. package/dist/dev/ui/error-dialog/context.d.ts +9 -0
  563. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -0
  564. package/dist/dev/ui/error-dialog/context.js +14 -0
  565. package/dist/dev/ui/error-dialog/context.js.map +1 -0
  566. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +14 -0
  567. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -0
  568. package/dist/dev/ui/error-dialog/error-dialog-description.js +28 -0
  569. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -0
  570. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts +15 -0
  571. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -0
  572. package/dist/dev/ui/error-dialog/error-dialog-root.js +57 -0
  573. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -0
  574. package/dist/dev/ui/error-dialog/index.d.ts +3 -0
  575. package/dist/dev/ui/error-dialog/index.js +3 -0
  576. package/dist/dev/ui/error-dialog/index.parts.d.ts +13 -0
  577. package/dist/dev/ui/error-dialog/index.parts.d.ts.map +1 -0
  578. package/dist/dev/ui/error-dialog/index.parts.js +18 -0
  579. package/dist/dev/ui/error-dialog/index.parts.js.map +1 -0
  580. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts +1 -1
  581. package/dist/dev/ui/fullscreen-button/fullscreen-button.js +3 -5
  582. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  583. package/dist/dev/ui/fullscreen-button/index.js +1 -2
  584. package/dist/dev/ui/hooks/use-button.js +2 -4
  585. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  586. package/dist/dev/ui/hooks/use-slider.d.ts +1 -1
  587. package/dist/dev/ui/hooks/use-slider.js +2 -4
  588. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  589. package/dist/dev/ui/mute-button/index.js +1 -2
  590. package/dist/dev/ui/mute-button/mute-button.d.ts +1 -1
  591. package/dist/dev/ui/mute-button/mute-button.js +3 -5
  592. package/dist/dev/ui/mute-button/mute-button.js.map +1 -1
  593. package/dist/dev/ui/pip-button/index.js +1 -2
  594. package/dist/dev/ui/pip-button/pip-button.d.ts +1 -1
  595. package/dist/dev/ui/pip-button/pip-button.js +3 -5
  596. package/dist/dev/ui/pip-button/pip-button.js.map +1 -1
  597. package/dist/dev/ui/play-button/index.js +1 -2
  598. package/dist/dev/ui/play-button/play-button.d.ts +1 -1
  599. package/dist/dev/ui/play-button/play-button.js +3 -5
  600. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  601. package/dist/dev/ui/playback-rate-button/index.js +1 -2
  602. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts +1 -1
  603. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +3 -5
  604. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  605. package/dist/dev/ui/popover/context.d.ts +2 -3
  606. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  607. package/dist/dev/ui/popover/context.js +2 -4
  608. package/dist/dev/ui/popover/context.js.map +1 -1
  609. package/dist/dev/ui/popover/index.js +1 -2
  610. package/dist/dev/ui/popover/index.parts.js +1 -2
  611. package/dist/dev/ui/popover/popover-arrow.d.ts +1 -1
  612. package/dist/dev/ui/popover/popover-arrow.js +2 -4
  613. package/dist/dev/ui/popover/popover-arrow.js.map +1 -1
  614. package/dist/dev/ui/popover/popover-popup.d.ts +1 -1
  615. package/dist/dev/ui/popover/popover-popup.js +2 -4
  616. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  617. package/dist/dev/ui/popover/popover-root.d.ts +1 -1
  618. package/dist/dev/ui/popover/popover-root.js +4 -6
  619. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  620. package/dist/dev/ui/popover/popover-trigger.d.ts +1 -1
  621. package/dist/dev/ui/popover/popover-trigger.js +2 -4
  622. package/dist/dev/ui/popover/popover-trigger.js.map +1 -1
  623. package/dist/dev/ui/poster/index.js +1 -2
  624. package/dist/dev/ui/poster/poster.d.ts +1 -1
  625. package/dist/dev/ui/poster/poster.js +3 -5
  626. package/dist/dev/ui/poster/poster.js.map +1 -1
  627. package/dist/dev/ui/seek-button/index.js +1 -2
  628. package/dist/dev/ui/seek-button/seek-button.d.ts +1 -1
  629. package/dist/dev/ui/seek-button/seek-button.js +3 -5
  630. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  631. package/dist/dev/ui/slider/context.js +2 -4
  632. package/dist/dev/ui/slider/context.js.map +1 -1
  633. package/dist/dev/ui/slider/index.js +1 -2
  634. package/dist/dev/ui/slider/index.parts.js +1 -2
  635. package/dist/dev/ui/slider/slider-buffer.d.ts +1 -1
  636. package/dist/dev/ui/slider/slider-buffer.js +2 -4
  637. package/dist/dev/ui/slider/slider-buffer.js.map +1 -1
  638. package/dist/dev/ui/slider/slider-fill.d.ts +1 -1
  639. package/dist/dev/ui/slider/slider-fill.js +2 -4
  640. package/dist/dev/ui/slider/slider-fill.js.map +1 -1
  641. package/dist/dev/ui/slider/slider-preview.d.ts +1 -1
  642. package/dist/dev/ui/slider/slider-preview.js +2 -4
  643. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  644. package/dist/dev/ui/slider/slider-root.d.ts +1 -1
  645. package/dist/dev/ui/slider/slider-root.js +3 -5
  646. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  647. package/dist/dev/ui/slider/slider-thumb.d.ts +1 -1
  648. package/dist/dev/ui/slider/slider-thumb.js +2 -4
  649. package/dist/dev/ui/slider/slider-thumb.js.map +1 -1
  650. package/dist/dev/ui/slider/slider-thumbnail.d.ts +1 -1
  651. package/dist/dev/ui/slider/slider-thumbnail.js +2 -4
  652. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  653. package/dist/dev/ui/slider/slider-track.d.ts +1 -1
  654. package/dist/dev/ui/slider/slider-track.js +2 -4
  655. package/dist/dev/ui/slider/slider-track.js.map +1 -1
  656. package/dist/dev/ui/slider/slider-value.d.ts +1 -1
  657. package/dist/dev/ui/slider/slider-value.js +2 -4
  658. package/dist/dev/ui/slider/slider-value.js.map +1 -1
  659. package/dist/dev/ui/thumbnail/index.js +1 -2
  660. package/dist/dev/ui/thumbnail/thumbnail.d.ts +1 -1
  661. package/dist/dev/ui/thumbnail/thumbnail.js +3 -5
  662. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  663. package/dist/dev/ui/time/index.js +1 -2
  664. package/dist/dev/ui/time/index.parts.js +1 -2
  665. package/dist/dev/ui/time/time-group.js +2 -4
  666. package/dist/dev/ui/time/time-group.js.map +1 -1
  667. package/dist/dev/ui/time/time-separator.js +2 -4
  668. package/dist/dev/ui/time/time-separator.js.map +1 -1
  669. package/dist/dev/ui/time/time-value.d.ts +1 -1
  670. package/dist/dev/ui/time/time-value.js +3 -5
  671. package/dist/dev/ui/time/time-value.js.map +1 -1
  672. package/dist/dev/ui/time-slider/index.js +1 -2
  673. package/dist/dev/ui/time-slider/index.parts.js +1 -2
  674. package/dist/dev/ui/time-slider/time-slider-root.d.ts +1 -1
  675. package/dist/dev/ui/time-slider/time-slider-root.js +3 -5
  676. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  677. package/dist/dev/ui/tooltip/context.d.ts +2 -3
  678. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  679. package/dist/dev/ui/tooltip/context.js +2 -4
  680. package/dist/dev/ui/tooltip/context.js.map +1 -1
  681. package/dist/dev/ui/tooltip/group-context.js +2 -4
  682. package/dist/dev/ui/tooltip/group-context.js.map +1 -1
  683. package/dist/dev/ui/tooltip/index.js +1 -2
  684. package/dist/dev/ui/tooltip/index.parts.js +1 -2
  685. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts +1 -1
  686. package/dist/dev/ui/tooltip/tooltip-arrow.js +2 -4
  687. package/dist/dev/ui/tooltip/tooltip-arrow.js.map +1 -1
  688. package/dist/dev/ui/tooltip/tooltip-popup.d.ts +1 -1
  689. package/dist/dev/ui/tooltip/tooltip-popup.js +3 -5
  690. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  691. package/dist/dev/ui/tooltip/tooltip-provider.d.ts +1 -1
  692. package/dist/dev/ui/tooltip/tooltip-provider.js +3 -5
  693. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  694. package/dist/dev/ui/tooltip/tooltip-root.d.ts +1 -1
  695. package/dist/dev/ui/tooltip/tooltip-root.js +4 -6
  696. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  697. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts +1 -1
  698. package/dist/dev/ui/tooltip/tooltip-trigger.js +2 -4
  699. package/dist/dev/ui/tooltip/tooltip-trigger.js.map +1 -1
  700. package/dist/dev/ui/volume-slider/index.js +1 -2
  701. package/dist/dev/ui/volume-slider/index.parts.js +1 -2
  702. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts +1 -1
  703. package/dist/dev/ui/volume-slider/volume-slider-root.js +3 -5
  704. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  705. package/dist/dev/utils/attach-media-element.d.ts +9 -0
  706. package/dist/dev/utils/attach-media-element.d.ts.map +1 -0
  707. package/dist/dev/utils/attach-media-element.js +1 -1
  708. package/dist/dev/utils/media-props.d.ts +8 -0
  709. package/dist/dev/utils/media-props.d.ts.map +1 -0
  710. package/dist/dev/utils/media-props.js +14 -6
  711. package/dist/dev/utils/media-props.js.map +1 -1
  712. package/dist/dev/utils/merge-props.js +2 -3
  713. package/dist/dev/utils/merge-props.js.map +1 -1
  714. package/dist/dev/utils/use-composed-refs.d.ts +29 -0
  715. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -0
  716. package/dist/dev/utils/use-composed-refs.js +2 -4
  717. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  718. package/dist/dev/utils/use-destroy.d.ts +22 -0
  719. package/dist/dev/utils/use-destroy.d.ts.map +1 -0
  720. package/dist/dev/utils/use-destroy.js +2 -4
  721. package/dist/dev/utils/use-destroy.js.map +1 -1
  722. package/dist/dev/utils/use-force-render.js +2 -4
  723. package/dist/dev/utils/use-force-render.js.map +1 -1
  724. package/dist/dev/utils/use-latest-ref.d.ts +18 -0
  725. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -0
  726. package/dist/dev/utils/use-latest-ref.js +2 -4
  727. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  728. package/dist/dev/utils/use-media-instance.d.ts +16 -0
  729. package/dist/dev/utils/use-media-instance.d.ts.map +1 -0
  730. package/dist/dev/utils/use-media-instance.js +2 -4
  731. package/dist/dev/utils/use-media-instance.js.map +1 -1
  732. package/dist/dev/utils/use-render.js +2 -4
  733. package/dist/dev/utils/use-render.js.map +1 -1
  734. package/dist/dev/utils/use-safe-id.js +3 -5
  735. package/dist/dev/utils/use-safe-id.js.map +1 -1
  736. package/package.json +11 -11
  737. package/dist/default/presets/error-dialog.js +0 -51
  738. package/dist/default/presets/error-dialog.js.map +0 -1
  739. package/dist/dev/presets/error-dialog.js +0 -51
  740. package/dist/dev/presets/error-dialog.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,6 +1,6 @@
1
1
  import { UIComponentProps } from "../../utils/types.js";
2
- import * as react from "react";
3
2
  import { SliderState } from "@videojs/core";
3
+ import * as react from "react";
4
4
 
5
5
  //#region src/ui/slider/slider-track.d.ts
6
6
  interface SliderTrackProps extends UIComponentProps<'div', SliderState> {}
@@ -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,6 +1,6 @@
1
1
  import { UIComponentProps } from "../../utils/types.js";
2
- import * as react from "react";
3
2
  import { SliderState } from "@videojs/core";
3
+ import * as react from "react";
4
4
 
5
5
  //#region src/ui/slider/slider-value.d.ts
6
6
  interface SliderValueProps extends UIComponentProps<'output', SliderState> {
@@ -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"}
@@ -1,3 +1,2 @@
1
1
  import { Thumbnail } from "./thumbnail.js";
2
-
3
- export { Thumbnail };
2
+ export { Thumbnail };
@@ -1,6 +1,6 @@
1
1
  import { UIComponentProps } from "../../utils/types.js";
2
- import * as react from "react";
3
2
  import { ThumbnailCore, ThumbnailImage } from "@videojs/core";
3
+ import * as react from "react";
4
4
 
5
5
  //#region src/ui/thumbnail/thumbnail.d.ts
6
6
  interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {
@@ -1,13 +1,11 @@
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";
5
+ import { ThumbnailCore, ThumbnailDataAttrs, mapCuesToThumbnails } from "@videojs/core";
6
6
  import { createThumbnail, selectTextTrack } from "@videojs/core/dom";
7
7
  import { forwardRef, useMemo, useRef, useState } from "react";
8
8
  import { jsx } from "react/jsx-runtime";
9
- 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;
@@ -79,7 +77,7 @@ const Thumbnail = forwardRef(function Thumbnail(componentProps, forwardedRef) {
79
77
  ]
80
78
  });
81
79
  });
82
-
83
80
  //#endregion
84
81
  export { Thumbnail };
82
+
85
83
  //# 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 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,KAAA,EAAU;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,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,6 +1,6 @@
1
1
  import { UIComponentProps } from "../../utils/types.js";
2
- import * as react from "react";
3
2
  import { TimeCore } from "@videojs/core";
3
+ import * as react from "react";
4
4
 
5
5
  //#region src/ui/time/time-value.d.ts
6
6
  interface ValueProps extends Omit<UIComponentProps<'time', TimeCore.State>, 'children'>, TimeCore.Props {}
@@ -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";
4
+ import { TimeCore, TimeDataAttrs } from "@videojs/core";
5
5
  import { logMissingFeature, selectTime } from "@videojs/core/dom";
6
6
  import { forwardRef, useState } from "react";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
- 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,6 +1,6 @@
1
1
  import { UIComponentProps } from "../../utils/types.js";
2
- import * as react from "react";
3
2
  import { TimeSliderCore } from "@videojs/core";
3
+ import * as react from "react";
4
4
 
5
5
  //#region src/ui/time-slider/time-slider-root.d.ts
6
6
  interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {
@@ -1,16 +1,14 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { usePlayer } from "../../player/context.js";
4
3
  import { useLatestRef } from "../../utils/use-latest-ref.js";
5
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";
7
+ import { TimeSliderCore, TimeSliderDataAttrs } from "@videojs/core";
8
8
  import { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectTime } from "@videojs/core/dom";
9
9
  import { forwardRef, useState } from "react";
10
10
  import { jsx } from "react/jsx-runtime";
11
- 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) {
@@ -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.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;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 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.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"}
@@ -1,12 +1,11 @@
1
+ import { StateAttrMap, TooltipCore } from "@videojs/core";
1
2
  import { TooltipApi } from "@videojs/core/dom";
2
- import { StateAttrMap as StateAttrMap$1, TooltipCore } from "@videojs/core";
3
-
4
3
  //#region src/ui/tooltip/context.d.ts
5
4
  interface TooltipContextValue {
6
5
  core: TooltipCore;
7
6
  tooltip: TooltipApi;
8
7
  state: TooltipCore.State;
9
- stateAttrMap: StateAttrMap$1<TooltipCore.State>;
8
+ stateAttrMap: StateAttrMap<TooltipCore.State>;
10
9
  anchorName: string;
11
10
  popupId: string;
12
11
  }
@@ -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,YAAA,CAAa,WAAA,CAAY,KAAA;EACvC,UAAA;EACA,OAAA;AAAA;AAAA,iBAOc,iBAAA,CAAA,GAAqB,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,7 @@ 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
-
14
11
  //#endregion
15
12
  export { TooltipContextProvider, useTooltipContext };
13
+
16
14
  //# 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}\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,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,4 +1,3 @@
1
1
  import { 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, 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,6 +1,6 @@
1
1
  import { UIComponentProps } from "../../utils/types.js";
2
- import * as react from "react";
3
2
  import { TooltipState } from "@videojs/core";
3
+ import * as react from "react";
4
4
 
5
5
  //#region src/ui/tooltip/tooltip-arrow.d.ts
6
6
  interface TooltipArrowProps extends UIComponentProps<'div', TooltipState> {}
@@ -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,6 +1,6 @@
1
1
  import { UIComponentProps } from "../../utils/types.js";
2
- import * as react from "react";
3
2
  import { TooltipState } from "@videojs/core";
3
+ import * as react from "react";
4
4
 
5
5
  //#region src/ui/tooltip/tooltip-popup.d.ts
6
6
  interface TooltipPopupProps extends UIComponentProps<'div', TooltipState> {}
@@ -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";
5
+ import { TooltipCSSVars } from "@videojs/core";
6
6
  import { getAnchorPositionStyle, getPopupPositionRect, resolveOffsets } from "@videojs/core/dom";
7
7
  import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from "react";
8
- 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",
@@ -100,7 +98,7 @@ const TooltipPopup = forwardRef(function TooltipPopup({ render, className, style
100
98
  ]
101
99
  });
102
100
  });
103
-
104
101
  //#endregion
105
102
  export { TooltipPopup };
103
+
106
104
  //# sourceMappingURL=tooltip-popup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-popup.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\nimport { TooltipCSSVars } from '@videojs/core';\nimport { getAnchorPositionStyle, getPopupPositionRect, resolveOffsets } from '@videojs/core/dom';\nimport { supportsAnchorPositioning } from '@videojs/utils/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipPopupProps extends UIComponentProps<'div', TooltipState> {}\n\nconst POPUP_RESET: CSSProperties = { position: 'fixed', inset: 'auto', margin: 0 };\n\n/** Container for the tooltip content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */\nexport const TooltipPopup = forwardRef<HTMLDivElement, TooltipPopupProps>(function TooltipPopup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { core, tooltip, state, stateAttrMap, anchorName, popupId } = useTooltipContext();\n const internalRef = useRef<HTMLDivElement>(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n tooltip.setPopupElement(el);\n if (el && supportsAnchorPositioning()) {\n el.style.setProperty('position-anchor', `--${anchorName}`);\n }\n },\n [tooltip, anchorName]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: state.side, align: state.align }), [state.side, state.align]);\n\n // CSS Anchor Positioning — computed from state, no measurement needed.\n // `position-anchor` is set imperatively in the ref callback above\n // because React's style prop silently drops unrecognised CSS properties.\n const anchorStyle = useMemo(() => {\n if (!supportsAnchorPositioning()) return null;\n const { positionAnchor: _, ...rest } = getAnchorPositionStyle(\n anchorName,\n posOpts,\n undefined,\n undefined,\n undefined,\n undefined,\n TooltipCSSVars\n );\n return rest as CSSProperties;\n }, [anchorName, posOpts]);\n\n // Manual fallback — measure rects after layout, before paint.\n const [manualStyle, setManualStyle] = useState<CSSProperties | null>(null);\n\n useLayoutEffect(() => {\n if (supportsAnchorPositioning()) return;\n if (!state.open) {\n setManualStyle(null);\n return;\n }\n\n function measure(): void {\n const triggerEl = tooltip.triggerElement;\n const popupEl = internalRef.current;\n if (!triggerEl || !popupEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const popupRect = getPopupPositionRect(popupEl);\n const boundaryRect = document.documentElement.getBoundingClientRect();\n const offsets = resolveOffsets(popupEl, TooltipCSSVars);\n\n setManualStyle(\n getAnchorPositionStyle(\n anchorName,\n posOpts,\n triggerRect,\n popupRect,\n boundaryRect,\n offsets,\n TooltipCSSVars\n ) as CSSProperties\n );\n }\n\n measure();\n const triggerEl = tooltip.triggerElement;\n const popupEl = internalRef.current;\n\n let rafId = 0;\n function reposition(): void {\n cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(measure);\n }\n\n // Re-measure after the tooltip has entered the top layer and whenever\n // its own size or the trigger size changes.\n reposition();\n\n const resizeObserver =\n typeof ResizeObserver === 'function'\n ? new ResizeObserver(() => {\n reposition();\n })\n : null;\n\n if (triggerEl && resizeObserver) {\n resizeObserver.observe(triggerEl);\n }\n\n if (popupEl && resizeObserver) {\n resizeObserver.observe(popupEl);\n }\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true });\n window.addEventListener('resize', reposition);\n\n return () => {\n cancelAnimationFrame(rafId);\n resizeObserver?.disconnect();\n window.removeEventListener('scroll', reposition, true);\n window.removeEventListener('resize', reposition);\n };\n }, [state.open, anchorName, posOpts, tooltip]);\n\n // Anchor path uses computed styles; manual path uses measured styles;\n // fallback resets UA [popover] defaults until positioning is computed.\n const positioningStyle = anchorStyle ?? manualStyle ?? POPUP_RESET;\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n // Remap DOM focus events to React synthetic event names.\n const { onFocusOut, ...restPopupProps } = tooltip.popupProps;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [\n {\n id: popupId,\n style: positioningStyle,\n ...core.getPopupAttrs(state),\n },\n { ...restPopupProps, onBlur: onFocusOut },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace TooltipPopup {\n export type Props = TooltipPopupProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;;;;;;AAgBA,MAAM,cAA6B;CAAE,UAAU;CAAS,OAAO;CAAQ,QAAQ;CAAG;;AAGlF,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,MAAM,SAAS,OAAO,cAAc,YAAY,YAAY,mBAAmB;CACvF,MAAM,cAAc,OAAuB,KAAK;CAYhD,MAAM,cAAc,gBAAgB,cAVnB,aACd,OAA8B;AAC7B,UAAQ,gBAAgB,GAAG;AAC3B,MAAI,MAAM,2BAA2B,CACnC,IAAG,MAAM,YAAY,mBAAmB,KAAK,aAAa;IAG9D,CAAC,SAAS,WAAW,CACtB,EAE2D,YAAY;CAIxE,MAAM,UAAU,eAAe;EAAE,MAAM,MAAM;EAAM,OAAO,MAAM;EAAO,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,CAAC;CAKpG,MAAM,cAAc,cAAc;AAChC,MAAI,CAAC,2BAA2B,CAAE,QAAO;EACzC,MAAM,EAAE,gBAAgB,GAAG,GAAG,SAAS,uBACrC,YACA,SACA,QACA,QACA,QACA,QACA,eACD;AACD,SAAO;IACN,CAAC,YAAY,QAAQ,CAAC;CAGzB,MAAM,CAAC,aAAa,kBAAkB,SAA+B,KAAK;AAE1E,uBAAsB;AACpB,MAAI,2BAA2B,CAAE;AACjC,MAAI,CAAC,MAAM,MAAM;AACf,kBAAe,KAAK;AACpB;;EAGF,SAAS,UAAgB;GACvB,MAAM,YAAY,QAAQ;GAC1B,MAAM,UAAU,YAAY;AAC5B,OAAI,CAAC,aAAa,CAAC,QAAS;AAO5B,kBACE,uBACE,YACA,SARgB,UAAU,uBAAuB,EACnC,qBAAqB,QAAQ,EAC1B,SAAS,gBAAgB,uBAAuB,EACrD,eAAe,SAAS,eAAe,EAUnD,eACD,CACF;;AAGH,WAAS;EACT,MAAM,YAAY,QAAQ;EAC1B,MAAM,UAAU,YAAY;EAE5B,IAAI,QAAQ;EACZ,SAAS,aAAmB;AAC1B,wBAAqB,MAAM;AAC3B,WAAQ,sBAAsB,QAAQ;;AAKxC,cAAY;EAEZ,MAAM,iBACJ,OAAO,mBAAmB,aACtB,IAAI,qBAAqB;AACvB,eAAY;IACZ,GACF;AAEN,MAAI,aAAa,eACf,gBAAe,QAAQ,UAAU;AAGnC,MAAI,WAAW,eACb,gBAAe,QAAQ,QAAQ;AAGjC,SAAO,iBAAiB,UAAU,YAAY;GAAE,SAAS;GAAM,SAAS;GAAM,CAAC;AAC/E,SAAO,iBAAiB,UAAU,WAAW;AAE7C,eAAa;AACX,wBAAqB,MAAM;AAC3B,mBAAgB,YAAY;AAC5B,UAAO,oBAAoB,UAAU,YAAY,KAAK;AACtD,UAAO,oBAAoB,UAAU,WAAW;;IAEjD;EAAC,MAAM;EAAM;EAAY;EAAS;EAAQ,CAAC;CAI9C,MAAM,mBAAmB,eAAe,eAAe;AAIvD,KAAI,CAAC,MAAM,KACT,QAAO;CAIT,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;AAElD,QAAO,cACL,OACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,MAAM;IAC7B;GACD;IAAE,GAAG;IAAgB,QAAQ;IAAY;GACzC;GACD;EACF,CACF;EACD"}
1
+ {"version":3,"file":"tooltip-popup.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\nimport { TooltipCSSVars } from '@videojs/core';\nimport { getAnchorPositionStyle, getPopupPositionRect, resolveOffsets } from '@videojs/core/dom';\nimport { supportsAnchorPositioning } from '@videojs/utils/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipPopupProps extends UIComponentProps<'div', TooltipState> {}\n\nconst POPUP_RESET: CSSProperties = { position: 'fixed', inset: 'auto', margin: 0 };\n\n/** Container for the tooltip content. Positioned relative to the trigger using CSS anchor positioning with a JavaScript fallback. */\nexport const TooltipPopup = forwardRef<HTMLDivElement, TooltipPopupProps>(function TooltipPopup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { core, tooltip, state, stateAttrMap, anchorName, popupId } = useTooltipContext();\n const internalRef = useRef<HTMLDivElement>(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n tooltip.setPopupElement(el);\n if (el && supportsAnchorPositioning()) {\n el.style.setProperty('position-anchor', `--${anchorName}`);\n }\n },\n [tooltip, anchorName]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: state.side, align: state.align }), [state.side, state.align]);\n\n // CSS Anchor Positioning — computed from state, no measurement needed.\n // `position-anchor` is set imperatively in the ref callback above\n // because React's style prop silently drops unrecognised CSS properties.\n const anchorStyle = useMemo(() => {\n if (!supportsAnchorPositioning()) return null;\n const { positionAnchor: _, ...rest } = getAnchorPositionStyle(\n anchorName,\n posOpts,\n undefined,\n undefined,\n undefined,\n undefined,\n TooltipCSSVars\n );\n return rest as CSSProperties;\n }, [anchorName, posOpts]);\n\n // Manual fallback — measure rects after layout, before paint.\n const [manualStyle, setManualStyle] = useState<CSSProperties | null>(null);\n\n useLayoutEffect(() => {\n if (supportsAnchorPositioning()) return;\n if (!state.open) {\n setManualStyle(null);\n return;\n }\n\n function measure(): void {\n const triggerEl = tooltip.triggerElement;\n const popupEl = internalRef.current;\n if (!triggerEl || !popupEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const popupRect = getPopupPositionRect(popupEl);\n const boundaryRect = document.documentElement.getBoundingClientRect();\n const offsets = resolveOffsets(popupEl, TooltipCSSVars);\n\n setManualStyle(\n getAnchorPositionStyle(\n anchorName,\n posOpts,\n triggerRect,\n popupRect,\n boundaryRect,\n offsets,\n TooltipCSSVars\n ) as CSSProperties\n );\n }\n\n measure();\n const triggerEl = tooltip.triggerElement;\n const popupEl = internalRef.current;\n\n let rafId = 0;\n function reposition(): void {\n cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(measure);\n }\n\n // Re-measure after the tooltip has entered the top layer and whenever\n // its own size or the trigger size changes.\n reposition();\n\n const resizeObserver =\n typeof ResizeObserver === 'function'\n ? new ResizeObserver(() => {\n reposition();\n })\n : null;\n\n if (triggerEl && resizeObserver) {\n resizeObserver.observe(triggerEl);\n }\n\n if (popupEl && resizeObserver) {\n resizeObserver.observe(popupEl);\n }\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true });\n window.addEventListener('resize', reposition);\n\n return () => {\n cancelAnimationFrame(rafId);\n resizeObserver?.disconnect();\n window.removeEventListener('scroll', reposition, true);\n window.removeEventListener('resize', reposition);\n };\n }, [state.open, anchorName, posOpts, tooltip]);\n\n // Anchor path uses computed styles; manual path uses measured styles;\n // fallback resets UA [popover] defaults until positioning is computed.\n const positioningStyle = anchorStyle ?? manualStyle ?? POPUP_RESET;\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n // Remap DOM focus events to React synthetic event names.\n const { onFocusOut, ...restPopupProps } = tooltip.popupProps;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: composedRef,\n props: [\n {\n id: popupId,\n style: positioningStyle,\n ...core.getPopupAttrs(state),\n },\n { ...restPopupProps, onBlur: onFocusOut },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace TooltipPopup {\n export type Props = TooltipPopupProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;;;;AAgBA,MAAM,cAA6B;CAAE,UAAU;CAAS,OAAO;CAAQ,QAAQ;CAAG;;AAGlF,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,MAAM,SAAS,OAAO,cAAc,YAAY,YAAY,mBAAmB;CACvF,MAAM,cAAc,OAAuB,KAAK;CAYhD,MAAM,cAAc,gBAAgB,cAVnB,aACd,OAA8B;AAC7B,UAAQ,gBAAgB,GAAG;AAC3B,MAAI,MAAM,2BAA2B,CACnC,IAAG,MAAM,YAAY,mBAAmB,KAAK,aAAa;IAG9D,CAAC,SAAS,WAAW,CACtB,EAE2D,YAAY;CAIxE,MAAM,UAAU,eAAe;EAAE,MAAM,MAAM;EAAM,OAAO,MAAM;EAAO,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,CAAC;CAKpG,MAAM,cAAc,cAAc;AAChC,MAAI,CAAC,2BAA2B,CAAE,QAAO;EACzC,MAAM,EAAE,gBAAgB,GAAG,GAAG,SAAS,uBACrC,YACA,SACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,eACD;AACD,SAAO;IACN,CAAC,YAAY,QAAQ,CAAC;CAGzB,MAAM,CAAC,aAAa,kBAAkB,SAA+B,KAAK;AAE1E,uBAAsB;AACpB,MAAI,2BAA2B,CAAE;AACjC,MAAI,CAAC,MAAM,MAAM;AACf,kBAAe,KAAK;AACpB;;EAGF,SAAS,UAAgB;GACvB,MAAM,YAAY,QAAQ;GAC1B,MAAM,UAAU,YAAY;AAC5B,OAAI,CAAC,aAAa,CAAC,QAAS;AAO5B,kBACE,uBACE,YACA,SARgB,UAAU,uBAAuB,EACnC,qBAAqB,QAAQ,EAC1B,SAAS,gBAAgB,uBAAuB,EACrD,eAAe,SAAS,eAAe,EAUnD,eACD,CACF;;AAGH,WAAS;EACT,MAAM,YAAY,QAAQ;EAC1B,MAAM,UAAU,YAAY;EAE5B,IAAI,QAAQ;EACZ,SAAS,aAAmB;AAC1B,wBAAqB,MAAM;AAC3B,WAAQ,sBAAsB,QAAQ;;AAKxC,cAAY;EAEZ,MAAM,iBACJ,OAAO,mBAAmB,aACtB,IAAI,qBAAqB;AACvB,eAAY;IACZ,GACF;AAEN,MAAI,aAAa,eACf,gBAAe,QAAQ,UAAU;AAGnC,MAAI,WAAW,eACb,gBAAe,QAAQ,QAAQ;AAGjC,SAAO,iBAAiB,UAAU,YAAY;GAAE,SAAS;GAAM,SAAS;GAAM,CAAC;AAC/E,SAAO,iBAAiB,UAAU,WAAW;AAE7C,eAAa;AACX,wBAAqB,MAAM;AAC3B,mBAAgB,YAAY;AAC5B,UAAO,oBAAoB,UAAU,YAAY,KAAK;AACtD,UAAO,oBAAoB,UAAU,WAAW;;IAEjD;EAAC,MAAM;EAAM;EAAY;EAAS;EAAQ,CAAC;CAI9C,MAAM,mBAAmB,eAAe,eAAe;AAIvD,KAAI,CAAC,MAAM,KACT,QAAO;CAIT,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;AAElD,QAAO,cACL,OACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,MAAM;IAC7B;GACD;IAAE,GAAG;IAAgB,QAAQ;IAAY;GACzC;GACD;EACF,CACF;EACD"}
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
1
  import { TooltipGroupProps } from "@videojs/core";
2
+ import { ReactNode } from "react";
3
3
 
4
4
  //#region src/ui/tooltip/tooltip-provider.d.ts
5
5
  interface TooltipProviderProps extends TooltipGroupProps {