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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/dist/default/i18n/context.js +0 -1
  2. package/dist/default/i18n/context.js.map +1 -1
  3. package/dist/default/i18n/create-i18n.js +0 -1
  4. package/dist/default/i18n/create-i18n.js.map +1 -1
  5. package/dist/default/media/audio.js +0 -1
  6. package/dist/default/media/audio.js.map +1 -1
  7. package/dist/default/media/video.js +0 -1
  8. package/dist/default/media/video.js.map +1 -1
  9. package/dist/default/player/container.js +0 -1
  10. package/dist/default/player/container.js.map +1 -1
  11. package/dist/default/player/context.js +0 -1
  12. package/dist/default/player/context.js.map +1 -1
  13. package/dist/default/player/create-player.js +0 -1
  14. package/dist/default/player/create-player.js.map +1 -1
  15. package/dist/default/player/popup-group-context.js +0 -1
  16. package/dist/default/player/popup-group-context.js.map +1 -1
  17. package/dist/default/presets/audio/minimal-skin.css +16 -19
  18. package/dist/default/presets/audio/minimal-skin.js +1 -0
  19. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  20. package/dist/default/presets/audio/minimal-skin.tailwind.js +1 -0
  21. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  22. package/dist/default/presets/audio/skin.css +27 -30
  23. package/dist/default/presets/audio/skin.js +1 -0
  24. package/dist/default/presets/audio/skin.js.map +1 -1
  25. package/dist/default/presets/audio/skin.tailwind.js +1 -0
  26. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  27. package/dist/default/presets/background/skin.js +1 -0
  28. package/dist/default/presets/background/skin.js.map +1 -1
  29. package/dist/default/presets/live-audio/minimal-skin.css +16 -19
  30. package/dist/default/presets/live-audio/minimal-skin.js +1 -0
  31. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
  32. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +1 -0
  33. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  34. package/dist/default/presets/live-audio/skin.css +27 -30
  35. package/dist/default/presets/live-audio/skin.js +1 -0
  36. package/dist/default/presets/live-audio/skin.js.map +1 -1
  37. package/dist/default/presets/live-audio/skin.tailwind.js +1 -0
  38. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
  39. package/dist/default/presets/live-video/minimal-skin.css +20 -19
  40. package/dist/default/presets/live-video/minimal-skin.js +1 -0
  41. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  42. package/dist/default/presets/live-video/minimal-skin.tailwind.js +1 -0
  43. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  44. package/dist/default/presets/live-video/skin.css +31 -30
  45. package/dist/default/presets/live-video/skin.js +1 -0
  46. package/dist/default/presets/live-video/skin.js.map +1 -1
  47. package/dist/default/presets/live-video/skin.tailwind.js +1 -0
  48. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  49. package/dist/default/presets/video/minimal-skin.css +20 -19
  50. package/dist/default/presets/video/minimal-skin.js +1 -0
  51. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  52. package/dist/default/presets/video/minimal-skin.tailwind.js +1 -0
  53. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  54. package/dist/default/presets/video/skin.css +31 -30
  55. package/dist/default/presets/video/skin.js +1 -0
  56. package/dist/default/presets/video/skin.js.map +1 -1
  57. package/dist/default/presets/video/skin.tailwind.js +1 -0
  58. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  59. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +6 -6
  60. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  61. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  62. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  63. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  64. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  65. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  66. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  67. package/dist/default/ui/airplay-button/airplay-button.js +0 -1
  68. package/dist/default/ui/airplay-button/airplay-button.js.map +1 -1
  69. package/dist/default/ui/alert-dialog/alert-dialog-close.js +0 -1
  70. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  71. package/dist/default/ui/alert-dialog/alert-dialog-description.js +0 -1
  72. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  73. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +0 -1
  74. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  75. package/dist/default/ui/alert-dialog/alert-dialog-root.js +0 -1
  76. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  77. package/dist/default/ui/alert-dialog/alert-dialog-title.js +0 -1
  78. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  79. package/dist/default/ui/alert-dialog/context.js +0 -1
  80. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  81. package/dist/default/ui/audio-track/use-audio-track-options.js +0 -1
  82. package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -1
  83. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js +0 -1
  84. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  85. package/dist/default/ui/buffering-indicator/buffering-indicator.js +0 -1
  86. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  87. package/dist/default/ui/captions-button/captions-button.js +0 -1
  88. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  89. package/dist/default/ui/captions-radio-group/captions-radio-group.js +0 -1
  90. package/dist/default/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  91. package/dist/default/ui/captions-radio-group/use-captions-options.js +0 -1
  92. package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -1
  93. package/dist/default/ui/cast-button/cast-button.js +0 -1
  94. package/dist/default/ui/cast-button/cast-button.js.map +1 -1
  95. package/dist/default/ui/controls/context.js +0 -1
  96. package/dist/default/ui/controls/context.js.map +1 -1
  97. package/dist/default/ui/controls/controls-group.js +0 -1
  98. package/dist/default/ui/controls/controls-group.js.map +1 -1
  99. package/dist/default/ui/controls/controls-root.js +0 -1
  100. package/dist/default/ui/controls/controls-root.js.map +1 -1
  101. package/dist/default/ui/create-context-part.js +0 -1
  102. package/dist/default/ui/create-context-part.js.map +1 -1
  103. package/dist/default/ui/create-media-button.js +0 -1
  104. package/dist/default/ui/create-media-button.js.map +1 -1
  105. package/dist/default/ui/error-dialog/context.js +0 -1
  106. package/dist/default/ui/error-dialog/context.js.map +1 -1
  107. package/dist/default/ui/error-dialog/error-dialog-close.js +0 -1
  108. package/dist/default/ui/error-dialog/error-dialog-close.js.map +1 -1
  109. package/dist/default/ui/error-dialog/error-dialog-description.js +0 -1
  110. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -1
  111. package/dist/default/ui/error-dialog/error-dialog-root.js +0 -1
  112. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -1
  113. package/dist/default/ui/error-dialog/error-dialog-title.js +0 -1
  114. package/dist/default/ui/error-dialog/error-dialog-title.js.map +1 -1
  115. package/dist/default/ui/fullscreen-button/fullscreen-button.js +0 -1
  116. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  117. package/dist/default/ui/gesture/gesture.js +0 -1
  118. package/dist/default/ui/gesture/gesture.js.map +1 -1
  119. package/dist/default/ui/gesture/use-doubletap-gesture.js +0 -1
  120. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  121. package/dist/default/ui/gesture/use-tap-gesture.js +0 -1
  122. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  123. package/dist/default/ui/hooks/create-radio-options-hook.js +0 -1
  124. package/dist/default/ui/hooks/create-radio-options-hook.js.map +1 -1
  125. package/dist/default/ui/hooks/use-button.js +0 -1
  126. package/dist/default/ui/hooks/use-button.js.map +1 -1
  127. package/dist/default/ui/hooks/use-positioned-state.js +0 -1
  128. package/dist/default/ui/hooks/use-positioned-state.js.map +1 -1
  129. package/dist/default/ui/hooks/use-slider.js +0 -1
  130. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  131. package/dist/default/ui/hotkey/hotkey.js +0 -1
  132. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  133. package/dist/default/ui/hotkey/use-hotkey-shortcut.js +0 -1
  134. package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  135. package/dist/default/ui/hotkey/use-hotkey.js +0 -1
  136. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
  137. package/dist/default/ui/input-indicator/use-indicator-visibility.js +0 -1
  138. package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  139. package/dist/default/ui/input-indicator/use-input-action-subscription.js +0 -1
  140. package/dist/default/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  141. package/dist/default/ui/input-indicator/use-input-indicator-root.js +0 -1
  142. package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  143. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js +0 -1
  144. package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  145. package/dist/default/ui/live-button/live-button.js +0 -1
  146. package/dist/default/ui/live-button/live-button.js.map +1 -1
  147. package/dist/default/ui/menu/context.js +0 -1
  148. package/dist/default/ui/menu/context.js.map +1 -1
  149. package/dist/default/ui/menu/menu-checkbox-item.js +0 -1
  150. package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
  151. package/dist/default/ui/menu/menu-content.js +0 -1
  152. package/dist/default/ui/menu/menu-content.js.map +1 -1
  153. package/dist/default/ui/menu/menu-group-label.js +0 -1
  154. package/dist/default/ui/menu/menu-group-label.js.map +1 -1
  155. package/dist/default/ui/menu/menu-group.js +0 -1
  156. package/dist/default/ui/menu/menu-group.js.map +1 -1
  157. package/dist/default/ui/menu/menu-item-indicator.js +0 -1
  158. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  159. package/dist/default/ui/menu/menu-item.js +0 -1
  160. package/dist/default/ui/menu/menu-item.js.map +1 -1
  161. package/dist/default/ui/menu/menu-radio-group.js +0 -1
  162. package/dist/default/ui/menu/menu-radio-group.js.map +1 -1
  163. package/dist/default/ui/menu/menu-radio-item.js +0 -1
  164. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  165. package/dist/default/ui/menu/menu-root.js +0 -1
  166. package/dist/default/ui/menu/menu-root.js.map +1 -1
  167. package/dist/default/ui/menu/menu-separator.js +0 -1
  168. package/dist/default/ui/menu/menu-separator.js.map +1 -1
  169. package/dist/default/ui/menu/menu-trigger.js +26 -12
  170. package/dist/default/ui/menu/menu-trigger.js.map +1 -1
  171. package/dist/default/ui/menu/use-menu-group.js +0 -1
  172. package/dist/default/ui/menu/use-menu-group.js.map +1 -1
  173. package/dist/default/ui/mute-button/mute-button.js +0 -1
  174. package/dist/default/ui/mute-button/mute-button.js.map +1 -1
  175. package/dist/default/ui/pip-button/pip-button.js +0 -1
  176. package/dist/default/ui/pip-button/pip-button.js.map +1 -1
  177. package/dist/default/ui/play-button/play-button.js +0 -1
  178. package/dist/default/ui/play-button/play-button.js.map +1 -1
  179. package/dist/default/ui/playback-rate/use-playback-rate-options.js +0 -1
  180. package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  181. package/dist/default/ui/playback-rate-button/playback-rate-button.js +0 -1
  182. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  183. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js +0 -1
  184. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  185. package/dist/default/ui/popover/context.js +0 -1
  186. package/dist/default/ui/popover/context.js.map +1 -1
  187. package/dist/default/ui/popover/popover-arrow.js +0 -1
  188. package/dist/default/ui/popover/popover-arrow.js.map +1 -1
  189. package/dist/default/ui/popover/popover-popup.js +0 -1
  190. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  191. package/dist/default/ui/popover/popover-root.js +0 -1
  192. package/dist/default/ui/popover/popover-root.js.map +1 -1
  193. package/dist/default/ui/popover/popover-trigger.js +0 -1
  194. package/dist/default/ui/popover/popover-trigger.js.map +1 -1
  195. package/dist/default/ui/popover/use-popup-position.js +0 -1
  196. package/dist/default/ui/popover/use-popup-position.js.map +1 -1
  197. package/dist/default/ui/poster/poster.js +0 -1
  198. package/dist/default/ui/poster/poster.js.map +1 -1
  199. package/dist/default/ui/quality/use-quality-options.js +0 -1
  200. package/dist/default/ui/quality/use-quality-options.js.map +1 -1
  201. package/dist/default/ui/quality-radio-group/quality-radio-group.js +0 -1
  202. package/dist/default/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  203. package/dist/default/ui/seek-button/seek-button.js +0 -1
  204. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  205. package/dist/default/ui/seek-indicator/context.js +0 -1
  206. package/dist/default/ui/seek-indicator/context.js.map +1 -1
  207. package/dist/default/ui/seek-indicator/seek-indicator-root.js +0 -1
  208. package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  209. package/dist/default/ui/seek-indicator/seek-indicator-value.js +0 -1
  210. package/dist/default/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  211. package/dist/default/ui/slider/context.js +0 -1
  212. package/dist/default/ui/slider/context.js.map +1 -1
  213. package/dist/default/ui/slider/slider-buffer.js +0 -1
  214. package/dist/default/ui/slider/slider-buffer.js.map +1 -1
  215. package/dist/default/ui/slider/slider-fill.js +0 -1
  216. package/dist/default/ui/slider/slider-fill.js.map +1 -1
  217. package/dist/default/ui/slider/slider-preview.js +0 -1
  218. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  219. package/dist/default/ui/slider/slider-root.js +0 -1
  220. package/dist/default/ui/slider/slider-root.js.map +1 -1
  221. package/dist/default/ui/slider/slider-thumb.js +0 -1
  222. package/dist/default/ui/slider/slider-thumb.js.map +1 -1
  223. package/dist/default/ui/slider/slider-thumbnail.js +0 -1
  224. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  225. package/dist/default/ui/slider/slider-track.js +0 -1
  226. package/dist/default/ui/slider/slider-track.js.map +1 -1
  227. package/dist/default/ui/slider/slider-value.js +0 -1
  228. package/dist/default/ui/slider/slider-value.js.map +1 -1
  229. package/dist/default/ui/status-announcer/status-announcer.js +0 -1
  230. package/dist/default/ui/status-announcer/status-announcer.js.map +1 -1
  231. package/dist/default/ui/status-indicator/context.js +0 -1
  232. package/dist/default/ui/status-indicator/context.js.map +1 -1
  233. package/dist/default/ui/status-indicator/status-indicator-root.js +0 -1
  234. package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -1
  235. package/dist/default/ui/status-indicator/status-indicator-value.js +0 -1
  236. package/dist/default/ui/status-indicator/status-indicator-value.js.map +1 -1
  237. package/dist/default/ui/thumbnail/thumbnail.js +0 -1
  238. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  239. package/dist/default/ui/time/time-group.js +0 -1
  240. package/dist/default/ui/time/time-group.js.map +1 -1
  241. package/dist/default/ui/time/time-separator.js +0 -1
  242. package/dist/default/ui/time/time-separator.js.map +1 -1
  243. package/dist/default/ui/time/time-value.js +0 -1
  244. package/dist/default/ui/time/time-value.js.map +1 -1
  245. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js +0 -1
  246. package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  247. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +0 -1
  248. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -1
  249. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js +0 -1
  250. package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -1
  251. package/dist/default/ui/time-slider/time-slider-root.js +0 -1
  252. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  253. package/dist/default/ui/tooltip/context.js +0 -1
  254. package/dist/default/ui/tooltip/context.js.map +1 -1
  255. package/dist/default/ui/tooltip/group-context.js +0 -1
  256. package/dist/default/ui/tooltip/group-context.js.map +1 -1
  257. package/dist/default/ui/tooltip/tooltip-arrow.js +0 -1
  258. package/dist/default/ui/tooltip/tooltip-arrow.js.map +1 -1
  259. package/dist/default/ui/tooltip/tooltip-label.js +0 -1
  260. package/dist/default/ui/tooltip/tooltip-label.js.map +1 -1
  261. package/dist/default/ui/tooltip/tooltip-popup.js +0 -1
  262. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  263. package/dist/default/ui/tooltip/tooltip-provider.js +0 -1
  264. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  265. package/dist/default/ui/tooltip/tooltip-root.js +0 -1
  266. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  267. package/dist/default/ui/tooltip/tooltip-shortcut.js +0 -1
  268. package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -1
  269. package/dist/default/ui/tooltip/tooltip-trigger.js +0 -1
  270. package/dist/default/ui/tooltip/tooltip-trigger.js.map +1 -1
  271. package/dist/default/ui/volume-indicator/context.js +0 -1
  272. package/dist/default/ui/volume-indicator/context.js.map +1 -1
  273. package/dist/default/ui/volume-indicator/volume-indicator-fill.js +0 -1
  274. package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  275. package/dist/default/ui/volume-indicator/volume-indicator-root.js +0 -1
  276. package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  277. package/dist/default/ui/volume-indicator/volume-indicator-value.js +0 -1
  278. package/dist/default/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  279. package/dist/default/ui/volume-slider/volume-slider-root.js +0 -1
  280. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  281. package/dist/default/utils/merge-props.js +0 -1
  282. package/dist/default/utils/merge-props.js.map +1 -1
  283. package/dist/default/utils/use-attach-iframe.js +0 -1
  284. package/dist/default/utils/use-attach-iframe.js.map +1 -1
  285. package/dist/default/utils/use-attach-media.js +0 -1
  286. package/dist/default/utils/use-attach-media.js.map +1 -1
  287. package/dist/default/utils/use-composed-refs.js +0 -1
  288. package/dist/default/utils/use-composed-refs.js.map +1 -1
  289. package/dist/default/utils/use-destroy.js +0 -1
  290. package/dist/default/utils/use-destroy.js.map +1 -1
  291. package/dist/default/utils/use-force-render.js +0 -1
  292. package/dist/default/utils/use-force-render.js.map +1 -1
  293. package/dist/default/utils/use-latest-ref.js +0 -1
  294. package/dist/default/utils/use-latest-ref.js.map +1 -1
  295. package/dist/default/utils/use-media-component.js +0 -1
  296. package/dist/default/utils/use-media-component.js.map +1 -1
  297. package/dist/default/utils/use-media-instance.js +0 -1
  298. package/dist/default/utils/use-media-instance.js.map +1 -1
  299. package/dist/default/utils/use-render.js +0 -1
  300. package/dist/default/utils/use-render.js.map +1 -1
  301. package/dist/default/utils/use-safe-id.js +0 -1
  302. package/dist/default/utils/use-safe-id.js.map +1 -1
  303. package/dist/dev/i18n/context.d.ts.map +1 -1
  304. package/dist/dev/i18n/context.js +0 -1
  305. package/dist/dev/i18n/context.js.map +1 -1
  306. package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
  307. package/dist/dev/i18n/create-i18n.js +0 -1
  308. package/dist/dev/i18n/create-i18n.js.map +1 -1
  309. package/dist/dev/media/audio.d.ts.map +1 -1
  310. package/dist/dev/media/audio.js +0 -1
  311. package/dist/dev/media/audio.js.map +1 -1
  312. package/dist/dev/media/video.d.ts.map +1 -1
  313. package/dist/dev/media/video.js +0 -1
  314. package/dist/dev/media/video.js.map +1 -1
  315. package/dist/dev/player/container.d.ts.map +1 -1
  316. package/dist/dev/player/container.js +0 -1
  317. package/dist/dev/player/container.js.map +1 -1
  318. package/dist/dev/player/context.d.ts.map +1 -1
  319. package/dist/dev/player/context.js +0 -1
  320. package/dist/dev/player/context.js.map +1 -1
  321. package/dist/dev/player/create-player.d.ts.map +1 -1
  322. package/dist/dev/player/create-player.js +0 -1
  323. package/dist/dev/player/create-player.js.map +1 -1
  324. package/dist/dev/player/popup-group-context.js +0 -1
  325. package/dist/dev/player/popup-group-context.js.map +1 -1
  326. package/dist/dev/presets/audio/minimal-skin.css +16 -19
  327. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  328. package/dist/dev/presets/audio/minimal-skin.js +1 -0
  329. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  330. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  331. package/dist/dev/presets/audio/minimal-skin.tailwind.js +1 -0
  332. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  333. package/dist/dev/presets/audio/skin.css +27 -30
  334. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  335. package/dist/dev/presets/audio/skin.js +1 -0
  336. package/dist/dev/presets/audio/skin.js.map +1 -1
  337. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  338. package/dist/dev/presets/audio/skin.tailwind.js +1 -0
  339. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  340. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  341. package/dist/dev/presets/background/skin.js +1 -0
  342. package/dist/dev/presets/background/skin.js.map +1 -1
  343. package/dist/dev/presets/live-audio/minimal-skin.css +16 -19
  344. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
  345. package/dist/dev/presets/live-audio/minimal-skin.js +1 -0
  346. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
  347. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
  348. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +1 -0
  349. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
  350. package/dist/dev/presets/live-audio/skin.css +27 -30
  351. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
  352. package/dist/dev/presets/live-audio/skin.js +1 -0
  353. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  354. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
  355. package/dist/dev/presets/live-audio/skin.tailwind.js +1 -0
  356. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
  357. package/dist/dev/presets/live-video/minimal-skin.css +20 -19
  358. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  359. package/dist/dev/presets/live-video/minimal-skin.js +1 -0
  360. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  361. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  362. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +1 -0
  363. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  364. package/dist/dev/presets/live-video/skin.css +31 -30
  365. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  366. package/dist/dev/presets/live-video/skin.js +1 -0
  367. package/dist/dev/presets/live-video/skin.js.map +1 -1
  368. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  369. package/dist/dev/presets/live-video/skin.tailwind.js +1 -0
  370. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  371. package/dist/dev/presets/video/minimal-skin.css +20 -19
  372. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  373. package/dist/dev/presets/video/minimal-skin.js +1 -0
  374. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  375. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  376. package/dist/dev/presets/video/minimal-skin.tailwind.js +1 -0
  377. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  378. package/dist/dev/presets/video/skin.css +31 -30
  379. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  380. package/dist/dev/presets/video/skin.js +1 -0
  381. package/dist/dev/presets/video/skin.js.map +1 -1
  382. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  383. package/dist/dev/presets/video/skin.tailwind.js +1 -0
  384. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  385. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +6 -6
  386. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  387. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  388. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  389. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  390. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  391. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  392. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  393. package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -1
  394. package/dist/dev/ui/airplay-button/airplay-button.js +0 -1
  395. package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -1
  396. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
  397. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +0 -1
  398. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  399. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
  400. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +0 -1
  401. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  402. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
  403. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +0 -1
  404. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  405. package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map +1 -1
  406. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +0 -1
  407. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  408. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
  409. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +0 -1
  410. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  411. package/dist/dev/ui/alert-dialog/context.d.ts.map +1 -1
  412. package/dist/dev/ui/alert-dialog/context.js +0 -1
  413. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  414. package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +1 -1
  415. package/dist/dev/ui/audio-track/use-audio-track-options.js +0 -1
  416. package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -1
  417. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts.map +1 -1
  418. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js +0 -1
  419. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
  420. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  421. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +0 -1
  422. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  423. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  424. package/dist/dev/ui/captions-button/captions-button.js +0 -1
  425. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  426. package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts.map +1 -1
  427. package/dist/dev/ui/captions-radio-group/captions-radio-group.js +0 -1
  428. package/dist/dev/ui/captions-radio-group/captions-radio-group.js.map +1 -1
  429. package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -1
  430. package/dist/dev/ui/captions-radio-group/use-captions-options.js +0 -1
  431. package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -1
  432. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -1
  433. package/dist/dev/ui/cast-button/cast-button.js +0 -1
  434. package/dist/dev/ui/cast-button/cast-button.js.map +1 -1
  435. package/dist/dev/ui/controls/context.js +0 -1
  436. package/dist/dev/ui/controls/context.js.map +1 -1
  437. package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
  438. package/dist/dev/ui/controls/controls-group.js +0 -1
  439. package/dist/dev/ui/controls/controls-group.js.map +1 -1
  440. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  441. package/dist/dev/ui/controls/controls-root.js +0 -1
  442. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  443. package/dist/dev/ui/create-context-part.js +0 -1
  444. package/dist/dev/ui/create-context-part.js.map +1 -1
  445. package/dist/dev/ui/create-media-button.js +0 -1
  446. package/dist/dev/ui/create-media-button.js.map +1 -1
  447. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -1
  448. package/dist/dev/ui/error-dialog/context.js +0 -1
  449. package/dist/dev/ui/error-dialog/context.js.map +1 -1
  450. package/dist/dev/ui/error-dialog/error-dialog-close.d.ts.map +1 -1
  451. package/dist/dev/ui/error-dialog/error-dialog-close.js +0 -1
  452. package/dist/dev/ui/error-dialog/error-dialog-close.js.map +1 -1
  453. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  454. package/dist/dev/ui/error-dialog/error-dialog-description.js +0 -1
  455. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -1
  456. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -1
  457. package/dist/dev/ui/error-dialog/error-dialog-root.js +0 -1
  458. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -1
  459. package/dist/dev/ui/error-dialog/error-dialog-title.d.ts.map +1 -1
  460. package/dist/dev/ui/error-dialog/error-dialog-title.js +0 -1
  461. package/dist/dev/ui/error-dialog/error-dialog-title.js.map +1 -1
  462. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  463. package/dist/dev/ui/fullscreen-button/fullscreen-button.js +0 -1
  464. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  465. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
  466. package/dist/dev/ui/gesture/gesture.js +0 -1
  467. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  468. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  469. package/dist/dev/ui/gesture/use-doubletap-gesture.js +0 -1
  470. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  471. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  472. package/dist/dev/ui/gesture/use-tap-gesture.js +0 -1
  473. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  474. package/dist/dev/ui/hooks/create-radio-options-hook.d.ts.map +1 -1
  475. package/dist/dev/ui/hooks/create-radio-options-hook.js +0 -1
  476. package/dist/dev/ui/hooks/create-radio-options-hook.js.map +1 -1
  477. package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
  478. package/dist/dev/ui/hooks/use-button.js +0 -1
  479. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  480. package/dist/dev/ui/hooks/use-positioned-state.js +0 -1
  481. package/dist/dev/ui/hooks/use-positioned-state.js.map +1 -1
  482. package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
  483. package/dist/dev/ui/hooks/use-slider.js +0 -1
  484. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  485. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  486. package/dist/dev/ui/hotkey/hotkey.js +0 -1
  487. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  488. package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -1
  489. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +0 -1
  490. package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
  491. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -1
  492. package/dist/dev/ui/hotkey/use-hotkey.js +0 -1
  493. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
  494. package/dist/dev/ui/input-indicator/use-indicator-visibility.js +0 -1
  495. package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
  496. package/dist/dev/ui/input-indicator/use-input-action-subscription.js +0 -1
  497. package/dist/dev/ui/input-indicator/use-input-action-subscription.js.map +1 -1
  498. package/dist/dev/ui/input-indicator/use-input-indicator-root.js +0 -1
  499. package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
  500. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js +0 -1
  501. package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
  502. package/dist/dev/ui/live-button/live-button.d.ts.map +1 -1
  503. package/dist/dev/ui/live-button/live-button.js +0 -1
  504. package/dist/dev/ui/live-button/live-button.js.map +1 -1
  505. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  506. package/dist/dev/ui/menu/context.js +0 -1
  507. package/dist/dev/ui/menu/context.js.map +1 -1
  508. package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -1
  509. package/dist/dev/ui/menu/menu-checkbox-item.js +0 -1
  510. package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -1
  511. package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
  512. package/dist/dev/ui/menu/menu-content.js +0 -1
  513. package/dist/dev/ui/menu/menu-content.js.map +1 -1
  514. package/dist/dev/ui/menu/menu-group-label.d.ts.map +1 -1
  515. package/dist/dev/ui/menu/menu-group-label.js +0 -1
  516. package/dist/dev/ui/menu/menu-group-label.js.map +1 -1
  517. package/dist/dev/ui/menu/menu-group.d.ts.map +1 -1
  518. package/dist/dev/ui/menu/menu-group.js +0 -1
  519. package/dist/dev/ui/menu/menu-group.js.map +1 -1
  520. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  521. package/dist/dev/ui/menu/menu-item-indicator.js +0 -1
  522. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  523. package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
  524. package/dist/dev/ui/menu/menu-item.js +0 -1
  525. package/dist/dev/ui/menu/menu-item.js.map +1 -1
  526. package/dist/dev/ui/menu/menu-radio-group.d.ts.map +1 -1
  527. package/dist/dev/ui/menu/menu-radio-group.js +0 -1
  528. package/dist/dev/ui/menu/menu-radio-group.js.map +1 -1
  529. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  530. package/dist/dev/ui/menu/menu-radio-item.js +0 -1
  531. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  532. package/dist/dev/ui/menu/menu-root.d.ts.map +1 -1
  533. package/dist/dev/ui/menu/menu-root.js +0 -1
  534. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  535. package/dist/dev/ui/menu/menu-separator.d.ts.map +1 -1
  536. package/dist/dev/ui/menu/menu-separator.js +0 -1
  537. package/dist/dev/ui/menu/menu-separator.js.map +1 -1
  538. package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
  539. package/dist/dev/ui/menu/menu-trigger.js +26 -12
  540. package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
  541. package/dist/dev/ui/menu/use-menu-group.js +0 -1
  542. package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
  543. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  544. package/dist/dev/ui/mute-button/mute-button.js +0 -1
  545. package/dist/dev/ui/mute-button/mute-button.js.map +1 -1
  546. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  547. package/dist/dev/ui/pip-button/pip-button.js +0 -1
  548. package/dist/dev/ui/pip-button/pip-button.js.map +1 -1
  549. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  550. package/dist/dev/ui/play-button/play-button.js +0 -1
  551. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  552. package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -1
  553. package/dist/dev/ui/playback-rate/use-playback-rate-options.js +0 -1
  554. package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
  555. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  556. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +0 -1
  557. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  558. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts.map +1 -1
  559. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js +0 -1
  560. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
  561. package/dist/dev/ui/popover/context.d.ts.map +1 -1
  562. package/dist/dev/ui/popover/context.js +0 -1
  563. package/dist/dev/ui/popover/context.js.map +1 -1
  564. package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
  565. package/dist/dev/ui/popover/popover-arrow.js +0 -1
  566. package/dist/dev/ui/popover/popover-arrow.js.map +1 -1
  567. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  568. package/dist/dev/ui/popover/popover-popup.js +0 -1
  569. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  570. package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
  571. package/dist/dev/ui/popover/popover-root.js +0 -1
  572. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  573. package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
  574. package/dist/dev/ui/popover/popover-trigger.js +0 -1
  575. package/dist/dev/ui/popover/popover-trigger.js.map +1 -1
  576. package/dist/dev/ui/popover/use-popup-position.js +0 -1
  577. package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
  578. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  579. package/dist/dev/ui/poster/poster.js +0 -1
  580. package/dist/dev/ui/poster/poster.js.map +1 -1
  581. package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -1
  582. package/dist/dev/ui/quality/use-quality-options.js +0 -1
  583. package/dist/dev/ui/quality/use-quality-options.js.map +1 -1
  584. package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts.map +1 -1
  585. package/dist/dev/ui/quality-radio-group/quality-radio-group.js +0 -1
  586. package/dist/dev/ui/quality-radio-group/quality-radio-group.js.map +1 -1
  587. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  588. package/dist/dev/ui/seek-button/seek-button.js +0 -1
  589. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  590. package/dist/dev/ui/seek-indicator/context.js +0 -1
  591. package/dist/dev/ui/seek-indicator/context.js.map +1 -1
  592. package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -1
  593. package/dist/dev/ui/seek-indicator/seek-indicator-root.js +0 -1
  594. package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -1
  595. package/dist/dev/ui/seek-indicator/seek-indicator-value.d.ts.map +1 -1
  596. package/dist/dev/ui/seek-indicator/seek-indicator-value.js +0 -1
  597. package/dist/dev/ui/seek-indicator/seek-indicator-value.js.map +1 -1
  598. package/dist/dev/ui/slider/context.js +0 -1
  599. package/dist/dev/ui/slider/context.js.map +1 -1
  600. package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
  601. package/dist/dev/ui/slider/slider-buffer.js +0 -1
  602. package/dist/dev/ui/slider/slider-buffer.js.map +1 -1
  603. package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
  604. package/dist/dev/ui/slider/slider-fill.js +0 -1
  605. package/dist/dev/ui/slider/slider-fill.js.map +1 -1
  606. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  607. package/dist/dev/ui/slider/slider-preview.js +0 -1
  608. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  609. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  610. package/dist/dev/ui/slider/slider-root.js +0 -1
  611. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  612. package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
  613. package/dist/dev/ui/slider/slider-thumb.js +0 -1
  614. package/dist/dev/ui/slider/slider-thumb.js.map +1 -1
  615. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  616. package/dist/dev/ui/slider/slider-thumbnail.js +0 -1
  617. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  618. package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
  619. package/dist/dev/ui/slider/slider-track.js +0 -1
  620. package/dist/dev/ui/slider/slider-track.js.map +1 -1
  621. package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
  622. package/dist/dev/ui/slider/slider-value.js +0 -1
  623. package/dist/dev/ui/slider/slider-value.js.map +1 -1
  624. package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -1
  625. package/dist/dev/ui/status-announcer/status-announcer.js +0 -1
  626. package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -1
  627. package/dist/dev/ui/status-indicator/context.js +0 -1
  628. package/dist/dev/ui/status-indicator/context.js.map +1 -1
  629. package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -1
  630. package/dist/dev/ui/status-indicator/status-indicator-root.js +0 -1
  631. package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -1
  632. package/dist/dev/ui/status-indicator/status-indicator-value.d.ts.map +1 -1
  633. package/dist/dev/ui/status-indicator/status-indicator-value.js +0 -1
  634. package/dist/dev/ui/status-indicator/status-indicator-value.js.map +1 -1
  635. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  636. package/dist/dev/ui/thumbnail/thumbnail.js +0 -1
  637. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  638. package/dist/dev/ui/time/time-group.d.ts.map +1 -1
  639. package/dist/dev/ui/time/time-group.js +0 -1
  640. package/dist/dev/ui/time/time-group.js.map +1 -1
  641. package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
  642. package/dist/dev/ui/time/time-separator.js +0 -1
  643. package/dist/dev/ui/time/time-separator.js.map +1 -1
  644. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  645. package/dist/dev/ui/time/time-value.js +0 -1
  646. package/dist/dev/ui/time/time-value.js.map +1 -1
  647. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js +0 -1
  648. package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
  649. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.d.ts.map +1 -1
  650. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js +0 -1
  651. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapter-title.js.map +1 -1
  652. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.d.ts.map +1 -1
  653. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js +0 -1
  654. package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js.map +1 -1
  655. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  656. package/dist/dev/ui/time-slider/time-slider-root.js +0 -1
  657. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  658. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  659. package/dist/dev/ui/tooltip/context.js +0 -1
  660. package/dist/dev/ui/tooltip/context.js.map +1 -1
  661. package/dist/dev/ui/tooltip/group-context.js +0 -1
  662. package/dist/dev/ui/tooltip/group-context.js.map +1 -1
  663. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
  664. package/dist/dev/ui/tooltip/tooltip-arrow.js +0 -1
  665. package/dist/dev/ui/tooltip/tooltip-arrow.js.map +1 -1
  666. package/dist/dev/ui/tooltip/tooltip-label.d.ts.map +1 -1
  667. package/dist/dev/ui/tooltip/tooltip-label.js +0 -1
  668. package/dist/dev/ui/tooltip/tooltip-label.js.map +1 -1
  669. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  670. package/dist/dev/ui/tooltip/tooltip-popup.js +0 -1
  671. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  672. package/dist/dev/ui/tooltip/tooltip-provider.d.ts.map +1 -1
  673. package/dist/dev/ui/tooltip/tooltip-provider.js +0 -1
  674. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  675. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  676. package/dist/dev/ui/tooltip/tooltip-root.js +0 -1
  677. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  678. package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -1
  679. package/dist/dev/ui/tooltip/tooltip-shortcut.js +0 -1
  680. package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -1
  681. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  682. package/dist/dev/ui/tooltip/tooltip-trigger.js +0 -1
  683. package/dist/dev/ui/tooltip/tooltip-trigger.js.map +1 -1
  684. package/dist/dev/ui/volume-indicator/context.js +0 -1
  685. package/dist/dev/ui/volume-indicator/context.js.map +1 -1
  686. package/dist/dev/ui/volume-indicator/volume-indicator-fill.d.ts.map +1 -1
  687. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +0 -1
  688. package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
  689. package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
  690. package/dist/dev/ui/volume-indicator/volume-indicator-root.js +0 -1
  691. package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
  692. package/dist/dev/ui/volume-indicator/volume-indicator-value.d.ts.map +1 -1
  693. package/dist/dev/ui/volume-indicator/volume-indicator-value.js +0 -1
  694. package/dist/dev/ui/volume-indicator/volume-indicator-value.js.map +1 -1
  695. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  696. package/dist/dev/ui/volume-slider/volume-slider-root.js +0 -1
  697. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  698. package/dist/dev/utils/merge-props.d.ts.map +1 -1
  699. package/dist/dev/utils/merge-props.js +0 -1
  700. package/dist/dev/utils/merge-props.js.map +1 -1
  701. package/dist/dev/utils/use-attach-iframe.js +0 -1
  702. package/dist/dev/utils/use-attach-iframe.js.map +1 -1
  703. package/dist/dev/utils/use-attach-media.d.ts.map +1 -1
  704. package/dist/dev/utils/use-attach-media.js +0 -1
  705. package/dist/dev/utils/use-attach-media.js.map +1 -1
  706. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -1
  707. package/dist/dev/utils/use-composed-refs.js +0 -1
  708. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  709. package/dist/dev/utils/use-destroy.d.ts.map +1 -1
  710. package/dist/dev/utils/use-destroy.js +0 -1
  711. package/dist/dev/utils/use-destroy.js.map +1 -1
  712. package/dist/dev/utils/use-force-render.js +0 -1
  713. package/dist/dev/utils/use-force-render.js.map +1 -1
  714. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -1
  715. package/dist/dev/utils/use-latest-ref.js +0 -1
  716. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  717. package/dist/dev/utils/use-media-component.d.ts.map +1 -1
  718. package/dist/dev/utils/use-media-component.js +0 -1
  719. package/dist/dev/utils/use-media-component.js.map +1 -1
  720. package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
  721. package/dist/dev/utils/use-media-instance.js +0 -1
  722. package/dist/dev/utils/use-media-instance.js.map +1 -1
  723. package/dist/dev/utils/use-render.d.ts.map +1 -1
  724. package/dist/dev/utils/use-render.js +0 -1
  725. package/dist/dev/utils/use-render.js.map +1 -1
  726. package/dist/dev/utils/use-safe-id.js +0 -1
  727. package/dist/dev/utils/use-safe-id.js.map +1 -1
  728. package/docs/README.md +1 -1
  729. package/docs/concepts/features.md +2 -2
  730. package/docs/concepts/media-sources.md +79 -1
  731. package/docs/concepts/skins.md +31 -30
  732. package/docs/how-to/build-your-own-component.md +1 -1
  733. package/docs/how-to/customize-skins.md +94 -98
  734. package/docs/how-to/migrate-from-media-chrome.md +412 -0
  735. package/docs/how-to/migrate-from-mux-player.md +551 -0
  736. package/docs/how-to/migrate-from-plyr.md +385 -0
  737. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  738. package/docs/llms.txt +9 -0
  739. package/docs/reference/feature-volume.md +4 -2
  740. package/docs/reference/mute-button.md +34 -0
  741. package/docs/reference/volume-slider.md +1 -1
  742. package/package.json +8 -8
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createContextPart } from "../create-context-part.js";
3
2
  import { useSliderContext } from "./context.js";
