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

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 (386) hide show
  1. package/dist/default/icons/dist/react/default/captions-off.js +0 -1
  2. package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
  3. package/dist/default/icons/dist/react/default/captions-on.js +0 -1
  4. package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
  5. package/dist/default/icons/dist/react/default/fullscreen-enter.js +0 -1
  6. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  7. package/dist/default/icons/dist/react/default/fullscreen-exit.js +0 -1
  8. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  9. package/dist/default/icons/dist/react/default/pause.js +0 -1
  10. package/dist/default/icons/dist/react/default/pause.js.map +1 -1
  11. package/dist/default/icons/dist/react/default/pip-enter.js +33 -0
  12. package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -0
  13. package/dist/default/icons/dist/react/default/pip-exit.js +33 -0
  14. package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -0
  15. package/dist/default/icons/dist/react/default/play.js +0 -1
  16. package/dist/default/icons/dist/react/default/play.js.map +1 -1
  17. package/dist/default/icons/dist/react/default/restart.js +0 -1
  18. package/dist/default/icons/dist/react/default/restart.js.map +1 -1
  19. package/dist/default/icons/dist/react/default/seek.js +0 -1
  20. package/dist/default/icons/dist/react/default/seek.js.map +1 -1
  21. package/dist/default/icons/dist/react/default/spinner.js +0 -1
  22. package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
  23. package/dist/default/icons/dist/react/default/volume-high.js +0 -1
  24. package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
  25. package/dist/default/icons/dist/react/default/volume-low.js +0 -1
  26. package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
  27. package/dist/default/icons/dist/react/default/volume-off.js +0 -1
  28. package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
  29. package/dist/default/icons/dist/react/minimal/captions-off.js +0 -1
  30. package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
  31. package/dist/default/icons/dist/react/minimal/captions-on.js +0 -1
  32. package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
  33. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +0 -1
  34. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  35. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +0 -1
  36. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  37. package/dist/default/icons/dist/react/minimal/pause.js +0 -1
  38. package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
  39. package/dist/default/icons/dist/react/minimal/pip-enter.js +37 -0
  40. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -0
  41. package/dist/default/icons/dist/react/minimal/pip-exit.js +37 -0
  42. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -0
  43. package/dist/default/icons/dist/react/minimal/play.js +0 -1
  44. package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
  45. package/dist/default/icons/dist/react/minimal/restart.js +0 -1
  46. package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
  47. package/dist/default/icons/dist/react/minimal/seek.js +0 -1
  48. package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
  49. package/dist/default/icons/dist/react/minimal/spinner.js +0 -1
  50. package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
  51. package/dist/default/icons/dist/react/minimal/volume-high.js +0 -1
  52. package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
  53. package/dist/default/icons/dist/react/minimal/volume-low.js +0 -1
  54. package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
  55. package/dist/default/icons/dist/react/minimal/volume-off.js +0 -1
  56. package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
  57. package/dist/default/index.js +2 -2
  58. package/dist/default/media/audio.js +3 -6
  59. package/dist/default/media/audio.js.map +1 -1
  60. package/dist/default/media/background-video/index.js +2 -2
  61. package/dist/default/media/background-video/index.js.map +1 -1
  62. package/dist/default/media/dash-video/index.js +21 -0
  63. package/dist/default/media/dash-video/index.js.map +1 -0
  64. package/dist/default/media/hls-video/index.js +3 -8
  65. package/dist/default/media/hls-video/index.js.map +1 -1
  66. package/dist/default/media/simple-hls-video/index.js +3 -7
  67. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  68. package/dist/default/media/video.js +3 -6
  69. package/dist/default/media/video.js.map +1 -1
  70. package/dist/default/player/context.js +16 -10
  71. package/dist/default/player/context.js.map +1 -1
  72. package/dist/default/player/create-player.js +16 -2
  73. package/dist/default/player/create-player.js.map +1 -1
  74. package/dist/default/presets/audio/minimal-skin.css +237 -157
  75. package/dist/default/presets/audio/minimal-skin.js +136 -119
  76. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  77. package/dist/default/presets/audio/minimal-skin.tailwind.js +148 -131
  78. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  79. package/dist/default/presets/audio/skin.css +234 -153
  80. package/dist/default/presets/audio/skin.js +129 -112
  81. package/dist/default/presets/audio/skin.js.map +1 -1
  82. package/dist/default/presets/audio/skin.tailwind.js +141 -125
  83. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  84. package/dist/default/presets/{video/error-dialog.js → error-dialog.js} +18 -18
  85. package/dist/default/presets/error-dialog.js.map +1 -0
  86. package/dist/default/presets/video/minimal-skin.css +486 -301
  87. package/dist/default/presets/video/minimal-skin.js +127 -97
  88. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  89. package/dist/default/presets/video/minimal-skin.tailwind.js +141 -112
  90. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  91. package/dist/default/presets/video/skin.css +484 -289
  92. package/dist/default/presets/video/skin.js +121 -94
  93. package/dist/default/presets/video/skin.js.map +1 -1
  94. package/dist/default/presets/video/skin.tailwind.js +135 -109
  95. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  96. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +9 -20
  97. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  98. package/dist/default/skins/dist/default/default/tailwind/components/button.js +4 -3
  99. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  100. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  101. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  102. package/dist/default/skins/dist/default/default/tailwind/components/error.js +3 -3
  103. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  104. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  105. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  106. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +3 -3
  107. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  108. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +16 -0
  109. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  110. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +13 -0
  111. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  112. package/dist/default/skins/dist/default/default/tailwind/components/root.js +1 -1
  113. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  114. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -1
  115. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  116. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +1 -1
  117. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  118. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +1 -1
  119. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  120. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +26 -15
  121. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  122. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +10 -18
  123. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  124. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +4 -3
  125. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  126. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  127. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  128. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +3 -3
  129. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  130. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  131. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  132. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +4 -3
  133. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  134. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
  135. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  136. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +14 -0
  137. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  138. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  139. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  140. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  141. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  142. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  143. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  144. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +1 -1
  145. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  146. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +31 -15
  147. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  148. package/dist/{dev/skins/dist/default/default/tailwind/components → default/skins/dist/default/shared/tailwind}/icon-state.js +6 -1
  149. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  150. package/dist/default/ui/alert-dialog/alert-dialog-root.js +1 -1
  151. package/dist/default/ui/buffering-indicator/buffering-indicator.js +2 -0
  152. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  153. package/dist/default/ui/hooks/use-slider.js +1 -1
  154. package/dist/default/ui/popover/popover-popup.js +11 -2
  155. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  156. package/dist/default/ui/popover/popover-root.js +1 -1
  157. package/dist/default/ui/thumbnail/index.js +3 -0
  158. package/dist/default/ui/time-slider/time-slider-root.js +2 -2
  159. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  160. package/dist/default/ui/tooltip/tooltip-popup.js +11 -2
  161. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  162. package/dist/default/ui/tooltip/tooltip-root.js +2 -1
  163. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  164. package/dist/default/ui/volume-slider/volume-slider-root.js +4 -4
  165. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  166. package/dist/default/utils/use-destroy.js +12 -4
  167. package/dist/default/utils/use-destroy.js.map +1 -1
  168. package/dist/default/utils/use-media-instance.js +24 -0
  169. package/dist/default/utils/use-media-instance.js.map +1 -0
  170. package/dist/default/utils/use-render.js +5 -1
  171. package/dist/default/utils/use-render.js.map +1 -1
  172. package/dist/dev/icons/dist/react/default/captions-off.js +0 -1
  173. package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
  174. package/dist/dev/icons/dist/react/default/captions-on.js +0 -1
  175. package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
  176. package/dist/dev/icons/dist/react/default/fullscreen-enter.js +0 -1
  177. package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  178. package/dist/dev/icons/dist/react/default/fullscreen-exit.js +0 -1
  179. package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  180. package/dist/dev/icons/dist/react/default/pause.js +0 -1
  181. package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
  182. package/dist/dev/icons/dist/react/default/pip-enter.js +33 -0
  183. package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -0
  184. package/dist/dev/icons/dist/react/default/pip-exit.js +33 -0
  185. package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -0
  186. package/dist/dev/icons/dist/react/default/play.js +0 -1
  187. package/dist/dev/icons/dist/react/default/play.js.map +1 -1
  188. package/dist/dev/icons/dist/react/default/restart.js +0 -1
  189. package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
  190. package/dist/dev/icons/dist/react/default/seek.js +0 -1
  191. package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
  192. package/dist/dev/icons/dist/react/default/spinner.js +0 -1
  193. package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
  194. package/dist/dev/icons/dist/react/default/volume-high.js +0 -1
  195. package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
  196. package/dist/dev/icons/dist/react/default/volume-low.js +0 -1
  197. package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
  198. package/dist/dev/icons/dist/react/default/volume-off.js +0 -1
  199. package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
  200. package/dist/dev/icons/dist/react/minimal/captions-off.js +0 -1
  201. package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
  202. package/dist/dev/icons/dist/react/minimal/captions-on.js +0 -1
  203. package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
  204. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +0 -1
  205. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  206. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +0 -1
  207. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  208. package/dist/dev/icons/dist/react/minimal/pause.js +0 -1
  209. package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
  210. package/dist/dev/icons/dist/react/minimal/pip-enter.js +37 -0
  211. package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -0
  212. package/dist/dev/icons/dist/react/minimal/pip-exit.js +37 -0
  213. package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -0
  214. package/dist/dev/icons/dist/react/minimal/play.js +0 -1
  215. package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
  216. package/dist/dev/icons/dist/react/minimal/restart.js +0 -1
  217. package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
  218. package/dist/dev/icons/dist/react/minimal/seek.js +0 -1
  219. package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
  220. package/dist/dev/icons/dist/react/minimal/spinner.js +0 -1
  221. package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
  222. package/dist/dev/icons/dist/react/minimal/volume-high.js +0 -1
  223. package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
  224. package/dist/dev/icons/dist/react/minimal/volume-low.js +0 -1
  225. package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
  226. package/dist/dev/icons/dist/react/minimal/volume-off.js +0 -1
  227. package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
  228. package/dist/dev/index.d.ts +2 -2
  229. package/dist/dev/index.js +2 -2
  230. package/dist/dev/media/audio.d.ts.map +1 -1
  231. package/dist/dev/media/audio.js +3 -6
  232. package/dist/dev/media/audio.js.map +1 -1
  233. package/dist/dev/media/background-video/index.js +2 -2
  234. package/dist/dev/media/background-video/index.js.map +1 -1
  235. package/dist/dev/media/dash-video/index.d.ts +11 -0
  236. package/dist/dev/media/dash-video/index.d.ts.map +1 -0
  237. package/dist/dev/media/dash-video/index.js +21 -0
  238. package/dist/dev/media/dash-video/index.js.map +1 -0
  239. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  240. package/dist/dev/media/hls-video/index.js +3 -8
  241. package/dist/dev/media/hls-video/index.js.map +1 -1
  242. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  243. package/dist/dev/media/simple-hls-video/index.js +3 -7
  244. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  245. package/dist/dev/media/video.d.ts.map +1 -1
  246. package/dist/dev/media/video.js +3 -6
  247. package/dist/dev/media/video.js.map +1 -1
  248. package/dist/dev/player/context.d.ts +10 -4
  249. package/dist/dev/player/context.d.ts.map +1 -1
  250. package/dist/dev/player/context.js +16 -10
  251. package/dist/dev/player/context.js.map +1 -1
  252. package/dist/dev/player/create-player.js +16 -2
  253. package/dist/dev/player/create-player.js.map +1 -1
  254. package/dist/dev/presets/audio/minimal-skin.css +237 -157
  255. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  256. package/dist/dev/presets/audio/minimal-skin.js +136 -119
  257. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  258. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  259. package/dist/dev/presets/audio/minimal-skin.tailwind.js +148 -131
  260. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  261. package/dist/dev/presets/audio/skin.css +234 -153
  262. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  263. package/dist/dev/presets/audio/skin.js +129 -112
  264. package/dist/dev/presets/audio/skin.js.map +1 -1
  265. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  266. package/dist/dev/presets/audio/skin.tailwind.js +141 -125
  267. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  268. package/dist/dev/presets/{video/error-dialog.js → error-dialog.js} +18 -18
  269. package/dist/dev/presets/error-dialog.js.map +1 -0
  270. package/dist/dev/presets/types.d.ts +6 -1
  271. package/dist/dev/presets/types.d.ts.map +1 -1
  272. package/dist/dev/presets/video/minimal-skin.css +486 -301
  273. package/dist/dev/presets/video/minimal-skin.d.ts +2 -2
  274. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  275. package/dist/dev/presets/video/minimal-skin.js +127 -97
  276. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  277. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  278. package/dist/dev/presets/video/minimal-skin.tailwind.js +141 -112
  279. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  280. package/dist/dev/presets/video/skin.css +484 -289
  281. package/dist/dev/presets/video/skin.d.ts +2 -2
  282. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  283. package/dist/dev/presets/video/skin.js +121 -94
  284. package/dist/dev/presets/video/skin.js.map +1 -1
  285. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  286. package/dist/dev/presets/video/skin.tailwind.js +135 -109
  287. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  288. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +9 -20
  289. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  290. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +4 -3
  291. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  292. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
  293. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  294. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +3 -3
  295. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  296. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  297. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  298. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +3 -3
  299. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  300. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +16 -0
  301. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  302. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +13 -0
  303. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  304. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +1 -1
  305. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  306. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -1
  307. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  308. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +1 -1
  309. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  310. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +1 -1
  311. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  312. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +26 -15
  313. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  314. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +10 -18
  315. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  316. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +4 -3
  317. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  318. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  319. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  320. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +3 -3
  321. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  322. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  323. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  324. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +4 -3
  325. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  326. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
  327. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  328. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +14 -0
  329. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  330. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  331. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  332. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  333. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  334. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  335. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  336. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +1 -1
  337. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  338. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +31 -15
  339. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  340. package/dist/{default/skins/dist/default/default/tailwind/components → dev/skins/dist/default/shared/tailwind}/icon-state.js +6 -1
  341. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  342. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +1 -1
  343. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  344. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +2 -0
  345. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  346. package/dist/dev/ui/hooks/use-slider.js +1 -1
  347. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  348. package/dist/dev/ui/popover/popover-popup.js +11 -2
  349. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  350. package/dist/dev/ui/popover/popover-root.js +1 -1
  351. package/dist/dev/ui/thumbnail/index.d.ts +2 -0
  352. package/dist/dev/ui/thumbnail/index.js +3 -0
  353. package/dist/dev/ui/time-slider/time-slider-root.js +2 -2
  354. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  355. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  356. package/dist/dev/ui/tooltip/tooltip-popup.js +11 -2
  357. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  358. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  359. package/dist/dev/ui/tooltip/tooltip-root.js +2 -1
  360. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  361. package/dist/dev/ui/volume-slider/volume-slider-root.js +4 -4
  362. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  363. package/dist/dev/utils/use-destroy.js +12 -4
  364. package/dist/dev/utils/use-destroy.js.map +1 -1
  365. package/dist/dev/utils/use-media-instance.js +24 -0
  366. package/dist/dev/utils/use-media-instance.js.map +1 -0
  367. package/dist/dev/utils/use-render.d.ts.map +1 -1
  368. package/dist/dev/utils/use-render.js +5 -1
  369. package/dist/dev/utils/use-render.js.map +1 -1
  370. package/package.json +7 -7
  371. package/dist/default/icons/dist/react/default/pip.js +0 -27
  372. package/dist/default/icons/dist/react/default/pip.js.map +0 -1
  373. package/dist/default/icons/dist/react/minimal/pip.js +0 -27
  374. package/dist/default/icons/dist/react/minimal/pip.js.map +0 -1
  375. package/dist/default/presets/video/error-dialog.js.map +0 -1
  376. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  377. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  378. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  379. package/dist/dev/icons/dist/react/default/pip.js +0 -27
  380. package/dist/dev/icons/dist/react/default/pip.js.map +0 -1
  381. package/dist/dev/icons/dist/react/minimal/pip.js +0 -27
  382. package/dist/dev/icons/dist/react/minimal/pip.js.map +0 -1
  383. package/dist/dev/presets/video/error-dialog.js.map +0 -1
  384. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  385. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  386. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-root.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-root.tsx"],"mappings":";;;;;UAaiB,gBAAA,SAAyB,YAAA;;EAExC,YAAA,IAAgB,IAAA,WAAe,OAAA,EAAS,oBAAA;EAFR;EAIhC,oBAAA,IAAwB,IAAA;EACxB,QAAA,GAAW,SAAA;AAAA;AAAA,iBAGG,WAAA,CAAA;EACd,IAAA,EAAM,cAAA;EACN,WAAA;EACA,YAAA,EAAc,gBAAA;EACd,oBAAA,EAAsB,wBAAA;EACtB,KAAA;EACA,UAAA;EACA,qBAAA;EACA,QAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,gBAAA,GAAmB,SAAA;AAAA,kBAyEL,WAAA;EAAA,KACH,KAAA,GAAQ,gBAAA;AAAA"}
