@videojs/html 10.0.0-alpha.4 → 10.0.0-alpha.6

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 (441) hide show
  1. package/dist/default/define/audio/minimal-skin.css +11 -0
  2. package/dist/default/define/audio/minimal-skin.js +26 -0
  3. package/dist/default/define/audio/minimal-skin.js.map +1 -0
  4. package/dist/default/define/audio/player.js +8 -4
  5. package/dist/default/define/audio/player.js.map +1 -1
  6. package/dist/default/define/audio/skin.css +12 -0
  7. package/dist/default/define/audio/skin.js +26 -0
  8. package/dist/default/define/audio/skin.js.map +1 -0
  9. package/dist/default/define/background/player.js +8 -4
  10. package/dist/default/define/background/player.js.map +1 -1
  11. package/dist/default/define/background/skin.js +2 -1
  12. package/dist/default/define/background/skin.js.map +1 -1
  13. package/dist/default/define/media/background-video.js +2 -1
  14. package/dist/default/define/media/background-video.js.map +1 -1
  15. package/dist/default/define/media/container.js +8 -0
  16. package/dist/default/define/media/container.js.map +1 -0
  17. package/dist/default/define/media/hls-video.js +2 -1
  18. package/dist/default/define/media/hls-video.js.map +1 -1
  19. package/dist/default/define/safe-define.js +9 -0
  20. package/dist/default/define/safe-define.js.map +1 -0
  21. package/dist/default/define/skin-mixin.js +35 -0
  22. package/dist/default/define/skin-mixin.js.map +1 -0
  23. package/dist/default/define/ui/buffering-indicator.js +2 -1
  24. package/dist/default/define/ui/buffering-indicator.js.map +1 -1
  25. package/dist/default/define/ui/controls-group.js +8 -0
  26. package/dist/default/define/ui/controls-group.js.map +1 -0
  27. package/dist/default/define/ui/controls.js +3 -2
  28. package/dist/default/define/ui/controls.js.map +1 -1
  29. package/dist/default/define/ui/fullscreen-button.js +2 -1
  30. package/dist/default/define/ui/fullscreen-button.js.map +1 -1
  31. package/dist/default/define/ui/mute-button.js +2 -1
  32. package/dist/default/define/ui/mute-button.js.map +1 -1
  33. package/dist/default/define/ui/pip-button.js +2 -1
  34. package/dist/default/define/ui/pip-button.js.map +1 -1
  35. package/dist/default/define/ui/play-button.js +2 -1
  36. package/dist/default/define/ui/play-button.js.map +1 -1
  37. package/dist/default/define/ui/playback-rate-button.js +8 -0
  38. package/dist/default/define/ui/playback-rate-button.js.map +1 -0
  39. package/dist/default/define/ui/popover.js +8 -0
  40. package/dist/default/define/ui/popover.js.map +1 -0
  41. package/dist/default/define/ui/poster.js +2 -1
  42. package/dist/default/define/ui/poster.js.map +1 -1
  43. package/dist/default/define/ui/seek-button.js +2 -1
  44. package/dist/default/define/ui/seek-button.js.map +1 -1
  45. package/dist/default/define/ui/slider-buffer.js +8 -0
  46. package/dist/default/define/ui/slider-buffer.js.map +1 -0
  47. package/dist/default/define/ui/slider-fill.js +8 -0
  48. package/dist/default/define/ui/slider-fill.js.map +1 -0
  49. package/dist/default/define/ui/slider-thumb.js +8 -0
  50. package/dist/default/define/ui/slider-thumb.js.map +1 -0
  51. package/dist/default/define/ui/slider-track.js +8 -0
  52. package/dist/default/define/ui/slider-track.js.map +1 -0
  53. package/dist/default/define/ui/slider-value.js +8 -0
  54. package/dist/default/define/ui/slider-value.js.map +1 -0
  55. package/dist/default/define/ui/slider.js +16 -0
  56. package/dist/default/define/ui/slider.js.map +1 -0
  57. package/dist/default/define/ui/thumbnail.js +8 -0
  58. package/dist/default/define/ui/thumbnail.js.map +1 -0
  59. package/dist/default/define/ui/time-group.js +8 -0
  60. package/dist/default/define/ui/time-group.js.map +1 -0
  61. package/dist/default/define/ui/time-separator.js +8 -0
  62. package/dist/default/define/ui/time-separator.js.map +1 -0
  63. package/dist/default/define/ui/time-slider.js +18 -0
  64. package/dist/default/define/ui/time-slider.js.map +1 -0
  65. package/dist/default/define/ui/time.js +4 -3
  66. package/dist/default/define/ui/time.js.map +1 -1
  67. package/dist/default/define/ui/volume-slider.js +16 -0
  68. package/dist/default/define/ui/volume-slider.js.map +1 -0
  69. package/dist/default/define/video/minimal-skin.css +762 -0
  70. package/dist/default/define/video/minimal-skin.js +131 -0
  71. package/dist/default/define/video/minimal-skin.js.map +1 -0
  72. package/dist/default/define/video/minimal-skin.tailwind.js +134 -0
  73. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -0
  74. package/dist/default/define/video/player.js +8 -4
  75. package/dist/default/define/video/player.js.map +1 -1
  76. package/dist/default/define/video/skin.css +763 -0
  77. package/dist/default/define/video/skin.js +125 -0
  78. package/dist/default/define/video/skin.js.map +1 -0
  79. package/dist/default/define/video/skin.tailwind.js +127 -0
  80. package/dist/default/define/video/skin.tailwind.js.map +1 -0
  81. package/dist/default/icons/dist/render/default/index.js +27 -0
  82. package/dist/default/icons/dist/render/default/index.js.map +1 -0
  83. package/dist/default/icons/dist/render/minimal/index.js +27 -0
  84. package/dist/default/icons/dist/render/minimal/index.js.map +1 -0
  85. package/dist/default/index.js +17 -3
  86. package/dist/default/media/container-element.js +15 -0
  87. package/dist/default/media/container-element.js.map +1 -0
  88. package/dist/default/player/create-player.js +0 -5
  89. package/dist/default/player/create-player.js.map +1 -1
  90. package/dist/default/player/player-controller.js +3 -0
  91. package/dist/default/player/player-controller.js.map +1 -1
  92. package/dist/default/presets/audio.js +5 -0
  93. package/dist/default/presets/background.js +3 -0
  94. package/dist/default/presets/video.js +7 -0
  95. package/dist/default/skins/dist/default/video/default.tailwind.js +90 -0
  96. package/dist/default/skins/dist/default/video/default.tailwind.js.map +1 -0
  97. package/dist/default/skins/dist/default/video/minimal.tailwind.js +86 -0
  98. package/dist/default/skins/dist/default/video/minimal.tailwind.js.map +1 -0
  99. package/dist/default/store/container-mixin.js +14 -7
  100. package/dist/default/store/container-mixin.js.map +1 -1
  101. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  102. package/dist/default/ui/context-part-element.js +28 -0
  103. package/dist/default/ui/context-part-element.js.map +1 -0
  104. package/dist/default/ui/controls/context.js +9 -0
  105. package/dist/default/ui/controls/context.js.map +1 -0
  106. package/dist/default/ui/controls/controls-element.js +15 -6
  107. package/dist/default/ui/controls/controls-element.js.map +1 -1
  108. package/dist/default/ui/controls/controls-group-element.js +11 -2
  109. package/dist/default/ui/controls/controls-group-element.js.map +1 -1
  110. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +8 -39
  111. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  112. package/dist/default/ui/media-button-element.js +50 -0
  113. package/dist/default/ui/media-button-element.js.map +1 -0
  114. package/dist/default/ui/media-ui-element.js +22 -0
  115. package/dist/default/ui/media-ui-element.js.map +1 -0
  116. package/dist/default/ui/mute-button/mute-button-element.js +8 -39
  117. package/dist/default/ui/mute-button/mute-button-element.js.map +1 -1
  118. package/dist/default/ui/pip-button/pip-button-element.js +8 -39
  119. package/dist/default/ui/pip-button/pip-button-element.js.map +1 -1
  120. package/dist/default/ui/play-button/play-button-element.js +8 -39
  121. package/dist/default/ui/play-button/play-button-element.js.map +1 -1
  122. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +25 -0
  123. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -0
  124. package/dist/default/ui/popover/popover-element.js +163 -0
  125. package/dist/default/ui/popover/popover-element.js.map +1 -0
  126. package/dist/default/ui/poster/poster-element.js +9 -14
  127. package/dist/default/ui/poster/poster-element.js.map +1 -1
  128. package/dist/default/ui/seek-button/seek-button-element.js +10 -36
  129. package/dist/default/ui/seek-button/seek-button-element.js.map +1 -1
  130. package/dist/default/ui/slider/context.js +9 -0
  131. package/dist/default/ui/slider/context.js.map +1 -0
  132. package/dist/default/ui/slider/slider-buffer-element.js +21 -0
  133. package/dist/default/ui/slider/slider-buffer-element.js.map +1 -0
  134. package/dist/default/ui/slider/slider-element.js +117 -0
  135. package/dist/default/ui/slider/slider-element.js.map +1 -0
  136. package/dist/default/ui/slider/slider-fill-element.js +21 -0
  137. package/dist/default/ui/slider/slider-fill-element.js.map +1 -0
  138. package/dist/default/ui/slider/slider-thumb-element.js +43 -0
  139. package/dist/default/ui/slider/slider-thumb-element.js.map +1 -0
  140. package/dist/default/ui/slider/slider-track-element.js +21 -0
  141. package/dist/default/ui/slider/slider-track-element.js.map +1 -0
  142. package/dist/default/ui/slider/slider-value-element.js +38 -0
  143. package/dist/default/ui/slider/slider-value-element.js.map +1 -0
  144. package/dist/default/ui/thumbnail/thumbnail-element.js +136 -0
  145. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -0
  146. package/dist/default/ui/time/time-element.js +8 -16
  147. package/dist/default/ui/time/time-element.js.map +1 -1
  148. package/dist/default/ui/time-slider/time-slider-element.js +128 -0
  149. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -0
  150. package/dist/default/ui/volume-slider/volume-slider-element.js +117 -0
  151. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -0
  152. package/dist/dev/define/audio/minimal-skin.css +11 -0
  153. package/dist/dev/define/audio/minimal-skin.d.ts +17 -0
  154. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -0
  155. package/dist/dev/define/audio/minimal-skin.js +26 -0
  156. package/dist/dev/define/audio/minimal-skin.js.map +1 -0
  157. package/dist/dev/define/audio/player.d.ts +4 -3
  158. package/dist/dev/define/audio/player.d.ts.map +1 -1
  159. package/dist/dev/define/audio/player.js +8 -4
  160. package/dist/dev/define/audio/player.js.map +1 -1
  161. package/dist/dev/define/audio/skin.css +12 -0
  162. package/dist/dev/define/audio/skin.d.ts +17 -1
  163. package/dist/dev/define/audio/skin.d.ts.map +1 -0
  164. package/dist/dev/define/audio/skin.js +26 -0
  165. package/dist/dev/define/audio/skin.js.map +1 -0
  166. package/dist/dev/define/background/player.d.ts +4 -3
  167. package/dist/dev/define/background/player.d.ts.map +1 -1
  168. package/dist/dev/define/background/player.js +8 -4
  169. package/dist/dev/define/background/player.js.map +1 -1
  170. package/dist/dev/define/background/skin.d.ts.map +1 -1
  171. package/dist/dev/define/background/skin.js +2 -1
  172. package/dist/dev/define/background/skin.js.map +1 -1
  173. package/dist/dev/define/media/background-video.d.ts.map +1 -1
  174. package/dist/dev/define/media/background-video.js +2 -1
  175. package/dist/dev/define/media/background-video.js.map +1 -1
  176. package/dist/dev/define/media/container.d.ts +9 -0
  177. package/dist/dev/define/media/container.d.ts.map +1 -0
  178. package/dist/dev/define/media/container.js +8 -0
  179. package/dist/dev/define/media/container.js.map +1 -0
  180. package/dist/dev/define/media/hls-video.d.ts.map +1 -1
  181. package/dist/dev/define/media/hls-video.js +2 -1
  182. package/dist/dev/define/media/hls-video.js.map +1 -1
  183. package/dist/dev/define/safe-define.d.ts +9 -0
  184. package/dist/dev/define/safe-define.d.ts.map +1 -0
  185. package/dist/dev/define/safe-define.js +9 -0
  186. package/dist/dev/define/safe-define.js.map +1 -0
  187. package/dist/dev/define/skin-mixin.d.ts +13 -0
  188. package/dist/dev/define/skin-mixin.d.ts.map +1 -0
  189. package/dist/dev/define/skin-mixin.js +35 -0
  190. package/dist/dev/define/skin-mixin.js.map +1 -0
  191. package/dist/dev/define/ui/buffering-indicator.d.ts.map +1 -1
  192. package/dist/dev/define/ui/buffering-indicator.js +2 -1
  193. package/dist/dev/define/ui/buffering-indicator.js.map +1 -1
  194. package/dist/dev/define/ui/controls-group.d.ts +9 -0
  195. package/dist/dev/define/ui/controls-group.d.ts.map +1 -0
  196. package/dist/dev/define/ui/controls-group.js +8 -0
  197. package/dist/dev/define/ui/controls-group.js.map +1 -0
  198. package/dist/dev/define/ui/controls.d.ts +0 -2
  199. package/dist/dev/define/ui/controls.d.ts.map +1 -1
  200. package/dist/dev/define/ui/controls.js +3 -2
  201. package/dist/dev/define/ui/controls.js.map +1 -1
  202. package/dist/dev/define/ui/fullscreen-button.d.ts.map +1 -1
  203. package/dist/dev/define/ui/fullscreen-button.js +2 -1
  204. package/dist/dev/define/ui/fullscreen-button.js.map +1 -1
  205. package/dist/dev/define/ui/mute-button.d.ts.map +1 -1
  206. package/dist/dev/define/ui/mute-button.js +2 -1
  207. package/dist/dev/define/ui/mute-button.js.map +1 -1
  208. package/dist/dev/define/ui/pip-button.d.ts.map +1 -1
  209. package/dist/dev/define/ui/pip-button.js +2 -1
  210. package/dist/dev/define/ui/pip-button.js.map +1 -1
  211. package/dist/dev/define/ui/play-button.d.ts.map +1 -1
  212. package/dist/dev/define/ui/play-button.js +2 -1
  213. package/dist/dev/define/ui/play-button.js.map +1 -1
  214. package/dist/dev/define/ui/playback-rate-button.d.ts +9 -0
  215. package/dist/dev/define/ui/playback-rate-button.d.ts.map +1 -0
  216. package/dist/dev/define/ui/playback-rate-button.js +8 -0
  217. package/dist/dev/define/ui/playback-rate-button.js.map +1 -0
  218. package/dist/dev/define/ui/popover.d.ts +9 -0
  219. package/dist/dev/define/ui/popover.d.ts.map +1 -0
  220. package/dist/dev/define/ui/popover.js +8 -0
  221. package/dist/dev/define/ui/popover.js.map +1 -0
  222. package/dist/dev/define/ui/poster.d.ts.map +1 -1
  223. package/dist/dev/define/ui/poster.js +2 -1
  224. package/dist/dev/define/ui/poster.js.map +1 -1
  225. package/dist/dev/define/ui/seek-button.d.ts.map +1 -1
  226. package/dist/dev/define/ui/seek-button.js +2 -1
  227. package/dist/dev/define/ui/seek-button.js.map +1 -1
  228. package/dist/dev/define/ui/slider-buffer.d.ts +9 -0
  229. package/dist/dev/define/ui/slider-buffer.d.ts.map +1 -0
  230. package/dist/dev/define/ui/slider-buffer.js +8 -0
  231. package/dist/dev/define/ui/slider-buffer.js.map +1 -0
  232. package/dist/dev/define/ui/slider-fill.d.ts +9 -0
  233. package/dist/dev/define/ui/slider-fill.d.ts.map +1 -0
  234. package/dist/dev/define/ui/slider-fill.js +8 -0
  235. package/dist/dev/define/ui/slider-fill.js.map +1 -0
  236. package/dist/dev/define/ui/slider-thumb.d.ts +9 -0
  237. package/dist/dev/define/ui/slider-thumb.d.ts.map +1 -0
  238. package/dist/dev/define/ui/slider-thumb.js +8 -0
  239. package/dist/dev/define/ui/slider-thumb.js.map +1 -0
  240. package/dist/dev/define/ui/slider-track.d.ts +9 -0
  241. package/dist/dev/define/ui/slider-track.d.ts.map +1 -0
  242. package/dist/dev/define/ui/slider-track.js +8 -0
  243. package/dist/dev/define/ui/slider-track.js.map +1 -0
  244. package/dist/dev/define/ui/slider-value.d.ts +9 -0
  245. package/dist/dev/define/ui/slider-value.d.ts.map +1 -0
  246. package/dist/dev/define/ui/slider-value.js +8 -0
  247. package/dist/dev/define/ui/slider-value.js.map +1 -0
  248. package/dist/dev/define/ui/slider.d.ts +9 -0
  249. package/dist/dev/define/ui/slider.d.ts.map +1 -0
  250. package/dist/dev/define/ui/slider.js +16 -0
  251. package/dist/dev/define/ui/slider.js.map +1 -0
  252. package/dist/dev/define/ui/thumbnail.d.ts +9 -0
  253. package/dist/dev/define/ui/thumbnail.d.ts.map +1 -0
  254. package/dist/dev/define/ui/thumbnail.js +8 -0
  255. package/dist/dev/define/ui/thumbnail.js.map +1 -0
  256. package/dist/dev/define/ui/time-group.d.ts +9 -0
  257. package/dist/dev/define/ui/time-group.d.ts.map +1 -0
  258. package/dist/dev/define/ui/time-group.js +8 -0
  259. package/dist/dev/define/ui/time-group.js.map +1 -0
  260. package/dist/dev/define/ui/time-separator.d.ts +9 -0
  261. package/dist/dev/define/ui/time-separator.d.ts.map +1 -0
  262. package/dist/dev/define/ui/time-separator.js +8 -0
  263. package/dist/dev/define/ui/time-separator.js.map +1 -0
  264. package/dist/dev/define/ui/time-slider.d.ts +9 -0
  265. package/dist/dev/define/ui/time-slider.d.ts.map +1 -0
  266. package/dist/dev/define/ui/time-slider.js +18 -0
  267. package/dist/dev/define/ui/time-slider.js.map +1 -0
  268. package/dist/dev/define/ui/time.d.ts +0 -4
  269. package/dist/dev/define/ui/time.d.ts.map +1 -1
  270. package/dist/dev/define/ui/time.js +4 -3
  271. package/dist/dev/define/ui/time.js.map +1 -1
  272. package/dist/dev/define/ui/volume-slider.d.ts +9 -0
  273. package/dist/dev/define/ui/volume-slider.d.ts.map +1 -0
  274. package/dist/dev/define/ui/volume-slider.js +16 -0
  275. package/dist/dev/define/ui/volume-slider.js.map +1 -0
  276. package/dist/dev/define/video/minimal-skin.css +762 -0
  277. package/dist/dev/define/video/minimal-skin.d.ts +30 -0
  278. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -0
  279. package/dist/dev/define/video/minimal-skin.js +131 -0
  280. package/dist/dev/define/video/minimal-skin.js.map +1 -0
  281. package/dist/dev/define/video/minimal-skin.tailwind.d.ts +30 -0
  282. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -0
  283. package/dist/dev/define/video/minimal-skin.tailwind.js +134 -0
  284. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -0
  285. package/dist/dev/define/video/player.d.ts +4 -3
  286. package/dist/dev/define/video/player.d.ts.map +1 -1
  287. package/dist/dev/define/video/player.js +8 -4
  288. package/dist/dev/define/video/player.js.map +1 -1
  289. package/dist/dev/define/video/skin.css +763 -0
  290. package/dist/dev/define/video/skin.d.ts +30 -1
  291. package/dist/dev/define/video/skin.d.ts.map +1 -0
  292. package/dist/dev/define/video/skin.js +125 -0
  293. package/dist/dev/define/video/skin.js.map +1 -0
  294. package/dist/dev/define/video/skin.tailwind.d.ts +30 -0
  295. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -0
  296. package/dist/dev/define/video/skin.tailwind.js +127 -0
  297. package/dist/dev/define/video/skin.tailwind.js.map +1 -0
  298. package/dist/dev/icons/dist/render/default/index.js +27 -0
  299. package/dist/dev/icons/dist/render/default/index.js.map +1 -0
  300. package/dist/dev/icons/dist/render/minimal/index.js +27 -0
  301. package/dist/dev/icons/dist/render/minimal/index.js.map +1 -0
  302. package/dist/dev/index.d.ts +19 -4
  303. package/dist/dev/index.js +17 -3
  304. package/dist/dev/media/container-element.d.ts +13 -0
  305. package/dist/dev/media/container-element.d.ts.map +1 -0
  306. package/dist/dev/media/container-element.js +15 -0
  307. package/dist/dev/media/container-element.js.map +1 -0
  308. package/dist/dev/player/create-player.d.ts +6 -14
  309. package/dist/dev/player/create-player.d.ts.map +1 -1
  310. package/dist/dev/player/create-player.js +0 -5
  311. package/dist/dev/player/create-player.js.map +1 -1
  312. package/dist/dev/player/player-controller.d.ts +1 -0
  313. package/dist/dev/player/player-controller.d.ts.map +1 -1
  314. package/dist/dev/player/player-controller.js +3 -0
  315. package/dist/dev/player/player-controller.js.map +1 -1
  316. package/dist/dev/presets/audio.d.ts +4 -0
  317. package/dist/dev/presets/audio.js +5 -0
  318. package/dist/dev/presets/background.d.ts +2 -0
  319. package/dist/dev/presets/background.js +3 -0
  320. package/dist/dev/presets/video.d.ts +6 -0
  321. package/dist/dev/presets/video.js +7 -0
  322. package/dist/dev/skins/dist/default/video/default.tailwind.js +90 -0
  323. package/dist/dev/skins/dist/default/video/default.tailwind.js.map +1 -0
  324. package/dist/dev/skins/dist/default/video/minimal.tailwind.js +86 -0
  325. package/dist/dev/skins/dist/default/video/minimal.tailwind.js.map +1 -0
  326. package/dist/dev/store/container-mixin.d.ts +1 -1
  327. package/dist/dev/store/container-mixin.js +14 -7
  328. package/dist/dev/store/container-mixin.js.map +1 -1
  329. package/dist/dev/store/provider-mixin.d.ts +1 -1
  330. package/dist/dev/store/types.d.ts +1 -3
  331. package/dist/dev/store/types.d.ts.map +1 -1
  332. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +2 -2
  333. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  334. package/dist/dev/ui/context-part-element.d.ts +32 -0
  335. package/dist/dev/ui/context-part-element.d.ts.map +1 -0
  336. package/dist/dev/ui/context-part-element.js +28 -0
  337. package/dist/dev/ui/context-part-element.js.map +1 -0
  338. package/dist/dev/ui/controls/context.d.ts +10 -0
  339. package/dist/dev/ui/controls/context.d.ts.map +1 -0
  340. package/dist/dev/ui/controls/context.js +9 -0
  341. package/dist/dev/ui/controls/context.js.map +1 -0
  342. package/dist/dev/ui/controls/controls-element.d.ts +1 -1
  343. package/dist/dev/ui/controls/controls-element.d.ts.map +1 -1
  344. package/dist/dev/ui/controls/controls-element.js +17 -8
  345. package/dist/dev/ui/controls/controls-element.js.map +1 -1
  346. package/dist/dev/ui/controls/controls-group-element.d.ts +8 -2
  347. package/dist/dev/ui/controls/controls-group-element.d.ts.map +1 -1
  348. package/dist/dev/ui/controls/controls-group-element.js +11 -2
  349. package/dist/dev/ui/controls/controls-group-element.js.map +1 -1
  350. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +11 -18
  351. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  352. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +8 -40
  353. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
  354. package/dist/dev/ui/media-button-element.d.ts +24 -0
  355. package/dist/dev/ui/media-button-element.d.ts.map +1 -0
  356. package/dist/dev/ui/media-button-element.js +51 -0
  357. package/dist/dev/ui/media-button-element.js.map +1 -0
  358. package/dist/dev/ui/media-ui-element.d.ts +17 -0
  359. package/dist/dev/ui/media-ui-element.d.ts.map +1 -0
  360. package/dist/dev/ui/media-ui-element.js +23 -0
  361. package/dist/dev/ui/media-ui-element.js.map +1 -0
  362. package/dist/dev/ui/mute-button/mute-button-element.d.ts +11 -18
  363. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  364. package/dist/dev/ui/mute-button/mute-button-element.js +8 -40
  365. package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -1
  366. package/dist/dev/ui/pip-button/pip-button-element.d.ts +11 -18
  367. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  368. package/dist/dev/ui/pip-button/pip-button-element.js +8 -40
  369. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
  370. package/dist/dev/ui/play-button/play-button-element.d.ts +12 -18
  371. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  372. package/dist/dev/ui/play-button/play-button-element.js +8 -40
  373. package/dist/dev/ui/play-button/play-button-element.js.map +1 -1
  374. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +18 -0
  375. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -0
  376. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +25 -0
  377. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -0
  378. package/dist/dev/ui/popover/popover-element.d.ts +65 -0
  379. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -0
  380. package/dist/dev/ui/popover/popover-element.js +163 -0
  381. package/dist/dev/ui/popover/popover-element.js.map +1 -0
  382. package/dist/dev/ui/poster/poster-element.d.ts +11 -6
  383. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  384. package/dist/dev/ui/poster/poster-element.js +9 -15
  385. package/dist/dev/ui/poster/poster-element.js.map +1 -1
  386. package/dist/dev/ui/seek-button/seek-button-element.d.ts +14 -22
  387. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -1
  388. package/dist/dev/ui/seek-button/seek-button-element.js +10 -37
  389. package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -1
  390. package/dist/dev/ui/slider/context.d.ts +24 -0
  391. package/dist/dev/ui/slider/context.d.ts.map +1 -0
  392. package/dist/dev/ui/slider/context.js +9 -0
  393. package/dist/dev/ui/slider/context.js.map +1 -0
  394. package/dist/dev/ui/slider/slider-buffer-element.d.ts +15 -0
  395. package/dist/dev/ui/slider/slider-buffer-element.d.ts.map +1 -0
  396. package/dist/dev/ui/slider/slider-buffer-element.js +21 -0
  397. package/dist/dev/ui/slider/slider-buffer-element.js.map +1 -0
  398. package/dist/dev/ui/slider/slider-element.d.ts +56 -0
  399. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -0
  400. package/dist/dev/ui/slider/slider-element.js +117 -0
  401. package/dist/dev/ui/slider/slider-element.js.map +1 -0
  402. package/dist/dev/ui/slider/slider-events.d.ts +18 -0
  403. package/dist/dev/ui/slider/slider-events.d.ts.map +1 -0
  404. package/dist/dev/ui/slider/slider-fill-element.d.ts +15 -0
  405. package/dist/dev/ui/slider/slider-fill-element.d.ts.map +1 -0
  406. package/dist/dev/ui/slider/slider-fill-element.js +21 -0
  407. package/dist/dev/ui/slider/slider-fill-element.js.map +1 -0
  408. package/dist/dev/ui/slider/slider-thumb-element.d.ts +14 -0
  409. package/dist/dev/ui/slider/slider-thumb-element.d.ts.map +1 -0
  410. package/dist/dev/ui/slider/slider-thumb-element.js +43 -0
  411. package/dist/dev/ui/slider/slider-thumb-element.js.map +1 -0
  412. package/dist/dev/ui/slider/slider-track-element.d.ts +15 -0
  413. package/dist/dev/ui/slider/slider-track-element.d.ts.map +1 -0
  414. package/dist/dev/ui/slider/slider-track-element.js +21 -0
  415. package/dist/dev/ui/slider/slider-track-element.js.map +1 -0
  416. package/dist/dev/ui/slider/slider-value-element.d.ts +19 -0
  417. package/dist/dev/ui/slider/slider-value-element.d.ts.map +1 -0
  418. package/dist/dev/ui/slider/slider-value-element.js +38 -0
  419. package/dist/dev/ui/slider/slider-value-element.js.map +1 -0
  420. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts +42 -0
  421. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts.map +1 -0
  422. package/dist/dev/ui/thumbnail/thumbnail-element.js +136 -0
  423. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -0
  424. package/dist/dev/ui/time/time-element.d.ts.map +1 -1
  425. package/dist/dev/ui/time/time-element.js +10 -18
  426. package/dist/dev/ui/time/time-element.js.map +1 -1
  427. package/dist/dev/ui/time-slider/time-slider-element.d.ts +49 -0
  428. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -0
  429. package/dist/dev/ui/time-slider/time-slider-element.js +129 -0
  430. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -0
  431. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +44 -0
  432. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -0
  433. package/dist/dev/ui/volume-slider/volume-slider-element.js +118 -0
  434. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -0
  435. package/package.json +41 -6
  436. package/dist/default/player/player-mixin.js +0 -23
  437. package/dist/default/player/player-mixin.js.map +0 -1
  438. package/dist/dev/player/player-mixin.d.ts +0 -20
  439. package/dist/dev/player/player-mixin.d.ts.map +0 -1
  440. package/dist/dev/player/player-mixin.js +0 -23
  441. package/dist/dev/player/player-mixin.js.map +0 -1
