@videojs/react 10.0.0-beta.21 → 10.0.0-beta.23

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 (295) hide show
  1. package/dist/default/icons/dist/react/default/cast-enter.js +32 -0
  2. package/dist/default/icons/dist/react/default/cast-enter.js.map +1 -0
  3. package/dist/default/icons/dist/react/default/cast-exit.js +36 -0
  4. package/dist/default/icons/dist/react/default/cast-exit.js.map +1 -0
  5. package/dist/default/icons/dist/react/minimal/cast-enter.js +28 -0
  6. package/dist/default/icons/dist/react/minimal/cast-enter.js.map +1 -0
  7. package/dist/default/icons/dist/react/minimal/cast-exit.js +32 -0
  8. package/dist/default/icons/dist/react/minimal/cast-exit.js.map +1 -0
  9. package/dist/default/index.js +5 -5
  10. package/dist/default/media/dash-video/index.js +6 -6
  11. package/dist/default/media/dash-video/index.js.map +1 -1
  12. package/dist/default/media/hls-video/index.js +6 -6
  13. package/dist/default/media/hls-video/index.js.map +1 -1
  14. package/dist/default/media/mux-audio/index.js +9 -8
  15. package/dist/default/media/mux-audio/index.js.map +1 -1
  16. package/dist/default/media/mux-video/index.js +6 -6
  17. package/dist/default/media/mux-video/index.js.map +1 -1
  18. package/dist/default/media/native-hls-video/index.js +6 -6
  19. package/dist/default/media/native-hls-video/index.js.map +1 -1
  20. package/dist/default/media/simple-hls-video/index.js +6 -5
  21. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  22. package/dist/default/presets/audio/minimal-skin.css +2 -1
  23. package/dist/default/presets/audio/skin.css +2 -1
  24. package/dist/default/presets/audio/skin.js +15 -15
  25. package/dist/default/presets/audio/skin.js.map +1 -1
  26. package/dist/default/presets/live-audio/index.js +7 -0
  27. package/dist/default/presets/live-audio/minimal-skin.css +736 -0
  28. package/dist/default/presets/live-audio/minimal-skin.js +136 -0
  29. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -0
  30. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +166 -0
  31. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -0
  32. package/dist/default/presets/live-audio/skin.css +752 -0
  33. package/dist/default/presets/live-audio/skin.js +158 -0
  34. package/dist/default/presets/live-audio/skin.js.map +1 -0
  35. package/dist/default/presets/live-audio/skin.tailwind.js +165 -0
  36. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -0
  37. package/dist/default/presets/live-video/index.js +7 -0
  38. package/dist/default/presets/live-video/minimal-skin.css +1127 -0
  39. package/dist/default/presets/live-video/minimal-skin.js +198 -0
  40. package/dist/default/presets/live-video/minimal-skin.js.map +1 -0
  41. package/dist/default/presets/live-video/minimal-skin.tailwind.js +231 -0
  42. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -0
  43. package/dist/default/presets/live-video/skin.css +1117 -0
  44. package/dist/default/presets/live-video/skin.js +252 -0
  45. package/dist/default/presets/live-video/skin.js.map +1 -0
  46. package/dist/default/presets/live-video/skin.tailwind.js +233 -0
  47. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -0
  48. package/dist/default/presets/video/minimal-skin.css +8 -1
  49. package/dist/default/presets/video/minimal-skin.js +11 -0
  50. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  51. package/dist/default/presets/video/minimal-skin.tailwind.js +11 -0
  52. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  53. package/dist/default/presets/video/skin.css +8 -1
  54. package/dist/default/presets/video/skin.js +35 -24
  55. package/dist/default/presets/video/skin.js.map +1 -1
  56. package/dist/default/presets/video/skin.tailwind.js +11 -0
  57. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  58. package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
  59. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  60. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  61. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  62. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +5 -0
  63. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  64. package/dist/default/ui/cast-button/cast-button.js +17 -0
  65. package/dist/default/ui/cast-button/cast-button.js.map +1 -0
  66. package/dist/default/ui/cast-button/index.js +2 -0
  67. package/dist/default/ui/gesture/{media-gesture.js → gesture.js} +6 -4
  68. package/dist/default/ui/gesture/gesture.js.map +1 -0
  69. package/dist/default/ui/hotkey/{media-hotkey.js → hotkey.js} +6 -4
  70. package/dist/default/ui/hotkey/hotkey.js.map +1 -0
  71. package/dist/default/utils/use-attach-media.js +14 -0
  72. package/dist/default/utils/use-attach-media.js.map +1 -0
  73. package/dist/default/utils/use-sync-props.js +14 -0
  74. package/dist/default/utils/use-sync-props.js.map +1 -0
  75. package/dist/dev/icons/dist/react/default/cast-enter.js +32 -0
  76. package/dist/dev/icons/dist/react/default/cast-enter.js.map +1 -0
  77. package/dist/dev/icons/dist/react/default/cast-exit.js +36 -0
  78. package/dist/dev/icons/dist/react/default/cast-exit.js.map +1 -0
  79. package/dist/dev/icons/dist/react/minimal/cast-enter.js +28 -0
  80. package/dist/dev/icons/dist/react/minimal/cast-enter.js.map +1 -0
  81. package/dist/dev/icons/dist/react/minimal/cast-exit.js +32 -0
  82. package/dist/dev/icons/dist/react/minimal/cast-exit.js.map +1 -0
  83. package/dist/dev/index.d.ts +5 -5
  84. package/dist/dev/index.js +5 -5
  85. package/dist/dev/media/audio.d.ts +2 -2
  86. package/dist/dev/media/audio.d.ts.map +1 -1
  87. package/dist/dev/media/background-video/index.d.ts +2 -2
  88. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  89. package/dist/dev/media/dash-video/index.d.ts +7 -8
  90. package/dist/dev/media/dash-video/index.d.ts.map +1 -1
  91. package/dist/dev/media/dash-video/index.js +6 -6
  92. package/dist/dev/media/dash-video/index.js.map +1 -1
  93. package/dist/dev/media/hls-video/index.d.ts +7 -8
  94. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  95. package/dist/dev/media/hls-video/index.js +6 -6
  96. package/dist/dev/media/hls-video/index.js.map +1 -1
  97. package/dist/dev/media/mux-audio/index.d.ts +11 -9
  98. package/dist/dev/media/mux-audio/index.d.ts.map +1 -1
  99. package/dist/dev/media/mux-audio/index.js +9 -8
  100. package/dist/dev/media/mux-audio/index.js.map +1 -1
  101. package/dist/dev/media/mux-video/index.d.ts +7 -8
  102. package/dist/dev/media/mux-video/index.d.ts.map +1 -1
  103. package/dist/dev/media/mux-video/index.js +6 -6
  104. package/dist/dev/media/mux-video/index.js.map +1 -1
  105. package/dist/dev/media/native-hls-video/index.d.ts +7 -8
  106. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -1
  107. package/dist/dev/media/native-hls-video/index.js +6 -6
  108. package/dist/dev/media/native-hls-video/index.js.map +1 -1
  109. package/dist/dev/media/simple-hls-video/index.d.ts +7 -6
  110. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  111. package/dist/dev/media/simple-hls-video/index.js +6 -5
  112. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  113. package/dist/dev/media/video.d.ts +2 -2
  114. package/dist/dev/media/video.d.ts.map +1 -1
  115. package/dist/dev/player/context.d.ts +2 -2
  116. package/dist/dev/player/context.d.ts.map +1 -1
  117. package/dist/dev/presets/audio/minimal-skin.css +2 -1
  118. package/dist/dev/presets/audio/skin.css +2 -1
  119. package/dist/dev/presets/audio/skin.js +15 -15
  120. package/dist/dev/presets/audio/skin.js.map +1 -1
  121. package/dist/dev/presets/background/skin.d.ts +2 -2
  122. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  123. package/dist/dev/presets/live-audio/index.d.ts +7 -0
  124. package/dist/dev/presets/live-audio/index.js +7 -0
  125. package/dist/dev/presets/live-audio/minimal-skin.css +736 -0
  126. package/dist/dev/presets/live-audio/minimal-skin.d.ts +16 -0
  127. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -0
  128. package/dist/dev/presets/live-audio/minimal-skin.js +136 -0
  129. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -0
  130. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts +8 -0
  131. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
  132. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +166 -0
  133. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -0
  134. package/dist/dev/presets/live-audio/skin.css +752 -0
  135. package/dist/dev/presets/live-audio/skin.d.ts +15 -0
  136. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -0
  137. package/dist/dev/presets/live-audio/skin.js +158 -0
  138. package/dist/dev/presets/live-audio/skin.js.map +1 -0
  139. package/dist/dev/presets/live-audio/skin.tailwind.d.ts +8 -0
  140. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -0
  141. package/dist/dev/presets/live-audio/skin.tailwind.js +165 -0
  142. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -0
  143. package/dist/dev/presets/live-video/index.d.ts +7 -0
  144. package/dist/dev/presets/live-video/index.js +7 -0
  145. package/dist/dev/presets/live-video/minimal-skin.css +1127 -0
  146. package/dist/dev/presets/live-video/minimal-skin.d.ts +16 -0
  147. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -0
  148. package/dist/dev/presets/live-video/minimal-skin.js +198 -0
  149. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -0
  150. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts +8 -0
  151. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -0
  152. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +231 -0
  153. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -0
  154. package/dist/dev/presets/live-video/skin.css +1117 -0
  155. package/dist/dev/presets/live-video/skin.d.ts +15 -0
  156. package/dist/dev/presets/live-video/skin.d.ts.map +1 -0
  157. package/dist/dev/presets/live-video/skin.js +252 -0
  158. package/dist/dev/presets/live-video/skin.js.map +1 -0
  159. package/dist/dev/presets/live-video/skin.tailwind.d.ts +8 -0
  160. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -0
  161. package/dist/dev/presets/live-video/skin.tailwind.js +233 -0
  162. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -0
  163. package/dist/dev/presets/video/minimal-skin.css +8 -1
  164. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  165. package/dist/dev/presets/video/minimal-skin.js +11 -0
  166. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  167. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  168. package/dist/dev/presets/video/minimal-skin.tailwind.js +11 -0
  169. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  170. package/dist/dev/presets/video/skin.css +8 -1
  171. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  172. package/dist/dev/presets/video/skin.js +35 -24
  173. package/dist/dev/presets/video/skin.js.map +1 -1
  174. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  175. package/dist/dev/presets/video/skin.tailwind.js +11 -0
  176. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  177. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
  178. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  179. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  180. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  181. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +5 -0
  182. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  183. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts +2 -2
  184. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
  185. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts +2 -2
  186. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
  187. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts +2 -2
  188. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
  189. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts +2 -2
  190. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
  191. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts +2 -2
  192. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  193. package/dist/dev/ui/captions-button/captions-button.d.ts +2 -2
  194. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  195. package/dist/dev/ui/cast-button/cast-button.d.ts +15 -0
  196. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -0
  197. package/dist/dev/ui/cast-button/cast-button.js +17 -0
  198. package/dist/dev/ui/cast-button/cast-button.js.map +1 -0
  199. package/dist/dev/ui/cast-button/index.d.ts +2 -0
  200. package/dist/dev/ui/cast-button/index.js +2 -0
  201. package/dist/dev/ui/controls/controls-group.d.ts +2 -2
  202. package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
  203. package/dist/dev/ui/controls/controls-root.d.ts +2 -2
  204. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  205. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +2 -2
  206. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  207. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts +2 -2
  208. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  209. package/dist/dev/ui/gesture/gesture.d.ts +30 -0
  210. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -0
  211. package/dist/dev/ui/gesture/{media-gesture.js → gesture.js} +6 -4
  212. package/dist/dev/ui/gesture/gesture.js.map +1 -0
  213. package/dist/dev/ui/hotkey/hotkey.d.ts +28 -0
  214. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -0
  215. package/dist/dev/ui/hotkey/{media-hotkey.js → hotkey.js} +6 -4
  216. package/dist/dev/ui/hotkey/hotkey.js.map +1 -0
  217. package/dist/dev/ui/mute-button/mute-button.d.ts +2 -2
  218. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  219. package/dist/dev/ui/pip-button/pip-button.d.ts +2 -2
  220. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  221. package/dist/dev/ui/play-button/play-button.d.ts +2 -2
  222. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  223. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts +2 -2
  224. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  225. package/dist/dev/ui/popover/popover-arrow.d.ts +2 -2
  226. package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
  227. package/dist/dev/ui/popover/popover-popup.d.ts +2 -2
  228. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  229. package/dist/dev/ui/popover/popover-trigger.d.ts +2 -2
  230. package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
  231. package/dist/dev/ui/poster/poster.d.ts +2 -2
  232. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  233. package/dist/dev/ui/seek-button/seek-button.d.ts +2 -2
  234. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  235. package/dist/dev/ui/slider/slider-buffer.d.ts +2 -2
  236. package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
  237. package/dist/dev/ui/slider/slider-fill.d.ts +2 -2
  238. package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
  239. package/dist/dev/ui/slider/slider-preview.d.ts +2 -2
  240. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  241. package/dist/dev/ui/slider/slider-root.d.ts +2 -2
  242. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  243. package/dist/dev/ui/slider/slider-thumb.d.ts +2 -2
  244. package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
  245. package/dist/dev/ui/slider/slider-thumbnail.d.ts +2 -2
  246. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  247. package/dist/dev/ui/slider/slider-track.d.ts +2 -2
  248. package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
  249. package/dist/dev/ui/slider/slider-value.d.ts +2 -2
  250. package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
  251. package/dist/dev/ui/thumbnail/thumbnail.d.ts +2 -2
  252. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  253. package/dist/dev/ui/time/time-group.d.ts +2 -2
  254. package/dist/dev/ui/time/time-group.d.ts.map +1 -1
  255. package/dist/dev/ui/time/time-separator.d.ts +2 -2
  256. package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
  257. package/dist/dev/ui/time/time-value.d.ts +2 -2
  258. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  259. package/dist/dev/ui/time-slider/time-slider-root.d.ts +2 -2
  260. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  261. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts +2 -2
  262. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
  263. package/dist/dev/ui/tooltip/tooltip-popup.d.ts +2 -2
  264. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  265. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts +2 -2
  266. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  267. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts +2 -2
  268. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  269. package/dist/dev/utils/use-attach-media.d.ts +8 -0
  270. package/dist/dev/utils/use-attach-media.d.ts.map +1 -0
  271. package/dist/dev/utils/use-attach-media.js +14 -0
  272. package/dist/dev/utils/use-attach-media.js.map +1 -0
  273. package/dist/dev/utils/use-sync-props.js +14 -0
  274. package/dist/dev/utils/use-sync-props.js.map +1 -0
  275. package/package.json +30 -9
  276. package/dist/default/ui/gesture/media-gesture.js.map +0 -1
  277. package/dist/default/ui/hotkey/media-hotkey.js.map +0 -1
  278. package/dist/default/utils/attach-media-element.js +0 -12
  279. package/dist/default/utils/attach-media-element.js.map +0 -1
  280. package/dist/default/utils/media-props.js +0 -19
  281. package/dist/default/utils/media-props.js.map +0 -1
  282. package/dist/dev/ui/gesture/media-gesture.d.ts +0 -23
  283. package/dist/dev/ui/gesture/media-gesture.d.ts.map +0 -1
  284. package/dist/dev/ui/gesture/media-gesture.js.map +0 -1
  285. package/dist/dev/ui/hotkey/media-hotkey.d.ts +0 -21
  286. package/dist/dev/ui/hotkey/media-hotkey.d.ts.map +0 -1
  287. package/dist/dev/ui/hotkey/media-hotkey.js.map +0 -1
  288. package/dist/dev/utils/attach-media-element.d.ts +0 -9
  289. package/dist/dev/utils/attach-media-element.d.ts.map +0 -1
  290. package/dist/dev/utils/attach-media-element.js +0 -12
  291. package/dist/dev/utils/attach-media-element.js.map +0 -1
  292. package/dist/dev/utils/media-props.d.ts +0 -8
  293. package/dist/dev/utils/media-props.d.ts.map +0 -1
  294. package/dist/dev/utils/media-props.js +0 -19
  295. package/dist/dev/utils/media-props.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"skin.tailwind.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Controls.Root","Tooltip.Provider","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Time.Value","TimeSlider.Root","TimeSlider.Track","TimeSlider.Fill","TimeSlider.Buffer","TimeSlider.Thumb","Slider.Thumbnail","TimeSlider.Value"],"sources":["../../../../src/presets/video/skin.tailwind.tsx"],"sourcesContent":["import {\n CaptionsOffIcon,\n CaptionsOnIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipEnterIcon,\n PipExitIcon,\n PlayIcon,\n RestartIcon,\n SeekIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@videojs/icons/react';\nimport {\n bufferingIndicator,\n button,\n buttonGroupEnd,\n buttonGroupStart,\n controls,\n error,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n overlay,\n playbackRate,\n popup,\n poster,\n preview,\n root,\n seek,\n slider,\n time,\n} from '@videojs/skins/default/tailwind/video.tailwind';\nimport { isString } from '@videojs/utils/predicate';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, forwardRef, type ReactNode } from 'react';\nimport { Container, usePlayer } from '@/player/context';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { CaptionsButton } from '@/ui/captions-button';\nimport { Controls } from '@/ui/controls';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PiPButton } from '@/ui/pip-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { PlaybackRateButton } from '@/ui/playback-rate-button';\nimport { Popover } from '@/ui/popover';\nimport { Poster } from '@/ui/poster';\nimport { SeekButton } from '@/ui/seek-button';\nimport { Slider } from '@/ui/slider';\nimport { Time } from '@/ui/time';\nimport { TimeSlider } from '@/ui/time-slider';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport { isRenderProp } from '@/utils/use-render';\nimport type { VideoSkinProps } from './skin';\n\nconst SEEK_TIME = 10;\n\n/* --------------------------------------- Components ---------------------------------------- */\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return (\n <button ref={ref} type=\"button\" className={cn(button.base, button.subtle, button.icon, className)} {...props} />\n );\n});\n\nconst SliderRoot = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderRoot({ className, ...props }, ref) {\n return <div ref={ref} className={cn(slider.root, className)} {...props} />;\n});\n\nconst SliderTrack = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderTrack(\n { className, ...props },\n ref\n) {\n return <div ref={ref} className={cn(slider.track, className)} {...props} />;\n});\n\nconst SliderFill = forwardRef<HTMLDivElement, ComponentProps<'div'> & { type?: 'fill' | 'buffer' }>(function SliderFill(\n { type = 'fill', className, ...props },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(slider.fill.base, type === 'fill' ? slider.fill.fill : slider.fill.buffer, className)}\n {...props}\n />\n );\n});\n\nconst SliderBuffer = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderBuffer(props, ref) {\n return <SliderFill type=\"buffer\" ref={ref} {...props} />;\n});\n\nconst SliderThumb = forwardRef<HTMLDivElement, ComponentProps<'div'> & { persistent?: boolean }>(function SliderThumb(\n { persistent, className, ...props },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(slider.thumb.base, persistent ? slider.thumb.persistent : slider.thumb.interactive, className)}\n {...props}\n />\n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnsupported = usePlayer((s) => s.volumeAvailability === 'unsupported');\n\n const muteButton = (\n <MuteButton className={iconState.mute.button} render={<Button />}>\n <VolumeOffIcon className={cn(icon, iconState.mute.volumeOff)} />\n <VolumeLowIcon className={cn(icon, iconState.mute.volumeLow)} />\n <VolumeHighIcon className={cn(icon, iconState.mute.volumeHigh)} />\n </MuteButton>\n );\n\n if (volumeUnsupported) return muteButton;\n\n return (\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className={cn(popup.popover, popup.volume)}>\n <VolumeSlider.Root orientation=\"vertical\" thumbAlignment=\"edge\" render={<SliderRoot />}>\n <VolumeSlider.Track render={<SliderTrack />}>\n <VolumeSlider.Fill render={<SliderFill />} />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb render={(props) => <SliderThumb persistent {...props} />} />\n </VolumeSlider.Root>\n </Popover.Popup>\n </Popover.Root>\n );\n}\n\n/* ------------------------------------------ Skin ------------------------------------------- */\n\nexport function VideoSkinTailwind(props: VideoSkinProps): ReactNode {\n const { children, className, poster: posterProp, ...rest } = props;\n\n return (\n <Container className={cn(root(false), className)} {...rest}>\n {children}\n\n {posterProp && (\n <Poster\n src={isString(posterProp) ? posterProp : undefined}\n render={isRenderProp(posterProp) ? posterProp : undefined}\n className={poster(false)}\n />\n )}\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className={bufferingIndicator.root}>\n <div className={bufferingIndicator.container}>\n <SpinnerIcon className={icon} />\n </div>\n </div>\n )}\n />\n\n <ErrorDialog.Root>\n <ErrorDialog.Popup className={error.root}>\n <div className={error.dialog}>\n <div className={error.content}>\n <ErrorDialog.Title className={error.title}>Something went wrong.</ErrorDialog.Title>\n <ErrorDialog.Description className={error.description} />\n </div>\n <div className={error.actions}>\n <ErrorDialog.Close className={cn(button.base, button.primary)}>OK</ErrorDialog.Close>\n </div>\n </div>\n </ErrorDialog.Popup>\n </ErrorDialog.Root>\n\n <Controls.Root\n data-controls=\"\" // Used as a hook for Tailwind has-[] styles\n className={controls}\n >\n <Tooltip.Provider>\n <div className={buttonGroupStart}>\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton className={iconState.play.button} render={<Button />}>\n <RestartIcon className={cn(icon, iconState.play.restart)} />\n <PlayIcon className={cn(icon, iconState.play.play)} />\n <PauseIcon className={cn(icon, iconState.play.pause)} />\n </PlayButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton seconds={-SEEK_TIME} render={<Button />}>\n <span className={iconContainer}>\n <SeekIcon className={cn(icon, iconFlipped)} />\n <span className={cn(seek.label, seek.labelBackward)}>{SEEK_TIME}</span>\n </span>\n </SeekButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>Seek backward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton seconds={SEEK_TIME} render={<Button />}>\n <span className={iconContainer}>\n <SeekIcon className={icon} />\n <span className={cn(seek.label, seek.labelForward)}>{SEEK_TIME}</span>\n </span>\n </SeekButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>Seek forward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n </div>\n\n <div className={time.group}>\n <Time.Value type=\"current\" className={time.current} />\n <TimeSlider.Root render={<SliderRoot />}>\n <TimeSlider.Track render={<SliderTrack />}>\n <TimeSlider.Fill render={<SliderFill />} />\n <TimeSlider.Buffer render={<SliderBuffer />} />\n </TimeSlider.Track>\n <TimeSlider.Thumb render={<SliderThumb />} />\n <div className={preview.root}>\n <Slider.Thumbnail className={preview.thumbnail} />\n <TimeSlider.Value type=\"pointer\" className={preview.time} />\n <SpinnerIcon className={cn(icon, preview.spinner)} />\n </div>\n </TimeSlider.Root>\n <Time.Value type=\"duration\" className={time.duration} />\n </div>\n\n <div className={buttonGroupEnd}>\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger render={<PlaybackRateButton className={playbackRate.button} render={<Button />} />} />\n <Tooltip.Popup className={cn(popup.tooltip)}>Toggle playback rate</Tooltip.Popup>\n </Tooltip.Root>\n\n <VolumePopover />\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton className={iconState.captions.button} render={<Button />}>\n <CaptionsOffIcon className={cn(icon, iconState.captions.off)} />\n <CaptionsOnIcon className={cn(icon, iconState.captions.on)} />\n </CaptionsButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton className={iconState.pip.button} render={<Button />}>\n <PipEnterIcon className={cn(icon, iconState.pip.off)} />\n <PipExitIcon className={cn(icon, iconState.pip.on)} />\n </PiPButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton className={iconState.fullscreen.button} render={<Button />}>\n <FullscreenEnterIcon className={cn(icon, iconState.fullscreen.enter)} />\n <FullscreenExitIcon className={cn(icon, iconState.fullscreen.exit)} />\n </FullscreenButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className={overlay} />\n </Container>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"skin.tailwind.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Controls.Root","Tooltip.Provider","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Time.Value","TimeSlider.Root","TimeSlider.Track","TimeSlider.Fill","TimeSlider.Buffer","TimeSlider.Thumb","Slider.Thumbnail","TimeSlider.Value"],"sources":["../../../../src/presets/video/skin.tailwind.tsx"],"sourcesContent":["import {\n CaptionsOffIcon,\n CaptionsOnIcon,\n CastEnterIcon,\n CastExitIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipEnterIcon,\n PipExitIcon,\n PlayIcon,\n RestartIcon,\n SeekIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@videojs/icons/react';\nimport {\n bufferingIndicator,\n button,\n buttonGroupEnd,\n buttonGroupStart,\n controls,\n error,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n overlay,\n playbackRate,\n popup,\n poster,\n preview,\n root,\n seek,\n slider,\n time,\n} from '@videojs/skins/default/tailwind/video.tailwind';\nimport { isString } from '@videojs/utils/predicate';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, forwardRef, type ReactNode } from 'react';\nimport { Container, usePlayer } from '@/player/context';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { CaptionsButton } from '@/ui/captions-button';\nimport { CastButton } from '@/ui/cast-button';\nimport { Controls } from '@/ui/controls';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PiPButton } from '@/ui/pip-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { PlaybackRateButton } from '@/ui/playback-rate-button';\nimport { Popover } from '@/ui/popover';\nimport { Poster } from '@/ui/poster';\nimport { SeekButton } from '@/ui/seek-button';\nimport { Slider } from '@/ui/slider';\nimport { Time } from '@/ui/time';\nimport { TimeSlider } from '@/ui/time-slider';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport { isRenderProp } from '@/utils/use-render';\nimport type { VideoSkinProps } from './skin';\n\nconst SEEK_TIME = 10;\n\n/* --------------------------------------- Components ---------------------------------------- */\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return (\n <button ref={ref} type=\"button\" className={cn(button.base, button.subtle, button.icon, className)} {...props} />\n );\n});\n\nconst SliderRoot = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderRoot({ className, ...props }, ref) {\n return <div ref={ref} className={cn(slider.root, className)} {...props} />;\n});\n\nconst SliderTrack = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderTrack(\n { className, ...props },\n ref\n) {\n return <div ref={ref} className={cn(slider.track, className)} {...props} />;\n});\n\nconst SliderFill = forwardRef<HTMLDivElement, ComponentProps<'div'> & { type?: 'fill' | 'buffer' }>(function SliderFill(\n { type = 'fill', className, ...props },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(slider.fill.base, type === 'fill' ? slider.fill.fill : slider.fill.buffer, className)}\n {...props}\n />\n );\n});\n\nconst SliderBuffer = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderBuffer(props, ref) {\n return <SliderFill type=\"buffer\" ref={ref} {...props} />;\n});\n\nconst SliderThumb = forwardRef<HTMLDivElement, ComponentProps<'div'> & { persistent?: boolean }>(function SliderThumb(\n { persistent, className, ...props },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(slider.thumb.base, persistent ? slider.thumb.persistent : slider.thumb.interactive, className)}\n {...props}\n />\n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnsupported = usePlayer((s) => s.volumeAvailability === 'unsupported');\n\n const muteButton = (\n <MuteButton className={iconState.mute.button} render={<Button />}>\n <VolumeOffIcon className={cn(icon, iconState.mute.volumeOff)} />\n <VolumeLowIcon className={cn(icon, iconState.mute.volumeLow)} />\n <VolumeHighIcon className={cn(icon, iconState.mute.volumeHigh)} />\n </MuteButton>\n );\n\n if (volumeUnsupported) return muteButton;\n\n return (\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className={cn(popup.popover, popup.volume)}>\n <VolumeSlider.Root orientation=\"vertical\" thumbAlignment=\"edge\" render={<SliderRoot />}>\n <VolumeSlider.Track render={<SliderTrack />}>\n <VolumeSlider.Fill render={<SliderFill />} />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb render={(props) => <SliderThumb persistent {...props} />} />\n </VolumeSlider.Root>\n </Popover.Popup>\n </Popover.Root>\n );\n}\n\n/* ------------------------------------------ Skin ------------------------------------------- */\n\nexport function VideoSkinTailwind(props: VideoSkinProps): ReactNode {\n const { children, className, poster: posterProp, ...rest } = props;\n\n return (\n <Container className={cn(root(false), className)} {...rest}>\n {children}\n\n {posterProp && (\n <Poster\n src={isString(posterProp) ? posterProp : undefined}\n render={isRenderProp(posterProp) ? posterProp : undefined}\n className={poster(false)}\n />\n )}\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className={bufferingIndicator.root}>\n <div className={bufferingIndicator.container}>\n <SpinnerIcon className={icon} />\n </div>\n </div>\n )}\n />\n\n <ErrorDialog.Root>\n <ErrorDialog.Popup className={error.root}>\n <div className={error.dialog}>\n <div className={error.content}>\n <ErrorDialog.Title className={error.title}>Something went wrong.</ErrorDialog.Title>\n <ErrorDialog.Description className={error.description} />\n </div>\n <div className={error.actions}>\n <ErrorDialog.Close className={cn(button.base, button.primary)}>OK</ErrorDialog.Close>\n </div>\n </div>\n </ErrorDialog.Popup>\n </ErrorDialog.Root>\n\n <Controls.Root\n data-controls=\"\" // Used as a hook for Tailwind has-[] styles\n className={controls}\n >\n <Tooltip.Provider>\n <div className={buttonGroupStart}>\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton className={iconState.play.button} render={<Button />}>\n <RestartIcon className={cn(icon, iconState.play.restart)} />\n <PlayIcon className={cn(icon, iconState.play.play)} />\n <PauseIcon className={cn(icon, iconState.play.pause)} />\n </PlayButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton seconds={-SEEK_TIME} render={<Button />}>\n <span className={iconContainer}>\n <SeekIcon className={cn(icon, iconFlipped)} />\n <span className={cn(seek.label, seek.labelBackward)}>{SEEK_TIME}</span>\n </span>\n </SeekButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>Seek backward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton seconds={SEEK_TIME} render={<Button />}>\n <span className={iconContainer}>\n <SeekIcon className={icon} />\n <span className={cn(seek.label, seek.labelForward)}>{SEEK_TIME}</span>\n </span>\n </SeekButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>Seek forward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n </div>\n\n <div className={time.group}>\n <Time.Value type=\"current\" className={time.current} />\n <TimeSlider.Root render={<SliderRoot />}>\n <TimeSlider.Track render={<SliderTrack />}>\n <TimeSlider.Fill render={<SliderFill />} />\n <TimeSlider.Buffer render={<SliderBuffer />} />\n </TimeSlider.Track>\n <TimeSlider.Thumb render={<SliderThumb />} />\n <div className={preview.root}>\n <Slider.Thumbnail className={preview.thumbnail} />\n <TimeSlider.Value type=\"pointer\" className={preview.time} />\n <SpinnerIcon className={cn(icon, preview.spinner)} />\n </div>\n </TimeSlider.Root>\n <Time.Value type=\"duration\" className={time.duration} />\n </div>\n\n <div className={buttonGroupEnd}>\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger render={<PlaybackRateButton className={playbackRate.button} render={<Button />} />} />\n <Tooltip.Popup className={cn(popup.tooltip)}>Toggle playback rate</Tooltip.Popup>\n </Tooltip.Root>\n\n <VolumePopover />\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton className={iconState.captions.button} render={<Button />}>\n <CaptionsOffIcon className={cn(icon, iconState.captions.off)} />\n <CaptionsOnIcon className={cn(icon, iconState.captions.on)} />\n </CaptionsButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CastButton className={iconState.cast.button} render={<Button />}>\n <CastEnterIcon className={cn(icon, iconState.cast.enter)} />\n <CastExitIcon className={cn(icon, iconState.cast.exit)} />\n </CastButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton className={iconState.pip.button} render={<Button />}>\n <PipEnterIcon className={cn(icon, iconState.pip.off)} />\n <PipExitIcon className={cn(icon, iconState.pip.on)} />\n </PiPButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton className={iconState.fullscreen.button} render={<Button />}>\n <FullscreenEnterIcon className={cn(icon, iconState.fullscreen.enter)} />\n <FullscreenExitIcon className={cn(icon, iconState.fullscreen.exit)} />\n </FullscreenButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}></Tooltip.Popup>\n </Tooltip.Root>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className={overlay} />\n </Container>\n );\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
  //#region ../skins/dist/default/default/tailwind/components/button.js
3
3
  const button = {
4
- base: cn("flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "py-2 px-4 rounded-full", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out", "active:scale-[0.98]", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "focus-visible:outline-current focus-visible:outline-offset-2", "data-[availability=unavailable]:hidden"),
4
+ base: cn("flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "py-2 px-4 rounded-full", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out", "active:scale-[0.98]", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "focus-visible:outline-current focus-visible:outline-offset-2", "data-[availability=unavailable]:hidden", "data-[availability=unsupported]:hidden"),
5
5
  primary: "bg-white text-black font-medium text-shadow-none",
6
6
  subtle: cn("bg-transparent text-inherit text-shadow-inherit", "hover:bg-current/10 hover:no-underline", "focus-visible:bg-current/10", "aria-expanded:bg-current/10"),
7
7
  icon: cn("grid w-9 aspect-square p-0", "active:scale-90")
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/default/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"py-2 px-4 rounded-full\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out\", \"active:scale-[0.98]\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"data-[availability=unavailable]:hidden\"),\n\tprimary: \"bg-white text-black font-medium text-shadow-none\",\n\tsubtle: cn(\"bg-transparent text-inherit text-shadow-inherit\", \"hover:bg-current/10 hover:no-underline\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\"),\n\ticon: cn(\"grid w-9 aspect-square p-0\", \"active:scale-90\")\n};\n//#endregion\nexport { button };\n\n//# sourceMappingURL=button.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,mHAAmH,0BAA0B,mDAAmD,gGAAgG,uBAAuB,sEAAsE,gEAAgE,yCAAyC;CAC/e,SAAS;CACT,QAAQ,GAAG,mDAAmD,0CAA0C,+BAA+B,8BAA8B;CACrK,MAAM,GAAG,8BAA8B,kBAAkB;CACzD"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/default/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"py-2 px-4 rounded-full\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out\", \"active:scale-[0.98]\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"data-[availability=unavailable]:hidden\", \"data-[availability=unsupported]:hidden\"),\n\tprimary: \"bg-white text-black font-medium text-shadow-none\",\n\tsubtle: cn(\"bg-transparent text-inherit text-shadow-inherit\", \"hover:bg-current/10 hover:no-underline\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\"),\n\ticon: cn(\"grid w-9 aspect-square p-0\", \"active:scale-90\")\n};\n//#endregion\nexport { button };\n\n//# sourceMappingURL=button.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,mHAAmH,0BAA0B,mDAAmD,gGAAgG,uBAAuB,sEAAsE,gEAAgE,0CAA0C,yCAAyC;CACzhB,SAAS;CACT,QAAQ,GAAG,mDAAmD,0CAA0C,+BAA+B,8BAA8B;CACrK,MAAM,GAAG,8BAA8B,kBAAkB;CACzD"}
@@ -1,7 +1,7 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
  //#region ../skins/dist/default/minimal/tailwind/components/button.js
3
3
  const button = {
4
- base: cn("flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "py-2 px-4 rounded-lg", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out", "focus-visible:outline-current focus-visible:outline-offset-2", "active:scale-[0.98]", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "supports-[corner-shape:squircle]:rounded-[1rem]", "supports-[corner-shape:squircle]:[corner-shape:squircle]", "data-[availability=unavailable]:hidden"),
4
+ base: cn("flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "py-2 px-4 rounded-lg", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out", "focus-visible:outline-current focus-visible:outline-offset-2", "active:scale-[0.98]", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "supports-[corner-shape:squircle]:rounded-[1rem]", "supports-[corner-shape:squircle]:[corner-shape:squircle]", "data-[availability=unavailable]:hidden", "data-[availability=unsupported]:hidden"),
5
5
  primary: "bg-white text-black font-medium text-shadow-none",
6
6
  subtle: cn("bg-transparent text-inherit text-shadow-inherit", "hover:bg-current/10", "focus-visible:bg-current/10", "aria-expanded:bg-current/10"),
7
7
  icon: cn("grid w-[2.375rem] aspect-square p-0", "active:scale-90")
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"py-2 px-4 rounded-lg\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"active:scale-[0.98]\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"supports-[corner-shape:squircle]:rounded-[1rem]\", \"supports-[corner-shape:squircle]:[corner-shape:squircle]\", \"data-[availability=unavailable]:hidden\"),\n\tprimary: \"bg-white text-black font-medium text-shadow-none\",\n\tsubtle: cn(\"bg-transparent text-inherit text-shadow-inherit\", \"hover:bg-current/10\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\"),\n\ticon: cn(\"grid w-[2.375rem] aspect-square p-0\", \"active:scale-90\")\n};\n//#endregion\nexport { button };\n\n//# sourceMappingURL=button.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,mHAAmH,wBAAwB,mDAAmD,gGAAgG,gEAAgE,uBAAuB,sEAAsE,mDAAmD,4DAA4D,yCAAyC;CAC5lB,SAAS;CACT,QAAQ,GAAG,mDAAmD,uBAAuB,+BAA+B,8BAA8B;CAClJ,MAAM,GAAG,uCAAuC,kBAAkB;CAClE"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"py-2 px-4 rounded-lg\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"active:scale-[0.98]\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"supports-[corner-shape:squircle]:rounded-[1rem]\", \"supports-[corner-shape:squircle]:[corner-shape:squircle]\", \"data-[availability=unavailable]:hidden\", \"data-[availability=unsupported]:hidden\"),\n\tprimary: \"bg-white text-black font-medium text-shadow-none\",\n\tsubtle: cn(\"bg-transparent text-inherit text-shadow-inherit\", \"hover:bg-current/10\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\"),\n\ticon: cn(\"grid w-[2.375rem] aspect-square p-0\", \"active:scale-90\")\n};\n//#endregion\nexport { button };\n\n//# sourceMappingURL=button.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,mHAAmH,wBAAwB,mDAAmD,gGAAgG,gEAAgE,uBAAuB,sEAAsE,mDAAmD,4DAA4D,0CAA0C,yCAAyC;CACtoB,SAAS;CACT,QAAQ,GAAG,mDAAmD,uBAAuB,+BAA+B,8BAA8B;CAClJ,MAAM,GAAG,uCAAuC,kBAAkB;CAClE"}
@@ -26,6 +26,11 @@ const iconState = {
26
26
  button: "group",
27
27
  off: "hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100",
28
28
  on: "hidden opacity-0 group-data-pip:block group-data-pip:opacity-100"
29
+ },
30
+ cast: {
31
+ button: "group",
32
+ enter: "hidden opacity-0 group-not-data-[cast-state=connected]:block group-not-data-[cast-state=connected]:opacity-100",
33
+ exit: "hidden opacity-0 group-data-[cast-state=connected]:block group-data-[cast-state=connected]:opacity-100"
29
34
  }
30
35
  };
31
36
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/icon-state.js"],"sourcesContent":["//#region src/shared/tailwind/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\tpip: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-pip:block group-data-pip:opacity-100\"\n\t}\n};\n//#endregion\nexport { iconState };\n\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,KAAK;EACJ,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD"}
1
+ {"version":3,"file":"icon-state.js","names":[],"sources":["../../../../../../../../skins/dist/default/shared/tailwind/icon-state.js"],"sourcesContent":["//#region src/shared/tailwind/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\tpip: {\n\t\tbutton: \"group\",\n\t\toff: \"hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100\",\n\t\ton: \"hidden opacity-0 group-data-pip:block group-data-pip:opacity-100\"\n\t},\n\tcast: {\n\t\tbutton: \"group\",\n\t\tenter: \"hidden opacity-0 group-not-data-[cast-state=connected]:block group-not-data-[cast-state=connected]:opacity-100\",\n\t\texit: \"hidden opacity-0 group-data-[cast-state=connected]:block group-data-[cast-state=connected]:opacity-100\"\n\t}\n};\n//#endregion\nexport { iconState };\n\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,KAAK;EACJ,QAAQ;EACR,KAAK;EACL,IAAI;EACJ;CACD,MAAM;EACL,QAAQ;EACR,OAAO;EACP,MAAM;EACN;CACD"}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { createMediaButton } from "../create-media-button.js";
3
+ import { selectRemotePlayback } from "@videojs/core/dom";
4
+ import { CastButtonCore, CastButtonDataAttrs } from "@videojs/core";
5
+ //#region src/ui/cast-button/cast-button.tsx
6
+ /** A button that toggles casting to a remote device. */
7
+ const CastButton = createMediaButton({
8
+ displayName: "CastButton",
9
+ core: CastButtonCore,
10
+ stateAttrMap: CastButtonDataAttrs,
11
+ selector: selectRemotePlayback,
12
+ action: (core, state) => core.toggle(state)
13
+ });
14
+ //#endregion
15
+ export { CastButton };
16
+
17
+ //# sourceMappingURL=cast-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-button.js","names":[],"sources":["../../../../src/ui/cast-button/cast-button.tsx"],"sourcesContent":["'use client';\n\nimport { CastButtonCore, CastButtonDataAttrs } from '@videojs/core';\nimport { selectRemotePlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CastButtonProps extends UIComponentProps<'button', CastButtonCore.State>, CastButtonCore.Props {}\n\n/** A button that toggles casting to a remote device. */\nexport const CastButton = createMediaButton<CastButtonCore, CastButtonProps>({\n displayName: 'CastButton',\n core: CastButtonCore,\n stateAttrMap: CastButtonDataAttrs,\n selector: selectRemotePlayback,\n action: (core, state) => core.toggle(state),\n});\n\nexport namespace CastButton {\n export type Props = CastButtonProps;\n export type State = CastButtonCore.State;\n}\n"],"mappings":";;;;;;AAWA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,MAAM;CAC5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { CastButton } from "./cast-button.js";
2
+ export { CastButton };
@@ -2,8 +2,8 @@
2
2
  import { useContainer, usePlayer } from "../../player/context.js";
3
3
  import { createDoubleTapGesture, createTapGesture, resolveGestureAction } from "@videojs/core/dom";
4
4
  import { useEffect } from "react";
5
- //#region src/ui/gesture/media-gesture.tsx
6
- function MediaGesture({ type, action, value, pointer, region, disabled }) {
5
+ //#region src/ui/gesture/gesture.tsx
6
+ function Gesture({ type, action, value, pointer, region, disabled }) {
7
7
  const store = usePlayer();
8
8
  const container = useContainer();
9
9
  useEffect(() => {
@@ -36,7 +36,9 @@ function MediaGesture({ type, action, value, pointer, region, disabled }) {
36
36
  ]);
37
37
  return null;
38
38
  }
39
+ /** @deprecated Use `Gesture` instead. */
40
+ const MediaGesture = Gesture;
39
41
  //#endregion
40
- export { MediaGesture };
42
+ export { Gesture, MediaGesture };
41
43
 
42
- //# sourceMappingURL=media-gesture.js.map
44
+ //# sourceMappingURL=gesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gesture.js","names":[],"sources":["../../../../src/ui/gesture/gesture.tsx"],"sourcesContent":["'use client';\n\nimport {\n type AnyPlayerStore,\n createDoubleTapGesture,\n createTapGesture,\n type GestureActionName,\n type GesturePointerType,\n type GestureRegion,\n resolveGestureAction,\n} from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface GestureProps {\n type: 'tap' | 'doubletap' | (string & {});\n action: GestureActionName | (string & {});\n value?: number;\n pointer?: GesturePointerType;\n region?: GestureRegion;\n disabled?: boolean;\n}\n\nexport function Gesture({ type, action, value, pointer, region, disabled }: GestureProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !type || !action || disabled) return;\n\n const resolver = resolveGestureAction(action);\n if (!resolver) return;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = { pointer, region, action };\n\n if (type === 'doubletap') {\n return createDoubleTapGesture(container, onActivate, options);\n }\n\n return createTapGesture(container, onActivate, options);\n }, [container, store, type, action, value, pointer, region, disabled]);\n\n return null;\n}\n\nexport namespace Gesture {\n export type Props = GestureProps;\n}\n\n/** @deprecated Use `GestureProps` instead. */\nexport type MediaGestureProps = GestureProps;\n\n/** @deprecated Use `Gesture` instead. */\nexport const MediaGesture = Gesture;\n"],"mappings":";;;;;AAyBA,SAAgB,QAAQ,EAAE,MAAM,QAAQ,OAAO,SAAS,QAAQ,YAAqC;CACnG,MAAM,QAAQ,WAAW;CACzB,MAAM,YAAY,cAAc;AAEhC,iBAAgB;AACd,MAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,SAAU;EAEhD,MAAM,WAAW,qBAAqB,OAAO;AAC7C,MAAI,CAAC,SAAU;EAEf,MAAM,cAAc,UAAwB;AAC1C,YAAS;IAAE;IAAO;IAAO;IAAO,CAAC;;EAGnC,MAAM,UAAU;GAAE;GAAS;GAAQ;GAAQ;AAE3C,MAAI,SAAS,YACX,QAAO,uBAAuB,WAAW,YAAY,QAAQ;AAG/D,SAAO,iBAAiB,WAAW,YAAY,QAAQ;IACtD;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAS;EAAQ;EAAS,CAAC;AAEtE,QAAO;;;AAWT,MAAa,eAAe"}
@@ -2,8 +2,8 @@
2
2
  import { useContainer, usePlayer } from "../../player/context.js";
3
3
  import { createHotkey, isHotkeyToggleAction, resolveHotkeyAction } from "@videojs/core/dom";
4
4
  import { useEffect } from "react";
5
- //#region src/ui/hotkey/media-hotkey.tsx
6
- function MediaHotkey({ keys, action, value, disabled, target }) {
5
+ //#region src/ui/hotkey/hotkey.tsx
6
+ function Hotkey({ keys, action, value, disabled, target }) {
7
7
  const store = usePlayer();
8
8
  const container = useContainer();
9
9
  useEffect(() => {
@@ -35,7 +35,9 @@ function MediaHotkey({ keys, action, value, disabled, target }) {
35
35
  ]);
36
36
  return null;
37
37
  }
38
+ /** @deprecated Use `Hotkey` instead. */
39
+ const MediaHotkey = Hotkey;
38
40
  //#endregion
39
- export { MediaHotkey };
41
+ export { Hotkey, MediaHotkey };
40
42
 
41
- //# sourceMappingURL=media-hotkey.js.map
43
+ //# sourceMappingURL=hotkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkey.js","names":[],"sources":["../../../../src/ui/hotkey/hotkey.tsx"],"sourcesContent":["'use client';\n\nimport {\n type AnyPlayerStore,\n createHotkey,\n type HotkeyActionName,\n isHotkeyToggleAction,\n resolveHotkeyAction,\n} from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface HotkeyProps {\n keys: string;\n action: HotkeyActionName | (string & {});\n value?: number;\n disabled?: boolean;\n target?: 'player' | 'document';\n}\n\nexport function Hotkey({ keys, action, value, disabled, target }: HotkeyProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !keys || !action || disabled) return;\n\n const resolver = resolveHotkeyAction(action);\n if (!resolver) return;\n\n return createHotkey(container, {\n keys,\n action,\n target,\n disabled,\n repeatable: !isHotkeyToggleAction(action),\n onActivate: (_event, key) => {\n resolver({ store, key, value });\n },\n });\n }, [container, store, keys, action, value, disabled, target]);\n\n return null;\n}\n\nexport namespace Hotkey {\n export type Props = HotkeyProps;\n}\n\n/** @deprecated Use `HotkeyProps` instead. */\nexport type MediaHotkeyProps = HotkeyProps;\n\n/** @deprecated Use `Hotkey` instead. */\nexport const MediaHotkey = Hotkey;\n"],"mappings":";;;;;AAsBA,SAAgB,OAAO,EAAE,MAAM,QAAQ,OAAO,UAAU,UAAkC;CACxF,MAAM,QAAQ,WAAW;CACzB,MAAM,YAAY,cAAc;AAEhC,iBAAgB;AACd,MAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,SAAU;EAEhD,MAAM,WAAW,oBAAoB,OAAO;AAC5C,MAAI,CAAC,SAAU;AAEf,SAAO,aAAa,WAAW;GAC7B;GACA;GACA;GACA;GACA,YAAY,CAAC,qBAAqB,OAAO;GACzC,aAAa,QAAQ,QAAQ;AAC3B,aAAS;KAAE;KAAO;KAAK;KAAO,CAAC;;GAElC,CAAC;IACD;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAU;EAAO,CAAC;AAE7D,QAAO;;;AAWT,MAAa,cAAc"}
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { useCallback } from "react";
3
+ //#region src/utils/use-attach-media.ts
4
+ function useAttachMedia(media) {
5
+ return useCallback((element) => {
6
+ if (element) media.attach?.(element);
7
+ else media.detach?.();
8
+ return () => media.detach?.();
9
+ }, [media]);
10
+ }
11
+ //#endregion
12
+ export { useAttachMedia };
13
+
14
+ //# sourceMappingURL=use-attach-media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-attach-media.js","names":[],"sources":["../../../src/utils/use-attach-media.ts"],"sourcesContent":["'use client';\n\nimport type { MediaEngineHost } from '@videojs/core';\nimport type { RefCallback } from 'react';\nimport { useCallback } from 'react';\n\nexport function useAttachMedia<T extends HTMLMediaElement>(media: MediaEngineHost): RefCallback<T> {\n return useCallback(\n (element: T | null) => {\n if (element) media.attach?.(element);\n else media.detach?.();\n return () => media.detach?.();\n },\n [media]\n );\n}\n"],"mappings":";;;AAMA,SAAgB,eAA2C,OAAwC;AACjG,QAAO,aACJ,YAAsB;AACrB,MAAI,QAAS,OAAM,SAAS,QAAQ;MAC/B,OAAM,UAAU;AACrB,eAAa,MAAM,UAAU;IAE/B,CAAC,MAAM,CACR"}
@@ -0,0 +1,14 @@
1
+ import { isUndefined } from "@videojs/utils/predicate";
2
+ //#region src/utils/use-sync-props.ts
3
+ function useSyncProps(target, props, defaults) {
4
+ const rest = {};
5
+ for (const key in props) if (key in defaults) {
6
+ const value = isUndefined(props[key]) ? defaults[key] : props[key];
7
+ if (target[key] !== value) target[key] = value;
8
+ } else rest[key] = props[key];
9
+ return rest;
10
+ }
11
+ //#endregion
12
+ export { useSyncProps };
13
+
14
+ //# sourceMappingURL=use-sync-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sync-props.js","names":[],"sources":["../../../src/utils/use-sync-props.ts"],"sourcesContent":["import { isUndefined } from '@videojs/utils/predicate';\n\nexport function useSyncProps<Props extends object, Rest extends Record<string, unknown>>(\n target: Props,\n props: Partial<Props> & Rest,\n defaults: Props\n): Omit<Rest, keyof Props> {\n const rest: Record<string, unknown> = {};\n\n for (const key in props) {\n if (key in defaults) {\n const value = isUndefined(props[key]) ? (defaults as Record<string, unknown>)[key] : props[key];\n if (target[key as keyof typeof target] !== value) target[key as keyof typeof target] = value as any;\n } else {\n rest[key] = props[key];\n }\n }\n\n return rest as Omit<Rest, keyof Props>;\n}\n"],"mappings":";;AAEA,SAAgB,aACd,QACA,OACA,UACyB;CACzB,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,OAAO,MAChB,KAAI,OAAO,UAAU;EACnB,MAAM,QAAQ,YAAY,MAAM,KAAK,GAAI,SAAqC,OAAO,MAAM;AAC3F,MAAI,OAAO,SAAgC,MAAO,QAAO,OAA8B;OAEvF,MAAK,OAAO,MAAM;AAItB,QAAO"}
@@ -0,0 +1,32 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ //#region ../icons/dist/react/default/cast-enter.js
3
+ const CastEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", {
4
+ xmlns: "http://www.w3.org/2000/svg",
5
+ width: 18,
6
+ height: 18,
7
+ fill: "none",
8
+ "aria-hidden": "true",
9
+ ...props,
10
+ children: [
11
+ /* @__PURE__ */ jsx("path", {
12
+ fill: "currentColor",
13
+ d: "M.75 13.25c1.38 0 2.5 1.085 2.5 2.5V16H.5v-2.75z"
14
+ }),
15
+ /* @__PURE__ */ jsx("path", {
16
+ fill: "currentColor",
17
+ d: "M.75 10.25c3.04 0 5.5 2.46 5.5 5.5V16h-2v-.25c0-1.96-1.567-3.5-3.5-3.5H.5v-2z"
18
+ }),
19
+ /* @__PURE__ */ jsx("path", {
20
+ fill: "currentColor",
21
+ d: "M.75 7.25a8.5 8.5 0 0 1 8.5 8.5V16h-2v-.25c0-3.611-2.91-6.5-6.5-6.5H.5v-2z"
22
+ }),
23
+ /* @__PURE__ */ jsx("path", {
24
+ fill: "currentColor",
25
+ d: "M17.5 14.25c0 .963-.787 1.75-1.75 1.75h-5.5v-2h5.25V4h-13v2.25h-2v-2.5C.5 2.787 1.287 2 2.25 2h13.5c.963 0 1.75.787 1.75 1.75z"
26
+ })
27
+ ]
28
+ });
29
+ //#endregion
30
+ export { CastEnterIcon as default };
31
+
32
+ //# sourceMappingURL=cast-enter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/default/cast-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CastEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 13.25c1.38 0 2.5 1.085 2.5 2.5V16H.5v-2.75z\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 10.25c3.04 0 5.5 2.46 5.5 5.5V16h-2v-.25c0-1.96-1.567-3.5-3.5-3.5H.5v-2z\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 7.25a8.5 8.5 0 0 1 8.5 8.5V16h-2v-.25c0-3.611-2.91-6.5-6.5-6.5H.5v-2z\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M17.5 14.25c0 .963-.787 1.75-1.75 1.75h-5.5v-2h5.25V4h-13v2.25h-2v-2.5C.5 2.787 1.287 2 2.25 2h13.5c.963 0 1.75.787 1.75 1.75z\" })\n] });\nexport default CastEnterIcon;\n"],"mappings":";;AACA,MAAM,iBAAiB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,GAAG;CAAO,UAAU;EAClK,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAoD,CAAC;EAC5F,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAiF,CAAC;EACzH,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAA8E,CAAC;EACtH,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAkI,CAAC;EAC3L;CAAE,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ //#region ../icons/dist/react/default/cast-exit.js
3
+ const CastExitIcon = (props) => /* @__PURE__ */ jsxs("svg", {
4
+ xmlns: "http://www.w3.org/2000/svg",
5
+ width: 18,
6
+ height: 18,
7
+ fill: "none",
8
+ "aria-hidden": "true",
9
+ ...props,
10
+ children: [
11
+ /* @__PURE__ */ jsx("path", {
12
+ fill: "currentColor",
13
+ d: "M.75 13.25c1.38 0 2.5 1.085 2.5 2.5V16H.5v-2.75z"
14
+ }),
15
+ /* @__PURE__ */ jsx("path", {
16
+ fill: "currentColor",
17
+ d: "M.75 10.25c3.04 0 5.5 2.46 5.5 5.5V16h-2v-.25c0-1.96-1.567-3.5-3.5-3.5H.5v-2z"
18
+ }),
19
+ /* @__PURE__ */ jsx("path", {
20
+ fill: "currentColor",
21
+ d: "M.75 7.25a8.5 8.5 0 0 1 8.5 8.5V16h-2v-.25c0-3.611-2.91-6.5-6.5-6.5H.5v-2z"
22
+ }),
23
+ /* @__PURE__ */ jsx("path", {
24
+ fill: "currentColor",
25
+ d: "M17.5 14.25c0 .963-.787 1.75-1.75 1.75h-5.5v-2h5.25V4h-13v2.25h-2v-2.5C.5 2.787 1.287 2 2.25 2h13.5c.963 0 1.75.787 1.75 1.75z"
26
+ }),
27
+ /* @__PURE__ */ jsx("path", {
28
+ fill: "currentColor",
29
+ d: "M4 5.5v1.164c2.143-.021 5.979 3.836 5.979 5.979H14V5.5z"
30
+ })
31
+ ]
32
+ });
33
+ //#endregion
34
+ export { CastExitIcon as default };
35
+
36
+ //# sourceMappingURL=cast-exit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/default/cast-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CastExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 13.25c1.38 0 2.5 1.085 2.5 2.5V16H.5v-2.75z\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 10.25c3.04 0 5.5 2.46 5.5 5.5V16h-2v-.25c0-1.96-1.567-3.5-3.5-3.5H.5v-2z\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 7.25a8.5 8.5 0 0 1 8.5 8.5V16h-2v-.25c0-3.611-2.91-6.5-6.5-6.5H.5v-2z\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M17.5 14.25c0 .963-.787 1.75-1.75 1.75h-5.5v-2h5.25V4h-13v2.25h-2v-2.5C.5 2.787 1.287 2 2.25 2h13.5c.963 0 1.75.787 1.75 1.75z\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M4 5.5v1.164c2.143-.021 5.979 3.836 5.979 5.979H14V5.5z\" })\n] });\nexport default CastExitIcon;\n"],"mappings":";;AACA,MAAM,gBAAgB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,GAAG;CAAO,UAAU;EACjK,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAoD,CAAC;EAC5F,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAiF,CAAC;EACzH,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAA8E,CAAC;EACtH,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAkI,CAAC;EAC1K,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAA2D,CAAC;EACpH;CAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ //#region ../icons/dist/react/minimal/cast-enter.js
3
+ const CastEnterIcon = (props) => /* @__PURE__ */ jsxs("svg", {
4
+ xmlns: "http://www.w3.org/2000/svg",
5
+ width: 18,
6
+ height: 18,
7
+ fill: "none",
8
+ "aria-hidden": "true",
9
+ ...props,
10
+ children: [
11
+ /* @__PURE__ */ jsx("path", {
12
+ fill: "currentColor",
13
+ d: "M.75 13.5v2.25H3A2.23 2.23 0 0 0 .75 13.5m0-3V12c2.07 0 3.75 1.65 3.75 3.75H6A5.246 5.246 0 0 0 .75 10.5"
14
+ }),
15
+ /* @__PURE__ */ jsx("path", {
16
+ fill: "currentColor",
17
+ d: "M.75 7.5V9c3.728 0 6.75 3 6.75 6.75H9A8.25 8.25 0 0 0 .75 7.5"
18
+ }),
19
+ /* @__PURE__ */ jsx("path", {
20
+ fill: "currentColor",
21
+ d: "M15.75 2.25H2.25c-.825 0-1.5.675-1.5 1.5V6h1.5V3.75h13.5v10.5H10.5v1.5h5.25c.825 0 1.5-.675 1.5-1.5V3.75c0-.825-.675-1.5-1.5-1.5"
22
+ })
23
+ ]
24
+ });
25
+ //#endregion
26
+ export { CastEnterIcon as default };
27
+
28
+ //# sourceMappingURL=cast-enter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-enter.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/cast-enter.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CastEnterIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 13.5v2.25H3A2.23 2.23 0 0 0 .75 13.5m0-3V12c2.07 0 3.75 1.65 3.75 3.75H6A5.246 5.246 0 0 0 .75 10.5\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 7.5V9c3.728 0 6.75 3 6.75 6.75H9A8.25 8.25 0 0 0 .75 7.5\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M15.75 2.25H2.25c-.825 0-1.5.675-1.5 1.5V6h1.5V3.75h13.5v10.5H10.5v1.5h5.25c.825 0 1.5-.675 1.5-1.5V3.75c0-.825-.675-1.5-1.5-1.5\" })\n] });\nexport default CastEnterIcon;\n"],"mappings":";;AACA,MAAM,iBAAiB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,GAAG;CAAO,UAAU;EAClK,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAA4G,CAAC;EACpJ,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAiE,CAAC;EACzG,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAoI,CAAC;EAC7L;CAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ //#region ../icons/dist/react/minimal/cast-exit.js
3
+ const CastExitIcon = (props) => /* @__PURE__ */ jsxs("svg", {
4
+ xmlns: "http://www.w3.org/2000/svg",
5
+ width: 18,
6
+ height: 18,
7
+ fill: "none",
8
+ "aria-hidden": "true",
9
+ ...props,
10
+ children: [
11
+ /* @__PURE__ */ jsx("path", {
12
+ fill: "currentColor",
13
+ d: "M.75 13.5v2.25H3A2.23 2.23 0 0 0 .75 13.5m0-3V12c2.07 0 3.75 1.65 3.75 3.75H6A5.246 5.246 0 0 0 .75 10.5"
14
+ }),
15
+ /* @__PURE__ */ jsx("path", {
16
+ fill: "currentColor",
17
+ d: "M.75 7.5V9c3.728 0 6.75 3 6.75 6.75H9A8.25 8.25 0 0 0 .75 7.5"
18
+ }),
19
+ /* @__PURE__ */ jsx("path", {
20
+ fill: "currentColor",
21
+ d: "M15.75 2.25H2.25c-.825 0-1.5.675-1.5 1.5V6h1.5V3.75h13.5v10.5H10.5v1.5h5.25c.825 0 1.5-.675 1.5-1.5V3.75c0-.825-.675-1.5-1.5-1.5"
22
+ }),
23
+ /* @__PURE__ */ jsx("path", {
24
+ fill: "currentColor",
25
+ d: "M3.75 5.25v1.223C6 6.45 10.028 10.5 10.028 12.75h4.222v-7.5z"
26
+ })
27
+ ]
28
+ });
29
+ //#endregion
30
+ export { CastExitIcon as default };
31
+
32
+ //# sourceMappingURL=cast-exit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/cast-exit.js"],"sourcesContent":["import { jsx, jsxs } from \"react/jsx-runtime\";\nconst CastExitIcon = (props) => /* @__PURE__ */ jsxs(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 18, height: 18, fill: \"none\", \"aria-hidden\": \"true\", ...props, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 13.5v2.25H3A2.23 2.23 0 0 0 .75 13.5m0-3V12c2.07 0 3.75 1.65 3.75 3.75H6A5.246 5.246 0 0 0 .75 10.5\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M.75 7.5V9c3.728 0 6.75 3 6.75 6.75H9A8.25 8.25 0 0 0 .75 7.5\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M15.75 2.25H2.25c-.825 0-1.5.675-1.5 1.5V6h1.5V3.75h13.5v10.5H10.5v1.5h5.25c.825 0 1.5-.675 1.5-1.5V3.75c0-.825-.675-1.5-1.5-1.5\" }),\n /* @__PURE__ */ jsx(\"path\", { fill: \"currentColor\", d: \"M3.75 5.25v1.223C6 6.45 10.028 10.5 10.028 12.75h4.222v-7.5z\" })\n] });\nexport default CastExitIcon;\n"],"mappings":";;AACA,MAAM,gBAAgB,UAA0B,qBAAK,OAAO;CAAE,OAAO;CAA8B,OAAO;CAAI,QAAQ;CAAI,MAAM;CAAQ,eAAe;CAAQ,GAAG;CAAO,UAAU;EACjK,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAA4G,CAAC;EACpJ,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAiE,CAAC;EACzG,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAoI,CAAC;EAC5K,oBAAI,QAAQ;GAAE,MAAM;GAAgB,GAAG;GAAgE,CAAC;EACzH;CAAE,CAAC"}
@@ -5,18 +5,19 @@ import { HTMLProps, RenderFunction, RenderProp, UIComponentProps } from "./utils
5
5
  import { index_parts_d_exports } from "./ui/alert-dialog/index.parts.js";
6
6
  import { BufferingIndicator, BufferingIndicatorProps } from "./ui/buffering-indicator/buffering-indicator.js";
7
7
  import { CaptionsButton, CaptionsButtonProps } from "./ui/captions-button/captions-button.js";
8
+ import { CastButton, CastButtonProps } from "./ui/cast-button/cast-button.js";
8
9
  import { ControlsGroupProps } from "./ui/controls/controls-group.js";
9
10
  import { ControlsRootProps } from "./ui/controls/controls-root.js";
10
11
  import { index_parts_d_exports as index_parts_d_exports$1 } from "./ui/controls/index.parts.js";
11
12
  import { ErrorDialogContextValue, useErrorDialogContext } from "./ui/error-dialog/context.js";
12
13
  import { index_parts_d_exports as index_parts_d_exports$2 } from "./ui/error-dialog/index.parts.js";
13
14
  import { FullscreenButton, FullscreenButtonProps } from "./ui/fullscreen-button/fullscreen-button.js";
14
- import { MediaGesture, MediaGestureProps } from "./ui/gesture/media-gesture.js";
15
+ import { Gesture, GestureProps, MediaGesture, MediaGestureProps } from "./ui/gesture/gesture.js";
15
16
  import { UseDoubleTapGestureOptions, useDoubleTapGesture } from "./ui/gesture/use-doubletap-gesture.js";
16
17
  import { UseTapGestureOptions, useTapGesture } from "./ui/gesture/use-tap-gesture.js";
17
18
  import { useButton } from "./ui/hooks/use-button.js";
18
19
  import { useSlider } from "./ui/hooks/use-slider.js";
19
- import { MediaHotkey, MediaHotkeyProps } from "./ui/hotkey/media-hotkey.js";
20
+ import { Hotkey, HotkeyProps, MediaHotkey, MediaHotkeyProps } from "./ui/hotkey/hotkey.js";
20
21
  import { useAriaKeyShortcuts } from "./ui/hotkey/use-aria-key-shortcuts.js";
21
22
  import { UseHotkeyOptions, useHotkey } from "./ui/hotkey/use-hotkey.js";
22
23
  import { MuteButton, MuteButtonProps } from "./ui/mute-button/mute-button.js";
@@ -41,9 +42,8 @@ import { index_parts_d_exports as index_parts_d_exports$6 } from "./ui/time-slid
41
42
  import { TooltipContextValue, useTooltipContext } from "./ui/tooltip/context.js";
42
43
  import { index_parts_d_exports as index_parts_d_exports$7 } from "./ui/tooltip/index.parts.js";
43
44
  import { index_parts_d_exports as index_parts_d_exports$8 } from "./ui/volume-slider/index.parts.js";
44
- import { attachMediaElement } from "./utils/attach-media-element.js";
45
- import { mediaProps } from "./utils/media-props.js";
46
45
  import { mergeProps } from "./utils/merge-props.js";
46
+ import { useAttachMedia } from "./utils/use-attach-media.js";
47
47
  import { composeRefs, useComposedRefs } from "./utils/use-composed-refs.js";
48
48
  import { useDestroy } from "./utils/use-destroy.js";
49
49
  import { useLatestRef } from "./utils/use-latest-ref.js";
@@ -52,4 +52,4 @@ import { renderElement } from "./utils/use-render.js";
52
52
  import { Comparator, Selector, createSelector, shallowEqual } from "@videojs/store";
53
53
  import { useSelector, useStore } from "@videojs/store/react";
54
54
  export * from "@videojs/core/dom";
55
- export { index_parts_d_exports as AlertDialog, type AlertDialogContextValue, BufferingIndicator, type BufferingIndicatorProps, CaptionsButton, type CaptionsButtonProps, type Comparator, Container, type ContainerProps, index_parts_d_exports$1 as Controls, type ControlsGroupProps, type ControlsRootProps, type CreatePlayerConfig, type CreatePlayerResult, index_parts_d_exports$2 as ErrorDialog, type ErrorDialogContextValue, FullscreenButton, type FullscreenButtonProps, type HTMLProps, MediaGesture, type MediaGestureProps, MediaHotkey, type MediaHotkeyProps, MuteButton, type MuteButtonProps, PiPButton, type PiPButtonProps, PlayButton, type PlayButtonProps, PlaybackRateButton, type PlaybackRateButtonProps, type PlayerContextValue, index_parts_d_exports$3 as Popover, type PopoverContextValue, Poster, type PosterProps, type ProviderProps, type RenderFunction, type RenderProp, SeekButton, type SeekButtonProps, type Selector, index_parts_d_exports$4 as Slider, type SliderBufferProps, type SliderFillProps, type SliderRootProps, type SliderThumbProps, type SliderThumbnailProps, type SliderTrackProps, type SliderValueProps, Thumbnail, type ThumbnailProps, index_parts_d_exports$5 as Time, index_parts_d_exports$6 as TimeSlider, index_parts_d_exports$7 as Tooltip, type TooltipContextValue, type UIComponentProps, type UseDoubleTapGestureOptions, type UseHotkeyOptions, type UseTapGestureOptions, index_parts_d_exports$8 as VolumeSlider, attachMediaElement, composeRefs, createPlayer, createSelector, mediaProps, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useAriaKeyShortcuts, useButton, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useLatestRef, useMedia, useMediaAttach, useMediaInstance, useOptionalPlayer, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTapGesture, useTooltipContext };
55
+ export { index_parts_d_exports as AlertDialog, type AlertDialogContextValue, BufferingIndicator, type BufferingIndicatorProps, CaptionsButton, type CaptionsButtonProps, CastButton, type CastButtonProps, type Comparator, Container, type ContainerProps, index_parts_d_exports$1 as Controls, type ControlsGroupProps, type ControlsRootProps, type CreatePlayerConfig, type CreatePlayerResult, index_parts_d_exports$2 as ErrorDialog, type ErrorDialogContextValue, FullscreenButton, type FullscreenButtonProps, Gesture, type GestureProps, type HTMLProps, Hotkey, type HotkeyProps, MediaGesture, type MediaGestureProps, MediaHotkey, type MediaHotkeyProps, MuteButton, type MuteButtonProps, PiPButton, type PiPButtonProps, PlayButton, type PlayButtonProps, PlaybackRateButton, type PlaybackRateButtonProps, type PlayerContextValue, index_parts_d_exports$3 as Popover, type PopoverContextValue, Poster, type PosterProps, type ProviderProps, type RenderFunction, type RenderProp, SeekButton, type SeekButtonProps, type Selector, index_parts_d_exports$4 as Slider, type SliderBufferProps, type SliderFillProps, type SliderRootProps, type SliderThumbProps, type SliderThumbnailProps, type SliderTrackProps, type SliderValueProps, Thumbnail, type ThumbnailProps, index_parts_d_exports$5 as Time, index_parts_d_exports$6 as TimeSlider, index_parts_d_exports$7 as Tooltip, type TooltipContextValue, type UIComponentProps, type UseDoubleTapGestureOptions, type UseHotkeyOptions, type UseTapGestureOptions, index_parts_d_exports$8 as VolumeSlider, composeRefs, createPlayer, createSelector, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useAriaKeyShortcuts, useAttachMedia, useButton, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useLatestRef, useMedia, useMediaAttach, useMediaInstance, useOptionalPlayer, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTapGesture, useTooltipContext };
package/dist/dev/index.js CHANGED
@@ -13,15 +13,16 @@ import { useButton } from "./ui/hooks/use-button.js";
13
13
  import { useAriaKeyShortcuts } from "./ui/hotkey/use-aria-key-shortcuts.js";
14
14
  import { useTooltipContext } from "./ui/tooltip/context.js";
15
15
  import { CaptionsButton } from "./ui/captions-button/captions-button.js";
16
+ import { CastButton } from "./ui/cast-button/cast-button.js";
16
17
  import { index_parts_exports as index_parts_exports$1 } from "./ui/controls/index.parts.js";
17
18
  import { useErrorDialogContext } from "./ui/error-dialog/context.js";
18
19
  import { index_parts_exports as index_parts_exports$2 } from "./ui/error-dialog/index.parts.js";
19
20
  import { FullscreenButton } from "./ui/fullscreen-button/fullscreen-button.js";
20
- import { MediaGesture } from "./ui/gesture/media-gesture.js";
21
+ import { Gesture, MediaGesture } from "./ui/gesture/gesture.js";
21
22
  import { useDoubleTapGesture } from "./ui/gesture/use-doubletap-gesture.js";
22
23
  import { useTapGesture } from "./ui/gesture/use-tap-gesture.js";
23
24
  import { useSlider } from "./ui/hooks/use-slider.js";
24
- import { MediaHotkey } from "./ui/hotkey/media-hotkey.js";
25
+ import { Hotkey, MediaHotkey } from "./ui/hotkey/hotkey.js";
25
26
  import { useHotkey } from "./ui/hotkey/use-hotkey.js";
26
27
  import { MuteButton } from "./ui/mute-button/mute-button.js";
27
28
  import { PiPButton } from "./ui/pip-button/pip-button.js";
@@ -37,10 +38,9 @@ import { index_parts_exports as index_parts_exports$5 } from "./ui/time/index.pa
37
38
  import { index_parts_exports as index_parts_exports$6 } from "./ui/time-slider/index.parts.js";
38
39
  import { index_parts_exports as index_parts_exports$7 } from "./ui/tooltip/index.parts.js";
39
40
  import { index_parts_exports as index_parts_exports$8 } from "./ui/volume-slider/index.parts.js";
40
- import { attachMediaElement } from "./utils/attach-media-element.js";
41
- import { mediaProps } from "./utils/media-props.js";
41
+ import { useAttachMedia } from "./utils/use-attach-media.js";
42
42
  import { useMediaInstance } from "./utils/use-media-instance.js";
43
43
  import { createSelector, shallowEqual } from "@videojs/store";
44
44
  import { useSelector, useStore } from "@videojs/store/react";
45
45
  export * from "@videojs/core/dom";
46
- export { index_parts_exports as AlertDialog, BufferingIndicator, CaptionsButton, Container, index_parts_exports$1 as Controls, index_parts_exports$2 as ErrorDialog, FullscreenButton, MediaGesture, MediaHotkey, MuteButton, PiPButton, PlayButton, PlaybackRateButton, index_parts_exports$3 as Popover, Poster, SeekButton, index_parts_exports$4 as Slider, Thumbnail, index_parts_exports$5 as Time, index_parts_exports$6 as TimeSlider, index_parts_exports$7 as Tooltip, index_parts_exports$8 as VolumeSlider, attachMediaElement, composeRefs, createPlayer, createSelector, mediaProps, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useAriaKeyShortcuts, useButton, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useLatestRef, useMedia, useMediaAttach, useMediaInstance, useOptionalPlayer, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTapGesture, useTooltipContext };
46
+ export { index_parts_exports as AlertDialog, BufferingIndicator, CaptionsButton, CastButton, Container, index_parts_exports$1 as Controls, index_parts_exports$2 as ErrorDialog, FullscreenButton, Gesture, Hotkey, MediaGesture, MediaHotkey, MuteButton, PiPButton, PlayButton, PlaybackRateButton, index_parts_exports$3 as Popover, Poster, SeekButton, index_parts_exports$4 as Slider, Thumbnail, index_parts_exports$5 as Time, index_parts_exports$6 as TimeSlider, index_parts_exports$7 as Tooltip, index_parts_exports$8 as VolumeSlider, composeRefs, createPlayer, createSelector, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useAriaKeyShortcuts, useAttachMedia, useButton, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useLatestRef, useMedia, useMediaAttach, useMediaInstance, useOptionalPlayer, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTapGesture, useTooltipContext };
@@ -1,9 +1,9 @@
1
- import * as react from "react";
1
+ import * as _$react from "react";
2
2
  import { AudioHTMLAttributes } from "react";
3
3
 
4
4
  //#region src/media/audio.d.ts
5
5
  interface AudioProps extends AudioHTMLAttributes<HTMLAudioElement> {}
6
- declare const Audio: react.ForwardRefExoticComponent<AudioProps & react.RefAttributes<HTMLAudioElement>>;
6
+ declare const Audio: _$react.ForwardRefExoticComponent<AudioProps & _$react.RefAttributes<HTMLAudioElement>>;
7
7
  declare namespace Audio {
8
8
  type Props = AudioProps;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audio.d.ts","names":[],"sources":["../../../src/media/audio.tsx"],"mappings":";;;;UAQiB,UAAA,SAAmB,mBAAA,CAAoB,gBAAA;AAAA,cAE3C,KAAA,EAAK,KAAA,CAAA,yBAAA,CAAA,UAAA,GAAA,KAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAWD,KAAA;EAAA,KACH,KAAA,GAAQ,UAAA;AAAA"}
1
+ {"version":3,"file":"audio.d.ts","names":[],"sources":["../../../src/media/audio.tsx"],"mappings":";;;;UAQiB,UAAA,SAAmB,mBAAA,CAAoB,gBAAA;AAAA,cAE3C,KAAA,EAAK,OAAA,CAAA,yBAAA,CAAA,UAAA,GAAA,OAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAWD,KAAA;EAAA,KACH,KAAA,GAAQ,UAAA;AAAA"}
@@ -1,9 +1,9 @@
1
- import * as react from "react";
1
+ import * as _$react from "react";
2
2
  import { VideoHTMLAttributes } from "react";
3
3
 
4
4
  //#region src/media/background-video/index.d.ts
5
5
  interface BackgroundVideoProps extends VideoHTMLAttributes<HTMLVideoElement> {}
6
- declare const BackgroundVideo: react.ForwardRefExoticComponent<BackgroundVideoProps & react.RefAttributes<HTMLVideoElement>>;
6
+ declare const BackgroundVideo: _$react.ForwardRefExoticComponent<BackgroundVideoProps & _$react.RefAttributes<HTMLVideoElement>>;
7
7
  declare namespace BackgroundVideo {
8
8
  type Props = BackgroundVideoProps;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/media/background-video/index.tsx"],"mappings":";;;;UAQiB,oBAAA,SAA6B,mBAAA,CAAoB,gBAAA;AAAA,cAErD,eAAA,EAAe,KAAA,CAAA,yBAAA,CAAA,oBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAsBX,eAAA;EAAA,KACH,KAAA,GAAQ,oBAAA;AAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/media/background-video/index.tsx"],"mappings":";;;;UAQiB,oBAAA,SAA6B,mBAAA,CAAoB,gBAAA;AAAA,cAErD,eAAA,EAAe,OAAA,CAAA,yBAAA,CAAA,oBAAA,GAAA,OAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAsBX,eAAA;EAAA,KACH,KAAA,GAAQ,oBAAA;AAAA"}