1
+ {"version":3,"file":"tooltip-root.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-root.tsx"],"mappings":";;;;;UAciB,gBAAA,SAAyB,YAAA;;EAExC,YAAA,IAAgB,IAAA,WAAe,OAAA,EAAS,oBAAA;EAFR;EAIhC,oBAAA,IAAwB,IAAA;EACxB,QAAA,GAAW,SAAA;AAAA;AAAA,iBAGG,WAAA,CAAA;EACd,IAAA,EAAM,cAAA;EACN,WAAA;EACA,YAAA,EAAc,gBAAA;EACd,oBAAA,EAAsB,wBAAA;EACtB,KAAA;EACA,UAAA;EACA,qBAAA;EACA,QAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,gBAAA,GAAmB,SAAA;AAAA,kBAwEL,WAAA;EAAA,KACH,KAAA,GAAQ,gBAAA;AAAA"}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { useLatestRef } from "../../utils/use-latest-ref.js";
4
+ import { useDestroy } from "../../utils/use-destroy.js";
4
5
  import { useSafeId } from "../../utils/use-safe-id.js";
5
6
  import { TooltipContextProvider } from "./context.js";
6
7
  import { useTooltipGroup } from "./group-context.js";
@@ -50,7 +51,7 @@ function TooltipRoot({ open: controlledOpen, defaultOpen = TooltipCore.defaultPr
50
51
  if (controlledOpen) tooltip.open();
51
52
  else tooltip.close();
52
53
  }, [controlledOpen, tooltip]);
53
- useEffect(() => () => tooltip.destroy(), [tooltip]);
54
+ useDestroy(tooltip);
54
55
  const input = useSnapshot(tooltip.input);
55
56
  core.setInput(input);