4
3
  //#region src/ui/slider/slider-track.tsx
@@ -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;AACd,CAAC"}
1
+ {"version":3,"file":"slider-track.js","names":[],"sources":["../../../../src/ui/slider/slider-track.tsx"],"sourcesContent":["import 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":";;;;AASA,MAAa,cAAc,kBAAiD;CAC1E,aAAa;CACb,KAAK;CACL,YAAY;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"slider-value.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-value.tsx"],"mappings":";;;UAUiB,yBAAyB,2BAA2B;;EAEnE;;EAEA,WAAW;;;cAIA,6BAAW,0BAAA,KAAA,2CAAA,cAAA;kBA0BP;OACH,QAAQ"}
1
+ {"version":3,"file":"slider-value.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-value.tsx"],"mappings":";;;UAQiB,yBAAyB,2BAA2B;;EAEnE;;EAEA,WAAW;;;cAIA,6BAAW,0BAAA,KAAA,2CAAA,cAAA;kBA0BP;OACH,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../utils/use-render.js";
3
2
  import { useSliderContext, useSliderPointerValue } from "./context.js";
4
3
  import { forwardRef } from "react";
@@ -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, useSliderPointerValue } 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, formatValue } = context;\n const pointerValue = useSliderPointerValue(type === 'pointer');\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,iBAAiB;CACjC,MAAM,EAAE,OAAO,gBAAgB;CAC/B,MAAM,eAAe,sBAAsB,SAAS,SAAS;CAE7D,MAAM,WAAW,SAAS,YAAY,eAAe,MAAM;CAE3D,MAAM,OAAO,SAAS,OAAO,QAAQ,IAAI,cAAc,YAAY,UAAU,IAAI,IAAI,OAAO,KAAK,MAAM,QAAQ,CAAC;CAEhH,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK;EACL,OAAO,CAAC;GAAE,aAAa;GAAO,UAAU;EAAK,GAAG,YAAY;CAC9D,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"slider-value.js","names":[],"sources":["../../../../src/ui/slider/slider-value.tsx"],"sourcesContent":["import 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, useSliderPointerValue } 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, formatValue } = context;\n const pointerValue = useSliderPointerValue(type === 'pointer');\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":";;;;;AAgBA,MAAa,cAAc,WAAW,SAAS,YAC7C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,WAAW,QAAQ,GAAG,iBAAiB;CAEhF,MAAM,UAAU,iBAAiB;CACjC,MAAM,EAAE,OAAO,gBAAgB;CAC/B,MAAM,eAAe,sBAAsB,SAAS,SAAS;CAE7D,MAAM,WAAW,SAAS,YAAY,eAAe,MAAM;CAE3D,MAAM,OAAO,SAAS,OAAO,QAAQ,IAAI,cAAc,YAAY,UAAU,IAAI,IAAI,OAAO,KAAK,MAAM,QAAQ,CAAC;CAEhH,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc,QAAQ;EACtB,KAAK;EACL,OAAO,CAAC;GAAE,aAAa;GAAO,UAAU;EAAK,GAAG,YAAY;CAC9D,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status-announcer.d.ts","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"mappings":";;;UAYiB,6BACP,wBAAwB,oBAAoB,QAClD,KAAK,oBAAoB;cAEhB,iCAAe,0BAAA,KAAA,+CAAA,cAAA;kBAiDX;OACH,QAAQ;OACR,QAAQ,oBAAoB"}
1
+ {"version":3,"file":"status-announcer.d.ts","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"mappings":";;;UAUiB,6BACP,wBAAwB,oBAAoB,QAClD,KAAK,oBAAoB;cAEhB,iCAAe,0BAAA,KAAA,+CAAA,cAAA;kBAiDX;OACH,QAAQ;OACR,QAAQ,oBAAoB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useLocale, useTranslator } from "../../i18n/context.js";
3
2
  import { useContainer, usePlayer } from "../../player/context.js";
4
3
  import { useDestroy } from "../../utils/use-destroy.js";
@@ -1 +1 @@
1
- {"version":3,"file":"status-announcer.js","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"sourcesContent":["'use client';\n\nimport { createStatusAnnouncerLabels, StatusAnnouncerCore } from '@videojs/core';\nimport { shouldAnnounceStatusChange, subscribeToStatusAnnouncer } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useState, useSyncExternalStore } from 'react';\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { useContainer, usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface StatusAnnouncerProps\n extends UIComponentProps<'div', StatusAnnouncerCore.State>,\n Pick<StatusAnnouncerCore.Props, 'closeDelay' | 'labels'> {}\n\nexport const StatusAnnouncer = forwardRef(function StatusAnnouncer(\n componentProps: StatusAnnouncerProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, closeDelay, labels, ...elementProps } = componentProps;\n const translator = useTranslator();\n const locale = useLocale();\n const [core] = useState(() => new StatusAnnouncerCore());\n const store = usePlayer();\n const container = useContainer();\n useDestroy(core);\n core.setProps({\n closeDelay,\n labels: {\n ...createStatusAnnouncerLabels(translator, locale),\n ...labels,\n },\n shouldAnnounce: () => shouldAnnounceStatusChange(container),\n });\n\n useEffect(() => subscribeToStatusAnnouncer(store, core), [core, store]);\n\n const state = useSyncExternalStore(\n (callback) => core.state.subscribe(callback),\n () => core.state.current,\n () => core.state.current\n );\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [\n elementProps,\n {\n role: 'status',\n children: (\n <span key={state.generation} data-status-announcer-content=\"\">\n {state.label ?? ''}\n </span>\n ),\n },\n ],\n }\n );\n});\n\nexport namespace StatusAnnouncer {\n export type Props = StatusAnnouncerProps;\n export type State = StatusAnnouncerCore.State;\n}\n"],"mappings":";;;;;;;;;;AAgBA,MAAa,kBAAkB,WAAW,SAAS,gBACjD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,QAAQ,GAAG,iBAAiB;CAC1E,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CACzB,MAAM,CAAC,QAAQ,eAAe,IAAI,oBAAoB,CAAC;CACvD,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAC/B,WAAW,IAAI;CACf,KAAK,SAAS;EACZ;EACA,QAAQ;GACN,GAAG,4BAA4B,YAAY,MAAM;GACjD,GAAG;EACL;EACA,sBAAsB,2BAA2B,SAAS;CAC5D,CAAC;CAED,gBAAgB,2BAA2B,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;CAEtE,MAAM,QAAQ,sBACX,aAAa,KAAK,MAAM,UAAU,QAAQ,SACrC,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CACL,cACA;GACE,MAAM;GACN,UACE,oBAAC,QAAD;IAA6B,iCAA8B;IACxD,UAAA,MAAM,SAAS;GACZ,GAFK,MAAM,UAEX;EAEV,CACF;CACF,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"status-announcer.js","names":[],"sources":["../../../../src/ui/status-announcer/status-announcer.tsx"],"sourcesContent":["import { createStatusAnnouncerLabels, StatusAnnouncerCore } from '@videojs/core';\nimport { shouldAnnounceStatusChange, subscribeToStatusAnnouncer } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useEffect, useState, useSyncExternalStore } from 'react';\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { useContainer, usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface StatusAnnouncerProps\n extends UIComponentProps<'div', StatusAnnouncerCore.State>,\n Pick<StatusAnnouncerCore.Props, 'closeDelay' | 'labels'> {}\n\nexport const StatusAnnouncer = forwardRef(function StatusAnnouncer(\n componentProps: StatusAnnouncerProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, closeDelay, labels, ...elementProps } = componentProps;\n const translator = useTranslator();\n const locale = useLocale();\n const [core] = useState(() => new StatusAnnouncerCore());\n const store = usePlayer();\n const container = useContainer();\n useDestroy(core);\n core.setProps({\n closeDelay,\n labels: {\n ...createStatusAnnouncerLabels(translator, locale),\n ...labels,\n },\n shouldAnnounce: () => shouldAnnounceStatusChange(container),\n });\n\n useEffect(() => subscribeToStatusAnnouncer(store, core), [core, store]);\n\n const state = useSyncExternalStore(\n (callback) => core.state.subscribe(callback),\n () => core.state.current,\n () => core.state.current\n );\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [\n elementProps,\n {\n role: 'status',\n children: (\n <span key={state.generation} data-status-announcer-content=\"\">\n {state.label ?? ''}\n </span>\n ),\n },\n ],\n }\n );\n});\n\nexport namespace StatusAnnouncer {\n export type Props = StatusAnnouncerProps;\n export type State = StatusAnnouncerCore.State;\n}\n"],"mappings":";;;;;;;;;AAcA,MAAa,kBAAkB,WAAW,SAAS,gBACjD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,YAAY,QAAQ,GAAG,iBAAiB;CAC1E,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CACzB,MAAM,CAAC,QAAQ,eAAe,IAAI,oBAAoB,CAAC;CACvD,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAC/B,WAAW,IAAI;CACf,KAAK,SAAS;EACZ;EACA,QAAQ;GACN,GAAG,4BAA4B,YAAY,MAAM;GACjD,GAAG;EACL;EACA,sBAAsB,2BAA2B,SAAS;CAC5D,CAAC;CAED,gBAAgB,2BAA2B,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;CAEtE,MAAM,QAAQ,sBACX,aAAa,KAAK,MAAM,UAAU,QAAQ,SACrC,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CACL,cACA;GACE,MAAM;GACN,UACE,oBAAC,QAAD;IAA6B,iCAA8B;IACxD,UAAA,MAAM,SAAS;GACZ,GAFK,MAAM,UAEX;EAEV,CACF;CACF,CACF;AACF,CAAC"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createContext, useContext } from "react";
3
2
  import { jsx } from "react/jsx-runtime";
4
3
  //#region src/ui/status-indicator/context.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/status-indicator/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StatusIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface StatusIndicatorContextValue {\n state: StatusIndicatorCore.State;\n}\n\nconst StatusIndicatorContext = createContext<StatusIndicatorContextValue | null>(null);\n\nexport function StatusIndicatorProvider({ value, children }: ProviderProps<StatusIndicatorContextValue>) {\n return <StatusIndicatorContext.Provider value={value}>{children}</StatusIndicatorContext.Provider>;\n}\n\nexport function useStatusIndicatorContext(): StatusIndicatorContextValue {\n const ctx = useContext(StatusIndicatorContext);\n if (!ctx) throw new Error('StatusIndicator child compounds must be used within a StatusIndicator.Root');\n return ctx;\n}\n"],"mappings":";;;;AASA,MAAM,yBAAyB,cAAkD,IAAI;AAErF,SAAgB,wBAAwB,EAAE,OAAO,YAAwD;CACvG,OAAO,oBAAC,uBAAuB,UAAxB;EAAwC;EAAQ;CAA0C,CAAA;AACnG;AAEA,SAAgB,4BAAyD;CACvE,MAAM,MAAM,WAAW,sBAAsB;CAC7C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,4EAA4E;CACtG,OAAO;AACT"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/status-indicator/context.tsx"],"sourcesContent":["import type { StatusIndicatorCore } from '@videojs/core';\nimport { createContext, type ProviderProps, useContext } from 'react';\n\nexport interface StatusIndicatorContextValue {\n state: StatusIndicatorCore.State;\n}\n\nconst StatusIndicatorContext = createContext<StatusIndicatorContextValue | null>(null);\n\nexport function StatusIndicatorProvider({ value, children }: ProviderProps<StatusIndicatorContextValue>) {\n return <StatusIndicatorContext.Provider value={value}>{children}</StatusIndicatorContext.Provider>;\n}\n\nexport function useStatusIndicatorContext(): StatusIndicatorContextValue {\n const ctx = useContext(StatusIndicatorContext);\n if (!ctx) throw new Error('StatusIndicator child compounds must be used within a StatusIndicator.Root');\n return ctx;\n}\n"],"mappings":";;;AAOA,MAAM,yBAAyB,cAAkD,IAAI;AAErF,SAAgB,wBAAwB,EAAE,OAAO,YAAwD;CACvG,OAAO,oBAAC,uBAAuB,UAAxB;EAAwC;EAAQ;CAA0C,CAAA;AACnG;AAEA,SAAgB,4BAAyD;CACvE,MAAM,MAAM,WAAW,sBAAsB;CAC7C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,4EAA4E;CACtG,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"status-indicator-root.d.ts","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"mappings":";;;UAYiB,iCACP,wBAAwB,oBAAoB,QAClD,KAAK,oBAAoB;cAEhB,qCAAmB,0BAAA,KAAA,mDAAA,cAAA;kBAkCf;OACH,QAAQ;OACR,QAAQ,oBAAoB"}
1
+ {"version":3,"file":"status-indicator-root.d.ts","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"mappings":";;;UAUiB,iCACP,wBAAwB,oBAAoB,QAClD,KAAK,oBAAoB;cAEhB,qCAAmB,0BAAA,KAAA,mDAAA,cAAA;kBAkCf;OACH,QAAQ;OACR,QAAQ,oBAAoB"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useTranslator } from "../../i18n/context.js";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { useInputIndicatorRoot } from "../input-indicator/use-input-indicator-root.js";
@@ -1 +1 @@
1
- {"version":3,"file":"status-indicator-root.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"sourcesContent":["'use client';\n\nimport { createInputIndicatorLabels, StatusIndicatorCore, StatusIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicator/use-input-indicator-root';\nimport { StatusIndicatorProvider } from './context';\n\nexport interface StatusIndicatorRootProps\n extends UIComponentProps<'div', StatusIndicatorCore.State>,\n Omit<StatusIndicatorCore.Props, 'labels'> {}\n\nexport const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(\n componentProps: StatusIndicatorRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, actions, closeDelay, ...elementProps } = componentProps;\n const translator = useTranslator();\n const { elementRef, present, state } = useInputIndicatorRoot(\n () => new StatusIndicatorCore(),\n {\n actions,\n closeDelay,\n labels: createInputIndicatorLabels(translator),\n },\n { replayOnUpdate: false }\n );\n\n if (!present) return null;\n\n return (\n <StatusIndicatorProvider value={{ state }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: StatusIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n </StatusIndicatorProvider>\n );\n});\n\nexport namespace StatusIndicatorRoot {\n export type Props = StatusIndicatorRootProps;\n export type State = StatusIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;;AAgBA,MAAa,sBAAsB,WAAW,SAAS,oBACrD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,SAAS,YAAY,GAAG,iBAAiB;CAE3E,MAAM,EAAE,YAAY,SAAS,UAAU,4BAC/B,IAAI,oBAAoB,GAC9B;EACE;EACA;EACA,QAAQ,2BANO,cAM6B,CAAC;CAC/C,GACA,EAAE,gBAAgB,MAAM,CAC1B;CAEA,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,yBAAD;EAAyB,OAAO,EAAE,MAAM;EACrC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACuB,CAAA;AAE7B,CAAC"}
1
+ {"version":3,"file":"status-indicator-root.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-root.tsx"],"sourcesContent":["import { createInputIndicatorLabels, StatusIndicatorCore, StatusIndicatorDataAttrs } from '@videojs/core';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useInputIndicatorRoot } from '../input-indicator/use-input-indicator-root';\nimport { StatusIndicatorProvider } from './context';\n\nexport interface StatusIndicatorRootProps\n extends UIComponentProps<'div', StatusIndicatorCore.State>,\n Omit<StatusIndicatorCore.Props, 'labels'> {}\n\nexport const StatusIndicatorRoot = forwardRef(function StatusIndicatorRoot(\n componentProps: StatusIndicatorRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, actions, closeDelay, ...elementProps } = componentProps;\n const translator = useTranslator();\n const { elementRef, present, state } = useInputIndicatorRoot(\n () => new StatusIndicatorCore(),\n {\n actions,\n closeDelay,\n labels: createInputIndicatorLabels(translator),\n },\n { replayOnUpdate: false }\n );\n\n if (!present) return null;\n\n return (\n <StatusIndicatorProvider value={{ state }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: StatusIndicatorDataAttrs,\n ref: [forwardedRef, elementRef],\n props: [elementProps],\n }\n )}\n </StatusIndicatorProvider>\n );\n});\n\nexport namespace StatusIndicatorRoot {\n export type Props = StatusIndicatorRootProps;\n export type State = StatusIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;AAcA,MAAa,sBAAsB,WAAW,SAAS,oBACrD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,SAAS,YAAY,GAAG,iBAAiB;CAE3E,MAAM,EAAE,YAAY,SAAS,UAAU,4BAC/B,IAAI,oBAAoB,GAC9B;EACE;EACA;EACA,QAAQ,2BANO,cAM6B,CAAC;CAC/C,GACA,EAAE,gBAAgB,MAAM,CAC1B;CAEA,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,yBAAD;EAAyB,OAAO,EAAE,MAAM;EACrC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO,CAAC,YAAY;EACtB,CACF;CACuB,CAAA;AAE7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status-indicator-value.d.ts","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-value.tsx"],"mappings":";;;UAUiB,kCAAkC,yBAAyB,oBAAoB;cAEnF,sCAAoB,0BAAA,KAAA,oDAAA,cAAA;kBAkBhB;OACH,QAAQ"}
1
+ {"version":3,"file":"status-indicator-value.d.ts","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-value.tsx"],"mappings":";;;UAQiB,kCAAkC,yBAAyB,oBAAoB;cAEnF,sCAAoB,0BAAA,KAAA,oDAAA,cAAA;kBAkBhB;OACH,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../utils/use-render.js";
3
2
  import { useStatusIndicatorContext } from "./context.js";
4
3
  import { forwardRef } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"status-indicator-value.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-value.tsx"],"sourcesContent":["'use client';\n\nimport { getStatusIndicatorDisplayValue, type StatusIndicatorCore } 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 { useStatusIndicatorContext } from './context';\n\nexport interface StatusIndicatorValueProps extends UIComponentProps<'span', StatusIndicatorCore.State> {}\n\nexport const StatusIndicatorValue = forwardRef(function StatusIndicatorValue(\n componentProps: StatusIndicatorValueProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state } = useStatusIndicatorContext();\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [{ children: getStatusIndicatorDisplayValue(state) }, elementProps],\n }\n );\n});\n\nexport namespace StatusIndicatorValue {\n export type Props = StatusIndicatorValueProps;\n}\n"],"mappings":";;;;;;AAYA,MAAa,uBAAuB,WAAW,SAAS,qBACtD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,UAAU,0BAA0B;CAE5C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CAAC,EAAE,UAAU,+BAA+B,KAAK,EAAE,GAAG,YAAY;CAC3E,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"status-indicator-value.js","names":[],"sources":["../../../../src/ui/status-indicator/status-indicator-value.tsx"],"sourcesContent":["import { getStatusIndicatorDisplayValue, type StatusIndicatorCore } 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 { useStatusIndicatorContext } from './context';\n\nexport interface StatusIndicatorValueProps extends UIComponentProps<'span', StatusIndicatorCore.State> {}\n\nexport const StatusIndicatorValue = forwardRef(function StatusIndicatorValue(\n componentProps: StatusIndicatorValueProps,\n forwardedRef: ForwardedRef<HTMLSpanElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n const { state } = useStatusIndicatorContext();\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref: forwardedRef,\n props: [{ children: getStatusIndicatorDisplayValue(state) }, elementProps],\n }\n );\n});\n\nexport namespace StatusIndicatorValue {\n export type Props = StatusIndicatorValueProps;\n}\n"],"mappings":";;;;;AAUA,MAAa,uBAAuB,WAAW,SAAS,qBACtD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,EAAE,UAAU,0BAA0B;CAE5C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK;EACL,OAAO,CAAC,EAAE,UAAU,+BAA+B,KAAK,EAAE,GAAG,YAAY;CAC3E,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.d.ts","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"mappings":";;;UAkBiB,uBAAuB,wBAAwB,cAAc,QAAQ,cAAc;;EAElG,aAAa;;cAGF,2BAAS,0BAAA,KAAA,yCAAA,cAAA;kBAsGL;OACH,QAAQ;OACR,QAAQ,cAAc"}
1
+ {"version":3,"file":"thumbnail.d.ts","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"mappings":";;;UAgBiB,uBAAuB,wBAAwB,cAAc,QAAQ,cAAc;;EAElG,aAAa;;cAGF,2BAAS,0BAAA,KAAA,yCAAA,cAAA;kBAsGL;OACH,QAAQ;OACR,QAAQ,cAAc"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useOptionalPlayer } from "../../player/context.js";
3
2
  import { useDestroy } from "../../utils/use-destroy.js";
4
3
  import { renderElement } from "../../utils/use-render.js";
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.js","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"sourcesContent":["'use client';\n\nimport {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailFetchPriority,\n type ThumbnailImage,\n} from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {\n /** Pre-parsed thumbnail images — bypasses the automatic `<track>` detection. */\n thumbnails?: ThumbnailImage[] | undefined;\n}\n\nexport const Thumbnail = forwardRef<HTMLDivElement, ThumbnailProps>(function Thumbnail(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n time = 0,\n thumbnails: externalThumbnails,\n crossOrigin,\n loading,\n fetchPriority,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new ThumbnailCore());\n const divRef = useRef<HTMLDivElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n const textTrack = useOptionalPlayer(selectTextTrack);\n\n // Force re-render when the handle's state changes (img load/error, resize).\n const [, setRenderToken] = useState(0);\n\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((n) => n + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n const thumbnails = useMemo(() => {\n if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;\n return textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }, [externalThumbnails, textTrack]);\n\n const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [core, thumbnails, time]);\n\n // Track src changes via the handle.\n handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n // Compute styles declaratively from resize result.\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imgStyle: CSSProperties | undefined;\n\n if (thumbnail && handle.naturalWidth && handle.naturalHeight) {\n const constraints = handle.readConstraints();\n const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints);\n\n if (result) {\n containerStyle = {\n overflow: 'hidden',\n width: result.containerWidth,\n height: result.containerHeight,\n };\n imgStyle = {\n width: result.imageWidth,\n height: result.imageHeight,\n maxWidth: 'none',\n transform:\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : undefined,\n };\n }\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [\n core.getAttrs(state),\n { style: containerStyle },\n elementProps,\n {\n children: (\n <img\n ref={imgRef}\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n src={thumbnail?.url}\n crossOrigin={crossOrigin === '' || crossOrigin === null ? undefined : crossOrigin}\n loading={loading}\n style={imgStyle}\n // React's types omit `| undefined` from fetchPriority — cast to satisfy exactOptionalPropertyTypes.\n fetchPriority={fetchPriority as ThumbnailFetchPriority}\n />\n ),\n },\n ],\n }\n );\n});\n\nexport namespace Thumbnail {\n export type Props = ThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;;AAuBA,MAAa,YAAY,WAA2C,SAAS,UAAU,gBAAgB,cAAc;CACnH,MAAM,EACJ,QACA,WACA,OACA,OAAO,GACP,YAAY,oBACZ,aACA,SACA,eACA,GAAG,iBACD;CAEJ,MAAM,CAAC,QAAQ,eAAe,IAAI,cAAc,CAAC;CACjD,MAAM,SAAS,OAAuB,IAAI;CAC1C,MAAM,SAAS,OAAyB,IAAI;CAC5C,MAAM,YAAY,kBAAkB,eAAe;CAGnD,MAAM,GAAG,kBAAkB,SAAS,CAAC;CAErC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,MAAM,IAAI,CAAC;CAClD,CAAC,CACH;CAEA,WAAW,cAAc,OAAO,QAAQ,CAAC;CAGzC,MAAM,aAAa,cAAc;EAC/B,IAAI,sBAAsB,mBAAmB,SAAS,GAAG,OAAO;EAChE,OAAO,aAAa,UAAU,cAAc,SAAS,IACjD,oBAAoB,UAAU,eAAe,UAAU,qBAAqB,KAAA,CAAS,IACrF,CAAC;CACP,GAAG,CAAC,oBAAoB,SAAS,CAAC;CAElC,MAAM,YAAY,cAAc,KAAK,oBAAoB,YAAY,IAAI,GAAG;EAAC;EAAM;EAAY;CAAI,CAAC;CAGpG,OAAO,UAAU,WAAW,GAAG;CAE/B,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,SAAS;CAGnE,IAAI,iBAAgC,EAAE,UAAU,SAAS;CACzD,IAAI;CAEJ,IAAI,aAAa,OAAO,gBAAgB,OAAO,eAAe;EAC5D,MAAM,cAAc,OAAO,gBAAgB;EAC3C,MAAM,SAAS,KAAK,OAAO,WAAW,OAAO,cAAc,OAAO,eAAe,WAAW;EAE5F,IAAI,QAAQ;GACV,iBAAiB;IACf,UAAU;IACV,OAAO,OAAO;IACd,QAAQ,OAAO;GACjB;GACA,WAAW;IACT,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU;IACV,WACE,OAAO,WAAW,OAAO,UAAU,cAAc,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAA;GACjG;EACF;CACF;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,MAAM;EAC1B,OAAO;GACL,KAAK,SAAS,KAAK;GACnB,EAAE,OAAO,eAAe;GACxB;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;GAChB,CAAA,EAEL;EACF;CACF,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"thumbnail.js","names":[],"sources":["../../../../src/ui/thumbnail/thumbnail.tsx"],"sourcesContent":["import {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailFetchPriority,\n type ThumbnailImage,\n} from '@videojs/core';\nimport { createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { CSSProperties } from 'react';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ThumbnailProps extends UIComponentProps<'div', ThumbnailCore.State>, ThumbnailCore.Props {\n /** Pre-parsed thumbnail images — bypasses the automatic `<track>` detection. */\n thumbnails?: ThumbnailImage[] | undefined;\n}\n\nexport const Thumbnail = forwardRef<HTMLDivElement, ThumbnailProps>(function Thumbnail(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n time = 0,\n thumbnails: externalThumbnails,\n crossOrigin,\n loading,\n fetchPriority,\n ...elementProps\n } = componentProps;\n\n const [core] = useState(() => new ThumbnailCore());\n const divRef = useRef<HTMLDivElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n const textTrack = useOptionalPlayer(selectTextTrack);\n\n // Force re-render when the handle's state changes (img load/error, resize).\n const [, setRenderToken] = useState(0);\n\n const [handle] = useState(() =>\n createThumbnail({\n getContainer: () => divRef.current,\n getImg: () => imgRef.current,\n onStateChange: () => setRenderToken((n) => n + 1),\n })\n );\n\n useDestroy(handle, () => handle.connect());\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n const thumbnails = useMemo(() => {\n if (externalThumbnails && externalThumbnails.length > 0) return externalThumbnails;\n return textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }, [externalThumbnails, textTrack]);\n\n const thumbnail = useMemo(() => core.findActiveThumbnail(thumbnails, time), [core, thumbnails, time]);\n\n // Track src changes via the handle.\n handle.updateSrc(thumbnail?.url);\n\n const state = core.getState(handle.loading, handle.error, thumbnail);\n\n // Compute styles declaratively from resize result.\n let containerStyle: CSSProperties = { overflow: 'hidden' };\n let imgStyle: CSSProperties | undefined;\n\n if (thumbnail && handle.naturalWidth && handle.naturalHeight) {\n const constraints = handle.readConstraints();\n const result = core.resize(thumbnail, handle.naturalWidth, handle.naturalHeight, constraints);\n\n if (result) {\n containerStyle = {\n overflow: 'hidden',\n width: result.containerWidth,\n height: result.containerHeight,\n };\n imgStyle = {\n width: result.imageWidth,\n height: result.imageHeight,\n maxWidth: 'none',\n transform:\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : undefined,\n };\n }\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ThumbnailDataAttrs,\n ref: [forwardedRef, divRef],\n props: [\n core.getAttrs(state),\n { style: containerStyle },\n elementProps,\n {\n children: (\n <img\n ref={imgRef}\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n src={thumbnail?.url}\n crossOrigin={crossOrigin === '' || crossOrigin === null ? undefined : crossOrigin}\n loading={loading}\n style={imgStyle}\n // React's types omit `| undefined` from fetchPriority — cast to satisfy exactOptionalPropertyTypes.\n fetchPriority={fetchPriority as ThumbnailFetchPriority}\n />\n ),\n },\n ],\n }\n );\n});\n\nexport namespace Thumbnail {\n export type Props = ThumbnailProps;\n export type State = ThumbnailCore.State;\n}\n"],"mappings":";;;;;;;;AAqBA,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,cAAc,CAAC;CACjD,MAAM,SAAS,OAAuB,IAAI;CAC1C,MAAM,SAAS,OAAyB,IAAI;CAC5C,MAAM,YAAY,kBAAkB,eAAe;CAGnD,MAAM,GAAG,kBAAkB,SAAS,CAAC;CAErC,MAAM,CAAC,UAAU,eACf,gBAAgB;EACd,oBAAoB,OAAO;EAC3B,cAAc,OAAO;EACrB,qBAAqB,gBAAgB,MAAM,IAAI,CAAC;CAClD,CAAC,CACH;CAEA,WAAW,cAAc,OAAO,QAAQ,CAAC;CAGzC,MAAM,aAAa,cAAc;EAC/B,IAAI,sBAAsB,mBAAmB,SAAS,GAAG,OAAO;EAChE,OAAO,aAAa,UAAU,cAAc,SAAS,IACjD,oBAAoB,UAAU,eAAe,UAAU,qBAAqB,KAAA,CAAS,IACrF,CAAC;CACP,GAAG,CAAC,oBAAoB,SAAS,CAAC;CAElC,MAAM,YAAY,cAAc,KAAK,oBAAoB,YAAY,IAAI,GAAG;EAAC;EAAM;EAAY;CAAI,CAAC;CAGpG,OAAO,UAAU,WAAW,GAAG;CAE/B,MAAM,QAAQ,KAAK,SAAS,OAAO,SAAS,OAAO,OAAO,SAAS;CAGnE,IAAI,iBAAgC,EAAE,UAAU,SAAS;CACzD,IAAI;CAEJ,IAAI,aAAa,OAAO,gBAAgB,OAAO,eAAe;EAC5D,MAAM,cAAc,OAAO,gBAAgB;EAC3C,MAAM,SAAS,KAAK,OAAO,WAAW,OAAO,cAAc,OAAO,eAAe,WAAW;EAE5F,IAAI,QAAQ;GACV,iBAAiB;IACf,UAAU;IACV,OAAO,OAAO;IACd,QAAQ,OAAO;GACjB;GACA,WAAW;IACT,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU;IACV,WACE,OAAO,WAAW,OAAO,UAAU,cAAc,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAA;GACjG;EACF;CACF;CAEA,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,MAAM;EAC1B,OAAO;GACL,KAAK,SAAS,KAAK;GACnB,EAAE,OAAO,eAAe;GACxB;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;GAChB,CAAA,EAEL;EACF;CACF,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"time-group.d.ts","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"mappings":";;;KASK,aAAa;UAED,mBAAmB,yBAAyB;;EAE3D,WAAW;;;;;;;;;;;;;;cAeA,uBAAK,0BAAA,KAAA,qCAAA,cAAA;kBAmBD;OACH,QAAQ"}
1
+ {"version":3,"file":"time-group.d.ts","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"mappings":";;;KAOK,aAAa;UAED,mBAAmB,yBAAyB;;EAE3D,WAAW;;;;;;;;;;;;;;cAeA,uBAAK,0BAAA,KAAA,qCAAA,cAAA;kBAmBD;OACH,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../utils/use-render.js";
3
2
  import { forwardRef } from "react";
4
3
  //#region src/ui/time/time-group.tsx
@@ -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;CAIhE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,SAAS,GAAG,YAAY;CACpC,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"time-group.js","names":[],"sources":["../../../../src/ui/time/time-group.tsx"],"sourcesContent":["import 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":";;;;;;;;;;;;;;;AA0BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAIhE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,SAAS,GAAG,YAAY;CACpC,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"time-separator.d.ts","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"mappings":";;;KASK,iBAAiB;UAEL,uBAAuB,yBAAyB;;EAE/D,WAAW;;;;;;;;;;;cAYA,2BAAS,0BAAA,KAAA,yCAAA,cAAA;kBAmBL;OACH,QAAQ"}
1
+ {"version":3,"file":"time-separator.d.ts","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"mappings":";;;KAOK,iBAAiB;UAEL,uBAAuB,yBAAyB;;EAE/D,WAAW;;;;;;;;;;;cAYA,2BAAS,0BAAA,KAAA,yCAAA,cAAA;kBAmBL;OACH,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../utils/use-render.js";
3
2
  import { forwardRef } from "react";
4
3
  //#region src/ui/time/time-separator.tsx
@@ -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;CAItE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,eAAe;GAAQ;EAAS,GAAG,YAAY;CAC3D,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"time-separator.js","names":[],"sources":["../../../../src/ui/time/time-separator.tsx"],"sourcesContent":["import 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":";;;;;;;;;;;;AAuBA,MAAa,YAAY,WAAW,SAAS,UAC3C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,WAAW,KAAK,GAAG,iBAAiB;CAItE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE,OAAA,CAAI;EACJ,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,eAAe;GAAQ;EAAS,GAAG,YAAY;CAC3D,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"time-value.d.ts","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"mappings":";;;UAgBiB,mBAAmB,KAAK,yBAAyB,SAAS,qBAAqB,SAAS;;;;;;;;;;;cAY5F,uBAAK,0BAAA,KAAA,qCAAA,cAAA;kBAwGD;OACH,QAAQ;OACR,QAAQ,SAAS"}
1
+ {"version":3,"file":"time-value.d.ts","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"mappings":";;;UAciB,mBAAmB,KAAK,yBAAyB,SAAS,qBAAqB,SAAS;;;;;;;;;;;cAY5F,uBAAK,0BAAA,KAAA,qCAAA,cAAA;kBAwGD;OACH,QAAQ;OACR,QAAQ,SAAS"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useLocale, useTranslator } from "../../i18n/context.js";
3
2
  import { usePlayer } from "../../player/context.js";
4
3
  import { renderElement } from "../../utils/use-render.js";
@@ -1 +1 @@
1
- {"version":3,"file":"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 { translateText } from '@videojs/core/i18n';\nimport { durationSuffixText, elapsedSuffixText, remainingSuffixText } from '@videojs/core/i18n/text/time';\nimport { isInteractiveActivation } from '@videojs/utils/dom';\nimport { formatTimeAsPhrase } from '@videojs/utils/time';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\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, toggle = false, ...elementProps } = componentProps;\n\n const time = usePlayer(selectTime);\n const translator = useTranslator();\n const locale = useLocale();\n\n const [core] = useState(() => new TimeCore());\n\n const defaultType = type ?? TimeCore.defaultProps.type;\n const [activeType, setActiveType] = useState(defaultType);\n // biome-ignore lint/correctness/useExhaustiveDependencies: We want to listen for changes to defaultType and toggle (so we revert to default), this just means one less useEffect.\n useEffect(() => {\n setActiveType(defaultType);\n }, [defaultType, toggle]);\n\n core.setProps({\n type: activeType,\n negativeSign,\n label,\n toggle,\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('Time.Value', 'time');\n return null;\n }\n\n core.setMedia(time);\n core.setFormatLocale(locale);\n const state = core.getState();\n const attrs = core.getAttrs(state, defaultType);\n const labelParams = core.getLabelParams(state);\n const suffixText = {\n current: elapsedSuffixText,\n duration: durationSuffixText,\n remaining: remainingSuffixText,\n }[state.type];\n const resolvedLabelParams = labelParams\n ? {\n duration: translateText(suffixText, translator, {\n duration: formatTimeAsPhrase(Math.abs(state.seconds), { locale }),\n }),\n }\n : undefined;\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 const toggleType = () => {\n setActiveType((value) => {\n if (defaultType === 'current') {\n return value === 'remaining' ? 'current' : 'remaining';\n }\n return value === 'duration' ? 'remaining' : 'duration';\n });\n };\n\n const handleClick = (event: MouseEvent<HTMLTimeElement>) => {\n if (event.defaultPrevented) return;\n toggleType();\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTimeElement>) => {\n if (event.defaultPrevented || !isInteractiveActivation(event.nativeEvent)) return;\n // Prevent space from scrolling page.\n event.preventDefault();\n if (event.repeat) return;\n toggleType();\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: toggle ? undefined : state.datetime,\n children: content,\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator, resolvedLabelParams),\n 'aria-description': attrs['aria-description']\n ? translateText(attrs['aria-description'], translator)\n : undefined,\n ...(toggle ? { onClick: handleClick, onKeyDown: handleKeyDown } : undefined),\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":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,cAAc,OAAO,SAAS,OAAO,GAAG,iBAAiB;CAEjG,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,QAAQ,eAAe,IAAI,SAAS,CAAC;CAE5C,MAAM,cAAc,QAAQ,SAAS,aAAa;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,WAAW;CAExD,gBAAgB;EACd,cAAc,WAAW;CAC3B,GAAG,CAAC,aAAa,MAAM,CAAC;CAExB,KAAK,SAAS;EACZ,MAAM;EACN;EACA;EACA;CACF,CAAC;CAED,IAAI,CAAC,MAAM;EACI,kBAAkB,cAAc,MAAM;EACnD,OAAO;CACT;CAEA,KAAK,SAAS,IAAI;CAClB,KAAK,gBAAgB,MAAM;CAC3B,MAAM,QAAQ,KAAK,SAAS;CAC5B,MAAM,QAAQ,KAAK,SAAS,OAAO,WAAW;CAC9C,MAAM,cAAc,KAAK,eAAe,KAAK;CAC7C,MAAM,aAAa;EACjB,SAAS;EACT,UAAU;EACV,WAAW;CACb,EAAE,MAAM;CACR,MAAM,sBAAsB,cACxB,EACE,UAAU,cAAc,YAAY,YAAY,EAC9C,UAAU,mBAAmB,KAAK,IAAI,MAAM,OAAO,GAAG,EAAE,OAAO,CAAC,EAClE,CAAC,EACH,IACA,KAAA;CAEJ,MAAM,UAAU,MAAM,WACpB,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD;EAAM,eAAY;EAAQ,UAAA,gBAAgB,SAAS,aAAa;CAAmB,CAAA,GAClF,MAAM,IACP,EAAA,CAAA,IAEF,MAAM;CAGR,MAAM,mBAAmB;EACvB,eAAe,UAAU;GACvB,IAAI,gBAAgB,WAClB,OAAO,UAAU,cAAc,YAAY;GAE7C,OAAO,UAAU,aAAa,cAAc;EAC9C,CAAC;CACH;CAEA,MAAM,eAAe,UAAuC;EAC1D,IAAI,MAAM,kBAAkB;EAC5B,WAAW;CACb;CAEA,MAAM,iBAAiB,UAA0C;EAC/D,IAAI,MAAM,oBAAoB,CAAC,wBAAwB,MAAM,WAAW,GAAG;EAE3E,MAAM,eAAe;EACrB,IAAI,MAAM,QAAQ;EAClB,WAAW;CACb;CAEA,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,YAAY;EAClB,OAAO,CACL;GACE,UAAU,SAAS,KAAA,IAAY,MAAM;GACrC,UAAU;GACV,GAAG;GACH,cAAc,cAAc,MAAM,eAAe,YAAY,mBAAmB;GAChF,oBAAoB,MAAM,sBACtB,cAAc,MAAM,qBAAqB,UAAU,IACnD,KAAA;GACJ,GAAI,SAAS;IAAE,SAAS;IAAa,WAAW;GAAc,IAAI,KAAA;EACpE,GACA,YACF;CACF,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"time-value.js","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"sourcesContent":["import { TimeCore, TimeDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { durationSuffixText, elapsedSuffixText, remainingSuffixText } from '@videojs/core/i18n/text/time';\nimport { isInteractiveActivation } from '@videojs/utils/dom';\nimport { formatTimeAsPhrase } from '@videojs/utils/time';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\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, toggle = false, ...elementProps } = componentProps;\n\n const time = usePlayer(selectTime);\n const translator = useTranslator();\n const locale = useLocale();\n\n const [core] = useState(() => new TimeCore());\n\n const defaultType = type ?? TimeCore.defaultProps.type;\n const [activeType, setActiveType] = useState(defaultType);\n // biome-ignore lint/correctness/useExhaustiveDependencies: We want to listen for changes to defaultType and toggle (so we revert to default), this just means one less useEffect.\n useEffect(() => {\n setActiveType(defaultType);\n }, [defaultType, toggle]);\n\n core.setProps({\n type: activeType,\n negativeSign,\n label,\n toggle,\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('Time.Value', 'time');\n return null;\n }\n\n core.setMedia(time);\n core.setFormatLocale(locale);\n const state = core.getState();\n const attrs = core.getAttrs(state, defaultType);\n const labelParams = core.getLabelParams(state);\n const suffixText = {\n current: elapsedSuffixText,\n duration: durationSuffixText,\n remaining: remainingSuffixText,\n }[state.type];\n const resolvedLabelParams = labelParams\n ? {\n duration: translateText(suffixText, translator, {\n duration: formatTimeAsPhrase(Math.abs(state.seconds), { locale }),\n }),\n }\n : undefined;\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 const toggleType = () => {\n setActiveType((value) => {\n if (defaultType === 'current') {\n return value === 'remaining' ? 'current' : 'remaining';\n }\n return value === 'duration' ? 'remaining' : 'duration';\n });\n };\n\n const handleClick = (event: MouseEvent<HTMLTimeElement>) => {\n if (event.defaultPrevented) return;\n toggleType();\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTimeElement>) => {\n if (event.defaultPrevented || !isInteractiveActivation(event.nativeEvent)) return;\n // Prevent space from scrolling page.\n event.preventDefault();\n if (event.repeat) return;\n toggleType();\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: toggle ? undefined : state.datetime,\n children: content,\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator, resolvedLabelParams),\n 'aria-description': attrs['aria-description']\n ? translateText(attrs['aria-description'], translator)\n : undefined,\n ...(toggle ? { onClick: handleClick, onKeyDown: handleKeyDown } : undefined),\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":";;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,cAAc,OAAO,SAAS,OAAO,GAAG,iBAAiB;CAEjG,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,QAAQ,eAAe,IAAI,SAAS,CAAC;CAE5C,MAAM,cAAc,QAAQ,SAAS,aAAa;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,WAAW;CAExD,gBAAgB;EACd,cAAc,WAAW;CAC3B,GAAG,CAAC,aAAa,MAAM,CAAC;CAExB,KAAK,SAAS;EACZ,MAAM;EACN;EACA;EACA;CACF,CAAC;CAED,IAAI,CAAC,MAAM;EACI,kBAAkB,cAAc,MAAM;EACnD,OAAO;CACT;CAEA,KAAK,SAAS,IAAI;CAClB,KAAK,gBAAgB,MAAM;CAC3B,MAAM,QAAQ,KAAK,SAAS;CAC5B,MAAM,QAAQ,KAAK,SAAS,OAAO,WAAW;CAC9C,MAAM,cAAc,KAAK,eAAe,KAAK;CAC7C,MAAM,aAAa;EACjB,SAAS;EACT,UAAU;EACV,WAAW;CACb,EAAE,MAAM;CACR,MAAM,sBAAsB,cACxB,EACE,UAAU,cAAc,YAAY,YAAY,EAC9C,UAAU,mBAAmB,KAAK,IAAI,MAAM,OAAO,GAAG,EAAE,OAAO,CAAC,EAClE,CAAC,EACH,IACA,KAAA;CAEJ,MAAM,UAAU,MAAM,WACpB,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD;EAAM,eAAY;EAAQ,UAAA,gBAAgB,SAAS,aAAa;CAAmB,CAAA,GAClF,MAAM,IACP,EAAA,CAAA,IAEF,MAAM;CAGR,MAAM,mBAAmB;EACvB,eAAe,UAAU;GACvB,IAAI,gBAAgB,WAClB,OAAO,UAAU,cAAc,YAAY;GAE7C,OAAO,UAAU,aAAa,cAAc;EAC9C,CAAC;CACH;CAEA,MAAM,eAAe,UAAuC;EAC1D,IAAI,MAAM,kBAAkB;EAC5B,WAAW;CACb;CAEA,MAAM,iBAAiB,UAA0C;EAC/D,IAAI,MAAM,oBAAoB,CAAC,wBAAwB,MAAM,WAAW,GAAG;EAE3E,MAAM,eAAe;EACrB,IAAI,MAAM,QAAQ;EAClB,WAAW;CACb;CAEA,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,YAAY;EAClB,OAAO,CACL;GACE,UAAU,SAAS,KAAA,IAAY,MAAM;GACrC,UAAU;GACV,GAAG;GACH,cAAc,cAAc,MAAM,eAAe,YAAY,mBAAmB;GAChF,oBAAoB,MAAM,sBACtB,cAAc,MAAM,qBAAqB,UAAU,IACnD,KAAA;GACJ,GAAI,SAAS;IAAE,SAAS;IAAa,WAAW;GAAc,IAAI,KAAA;EACpE,GACA,YACF;CACF,CACF;AACF,CAAC"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../../utils/use-render.js";
3
2
  import { useSliderContext, useSliderPointerValue } from "../../slider/context.js";
4
3
  import { getStateDataAttrs } from "@videojs/core/dom";
@@ -1 +1 @@
1
- {"version":3,"file":"slider-segments.js","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/slider-segments.tsx"],"sourcesContent":["'use client';\n\nimport {\n type SliderSegmentRange,\n type SliderSegmentState,\n SliderSegmentsCore,\n TimeSliderChapterCSSVars,\n} from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport type { CSSProperties, ReactElement } from 'react';\nimport { Fragment, forwardRef, useMemo, useState } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../../utils/types';\nimport { renderElement } from '../../../utils/use-render';\nimport { useSliderContext, useSliderPointerValue } from '../../slider/context';\n\ntype SegmentProps = Omit<HTMLProps<HTMLElement>, 'ref'>;\n\ninterface SliderSegmentsProps extends Omit<UIComponentProps<'div', SliderSegmentState>, 'children'> {\n ranges: readonly SliderSegmentRange[];\n min: number;\n max: number;\n renderSegment: (props: SegmentProps, state: SliderSegmentState) => ReactElement;\n}\n\n/** Private React adapter for rendering normalized numeric slider segments. */\nexport const SliderSegments = forwardRef<HTMLDivElement, SliderSegmentsProps>(\n function SliderSegments(componentProps, ref) {\n const { ranges, min, max, renderSegment, render, className, style, ...elementProps } = componentProps;\n const slider = useSliderContext();\n const pointerValue = useSliderPointerValue();\n const [core] = useState(() => new SliderSegmentsCore());\n const geometry = useMemo(\n () => core.getGeometry({ ranges, min, max, orientation: slider.state.orientation }),\n [core, ranges, min, max, slider.state.orientation]\n );\n const sliderAttrs = getStateDataAttrs(slider.state, slider.stateAttrMap);\n\n const segments = geometry.map((segment) => {\n const state = core.getState(segment, slider.state, pointerValue);\n const segmentStyle = {\n [TimeSliderChapterCSSVars.start]: state.startPercent,\n [TimeSliderChapterCSSVars.end]: state.endPercent,\n [TimeSliderChapterCSSVars.width]: state.width ?? state.height,\n [TimeSliderChapterCSSVars.fill]: `${state.fillPercent}%`,\n } as CSSProperties;\n\n return (\n <Fragment key={state.key}>\n {renderSegment(\n {\n ...sliderAttrs,\n style: segmentStyle,\n },\n state\n )}\n </Fragment>\n );\n });\n\n const state = geometry.length > 0 ? core.getState(geometry[0]!, slider.state, pointerValue) : null;\n if (!state) return null;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref,\n props: [{ 'aria-hidden': 'true' }, sliderAttrs, elementProps, { children: segments }],\n }\n );\n }\n);\n"],"mappings":";;;;;;;;;AA0BA,MAAa,iBAAiB,WAC5B,SAAS,eAAe,gBAAgB,KAAK;CAC3C,MAAM,EAAE,QAAQ,KAAK,KAAK,eAAe,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACvF,MAAM,SAAS,iBAAiB;CAChC,MAAM,eAAe,sBAAsB;CAC3C,MAAM,CAAC,QAAQ,eAAe,IAAI,mBAAmB,CAAC;CACtD,MAAM,WAAW,cACT,KAAK,YAAY;EAAE;EAAQ;EAAK;EAAK,aAAa,OAAO,MAAM;CAAY,CAAC,GAClF;EAAC;EAAM;EAAQ;EAAK;EAAK,OAAO,MAAM;CAAW,CACnD;CACA,MAAM,cAAc,kBAAkB,OAAO,OAAO,OAAO,YAAY;CAEvE,MAAM,WAAW,SAAS,KAAK,YAAY;EACzC,MAAM,QAAQ,KAAK,SAAS,SAAS,OAAO,OAAO,YAAY;EAC/D,MAAM,eAAe;IAClB,yBAAyB,QAAQ,MAAM;IACvC,yBAAyB,MAAM,MAAM;IACrC,yBAAyB,QAAQ,MAAM,SAAS,MAAM;IACtD,yBAAyB,OAAO,GAAG,MAAM,YAAY;EACxD;EAEA,OACE,oBAAC,UAAD,EAAA,UACG,cACC;GACE,GAAG;GACH,OAAO;EACT,GACA,KACF,EACQ,GARK,MAAM,GAQX;CAEd,CAAC;CAED,MAAM,QAAQ,SAAS,SAAS,IAAI,KAAK,SAAS,SAAS,IAAK,OAAO,OAAO,YAAY,IAAI;CAC9F,IAAI,CAAC,OAAO,OAAO;CAEnB,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,OAAO;GAAC,EAAE,eAAe,OAAO;GAAG;GAAa;GAAc,EAAE,UAAU,SAAS;EAAC;CACtF,CACF;AACF,CACF"}
1
+ {"version":3,"file":"slider-segments.js","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/slider-segments.tsx"],"sourcesContent":["import {\n type SliderSegmentRange,\n type SliderSegmentState,\n SliderSegmentsCore,\n TimeSliderChapterCSSVars,\n} from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport type { CSSProperties, ReactElement } from 'react';\nimport { Fragment, forwardRef, useMemo, useState } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../../utils/types';\nimport { renderElement } from '../../../utils/use-render';\nimport { useSliderContext, useSliderPointerValue } from '../../slider/context';\n\ntype SegmentProps = Omit<HTMLProps<HTMLElement>, 'ref'>;\n\ninterface SliderSegmentsProps extends Omit<UIComponentProps<'div', SliderSegmentState>, 'children'> {\n ranges: readonly SliderSegmentRange[];\n min: number;\n max: number;\n renderSegment: (props: SegmentProps, state: SliderSegmentState) => ReactElement;\n}\n\n/** Private React adapter for rendering normalized numeric slider segments. */\nexport const SliderSegments = forwardRef<HTMLDivElement, SliderSegmentsProps>(\n function SliderSegments(componentProps, ref) {\n const { ranges, min, max, renderSegment, render, className, style, ...elementProps } = componentProps;\n const slider = useSliderContext();\n const pointerValue = useSliderPointerValue();\n const [core] = useState(() => new SliderSegmentsCore());\n const geometry = useMemo(\n () => core.getGeometry({ ranges, min, max, orientation: slider.state.orientation }),\n [core, ranges, min, max, slider.state.orientation]\n );\n const sliderAttrs = getStateDataAttrs(slider.state, slider.stateAttrMap);\n\n const segments = geometry.map((segment) => {\n const state = core.getState(segment, slider.state, pointerValue);\n const segmentStyle = {\n [TimeSliderChapterCSSVars.start]: state.startPercent,\n [TimeSliderChapterCSSVars.end]: state.endPercent,\n [TimeSliderChapterCSSVars.width]: state.width ?? state.height,\n [TimeSliderChapterCSSVars.fill]: `${state.fillPercent}%`,\n } as CSSProperties;\n\n return (\n <Fragment key={state.key}>\n {renderSegment(\n {\n ...sliderAttrs,\n style: segmentStyle,\n },\n state\n )}\n </Fragment>\n );\n });\n\n const state = geometry.length > 0 ? core.getState(geometry[0]!, slider.state, pointerValue) : null;\n if (!state) return null;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref,\n props: [{ 'aria-hidden': 'true' }, sliderAttrs, elementProps, { children: segments }],\n }\n );\n }\n);\n"],"mappings":";;;;;;;;AAwBA,MAAa,iBAAiB,WAC5B,SAAS,eAAe,gBAAgB,KAAK;CAC3C,MAAM,EAAE,QAAQ,KAAK,KAAK,eAAe,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACvF,MAAM,SAAS,iBAAiB;CAChC,MAAM,eAAe,sBAAsB;CAC3C,MAAM,CAAC,QAAQ,eAAe,IAAI,mBAAmB,CAAC;CACtD,MAAM,WAAW,cACT,KAAK,YAAY;EAAE;EAAQ;EAAK;EAAK,aAAa,OAAO,MAAM;CAAY,CAAC,GAClF;EAAC;EAAM;EAAQ;EAAK;EAAK,OAAO,MAAM;CAAW,CACnD;CACA,MAAM,cAAc,kBAAkB,OAAO,OAAO,OAAO,YAAY;CAEvE,MAAM,WAAW,SAAS,KAAK,YAAY;EACzC,MAAM,QAAQ,KAAK,SAAS,SAAS,OAAO,OAAO,YAAY;EAC/D,MAAM,eAAe;IAClB,yBAAyB,QAAQ,MAAM;IACvC,yBAAyB,MAAM,MAAM;IACrC,yBAAyB,QAAQ,MAAM,SAAS,MAAM;IACtD,yBAAyB,OAAO,GAAG,MAAM,YAAY;EACxD;EAEA,OACE,oBAAC,UAAD,EAAA,UACG,cACC;GACE,GAAG;GACH,OAAO;EACT,GACA,KACF,EACQ,GARK,MAAM,GAQX;CAEd,CAAC;CAED,MAAM,QAAQ,SAAS,SAAS,IAAI,KAAK,SAAS,SAAS,IAAK,OAAO,OAAO,YAAY,IAAI;CAC9F,IAAI,CAAC,OAAO,OAAO;CAEnB,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,OAAO;GAAC,EAAE,eAAe,OAAO;GAAG;GAAa;GAAc,EAAE,UAAU,SAAS;EAAC;CACtF,CACF;AACF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"time-slider-chapter-title.d.ts","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/time-slider-chapter-title.tsx"],"mappings":";;;UAYiB;;EAEf,KAAK;;EAEL;;UAGe,oCAAoC,yBAAyB;;cAGjE,wCAAsB,0BAAA,KAAA,sDAAA,cAAA;kBAqClB;OACH,QAAQ;OACR,QAAQ"}
1
+ {"version":3,"file":"time-slider-chapter-title.d.ts","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/time-slider-chapter-title.tsx"],"mappings":";;;UAUiB;;EAEf,KAAK;;EAEL;;UAGe,oCAAoC,yBAAyB;;cAGjE,wCAAsB,0BAAA,KAAA,sDAAA,cAAA;kBAqClB;OACH,QAAQ;OACR,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { usePlayer } from "../../../player/context.js";
3
2
  import { renderElement } from "../../../utils/use-render.js";
4
3
  import { useSliderContext, useSliderPointerValue } from "../../slider/context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"time-slider-chapter-title.js","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/time-slider-chapter-title.tsx"],"sourcesContent":["'use client';\n\nimport { TimeSliderChaptersCore } from '@videojs/core';\nimport { selectTextTrack, selectTime } from '@videojs/core/dom';\nimport type { MediaTextCue } from '@videojs/media';\nimport { forwardRef, useMemo, useState } from 'react';\n\nimport { usePlayer } from '../../../player/context';\nimport type { UIComponentProps } from '../../../utils/types';\nimport { renderElement } from '../../../utils/use-render';\nimport { useSliderContext, useSliderPointerValue } from '../../slider/context';\n\nexport interface TimeSliderChapterTitleState {\n /** Chapter at the current interaction value. */\n cue: MediaTextCue | null;\n /** Chapter cue text, or an empty string for an uncovered interval. */\n text: string;\n}\n\nexport interface TimeSliderChapterTitleProps extends UIComponentProps<'span', TimeSliderChapterTitleState> {}\n\n/** Displays the chapter title at the current pointer or keyboard position. */\nexport const TimeSliderChapterTitle = forwardRef<HTMLSpanElement, TimeSliderChapterTitleProps>(\n function TimeSliderChapterTitle(componentProps, ref) {\n const { render, className, style, ...elementProps } = componentProps;\n const slider = useSliderContext();\n const pointerValue = useSliderPointerValue();\n const textTrack = usePlayer(selectTextTrack);\n const time = usePlayer(selectTime);\n const [core] = useState(() => new TimeSliderChaptersCore());\n const { chapters } = useMemo(\n () => core.getRanges(textTrack?.chaptersCues ?? [], 0, time?.duration ?? 0),\n [core, textTrack?.chaptersCues, time?.duration]\n );\n const keyboard = slider.state.interactive && !slider.state.pointing && !slider.state.dragging;\n const value = slider.state.pointing || slider.state.dragging ? pointerValue : slider.state.value;\n const chapter = core.findChapter(chapters, value);\n const cue = chapter?.cue ?? null;\n const state = { cue, text: cue?.text ?? '' };\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref,\n props: [\n {\n 'aria-hidden': keyboard ? undefined : true,\n 'aria-live': keyboard ? 'polite' : undefined,\n children: state.text,\n },\n elementProps,\n ],\n }\n );\n }\n);\n\nexport namespace TimeSliderChapterTitle {\n export type Props = TimeSliderChapterTitleProps;\n export type State = TimeSliderChapterTitleState;\n}\n"],"mappings":";;;;;;;;;AAsBA,MAAa,yBAAyB,WACpC,SAAS,uBAAuB,gBAAgB,KAAK;CACnD,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,SAAS,iBAAiB;CAChC,MAAM,eAAe,sBAAsB;CAC3C,MAAM,YAAY,UAAU,eAAe;CAC3C,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,CAAC,QAAQ,eAAe,IAAI,uBAAuB,CAAC;CAC1D,MAAM,EAAE,aAAa,cACb,KAAK,UAAU,WAAW,gBAAgB,CAAC,GAAG,GAAG,MAAM,YAAY,CAAC,GAC1E;EAAC;EAAM,WAAW;EAAc,MAAM;CAAQ,CAChD;CACA,MAAM,WAAW,OAAO,MAAM,eAAe,CAAC,OAAO,MAAM,YAAY,CAAC,OAAO,MAAM;CACrF,MAAM,QAAQ,OAAO,MAAM,YAAY,OAAO,MAAM,WAAW,eAAe,OAAO,MAAM;CAE3F,MAAM,MADU,KAAK,YAAY,UAAU,KACzB,CAAC,EAAE,OAAO;CAC5B,MAAM,QAAQ;EAAE;EAAK,MAAM,KAAK,QAAQ;CAAG;CAE3C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,OAAO,CACL;GACE,eAAe,WAAW,KAAA,IAAY;GACtC,aAAa,WAAW,WAAW,KAAA;GACnC,UAAU,MAAM;EAClB,GACA,YACF;CACF,CACF;AACF,CACF"}
1
+ {"version":3,"file":"time-slider-chapter-title.js","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/time-slider-chapter-title.tsx"],"sourcesContent":["import { TimeSliderChaptersCore } from '@videojs/core';\nimport { selectTextTrack, selectTime } from '@videojs/core/dom';\nimport type { MediaTextCue } from '@videojs/media';\nimport { forwardRef, useMemo, useState } from 'react';\n\nimport { usePlayer } from '../../../player/context';\nimport type { UIComponentProps } from '../../../utils/types';\nimport { renderElement } from '../../../utils/use-render';\nimport { useSliderContext, useSliderPointerValue } from '../../slider/context';\n\nexport interface TimeSliderChapterTitleState {\n /** Chapter at the current interaction value. */\n cue: MediaTextCue | null;\n /** Chapter cue text, or an empty string for an uncovered interval. */\n text: string;\n}\n\nexport interface TimeSliderChapterTitleProps extends UIComponentProps<'span', TimeSliderChapterTitleState> {}\n\n/** Displays the chapter title at the current pointer or keyboard position. */\nexport const TimeSliderChapterTitle = forwardRef<HTMLSpanElement, TimeSliderChapterTitleProps>(\n function TimeSliderChapterTitle(componentProps, ref) {\n const { render, className, style, ...elementProps } = componentProps;\n const slider = useSliderContext();\n const pointerValue = useSliderPointerValue();\n const textTrack = usePlayer(selectTextTrack);\n const time = usePlayer(selectTime);\n const [core] = useState(() => new TimeSliderChaptersCore());\n const { chapters } = useMemo(\n () => core.getRanges(textTrack?.chaptersCues ?? [], 0, time?.duration ?? 0),\n [core, textTrack?.chaptersCues, time?.duration]\n );\n const keyboard = slider.state.interactive && !slider.state.pointing && !slider.state.dragging;\n const value = slider.state.pointing || slider.state.dragging ? pointerValue : slider.state.value;\n const chapter = core.findChapter(chapters, value);\n const cue = chapter?.cue ?? null;\n const state = { cue, text: cue?.text ?? '' };\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n ref,\n props: [\n {\n 'aria-hidden': keyboard ? undefined : true,\n 'aria-live': keyboard ? 'polite' : undefined,\n children: state.text,\n },\n elementProps,\n ],\n }\n );\n }\n);\n\nexport namespace TimeSliderChapterTitle {\n export type Props = TimeSliderChapterTitleProps;\n export type State = TimeSliderChapterTitleState;\n}\n"],"mappings":";;;;;;;;AAoBA,MAAa,yBAAyB,WACpC,SAAS,uBAAuB,gBAAgB,KAAK;CACnD,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CACtD,MAAM,SAAS,iBAAiB;CAChC,MAAM,eAAe,sBAAsB;CAC3C,MAAM,YAAY,UAAU,eAAe;CAC3C,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,CAAC,QAAQ,eAAe,IAAI,uBAAuB,CAAC;CAC1D,MAAM,EAAE,aAAa,cACb,KAAK,UAAU,WAAW,gBAAgB,CAAC,GAAG,GAAG,MAAM,YAAY,CAAC,GAC1E;EAAC;EAAM,WAAW;EAAc,MAAM;CAAQ,CAChD;CACA,MAAM,WAAW,OAAO,MAAM,eAAe,CAAC,OAAO,MAAM,YAAY,CAAC,OAAO,MAAM;CACrF,MAAM,QAAQ,OAAO,MAAM,YAAY,OAAO,MAAM,WAAW,eAAe,OAAO,MAAM;CAE3F,MAAM,MADU,KAAK,YAAY,UAAU,KACzB,CAAC,EAAE,OAAO;CAC5B,MAAM,QAAQ;EAAE;EAAK,MAAM,KAAK,QAAQ;CAAG;CAE3C,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,OAAO,CACL;GACE,eAAe,WAAW,KAAA,IAAY;GACtC,aAAa,WAAW,WAAW,KAAA;GACnC,UAAU,MAAM;EAClB,GACA,YACF;CACF,CACF;AACF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"time-slider-chapters.d.ts","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/time-slider-chapters.tsx"],"mappings":";;;;KAkBY,yBAAyB,uBAAuB;UAE3C;;EAEf,mBAAmB;;UAGJ,gCAAgC,KAAK,wBAAwB;;EAE5E,gBAAgB,OAAO,KAAK,UAAU,sBAAsB,OAAO,2BAA2B;;;cAInF,oCAAkB,0BAAA,KAAA,kDAAA,cAAA;kBA6Cd;OACH,QAAQ;OACR,QAAQ"}
1
+ {"version":3,"file":"time-slider-chapters.d.ts","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/time-slider-chapters.tsx"],"mappings":";;;;KAgBY,yBAAyB,uBAAuB;UAE3C;;EAEf,mBAAmB;;UAGJ,gCAAgC,KAAK,wBAAwB;;EAE5E,gBAAgB,OAAO,KAAK,UAAU,sBAAsB,OAAO,2BAA2B;;;cAInF,oCAAkB,0BAAA,KAAA,kDAAA,cAAA;kBA6Cd;OACH,QAAQ;OACR,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { usePlayer } from "../../../player/context.js";
3
2
  import { SliderSegments } from "./slider-segments.js";
4
3
  import { getStateDataAttrs, selectBuffer, selectTextTrack, selectTime } from "@videojs/core/dom";
@@ -1 +1 @@
1
- {"version":3,"file":"time-slider-chapters.js","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/time-slider-chapters.tsx"],"sourcesContent":["'use client';\n\nimport {\n type SliderSegmentState,\n TimeSliderChapterCSSVars,\n TimeSliderChapterDataAttrs,\n type TimeSliderChapterRange,\n TimeSliderChaptersCore,\n} from '@videojs/core';\nimport { getStateDataAttrs, selectBuffer, selectTextTrack, selectTime } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { CSSProperties, ReactElement } from 'react';\nimport { forwardRef, useMemo, useState } from 'react';\n\nimport { usePlayer } from '../../../player/context';\nimport type { HTMLProps, UIComponentProps } from '../../../utils/types';\nimport { SliderSegments } from './slider-segments';\n\nexport type TimeSliderChapterState = TimeSliderChaptersCore.State;\n\nexport interface TimeSliderChaptersState {\n /** Normalized ranges spanning the full slider domain. */\n chapters: readonly TimeSliderChapterRange[];\n}\n\nexport interface TimeSliderChaptersProps extends Omit<UIComponentProps<'div', TimeSliderChaptersState>, 'children'> {\n /** Render one consumer-owned subtree for every normalized chapter range. */\n renderChapter: (props: Omit<HTMLProps<HTMLElement>, 'ref'>, state: TimeSliderChapterState) => ReactElement;\n}\n\n/** Renders normalized chapter ranges across the full slider, including one full range when chapter cues are absent. */\nexport const TimeSliderChapters = forwardRef<HTMLDivElement, TimeSliderChaptersProps>(\n function TimeSliderChapters(componentProps, ref) {\n const { renderChapter, className, style, render, ...props } = componentProps;\n const textTrack = usePlayer(selectTextTrack);\n const buffer = usePlayer(selectBuffer);\n const time = usePlayer(selectTime);\n const duration = time?.duration ?? 0;\n const [core] = useState(() => new TimeSliderChaptersCore());\n const { chapters, ranges, max } = useMemo(\n () => core.getRanges(textTrack?.chaptersCues ?? [], 0, duration),\n [core, textTrack?.chaptersCues, duration]\n );\n const bufferedEnd = buffer?.buffered.length ? buffer.buffered[buffer.buffered.length - 1]![1] : 0;\n const getChapterState = (segment: SliderSegmentState) => core.getState(segment, chapters, bufferedEnd);\n const state = useMemo(() => ({ chapters }), [chapters]);\n\n return (\n <SliderSegments\n ref={ref}\n {...props}\n className={isFunction(className) ? className(state) : className}\n style={isFunction(style) ? style(state) : style}\n render={isFunction(render) ? (renderProps) => render(renderProps, state) : render}\n ranges={ranges}\n min={0}\n max={max}\n renderSegment={(segmentProps, segment) => {\n const state = getChapterState(segment);\n const chapterProps = {\n ...segmentProps,\n ...getStateDataAttrs(state, TimeSliderChapterDataAttrs),\n style: {\n ...segmentProps.style,\n pointerEvents: state.cue ? undefined : 'none',\n [TimeSliderChapterCSSVars.buffer]: `${state.bufferPercent}%`,\n } as CSSProperties,\n };\n\n return renderChapter(chapterProps, state);\n }}\n />\n );\n }\n);\n\nexport namespace TimeSliderChapters {\n export type Props = TimeSliderChaptersProps;\n export type State = TimeSliderChaptersState;\n}\n"],"mappings":";;;;;;;;;;AA+BA,MAAa,qBAAqB,WAChC,SAAS,mBAAmB,gBAAgB,KAAK;CAC/C,MAAM,EAAE,eAAe,WAAW,OAAO,QAAQ,GAAG,UAAU;CAC9D,MAAM,YAAY,UAAU,eAAe;CAC3C,MAAM,SAAS,UAAU,YAAY;CAErC,MAAM,WADO,UAAU,UACH,CAAC,EAAE,YAAY;CACnC,MAAM,CAAC,QAAQ,eAAe,IAAI,uBAAuB,CAAC;CAC1D,MAAM,EAAE,UAAU,QAAQ,QAAQ,cAC1B,KAAK,UAAU,WAAW,gBAAgB,CAAC,GAAG,GAAG,QAAQ,GAC/D;EAAC;EAAM,WAAW;EAAc;CAAQ,CAC1C;CACA,MAAM,cAAc,QAAQ,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,SAAS,EAAE,CAAE,KAAK;CAChG,MAAM,mBAAmB,YAAgC,KAAK,SAAS,SAAS,UAAU,WAAW;CACrG,MAAM,QAAQ,eAAe,EAAE,SAAS,IAAI,CAAC,QAAQ,CAAC;CAEtD,OACE,oBAAC,gBAAD;EACO;EACL,GAAI;EACJ,WAAW,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;EACtD,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;EAC1C,QAAQ,WAAW,MAAM,KAAK,gBAAgB,OAAO,aAAa,KAAK,IAAI;EACnE;EACR,KAAK;EACA;EACL,gBAAgB,cAAc,YAAY;GACxC,MAAM,QAAQ,gBAAgB,OAAO;GACrC,MAAM,eAAe;IACnB,GAAG;IACH,GAAG,kBAAkB,OAAO,0BAA0B;IACtD,OAAO;KACL,GAAG,aAAa;KAChB,eAAe,MAAM,MAAM,KAAA,IAAY;MACtC,yBAAyB,SAAS,GAAG,MAAM,cAAc;IAC5D;GACF;GAEA,OAAO,cAAc,cAAc,KAAK;EAC1C;CACD,CAAA;AAEL,CACF"}
1
+ {"version":3,"file":"time-slider-chapters.js","names":[],"sources":["../../../../../src/ui/time-slider/time-slider-chapters/time-slider-chapters.tsx"],"sourcesContent":["import {\n type SliderSegmentState,\n TimeSliderChapterCSSVars,\n TimeSliderChapterDataAttrs,\n type TimeSliderChapterRange,\n TimeSliderChaptersCore,\n} from '@videojs/core';\nimport { getStateDataAttrs, selectBuffer, selectTextTrack, selectTime } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { CSSProperties, ReactElement } from 'react';\nimport { forwardRef, useMemo, useState } from 'react';\n\nimport { usePlayer } from '../../../player/context';\nimport type { HTMLProps, UIComponentProps } from '../../../utils/types';\nimport { SliderSegments } from './slider-segments';\n\nexport type TimeSliderChapterState = TimeSliderChaptersCore.State;\n\nexport interface TimeSliderChaptersState {\n /** Normalized ranges spanning the full slider domain. */\n chapters: readonly TimeSliderChapterRange[];\n}\n\nexport interface TimeSliderChaptersProps extends Omit<UIComponentProps<'div', TimeSliderChaptersState>, 'children'> {\n /** Render one consumer-owned subtree for every normalized chapter range. */\n renderChapter: (props: Omit<HTMLProps<HTMLElement>, 'ref'>, state: TimeSliderChapterState) => ReactElement;\n}\n\n/** Renders normalized chapter ranges across the full slider, including one full range when chapter cues are absent. */\nexport const TimeSliderChapters = forwardRef<HTMLDivElement, TimeSliderChaptersProps>(\n function TimeSliderChapters(componentProps, ref) {\n const { renderChapter, className, style, render, ...props } = componentProps;\n const textTrack = usePlayer(selectTextTrack);\n const buffer = usePlayer(selectBuffer);\n const time = usePlayer(selectTime);\n const duration = time?.duration ?? 0;\n const [core] = useState(() => new TimeSliderChaptersCore());\n const { chapters, ranges, max } = useMemo(\n () => core.getRanges(textTrack?.chaptersCues ?? [], 0, duration),\n [core, textTrack?.chaptersCues, duration]\n );\n const bufferedEnd = buffer?.buffered.length ? buffer.buffered[buffer.buffered.length - 1]![1] : 0;\n const getChapterState = (segment: SliderSegmentState) => core.getState(segment, chapters, bufferedEnd);\n const state = useMemo(() => ({ chapters }), [chapters]);\n\n return (\n <SliderSegments\n ref={ref}\n {...props}\n className={isFunction(className) ? className(state) : className}\n style={isFunction(style) ? style(state) : style}\n render={isFunction(render) ? (renderProps) => render(renderProps, state) : render}\n ranges={ranges}\n min={0}\n max={max}\n renderSegment={(segmentProps, segment) => {\n const state = getChapterState(segment);\n const chapterProps = {\n ...segmentProps,\n ...getStateDataAttrs(state, TimeSliderChapterDataAttrs),\n style: {\n ...segmentProps.style,\n pointerEvents: state.cue ? undefined : 'none',\n [TimeSliderChapterCSSVars.buffer]: `${state.bufferPercent}%`,\n } as CSSProperties,\n };\n\n return renderChapter(chapterProps, state);\n }}\n />\n );\n }\n);\n\nexport namespace TimeSliderChapters {\n export type Props = TimeSliderChaptersProps;\n export type State = TimeSliderChaptersState;\n}\n"],"mappings":";;;;;;;;;AA6BA,MAAa,qBAAqB,WAChC,SAAS,mBAAmB,gBAAgB,KAAK;CAC/C,MAAM,EAAE,eAAe,WAAW,OAAO,QAAQ,GAAG,UAAU;CAC9D,MAAM,YAAY,UAAU,eAAe;CAC3C,MAAM,SAAS,UAAU,YAAY;CAErC,MAAM,WADO,UAAU,UACH,CAAC,EAAE,YAAY;CACnC,MAAM,CAAC,QAAQ,eAAe,IAAI,uBAAuB,CAAC;CAC1D,MAAM,EAAE,UAAU,QAAQ,QAAQ,cAC1B,KAAK,UAAU,WAAW,gBAAgB,CAAC,GAAG,GAAG,QAAQ,GAC/D;EAAC;EAAM,WAAW;EAAc;CAAQ,CAC1C;CACA,MAAM,cAAc,QAAQ,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,SAAS,EAAE,CAAE,KAAK;CAChG,MAAM,mBAAmB,YAAgC,KAAK,SAAS,SAAS,UAAU,WAAW;CACrG,MAAM,QAAQ,eAAe,EAAE,SAAS,IAAI,CAAC,QAAQ,CAAC;CAEtD,OACE,oBAAC,gBAAD;EACO;EACL,GAAI;EACJ,WAAW,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;EACtD,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;EAC1C,QAAQ,WAAW,MAAM,KAAK,gBAAgB,OAAO,aAAa,KAAK,IAAI;EACnE;EACR,KAAK;EACA;EACL,gBAAgB,cAAc,YAAY;GACxC,MAAM,QAAQ,gBAAgB,OAAO;GACrC,MAAM,eAAe;IACnB,GAAG;IACH,GAAG,kBAAkB,OAAO,0BAA0B;IACtD,OAAO;KACL,GAAG,aAAa;KAChB,eAAe,MAAM,MAAM,KAAA,IAAY;MACtC,yBAAyB,SAAS,GAAG,MAAM,cAAc;IAC5D;GACF;GAEA,OAAO,cAAc,cAAc,KAAK;EAC1C;CACD,CAAA;AAEL,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"time-slider-root.d.ts","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"mappings":";;;UAkBiB,4BAA4B,wBAAwB,eAAe,QAAQ,eAAe;EACzG;EACA;;cAGW,gCAAc,0BAAA,KAAA,8CAAA,cAAA;kBAyIV;OACH,QAAQ;OACR,QAAQ,eAAe"}
1
+ {"version":3,"file":"time-slider-root.d.ts","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"mappings":";;;UAgBiB,4BAA4B,wBAAwB,eAAe,QAAQ,eAAe;EACzG;EACA;;cAGW,gCAAc,0BAAA,KAAA,8CAAA,cAAA;kBAyIV;OACH,QAAQ;OACR,QAAQ,eAAe"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useLocale, useTranslator } from "../../i18n/context.js";
3
2
  import { usePlayer } from "../../player/context.js";
4
3
  import { useLatestRef } from "../../utils/use-latest-ref.js";
@@ -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, selectPlayback, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { formatTime } from '@videojs/utils/time';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopSeek = (): Promise<number> => Promise.resolve(0);\n\nexport interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const TimeSliderRoot = forwardRef<HTMLDivElement, TimeSliderRootProps>(\n function TimeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle,\n step = TimeSliderCore.defaultProps.step,\n largeStep = TimeSliderCore.defaultProps.largeStep,\n orientation,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n pauseOnDrag,\n ...elementProps\n } = componentProps;\n\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n const playback = usePlayer(selectPlayback);\n const translator = useTranslator();\n const locale = useLocale();\n\n const [core] = useState(() => new TimeSliderCore());\n core.setProps({\n label,\n step,\n largeStep,\n orientation,\n disabled,\n thumbAlignment,\n pauseOnDrag,\n changeThrottle,\n });\n core.setFormatLocale(locale);\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 const playbackRef = useLatestRef(playback);\n\n // Resume playback if the slider unmounts mid-drag — createSlider's destroy()\n // does not fire onDragEnd, so without this the player would stay paused.\n useEffect(() => {\n return () => core.endDrag(playbackRef.current);\n }, [core]);\n\n const duration = time?.duration ?? 0;\n\n const { state, input, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } =\n 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: () => core.percentFromValue(time?.currentTime ?? 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n changeThrottle,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getTimeSliderCSSVars,\n onValueCommit: (percent) => {\n const media = mediaRef.current;\n if (media) media.seek(core.rawValueFromPercent(percent));\n },\n onDragStart: () => {\n core.startDrag(playbackRef.current);\n onDragStart?.();\n },\n onDragEnd: () => {\n core.endDrag(playbackRef.current);\n onDragEnd?.();\n },\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.rawValueFromPercent(state.pointerPercent),\n input,\n getPointerValue: (percent) => core.rawValueFromPercent(percent),\n thumbRef,\n thumbProps,\n stateAttrMap: TimeSliderDataAttrs,\n getAttrs: (sliderState) => {\n const attrs = core.getAttrs(sliderState as TimeSliderCore.State);\n return {\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator),\n 'aria-valuetext': translateText(\n attrs['aria-valuetext'],\n translator,\n core.getValueTextParams(sliderState as TimeSliderCore.State)\n ),\n };\n },\n formatValue: (value) => formatTime(value, duration, { locale }),\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":";;;;;;;;;;;;;;AAgBA,MAAM,iBAAkC,QAAQ,QAAQ,CAAC;AAOzD,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,aACA,GAAG,iBACD;CAEJ,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,SAAS,UAAU,YAAY;CACrC,MAAM,WAAW,UAAU,cAAc;CACzC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAClD,KAAK,SAAS;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,KAAK,gBAAgB,MAAM;CAG3B,MAAM,WAAW,aAAa,QAAQ,SAAS;EAAE,GAAG;EAAM,GAAG;CAAO,IAAI,IAAI;CAC5E,MAAM,cAAc,aAAa,QAAQ;CAIzC,gBAAgB;EACd,aAAa,KAAK,QAAQ,YAAY,OAAO;CAC/C,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,EAAE,OAAO,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eACtE,UAAgC;EAC9B,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,IAAI,CAAC,QAAQ,CAAC,QACZ,KAAK,SAAS;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU,CAAC;IACX,UAAU,CAAC;GACb,CAAC;QAED,KAAK,SAAS;IAAE,GAAG;IAAM,GAAG;GAAO,CAAC;GAGtC,OAAO,KAAK,SAAS;EACvB;EACA,kBAAkB,KAAK,iBAAiB,MAAM,eAAe,CAAC;EAC9D,sBAAsB,KAAK,eAAe;EAC1C,2BAA2B,KAAK,oBAAoB;EACpD;EACA;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,gBAAgB,YAAY;GAC1B,MAAM,QAAQ,SAAS;GACvB,IAAI,OAAO,MAAM,KAAK,KAAK,oBAAoB,OAAO,CAAC;EACzD;EACA,mBAAmB;GACjB,KAAK,UAAU,YAAY,OAAO;GAClC,cAAc;EAChB;EACA,iBAAiB;GACf,KAAK,QAAQ,YAAY,OAAO;GAChC,YAAY;EACd;CACF,CAAC;CAEH,IAAI,CAAC,MAAM;EACI,kBAAkB,cAAc,MAAM;EACnD,OAAO;CACT;CAEA,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,oBAAoB,MAAM,cAAc;GAC3D;GACA,kBAAkB,YAAY,KAAK,oBAAoB,OAAO;GAC9D;GACA;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAmC;IAC/D,OAAO;KACL,GAAG;KACH,cAAc,cAAc,MAAM,eAAe,UAAU;KAC3D,kBAAkB,cAChB,MAAM,mBACN,YACA,KAAK,mBAAmB,WAAmC,CAC7D;IACF;GACF;GACA,cAAc,UAAU,WAAW,OAAO,UAAU,EAAE,OAAO,CAAC;EAChE;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,OAAO;GAC3B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CACF"}
1
+ {"version":3,"file":"time-slider-root.js","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"sourcesContent":["import { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectPlayback, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { formatTime } from '@videojs/utils/time';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { useLocale, useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopSeek = (): Promise<number> => Promise.resolve(0);\n\nexport interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const TimeSliderRoot = forwardRef<HTMLDivElement, TimeSliderRootProps>(\n function TimeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle,\n step = TimeSliderCore.defaultProps.step,\n largeStep = TimeSliderCore.defaultProps.largeStep,\n orientation,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n pauseOnDrag,\n ...elementProps\n } = componentProps;\n\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n const playback = usePlayer(selectPlayback);\n const translator = useTranslator();\n const locale = useLocale();\n\n const [core] = useState(() => new TimeSliderCore());\n core.setProps({\n label,\n step,\n largeStep,\n orientation,\n disabled,\n thumbAlignment,\n pauseOnDrag,\n changeThrottle,\n });\n core.setFormatLocale(locale);\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 const playbackRef = useLatestRef(playback);\n\n // Resume playback if the slider unmounts mid-drag — createSlider's destroy()\n // does not fire onDragEnd, so without this the player would stay paused.\n useEffect(() => {\n return () => core.endDrag(playbackRef.current);\n }, [core]);\n\n const duration = time?.duration ?? 0;\n\n const { state, input, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } =\n 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: () => core.percentFromValue(time?.currentTime ?? 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n changeThrottle,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getTimeSliderCSSVars,\n onValueCommit: (percent) => {\n const media = mediaRef.current;\n if (media) media.seek(core.rawValueFromPercent(percent));\n },\n onDragStart: () => {\n core.startDrag(playbackRef.current);\n onDragStart?.();\n },\n onDragEnd: () => {\n core.endDrag(playbackRef.current);\n onDragEnd?.();\n },\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.rawValueFromPercent(state.pointerPercent),\n input,\n getPointerValue: (percent) => core.rawValueFromPercent(percent),\n thumbRef,\n thumbProps,\n stateAttrMap: TimeSliderDataAttrs,\n getAttrs: (sliderState) => {\n const attrs = core.getAttrs(sliderState as TimeSliderCore.State);\n return {\n ...attrs,\n 'aria-label': translateText(attrs['aria-label'], translator),\n 'aria-valuetext': translateText(\n attrs['aria-valuetext'],\n translator,\n core.getValueTextParams(sliderState as TimeSliderCore.State)\n ),\n };\n },\n formatValue: (value) => formatTime(value, duration, { locale }),\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,CAAC;AAOzD,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,aACA,GAAG,iBACD;CAEJ,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,SAAS,UAAU,YAAY;CACrC,MAAM,WAAW,UAAU,cAAc;CACzC,MAAM,aAAa,cAAc;CACjC,MAAM,SAAS,UAAU;CAEzB,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAClD,KAAK,SAAS;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,KAAK,gBAAgB,MAAM;CAG3B,MAAM,WAAW,aAAa,QAAQ,SAAS;EAAE,GAAG;EAAM,GAAG;CAAO,IAAI,IAAI;CAC5E,MAAM,cAAc,aAAa,QAAQ;CAIzC,gBAAgB;EACd,aAAa,KAAK,QAAQ,YAAY,OAAO;CAC/C,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,EAAE,OAAO,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eACtE,UAAgC;EAC9B,eAAe,UAAU;GACvB,KAAK,SAAS,KAAK;GACnB,IAAI,CAAC,QAAQ,CAAC,QACZ,KAAK,SAAS;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU,CAAC;IACX,UAAU,CAAC;GACb,CAAC;QAED,KAAK,SAAS;IAAE,GAAG;IAAM,GAAG;GAAO,CAAC;GAGtC,OAAO,KAAK,SAAS;EACvB;EACA,kBAAkB,KAAK,iBAAiB,MAAM,eAAe,CAAC;EAC9D,sBAAsB,KAAK,eAAe;EAC1C,2BAA2B,KAAK,oBAAoB;EACpD;EACA;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,SAAS;EACjE,YAAY;EACZ,gBAAgB,YAAY;GAC1B,MAAM,QAAQ,SAAS;GACvB,IAAI,OAAO,MAAM,KAAK,KAAK,oBAAoB,OAAO,CAAC;EACzD;EACA,mBAAmB;GACjB,KAAK,UAAU,YAAY,OAAO;GAClC,cAAc;EAChB;EACA,iBAAiB;GACf,KAAK,QAAQ,YAAY,OAAO;GAChC,YAAY;EACd;CACF,CAAC;CAEH,IAAI,CAAC,MAAM;EACI,kBAAkB,cAAc,MAAM;EACnD,OAAO;CACT;CAEA,OACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,oBAAoB,MAAM,cAAc;GAC3D;GACA,kBAAkB,YAAY,KAAK,oBAAoB,OAAO;GAC9D;GACA;GACA,cAAc;GACd,WAAW,gBAAgB;IACzB,MAAM,QAAQ,KAAK,SAAS,WAAmC;IAC/D,OAAO;KACL,GAAG;KACH,cAAc,cAAc,MAAM,eAAe,UAAU;KAC3D,kBAAkB,cAChB,MAAM,mBACN,YACA,KAAK,mBAAmB,WAAmC,CAC7D;IACF;GACF;GACA,cAAc,UAAU,WAAW,OAAO,UAAU,EAAE,OAAO,CAAC;EAChE;EAEC,UAAA,cACC,OACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,OAAO;GAC3B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;IAAU,EAAE;IAAG;IAAW;GAAY;EAC1E,CACF;CACc,CAAA;AAEpB,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"mappings":";;;UAMiB;EACf;EACA;;UAGe;EACf,MAAM;EACN,SAAS;EACT,OAAO,YAAY;EACnB,eAAe,YAAY;EAC3B,oBAAoB,MAAM,YAAY;EACtC,cAAc,eAAa,YAAY;EACvC;EACA;EACA,SAAS;EACT,aAAa,SAAS;EACtB,UAAU;EACV,WAAW;;iBAOG,qBAAqB;iBAMrB,6BAA6B"}
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"mappings":";;;UAIiB;EACf;EACA;;UAGe;EACf,MAAM;EACN,SAAS;EACT,OAAO,YAAY;EACnB,eAAe,YAAY;EAC3B,oBAAoB,MAAM,YAAY;EACtC,cAAc,eAAa,YAAY;EACvC;EACA;EACA,SAAS;EACT,aAAa,SAAS;EACtB,UAAU;EACV,WAAW;;iBAOG,qBAAqB;iBAMrB,6BAA6B"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createContext, useContext } from "react";
3
2
  //#region src/ui/tooltip/context.tsx
4
3
  const TooltipContext = createContext(null);
@@ -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 { MediaContainer, PositioningBoundary, TooltipApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface TooltipContent {\n label?: string | undefined;\n shortcut?: string | undefined;\n}\n\nexport interface TooltipContextValue {\n core: TooltipCore;\n tooltip: TooltipApi;\n state: TooltipCore.State;\n preferredSide: TooltipCore.State['side'];\n setPositionedSide: (side: TooltipCore.State['side']) => void;\n stateAttrMap: StateAttrMap<TooltipCore.State>;\n anchorName: string;\n popupId: string;\n content: TooltipContent | undefined;\n setContent: (content: TooltipContent | undefined) => void;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null);\n\nexport const TooltipContextProvider = TooltipContext.Provider;\n\nexport function useTooltipContext(): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) throw new Error('Tooltip compound components must be used within a Tooltip.Root');\n return ctx;\n}\n\nexport function useOptionalTooltipContext(): TooltipContextValue | null {\n return useContext(TooltipContext);\n}\n"],"mappings":";;;AA0BA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,cAAc;CACrC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,gEAAgE;CAC1F,OAAO;AACT;AAEA,SAAgB,4BAAwD;CACtE,OAAO,WAAW,cAAc;AAClC"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"sourcesContent":["import type { StateAttrMap, TooltipCore } from '@videojs/core';\nimport type { MediaContainer, PositioningBoundary, TooltipApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface TooltipContent {\n label?: string | undefined;\n shortcut?: string | undefined;\n}\n\nexport interface TooltipContextValue {\n core: TooltipCore;\n tooltip: TooltipApi;\n state: TooltipCore.State;\n preferredSide: TooltipCore.State['side'];\n setPositionedSide: (side: TooltipCore.State['side']) => void;\n stateAttrMap: StateAttrMap<TooltipCore.State>;\n anchorName: string;\n popupId: string;\n content: TooltipContent | undefined;\n setContent: (content: TooltipContent | undefined) => void;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null);\n\nexport const TooltipContextProvider = TooltipContext.Provider;\n\nexport function useTooltipContext(): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) throw new Error('Tooltip compound components must be used within a Tooltip.Root');\n return ctx;\n}\n\nexport function useOptionalTooltipContext(): TooltipContextValue | null {\n return useContext(TooltipContext);\n}\n"],"mappings":";;AAwBA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,cAAc;CACrC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,gEAAgE;CAC1F,OAAO;AACT;AAEA,SAAgB,4BAAwD;CACtE,OAAO,WAAW,cAAc;AAClC"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { createContext, useContext } from "react";
3
2
  //#region src/ui/tooltip/group-context.tsx
4
3
  const TooltipGroupContext = createContext(null);
@@ -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,IAAI;AAE/E,MAAa,8BAA8B,oBAAoB;;AAG/D,SAAgB,kBAAgD;CAC9D,OAAO,WAAW,mBAAmB,CAAC,EAAE;AAC1C"}
1
+ {"version":3,"file":"group-context.js","names":[],"sources":["../../../../src/ui/tooltip/group-context.tsx"],"sourcesContent":["import 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":";;AAOA,MAAM,sBAAsB,cAA+C,IAAI;AAE/E,MAAa,8BAA8B,oBAAoB;;AAG/D,SAAgB,kBAAgD;CAC9D,OAAO,WAAW,mBAAmB,CAAC,EAAE;AAC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-arrow.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-arrow.tsx"],"mappings":";;;UAQiB,0BAA0B,wBAAwB;;cAGtD,8BAAY,0BAAA;kBAOR;OACH,QAAQ;OACR,QAAQ"}
1
+ {"version":3,"file":"tooltip-arrow.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-arrow.tsx"],"mappings":";;;UAMiB,0BAA0B,wBAAwB;;cAGtD,8BAAY,0BAAA;kBAOR;OACH,QAAQ;OACR,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useTooltipContext } from "./context.js";
3
2
  import { createContextPart } from "../create-context-part.js";
4
3
  //#region src/ui/tooltip/tooltip-arrow.tsx
@@ -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,OAAgB;AAChD,CAAC"}
1
+ {"version":3,"file":"tooltip-arrow.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-arrow.tsx"],"sourcesContent":["import 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":";;;;AASA,MAAa,eAAe,kBAAmD;CAC7E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,aAAa,EAAE,eAAe,OAAgB;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-label.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"mappings":";;;UASiB,0BAA0B,yBAAyB;;cAGvD,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAmBR;OACH,QAAQ;OACR,QAAQ"}
1
+ {"version":3,"file":"tooltip-label.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"mappings":";;;UAOiB,0BAA0B,yBAAyB;;cAGvD,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAmBR;OACH,QAAQ;OACR,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { renderElement } from "../../utils/use-render.js";
3
2
  import { useTooltipContext } from "./context.js";
4
3
  import { forwardRef } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-label.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipLabelProps extends UIComponentProps<'span', TooltipState> {}\n\n/** Tooltip body label; defaults to context `content.label` from the linked trigger. */\nexport const TooltipLabel = forwardRef<HTMLSpanElement, TooltipLabelProps>(function TooltipLabel(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap, content } = useTooltipContext();\n const body = children !== undefined ? children : (content?.label ?? '');\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [elementProps, { children: body }],\n }\n );\n});\n\nexport namespace TooltipLabel {\n export type Props = TooltipLabelProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;AAYA,MAAa,eAAe,WAA+C,SAAS,aAClF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,OAAO,cAAc,YAAY,kBAAkB;CAC3D,MAAM,OAAO,aAAa,KAAA,IAAY,WAAY,SAAS,SAAS;CAEpE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC,cAAc,EAAE,UAAU,KAAK,CAAC;CAC1C,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"tooltip-label.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"sourcesContent":["import type { TooltipState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipLabelProps extends UIComponentProps<'span', TooltipState> {}\n\n/** Tooltip body label; defaults to context `content.label` from the linked trigger. */\nexport const TooltipLabel = forwardRef<HTMLSpanElement, TooltipLabelProps>(function TooltipLabel(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap, content } = useTooltipContext();\n const body = children !== undefined ? children : (content?.label ?? '');\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [elementProps, { children: body }],\n }\n );\n});\n\nexport namespace TooltipLabel {\n export type Props = TooltipLabelProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;AAUA,MAAa,eAAe,WAA+C,SAAS,aAClF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,OAAO,cAAc,YAAY,kBAAkB;CAC3D,MAAM,OAAO,aAAa,KAAA,IAAY,WAAY,SAAS,SAAS;CAEpE,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC,cAAc,EAAE,UAAU,KAAK,CAAC;CAC1C,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-popup.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"mappings":";;;UAaiB,0BAA0B,wBAAwB;;cAGtD,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAmFR;OACH,QAAQ;OACR,QAAQ"}
1
+ {"version":3,"file":"tooltip-popup.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"mappings":";;;UAWiB,0BAA0B,wBAAwB;;cAGtD,8BAAY,0BAAA,KAAA,4CAAA,cAAA;kBAmFR;OACH,QAAQ;OACR,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { useComposedRefs } from "../../utils/use-composed-refs.js";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { useTooltipContext } from "./context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-popup.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"sourcesContent":["'use client';\n\nimport { TooltipCSSVars, type TooltipState } from '@videojs/core';\nimport { forwardRef, useCallback, useMemo, useRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { usePopupPosition } from '../popover/use-popup-position';\nimport { useTooltipContext } from './context';\nimport { TooltipLabel } from './tooltip-label';\nimport { TooltipShortcut } from './tooltip-shortcut';\n\nexport interface TooltipPopupProps extends UIComponentProps<'div', TooltipState> {}\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, children, ...elementProps },\n forwardedRef\n) {\n const {\n core,\n tooltip,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap,\n anchorName,\n popupId,\n boundary,\n container,\n } = useTooltipContext();\n const internalRef = useRef<HTMLDivElement>(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n tooltip.setPopupElement(el);\n },\n [tooltip]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: preferredSide, align: state.align }), [preferredSide, state.align]);\n\n const positioningStyle = usePopupPosition({\n open: state.open,\n anchorName,\n position: posOpts,\n triggerSource: tooltip,\n popupRef: internalRef,\n boundary,\n container,\n cssVars: TooltipCSSVars,\n onSideChange: setPositionedSide,\n });\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n const body =\n children !== undefined ? (\n children\n ) : (\n <>\n <TooltipLabel />\n <TooltipShortcut />\n </>\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 { children: body },\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,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EACJ,MACA,SACA,OACA,eACA,mBACA,cACA,YACA,SACA,UACA,cACE,kBAAkB;CACtB,MAAM,cAAc,OAAuB,IAAI;CAS/C,MAAM,cAAc,gBAAgB,cAPnB,aACd,OAA8B;EAC7B,QAAQ,gBAAgB,EAAE;CAC5B,GACA,CAAC,OAAO,CAG+C,GAAG,WAAW;CAIvE,MAAM,UAAU,eAAe;EAAE,MAAM;EAAe,OAAO,MAAM;CAAM,IAAI,CAAC,eAAe,MAAM,KAAK,CAAC;CAEzG,MAAM,mBAAmB,iBAAiB;EACxC,MAAM,MAAM;EACZ;EACA,UAAU;EACV,eAAe;EACf,UAAU;EACV;EACA;EACA,SAAS;EACT,cAAc;CAChB,CAAC;CAID,IAAI,CAAC,MAAM,MACT,OAAO;CAGT,MAAM,OACJ,aAAa,KAAA,IACX,WAEA,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,cAAD,CAAe,CAAA,GACf,oBAAC,iBAAD,CAAkB,CAAA,CAClB,EAAA,CAAA;CAIN,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;CAElD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,KAAK;GAC7B;GACA,EAAE,UAAU,KAAK;GACjB;IAAE,GAAG;IAAgB,QAAQ;GAAW;GACxC;EACF;CACF,CACF;AACF,CAAC"}
1
+ {"version":3,"file":"tooltip-popup.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"sourcesContent":["import { TooltipCSSVars, type TooltipState } from '@videojs/core';\nimport { forwardRef, useCallback, useMemo, useRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { usePopupPosition } from '../popover/use-popup-position';\nimport { useTooltipContext } from './context';\nimport { TooltipLabel } from './tooltip-label';\nimport { TooltipShortcut } from './tooltip-shortcut';\n\nexport interface TooltipPopupProps extends UIComponentProps<'div', TooltipState> {}\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, children, ...elementProps },\n forwardedRef\n) {\n const {\n core,\n tooltip,\n state,\n preferredSide,\n setPositionedSide,\n stateAttrMap,\n anchorName,\n popupId,\n boundary,\n container,\n } = useTooltipContext();\n const internalRef = useRef<HTMLDivElement>(null);\n\n const popupRef = useCallback(\n (el: HTMLDivElement | null) => {\n tooltip.setPopupElement(el);\n },\n [tooltip]\n );\n\n const composedRef = useComposedRefs(forwardedRef, popupRef, internalRef);\n\n // --- Positioning ---\n\n const posOpts = useMemo(() => ({ side: preferredSide, align: state.align }), [preferredSide, state.align]);\n\n const positioningStyle = usePopupPosition({\n open: state.open,\n anchorName,\n position: posOpts,\n triggerSource: tooltip,\n popupRef: internalRef,\n boundary,\n container,\n cssVars: TooltipCSSVars,\n onSideChange: setPositionedSide,\n });\n\n // --- Visibility ---\n\n if (!state.open) {\n return null;\n }\n\n const body =\n children !== undefined ? (\n children\n ) : (\n <>\n <TooltipLabel />\n <TooltipShortcut />\n </>\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 { children: body },\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":";;;;;;;;;;;AAcA,MAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EACJ,MACA,SACA,OACA,eACA,mBACA,cACA,YACA,SACA,UACA,cACE,kBAAkB;CACtB,MAAM,cAAc,OAAuB,IAAI;CAS/C,MAAM,cAAc,gBAAgB,cAPnB,aACd,OAA8B;EAC7B,QAAQ,gBAAgB,EAAE;CAC5B,GACA,CAAC,OAAO,CAG+C,GAAG,WAAW;CAIvE,MAAM,UAAU,eAAe;EAAE,MAAM;EAAe,OAAO,MAAM;CAAM,IAAI,CAAC,eAAe,MAAM,KAAK,CAAC;CAEzG,MAAM,mBAAmB,iBAAiB;EACxC,MAAM,MAAM;EACZ;EACA,UAAU;EACV,eAAe;EACf,UAAU;EACV;EACA;EACA,SAAS;EACT,cAAc;CAChB,CAAC;CAID,IAAI,CAAC,MAAM,MACT,OAAO;CAGT,MAAM,OACJ,aAAa,KAAA,IACX,WAEA,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,cAAD,CAAe,CAAA,GACf,oBAAC,iBAAD,CAAkB,CAAA,CAClB,EAAA,CAAA;CAIN,MAAM,EAAE,YAAY,GAAG,mBAAmB,QAAQ;CAElD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO;GACL;IACE,IAAI;IACJ,OAAO;IACP,GAAG,KAAK,cAAc,KAAK;GAC7B;GACA,EAAE,UAAU,KAAK;GACjB;IAAE,GAAG;IAAgB,QAAQ;GAAW;GACxC;EACF;CACF,CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-provider.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-provider.tsx"],"mappings":";;;UAQiB,6BAA6B;EAC5C,WAAW;;iBAGG,kBAAkB,OAAO,YAAY,SAAS,YAAY,uBAAuB;kBAOhF;OACH,QAAQ"}
1
+ {"version":3,"file":"tooltip-provider.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-provider.tsx"],"mappings":";;;UAMiB,6BAA6B;EAC5C,WAAW;;iBAGG,kBAAkB,OAAO,YAAY,SAAS,YAAY,uBAAuB;kBAOhF;OACH,QAAQ"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { TooltipGroupContextProvider } from "./group-context.js";
3
2
  import { useState } from "react";
4
3
  import { jsx } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-provider.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-provider.tsx"],"sourcesContent":["'use client';\n\nimport { TooltipGroupCore, type TooltipGroupProps } from '@videojs/core';\nimport type { ReactNode } from 'react';\nimport { useState } from 'react';\n\nimport { TooltipGroupContextProvider } from './group-context';\n\nexport interface TooltipProviderProps extends TooltipGroupProps {\n children?: ReactNode;\n}\n\nexport function TooltipProvider({ delay, closeDelay, timeout, children }: TooltipProviderProps): ReactNode {\n const [group] = useState(() => new TooltipGroupCore({ delay, closeDelay, timeout }));\n group.setProps({ delay, closeDelay, timeout });\n\n return <TooltipGroupContextProvider value={{ group }}>{children}</TooltipGroupContextProvider>;\n}\n\nexport namespace TooltipProvider {\n export type Props = TooltipProviderProps;\n}\n"],"mappings":";;;;;;AAYA,SAAgB,gBAAgB,EAAE,OAAO,YAAY,SAAS,YAA6C;CACzG,MAAM,CAAC,SAAS,eAAe,IAAI,iBAAiB;EAAE;EAAO;EAAY;CAAQ,CAAC,CAAC;CACnF,MAAM,SAAS;EAAE;EAAO;EAAY;CAAQ,CAAC;CAE7C,OAAO,oBAAC,6BAAD;EAA6B,OAAO,EAAE,MAAM;EAAI;CAAsC,CAAA;AAC/F"}
1
+ {"version":3,"file":"tooltip-provider.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-provider.tsx"],"sourcesContent":["import { TooltipGroupCore, type TooltipGroupProps } from '@videojs/core';\nimport type { ReactNode } from 'react';\nimport { useState } from 'react';\n\nimport { TooltipGroupContextProvider } from './group-context';\n\nexport interface TooltipProviderProps extends TooltipGroupProps {\n children?: ReactNode;\n}\n\nexport function TooltipProvider({ delay, closeDelay, timeout, children }: TooltipProviderProps): ReactNode {\n const [group] = useState(() => new TooltipGroupCore({ delay, closeDelay, timeout }));\n group.setProps({ delay, closeDelay, timeout });\n\n return <TooltipGroupContextProvider value={{ group }}>{children}</TooltipGroupContextProvider>;\n}\n\nexport namespace TooltipProvider {\n export type Props = TooltipProviderProps;\n}\n"],"mappings":";;;;;AAUA,SAAgB,gBAAgB,EAAE,OAAO,YAAY,SAAS,YAA6C;CACzG,MAAM,CAAC,SAAS,eAAe,IAAI,iBAAiB;EAAE;EAAO;EAAY;CAAQ,CAAC,CAAC;CACnF,MAAM,SAAS;EAAE;EAAO;EAAY;CAAQ,CAAC;CAE7C,OAAO,oBAAC,6BAAD;EAA6B,OAAO,EAAE,MAAM;EAAI;CAAsC,CAAA;AAC/F"}