@@ -0,0 +1,163 @@
1
+ import { MediaElement } from "../media-element.js";
2
+ import { applyElementProps, applyStateDataAttrs, createPopover, createTransition, getAnchorNameStyle, getAnchorPositionStyle, resolveOffsets } from "@videojs/core/dom";
3
+ import { SnapshotController } from "@videojs/store/html";
4
+ import { PopoverCore, PopoverDataAttrs } from "@videojs/core";
5
+ import { applyStyles, supportsAnchorPositioning } from "@videojs/utils/dom";
6
+
7
+ //#region src/ui/popover/popover-element.ts
8
+ var PopoverElement = class extends MediaElement {
9
+ constructor(..._args) {
10
+ super(..._args);
11
+ this.open = PopoverCore.defaultProps.open;
12
+ this.defaultOpen = PopoverCore.defaultProps.defaultOpen;
13
+ this.side = PopoverCore.defaultProps.side;
14
+ this.align = PopoverCore.defaultProps.align;
15
+ this.modal = PopoverCore.defaultProps.modal;
16
+ this.closeOnEscape = PopoverCore.defaultProps.closeOnEscape;
17
+ this.closeOnOutsideClick = PopoverCore.defaultProps.closeOnOutsideClick;
18
+ this.openOnHover = PopoverCore.defaultProps.openOnHover;
19
+ this.delay = PopoverCore.defaultProps.delay;
20
+ this.closeDelay = PopoverCore.defaultProps.closeDelay;
21
+ }
22
+ static {
23
+ this.tagName = "media-popover";
24
+ }
25
+ static {
26
+ this.properties = {
27
+ open: { type: Boolean },
28
+ defaultOpen: {
29
+ type: Boolean,
30
+ attribute: "default-open"
31
+ },
32
+ side: { type: String },
33
+ align: { type: String },
34
+ modal: { type: Boolean },
35
+ closeOnEscape: {
36
+ type: Boolean,
37
+ attribute: "close-on-escape"
38
+ },
39
+ closeOnOutsideClick: {
40
+ type: Boolean,
41
+ attribute: "close-on-outside-click"
42
+ },
43
+ openOnHover: {
44
+ type: Boolean,
45
+ attribute: "open-on-hover"
46
+ },
47
+ delay: { type: Number },
48
+ closeDelay: {
49
+ type: Number,
50
+ attribute: "close-delay"
51
+ }
52
+ };
53
+ }
54
+ #core = new PopoverCore();
55
+ #popover = null;
56
+ #snapshot = null;
57
+ #disconnect = null;
58
+ #triggerAbort = null;
59
+ #currentTrigger = null;
60
+ connectedCallback() {
61
+ super.connectedCallback();
62
+ this.#disconnect = new AbortController();
63
+ this.#popover = createPopover({
64
+ transition: createTransition(),
65
+ onOpenChange: (nextOpen, details) => {
66
+ this.open = nextOpen;
67
+ this.dispatchEvent(new CustomEvent("open-change", { detail: {
68
+ open: nextOpen,
69
+ ...details
70
+ } }));
71
+ },
72
+ closeOnEscape: () => this.closeOnEscape,
73
+ closeOnOutsideClick: () => this.closeOnOutsideClick,
74
+ openOnHover: () => this.openOnHover,
75
+ delay: () => this.delay,
76
+ closeDelay: () => this.closeDelay
77
+ });
78
+ this.#popover.setPopupElement(this);
79
+ applyElementProps(this, this.#popover.popupProps, { signal: this.#disconnect.signal });
80
+ if (this.#snapshot) this.#snapshot.track(this.#popover.input);
81
+ else this.#snapshot = new SnapshotController(this, this.#popover.input);
82
+ }
83
+ firstUpdated(changed) {
84
+ super.firstUpdated(changed);
85
+ if (this.defaultOpen && !this.open) this.#popover?.open();
86
+ }
87
+ disconnectedCallback() {
88
+ super.disconnectedCallback();
89
+ this.#cleanupTrigger();
90
+ this.#popover?.destroy();
91
+ this.#popover = null;
92
+ this.#disconnect?.abort();
93
+ this.#disconnect = null;
94
+ }
95
+ willUpdate(changed) {
96
+ super.willUpdate(changed);
97
+ this.#core.setProps(this);
98
+ if (this.#popover && changed.has("open")) {
99
+ const { active: interactionOpen } = this.#popover.input.current;
100
+ if (this.open !== interactionOpen) if (this.open) this.#popover.open();
101
+ else this.#popover.close();
102
+ }
103
+ }
104
+ update(_changed) {
105
+ super.update(_changed);
106
+ if (!this.#popover) return;
107
+ const triggerEl = this.#findTrigger();
108
+ this.#syncTrigger(triggerEl);
109
+ const input = this.#popover.input.current;
110
+ this.#core.setInput(input);
111
+ const state = this.#core.getState();
112
+ applyElementProps(this, this.#core.getPopupAttrs(state));
113
+ applyStateDataAttrs(this, state, PopoverDataAttrs);
114
+ if (this.#currentTrigger) {
115
+ applyElementProps(this.#currentTrigger, this.#core.getTriggerAttrs(state, this.id));
116
+ applyStyles(this.#currentTrigger, getAnchorNameStyle(this.id));
117
+ }
118
+ if (!state.open) return;
119
+ const posOpts = {
120
+ side: state.side,
121
+ align: state.align
122
+ };
123
+ if (supportsAnchorPositioning()) applyStyles(this, getAnchorPositionStyle(this.id, posOpts));
124
+ else {
125
+ const triggerRect = this.#currentTrigger?.getBoundingClientRect();
126
+ const selfRect = this.getBoundingClientRect();
127
+ const boundaryRect = document.documentElement.getBoundingClientRect();
128
+ const offsets = resolveOffsets(this);
129
+ applyStyles(this, getAnchorPositionStyle(this.id, posOpts, triggerRect, selfRect, boundaryRect, offsets));
130
+ }
131
+ }
132
+ #findTrigger() {
133
+ if (!this.id) return null;
134
+ return this.getRootNode().querySelector(`[commandfor="${this.id}"]`);
135
+ }
136
+ #syncTrigger(triggerEl) {
137
+ if (triggerEl === this.#currentTrigger) return;
138
+ this.#cleanupTrigger();
139
+ this.#currentTrigger = triggerEl;
140
+ this.#popover?.setTriggerElement(triggerEl);
141
+ if (triggerEl && this.#popover) {
142
+ this.#triggerAbort = new AbortController();
143
+ applyElementProps(triggerEl, this.#popover.triggerProps, { signal: this.#triggerAbort.signal });
144
+ }
145
+ }
146
+ #cleanupTrigger() {
147
+ if (this.#currentTrigger) {
148
+ applyElementProps(this.#currentTrigger, {
149
+ "aria-expanded": void 0,
150
+ "aria-haspopup": void 0,
151
+ "aria-controls": void 0
152
+ });
153
+ this.#currentTrigger.style.removeProperty("anchor-name");
154
+ }
155
+ this.#triggerAbort?.abort();
156
+ this.#triggerAbort = null;
157
+ this.#currentTrigger = null;
158
+ }
159
+ };
160
+
161
+ //#endregion
162
+ export { PopoverElement };
163
+ //# sourceMappingURL=popover-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-element.js","names":["#core","#disconnect","#popover","#snapshot","#cleanupTrigger","#findTrigger","#syncTrigger","#currentTrigger","#triggerAbort"],"sources":["../../../../src/ui/popover/popover-element.ts"],"sourcesContent":["import { PopoverCore, PopoverDataAttrs, type PopoverInput, type PopoverProps } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createPopover,\n createTransition,\n getAnchorNameStyle,\n getAnchorPositionStyle,\n type PopoverApi,\n type PopoverChangeDetails,\n resolveOffsets,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { SnapshotController } from '@videojs/store/html';\nimport { applyStyles, supportsAnchorPositioning } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\n\nexport class PopoverElement extends MediaElement {\n static readonly tagName = 'media-popover';\n\n static override properties = {\n open: { type: Boolean },\n defaultOpen: { type: Boolean, attribute: 'default-open' },\n side: { type: String },\n align: { type: String },\n modal: { type: Boolean },\n closeOnEscape: { type: Boolean, attribute: 'close-on-escape' },\n closeOnOutsideClick: { type: Boolean, attribute: 'close-on-outside-click' },\n openOnHover: { type: Boolean, attribute: 'open-on-hover' },\n delay: { type: Number },\n closeDelay: { type: Number, attribute: 'close-delay' },\n } satisfies PropertyDeclarationMap<keyof PopoverCore.Props>;\n\n open = PopoverCore.defaultProps.open;\n defaultOpen = PopoverCore.defaultProps.defaultOpen;\n side = PopoverCore.defaultProps.side;\n align = PopoverCore.defaultProps.align;\n modal: PopoverProps['modal'] = PopoverCore.defaultProps.modal;\n closeOnEscape = PopoverCore.defaultProps.closeOnEscape;\n closeOnOutsideClick = PopoverCore.defaultProps.closeOnOutsideClick;\n openOnHover = PopoverCore.defaultProps.openOnHover;\n delay = PopoverCore.defaultProps.delay;\n closeDelay = PopoverCore.defaultProps.closeDelay;\n\n readonly #core = new PopoverCore();\n #popover: PopoverApi | null = null;\n #snapshot: SnapshotController<PopoverInput> | null = null;\n\n // Cleanup controllers\n #disconnect: AbortController | null = null;\n #triggerAbort: AbortController | null = null;\n #currentTrigger: HTMLElement | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n\n this.#popover = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen, ...details } }));\n },\n closeOnEscape: () => this.closeOnEscape,\n closeOnOutsideClick: () => this.closeOnOutsideClick,\n openOnHover: () => this.openOnHover,\n delay: () => this.delay,\n closeDelay: () => this.closeDelay,\n });\n\n // Register self as the popup element — the element IS the popup.\n this.#popover.setPopupElement(this);\n\n // Apply popup event handlers (pointerenter/leave, focusout) to self.\n applyElementProps(this, this.#popover.popupProps, { signal: this.#disconnect.signal });\n\n // Subscribe to interaction state for reactive updates.\n // Reuse the controller across connect/disconnect cycles to avoid\n // leaking stale controllers in the host's controller set.\n if (this.#snapshot) {\n this.#snapshot.track(this.#popover.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#popover.input);\n }\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n\n // Uncontrolled mode: open if `defaultOpen` is set. Controlled `open`\n // is already synced by `willUpdate` on the first render cycle.\n if (this.defaultOpen && !this.open) {\n this.#popover?.open();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#cleanupTrigger();\n this.#popover?.destroy();\n this.#popover = null;\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n // Sync controlled open state\n if (this.#popover && changed.has('open')) {\n const { active: interactionOpen } = this.#popover.input.current;\n if (this.open !== interactionOpen) {\n if (this.open) {\n this.#popover.open();\n } else {\n this.#popover.close();\n }\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#popover) return;\n\n // Discover trigger via commandfor linkage.\n const triggerEl = this.#findTrigger();\n this.#syncTrigger(triggerEl);\n\n // Derive state from core + input.\n const input = this.#popover.input.current;\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n // Apply popup ARIA and data attributes to self.\n applyElementProps(this, this.#core.getPopupAttrs(state));\n applyStateDataAttrs(this, state, PopoverDataAttrs);\n\n // Apply trigger ARIA and anchor-name to the discovered trigger.\n if (this.#currentTrigger) {\n applyElementProps(this.#currentTrigger, this.#core.getTriggerAttrs(state, this.id));\n applyStyles(this.#currentTrigger, getAnchorNameStyle(this.id));\n }\n\n // Skip positioning when closed — no rects to measure.\n if (!state.open) return;\n\n // Apply positioning styles to self.\n const posOpts = { side: state.side, align: state.align };\n\n if (supportsAnchorPositioning()) {\n // Native CSS Anchor Positioning — no JS rect measurements needed.\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts));\n } else {\n // JS fallback: measure rects and resolve CSS var offsets.\n const triggerRect = this.#currentTrigger?.getBoundingClientRect();\n const selfRect = this.getBoundingClientRect();\n const boundaryRect = document.documentElement.getBoundingClientRect();\n const offsets = resolveOffsets(this);\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts, triggerRect, selfRect, boundaryRect, offsets));\n }\n }\n\n // --- Trigger discovery ---\n\n #findTrigger(): HTMLElement | null {\n if (!this.id) return null;\n const root = this.getRootNode() as Document | ShadowRoot;\n return root.querySelector<HTMLElement>(`[commandfor=\"${this.id}\"]`);\n }\n\n #syncTrigger(triggerEl: HTMLElement | null): void {\n if (triggerEl === this.#currentTrigger) return;\n\n this.#cleanupTrigger();\n this.#currentTrigger = triggerEl;\n this.#popover?.setTriggerElement(triggerEl);\n\n if (triggerEl && this.#popover) {\n this.#triggerAbort = new AbortController();\n applyElementProps(triggerEl, this.#popover.triggerProps, { signal: this.#triggerAbort.signal });\n }\n }\n\n #cleanupTrigger(): void {\n if (this.#currentTrigger) {\n // Remove ARIA attributes and anchor-name style from the old trigger.\n applyElementProps(this.#currentTrigger, {\n 'aria-expanded': undefined,\n 'aria-haspopup': undefined,\n 'aria-controls': undefined,\n });\n this.#currentTrigger.style.removeProperty('anchor-name');\n }\n\n this.#triggerAbort?.abort();\n this.#triggerAbort = null;\n this.#currentTrigger = null;\n }\n}\n"],"mappings":"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"}
@@ -1,12 +1,17 @@
1
- import { MediaElement } from "../media-element.js";
2
- import { PropertyValues } from "@videojs/element";
1
+ import { PlayerController } from "../../player/player-controller.js";
2
+ import { MediaUIElement } from "../media-ui-element.js";
3
+ import * as _videojs_core_dom0 from "@videojs/core/dom";
4
+ import * as _videojs_core0 from "@videojs/core";
5
+ import { PosterCore } from "@videojs/core";
3
6
 
4
7
  //#region src/ui/poster/poster-element.d.ts
5
- declare class PosterElement extends MediaElement {
6
- #private;
8
+ declare class PosterElement extends MediaUIElement<PosterCore> {
7
9
  static readonly tagName = "media-poster";
8
- connectedCallback(): void;
9
- protected update(changed: PropertyValues): void;
10
+ protected readonly core: PosterCore;
11
+ protected readonly stateAttrMap: {
12
+ readonly visible: "data-visible";
13
+ };
14
+ protected readonly mediaState: PlayerController<_videojs_core_dom0.AnyPlayerStore, _videojs_core0.MediaPlaybackState | undefined>;
10
15
  }
11
16
  //#endregion
12
17
  export { PosterElement };
@@ -1 +1 @@
1
- {"version":3,"file":"poster-element.d.ts","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"mappings":";;;;cAQa,aAAA,SAAsB,YAAA;EAAA;kBACjB,OAAA;EAKP,iBAAA,CAAA;EAAA,UAQU,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
1
+ {"version":3,"file":"poster-element.d.ts","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"mappings":";;;;;;;cAOa,aAAA,SAAsB,cAAA,CAAe,UAAA;EAAA,gBAChC,OAAA;EAAA,mBAEG,IAAA,EAAI,UAAA;EAAA,mBACJ,YAAA;IAAA;;qBACA,UAAA,EAAU,gBAAA,CAFN,kBAAA,CAEM,cAAA,EAAA,cAAA,CAAA,kBAAA;AAAA"}
@@ -1,26 +1,20 @@
1
1
  import { playerContext } from "../../player/context.js";
2
- import { MediaElement } from "../media-element.js";
3
2
  import { PlayerController } from "../../player/player-controller.js";
4
- import { applyStateDataAttrs, logMissingFeature, selectPlayback } from "@videojs/core/dom";
3
+ import { MediaUIElement } from "../media-ui-element.js";
4
+ import { selectPlayback } from "@videojs/core/dom";
5
5
  import { PosterCore, PosterDataAttrs } from "@videojs/core";
6
6
 
7
7
  //#region src/ui/poster/poster-element.ts
8
- var PosterElement = class PosterElement extends MediaElement {
8
+ var PosterElement = class extends MediaUIElement {
9
+ constructor(..._args) {
10
+ super(..._args);
11
+ this.core = new PosterCore();
12
+ this.stateAttrMap = PosterDataAttrs;
13
+ this.mediaState = new PlayerController(this, playerContext, selectPlayback);
14
+ }
9
15
  static {
10
16
  this.tagName = "media-poster";
11
17
  }
12
- #core = new PosterCore();
13
- #state = new PlayerController(this, playerContext, selectPlayback);
14
- connectedCallback() {
15
- super.connectedCallback();
16
- if (!this.#state.value) logMissingFeature(PosterElement.tagName, "playback");
17
- }
18
- update(changed) {
19
- super.update(changed);
20
- const media = this.#state.value;
21
- if (!media) return;
22
- applyStateDataAttrs(this, this.#core.getState(media), PosterDataAttrs);
23
- }
24
18
  };
25
19
 
26
20
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"poster-element.js","names":["#core","#state"],"sources":["../../../../src/ui/poster/poster-element.ts"],"sourcesContent":["import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class PosterElement extends MediaElement {\n static readonly tagName = 'media-poster';\n\n readonly #core = new PosterCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(PosterElement.tagName, 'playback');\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) {\n return;\n }\n\n applyStateDataAttrs(this, this.#core.getState(media), PosterDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,gBAAb,MAAa,sBAAsB,aAAa;;iBACpB;;CAE1B,CAASA,OAAQ,IAAI,YAAY;CACjC,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAE3E,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,MAAKA,MAAO,MAC1B,mBAAkB,cAAc,SAAS,WAAW;;CAIxD,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKA,MAAO;AAE1B,MAAI,CAAC,MACH;AAGF,sBAAoB,MAAM,MAAKD,KAAM,SAAS,MAAM,EAAE,gBAAgB"}
1
+ {"version":3,"file":"poster-element.js","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"sourcesContent":["import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaUIElement } from '../media-ui-element';\n\nexport class PosterElement extends MediaUIElement<PosterCore> {\n static readonly tagName = 'media-poster';\n\n protected readonly core = new PosterCore();\n protected readonly stateAttrMap = PosterDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n}\n"],"mappings":";;;;;;;AAOA,IAAa,gBAAb,cAAmC,eAA2B;;;cAGlC,IAAI,YAAY;sBACR;oBACF,IAAI,iBAAiB,MAAM,eAAe,eAAe;;;iBAJ/D"}
@@ -1,29 +1,21 @@
1
- import { MediaElement } from "../media-element.js";
2
- import { PropertyValues } from "@videojs/element";
3
- import * as _videojs_core0 from "@videojs/core";
1
+ import { PlayerController } from "../../player/player-controller.js";
2
+ import { MediaButtonElement } from "../media-button-element.js";
3
+ import * as _videojs_core_dom0 from "@videojs/core/dom";
4
+ import { PropertyDeclarationMap } from "@videojs/element";
5
+ import { MediaTimeState, SeekButtonCore } from "@videojs/core";
4
6
 
5
7
  //#region src/ui/seek-button/seek-button-element.d.ts
6
- declare class SeekButtonElement extends MediaElement {
7
- #private;
8
+ declare class SeekButtonElement extends MediaButtonElement<SeekButtonCore> {
8
9
  static readonly tagName = "media-seek-button";
9
- static properties: {
10
- seconds: {
11
- type: NumberConstructor;
12
- };
13
- label: {
14
- type: StringConstructor;
15
- };
16
- disabled: {
17
- type: BooleanConstructor;
18
- };
19
- };
10
+ static properties: PropertyDeclarationMap;
20
11
  seconds: number;
21
- label: string | ((state: _videojs_core0.SeekButtonState) => string);
22
- disabled: boolean;
23
- connectedCallback(): void;
24
- disconnectedCallback(): void;
25
- protected willUpdate(changed: PropertyValues): void;
26
- protected update(changed: PropertyValues): void;
12
+ protected readonly core: SeekButtonCore;
13
+ protected readonly stateAttrMap: {
14
+ readonly seeking: "data-seeking";
15
+ readonly direction: "data-direction";
16
+ };
17
+ protected readonly mediaState: PlayerController<_videojs_core_dom0.AnyPlayerStore, MediaTimeState | undefined>;
18
+ protected activate(state: MediaTimeState): void;
27
19
  }
28
20
  //#endregion
29
21
  export { SeekButtonElement };
@@ -1 +1 @@
1
- {"version":3,"file":"seek-button-element.d.ts","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"mappings":";;;;;cAQa,iBAAA,SAA0B,YAAA;EAAA;kBACrB,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;EAMhB,OAAA;EACA,KAAA,aAAK,KAAA,iBAAA,eAAA;EACL,QAAA;EAOS,iBAAA,CAAA;EAiBA,oBAAA,CAAA;EAAA,UAMU,UAAA,CAAW,OAAA,EAAS,cAAA;EAAA,UAKpB,MAAA,CAAO,OAAA,EAAS,cAAA;AAAA"}
1
+ {"version":3,"file":"seek-button-element.d.ts","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"mappings":";;;;;;;cAQa,iBAAA,SAA0B,kBAAA,CAAmB,cAAA;EAAA,gBACxC,OAAA;EAAA,OAEA,UAAA,EAAY,sBAAA;EAK5B,OAAA;EAAA,mBAEmB,IAAA,EAAI,cAAA;EAAA,mBACJ,YAAA;IAAA;;;qBACA,UAAA,EAAU,gBAAA,CAFN,kBAAA,CAEM,cAAA,EAAA,cAAA;EAAA,UAEnB,QAAA,CAAS,KAAA,EAAO,cAAA;AAAA"}
@@ -1,56 +1,29 @@
1
1
  import { playerContext } from "../../player/context.js";
2
- import { MediaElement } from "../media-element.js";
3
2
  import { PlayerController } from "../../player/player-controller.js";
4
- import { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature, selectTime } from "@videojs/core/dom";
3
+ import { MediaButtonElement } from "../media-button-element.js";
4
+ import { selectTime } from "@videojs/core/dom";
5
5
  import { SeekButtonCore, SeekButtonDataAttrs } from "@videojs/core";
6
6
 
7
7
  //#region src/ui/seek-button/seek-button-element.ts
8
- var SeekButtonElement = class SeekButtonElement extends MediaElement {
8
+ var SeekButtonElement = class extends MediaButtonElement {
9
9
  constructor(..._args) {
10
10
  super(..._args);
11
11
  this.seconds = SeekButtonCore.defaultProps.seconds;
12
- this.label = SeekButtonCore.defaultProps.label;
13
- this.disabled = SeekButtonCore.defaultProps.disabled;
12
+ this.core = new SeekButtonCore();
13
+ this.stateAttrMap = SeekButtonDataAttrs;
14
+ this.mediaState = new PlayerController(this, playerContext, selectTime);
14
15
  }
15
16
  static {
16
17
  this.tagName = "media-seek-button";
17
18
  }
18
19
  static {
19
20
  this.properties = {
20
- seconds: { type: Number },
21
- label: { type: String },
22
- disabled: { type: Boolean }
21
+ ...MediaButtonElement.properties,
22
+ seconds: { type: Number }
23
23
  };
24
24
  }
25
- #core = new SeekButtonCore();
26
- #state = new PlayerController(this, playerContext, selectTime);
27
- #disconnect = null;
28
- connectedCallback() {
29
- super.connectedCallback();
30
- this.#disconnect = new AbortController();
31
- const buttonProps = createButton({
32
- onActivate: () => this.#core.seek(this.#state.value),
33
- isDisabled: () => this.disabled || !this.#state.value
34
- });
35
- applyElementProps(this, buttonProps, this.#disconnect.signal);
36
- if (!this.#state.value) logMissingFeature(SeekButtonElement.tagName, "time");
37
- }
38
- disconnectedCallback() {
39
- super.disconnectedCallback();
40
- this.#disconnect?.abort();
41
- this.#disconnect = null;
42
- }
43
- willUpdate(changed) {
44
- super.willUpdate(changed);
45
- this.#core.setProps(this);
46
- }
47
- update(changed) {
48
- super.update(changed);
49
- const media = this.#state.value;
50
- if (!media) return;
51
- const state = this.#core.getState(media);
52
- applyElementProps(this, this.#core.getAttrs(state));
53
- applyStateDataAttrs(this, state, SeekButtonDataAttrs);
25
+ activate(state) {
26
+ this.core.seek(state);
54
27
  }
55
28
  };
56
29
 
@@ -1 +1 @@
1
- {"version":3,"file":"seek-button-element.js","names":["#core","#state","#disconnect"],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"sourcesContent":["import { SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature, selectTime } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class SeekButtonElement extends MediaElement {\n static readonly tagName = 'media-seek-button';\n\n static override properties = {\n seconds: { type: Number },\n label: { type: String },\n disabled: { type: Boolean },\n } satisfies PropertyDeclarationMap<keyof SeekButtonCore.Props>;\n\n seconds = SeekButtonCore.defaultProps.seconds;\n label = SeekButtonCore.defaultProps.label;\n disabled = SeekButtonCore.defaultProps.disabled;\n\n readonly #core = new SeekButtonCore();\n readonly #state = new PlayerController(this, playerContext, selectTime);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.#core.seek(this.#state.value!),\n isDisabled: () => this.disabled || !this.#state.value,\n });\n\n applyElementProps(this, buttonProps, this.#disconnect.signal);\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(SeekButtonElement.tagName, 'time');\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) return;\n\n const state = this.#core.getState(media);\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, SeekButtonDataAttrs);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,oBAAb,MAAa,0BAA0B,aAAa;;;iBASxC,eAAe,aAAa;eAC9B,eAAe,aAAa;kBACzB,eAAe,aAAa;;;iBAVb;;;oBAEG;GAC3B,SAAS,EAAE,MAAM,QAAQ;GACzB,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAMD,CAASA,OAAQ,IAAI,gBAAgB;CACrC,CAASC,QAAS,IAAI,iBAAiB,MAAM,eAAe,WAAW;CAEvE,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKC,aAAc,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,MAAKF,KAAM,KAAK,MAAKC,MAAO,MAAO;GACrD,kBAAkB,KAAK,YAAY,CAAC,MAAKA,MAAO;GACjD,CAAC;AAEF,oBAAkB,MAAM,aAAa,MAAKC,WAAY,OAAO;AAE7D,MAAe,CAAC,MAAKD,MAAO,MAC1B,mBAAkB,kBAAkB,SAAS,OAAO;;CAIxD,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKC,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAKF,KAAM,SAAS,KAAK;;CAG3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAKC,MAAO;AAE1B,MAAI,CAAC,MAAO;EAEZ,MAAM,QAAQ,MAAKD,KAAM,SAAS,MAAM;AACxC,oBAAkB,MAAM,MAAKA,KAAM,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,oBAAoB"}
1
+ {"version":3,"file":"seek-button-element.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"sourcesContent":["import { type MediaTimeState, SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class SeekButtonElement extends MediaButtonElement<SeekButtonCore> {\n static readonly tagName = 'media-seek-button';\n\n static override properties: PropertyDeclarationMap = {\n ...MediaButtonElement.properties,\n seconds: { type: Number },\n };\n\n seconds = SeekButtonCore.defaultProps.seconds;\n\n protected readonly core = new SeekButtonCore();\n protected readonly stateAttrMap = SeekButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTime);\n\n protected activate(state: MediaTimeState): void {\n this.core.seek(state);\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,oBAAb,cAAuC,mBAAmC;;;iBAQ9D,eAAe,aAAa;cAEZ,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,WAAW;;;iBAX3D;;;oBAE2B;GACnD,GAAG,mBAAmB;GACtB,SAAS,EAAE,MAAM,QAAQ;GAC1B;;CAQD,AAAU,SAAS,OAA6B;AAC9C,OAAK,KAAK,KAAK,MAAM"}
@@ -0,0 +1,24 @@
1
+ import { SliderThumbProps } from "@videojs/core/dom";
2
+ import { SliderState, StateAttrMap } from "@videojs/core";
3
+
4
+ //#region src/ui/slider/context.d.ts
5
+ interface SliderContextValue {
6
+ /** Base slider state — children use this for data attributes and value display. */
7
+ state: SliderState;
8
+ /** Maps state keys to `data-*` attribute names for part elements. */
9
+ stateAttrMap: StateAttrMap<SliderState>;
10
+ /** Domain value at the current pointer position (e.g., seconds for time, percent for volume). */
11
+ pointerValue: number;
12
+ /** ARIA attributes for the thumb element (role, tabindex, aria-value*, etc.). */
13
+ thumbAttrs: Record<string, string | number | boolean | undefined>;
14
+ /** Keyboard and focus event handlers for the thumb element. */
15
+ thumbProps: SliderThumbProps;
16
+ /** Optional formatter for value display. Receives domain value and value type. */
17
+ formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;
18
+ }
19
+ declare const sliderContext: {
20
+ __context__: SliderContextValue;
21
+ };
22
+ //#endregion
23
+ export { SliderContextValue, sliderContext };
24
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/slider/context.ts"],"mappings":";;;;UAIiB,kBAAA;;EAEf,KAAA,EAAO,WAAA;EAF0B;EAIjC,YAAA,EAAc,YAAA,CAAa,WAAA;EAFpB;EAIP,YAAA;EAFc;EAId,UAAA,EAAY,MAAA;EAEA;EAAZ,UAAA,EAAY,gBAAA;EAAgB;EAE5B,WAAA,KAAgB,KAAA,UAAe,IAAA;AAAA;AAAA,cAKpB,aAAA;eAAqE,kBAAA;AAAA"}
@@ -0,0 +1,9 @@
1
+ import { createContext } from "@videojs/element/context";
2
+
3
+ //#region src/ui/slider/context.ts
4
+ const SLIDER_CONTEXT_KEY = Symbol("@videojs/slider");
5
+ const sliderContext = createContext(SLIDER_CONTEXT_KEY);
6
+
7
+ //#endregion
8
+ export { sliderContext };
9
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.ts"],"sourcesContent":["import type { SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport { createContext } from '@videojs/element/context';\n\nexport interface SliderContextValue {\n /** Base slider state — children use this for data attributes and value display. */\n state: SliderState;\n /** Maps state keys to `data-*` attribute names for part elements. */\n stateAttrMap: StateAttrMap<SliderState>;\n /** Domain value at the current pointer position (e.g., seconds for time, percent for volume). */\n pointerValue: number;\n /** ARIA attributes for the thumb element (role, tabindex, aria-value*, etc.). */\n thumbAttrs: Record<string, string | number | boolean | undefined>;\n /** Keyboard and focus event handlers for the thumb element. */\n thumbProps: SliderThumbProps;\n /** Optional formatter for value display. Receives domain value and value type. */\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SLIDER_CONTEXT_KEY = Symbol('@videojs/slider');\n\nexport const sliderContext = createContext<SliderContextValue>(SLIDER_CONTEXT_KEY);\n"],"mappings":";;;AAmBA,MAAM,qBAAqB,OAAO,kBAAkB;AAEpD,MAAa,gBAAgB,cAAkC,mBAAmB"}
@@ -0,0 +1,15 @@
1
+ import { ContextPartElement } from "../context-part-element.js";
2
+ import { SliderContextValue } from "./context.js";
3
+ import { ContextConsumer } from "@videojs/element/context";
4
+ import { SliderState } from "@videojs/core";
5
+
6
+ //#region src/ui/slider/slider-buffer-element.d.ts
7
+ declare class SliderBufferElement extends ContextPartElement<SliderState> {
8
+ static readonly tagName = "media-slider-buffer";
9
+ protected readonly consumer: ContextConsumer<{
10
+ __context__: SliderContextValue;
11
+ }, this>;
12
+ }
13
+ //#endregion
14
+ export { SliderBufferElement };
15
+ //# sourceMappingURL=slider-buffer-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider-buffer-element.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-buffer-element.ts"],"mappings":";;;;;;cAMa,mBAAA,SAA4B,kBAAA,CAAmB,WAAA;EAAA,gBAC1C,OAAA;EAAA,mBAEG,QAAA,EAAQ,eAAA;iBAH0C,kBAAA;EAAA;AAAA"}
@@ -0,0 +1,21 @@
1
+ import { ContextPartElement } from "../context-part-element.js";
2
+ import { sliderContext } from "./context.js";
3
+ import { ContextConsumer } from "@videojs/element/context";
4
+
5
+ //#region src/ui/slider/slider-buffer-element.ts
6
+ var SliderBufferElement = class extends ContextPartElement {
7
+ constructor(..._args) {
8
+ super(..._args);
9
+ this.consumer = new ContextConsumer(this, {
10
+ context: sliderContext,
11
+ subscribe: true
12
+ });
13
+ }
14
+ static {
15
+ this.tagName = "media-slider-buffer";
16
+ }
17
+ };
18
+
19
+ //#endregion
20
+ export { SliderBufferElement };
21
+ //# sourceMappingURL=slider-buffer-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider-buffer-element.js","names":[],"sources":["../../../../src/ui/slider/slider-buffer-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderBufferElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-buffer';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAb,cAAyC,mBAAgC;;;kBAGzC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
@@ -0,0 +1,56 @@
1
+ import { MediaElement } from "../media-element.js";
2
+ import { PropertyValues } from "@videojs/element";
3
+ import * as _videojs_core0 from "@videojs/core";
4
+
5
+ //#region src/ui/slider/slider-element.d.ts
6
+ declare class SliderElement extends MediaElement {
7
+ #private;
8
+ static readonly tagName = "media-slider";
9
+ static properties: {
10
+ label: {
11
+ type: StringConstructor;
12
+ };
13
+ value: {
14
+ type: NumberConstructor;
15
+ };
16
+ min: {
17
+ type: NumberConstructor;
18
+ };
19
+ max: {
20
+ type: NumberConstructor;
21
+ };
22
+ step: {
23
+ type: NumberConstructor;
24
+ };
25
+ largeStep: {
26
+ type: NumberConstructor;
27
+ attribute: string;
28
+ };
29
+ orientation: {
30
+ type: StringConstructor;
31
+ };
32
+ disabled: {
33
+ type: BooleanConstructor;
34
+ };
35
+ thumbAlignment: {
36
+ type: StringConstructor;
37
+ attribute: string;
38
+ };
39
+ };
40
+ label: string | ((state: _videojs_core0.SliderState) => string);
41
+ value: number;
42
+ min: number;
43
+ max: number;
44
+ step: number;
45
+ largeStep: number;
46
+ orientation: "horizontal" | "vertical";
47
+ disabled: boolean;
48
+ thumbAlignment: "center" | "edge";
49
+ connectedCallback(): void;
50
+ disconnectedCallback(): void;
51
+ protected willUpdate(_changed: PropertyValues): void;
52
+ protected update(_changed: PropertyValues): void;
53
+ }
54
+ //#endregion
55
+ export { SliderElement };
56
+ //# sourceMappingURL=slider-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider-element.d.ts","names":[],"sources":["../../../../src/ui/slider/slider-element.ts"],"mappings":";;;;;cASa,aAAA,SAAsB,YAAA;EAAA;kBACjB,OAAA;EAAA,OAEA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhB,KAAA,aAAK,KAAA,iBAAA,WAAA;EACL,KAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,SAAA;EACA,WAAA;EACA,QAAA;EACA,cAAA;EAQS,iBAAA,CAAA;EAsCA,oBAAA,CAAA;EAAA,UAQU,UAAA,CAAW,QAAA,EAAU,cAAA;EAAA,UAKrB,MAAA,CAAO,QAAA,EAAU,cAAA;AAAA"}