56
57
  return /* @__PURE__ */ jsx(TooltipContextProvider, {
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-root.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-root.tsx"],"sourcesContent":["'use client';\n\nimport { type TooltipProps as CoreTooltipProps, TooltipCore, TooltipDataAttrs } from '@videojs/core';\nimport { createTooltip, createTransition, type TooltipChangeDetails } from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { TooltipContextProvider } from './context';\nimport { useTooltipGroup } from './group-context';\n\nexport interface TooltipRootProps extends CoreTooltipProps {\n /** Called when the tooltip open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: TooltipChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function TooltipRoot({\n open: controlledOpen,\n defaultOpen = TooltipCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n delay = TooltipCore.defaultProps.delay,\n closeDelay = TooltipCore.defaultProps.closeDelay,\n disableHoverablePopup = TooltipCore.defaultProps.disableHoverablePopup,\n disabled = TooltipCore.defaultProps.disabled,\n children,\n ...coreProps\n}: TooltipRootProps): ReactNode {\n const [core] = useState(() => new TooltipCore(coreProps));\n core.setProps(coreProps);\n\n const isControlled = controlledOpen !== undefined;\n\n const groupFromContext = useTooltipGroup();\n\n // Keep refs that always point to the latest values so the\n // createTooltip closure never reads stale props.\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n const delayRef = useLatestRef(delay);\n const closeDelayRef = useLatestRef(closeDelay);\n const disableHoverablePopupRef = useLatestRef(disableHoverablePopup);\n const disabledRef = useLatestRef(disabled);\n const groupRef = useLatestRef(groupFromContext);\n\n const [tooltip] = useState(() => {\n const instance = createTooltip({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: TooltipChangeDetails) => {\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n delay: () => delayRef.current,\n closeDelay: () => closeDelayRef.current,\n disableHoverablePopup: () => disableHoverablePopupRef.current,\n disabled: () => disabledRef.current,\n group: () => groupRef.current,\n });\n\n // Apply defaultOpen on creation (uncontrolled only)\n if (!isControlled && defaultOpen) {\n instance.open();\n }\n\n return instance;\n });\n\n const anchorName = useSafeId();\n const popupId = useSafeId('tooltip-');\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (controlledOpen === undefined) return;\n\n const { active: inputOpen } = tooltip.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n tooltip.open();\n } else {\n tooltip.close();\n }\n }, [controlledOpen, tooltip]);\n\n // Cleanup on unmount\n useEffect(() => () => tooltip.destroy(), [tooltip]);\n\n const input = useSnapshot(tooltip.input);\n core.setInput(input);\n const state = core.getState();\n\n return (\n <TooltipContextProvider value={{ core, tooltip, state, stateAttrMap: TooltipDataAttrs, anchorName, popupId }}>\n {children}\n </TooltipContextProvider>\n );\n}\n\nexport namespace TooltipRoot {\n export type Props = TooltipRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;AAqBA,SAAgB,YAAY,EAC1B,MAAM,gBACN,cAAc,YAAY,aAAa,aACvC,cAAc,kBACd,sBAAsB,0BACtB,QAAQ,YAAY,aAAa,OACjC,aAAa,YAAY,aAAa,YACtC,wBAAwB,YAAY,aAAa,uBACjD,WAAW,YAAY,aAAa,UACpC,UACA,GAAG,aAC2B;CAC9B,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,UAAU,CAAC;AACzD,MAAK,SAAS,UAAU;CAExB,MAAM,eAAe,mBAAmB;CAExC,MAAM,mBAAmB,iBAAiB;CAI1C,MAAM,kBAAkB,aAAa,iBAAiB;CACtD,MAAM,0BAA0B,aAAa,yBAAyB;CACtE,MAAM,WAAW,aAAa,MAAM;CACpC,MAAM,gBAAgB,aAAa,WAAW;CAC9C,MAAM,2BAA2B,aAAa,sBAAsB;CACpE,MAAM,cAAc,aAAa,SAAS;CAC1C,MAAM,WAAW,aAAa,iBAAiB;CAE/C,MAAM,CAAC,WAAW,eAAe;EAC/B,MAAM,WAAW,cAAc;GAC7B,YAAY,kBAAkB;GAC9B,eAAe,UAAmB,YAAkC;AAClE,oBAAgB,UAAU,UAAU,QAAQ;;GAE9C,uBAAuB,aAAsB;AAC3C,4BAAwB,UAAU,SAAS;;GAE7C,aAAa,SAAS;GACtB,kBAAkB,cAAc;GAChC,6BAA6B,yBAAyB;GACtD,gBAAgB,YAAY;GAC5B,aAAa,SAAS;GACvB,CAAC;AAGF,MAAI,CAAC,gBAAgB,YACnB,UAAS,MAAM;AAGjB,SAAO;GACP;CAEF,MAAM,aAAa,WAAW;CAC9B,MAAM,UAAU,UAAU,WAAW;AAGrC,iBAAgB;AACd,MAAI,mBAAmB,OAAW;EAElC,MAAM,EAAE,QAAQ,cAAc,QAAQ,MAAM;AAC5C,MAAI,mBAAmB,UAAW;AAElC,MAAI,eACF,SAAQ,MAAM;MAEd,SAAQ,OAAO;IAEhB,CAAC,gBAAgB,QAAQ,CAAC;AAG7B,uBAAsB,QAAQ,SAAS,EAAE,CAAC,QAAQ,CAAC;CAEnD,MAAM,QAAQ,YAAY,QAAQ,MAAM;AACxC,MAAK,SAAS,MAAM;AAGpB,QACE,oBAAC;EAAuB,OAAO;GAAE;GAAM;GAAS,OAHpC,KAAK,UAAU;GAG4B,cAAc;GAAkB;GAAY;GAAS;EACzG;GACsB"}
1
+ {"version":3,"file":"tooltip-root.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-root.tsx"],"sourcesContent":["'use client';\n\nimport { type TooltipProps as CoreTooltipProps, TooltipCore, TooltipDataAttrs } from '@videojs/core';\nimport { createTooltip, createTransition, type TooltipChangeDetails } from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { TooltipContextProvider } from './context';\nimport { useTooltipGroup } from './group-context';\n\nexport interface TooltipRootProps extends CoreTooltipProps {\n /** Called when the tooltip open state changes (fires immediately, before animations). */\n onOpenChange?: (open: boolean, details: TooltipChangeDetails) => void;\n /** Called after open/close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\nexport function TooltipRoot({\n open: controlledOpen,\n defaultOpen = TooltipCore.defaultProps.defaultOpen,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n delay = TooltipCore.defaultProps.delay,\n closeDelay = TooltipCore.defaultProps.closeDelay,\n disableHoverablePopup = TooltipCore.defaultProps.disableHoverablePopup,\n disabled = TooltipCore.defaultProps.disabled,\n children,\n ...coreProps\n}: TooltipRootProps): ReactNode {\n const [core] = useState(() => new TooltipCore(coreProps));\n core.setProps(coreProps);\n\n const isControlled = controlledOpen !== undefined;\n\n const groupFromContext = useTooltipGroup();\n\n // Keep refs that always point to the latest values so the\n // createTooltip closure never reads stale props.\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n const delayRef = useLatestRef(delay);\n const closeDelayRef = useLatestRef(closeDelay);\n const disableHoverablePopupRef = useLatestRef(disableHoverablePopup);\n const disabledRef = useLatestRef(disabled);\n const groupRef = useLatestRef(groupFromContext);\n\n const [tooltip] = useState(() => {\n const instance = createTooltip({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: TooltipChangeDetails) => {\n onOpenChangeRef.current?.(nextOpen, details);\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n onOpenChangeCompleteRef.current?.(nextOpen);\n },\n delay: () => delayRef.current,\n closeDelay: () => closeDelayRef.current,\n disableHoverablePopup: () => disableHoverablePopupRef.current,\n disabled: () => disabledRef.current,\n group: () => groupRef.current,\n });\n\n // Apply defaultOpen on creation (uncontrolled only)\n if (!isControlled && defaultOpen) {\n instance.open();\n }\n\n return instance;\n });\n\n const anchorName = useSafeId();\n const popupId = useSafeId('tooltip-');\n\n // Sync controlled open prop -> internal input state.\n useEffect(() => {\n if (controlledOpen === undefined) return;\n\n const { active: inputOpen } = tooltip.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) {\n tooltip.open();\n } else {\n tooltip.close();\n }\n }, [controlledOpen, tooltip]);\n\n useDestroy(tooltip);\n\n const input = useSnapshot(tooltip.input);\n core.setInput(input);\n const state = core.getState();\n\n return (\n <TooltipContextProvider value={{ core, tooltip, state, stateAttrMap: TooltipDataAttrs, anchorName, popupId }}>\n {children}\n </TooltipContextProvider>\n );\n}\n\nexport namespace TooltipRoot {\n export type Props = TooltipRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;;AAsBA,SAAgB,YAAY,EAC1B,MAAM,gBACN,cAAc,YAAY,aAAa,aACvC,cAAc,kBACd,sBAAsB,0BACtB,QAAQ,YAAY,aAAa,OACjC,aAAa,YAAY,aAAa,YACtC,wBAAwB,YAAY,aAAa,uBACjD,WAAW,YAAY,aAAa,UACpC,UACA,GAAG,aAC2B;CAC9B,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,UAAU,CAAC;AACzD,MAAK,SAAS,UAAU;CAExB,MAAM,eAAe,mBAAmB;CAExC,MAAM,mBAAmB,iBAAiB;CAI1C,MAAM,kBAAkB,aAAa,iBAAiB;CACtD,MAAM,0BAA0B,aAAa,yBAAyB;CACtE,MAAM,WAAW,aAAa,MAAM;CACpC,MAAM,gBAAgB,aAAa,WAAW;CAC9C,MAAM,2BAA2B,aAAa,sBAAsB;CACpE,MAAM,cAAc,aAAa,SAAS;CAC1C,MAAM,WAAW,aAAa,iBAAiB;CAE/C,MAAM,CAAC,WAAW,eAAe;EAC/B,MAAM,WAAW,cAAc;GAC7B,YAAY,kBAAkB;GAC9B,eAAe,UAAmB,YAAkC;AAClE,oBAAgB,UAAU,UAAU,QAAQ;;GAE9C,uBAAuB,aAAsB;AAC3C,4BAAwB,UAAU,SAAS;;GAE7C,aAAa,SAAS;GACtB,kBAAkB,cAAc;GAChC,6BAA6B,yBAAyB;GACtD,gBAAgB,YAAY;GAC5B,aAAa,SAAS;GACvB,CAAC;AAGF,MAAI,CAAC,gBAAgB,YACnB,UAAS,MAAM;AAGjB,SAAO;GACP;CAEF,MAAM,aAAa,WAAW;CAC9B,MAAM,UAAU,UAAU,WAAW;AAGrC,iBAAgB;AACd,MAAI,mBAAmB,OAAW;EAElC,MAAM,EAAE,QAAQ,cAAc,QAAQ,MAAM;AAC5C,MAAI,mBAAmB,UAAW;AAElC,MAAI,eACF,SAAQ,MAAM;MAEd,SAAQ,OAAO;IAEhB,CAAC,gBAAgB,QAAQ,CAAC;AAE7B,YAAW,QAAQ;CAEnB,MAAM,QAAQ,YAAY,QAAQ,MAAM;AACxC,MAAK,SAAS,MAAM;AAGpB,QACE,oBAAC;EAAuB,OAAO;GAAE;GAAM;GAAS,OAHpC,KAAK,UAAU;GAG4B,cAAc;GAAkB;GAAY;GAAS;EACzG;GACsB"}
@@ -1,14 +1,14 @@
1
1
  'use client';
2
2
 
3
3
  import { usePlayer } from "../../player/context.js";
4
- import { renderElement } from "../../utils/use-render.js";
5
4
  import { useLatestRef } from "../../utils/use-latest-ref.js";
5
+ import { renderElement } from "../../utils/use-render.js";
6
6
  import { useSlider } from "../hooks/use-slider.js";
7
7
  import { SliderProvider } from "../slider/context.js";
8
8
  import { getSliderCSSVars, logMissingFeature, selectVolume } from "@videojs/core/dom";
9
9
  import { forwardRef, useState } from "react";
10
10
  import { jsx } from "react/jsx-runtime";
11
- import { SliderDataAttrs, VolumeSliderCore } from "@videojs/core";
11
+ import { VolumeSliderCore, VolumeSliderDataAttrs } from "@videojs/core";
12
12
 
13
13
  //#region src/ui/volume-slider/volume-slider-root.tsx
14
14
  const noopVolume = {
@@ -63,7 +63,7 @@ const VolumeSliderRoot = forwardRef(function VolumeSliderRoot(componentProps, fo
63
63
  pointerValue: core.valueFromPercent(state.pointerPercent),
64
64
  thumbRef,
65
65
  thumbProps,
66
- stateAttrMap: SliderDataAttrs,
66
+ stateAttrMap: VolumeSliderDataAttrs,
67
67
  getAttrs: (sliderState) => core.getAttrs(sliderState),
68
68
  formatValue: (value) => `${Math.round(value)}%`
69
69
  },
@@ -73,7 +73,7 @@ const VolumeSliderRoot = forwardRef(function VolumeSliderRoot(componentProps, fo
73
73
  style
74
74
  }, {
75
75
  state,
76
- stateAttrMap: SliderDataAttrs,
76
+ stateAttrMap: VolumeSliderDataAttrs,
77
77
  ref: [forwardedRef, rootRef],
78
78
  props: [
79
79
  { style: {
@@ -1 +1 @@
1
- {"version":3,"file":"volume-slider-root.js","names":[],"sources":["../../../../src/ui/volume-slider/volume-slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { SliderDataAttrs, VolumeSliderCore } from '@videojs/core';\nimport { getSliderCSSVars, logMissingFeature, selectVolume } from '@videojs/core/dom';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopVolume = {\n volume: 0,\n muted: false,\n volumeAvailability: 'unsupported' as const,\n setVolume: () => 0,\n toggleMuted: () => false,\n};\n\nexport interface VolumeSliderRootProps extends UIComponentProps<'div', VolumeSliderCore.State>, VolumeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const VolumeSliderRoot = forwardRef<HTMLDivElement, VolumeSliderRootProps>(\n function VolumeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n orientation,\n step = VolumeSliderCore.defaultProps.step,\n largeStep = VolumeSliderCore.defaultProps.largeStep,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const volume = usePlayer(selectVolume);\n\n const [core] = useState(() => new VolumeSliderCore());\n core.setProps({ label, orientation, step, largeStep, disabled, thumbAlignment });\n\n // Keep a ref to the latest volume state for callbacks.\n const volumeRef = useLatestRef(volume);\n\n const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider<VolumeSliderCore.State>({\n computeState: (input) => {\n core.setInput(input);\n core.setMedia(volume ?? noopVolume);\n return core.getState();\n },\n getPercent: () => (volume ? volume.volume * 100 : 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getSliderCSSVars,\n onValueChange: (percent) => {\n volumeRef.current?.setVolume(percent / 100);\n },\n onValueCommit: (percent) => {\n volumeRef.current?.setVolume(percent / 100);\n },\n onDragStart,\n onDragEnd,\n });\n\n if (!volume) {\n if (__DEV__) logMissingFeature('VolumeSlider', 'volume');\n return null;\n }\n\n return (\n <SliderProvider\n value={{\n state,\n pointerValue: core.valueFromPercent(state.pointerPercent),\n thumbRef,\n thumbProps,\n stateAttrMap: SliderDataAttrs,\n getAttrs: (sliderState) => core.getAttrs(sliderState as VolumeSliderCore.State),\n formatValue: (value) => `${Math.round(value)}%`,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: SliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n }\n);\n\nexport namespace VolumeSliderRoot {\n export type Props = VolumeSliderRootProps;\n export type State = VolumeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,aAAa;CACjB,QAAQ;CACR,OAAO;CACP,oBAAoB;CACpB,iBAAiB;CACjB,mBAAmB;CACpB;AAOD,MAAa,mBAAmB,WAC9B,SAAS,iBAAiB,gBAAgB,cAAc;CACtD,MAAM,EACJ,QACA,WACA,OACA,OACA,aACA,OAAO,iBAAiB,aAAa,MACrC,YAAY,iBAAiB,aAAa,WAC1C,UACA,gBACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,SAAS,UAAU,aAAa;CAEtC,MAAM,CAAC,QAAQ,eAAe,IAAI,kBAAkB,CAAC;AACrD,MAAK,SAAS;EAAE;EAAO;EAAa;EAAM;EAAW;EAAU;EAAgB,CAAC;CAGhF,MAAM,YAAY,aAAa,OAAO;CAEtC,MAAM,EAAE,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eAAe,UAAkC;EAChH,eAAe,UAAU;AACvB,QAAK,SAAS,MAAM;AACpB,QAAK,SAAS,UAAU,WAAW;AACnC,UAAO,KAAK,UAAU;;EAExB,kBAAmB,SAAS,OAAO,SAAS,MAAM;EAClD,sBAAsB,KAAK,gBAAgB;EAC3C,2BAA2B,KAAK,qBAAqB;EACrD;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,UAAU;EAClE,YAAY;EACZ,gBAAgB,YAAY;AAC1B,aAAU,SAAS,UAAU,UAAU,IAAI;;EAE7C,gBAAgB,YAAY;AAC1B,aAAU,SAAS,UAAU,UAAU,IAAI;;EAE7C;EACA;EACD,CAAC;AAEF,KAAI,CAAC,QAAQ;AACE,oBAAkB,gBAAgB,SAAS;AACxD,SAAO;;AAGT,QACE,oBAAC;EACC,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,eAAe;GACzD;GACA;GACA,cAAc;GACd,WAAW,gBAAgB,KAAK,SAAS,YAAsC;GAC/E,cAAc,UAAU,GAAG,KAAK,MAAM,MAAM,CAAC;GAC9C;YAEA,cACC,OACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,QAAQ;GAC5B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;KAAW,EAAE;IAAE;IAAW;IAAa;GAC1E,CACF;GACc;EAGtB"}
1
+ {"version":3,"file":"volume-slider-root.js","names":[],"sources":["../../../../src/ui/volume-slider/volume-slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { VolumeSliderCore, VolumeSliderDataAttrs } from '@videojs/core';\nimport { getSliderCSSVars, logMissingFeature, selectVolume } from '@videojs/core/dom';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopVolume = {\n volume: 0,\n muted: false,\n volumeAvailability: 'unsupported' as const,\n setVolume: () => 0,\n toggleMuted: () => false,\n};\n\nexport interface VolumeSliderRootProps extends UIComponentProps<'div', VolumeSliderCore.State>, VolumeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const VolumeSliderRoot = forwardRef<HTMLDivElement, VolumeSliderRootProps>(\n function VolumeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n orientation,\n step = VolumeSliderCore.defaultProps.step,\n largeStep = VolumeSliderCore.defaultProps.largeStep,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const volume = usePlayer(selectVolume);\n\n const [core] = useState(() => new VolumeSliderCore());\n core.setProps({ label, orientation, step, largeStep, disabled, thumbAlignment });\n\n // Keep a ref to the latest volume state for callbacks.\n const volumeRef = useLatestRef(volume);\n\n const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider<VolumeSliderCore.State>({\n computeState: (input) => {\n core.setInput(input);\n core.setMedia(volume ?? noopVolume);\n return core.getState();\n },\n getPercent: () => (volume ? volume.volume * 100 : 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getSliderCSSVars,\n onValueChange: (percent) => {\n volumeRef.current?.setVolume(percent / 100);\n },\n onValueCommit: (percent) => {\n volumeRef.current?.setVolume(percent / 100);\n },\n onDragStart,\n onDragEnd,\n });\n\n if (!volume) {\n if (__DEV__) logMissingFeature('VolumeSlider', 'volume');\n return null;\n }\n\n return (\n <SliderProvider\n value={{\n state,\n pointerValue: core.valueFromPercent(state.pointerPercent),\n thumbRef,\n thumbProps,\n stateAttrMap: VolumeSliderDataAttrs,\n getAttrs: (sliderState) => core.getAttrs(sliderState as VolumeSliderCore.State),\n formatValue: (value) => `${Math.round(value)}%`,\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: VolumeSliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n }\n);\n\nexport namespace VolumeSliderRoot {\n export type Props = VolumeSliderRootProps;\n export type State = VolumeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,aAAa;CACjB,QAAQ;CACR,OAAO;CACP,oBAAoB;CACpB,iBAAiB;CACjB,mBAAmB;CACpB;AAOD,MAAa,mBAAmB,WAC9B,SAAS,iBAAiB,gBAAgB,cAAc;CACtD,MAAM,EACJ,QACA,WACA,OACA,OACA,aACA,OAAO,iBAAiB,aAAa,MACrC,YAAY,iBAAiB,aAAa,WAC1C,UACA,gBACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,SAAS,UAAU,aAAa;CAEtC,MAAM,CAAC,QAAQ,eAAe,IAAI,kBAAkB,CAAC;AACrD,MAAK,SAAS;EAAE;EAAO;EAAa;EAAM;EAAW;EAAU;EAAgB,CAAC;CAGhF,MAAM,YAAY,aAAa,OAAO;CAEtC,MAAM,EAAE,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eAAe,UAAkC;EAChH,eAAe,UAAU;AACvB,QAAK,SAAS,MAAM;AACpB,QAAK,SAAS,UAAU,WAAW;AACnC,UAAO,KAAK,UAAU;;EAExB,kBAAmB,SAAS,OAAO,SAAS,MAAM;EAClD,sBAAsB,KAAK,gBAAgB;EAC3C,2BAA2B,KAAK,qBAAqB;EACrD;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,UAAU;EAClE,YAAY;EACZ,gBAAgB,YAAY;AAC1B,aAAU,SAAS,UAAU,UAAU,IAAI;;EAE7C,gBAAgB,YAAY;AAC1B,aAAU,SAAS,UAAU,UAAU,IAAI;;EAE7C;EACA;EACD,CAAC;AAEF,KAAI,CAAC,QAAQ;AACE,oBAAkB,gBAAgB,SAAS;AACxD,SAAO;;AAGT,QACE,oBAAC;EACC,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,eAAe;GACzD;GACA;GACA,cAAc;GACd,WAAW,gBAAgB,KAAK,SAAS,YAAsC;GAC/E,cAAc,UAAU,GAAG,KAAK,MAAM,MAAM,CAAC;GAC9C;YAEA,cACC,OACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,QAAQ;GAC5B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;KAAW,EAAE;IAAE;IAAW;IAAa;GAC1E,CACF;GACc;EAGtB"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { useLatestRef } from "./use-latest-ref.js";
3
4
  import { useEffect, useRef } from "react";
4
5
 
5
6
  //#region src/utils/use-destroy.ts
@@ -14,18 +15,25 @@ import { useEffect, useRef } from "react";
14
15
  * @param instance - Object with a `destroy()` method.
15
16
  * @param setup - Optional setup called on first mount. Skipped on StrictMode
16
17
  * re-mount since the previous setup was never torn down.
18
+ * @param teardown - Optional teardown called right before `destroy()` on real
19
+ * unmount. Skipped on StrictMode simulated unmount.
17
20
  */
18
- function useDestroy(instance, setup) {
21
+ function useDestroy(instance, setup, teardown) {
19
22
  const pendingRef = useRef(null);
23
+ const setupRef = useLatestRef(setup);
24
+ const teardownRef = useLatestRef(teardown);
20
25
  useEffect(() => {
21
26
  if (pendingRef.current !== null) {
22
27
  clearTimeout(pendingRef.current);
23
28
  pendingRef.current = null;
24
- } else setup?.();
29
+ } else setupRef.current?.();
25
30
  return () => {
26
- pendingRef.current = setTimeout(() => instance.destroy(), 0);
31
+ pendingRef.current = setTimeout(() => {
32
+ teardownRef.current?.();
33
+ instance.destroy();
34
+ }, 0);
27
35
  };
28
- }, [instance, setup]);
36
+ }, [instance]);
29
37
  }
30
38
 
31
39
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"use-destroy.js","names":[],"sources":["../../../src/utils/use-destroy.ts"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef } from 'react';\n\ninterface Destroyable {\n destroy(): void;\n}\n\n/**\n * Destroy an instance on unmount, deferring destruction to survive React\n * StrictMode's simulated unmount/re-mount cycle.\n *\n * StrictMode runs effects, then immediately runs cleanup, then re-runs\n * effects — all synchronously. By deferring `destroy()` to a macrotask,\n * the re-mount effect can cancel it before it fires.\n *\n * @param instance - Object with a `destroy()` method.\n * @param setup - Optional setup called on first mount. Skipped on StrictMode\n * re-mount since the previous setup was never torn down.\n */\nexport function useDestroy(instance: Destroyable, setup?: () => void): void {\n const pendingRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (pendingRef.current !== null) {\n clearTimeout(pendingRef.current);\n pendingRef.current = null;\n } else {\n setup?.();\n }\n\n return () => {\n pendingRef.current = setTimeout(() => instance.destroy(), 0);\n };\n }, [instance, setup]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,SAAgB,WAAW,UAAuB,OAA0B;CAC1E,MAAM,aAAa,OAA6C,KAAK;AAErE,iBAAgB;AACd,MAAI,WAAW,YAAY,MAAM;AAC/B,gBAAa,WAAW,QAAQ;AAChC,cAAW,UAAU;QAErB,UAAS;AAGX,eAAa;AACX,cAAW,UAAU,iBAAiB,SAAS,SAAS,EAAE,EAAE;;IAE7D,CAAC,UAAU,MAAM,CAAC"}
1
+ {"version":3,"file":"use-destroy.js","names":[],"sources":["../../../src/utils/use-destroy.ts"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef } from 'react';\n\nimport { useLatestRef } from './use-latest-ref';\n\ninterface Destroyable {\n destroy(): void;\n}\n\n/**\n * Destroy an instance on unmount, deferring destruction to survive React\n * StrictMode's simulated unmount/re-mount cycle.\n *\n * StrictMode runs effects, then immediately runs cleanup, then re-runs\n * effects — all synchronously. By deferring `destroy()` to a macrotask,\n * the re-mount effect can cancel it before it fires.\n *\n * @param instance - Object with a `destroy()` method.\n * @param setup - Optional setup called on first mount. Skipped on StrictMode\n * re-mount since the previous setup was never torn down.\n * @param teardown - Optional teardown called right before `destroy()` on real\n * unmount. Skipped on StrictMode simulated unmount.\n */\nexport function useDestroy(instance: Destroyable, setup?: () => void, teardown?: () => void): void {\n const pendingRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const setupRef = useLatestRef(setup);\n const teardownRef = useLatestRef(teardown);\n\n useEffect(() => {\n if (pendingRef.current !== null) {\n clearTimeout(pendingRef.current);\n pendingRef.current = null;\n } else {\n setupRef.current?.();\n }\n\n return () => {\n pendingRef.current = setTimeout(() => {\n teardownRef.current?.();\n instance.destroy();\n }, 0);\n };\n }, [instance]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwBA,SAAgB,WAAW,UAAuB,OAAoB,UAA6B;CACjG,MAAM,aAAa,OAA6C,KAAK;CACrE,MAAM,WAAW,aAAa,MAAM;CACpC,MAAM,cAAc,aAAa,SAAS;AAE1C,iBAAgB;AACd,MAAI,WAAW,YAAY,MAAM;AAC/B,gBAAa,WAAW,QAAQ;AAChC,cAAW,UAAU;QAErB,UAAS,WAAW;AAGtB,eAAa;AACX,cAAW,UAAU,iBAAiB;AACpC,gBAAY,WAAW;AACvB,aAAS,SAAS;MACjB,EAAE;;IAEN,CAAC,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+
3
+ import { useMediaAttach } from "../player/context.js";
4
+ import { useDestroy } from "./use-destroy.js";
5
+ import { useState } from "react";
6
+
7
+ //#region src/utils/use-media-instance.ts
8
+ /**
9
+ * Create and manage a media instance lifecycle within a player context.
10
+ *
11
+ * Instantiates the media class once, attaches it to the player on mount,
12
+ * and safely detaches on unmount using a functional updater to avoid race
13
+ * conditions when swapping media components (e.g. DashVideo → HlsVideo).
14
+ */
15
+ function useMediaInstance(MediaClass) {
16
+ const [instance] = useState(() => new MediaClass());
17
+ const setMedia = useMediaAttach();
18
+ useDestroy(instance, () => setMedia?.(instance), () => setMedia?.((prev) => prev === instance ? null : prev));
19
+ return instance;
20
+ }
21
+
22
+ //#endregion
23
+ export { useMediaInstance };
24
+ //# sourceMappingURL=use-media-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-media-instance.js","names":[],"sources":["../../../src/utils/use-media-instance.ts"],"sourcesContent":["'use client';\n\nimport type { Media } from '@videojs/core/dom';\nimport { useState } from 'react';\n\nimport { useMediaAttach } from '../player/context';\nimport { useDestroy } from './use-destroy';\n\n/**\n * Create and manage a media instance lifecycle within a player context.\n *\n * Instantiates the media class once, attaches it to the player on mount,\n * and safely detaches on unmount using a functional updater to avoid race\n * conditions when swapping media components (e.g. DashVideo → HlsVideo).\n */\nexport function useMediaInstance<Instance extends Media & { destroy(): void }>(\n MediaClass: new () => Instance\n): Instance {\n const [instance] = useState(() => new MediaClass());\n const setMedia = useMediaAttach();\n\n useDestroy(\n instance,\n () => setMedia?.(instance),\n () => setMedia?.((prev) => (prev === instance ? null : prev))\n );\n\n return instance;\n}\n"],"mappings":";;;;;;;;;;;;;;AAeA,SAAgB,iBACd,YACU;CACV,MAAM,CAAC,YAAY,eAAe,IAAI,YAAY,CAAC;CACnD,MAAM,WAAW,gBAAgB;AAEjC,YACE,gBACM,WAAW,SAAS,QACpB,YAAY,SAAU,SAAS,WAAW,OAAO,KAAM,CAC9D;AAED,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-render.d.ts","names":[],"sources":["../../../src/utils/use-render.tsx"],"mappings":";;;;;KAUK,gBAAA,SAAyB,KAAA,CAAM,GAAA,CAAI,iBAAA;AAAA,UAEvB,uBAAA;EACf,SAAA,cAAuB,KAAA,EAAO,KAAA;EAC9B,KAAA,GAAQ,aAAA,KAAkB,KAAA,EAAO,KAAA,KAAU,aAAA;EAC3C,MAAA,GAAS,UAAA,CAAW,KAAA;AAAA;AAAA,UAGL,mBAAA,oCAAuD,OAAA;EACtE,KAAA,EAAO,KAAA;EACP,GAAA,GAAM,GAAA,CAAI,mBAAA,IAAuB,GAAA,CAAI,mBAAA;EACrC,KAAA;EACA,YAAA,GAAe,YAAA,CAAa,KAAA;AAAA;;;;;;;;;;;;;;;;;;;;;iBA4Cd,aAAA,mDAEc,OAAA,kBACZ,gBAAA,CAAA,CAEhB,OAAA,EAAS,OAAA,EACT,cAAA,EAAgB,uBAAA,CAAwB,KAAA,GACxC,MAAA,EAAQ,mBAAA,CAAoB,KAAA,EAAO,mBAAA,IAClC,YAAA;AAAA,kBAgDc,aAAA;EAAA,KACH,cAAA,UAAwB,uBAAA,CAAwB,KAAA;EAAA,KAChD,UAAA,oCAA8C,OAAA,IAAW,mBAAA,CAAoB,KAAA,EAAO,mBAAA;AAAA"}
1
+ {"version":3,"file":"use-render.d.ts","names":[],"sources":["../../../src/utils/use-render.tsx"],"mappings":";;;;;KAeK,gBAAA,SAAyB,KAAA,CAAM,GAAA,CAAI,iBAAA;AAAA,UAEvB,uBAAA;EACf,SAAA,cAAuB,KAAA,EAAO,KAAA;EAC9B,KAAA,GAAQ,aAAA,KAAkB,KAAA,EAAO,KAAA,KAAU,aAAA;EAC3C,MAAA,GAAS,UAAA,CAAW,KAAA;AAAA;AAAA,UAGL,mBAAA,oCAAuD,OAAA;EACtE,KAAA,EAAO,KAAA;EACP,GAAA,GAAM,GAAA,CAAI,mBAAA,IAAuB,GAAA,CAAI,mBAAA;EACrC,KAAA;EACA,YAAA,GAAe,YAAA,CAAa,KAAA;AAAA;;;;;;;;;;;;;;;;;;;;;iBA4Cd,aAAA,mDAEc,OAAA,kBACZ,gBAAA,CAAA,CAEhB,OAAA,EAAS,OAAA,EACT,cAAA,EAAgB,uBAAA,CAAwB,KAAA,GACxC,MAAA,EAAQ,mBAAA,CAAoB,KAAA,EAAO,mBAAA,IAClC,YAAA;AAAA,kBAgDc,aAAA;EAAA,KACH,cAAA,UAAwB,uBAAA,CAAwB,KAAA;EAAA,KAChD,UAAA,oCAA8C,OAAA,IAAW,mBAAA,CAAoB,KAAA,EAAO,mBAAA;AAAA"}
@@ -7,6 +7,10 @@ import { cloneElement, createElement, isValidElement } from "react";
7
7
  import { isFunction } from "@videojs/utils/predicate";
8
8
 
9
9
  //#region src/utils/use-render.tsx
10
+ /** Check if a value is a render prop (function or React element). */
11
+ function isRenderProp(value) {
12
+ return isFunction(value) || isValidElement(value);
13
+ }
10
14
  function resolveClassName(className, state) {
11
15
  return isFunction(className) ? className(state) : className;
12
16
  }
@@ -67,5 +71,5 @@ function renderElement(element, componentProps, params) {
67
71
  }
68
72
 
69
73
  //#endregion
70
- export { renderElement };
74
+ export { isRenderProp, renderElement };
71
75
  //# sourceMappingURL=use-render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-render.js","names":[],"sources":["../../../src/utils/use-render.tsx"],"sourcesContent":["'use client';\n\nimport { getStateDataAttrs, type StateAttrMap } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { CSSProperties, ReactElement, Ref } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport { mergeProps } from './merge-props';\nimport type { HTMLProps, RenderProp } from './types';\nimport { composeRefs } from './use-composed-refs';\n\ntype IntrinsicTagName = keyof React.JSX.IntrinsicElements;\n\nexport interface UseRenderComponentProps<State> {\n className?: string | ((state: State) => string | undefined) | undefined;\n style?: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined;\n render?: RenderProp<State> | undefined;\n}\n\nexport interface UseRenderParameters<State, RenderedElementType extends Element> {\n state: State;\n ref?: Ref<RenderedElementType> | Ref<RenderedElementType>[] | undefined;\n props?: object | object[] | undefined;\n stateAttrMap?: StateAttrMap<State> | undefined;\n}\n\nfunction resolveClassName<State>(\n className: string | ((state: State) => string | undefined) | undefined,\n state: State\n): string | undefined {\n return isFunction(className) ? className(state) : className;\n}\n\nfunction resolveStyle<State>(\n style: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined,\n state: State\n): CSSProperties | undefined {\n return isFunction(style) ? style(state) : style;\n}\n\nfunction getElementRef(element: ReactElement): Ref<unknown> | undefined {\n // React 19+ uses element.props.ref, older versions use element.ref\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elementAny = element as any;\n return elementAny.ref ?? elementAny.props?.ref;\n}\n\n/**\n * Render a UI component element.\n *\n * Handles:\n * - Default tag rendering\n * - Render prop (element or function)\n * - Props merging (event handlers chained, className concatenated, style merged)\n * - Ref composition\n * - className/style as functions of state\n *\n * @public\n * @example\n * ```tsx\n * return renderElement('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [{ type: 'button' }, elementProps, getButtonProps],\n * });\n * ```\n */\nexport function renderElement<\n State extends object,\n RenderedElementType extends Element,\n TagName extends IntrinsicTagName,\n>(\n element: TagName,\n componentProps: UseRenderComponentProps<State>,\n params: UseRenderParameters<State, RenderedElementType>\n): ReactElement | null {\n const { className: classNameProp, style: styleProp, render } = componentProps;\n const { state, ref, props, stateAttrMap } = params;\n\n // Resolve className and style if they're functions\n const className = resolveClassName(classNameProp, state);\n const style = resolveStyle(styleProp, state);\n\n // Generate data attributes from state\n const stateDataAttrs = getStateDataAttrs(state, stateAttrMap);\n\n // Merge: state data attrs first, then props (so props can override)\n const propsArray = Array.isArray(props) ? props : props ? [props] : [];\n const mergedProps = mergeProps(stateDataAttrs, ...(propsArray as Record<string, unknown>[]));\n\n if (className !== undefined) {\n // Add resolved className and style\n mergedProps.className = mergedProps.className ? `${mergedProps.className} ${className}` : className;\n }\n\n if (style !== undefined) {\n mergedProps.style = mergedProps.style ? { ...(mergedProps.style as CSSProperties), ...style } : style;\n }\n\n if (isFunction(render)) {\n // Render function: call with props and state\n const mergedRef = composeRefs(ref, mergedProps.ref);\n return render({ ...mergedProps, ref: mergedRef } as HTMLProps, state);\n }\n\n if (isValidElement(render)) {\n const elementRef = getElementRef(render);\n\n const mergedRef = composeRefs(ref, mergedProps.ref, elementRef);\n\n const elementProps = mergeProps(mergedProps, render.props as Record<string, unknown>);\n elementProps.ref = mergedRef;\n\n return cloneElement(render, elementProps);\n }\n\n // Default tag\n const mergedRef = composeRefs(ref, mergedProps.ref);\n mergedProps.ref = mergedRef;\n\n return createElement(element, mergedProps);\n}\n\nexport namespace renderElement {\n export type ComponentProps<State> = UseRenderComponentProps<State>;\n export type Parameters<State, RenderedElementType extends Element> = UseRenderParameters<State, RenderedElementType>;\n}\n"],"mappings":";;;;;;;;;AAyBA,SAAS,iBACP,WACA,OACoB;AACpB,QAAO,WAAW,UAAU,GAAG,UAAU,MAAM,GAAG;;AAGpD,SAAS,aACP,OACA,OAC2B;AAC3B,QAAO,WAAW,MAAM,GAAG,MAAM,MAAM,GAAG;;AAG5C,SAAS,cAAc,SAAiD;CAGtE,MAAM,aAAa;AACnB,QAAO,WAAW,OAAO,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;AAuB7C,SAAgB,cAKd,SACA,gBACA,QACqB;CACrB,MAAM,EAAE,WAAW,eAAe,OAAO,WAAW,WAAW;CAC/D,MAAM,EAAE,OAAO,KAAK,OAAO,iBAAiB;CAG5C,MAAM,YAAY,iBAAiB,eAAe,MAAM;CACxD,MAAM,QAAQ,aAAa,WAAW,MAAM;CAO5C,MAAM,cAAc,WAJG,kBAAkB,OAAO,aAAa,EAId,GAD5B,MAAM,QAAQ,MAAM,GAAG,QAAQ,QAAQ,CAAC,MAAM,GAAG,EAAE,CACsB;AAE5F,KAAI,cAAc,OAEhB,aAAY,YAAY,YAAY,YAAY,GAAG,YAAY,UAAU,GAAG,cAAc;AAG5F,KAAI,UAAU,OACZ,aAAY,QAAQ,YAAY,QAAQ;EAAE,GAAI,YAAY;EAAyB,GAAG;EAAO,GAAG;AAGlG,KAAI,WAAW,OAAO,EAAE;EAEtB,MAAM,YAAY,YAAY,KAAK,YAAY,IAAI;AACnD,SAAO,OAAO;GAAE,GAAG;GAAa,KAAK;GAAW,EAAe,MAAM;;AAGvE,KAAI,eAAe,OAAO,EAAE;EAC1B,MAAM,aAAa,cAAc,OAAO;EAExC,MAAM,YAAY,YAAY,KAAK,YAAY,KAAK,WAAW;EAE/D,MAAM,eAAe,WAAW,aAAa,OAAO,MAAiC;AACrF,eAAa,MAAM;AAEnB,SAAO,aAAa,QAAQ,aAAa;;AAK3C,aAAY,MADM,YAAY,KAAK,YAAY,IAAI;AAGnD,QAAO,cAAc,SAAS,YAAY"}
1
+ {"version":3,"file":"use-render.js","names":[],"sources":["../../../src/utils/use-render.tsx"],"sourcesContent":["'use client';\n\nimport { getStateDataAttrs, type StateAttrMap } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { CSSProperties, ReactElement, Ref } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport { mergeProps } from './merge-props';\nimport type { HTMLProps, RenderProp } from './types';\nimport { composeRefs } from './use-composed-refs';\n\n/** Check if a value is a render prop (function or React element). */\nexport function isRenderProp(value: unknown): value is RenderProp<any> {\n return isFunction(value) || isValidElement(value);\n}\n\ntype IntrinsicTagName = keyof React.JSX.IntrinsicElements;\n\nexport interface UseRenderComponentProps<State> {\n className?: string | ((state: State) => string | undefined) | undefined;\n style?: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined;\n render?: RenderProp<State> | undefined;\n}\n\nexport interface UseRenderParameters<State, RenderedElementType extends Element> {\n state: State;\n ref?: Ref<RenderedElementType> | Ref<RenderedElementType>[] | undefined;\n props?: object | object[] | undefined;\n stateAttrMap?: StateAttrMap<State> | undefined;\n}\n\nfunction resolveClassName<State>(\n className: string | ((state: State) => string | undefined) | undefined,\n state: State\n): string | undefined {\n return isFunction(className) ? className(state) : className;\n}\n\nfunction resolveStyle<State>(\n style: CSSProperties | ((state: State) => CSSProperties | undefined) | undefined,\n state: State\n): CSSProperties | undefined {\n return isFunction(style) ? style(state) : style;\n}\n\nfunction getElementRef(element: ReactElement): Ref<unknown> | undefined {\n // React 19+ uses element.props.ref, older versions use element.ref\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elementAny = element as any;\n return elementAny.ref ?? elementAny.props?.ref;\n}\n\n/**\n * Render a UI component element.\n *\n * Handles:\n * - Default tag rendering\n * - Render prop (element or function)\n * - Props merging (event handlers chained, className concatenated, style merged)\n * - Ref composition\n * - className/style as functions of state\n *\n * @public\n * @example\n * ```tsx\n * return renderElement('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [{ type: 'button' }, elementProps, getButtonProps],\n * });\n * ```\n */\nexport function renderElement<\n State extends object,\n RenderedElementType extends Element,\n TagName extends IntrinsicTagName,\n>(\n element: TagName,\n componentProps: UseRenderComponentProps<State>,\n params: UseRenderParameters<State, RenderedElementType>\n): ReactElement | null {\n const { className: classNameProp, style: styleProp, render } = componentProps;\n const { state, ref, props, stateAttrMap } = params;\n\n // Resolve className and style if they're functions\n const className = resolveClassName(classNameProp, state);\n const style = resolveStyle(styleProp, state);\n\n // Generate data attributes from state\n const stateDataAttrs = getStateDataAttrs(state, stateAttrMap);\n\n // Merge: state data attrs first, then props (so props can override)\n const propsArray = Array.isArray(props) ? props : props ? [props] : [];\n const mergedProps = mergeProps(stateDataAttrs, ...(propsArray as Record<string, unknown>[]));\n\n if (className !== undefined) {\n // Add resolved className and style\n mergedProps.className = mergedProps.className ? `${mergedProps.className} ${className}` : className;\n }\n\n if (style !== undefined) {\n mergedProps.style = mergedProps.style ? { ...(mergedProps.style as CSSProperties), ...style } : style;\n }\n\n if (isFunction(render)) {\n // Render function: call with props and state\n const mergedRef = composeRefs(ref, mergedProps.ref);\n return render({ ...mergedProps, ref: mergedRef } as HTMLProps, state);\n }\n\n if (isValidElement(render)) {\n const elementRef = getElementRef(render);\n\n const mergedRef = composeRefs(ref, mergedProps.ref, elementRef);\n\n const elementProps = mergeProps(mergedProps, render.props as Record<string, unknown>);\n elementProps.ref = mergedRef;\n\n return cloneElement(render, elementProps);\n }\n\n // Default tag\n const mergedRef = composeRefs(ref, mergedProps.ref);\n mergedProps.ref = mergedRef;\n\n return createElement(element, mergedProps);\n}\n\nexport namespace renderElement {\n export type ComponentProps<State> = UseRenderComponentProps<State>;\n export type Parameters<State, RenderedElementType extends Element> = UseRenderParameters<State, RenderedElementType>;\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,aAAa,OAA0C;AACrE,QAAO,WAAW,MAAM,IAAI,eAAe,MAAM;;AAkBnD,SAAS,iBACP,WACA,OACoB;AACpB,QAAO,WAAW,UAAU,GAAG,UAAU,MAAM,GAAG;;AAGpD,SAAS,aACP,OACA,OAC2B;AAC3B,QAAO,WAAW,MAAM,GAAG,MAAM,MAAM,GAAG;;AAG5C,SAAS,cAAc,SAAiD;CAGtE,MAAM,aAAa;AACnB,QAAO,WAAW,OAAO,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;AAuB7C,SAAgB,cAKd,SACA,gBACA,QACqB;CACrB,MAAM,EAAE,WAAW,eAAe,OAAO,WAAW,WAAW;CAC/D,MAAM,EAAE,OAAO,KAAK,OAAO,iBAAiB;CAG5C,MAAM,YAAY,iBAAiB,eAAe,MAAM;CACxD,MAAM,QAAQ,aAAa,WAAW,MAAM;CAO5C,MAAM,cAAc,WAJG,kBAAkB,OAAO,aAAa,EAId,GAD5B,MAAM,QAAQ,MAAM,GAAG,QAAQ,QAAQ,CAAC,MAAM,GAAG,EAAE,CACsB;AAE5F,KAAI,cAAc,OAEhB,aAAY,YAAY,YAAY,YAAY,GAAG,YAAY,UAAU,GAAG,cAAc;AAG5F,KAAI,UAAU,OACZ,aAAY,QAAQ,YAAY,QAAQ;EAAE,GAAI,YAAY;EAAyB,GAAG;EAAO,GAAG;AAGlG,KAAI,WAAW,OAAO,EAAE;EAEtB,MAAM,YAAY,YAAY,KAAK,YAAY,IAAI;AACnD,SAAO,OAAO;GAAE,GAAG;GAAa,KAAK;GAAW,EAAe,MAAM;;AAGvE,KAAI,eAAe,OAAO,EAAE;EAC1B,MAAM,aAAa,cAAc,OAAO;EAExC,MAAM,YAAY,YAAY,KAAK,YAAY,KAAK,WAAW;EAE/D,MAAM,eAAe,WAAW,aAAa,OAAO,MAAiC;AACrF,eAAa,MAAM;AAEnB,SAAO,aAAa,QAAQ,aAAa;;AAK3C,aAAY,MADM,YAAY,KAAK,YAAY,IAAI;AAGnD,QAAO,cAAc,SAAS,YAAY"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@videojs/react",
3
3
  "type": "module",
4
- "version": "10.0.0-beta.1",
4
+ "version": "10.0.0-beta.10",
5
5
  "description": "React library for building media players",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -65,10 +65,10 @@
65
65
  "react": ">=16.8.0"
66
66
  },
67
67
  "dependencies": {
68
- "@videojs/spf": "10.0.0-beta.1",
69
- "@videojs/core": "10.0.0-beta.1",
70
- "@videojs/store": "10.0.0-beta.1",
71
- "@videojs/utils": "10.0.0-beta.1"
68
+ "@videojs/core": "10.0.0-beta.10",
69
+ "@videojs/spf": "10.0.0-beta.10",
70
+ "@videojs/store": "10.0.0-beta.10",
71
+ "@videojs/utils": "10.0.0-beta.10"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@testing-library/react": "^16.3.0",
@@ -79,8 +79,8 @@
79
79
  "tsdown": "^0.20.3",
80
80
  "typescript": "^5.9.3",
81
81
  "vitest": "^3.2.4",
82
- "@videojs/icons": "10.0.0-beta.1",
83
- "@videojs/skins": "10.0.0-alpha.4"
82
+ "@videojs/icons": "10.0.0-beta.10",
83
+ "@videojs/skins": "10.0.0-beta.10"
84
84
  },
85
85
  "publishConfig": {
86
86
  "access": "public"
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
-
3
- //#region ../icons/dist/react/default/pip.js
4
- const PipIcon = (props) => /* @__PURE__ */ jsxs("svg", {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 18,
7
- height: 18,
8
- fill: "none",
9
- "aria-hidden": "true",
10
- viewBox: "0 0 18 18",
11
- ...props,
12
- children: [/* @__PURE__ */ jsx("path", {
13
- fill: "currentColor",
14
- d: "M13 2a4 4 0 0 1 4 4v2.035A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.035.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z"
15
- }), /* @__PURE__ */ jsx("rect", {
16
- width: 10,
17
- height: 7,
18
- x: 8,
19
- y: 10,
20
- fill: "currentColor",
21
- rx: 2
22
- })]
23
- });
24
-
25
- //#endregion
26
- export { PipIcon as default };
27
- //# sourceMappingURL=pip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pip.js","names":[],"sources":["../../../../../../../icons/dist/react/default/pip.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M13 2a4 4 0 0 1 4 4v2.035A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.035.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, fill: \"currentColor\", rx: 2 })\n] });\nexport default PipIcon;\n"],"mappings":";;;AACA,MAAM,WAAW,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAClL,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAqM,CAAC,EAC7O,oBAAI,QAAQ;EAAE,OAAO;EAAI,QAAQ;EAAG,GAAG;EAAG,GAAG;EAAI,MAAM;EAAgB,IAAI;EAAG,CAAC,CAChG;CAAE,CAAC"}
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
-
3
- //#region ../icons/dist/react/minimal/pip.js
4
- const PipIcon = (props) => /* @__PURE__ */ jsxs("svg", {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 18,
7
- height: 18,
8
- fill: "none",
9
- "aria-hidden": "true",
10
- viewBox: "0 0 18 18",
11
- ...props,
12
- children: [/* @__PURE__ */ jsx("path", {
13
- fill: "currentColor",
14
- d: "M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z"
15
- }), /* @__PURE__ */ jsx("rect", {
16
- width: 10,
17
- height: 7,
18
- x: 8,
19
- y: 10,
20
- fill: "currentColor",
21
- rx: 2
22
- })]
23
- });
24
-
25
- //#endregion
26
- export { PipIcon as default };
27
- //# sourceMappingURL=pip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pip.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/pip.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, fill: \"currentColor\", rx: 2 })\n] });\nexport default PipIcon;\n"],"mappings":";;;AACA,MAAM,WAAW,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAClL,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAsL,CAAC,EAC9N,oBAAI,QAAQ;EAAE,OAAO;EAAI,QAAQ;EAAG,GAAG;EAAG,GAAG;EAAI,MAAM;EAAgB,IAAI;EAAG,CAAC,CAChG;CAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-dialog.js","names":["AlertDialog.Root","AlertDialog.Popup","AlertDialog.Title","AlertDialog.Description","AlertDialog.Close"],"sources":["../../../../src/presets/video/error-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { selectError } from '@videojs/core/dom';\nimport { type ReactNode, useRef } from 'react';\nimport { usePlayer } from '@/player/context';\nimport { AlertDialog } from '@/ui/alert-dialog';\n\nexport interface ErrorDialogClasses {\n root?: string;\n dialog?: string;\n content?: string;\n title?: string;\n description?: string;\n actions?: string;\n close?: string;\n}\n\nexport function ErrorDialog({ classes }: { classes?: ErrorDialogClasses }): ReactNode {\n const errorState = usePlayer(selectError);\n const lastError = useRef(errorState?.error);\n if (errorState?.error) lastError.current = errorState.error;\n\n if (!errorState) return null;\n\n return (\n <AlertDialog.Root\n open={!!errorState.error}\n onOpenChange={(open) => {\n if (!open) errorState.dismissError();\n }}\n >\n <AlertDialog.Popup className={classes?.root}>\n <div className={classes?.dialog}>\n <div className={classes?.content}>\n <AlertDialog.Title className={classes?.title}>Something went wrong.</AlertDialog.Title>\n <AlertDialog.Description className={classes?.description}>\n {lastError.current?.message ?? 'An error occurred while trying to play the video. Please try again.'}\n </AlertDialog.Description>\n </div>\n <div className={classes?.actions}>\n <AlertDialog.Close className={classes?.close}>OK</AlertDialog.Close>\n </div>\n </div>\n </AlertDialog.Popup>\n </AlertDialog.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,SAAgB,YAAY,EAAE,WAAwD;CACpF,MAAM,aAAa,UAAU,YAAY;CACzC,MAAM,YAAY,OAAO,YAAY,MAAM;AAC3C,KAAI,YAAY,MAAO,WAAU,UAAU,WAAW;AAEtD,KAAI,CAAC,WAAY,QAAO;AAExB,QACE,oBAACA;EACC,MAAM,CAAC,CAAC,WAAW;EACnB,eAAe,SAAS;AACtB,OAAI,CAAC,KAAM,YAAW,cAAc;;YAGtC,oBAACC;GAAkB,WAAW,SAAS;aACrC,qBAAC;IAAI,WAAW,SAAS;eACvB,qBAAC;KAAI,WAAW,SAAS;gBACvB,oBAACC;MAAkB,WAAW,SAAS;gBAAO;OAAyC,EACvF,oBAACC;MAAwB,WAAW,SAAS;gBAC1C,UAAU,SAAS,WAAW;OACP;MACtB,EACN,oBAAC;KAAI,WAAW,SAAS;eACvB,oBAACC;MAAkB,WAAW,SAAS;gBAAO;OAAsB;MAChE;KACF;IACY;GACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/icon-state.js"],"sourcesContent":["//#region src/default/tailwind/components/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
@@ -1,29 +0,0 @@
1
- //#region ../skins/dist/default/minimal/tailwind/components/icon-state.js
2
- const iconState = {
3
- play: {
4
- button: "group",
5
- restart: "hidden opacity-0 group-data-ended:block group-data-ended:opacity-100",
6
- play: "hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100",
7
- pause: "hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100"
8
- },
9
- mute: {
10
- button: "group",
11
- volumeOff: "hidden opacity-0 group-data-muted:block group-data-muted:opacity-100",
12
- volumeLow: "hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100",
13
- volumeHigh: "hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100"
14
- },
15
- fullscreen: {
16
- button: "group",
17
- enter: "hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100",
18
- exit: "hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100"
19
- },
20
- captions: {
21
- button: "group",
22
- off: "hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100",
23
- on: "hidden opacity-0 group-data-active:block group-data-active:opacity-100"
24
- }
25
- };
26
-
27
- //#endregion
28
- export { iconState };
29
- //# sourceMappingURL=icon-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/icon-state.js"],"sourcesContent":["//#region src/minimal/tailwind/components/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
-
3
- //#region ../icons/dist/react/default/pip.js
4
- const PipIcon = (props) => /* @__PURE__ */ jsxs("svg", {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 18,
7
- height: 18,
8
- fill: "none",
9
- "aria-hidden": "true",
10
- viewBox: "0 0 18 18",
11
- ...props,
12
- children: [/* @__PURE__ */ jsx("path", {
13
- fill: "currentColor",
14
- d: "M13 2a4 4 0 0 1 4 4v2.035A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.035.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z"
15
- }), /* @__PURE__ */ jsx("rect", {
16
- width: 10,
17
- height: 7,
18
- x: 8,
19
- y: 10,
20
- fill: "currentColor",
21
- rx: 2
22
- })]
23
- });
24
-
25
- //#endregion
26
- export { PipIcon as default };
27
- //# sourceMappingURL=pip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pip.js","names":[],"sources":["../../../../../../../icons/dist/react/default/pip.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M13 2a4 4 0 0 1 4 4v2.035A3.5 3.5 0 0 0 16.5 8H15V6.273C15 5.018 13.96 4 12.679 4H4.32C3.04 4 2 5.018 2 6.273v5.454C2 12.982 3.04 14 4.321 14H6v1.5q0 .255.035.5H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, fill: \"currentColor\", rx: 2 })\n] });\nexport default PipIcon;\n"],"mappings":";;;AACA,MAAM,WAAW,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAClL,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAqM,CAAC,EAC7O,oBAAI,QAAQ;EAAE,OAAO;EAAI,QAAQ;EAAG,GAAG;EAAG,GAAG;EAAI,MAAM;EAAgB,IAAI;EAAG,CAAC,CAChG;CAAE,CAAC"}
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
-
3
- //#region ../icons/dist/react/minimal/pip.js
4
- const PipIcon = (props) => /* @__PURE__ */ jsxs("svg", {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 18,
7
- height: 18,
8
- fill: "none",
9
- "aria-hidden": "true",
10
- viewBox: "0 0 18 18",
11
- ...props,
12
- children: [/* @__PURE__ */ jsx("path", {
13
- fill: "currentColor",
14
- d: "M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z"
15
- }), /* @__PURE__ */ jsx("rect", {
16
- width: 10,
17
- height: 7,
18
- x: 8,
19
- y: 10,
20
- fill: "currentColor",
21
- rx: 2
22
- })]
23
- });
24
-
25
- //#endregion
26
- export { PipIcon as default };
27
- //# sourceMappingURL=pip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pip.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/pip.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst PipIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", viewBox: \"0 0 18 18\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M13 2a4 4 0 0 1 4 4v2.645a3.5 3.5 0 0 0-1-.145h-.5V6A2.5 2.5 0 0 0 13 3.5H4A2.5 2.5 0 0 0 1.5 6v6A2.5 2.5 0 0 0 4 14.5h2.5v.5c0 .347.05.683.145 1H4a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4z\" }),\n /* @__PURE__ */ jsx(\"rect\", { width: 10, height: 7, x: 8, y: 10, fill: \"currentColor\", rx: 2 })\n] });\nexport default PipIcon;\n"],"mappings":";;;AACA,MAAM,WAAW,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,SAAS;CAAa,GAAG;CAAO,UAAU,CAClL,oBAAI,QAAQ;EAAE,MAAM;EAAgB,GAAG;EAAsL,CAAC,EAC9N,oBAAI,QAAQ;EAAE,OAAO;EAAI,QAAQ;EAAG,GAAG;EAAG,GAAG;EAAI,MAAM;EAAgB,IAAI;EAAG,CAAC,CAChG;CAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-dialog.js","names":["AlertDialog.Root","AlertDialog.Popup","AlertDialog.Title","AlertDialog.Description","AlertDialog.Close"],"sources":["../../../../src/presets/video/error-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { selectError } from '@videojs/core/dom';\nimport { type ReactNode, useRef } from 'react';\nimport { usePlayer } from '@/player/context';\nimport { AlertDialog } from '@/ui/alert-dialog';\n\nexport interface ErrorDialogClasses {\n root?: string;\n dialog?: string;\n content?: string;\n title?: string;\n description?: string;\n actions?: string;\n close?: string;\n}\n\nexport function ErrorDialog({ classes }: { classes?: ErrorDialogClasses }): ReactNode {\n const errorState = usePlayer(selectError);\n const lastError = useRef(errorState?.error);\n if (errorState?.error) lastError.current = errorState.error;\n\n if (!errorState) return null;\n\n return (\n <AlertDialog.Root\n open={!!errorState.error}\n onOpenChange={(open) => {\n if (!open) errorState.dismissError();\n }}\n >\n <AlertDialog.Popup className={classes?.root}>\n <div className={classes?.dialog}>\n <div className={classes?.content}>\n <AlertDialog.Title className={classes?.title}>Something went wrong.</AlertDialog.Title>\n <AlertDialog.Description className={classes?.description}>\n {lastError.current?.message ?? 'An error occurred while trying to play the video. Please try again.'}\n </AlertDialog.Description>\n </div>\n <div className={classes?.actions}>\n <AlertDialog.Close className={classes?.close}>OK</AlertDialog.Close>\n </div>\n </div>\n </AlertDialog.Popup>\n </AlertDialog.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,SAAgB,YAAY,EAAE,WAAwD;CACpF,MAAM,aAAa,UAAU,YAAY;CACzC,MAAM,YAAY,OAAO,YAAY,MAAM;AAC3C,KAAI,YAAY,MAAO,WAAU,UAAU,WAAW;AAEtD,KAAI,CAAC,WAAY,QAAO;AAExB,QACE,oBAACA;EACC,MAAM,CAAC,CAAC,WAAW;EACnB,eAAe,SAAS;AACtB,OAAI,CAAC,KAAM,YAAW,cAAc;;YAGtC,oBAACC;GAAkB,WAAW,SAAS;aACrC,qBAAC;IAAI,WAAW,SAAS;eACvB,qBAAC;KAAI,WAAW,SAAS;gBACvB,oBAACC;MAAkB,WAAW,SAAS;gBAAO;OAAyC,EACvF,oBAACC;MAAwB,WAAW,SAAS;gBAC1C,UAAU,SAAS,WAAW;OACP;MACtB,EACN,oBAAC;KAAI,WAAW,SAAS;eACvB,oBAACC;MAAkB,WAAW,SAAS;gBAAO;OAAsB;MAChE;KACF;IACY;GACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/icon-state.js"],"sourcesContent":["//#region src/default/tailwind/components/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
@@ -1,29 +0,0 @@
1
- //#region ../skins/dist/default/minimal/tailwind/components/icon-state.js
2
- const iconState = {
3
- play: {
4
- button: "group",
5
- restart: "hidden opacity-0 group-data-ended:block group-data-ended:opacity-100",
6
- play: "hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100",
7
- pause: "hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100"
8
- },
9
- mute: {
10
- button: "group",
11
- volumeOff: "hidden opacity-0 group-data-muted:block group-data-muted:opacity-100",
12
- volumeLow: "hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100",
13
- volumeHigh: "hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100"
14
- },
15
- fullscreen: {
16
- button: "group",
17
- enter: "hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100",
18
- exit: "hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100"
19
- },
20
- captions: {
21
- button: "group",
22
- off: "hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100",
23
- on: "hidden opacity-0 group-data-active:block group-data-active:opacity-100"
24
- }
25
- };
26
-
27
- //#endregion
28
- export { iconState };
29
- //# sourceMappingURL=icon-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/icon-state.js"],"sourcesContent":["//#region src/minimal/tailwind/components/icon-state.ts\nconst iconState = {\n\tplay: {\n\t\tbutton: \"group\",\n\t\trestart: \"hidden opacity-0 group-data-ended:block group-data-ended:opacity-100\",\n\t\tplay: \"hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100\",\n\t\tpause: \"hidden opacity-0 group-not-data-paused:group-not-data-ended:block group-not-data-paused:group-not-data-ended:opacity-100\"\n\t},\n\tmute: {\n\t\tbutton: \"group\",\n\t\tvolumeOff: \"hidden opacity-0 group-data-muted:block group-data-muted:opacity-100\",\n\t\tvolumeLow: \"hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100\",\n\t\tvolumeHigh: \"hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100\"\n\t},\n\tfullscreen: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100\"\n\t},\n\tcaptions: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-active:block group-not-data-active:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-active:block group-data-active:opacity-100\"\n\t}\n};\n\n//#endregion\nexport { iconState };\n//# sourceMappingURL=icon-state.js.map"],"mappings":";AACA,MAAM,YAAY;CACjB,MAAM;EACL,QAAQ;EACR,SAAS;EACT,MAAM;EACN,OAAO;EACP;CACD,MAAM;EACL,QAAQ;EACR,WAAW;EACX,WAAW;EACX,YAAY;EACZ;CACD,YAAY;EACX,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}