@videojs/html 0.1.0-preview.9 → 10.0.0-alpha.3

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 (338) hide show
  1. package/README.md +4 -2
  2. package/dist/default/define/audio/player.js +15 -0
  3. package/dist/default/define/audio/player.js.map +1 -0
  4. package/dist/default/define/background/player.js +15 -0
  5. package/dist/default/define/background/player.js.map +1 -0
  6. package/dist/default/define/background/skin.js +0 -0
  7. package/dist/default/define/feature/video.js +0 -0
  8. package/dist/default/define/media/background-video.js +13 -0
  9. package/dist/default/define/media/background-video.js.map +1 -0
  10. package/dist/default/define/media/hls-video.js +13 -0
  11. package/dist/default/define/media/hls-video.js.map +1 -0
  12. package/dist/default/define/ui/buffering-indicator.js +7 -0
  13. package/dist/default/define/ui/buffering-indicator.js.map +1 -0
  14. package/dist/default/define/ui/controls.js +9 -0
  15. package/dist/default/define/ui/controls.js.map +1 -0
  16. package/dist/default/define/ui/fullscreen-button.js +7 -0
  17. package/dist/default/define/ui/fullscreen-button.js.map +1 -0
  18. package/dist/default/define/ui/mute-button.js +7 -0
  19. package/dist/default/define/ui/mute-button.js.map +1 -0
  20. package/dist/default/define/ui/pip-button.js +7 -0
  21. package/dist/default/define/ui/pip-button.js.map +1 -0
  22. package/dist/default/define/ui/play-button.js +7 -0
  23. package/dist/default/define/ui/play-button.js.map +1 -0
  24. package/dist/default/define/ui/poster.js +7 -0
  25. package/dist/default/define/ui/poster.js.map +1 -0
  26. package/dist/default/define/ui/seek-button.js +7 -0
  27. package/dist/default/define/ui/seek-button.js.map +1 -0
  28. package/dist/default/define/ui/time.js +11 -0
  29. package/dist/default/define/ui/time.js.map +1 -0
  30. package/dist/default/define/video/player.js +15 -0
  31. package/dist/default/define/video/player.js.map +1 -0
  32. package/dist/default/define/video/skin.js +0 -0
  33. package/dist/default/index.js +24 -0
  34. package/dist/default/media/background-video/index.js +77 -0
  35. package/dist/default/media/background-video/index.js.map +1 -0
  36. package/dist/default/media/hls-video/index.js +21 -0
  37. package/dist/default/media/hls-video/index.js.map +1 -0
  38. package/dist/default/player/context.js +14 -0
  39. package/dist/default/player/context.js.map +1 -0
  40. package/dist/default/player/create-player.js +29 -0
  41. package/dist/default/player/create-player.js.map +1 -0
  42. package/dist/default/player/player-controller.js +63 -0
  43. package/dist/default/player/player-controller.js.map +1 -0
  44. package/dist/default/player/player-mixin.js +23 -0
  45. package/dist/default/player/player-mixin.js.map +1 -0
  46. package/dist/default/store/container-mixin.js +74 -0
  47. package/dist/default/store/container-mixin.js.map +1 -0
  48. package/dist/default/store/provider-mixin.js +39 -0
  49. package/dist/default/store/provider-mixin.js.map +1 -0
  50. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +47 -0
  51. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -0
  52. package/dist/default/ui/controls/controls-element.js +27 -0
  53. package/dist/default/ui/controls/controls-element.js.map +1 -0
  54. package/dist/default/ui/controls/controls-group-element.js +16 -0
  55. package/dist/default/ui/controls/controls-group-element.js.map +1 -0
  56. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +56 -0
  57. package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -0
  58. package/dist/default/ui/media-element.js +8 -0
  59. package/dist/default/ui/media-element.js.map +1 -0
  60. package/dist/default/ui/mute-button/mute-button-element.js +56 -0
  61. package/dist/default/ui/mute-button/mute-button-element.js.map +1 -0
  62. package/dist/default/ui/pip-button/pip-button-element.js +56 -0
  63. package/dist/default/ui/pip-button/pip-button-element.js.map +1 -0
  64. package/dist/default/ui/play-button/play-button-element.js +56 -0
  65. package/dist/default/ui/play-button/play-button-element.js.map +1 -0
  66. package/dist/default/ui/poster/poster-element.js +27 -0
  67. package/dist/default/ui/poster/poster-element.js.map +1 -0
  68. package/dist/default/ui/seek-button/seek-button-element.js +58 -0
  69. package/dist/default/ui/seek-button/seek-button-element.js.map +1 -0
  70. package/dist/default/ui/time/time-element.js +67 -0
  71. package/dist/default/ui/time/time-element.js.map +1 -0
  72. package/dist/default/ui/time/time-group-element.js +12 -0
  73. package/dist/default/ui/time/time-group-element.js.map +1 -0
  74. package/dist/default/ui/time/time-separator-element.js +17 -0
  75. package/dist/default/ui/time/time-separator-element.js.map +1 -0
  76. package/dist/dev/define/audio/player.d.ts +17 -0
  77. package/dist/dev/define/audio/player.d.ts.map +1 -0
  78. package/dist/dev/define/audio/player.js +15 -0
  79. package/dist/dev/define/audio/player.js.map +1 -0
  80. package/dist/dev/define/audio/skin.js +0 -0
  81. package/dist/dev/define/background/player.d.ts +17 -0
  82. package/dist/dev/define/background/player.d.ts.map +1 -0
  83. package/dist/dev/define/background/player.js +15 -0
  84. package/dist/dev/define/background/player.js.map +1 -0
  85. package/dist/dev/define/background/skin.js +0 -0
  86. package/dist/dev/define/feature/video.js +0 -0
  87. package/dist/dev/define/media/background-video.d.ts +14 -0
  88. package/dist/dev/define/media/background-video.d.ts.map +1 -0
  89. package/dist/dev/define/media/background-video.js +13 -0
  90. package/dist/dev/define/media/background-video.js.map +1 -0
  91. package/dist/dev/define/media/hls-video.d.ts +14 -0
  92. package/dist/dev/define/media/hls-video.d.ts.map +1 -0
  93. package/dist/dev/define/media/hls-video.js +13 -0
  94. package/dist/dev/define/media/hls-video.js.map +1 -0
  95. package/dist/dev/define/ui/buffering-indicator.d.ts +9 -0
  96. package/dist/dev/define/ui/buffering-indicator.d.ts.map +1 -0
  97. package/dist/dev/define/ui/buffering-indicator.js +7 -0
  98. package/dist/dev/define/ui/buffering-indicator.js.map +1 -0
  99. package/dist/dev/define/ui/controls.d.ts +11 -0
  100. package/dist/dev/define/ui/controls.d.ts.map +1 -0
  101. package/dist/dev/define/ui/controls.js +9 -0
  102. package/dist/dev/define/ui/controls.js.map +1 -0
  103. package/dist/dev/define/ui/fullscreen-button.d.ts +9 -0
  104. package/dist/dev/define/ui/fullscreen-button.d.ts.map +1 -0
  105. package/dist/dev/define/ui/fullscreen-button.js +7 -0
  106. package/dist/dev/define/ui/fullscreen-button.js.map +1 -0
  107. package/dist/dev/define/ui/mute-button.d.ts +9 -0
  108. package/dist/dev/define/ui/mute-button.d.ts.map +1 -0
  109. package/dist/dev/define/ui/mute-button.js +7 -0
  110. package/dist/dev/define/ui/mute-button.js.map +1 -0
  111. package/dist/dev/define/ui/pip-button.d.ts +9 -0
  112. package/dist/dev/define/ui/pip-button.d.ts.map +1 -0
  113. package/dist/dev/define/ui/pip-button.js +7 -0
  114. package/dist/dev/define/ui/pip-button.js.map +1 -0
  115. package/dist/dev/define/ui/play-button.d.ts +9 -0
  116. package/dist/dev/define/ui/play-button.d.ts.map +1 -0
  117. package/dist/dev/define/ui/play-button.js +7 -0
  118. package/dist/dev/define/ui/play-button.js.map +1 -0
  119. package/dist/dev/define/ui/poster.d.ts +9 -0
  120. package/dist/dev/define/ui/poster.d.ts.map +1 -0
  121. package/dist/dev/define/ui/poster.js +7 -0
  122. package/dist/dev/define/ui/poster.js.map +1 -0
  123. package/dist/dev/define/ui/seek-button.d.ts +9 -0
  124. package/dist/dev/define/ui/seek-button.d.ts.map +1 -0
  125. package/dist/dev/define/ui/seek-button.js +7 -0
  126. package/dist/dev/define/ui/seek-button.js.map +1 -0
  127. package/dist/dev/define/ui/time.d.ts +13 -0
  128. package/dist/dev/define/ui/time.d.ts.map +1 -0
  129. package/dist/dev/define/ui/time.js +11 -0
  130. package/dist/dev/define/ui/time.js.map +1 -0
  131. package/dist/dev/define/video/player.d.ts +17 -0
  132. package/dist/dev/define/video/player.d.ts.map +1 -0
  133. package/dist/dev/define/video/player.js +15 -0
  134. package/dist/dev/define/video/player.js.map +1 -0
  135. package/dist/dev/define/video/skin.js +0 -0
  136. package/dist/dev/index.d.ts +23 -0
  137. package/dist/dev/index.js +24 -0
  138. package/dist/dev/media/background-video/index.d.ts +15 -0
  139. package/dist/dev/media/background-video/index.d.ts.map +1 -0
  140. package/dist/dev/media/background-video/index.js +77 -0
  141. package/dist/dev/media/background-video/index.js.map +1 -0
  142. package/dist/dev/media/hls-video/index.d.ts +11 -0
  143. package/dist/dev/media/hls-video/index.d.ts.map +1 -0
  144. package/dist/dev/media/hls-video/index.js +21 -0
  145. package/dist/dev/media/hls-video/index.js.map +1 -0
  146. package/dist/dev/player/context.d.ts +16 -0
  147. package/dist/dev/player/context.d.ts.map +1 -0
  148. package/dist/dev/player/context.js +14 -0
  149. package/dist/dev/player/context.js.map +1 -0
  150. package/dist/dev/player/create-player.d.ts +73 -0
  151. package/dist/dev/player/create-player.d.ts.map +1 -0
  152. package/dist/dev/player/create-player.js +29 -0
  153. package/dist/dev/player/create-player.js.map +1 -0
  154. package/dist/dev/player/player-controller.d.ts +56 -0
  155. package/dist/dev/player/player-controller.d.ts.map +1 -0
  156. package/dist/dev/player/player-controller.js +63 -0
  157. package/dist/dev/player/player-controller.js.map +1 -0
  158. package/dist/dev/player/player-mixin.d.ts +20 -0
  159. package/dist/dev/player/player-mixin.d.ts.map +1 -0
  160. package/dist/dev/player/player-mixin.js +23 -0
  161. package/dist/dev/player/player-mixin.js.map +1 -0
  162. package/dist/dev/store/container-mixin.d.ts +16 -0
  163. package/dist/dev/store/container-mixin.d.ts.map +1 -0
  164. package/dist/dev/store/container-mixin.js +74 -0
  165. package/dist/dev/store/container-mixin.js.map +1 -0
  166. package/dist/dev/store/provider-mixin.d.ts +17 -0
  167. package/dist/dev/store/provider-mixin.d.ts.map +1 -0
  168. package/dist/dev/store/provider-mixin.js +39 -0
  169. package/dist/dev/store/provider-mixin.js.map +1 -0
  170. package/dist/dev/store/types.d.ts +18 -0
  171. package/dist/dev/store/types.d.ts.map +1 -0
  172. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts +21 -0
  173. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -0
  174. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +48 -0
  175. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -0
  176. package/dist/dev/ui/controls/controls-element.d.ts +13 -0
  177. package/dist/dev/ui/controls/controls-element.d.ts.map +1 -0
  178. package/dist/dev/ui/controls/controls-element.js +28 -0
  179. package/dist/dev/ui/controls/controls-element.js.map +1 -0
  180. package/dist/dev/ui/controls/controls-group-element.d.ts +10 -0
  181. package/dist/dev/ui/controls/controls-group-element.d.ts.map +1 -0
  182. package/dist/dev/ui/controls/controls-group-element.js +16 -0
  183. package/dist/dev/ui/controls/controls-group-element.js.map +1 -0
  184. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +26 -0
  185. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -0
  186. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +57 -0
  187. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -0
  188. package/dist/dev/ui/media-element.d.ts +9 -0
  189. package/dist/dev/ui/media-element.d.ts.map +1 -0
  190. package/dist/dev/ui/media-element.js +8 -0
  191. package/dist/dev/ui/media-element.js.map +1 -0
  192. package/dist/dev/ui/mute-button/mute-button-element.d.ts +26 -0
  193. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -0
  194. package/dist/dev/ui/mute-button/mute-button-element.js +57 -0
  195. package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -0
  196. package/dist/dev/ui/pip-button/pip-button-element.d.ts +26 -0
  197. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -0
  198. package/dist/dev/ui/pip-button/pip-button-element.js +57 -0
  199. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -0
  200. package/dist/dev/ui/play-button/play-button-element.d.ts +26 -0
  201. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -0
  202. package/dist/dev/ui/play-button/play-button-element.js +57 -0
  203. package/dist/dev/ui/play-button/play-button-element.js.map +1 -0
  204. package/dist/dev/ui/poster/poster-element.d.ts +13 -0
  205. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -0
  206. package/dist/dev/ui/poster/poster-element.js +28 -0
  207. package/dist/dev/ui/poster/poster-element.js.map +1 -0
  208. package/dist/dev/ui/seek-button/seek-button-element.d.ts +30 -0
  209. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -0
  210. package/dist/dev/ui/seek-button/seek-button-element.js +59 -0
  211. package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -0
  212. package/dist/dev/ui/time/time-element.d.ts +32 -0
  213. package/dist/dev/ui/time/time-element.d.ts.map +1 -0
  214. package/dist/dev/ui/time/time-element.js +68 -0
  215. package/dist/dev/ui/time/time-element.js.map +1 -0
  216. package/dist/dev/ui/time/time-group-element.d.ts +9 -0
  217. package/dist/dev/ui/time/time-group-element.d.ts.map +1 -0
  218. package/dist/dev/ui/time/time-group-element.js +12 -0
  219. package/dist/dev/ui/time/time-group-element.js.map +1 -0
  220. package/dist/dev/ui/time/time-separator-element.d.ts +10 -0
  221. package/dist/dev/ui/time/time-separator-element.d.ts.map +1 -0
  222. package/dist/dev/ui/time/time-separator-element.js +17 -0
  223. package/dist/dev/ui/time/time-separator-element.js.map +1 -0
  224. package/package.json +62 -40
  225. package/dist/button-Bu1mGG-F.js +0 -63
  226. package/dist/button-Bu1mGG-F.js.map +0 -1
  227. package/dist/component-factory-C0cl1nrL.js +0 -73
  228. package/dist/component-factory-C0cl1nrL.js.map +0 -1
  229. package/dist/current-time-display-DpoDrQu9.js +0 -46
  230. package/dist/current-time-display-DpoDrQu9.js.map +0 -1
  231. package/dist/custom-element-3bDlB2XO.js +0 -10
  232. package/dist/custom-element-3bDlB2XO.js.map +0 -1
  233. package/dist/define/index.d.ts +0 -12
  234. package/dist/define/index.js +0 -27
  235. package/dist/define/media-container.d.ts +0 -1
  236. package/dist/define/media-container.js +0 -3
  237. package/dist/define/media-current-time-display.d.ts +0 -1
  238. package/dist/define/media-current-time-display.js +0 -4
  239. package/dist/define/media-duration-display.d.ts +0 -1
  240. package/dist/define/media-duration-display.js +0 -4
  241. package/dist/define/media-fullscreen-button.d.ts +0 -1
  242. package/dist/define/media-fullscreen-button.js +0 -5
  243. package/dist/define/media-mute-button.d.ts +0 -1
  244. package/dist/define/media-mute-button.js +0 -5
  245. package/dist/define/media-play-button.d.ts +0 -1
  246. package/dist/define/media-play-button.js +0 -5
  247. package/dist/define/media-popover.d.ts +0 -1
  248. package/dist/define/media-popover.js +0 -3
  249. package/dist/define/media-preview-time-display.d.ts +0 -1
  250. package/dist/define/media-preview-time-display.js +0 -4
  251. package/dist/define/media-time-slider.d.ts +0 -1
  252. package/dist/define/media-time-slider.js +0 -4
  253. package/dist/define/media-tooltip.d.ts +0 -1
  254. package/dist/define/media-tooltip.js +0 -3
  255. package/dist/define/media-volume-slider.d.ts +0 -1
  256. package/dist/define/media-volume-slider.js +0 -4
  257. package/dist/define/video-provider.d.ts +0 -1
  258. package/dist/define/video-provider.js +0 -3
  259. package/dist/duration-display-BFRQmaOz.js +0 -48
  260. package/dist/duration-display-BFRQmaOz.js.map +0 -1
  261. package/dist/fullscreen-button-B0R9K3GV.js +0 -47
  262. package/dist/fullscreen-button-B0R9K3GV.js.map +0 -1
  263. package/dist/icons-CuxuONCk.js +0 -209
  264. package/dist/icons-CuxuONCk.js.map +0 -1
  265. package/dist/icons.d.ts +0 -1
  266. package/dist/icons.js +0 -2
  267. package/dist/index.d.ts +0 -146
  268. package/dist/index.d.ts.map +0 -1
  269. package/dist/index.js +0 -17
  270. package/dist/media-container-BOL0PKuG.js +0 -80
  271. package/dist/media-container-BOL0PKuG.js.map +0 -1
  272. package/dist/media-container-DwKSOa1h.js +0 -8
  273. package/dist/media-container-DwKSOa1h.js.map +0 -1
  274. package/dist/media-current-time-display-DVCqNt7c.js +0 -8
  275. package/dist/media-current-time-display-DVCqNt7c.js.map +0 -1
  276. package/dist/media-duration-display-tzVLafRm.js +0 -8
  277. package/dist/media-duration-display-tzVLafRm.js.map +0 -1
  278. package/dist/media-fullscreen-button-BgUK3lgu.d.ts +0 -1
  279. package/dist/media-fullscreen-button-DDQ6EdLz.js +0 -8
  280. package/dist/media-fullscreen-button-DDQ6EdLz.js.map +0 -1
  281. package/dist/media-mute-button-NVJF2EEW.d.ts +0 -1
  282. package/dist/media-mute-button-Uy18NpPx.js +0 -8
  283. package/dist/media-mute-button-Uy18NpPx.js.map +0 -1
  284. package/dist/media-play-button-CDBZrhmx.js +0 -8
  285. package/dist/media-play-button-CDBZrhmx.js.map +0 -1
  286. package/dist/media-play-button-oq8yDlxe.d.ts +0 -1
  287. package/dist/media-popover-BtJmPv0E.d.ts +0 -1
  288. package/dist/media-popover-Cw9d_Bh3.js +0 -8
  289. package/dist/media-popover-Cw9d_Bh3.js.map +0 -1
  290. package/dist/media-preview-time-display-4YX5Rics.d.ts +0 -1
  291. package/dist/media-preview-time-display-ufqXiNXg.js +0 -8
  292. package/dist/media-preview-time-display-ufqXiNXg.js.map +0 -1
  293. package/dist/media-skin-CxnuHwhu.js +0 -36
  294. package/dist/media-skin-CxnuHwhu.js.map +0 -1
  295. package/dist/media-skin-Di3vSHvS.d.ts +0 -11
  296. package/dist/media-skin-Di3vSHvS.d.ts.map +0 -1
  297. package/dist/media-time-slider-BOdJr4QE.js +0 -12
  298. package/dist/media-time-slider-BOdJr4QE.js.map +0 -1
  299. package/dist/media-time-slider-DvMnfYXZ.d.ts +0 -1
  300. package/dist/media-tooltip-BqV17mdM.d.ts +0 -1
  301. package/dist/media-tooltip-CMRN_X4D.js +0 -8
  302. package/dist/media-tooltip-CMRN_X4D.js.map +0 -1
  303. package/dist/media-volume-slider-BB6GhrzS.js +0 -11
  304. package/dist/media-volume-slider-BB6GhrzS.js.map +0 -1
  305. package/dist/media-volume-slider-DP47VLVi.d.ts +0 -1
  306. package/dist/mute-button-C7XQB6iK.js +0 -49
  307. package/dist/mute-button-C7XQB6iK.js.map +0 -1
  308. package/dist/play-button-DFbxwrrq.js +0 -47
  309. package/dist/play-button-DFbxwrrq.js.map +0 -1
  310. package/dist/popover-BUCVOjnO.js +0 -167
  311. package/dist/popover-BUCVOjnO.js.map +0 -1
  312. package/dist/preview-time-display-CtA58pCS.js +0 -43
  313. package/dist/preview-time-display-CtA58pCS.js.map +0 -1
  314. package/dist/skins/frosted.d.ts +0 -23
  315. package/dist/skins/frosted.d.ts.map +0 -1
  316. package/dist/skins/frosted.js +0 -145
  317. package/dist/skins/frosted.js.map +0 -1
  318. package/dist/skins/minimal.d.ts +0 -23
  319. package/dist/skins/minimal.d.ts.map +0 -1
  320. package/dist/skins/minimal.js +0 -150
  321. package/dist/skins/minimal.js.map +0 -1
  322. package/dist/store.d.ts +0 -1
  323. package/dist/time-slider-DHpKPCI1.js +0 -165
  324. package/dist/time-slider-DHpKPCI1.js.map +0 -1
  325. package/dist/tooltip-B-glki2f.js +0 -171
  326. package/dist/tooltip-B-glki2f.js.map +0 -1
  327. package/dist/video-provider-BKDqoKFf.js +0 -17
  328. package/dist/video-provider-BKDqoKFf.js.map +0 -1
  329. package/dist/video-provider-BPPI5e47.js +0 -8
  330. package/dist/video-provider-BPPI5e47.js.map +0 -1
  331. package/dist/video-provider-nSCfwA7l.d.ts +0 -1
  332. package/dist/volume-slider-CUyfwehe.js +0 -140
  333. package/dist/volume-slider-CUyfwehe.js.map +0 -1
  334. /package/dist/{store.js → default/define/audio/skin.js} +0 -0
  335. /package/dist/{index-LKrIp3Oo.d.ts → dev/define/audio/skin.d.ts} +0 -0
  336. /package/dist/{media-container-ChS9lZvf.d.ts → dev/define/background/skin.d.ts} +0 -0
  337. /package/dist/{media-current-time-display-Cd0rPAuj.d.ts → dev/define/feature/video.d.ts} +0 -0
  338. /package/dist/{media-duration-display-qvm6YX-q.d.ts → dev/define/video/skin.d.ts} +0 -0
@@ -1,145 +0,0 @@
1
- import "../component-factory-C0cl1nrL.js";
2
- import "../current-time-display-DpoDrQu9.js";
3
- import "../duration-display-BFRQmaOz.js";
4
- import "../button-Bu1mGG-F.js";
5
- import "../fullscreen-button-B0R9K3GV.js";
6
- import "../mute-button-C7XQB6iK.js";
7
- import "../play-button-DFbxwrrq.js";
8
- import "../popover-BUCVOjnO.js";
9
- import "../preview-time-display-CtA58pCS.js";
10
- import "../time-slider-DHpKPCI1.js";
11
- import "../tooltip-B-glki2f.js";
12
- import "../volume-slider-CUyfwehe.js";
13
- import "../media-container-BOL0PKuG.js";
14
- import { t as MediaSkinElement } from "../media-skin-CxnuHwhu.js";
15
- import "../video-provider-BKDqoKFf.js";
16
- import { t as defineCustomElement } from "../custom-element-3bDlB2XO.js";
17
- import "../icons-CuxuONCk.js";
18
- import "../video-provider-BPPI5e47.js";
19
- import "../media-container-DwKSOa1h.js";
20
- import "../media-play-button-CDBZrhmx.js";
21
- import "../media-mute-button-Uy18NpPx.js";
22
- import "../media-volume-slider-BB6GhrzS.js";
23
- import "../media-time-slider-BOdJr4QE.js";
24
- import "../media-fullscreen-button-DDQ6EdLz.js";
25
- import "../media-duration-display-tzVLafRm.js";
26
- import "../media-current-time-display-DVCqNt7c.js";
27
- import "../media-preview-time-display-ufqXiNXg.js";
28
- import "../media-popover-Cw9d_Bh3.js";
29
- import "../media-tooltip-CMRN_X4D.js";
30
-
31
- //#region src/skins/frosted/styles.css
32
- var styles_default = "media-container * {\n box-sizing: border-box;\n}\n\nmedia-container {\n position: relative;\n isolation: isolate;\n container: root / inline-size;\n overflow: clip;\n border-radius: var(--frosted-border-radius, 2rem);\n background: oklab(0 0 0);\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 0.8125rem;\n line-height: 1.5;\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: auto;\n}\nmedia-container::before,\nmedia-container::after {\n content: '';\n position: absolute;\n pointer-events: none;\n border-radius: inherit;\n z-index: 10;\n}\nmedia-container::before {\n inset: 1px;\n box-shadow: inset 0 0 0 1px oklab(1 0 0 / 0.15);\n}\nmedia-container::after {\n inset: 0;\n box-shadow: inset 0 0 0 1px oklab(0 0 0 / 0.1);\n}\n\n/* Fullscreen */\nmedia-container:fullscreen {\n border-radius: 0;\n}\n\nmedia-container > ::slotted([slot='media']) {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* Media Container UI Overlay Styling */\nmedia-container > .overlay {\n position: absolute;\n inset: 0;\n display: flex;\n flex-flow: column nowrap;\n align-items: start;\n pointer-events: none;\n border-radius: inherit;\n background-image: linear-gradient(to top, oklab(0 0 0 / 0.5), oklab(0 0 0 / 0.3), rgba(0, 0, 0, 0));\n backdrop-filter: saturate(1.5) brightness(0.9);\n transition: opacity 0.15s ease-out;\n transition-delay: 500ms;\n opacity: 0;\n}\nmedia-container:hover > .overlay,\nmedia-container:has([data-paused]) > .overlay,\nmedia-container:has([aria-expanded='true']) > .overlay {\n opacity: 1;\n transition-duration: 100ms;\n transition-delay: 0ms;\n}\n\n/* Common Surface Styles - e.g. tooltips, popovers, controls */\n.surface {\n background-color: oklab(1 0 0 / 0.1);\n backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);\n box-shadow:\n inset 0 0 0 1px oklab(1 0 0 / 0.15),\n 0 0 0 1px oklab(0 0 0 / 0.15),\n oklab(0 0 0 / 0.15) 0px 1px 3px 0px,\n oklab(0 0 0 / 0.15) 0px 1px 2px -1px;\n}\n@media (prefers-reduced-transparency: reduce) {\n .surface {\n background-color: oklab(0 0 0 / 0.7);\n box-shadow:\n inset 0 0 0 1px oklab(0 0 0),\n 0 0 0 1px oklab(1 0 0 / 0.2);\n }\n}\n@media (prefers-contrast: more) {\n .surface {\n background-color: oklab(0 0 0 / 0.9);\n box-shadow:\n inset 0 0 0 1px oklab(0 0 0),\n 0 0 0 1px oklab(1 0 0 / 0.2);\n }\n}\n\n/* Media Control Bar UI/Styles */\n.control-bar {\n position: absolute;\n bottom: 0.75rem;\n inset-inline: 0.75rem;\n padding: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.125rem;\n border-radius: calc(infinity * 1px);\n will-change: scale, transform, filter, opacity;\n scale: 0.9;\n opacity: 0;\n filter: blur(8px);\n transition-property: scale, transform, filter, opacity;\n transition-delay: 500ms;\n transition-duration: 300ms;\n transition-timing-function: ease-out;\n transform-origin: bottom;\n color: oklab(1 0 0);\n}\nmedia-container:hover > .control-bar,\nmedia-container:has([data-paused]) > .control-bar,\nmedia-container:has([aria-expanded='true']) > .control-bar {\n opacity: 1;\n scale: 1;\n filter: blur(0px);\n transition-delay: 0ms;\n transition-duration: 100ms;\n}\n\n/* Time Display Styling */\n.time-controls {\n display: flex;\n align-items: center;\n flex: 1;\n gap: 0.75rem;\n padding-inline: 0.375rem;\n}\nmedia-current-time-display,\nmedia-duration-display {\n text-shadow: 0 1px 0 oklab(0 0 0 / 0.25);\n font-variant-numeric: tabular-nums;\n}\n\n/* Generic Media Button Styling */\n.button {\n display: grid;\n flex-shrink: 0;\n padding: 0.5rem;\n cursor: pointer;\n background: transparent;\n border: none;\n border-radius: calc(infinity * 1px);\n color: oklab(1 0 0 / 0.9);\n user-select: none;\n outline: 2px solid transparent;\n outline-offset: -2px;\n transition-property: background-color, color, outline-offset;\n transition-duration: 150ms;\n transition-timing-function: ease-out;\n}\n.button:hover,\n.button:focus-visible,\n.button[aria-expanded='true'] {\n background-color: oklab(1 0 0 / 0.1);\n color: oklab(1 0 0);\n text-decoration: none;\n}\n.button:focus-visible {\n outline-color: oklch(62.3% 0.214 259.815);\n outline-offset: 2px;\n}\n.button[disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n filter: grayscale(1);\n}\n\n.button .icon {\n grid-area: 1 / 1;\n width: 18px;\n height: 18px;\n filter: drop-shadow(0 1px 0 oklab(0 0 0 / 0.25));\n}\n\n/* Media Play Button UI/Styles */\nmedia-play-button .icon {\n opacity: 0;\n transition: opacity 150ms linear;\n}\n\nmedia-play-button:not([data-paused]) .pause-icon,\nmedia-play-button[data-paused] .play-icon {\n opacity: 1;\n}\n\n/* Media Fullscreen Button UI/Styles */\nmedia-fullscreen-button .icon {\n display: none;\n}\nmedia-fullscreen-button:not([data-fullscreen]) .fullscreen-enter-icon,\nmedia-fullscreen-button[data-fullscreen] .fullscreen-exit-icon {\n display: inline;\n}\n\n/* One way to define the \"default visible\" icon (CJP) */\nmedia-mute-button .icon {\n display: none;\n}\nmedia-mute-button:not([data-volume-level]) .volume-low-icon,\nmedia-mute-button[data-volume-level='high'] .volume-high-icon,\nmedia-mute-button[data-volume-level='low'] .volume-low-icon,\nmedia-mute-button[data-volume-level='medium'] .volume-low-icon,\nmedia-mute-button[data-volume-level='off'] .volume-off-icon {\n display: inline;\n}\n\n/* TimeSlider Component Styles */\n.slider {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n border-radius: calc(infinity * 1px);\n outline: none;\n}\n\n/* Horizontal orientation styles */\n.slider[data-orientation='horizontal'] {\n min-width: 5rem;\n width: 100%;\n height: 1.25rem;\n}\n\n/* Vertical orientation styles */\n.slider[data-orientation='vertical'] {\n height: 5rem;\n width: 1.25rem;\n}\n\n.slider-track {\n position: relative;\n isolation: isolate;\n background-color: oklab(1 0 0 / 0.2);\n border-radius: inherit;\n overflow: hidden;\n user-select: none;\n outline: 2px solid transparent;\n outline-offset: -2px;\n transition: outline-offset 150ms ease-out;\n box-shadow: 0 0 0 1px oklab(0 0 0 / 0.05);\n}\n\n/* Horizontal track styles */\n.slider-track[data-orientation='horizontal'] {\n width: 100%;\n height: 0.25rem;\n}\n\n/* Vertical track styles */\n.slider-track[data-orientation='vertical'] {\n width: 0.25rem;\n height: 100%;\n}\n\n.slider:focus-visible .slider-track {\n outline-color: oklch(62.3% 0.214 259.815);\n outline-offset: 6px;\n}\n\n.slider-thumb {\n width: 0.625rem;\n height: 0.625rem;\n background-color: oklab(1 0 0);\n border-radius: calc(infinity * 1px);\n user-select: none;\n z-index: 10;\n box-shadow:\n 0 0 0 1px oklab(0 0 0 / 0.1),\n 0 1px 3px 0 oklab(0 0 0 / 0.15),\n 0 1px 2px -1px oklab(0 0 0 / 0.15);\n opacity: 0;\n transition-property: opacity, height, width;\n transition-duration: 150ms;\n transition-timing-function: ease-out;\n}\n.slider-thumb:active {\n width: 0.75rem;\n height: 0.75rem;\n}\n.slider:hover .slider-thumb,\n.slider:focus-within .slider-thumb {\n opacity: 1;\n}\n.slider-track[data-orientation='horizontal'] .slider-thumb {\n cursor: ew-resize;\n}\n.slider-track[data-orientation='vertical'] .slider-thumb {\n cursor: ns-resize;\n}\n\n.slider-pointer {\n background-color: oklab(1 0 0 / 0.2);\n border-radius: inherit;\n}\n\n.slider-progress {\n background-color: oklab(1 0 0);\n border-radius: inherit;\n}\n\nmedia-preview-time-display {\n font-variant-numeric: tabular-nums;\n}\n\n.popup-animation {\n transition-property: transform, scale, opacity, filter;\n transition-duration: 200ms;\n transform: scale(1);\n transform-origin: bottom;\n opacity: 1;\n filter: blur(0px);\n}\n.popup-animation[data-starting-style],\n.popup-animation[data-ending-style] {\n transform: scale(0);\n opacity: 0;\n filter: blur(8px);\n}\n.popup-animation[data-instant] {\n transition-duration: 0ms;\n}\n\nmedia-popover {\n margin: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n padding: 0.75rem 0.25rem;\n border-radius: calc(infinity * 1px);\n}\n\n/* Tooltip Component Styles */\nmedia-tooltip {\n margin: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n color: oklab(1 0 0);\n padding: 0.25rem 0.625rem;\n border-radius: calc(infinity * 1px);\n font-size: 0.75rem;\n}\n\n.tooltip {\n display: none;\n white-space: nowrap;\n}\n\n[data-paused] + media-tooltip .play-tooltip,\n:not([data-paused]) + media-tooltip .pause-tooltip {\n display: block;\n}\n\n[data-fullscreen] + media-tooltip .fullscreen-exit-tooltip,\n:not([data-fullscreen]) + media-tooltip .fullscreen-enter-tooltip {\n display: block;\n}\n";
33
-
34
- //#endregion
35
- //#region src/skins/frosted/index.ts
36
- function getTemplateHTML() {
37
- return `
38
- ${MediaSkinElement.getTemplateHTML()}
39
- <style>${styles_default}</style>
40
-
41
- <media-container>
42
- <slot name="media" slot="media"></slot>
43
-
44
- <div class="overlay"></div>
45
-
46
- <div class="control-bar surface">
47
- <!-- NOTE: We can decide if we further want to provide a further, "themed" media-play-button that comes with baked in default styles and icons. (CJP) -->
48
-
49
- <media-play-button commandfor="play-tooltip" class="button">
50
- <media-play-icon class="icon play-icon"></media-play-icon>
51
- <media-pause-icon class="icon pause-icon"></media-pause-icon>
52
- </media-play-button>
53
- <media-tooltip
54
- id="play-tooltip"
55
- class="surface popup-animation"
56
- popover="manual"
57
- delay="500"
58
- side="top"
59
- side-offset="12"
60
- collision-padding="12"
61
- >
62
- <span class="tooltip play-tooltip">Play</span>
63
- <span class="tooltip pause-tooltip">Pause</span>
64
- </media-tooltip>
65
-
66
- <div class="time-controls">
67
- <!-- Use the show-remaining attribute to show count down/remaining time -->
68
- <media-current-time-display></media-current-time-display>
69
-
70
- <media-time-slider commandfor="time-slider-tooltip" class="slider">
71
- <media-time-slider-track class="slider-track">
72
- <media-time-slider-progress class="slider-progress"></media-time-slider-progress>
73
- <media-time-slider-pointer class="slider-pointer"></media-time-slider-pointer>
74
- </media-time-slider-track>
75
- <media-time-slider-thumb class="slider-thumb"></media-time-slider-thumb>
76
- </media-time-slider>
77
- <media-tooltip
78
- id="time-slider-tooltip"
79
- class="surface popup-animation"
80
- popover="manual"
81
- track-cursor-axis="x"
82
- side="top"
83
- side-offset="18"
84
- collision-padding="12"
85
- >
86
- <media-preview-time-display></media-preview-time-display>
87
- </media-tooltip>
88
-
89
- <media-duration-display></media-duration-display>
90
- </div>
91
-
92
- <media-mute-button commandfor="volume-slider-popover" command="toggle-popover" class="button">
93
- <media-volume-high-icon class="icon volume-high-icon"></media-volume-high-icon>
94
- <media-volume-low-icon class="icon volume-low-icon"></media-volume-low-icon>
95
- <media-volume-off-icon class="icon volume-off-icon"></media-volume-off-icon>
96
- </media-mute-button>
97
- <media-popover
98
- id="volume-slider-popover"
99
- class="surface popup-animation"
100
- popover="manual"
101
- open-on-hover
102
- delay="200"
103
- close-delay="100"
104
- side="top"
105
- side-offset="12"
106
- collision-padding="12"
107
- >
108
- <media-volume-slider class="slider" orientation="vertical">
109
- <media-volume-slider-track class="slider-track">
110
- <media-volume-slider-indicator class="slider-progress"></media-volume-slider-indicator>
111
- </media-volume-slider-track>
112
- <media-volume-slider-thumb class="slider-thumb"></media-volume-slider-thumb>
113
- </media-volume-slider>
114
- </media-popover>
115
-
116
- <media-fullscreen-button commandfor="fullscreen-tooltip" class="button">
117
- <media-fullscreen-enter-icon class="icon fullscreen-enter-icon"></media-fullscreen-enter-icon>
118
- <media-fullscreen-exit-icon class="icon fullscreen-exit-icon"></media-fullscreen-exit-icon>
119
- </media-fullscreen-button>
120
- <media-tooltip
121
- id="fullscreen-tooltip"
122
- class="surface popup-animation"
123
- popover="manual"
124
- delay="500"
125
- side="top"
126
- side-offset="12"
127
- collision-padding="12"
128
- >
129
- <span class="tooltip fullscreen-enter-tooltip">Enter Fullscreen</span>
130
- <span class="tooltip fullscreen-exit-tooltip">Exit Fullscreen</span>
131
- </media-tooltip>
132
- </div>
133
- </media-container>
134
- `;
135
- }
136
- var MediaSkinFrostedElement = class extends MediaSkinElement {
137
- static {
138
- this.getTemplateHTML = getTemplateHTML;
139
- }
140
- };
141
- defineCustomElement("media-skin-frosted", MediaSkinFrostedElement);
142
-
143
- //#endregion
144
- export { MediaSkinFrostedElement, getTemplateHTML };
145
- //# sourceMappingURL=frosted.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frosted.js","names":["styles"],"sources":["../../src/skins/frosted/styles.css","../../src/skins/frosted/index.ts"],"sourcesContent":["\"media-container * {\\n box-sizing: border-box;\\n}\\n\\nmedia-container {\\n position: relative;\\n isolation: isolate;\\n container: root / inline-size;\\n overflow: clip;\\n border-radius: var(--frosted-border-radius, 2rem);\\n background: oklab(0 0 0);\\n font-family: ui-sans-serif, system-ui, sans-serif;\\n font-size: 0.8125rem;\\n line-height: 1.5;\\n -webkit-font-smoothing: auto;\\n -moz-osx-font-smoothing: auto;\\n}\\nmedia-container::before,\\nmedia-container::after {\\n content: '';\\n position: absolute;\\n pointer-events: none;\\n border-radius: inherit;\\n z-index: 10;\\n}\\nmedia-container::before {\\n inset: 1px;\\n box-shadow: inset 0 0 0 1px oklab(1 0 0 / 0.15);\\n}\\nmedia-container::after {\\n inset: 0;\\n box-shadow: inset 0 0 0 1px oklab(0 0 0 / 0.1);\\n}\\n\\n/* Fullscreen */\\nmedia-container:fullscreen {\\n border-radius: 0;\\n}\\n\\nmedia-container > ::slotted([slot='media']) {\\n display: block;\\n width: 100%;\\n height: 100%;\\n}\\n\\n/* Media Container UI Overlay Styling */\\nmedia-container > .overlay {\\n position: absolute;\\n inset: 0;\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: start;\\n pointer-events: none;\\n border-radius: inherit;\\n background-image: linear-gradient(to top, oklab(0 0 0 / 0.5), oklab(0 0 0 / 0.3), rgba(0, 0, 0, 0));\\n backdrop-filter: saturate(1.5) brightness(0.9);\\n transition: opacity 0.15s ease-out;\\n transition-delay: 500ms;\\n opacity: 0;\\n}\\nmedia-container:hover > .overlay,\\nmedia-container:has([data-paused]) > .overlay,\\nmedia-container:has([aria-expanded='true']) > .overlay {\\n opacity: 1;\\n transition-duration: 100ms;\\n transition-delay: 0ms;\\n}\\n\\n/* Common Surface Styles - e.g. tooltips, popovers, controls */\\n.surface {\\n background-color: oklab(1 0 0 / 0.1);\\n backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);\\n box-shadow:\\n inset 0 0 0 1px oklab(1 0 0 / 0.15),\\n 0 0 0 1px oklab(0 0 0 / 0.15),\\n oklab(0 0 0 / 0.15) 0px 1px 3px 0px,\\n oklab(0 0 0 / 0.15) 0px 1px 2px -1px;\\n}\\n@media (prefers-reduced-transparency: reduce) {\\n .surface {\\n background-color: oklab(0 0 0 / 0.7);\\n box-shadow:\\n inset 0 0 0 1px oklab(0 0 0),\\n 0 0 0 1px oklab(1 0 0 / 0.2);\\n }\\n}\\n@media (prefers-contrast: more) {\\n .surface {\\n background-color: oklab(0 0 0 / 0.9);\\n box-shadow:\\n inset 0 0 0 1px oklab(0 0 0),\\n 0 0 0 1px oklab(1 0 0 / 0.2);\\n }\\n}\\n\\n/* Media Control Bar UI/Styles */\\n.control-bar {\\n position: absolute;\\n bottom: 0.75rem;\\n inset-inline: 0.75rem;\\n padding: 0.25rem;\\n display: flex;\\n align-items: center;\\n gap: 0.125rem;\\n border-radius: calc(infinity * 1px);\\n will-change: scale, transform, filter, opacity;\\n scale: 0.9;\\n opacity: 0;\\n filter: blur(8px);\\n transition-property: scale, transform, filter, opacity;\\n transition-delay: 500ms;\\n transition-duration: 300ms;\\n transition-timing-function: ease-out;\\n transform-origin: bottom;\\n color: oklab(1 0 0);\\n}\\nmedia-container:hover > .control-bar,\\nmedia-container:has([data-paused]) > .control-bar,\\nmedia-container:has([aria-expanded='true']) > .control-bar {\\n opacity: 1;\\n scale: 1;\\n filter: blur(0px);\\n transition-delay: 0ms;\\n transition-duration: 100ms;\\n}\\n\\n/* Time Display Styling */\\n.time-controls {\\n display: flex;\\n align-items: center;\\n flex: 1;\\n gap: 0.75rem;\\n padding-inline: 0.375rem;\\n}\\nmedia-current-time-display,\\nmedia-duration-display {\\n text-shadow: 0 1px 0 oklab(0 0 0 / 0.25);\\n font-variant-numeric: tabular-nums;\\n}\\n\\n/* Generic Media Button Styling */\\n.button {\\n display: grid;\\n flex-shrink: 0;\\n padding: 0.5rem;\\n cursor: pointer;\\n background: transparent;\\n border: none;\\n border-radius: calc(infinity * 1px);\\n color: oklab(1 0 0 / 0.9);\\n user-select: none;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n transition-property: background-color, color, outline-offset;\\n transition-duration: 150ms;\\n transition-timing-function: ease-out;\\n}\\n.button:hover,\\n.button:focus-visible,\\n.button[aria-expanded='true'] {\\n background-color: oklab(1 0 0 / 0.1);\\n color: oklab(1 0 0);\\n text-decoration: none;\\n}\\n.button:focus-visible {\\n outline-color: oklch(62.3% 0.214 259.815);\\n outline-offset: 2px;\\n}\\n.button[disabled] {\\n cursor: not-allowed;\\n opacity: 0.5;\\n filter: grayscale(1);\\n}\\n\\n.button .icon {\\n grid-area: 1 / 1;\\n width: 18px;\\n height: 18px;\\n filter: drop-shadow(0 1px 0 oklab(0 0 0 / 0.25));\\n}\\n\\n/* Media Play Button UI/Styles */\\nmedia-play-button .icon {\\n opacity: 0;\\n transition: opacity 150ms linear;\\n}\\n\\nmedia-play-button:not([data-paused]) .pause-icon,\\nmedia-play-button[data-paused] .play-icon {\\n opacity: 1;\\n}\\n\\n/* Media Fullscreen Button UI/Styles */\\nmedia-fullscreen-button .icon {\\n display: none;\\n}\\nmedia-fullscreen-button:not([data-fullscreen]) .fullscreen-enter-icon,\\nmedia-fullscreen-button[data-fullscreen] .fullscreen-exit-icon {\\n display: inline;\\n}\\n\\n/* One way to define the \\\"default visible\\\" icon (CJP) */\\nmedia-mute-button .icon {\\n display: none;\\n}\\nmedia-mute-button:not([data-volume-level]) .volume-low-icon,\\nmedia-mute-button[data-volume-level='high'] .volume-high-icon,\\nmedia-mute-button[data-volume-level='low'] .volume-low-icon,\\nmedia-mute-button[data-volume-level='medium'] .volume-low-icon,\\nmedia-mute-button[data-volume-level='off'] .volume-off-icon {\\n display: inline;\\n}\\n\\n/* TimeSlider Component Styles */\\n.slider {\\n flex: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n border-radius: calc(infinity * 1px);\\n outline: none;\\n}\\n\\n/* Horizontal orientation styles */\\n.slider[data-orientation='horizontal'] {\\n min-width: 5rem;\\n width: 100%;\\n height: 1.25rem;\\n}\\n\\n/* Vertical orientation styles */\\n.slider[data-orientation='vertical'] {\\n height: 5rem;\\n width: 1.25rem;\\n}\\n\\n.slider-track {\\n position: relative;\\n isolation: isolate;\\n background-color: oklab(1 0 0 / 0.2);\\n border-radius: inherit;\\n overflow: hidden;\\n user-select: none;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n transition: outline-offset 150ms ease-out;\\n box-shadow: 0 0 0 1px oklab(0 0 0 / 0.05);\\n}\\n\\n/* Horizontal track styles */\\n.slider-track[data-orientation='horizontal'] {\\n width: 100%;\\n height: 0.25rem;\\n}\\n\\n/* Vertical track styles */\\n.slider-track[data-orientation='vertical'] {\\n width: 0.25rem;\\n height: 100%;\\n}\\n\\n.slider:focus-visible .slider-track {\\n outline-color: oklch(62.3% 0.214 259.815);\\n outline-offset: 6px;\\n}\\n\\n.slider-thumb {\\n width: 0.625rem;\\n height: 0.625rem;\\n background-color: oklab(1 0 0);\\n border-radius: calc(infinity * 1px);\\n user-select: none;\\n z-index: 10;\\n box-shadow:\\n 0 0 0 1px oklab(0 0 0 / 0.1),\\n 0 1px 3px 0 oklab(0 0 0 / 0.15),\\n 0 1px 2px -1px oklab(0 0 0 / 0.15);\\n opacity: 0;\\n transition-property: opacity, height, width;\\n transition-duration: 150ms;\\n transition-timing-function: ease-out;\\n}\\n.slider-thumb:active {\\n width: 0.75rem;\\n height: 0.75rem;\\n}\\n.slider:hover .slider-thumb,\\n.slider:focus-within .slider-thumb {\\n opacity: 1;\\n}\\n.slider-track[data-orientation='horizontal'] .slider-thumb {\\n cursor: ew-resize;\\n}\\n.slider-track[data-orientation='vertical'] .slider-thumb {\\n cursor: ns-resize;\\n}\\n\\n.slider-pointer {\\n background-color: oklab(1 0 0 / 0.2);\\n border-radius: inherit;\\n}\\n\\n.slider-progress {\\n background-color: oklab(1 0 0);\\n border-radius: inherit;\\n}\\n\\nmedia-preview-time-display {\\n font-variant-numeric: tabular-nums;\\n}\\n\\n.popup-animation {\\n transition-property: transform, scale, opacity, filter;\\n transition-duration: 200ms;\\n transform: scale(1);\\n transform-origin: bottom;\\n opacity: 1;\\n filter: blur(0px);\\n}\\n.popup-animation[data-starting-style],\\n.popup-animation[data-ending-style] {\\n transform: scale(0);\\n opacity: 0;\\n filter: blur(8px);\\n}\\n.popup-animation[data-instant] {\\n transition-duration: 0ms;\\n}\\n\\nmedia-popover {\\n margin: 0;\\n border: none;\\n box-shadow: none;\\n background: transparent;\\n padding: 0.75rem 0.25rem;\\n border-radius: calc(infinity * 1px);\\n}\\n\\n/* Tooltip Component Styles */\\nmedia-tooltip {\\n margin: 0;\\n border: none;\\n box-shadow: none;\\n background: transparent;\\n color: oklab(1 0 0);\\n padding: 0.25rem 0.625rem;\\n border-radius: calc(infinity * 1px);\\n font-size: 0.75rem;\\n}\\n\\n.tooltip {\\n display: none;\\n white-space: nowrap;\\n}\\n\\n[data-paused] + media-tooltip .play-tooltip,\\n:not([data-paused]) + media-tooltip .pause-tooltip {\\n display: block;\\n}\\n\\n[data-fullscreen] + media-tooltip .fullscreen-exit-tooltip,\\n:not([data-fullscreen]) + media-tooltip .fullscreen-enter-tooltip {\\n display: block;\\n}\\n\"","import { MediaSkinElement } from '@/media/media-skin';\nimport { defineCustomElement } from '@/utils/custom-element';\nimport styles from './styles.css';\n// be sure to import video-provider first for proper context initialization\nimport '@/define/video-provider';\nimport '@/define/media-container';\nimport '@/define/media-play-button';\nimport '@/define/media-mute-button';\nimport '@/define/media-volume-slider';\nimport '@/define/media-time-slider';\nimport '@/define/media-fullscreen-button';\nimport '@/define/media-duration-display';\nimport '@/define/media-current-time-display';\nimport '@/define/media-preview-time-display';\nimport '@/define/media-popover';\nimport '@/define/media-tooltip';\nimport '@/icons';\n\nexport function getTemplateHTML() {\n return /* html */`\n ${MediaSkinElement.getTemplateHTML()}\n <style>${styles}</style>\n\n <media-container>\n <slot name=\"media\" slot=\"media\"></slot>\n\n <div class=\"overlay\"></div>\n\n <div class=\"control-bar surface\">\n <!-- NOTE: We can decide if we further want to provide a further, \"themed\" media-play-button that comes with baked in default styles and icons. (CJP) -->\n\n <media-play-button commandfor=\"play-tooltip\" class=\"button\">\n <media-play-icon class=\"icon play-icon\"></media-play-icon>\n <media-pause-icon class=\"icon pause-icon\"></media-pause-icon>\n </media-play-button>\n <media-tooltip\n id=\"play-tooltip\"\n class=\"surface popup-animation\"\n popover=\"manual\"\n delay=\"500\"\n side=\"top\"\n side-offset=\"12\"\n collision-padding=\"12\"\n >\n <span class=\"tooltip play-tooltip\">Play</span>\n <span class=\"tooltip pause-tooltip\">Pause</span>\n </media-tooltip>\n\n <div class=\"time-controls\">\n <!-- Use the show-remaining attribute to show count down/remaining time -->\n <media-current-time-display></media-current-time-display>\n\n <media-time-slider commandfor=\"time-slider-tooltip\" class=\"slider\">\n <media-time-slider-track class=\"slider-track\">\n <media-time-slider-progress class=\"slider-progress\"></media-time-slider-progress>\n <media-time-slider-pointer class=\"slider-pointer\"></media-time-slider-pointer>\n </media-time-slider-track>\n <media-time-slider-thumb class=\"slider-thumb\"></media-time-slider-thumb>\n </media-time-slider>\n <media-tooltip\n id=\"time-slider-tooltip\"\n class=\"surface popup-animation\"\n popover=\"manual\"\n track-cursor-axis=\"x\"\n side=\"top\"\n side-offset=\"18\"\n collision-padding=\"12\"\n >\n <media-preview-time-display></media-preview-time-display>\n </media-tooltip>\n\n <media-duration-display></media-duration-display>\n </div>\n\n <media-mute-button commandfor=\"volume-slider-popover\" command=\"toggle-popover\" class=\"button\">\n <media-volume-high-icon class=\"icon volume-high-icon\"></media-volume-high-icon>\n <media-volume-low-icon class=\"icon volume-low-icon\"></media-volume-low-icon>\n <media-volume-off-icon class=\"icon volume-off-icon\"></media-volume-off-icon>\n </media-mute-button>\n <media-popover\n id=\"volume-slider-popover\"\n class=\"surface popup-animation\"\n popover=\"manual\"\n open-on-hover\n delay=\"200\"\n close-delay=\"100\"\n side=\"top\"\n side-offset=\"12\"\n collision-padding=\"12\"\n >\n <media-volume-slider class=\"slider\" orientation=\"vertical\">\n <media-volume-slider-track class=\"slider-track\">\n <media-volume-slider-indicator class=\"slider-progress\"></media-volume-slider-indicator>\n </media-volume-slider-track>\n <media-volume-slider-thumb class=\"slider-thumb\"></media-volume-slider-thumb>\n </media-volume-slider>\n </media-popover>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"button\">\n <media-fullscreen-enter-icon class=\"icon fullscreen-enter-icon\"></media-fullscreen-enter-icon>\n <media-fullscreen-exit-icon class=\"icon fullscreen-exit-icon\"></media-fullscreen-exit-icon>\n </media-fullscreen-button>\n <media-tooltip\n id=\"fullscreen-tooltip\"\n class=\"surface popup-animation\"\n popover=\"manual\"\n delay=\"500\"\n side=\"top\"\n side-offset=\"12\"\n collision-padding=\"12\"\n >\n <span class=\"tooltip fullscreen-enter-tooltip\">Enter Fullscreen</span>\n <span class=\"tooltip fullscreen-exit-tooltip\">Exit Fullscreen</span>\n </media-tooltip>\n </div>\n </media-container>\n `;\n}\n\nexport class MediaSkinFrostedElement extends MediaSkinElement {\n static getTemplateHTML: () => string = getTemplateHTML;\n}\n\ndefineCustomElement('media-skin-frosted', MediaSkinFrostedElement);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAA;;;;ACkBA,SAAgB,kBAAkB;AAChC,QAAiB;MACb,iBAAiB,iBAAiB,CAAC;aAC5BA,eAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGpB,IAAa,0BAAb,cAA6C,iBAAiB;;yBACrB;;;AAGzC,oBAAoB,sBAAsB,wBAAwB"}
@@ -1,23 +0,0 @@
1
- import "../video-provider-nSCfwA7l.js";
2
- import "../media-container-ChS9lZvf.js";
3
- import "../media-play-button-oq8yDlxe.js";
4
- import "../media-mute-button-NVJF2EEW.js";
5
- import "../media-volume-slider-DP47VLVi.js";
6
- import "../media-time-slider-DvMnfYXZ.js";
7
- import "../media-fullscreen-button-BgUK3lgu.js";
8
- import "../media-duration-display-qvm6YX-q.js";
9
- import "../media-current-time-display-Cd0rPAuj.js";
10
- import "../media-preview-time-display-4YX5Rics.js";
11
- import "../media-popover-BtJmPv0E.js";
12
- import "../media-tooltip-BqV17mdM.js";
13
- import "../index-LKrIp3Oo.js";
14
- import { t as MediaSkinElement } from "../media-skin-Di3vSHvS.js";
15
-
16
- //#region src/skins/minimal/index.d.ts
17
- declare function getTemplateHTML(): string;
18
- declare class MediaSkinMinimalElement extends MediaSkinElement {
19
- static getTemplateHTML: () => string;
20
- }
21
- //#endregion
22
- export { MediaSkinMinimalElement, getTemplateHTML };
23
- //# sourceMappingURL=minimal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minimal.d.ts","names":[],"sources":["../../src/skins/minimal/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;iBAmBgB,eAAA,CAAA;cA0GH,uBAAA,SAAgC,gBAAA;EA1G7C,OAAgB,eAAA,EAAA,GAAA,GAAA,MAAA;AA0GhB"}
@@ -1,150 +0,0 @@
1
- import "../component-factory-C0cl1nrL.js";
2
- import "../current-time-display-DpoDrQu9.js";
3
- import "../duration-display-BFRQmaOz.js";
4
- import "../button-Bu1mGG-F.js";
5
- import "../fullscreen-button-B0R9K3GV.js";
6
- import "../mute-button-C7XQB6iK.js";
7
- import "../play-button-DFbxwrrq.js";
8
- import "../popover-BUCVOjnO.js";
9
- import "../preview-time-display-CtA58pCS.js";
10
- import "../time-slider-DHpKPCI1.js";
11
- import "../tooltip-B-glki2f.js";
12
- import "../volume-slider-CUyfwehe.js";
13
- import "../media-container-BOL0PKuG.js";
14
- import { t as MediaSkinElement } from "../media-skin-CxnuHwhu.js";
15
- import "../video-provider-BKDqoKFf.js";
16
- import { t as defineCustomElement } from "../custom-element-3bDlB2XO.js";
17
- import "../icons-CuxuONCk.js";
18
- import "../video-provider-BPPI5e47.js";
19
- import "../media-container-DwKSOa1h.js";
20
- import "../media-play-button-CDBZrhmx.js";
21
- import "../media-mute-button-Uy18NpPx.js";
22
- import "../media-volume-slider-BB6GhrzS.js";
23
- import "../media-time-slider-BOdJr4QE.js";
24
- import "../media-fullscreen-button-DDQ6EdLz.js";
25
- import "../media-duration-display-tzVLafRm.js";
26
- import "../media-current-time-display-DVCqNt7c.js";
27
- import "../media-preview-time-display-ufqXiNXg.js";
28
- import "../media-popover-Cw9d_Bh3.js";
29
- import "../media-tooltip-CMRN_X4D.js";
30
-
31
- //#region src/skins/minimal/styles.css
32
- var styles_default = "media-container * {\n box-sizing: border-box;\n}\n\nmedia-container {\n position: relative;\n isolation: isolate;\n container: root / inline-size;\n overflow: clip;\n border-radius: var(--minimal-border-radius, 0.75rem);\n background: oklab(0 0 0);\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 0.8125rem;\n line-height: 1.5;\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: auto;\n}\nmedia-container::after {\n content: '';\n position: absolute;\n pointer-events: none;\n border-radius: inherit;\n z-index: 10;\n inset: 0;\n box-shadow: inset 0 0 0 1px oklab(0 0 0 / 0.15);\n}\n@media (prefers-color-scheme: dark) {\n media-container::after {\n box-shadow: inset 0 0 0 1px oklab(1 0 0 / 0.15);\n }\n}\n\n/* Fullscreen */\nmedia-container:fullscreen {\n border-radius: 0;\n}\n\nmedia-container > ::slotted([slot='media']) {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* Media Container UI Overlay Styling */\nmedia-container > .overlay {\n position: absolute;\n inset: 0;\n display: flex;\n flex-flow: column nowrap;\n align-items: start;\n pointer-events: none;\n border-radius: inherit;\n background-image: linear-gradient(to top, oklab(0 0 0 / 0.7), oklab(0 0 0 / 0.5) 7.5rem, rgba(0, 0, 0, 0));\n transform: translateY(100%);\n transition-property: transform, opacity;\n transition-duration: 150ms;\n transition-timing-function: ease-out;\n transition-delay: 500ms;\n opacity: 0;\n}\nmedia-container:hover > .overlay,\nmedia-container:has([data-paused]) > .overlay,\nmedia-container:has([aria-expanded='true']) > .overlay {\n opacity: 1;\n transform: translateY(0);\n transition-duration: 100ms;\n transition-delay: 0ms;\n}\n\n/* Media Control Bar UI/Styles */\n.control-bar {\n position: absolute;\n bottom: 0;\n inset-inline: 0;\n padding: 2.5rem 0.75rem 0.75rem 0.75rem;\n display: flex;\n align-items: center;\n gap: 0.875rem;\n will-change: transform, filter, opacity;\n transform: translateY(100%);\n opacity: 0;\n filter: blur(8px);\n transition-property: transform, filter, opacity;\n transition-delay: 500ms;\n transition-duration: 300ms;\n transition-timing-function: ease-out;\n color: oklab(1 0 0);\n}\nmedia-container:hover > .control-bar,\nmedia-container:has([data-paused]) > .control-bar,\nmedia-container:has([aria-expanded='true']) > .control-bar {\n opacity: 1;\n transform: translateY(0);\n filter: blur(0px);\n transition-delay: 0ms;\n transition-duration: 100ms;\n}\n\n/* Time Display Styling */\n.time-display-group {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.duration-display {\n display: contents;\n color: oklab(1 0 0 / 0.5);\n}\nmedia-current-time-display,\nmedia-duration-display {\n text-shadow: 0 1px 0 oklab(0 0 0 / 0.2);\n font-variant-numeric: tabular-nums;\n}\n\n.button-group {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n}\n\n/* Generic Media Button Styling */\n.button {\n display: grid;\n flex-shrink: 0;\n padding: 0.625rem;\n cursor: pointer;\n background: transparent;\n border: none;\n border-radius: 0.375rem;\n color: oklab(1 0 0);\n user-select: none;\n outline: 2px solid transparent;\n outline-offset: -2px;\n transition-property: background-color, color, outline-offset;\n transition-duration: 150ms;\n transition-timing-function: ease-out;\n}\n.button:hover,\n.button:focus-visible,\n.button[aria-expanded='true'] {\n color: oklab(1 0 0 / 0.8);\n text-decoration: none;\n}\n.button:focus-visible {\n outline-color: oklab(1 0 0);\n outline-offset: 2px;\n}\n.button[disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n filter: grayscale(1);\n}\n\n.button .icon {\n grid-area: 1 / 1;\n width: 18px;\n height: 18px;\n filter: drop-shadow(0 1px 0 oklab(0 0 0 / 0.4));\n}\n\n/* Media Play Button UI/Styles */\nmedia-play-button .icon {\n opacity: 0;\n transition: opacity 150ms linear;\n}\n\nmedia-play-button:not([data-paused]) .pause-icon,\nmedia-play-button[data-paused] .play-icon {\n opacity: 1;\n}\n\n/* Media Fullscreen Button UI/Styles */\nmedia-fullscreen-button .icon {\n display: none;\n}\nmedia-fullscreen-button:not([data-fullscreen]) .fullscreen-enter-icon,\nmedia-fullscreen-button[data-fullscreen] .fullscreen-exit-icon {\n display: inline;\n}\n\n/* One way to define the \"default visible\" icon (CJP) */\nmedia-mute-button .icon {\n display: none;\n}\nmedia-mute-button:not([data-volume-level]) .volume-low-icon,\nmedia-mute-button[data-volume-level='high'] .volume-high-icon,\nmedia-mute-button[data-volume-level='low'] .volume-low-icon,\nmedia-mute-button[data-volume-level='medium'] .volume-low-icon,\nmedia-mute-button[data-volume-level='off'] .volume-off-icon {\n display: inline;\n}\n\n/* TimeSlider Component Styles */\n.slider {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n border-radius: calc(infinity * 1px);\n outline: none;\n}\n\n/* Horizontal orientation styles */\n.slider[data-orientation='horizontal'] {\n min-width: 5rem;\n width: 100%;\n height: 1.25rem;\n}\n\n/* Vertical orientation styles */\n.slider[data-orientation='vertical'] {\n height: 4.5rem;\n width: 1.25rem;\n}\n\n.slider-track {\n position: relative;\n isolation: isolate;\n background-color: oklab(1 0 0 / 0.2);\n border-radius: inherit;\n overflow: hidden;\n user-select: none;\n outline: 2px solid transparent;\n outline-offset: -2px;\n transition: outline-offset 150ms ease-out;\n box-shadow: 0 0 0 1px oklab(0 0 0 / 0.05);\n}\n\n/* Horizontal track styles */\n.slider-track[data-orientation='horizontal'] {\n width: 100%;\n height: 0.1875rem;\n}\n\n/* Vertical track styles */\n.slider-track[data-orientation='vertical'] {\n width: 0.1875rem;\n height: 100%;\n}\n\n.slider:focus-visible .slider-track {\n outline-color: oklab(1 0 0);\n outline-offset: 6px;\n}\n\n.slider-thumb {\n width: 0.75rem;\n height: 0.75rem;\n background-color: oklab(1 0 0);\n border-radius: calc(infinity * 1px);\n user-select: none;\n z-index: 10;\n box-shadow:\n 0 0 0 1px oklab(0 0 0 / 0.1),\n 0 1px 3px 0 oklab(0 0 0 / 0.15),\n 0 1px 2px -1px oklab(0 0 0 / 0.15);\n opacity: 0;\n scale: 0.7;\n transform-origin: center;\n transition-property: opacity, scale;\n transition-duration: 150ms;\n transition-timing-function: ease-out;\n}\n.slider:hover .slider-thumb,\n.slider:focus-within .slider-thumb {\n opacity: 1;\n scale: 1;\n}\n.slider-track[data-orientation='horizontal'] .slider-thumb {\n cursor: ew-resize;\n}\n.slider-track[data-orientation='vertical'] .slider-thumb {\n cursor: ns-resize;\n}\n\n.slider-pointer {\n display: none;\n}\n\n.slider-progress {\n background-color: oklab(1 0 0);\n border-radius: inherit;\n}\n\nmedia-preview-time-display {\n font-variant-numeric: tabular-nums;\n}\n\n.popup-animation {\n transition-property: transform, scale, opacity, filter;\n transition-duration: 200ms;\n transform: scale(1);\n transform-origin: bottom;\n opacity: 1;\n filter: blur(0px);\n}\n.popup-animation[data-starting-style],\n.popup-animation[data-ending-style] {\n transform: scale(0);\n opacity: 0;\n filter: blur(8px);\n}\n.popup-animation[data-instant] {\n transition-duration: 0ms;\n}\n\nmedia-popover {\n margin: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n padding: 0.75rem 0.25rem;\n border-radius: calc(infinity * 1px);\n}\n\n/* Tooltip Component Styles */\nmedia-tooltip {\n margin: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n color: oklab(1 0 0);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n background-color: oklab(1 0 0 / 0.1);\n backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);\n box-shadow:\n 0 4px 6px -1px oklab(0 0 0 / 0.1),\n 0 2px 4px -2px oklab(0 0 0 / 0.1);\n}\n@media (prefers-reduced-transparency: reduce) {\n media-tooltip {\n background-color: oklab(0 0 0 / 0.7);\n }\n}\n@media (prefers-contrast: more) {\n media-tooltip {\n background-color: oklab(0 0 0 / 0.9);\n }\n}\n\n.tooltip {\n display: none;\n white-space: nowrap;\n}\n\n[data-paused] + media-tooltip .play-tooltip,\n:not([data-paused]) + media-tooltip .pause-tooltip {\n display: block;\n}\n\n[data-fullscreen] + media-tooltip .fullscreen-exit-tooltip,\n:not([data-fullscreen]) + media-tooltip .fullscreen-enter-tooltip {\n display: block;\n}\n";
33
-
34
- //#endregion
35
- //#region src/skins/minimal/index.ts
36
- function getTemplateHTML() {
37
- return `
38
- ${MediaSkinElement.getTemplateHTML()}
39
- <style>${styles_default}</style>
40
-
41
- <media-container>
42
- <slot name="media" slot="media"></slot>
43
-
44
- <div class="overlay"></div>
45
-
46
- <div class="control-bar">
47
- <!-- NOTE: We can decide if we further want to provide a further, "themed" media-play-button that comes with baked in default styles and icons. (CJP) -->
48
-
49
- <media-play-button commandfor="play-tooltip" class="button">
50
- <media-play-icon class="icon play-icon"></media-play-icon>
51
- <media-pause-icon class="icon pause-icon"></media-pause-icon>
52
- </media-play-button>
53
- <media-tooltip
54
- id="play-tooltip"
55
- class="popup-animation"
56
- popover="manual"
57
- delay="500"
58
- side="top"
59
- side-offset="6"
60
- collision-padding="12"
61
- >
62
- <span class="tooltip play-tooltip">Play</span>
63
- <span class="tooltip pause-tooltip">Pause</span>
64
- </media-tooltip>
65
-
66
- <div class="time-display-group">
67
- <!-- Use the show-remaining attribute to show count down/remaining time -->
68
- <media-current-time-display></media-current-time-display>
69
-
70
- <span class="duration-display">
71
- /
72
- <media-duration-display></media-duration-display>
73
- </span>
74
- </div>
75
-
76
- <media-time-slider commandfor="time-slider-tooltip" class="slider">
77
- <media-time-slider-track class="slider-track">
78
- <media-time-slider-progress class="slider-progress"></media-time-slider-progress>
79
- <media-time-slider-pointer class="slider-pointer"></media-time-slider-pointer>
80
- </media-time-slider-track>
81
- <media-time-slider-thumb class="slider-thumb"></media-time-slider-thumb>
82
- </media-time-slider>
83
- <media-tooltip
84
- id="time-slider-tooltip"
85
- class="popup-animation"
86
- popover="manual"
87
- track-cursor-axis="x"
88
- side="top"
89
- side-offset="12"
90
- collision-padding="12"
91
- >
92
- <media-preview-time-display></media-preview-time-display>
93
- </media-tooltip>
94
-
95
- <div class="button-group">
96
- <media-mute-button commandfor="volume-slider-popover" command="toggle-popover" class="button">
97
- <media-volume-high-icon class="icon volume-high-icon"></media-volume-high-icon>
98
- <media-volume-low-icon class="icon volume-low-icon"></media-volume-low-icon>
99
- <media-volume-off-icon class="icon volume-off-icon"></media-volume-off-icon>
100
- </media-mute-button>
101
- <media-popover
102
- id="volume-slider-popover"
103
- class="popup-animation"
104
- popover="manual"
105
- open-on-hover
106
- delay="200"
107
- close-delay="100"
108
- side="top"
109
- side-offset="2"
110
- collision-padding="12"
111
- >
112
- <media-volume-slider class="slider" orientation="vertical">
113
- <media-volume-slider-track class="slider-track">
114
- <media-volume-slider-indicator class="slider-progress"></media-volume-slider-indicator>
115
- </media-volume-slider-track>
116
- <media-volume-slider-thumb class="slider-thumb"></media-volume-slider-thumb>
117
- </media-volume-slider>
118
- </media-popover>
119
-
120
- <media-fullscreen-button commandfor="fullscreen-tooltip" class="button">
121
- <media-fullscreen-enter-alt-icon class="icon fullscreen-enter-icon"></media-fullscreen-enter-alt-icon>
122
- <media-fullscreen-exit-alt-icon class="icon fullscreen-exit-icon"></media-fullscreen-exit-icon>
123
- </media-fullscreen-button>
124
- <media-tooltip
125
- id="fullscreen-tooltip"
126
- class="popup-animation"
127
- popover="manual"
128
- delay="500"
129
- side="top"
130
- side-offset="6"
131
- collision-padding="12"
132
- >
133
- <span class="tooltip fullscreen-enter-tooltip">Enter Fullscreen</span>
134
- <span class="tooltip fullscreen-exit-tooltip">Exit Fullscreen</span>
135
- </media-tooltip>
136
- </div>
137
- </div>
138
- </media-container>
139
- `;
140
- }
141
- var MediaSkinMinimalElement = class extends MediaSkinElement {
142
- static {
143
- this.getTemplateHTML = getTemplateHTML;
144
- }
145
- };
146
- defineCustomElement("media-skin-minimal", MediaSkinMinimalElement);
147
-
148
- //#endregion
149
- export { MediaSkinMinimalElement, getTemplateHTML };
150
- //# sourceMappingURL=minimal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minimal.js","names":["styles"],"sources":["../../src/skins/minimal/styles.css","../../src/skins/minimal/index.ts"],"sourcesContent":["\"media-container * {\\n box-sizing: border-box;\\n}\\n\\nmedia-container {\\n position: relative;\\n isolation: isolate;\\n container: root / inline-size;\\n overflow: clip;\\n border-radius: var(--minimal-border-radius, 0.75rem);\\n background: oklab(0 0 0);\\n font-family: ui-sans-serif, system-ui, sans-serif;\\n font-size: 0.8125rem;\\n line-height: 1.5;\\n -webkit-font-smoothing: auto;\\n -moz-osx-font-smoothing: auto;\\n}\\nmedia-container::after {\\n content: '';\\n position: absolute;\\n pointer-events: none;\\n border-radius: inherit;\\n z-index: 10;\\n inset: 0;\\n box-shadow: inset 0 0 0 1px oklab(0 0 0 / 0.15);\\n}\\n@media (prefers-color-scheme: dark) {\\n media-container::after {\\n box-shadow: inset 0 0 0 1px oklab(1 0 0 / 0.15);\\n }\\n}\\n\\n/* Fullscreen */\\nmedia-container:fullscreen {\\n border-radius: 0;\\n}\\n\\nmedia-container > ::slotted([slot='media']) {\\n display: block;\\n width: 100%;\\n height: 100%;\\n}\\n\\n/* Media Container UI Overlay Styling */\\nmedia-container > .overlay {\\n position: absolute;\\n inset: 0;\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: start;\\n pointer-events: none;\\n border-radius: inherit;\\n background-image: linear-gradient(to top, oklab(0 0 0 / 0.7), oklab(0 0 0 / 0.5) 7.5rem, rgba(0, 0, 0, 0));\\n transform: translateY(100%);\\n transition-property: transform, opacity;\\n transition-duration: 150ms;\\n transition-timing-function: ease-out;\\n transition-delay: 500ms;\\n opacity: 0;\\n}\\nmedia-container:hover > .overlay,\\nmedia-container:has([data-paused]) > .overlay,\\nmedia-container:has([aria-expanded='true']) > .overlay {\\n opacity: 1;\\n transform: translateY(0);\\n transition-duration: 100ms;\\n transition-delay: 0ms;\\n}\\n\\n/* Media Control Bar UI/Styles */\\n.control-bar {\\n position: absolute;\\n bottom: 0;\\n inset-inline: 0;\\n padding: 2.5rem 0.75rem 0.75rem 0.75rem;\\n display: flex;\\n align-items: center;\\n gap: 0.875rem;\\n will-change: transform, filter, opacity;\\n transform: translateY(100%);\\n opacity: 0;\\n filter: blur(8px);\\n transition-property: transform, filter, opacity;\\n transition-delay: 500ms;\\n transition-duration: 300ms;\\n transition-timing-function: ease-out;\\n color: oklab(1 0 0);\\n}\\nmedia-container:hover > .control-bar,\\nmedia-container:has([data-paused]) > .control-bar,\\nmedia-container:has([aria-expanded='true']) > .control-bar {\\n opacity: 1;\\n transform: translateY(0);\\n filter: blur(0px);\\n transition-delay: 0ms;\\n transition-duration: 100ms;\\n}\\n\\n/* Time Display Styling */\\n.time-display-group {\\n display: flex;\\n align-items: center;\\n gap: 0.25rem;\\n}\\n.duration-display {\\n display: contents;\\n color: oklab(1 0 0 / 0.5);\\n}\\nmedia-current-time-display,\\nmedia-duration-display {\\n text-shadow: 0 1px 0 oklab(0 0 0 / 0.2);\\n font-variant-numeric: tabular-nums;\\n}\\n\\n.button-group {\\n display: flex;\\n align-items: center;\\n gap: 0.375rem;\\n}\\n\\n/* Generic Media Button Styling */\\n.button {\\n display: grid;\\n flex-shrink: 0;\\n padding: 0.625rem;\\n cursor: pointer;\\n background: transparent;\\n border: none;\\n border-radius: 0.375rem;\\n color: oklab(1 0 0);\\n user-select: none;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n transition-property: background-color, color, outline-offset;\\n transition-duration: 150ms;\\n transition-timing-function: ease-out;\\n}\\n.button:hover,\\n.button:focus-visible,\\n.button[aria-expanded='true'] {\\n color: oklab(1 0 0 / 0.8);\\n text-decoration: none;\\n}\\n.button:focus-visible {\\n outline-color: oklab(1 0 0);\\n outline-offset: 2px;\\n}\\n.button[disabled] {\\n cursor: not-allowed;\\n opacity: 0.5;\\n filter: grayscale(1);\\n}\\n\\n.button .icon {\\n grid-area: 1 / 1;\\n width: 18px;\\n height: 18px;\\n filter: drop-shadow(0 1px 0 oklab(0 0 0 / 0.4));\\n}\\n\\n/* Media Play Button UI/Styles */\\nmedia-play-button .icon {\\n opacity: 0;\\n transition: opacity 150ms linear;\\n}\\n\\nmedia-play-button:not([data-paused]) .pause-icon,\\nmedia-play-button[data-paused] .play-icon {\\n opacity: 1;\\n}\\n\\n/* Media Fullscreen Button UI/Styles */\\nmedia-fullscreen-button .icon {\\n display: none;\\n}\\nmedia-fullscreen-button:not([data-fullscreen]) .fullscreen-enter-icon,\\nmedia-fullscreen-button[data-fullscreen] .fullscreen-exit-icon {\\n display: inline;\\n}\\n\\n/* One way to define the \\\"default visible\\\" icon (CJP) */\\nmedia-mute-button .icon {\\n display: none;\\n}\\nmedia-mute-button:not([data-volume-level]) .volume-low-icon,\\nmedia-mute-button[data-volume-level='high'] .volume-high-icon,\\nmedia-mute-button[data-volume-level='low'] .volume-low-icon,\\nmedia-mute-button[data-volume-level='medium'] .volume-low-icon,\\nmedia-mute-button[data-volume-level='off'] .volume-off-icon {\\n display: inline;\\n}\\n\\n/* TimeSlider Component Styles */\\n.slider {\\n flex: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n border-radius: calc(infinity * 1px);\\n outline: none;\\n}\\n\\n/* Horizontal orientation styles */\\n.slider[data-orientation='horizontal'] {\\n min-width: 5rem;\\n width: 100%;\\n height: 1.25rem;\\n}\\n\\n/* Vertical orientation styles */\\n.slider[data-orientation='vertical'] {\\n height: 4.5rem;\\n width: 1.25rem;\\n}\\n\\n.slider-track {\\n position: relative;\\n isolation: isolate;\\n background-color: oklab(1 0 0 / 0.2);\\n border-radius: inherit;\\n overflow: hidden;\\n user-select: none;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n transition: outline-offset 150ms ease-out;\\n box-shadow: 0 0 0 1px oklab(0 0 0 / 0.05);\\n}\\n\\n/* Horizontal track styles */\\n.slider-track[data-orientation='horizontal'] {\\n width: 100%;\\n height: 0.1875rem;\\n}\\n\\n/* Vertical track styles */\\n.slider-track[data-orientation='vertical'] {\\n width: 0.1875rem;\\n height: 100%;\\n}\\n\\n.slider:focus-visible .slider-track {\\n outline-color: oklab(1 0 0);\\n outline-offset: 6px;\\n}\\n\\n.slider-thumb {\\n width: 0.75rem;\\n height: 0.75rem;\\n background-color: oklab(1 0 0);\\n border-radius: calc(infinity * 1px);\\n user-select: none;\\n z-index: 10;\\n box-shadow:\\n 0 0 0 1px oklab(0 0 0 / 0.1),\\n 0 1px 3px 0 oklab(0 0 0 / 0.15),\\n 0 1px 2px -1px oklab(0 0 0 / 0.15);\\n opacity: 0;\\n scale: 0.7;\\n transform-origin: center;\\n transition-property: opacity, scale;\\n transition-duration: 150ms;\\n transition-timing-function: ease-out;\\n}\\n.slider:hover .slider-thumb,\\n.slider:focus-within .slider-thumb {\\n opacity: 1;\\n scale: 1;\\n}\\n.slider-track[data-orientation='horizontal'] .slider-thumb {\\n cursor: ew-resize;\\n}\\n.slider-track[data-orientation='vertical'] .slider-thumb {\\n cursor: ns-resize;\\n}\\n\\n.slider-pointer {\\n display: none;\\n}\\n\\n.slider-progress {\\n background-color: oklab(1 0 0);\\n border-radius: inherit;\\n}\\n\\nmedia-preview-time-display {\\n font-variant-numeric: tabular-nums;\\n}\\n\\n.popup-animation {\\n transition-property: transform, scale, opacity, filter;\\n transition-duration: 200ms;\\n transform: scale(1);\\n transform-origin: bottom;\\n opacity: 1;\\n filter: blur(0px);\\n}\\n.popup-animation[data-starting-style],\\n.popup-animation[data-ending-style] {\\n transform: scale(0);\\n opacity: 0;\\n filter: blur(8px);\\n}\\n.popup-animation[data-instant] {\\n transition-duration: 0ms;\\n}\\n\\nmedia-popover {\\n margin: 0;\\n border: none;\\n box-shadow: none;\\n background: transparent;\\n padding: 0.75rem 0.25rem;\\n border-radius: calc(infinity * 1px);\\n}\\n\\n/* Tooltip Component Styles */\\nmedia-tooltip {\\n margin: 0;\\n border: none;\\n box-shadow: none;\\n background: transparent;\\n color: oklab(1 0 0);\\n padding: 0.25rem 0.5rem;\\n border-radius: 0.25rem;\\n font-size: 0.75rem;\\n background-color: oklab(1 0 0 / 0.1);\\n backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);\\n box-shadow:\\n 0 4px 6px -1px oklab(0 0 0 / 0.1),\\n 0 2px 4px -2px oklab(0 0 0 / 0.1);\\n}\\n@media (prefers-reduced-transparency: reduce) {\\n media-tooltip {\\n background-color: oklab(0 0 0 / 0.7);\\n }\\n}\\n@media (prefers-contrast: more) {\\n media-tooltip {\\n background-color: oklab(0 0 0 / 0.9);\\n }\\n}\\n\\n.tooltip {\\n display: none;\\n white-space: nowrap;\\n}\\n\\n[data-paused] + media-tooltip .play-tooltip,\\n:not([data-paused]) + media-tooltip .pause-tooltip {\\n display: block;\\n}\\n\\n[data-fullscreen] + media-tooltip .fullscreen-exit-tooltip,\\n:not([data-fullscreen]) + media-tooltip .fullscreen-enter-tooltip {\\n display: block;\\n}\\n\"","import { MediaSkinElement } from '@/media/media-skin';\nimport { defineCustomElement } from '@/utils/custom-element';\nimport styles from './styles.css';\n// be sure to import video-provider first for proper context initialization\nimport '@/define/video-provider';\nimport '@/define/media-container';\nimport '@/define/media-play-button';\nimport '@/define/media-mute-button';\nimport '@/define/media-volume-slider';\nimport '@/define/media-time-slider';\nimport '@/define/media-fullscreen-button';\nimport '@/define/media-duration-display';\nimport '@/define/media-current-time-display';\nimport '@/define/media-preview-time-display';\nimport '@/define/media-popover';\n\nimport '@/define/media-tooltip';\nimport '@/icons';\n\nexport function getTemplateHTML() {\n return /* html */`\n ${MediaSkinElement.getTemplateHTML()}\n <style>${styles}</style>\n\n <media-container>\n <slot name=\"media\" slot=\"media\"></slot>\n\n <div class=\"overlay\"></div>\n\n <div class=\"control-bar\">\n <!-- NOTE: We can decide if we further want to provide a further, \"themed\" media-play-button that comes with baked in default styles and icons. (CJP) -->\n\n <media-play-button commandfor=\"play-tooltip\" class=\"button\">\n <media-play-icon class=\"icon play-icon\"></media-play-icon>\n <media-pause-icon class=\"icon pause-icon\"></media-pause-icon>\n </media-play-button>\n <media-tooltip\n id=\"play-tooltip\"\n class=\"popup-animation\"\n popover=\"manual\"\n delay=\"500\"\n side=\"top\"\n side-offset=\"6\"\n collision-padding=\"12\"\n >\n <span class=\"tooltip play-tooltip\">Play</span>\n <span class=\"tooltip pause-tooltip\">Pause</span>\n </media-tooltip>\n\n <div class=\"time-display-group\">\n <!-- Use the show-remaining attribute to show count down/remaining time -->\n <media-current-time-display></media-current-time-display>\n\n <span class=\"duration-display\">\n /\n <media-duration-display></media-duration-display>\n </span>\n </div>\n\n <media-time-slider commandfor=\"time-slider-tooltip\" class=\"slider\">\n <media-time-slider-track class=\"slider-track\">\n <media-time-slider-progress class=\"slider-progress\"></media-time-slider-progress>\n <media-time-slider-pointer class=\"slider-pointer\"></media-time-slider-pointer>\n </media-time-slider-track>\n <media-time-slider-thumb class=\"slider-thumb\"></media-time-slider-thumb>\n </media-time-slider>\n <media-tooltip\n id=\"time-slider-tooltip\"\n class=\"popup-animation\"\n popover=\"manual\"\n track-cursor-axis=\"x\"\n side=\"top\"\n side-offset=\"12\"\n collision-padding=\"12\"\n >\n <media-preview-time-display></media-preview-time-display>\n </media-tooltip>\n\n <div class=\"button-group\">\n <media-mute-button commandfor=\"volume-slider-popover\" command=\"toggle-popover\" class=\"button\">\n <media-volume-high-icon class=\"icon volume-high-icon\"></media-volume-high-icon>\n <media-volume-low-icon class=\"icon volume-low-icon\"></media-volume-low-icon>\n <media-volume-off-icon class=\"icon volume-off-icon\"></media-volume-off-icon>\n </media-mute-button>\n <media-popover\n id=\"volume-slider-popover\"\n class=\"popup-animation\"\n popover=\"manual\"\n open-on-hover\n delay=\"200\"\n close-delay=\"100\"\n side=\"top\"\n side-offset=\"2\"\n collision-padding=\"12\"\n >\n <media-volume-slider class=\"slider\" orientation=\"vertical\">\n <media-volume-slider-track class=\"slider-track\">\n <media-volume-slider-indicator class=\"slider-progress\"></media-volume-slider-indicator>\n </media-volume-slider-track>\n <media-volume-slider-thumb class=\"slider-thumb\"></media-volume-slider-thumb>\n </media-volume-slider>\n </media-popover>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"button\">\n <media-fullscreen-enter-alt-icon class=\"icon fullscreen-enter-icon\"></media-fullscreen-enter-alt-icon>\n <media-fullscreen-exit-alt-icon class=\"icon fullscreen-exit-icon\"></media-fullscreen-exit-icon>\n </media-fullscreen-button>\n <media-tooltip\n id=\"fullscreen-tooltip\"\n class=\"popup-animation\"\n popover=\"manual\"\n delay=\"500\"\n side=\"top\"\n side-offset=\"6\"\n collision-padding=\"12\"\n >\n <span class=\"tooltip fullscreen-enter-tooltip\">Enter Fullscreen</span>\n <span class=\"tooltip fullscreen-exit-tooltip\">Exit Fullscreen</span>\n </media-tooltip>\n </div>\n </div>\n </media-container>\n `;\n}\n\nexport class MediaSkinMinimalElement extends MediaSkinElement {\n static getTemplateHTML: () => string = getTemplateHTML;\n}\n\ndefineCustomElement('media-skin-minimal', MediaSkinMinimalElement);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAA;;;;ACmBA,SAAgB,kBAAkB;AAChC,QAAiB;MACb,iBAAiB,iBAAiB,CAAC;aAC5BA,eAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuGpB,IAAa,0BAAb,cAA6C,iBAAiB;;yBACrB;;;AAGzC,oBAAoB,sBAAsB,wBAAwB"}
package/dist/store.d.ts DELETED
@@ -1 +0,0 @@
1
- export { };
@@ -1,165 +0,0 @@
1
- import { n as toConnectedHTMLComponent, t as getCoreState } from "./component-factory-C0cl1nrL.js";
2
- import { timeSliderStateDefinition } from "@videojs/core/store";
3
- import { setAttributes } from "@videojs/utils/dom";
4
- import { TimeSlider } from "@videojs/core";
5
-
6
- //#region src/elements/time-slider.ts
7
- function getTimeSliderRootState(mediaStore) {
8
- const mediaState = timeSliderStateDefinition.stateTransform(mediaStore.getState());
9
- const mediaMethods = timeSliderStateDefinition.createRequestMethods(mediaStore.dispatch);
10
- return { ...getCoreState(TimeSlider, {
11
- ...mediaState,
12
- ...mediaMethods
13
- }) };
14
- }
15
- /**
16
- * TimeSlider Root props hook - equivalent to React's useTimeSliderRootProps
17
- * Handles element attributes and properties based on state
18
- */
19
- const getTimeSliderRootProps = (state, element) => {
20
- if (state._rootElement !== element) state._setRootElement(element);
21
- return {
22
- role: "slider",
23
- tabindex: element.getAttribute("tabindex") ?? "0",
24
- "data-current-time": state.currentTime.toString(),
25
- "data-duration": state.duration.toString(),
26
- "data-orientation": element.orientation || "horizontal",
27
- "aria-label": "Seek",
28
- "aria-valuemin": "0",
29
- "aria-valuemax": Math.round(state.duration).toString(),
30
- "aria-valuenow": Math.round(state.currentTime).toString(),
31
- "aria-valuetext": `${state._currentTimeText} of ${state._durationText}`,
32
- "aria-orientation": element.orientation || "horizontal"
33
- };
34
- };
35
- var TimeSliderRoot = class extends HTMLElement {
36
- static {
37
- this.observedAttributes = ["commandfor", "orientation"];
38
- }
39
- get currentTime() {
40
- return this._state?.currentTime ?? 0;
41
- }
42
- get duration() {
43
- return this._state?.duration ?? 0;
44
- }
45
- get orientation() {
46
- return this.getAttribute("orientation") || "horizontal";
47
- }
48
- attributeChangedCallback(name, _oldValue, newValue) {
49
- if (name === "orientation" && this._state) this._update(getTimeSliderRootProps(this._state, this), this._state);
50
- else if (name === "commandfor") this.style.setProperty("anchor-name", `--${newValue}`);
51
- }
52
- _update(props, state) {
53
- this._state = state;
54
- this.style.setProperty("--slider-fill", `${state._fillWidth.toFixed(3)}%`);
55
- this.style.setProperty("--slider-pointer", `${(state._pointerWidth * 100).toFixed(3)}%`);
56
- setAttributes(this, props);
57
- }
58
- };
59
- const TimeSliderRootElement = toConnectedHTMLComponent(TimeSliderRoot, getTimeSliderRootState, getTimeSliderRootProps, "TimeSliderRoot");
60
- const getTimeSliderTrackProps = (_state, element) => {
61
- const rootElement = element.closest("media-time-slider");
62
- if (rootElement._state?._trackElement !== element) rootElement._state?._setTrackElement?.(element);
63
- return { "data-orientation": rootElement?.orientation || "horizontal" };
64
- };
65
- var TimeSliderTrack = class extends HTMLElement {
66
- _update(props, _state) {
67
- setAttributes(this, props);
68
- if (props["data-orientation"] === "horizontal") {
69
- this.style.width = "100%";
70
- this.style.removeProperty("height");
71
- } else {
72
- this.style.height = "100%";
73
- this.style.removeProperty("width");
74
- }
75
- }
76
- };
77
- const TimeSliderTrackElement = toConnectedHTMLComponent(TimeSliderTrack, void 0, getTimeSliderTrackProps, "TimeSliderTrack");
78
- const getTimeSliderProgressProps = (_state, element) => {
79
- const rootElement = element.closest("media-time-slider");
80
- return { "data-orientation": rootElement?.orientation || "horizontal" };
81
- };
82
- var TimeSliderProgress = class extends HTMLElement {
83
- constructor() {
84
- super();
85
- this.style.position = "absolute";
86
- this.style.width = "var(--slider-fill, 0%)";
87
- this.style.height = "100%";
88
- }
89
- _update(props, _state) {
90
- setAttributes(this, props);
91
- if (props["data-orientation"] === "horizontal") {
92
- this.style.width = "var(--slider-fill, 0%)";
93
- this.style.height = "100%";
94
- this.style.top = "0";
95
- this.style.removeProperty("bottom");
96
- } else {
97
- this.style.height = "var(--slider-fill, 0%)";
98
- this.style.width = "100%";
99
- this.style.bottom = "0";
100
- this.style.removeProperty("top");
101
- }
102
- }
103
- };
104
- const TimeSliderProgressElement = toConnectedHTMLComponent(TimeSliderProgress, void 0, getTimeSliderProgressProps, "TimeSliderProgress");
105
- const getTimeSliderPointerProps = (_state, element) => {
106
- const rootElement = element.closest("media-time-slider");
107
- return { "data-orientation": rootElement?.orientation || "horizontal" };
108
- };
109
- var TimeSliderPointer = class extends HTMLElement {
110
- constructor() {
111
- super();
112
- this.style.position = "absolute";
113
- this.style.width = "var(--slider-pointer, 0%)";
114
- this.style.height = "100%";
115
- }
116
- _update(props, _state) {
117
- setAttributes(this, props);
118
- if (props["data-orientation"] === "horizontal") {
119
- this.style.width = "var(--slider-pointer, 0%)";
120
- this.style.height = "100%";
121
- this.style.top = "0";
122
- this.style.removeProperty("bottom");
123
- } else {
124
- this.style.height = "var(--slider-pointer, 0%)";
125
- this.style.width = "100%";
126
- this.style.bottom = "0";
127
- this.style.removeProperty("top");
128
- }
129
- }
130
- };
131
- const TimeSliderPointerElement = toConnectedHTMLComponent(TimeSliderPointer, void 0, getTimeSliderPointerProps, "TimeSliderPointer");
132
- const getTimeSliderThumbProps = (_state, element) => {
133
- const rootElement = element.closest("media-time-slider");
134
- return { "data-orientation": rootElement?.orientation || "horizontal" };
135
- };
136
- var TimeSliderThumb = class extends HTMLElement {
137
- constructor() {
138
- super();
139
- this.style.position = "absolute";
140
- }
141
- _update(props, _state) {
142
- setAttributes(this, props);
143
- if (props["data-orientation"] === "horizontal") {
144
- this.style.left = "var(--slider-fill, 0%)";
145
- this.style.top = "50%";
146
- this.style.translate = "-50% -50%";
147
- } else {
148
- this.style.bottom = "var(--slider-fill, 0%)";
149
- this.style.left = "50%";
150
- this.style.translate = "-50% 50%";
151
- }
152
- }
153
- };
154
- const TimeSliderThumbElement = toConnectedHTMLComponent(TimeSliderThumb, void 0, getTimeSliderThumbProps, "TimeSliderThumb");
155
- const TimeSliderElement = Object.assign({}, {
156
- Root: TimeSliderRootElement,
157
- Track: TimeSliderTrackElement,
158
- Progress: TimeSliderProgressElement,
159
- Pointer: TimeSliderPointerElement,
160
- Thumb: TimeSliderThumbElement
161
- });
162
-
163
- //#endregion
164
- export { TimeSliderThumbElement as a, TimeSliderRootElement as i, TimeSliderPointerElement as n, TimeSliderTrackElement as o, TimeSliderProgressElement as r, TimeSliderElement as t };
165
- //# sourceMappingURL=time-slider-DHpKPCI1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-slider-DHpKPCI1.js","names":["CoreTimeSlider","getTimeSliderRootProps: PropsHook<TimeSliderState>","TimeSliderRootElement: ConnectedComponentConstructor<TimeSliderState>","getTimeSliderTrackProps: PropsHook<Record<string, never>>","TimeSliderTrackElement: ConnectedComponentConstructor<any>","getTimeSliderProgressProps: PropsHook<Record<string, never>>","TimeSliderProgressElement: ConnectedComponentConstructor<any>","getTimeSliderPointerProps: PropsHook<Record<string, never>>","TimeSliderPointerElement: ConnectedComponentConstructor<any>","getTimeSliderThumbProps: PropsHook<Record<string, never>>","TimeSliderThumbElement: ConnectedComponentConstructor<any>"],"sources":["../src/elements/time-slider.ts"],"sourcesContent":["import type { MediaStore } from '@videojs/core/store';\nimport type { Prettify } from '../types';\n\nimport type { ConnectedComponentConstructor, PropsHook } from '../utils/component-factory';\nimport { TimeSlider as CoreTimeSlider } from '@videojs/core';\nimport { timeSliderStateDefinition } from '@videojs/core/store';\n\nimport { setAttributes } from '@videojs/utils/dom';\nimport { getCoreState, toConnectedHTMLComponent } from '../utils/component-factory';\n\ntype TimeSliderState = Prettify<ReturnType<CoreTimeSlider['getState']>>;\n\n// ============================================================================\n// ROOT COMPONENT\n// ============================================================================\n\nexport function getTimeSliderRootState(mediaStore: MediaStore): TimeSliderState {\n const mediaState = timeSliderStateDefinition.stateTransform(mediaStore.getState());\n const mediaMethods = timeSliderStateDefinition.createRequestMethods(mediaStore.dispatch);\n const coreState = getCoreState(CoreTimeSlider, { ...mediaState, ...mediaMethods });\n return {\n ...coreState,\n };\n}\n\n/**\n * TimeSlider Root props hook - equivalent to React's useTimeSliderRootProps\n * Handles element attributes and properties based on state\n */\nexport const getTimeSliderRootProps: PropsHook<TimeSliderState> = (state, element) => {\n if (state._rootElement !== element) {\n state._setRootElement(element);\n }\n\n return {\n role: 'slider',\n tabindex: element.getAttribute('tabindex') ?? '0',\n 'data-current-time': state.currentTime.toString(),\n 'data-duration': state.duration.toString(),\n 'data-orientation': (element as any).orientation || 'horizontal',\n 'aria-label': 'Seek',\n 'aria-valuemin': '0',\n 'aria-valuemax': Math.round(state.duration).toString(),\n 'aria-valuenow': Math.round(state.currentTime).toString(),\n 'aria-valuetext': `${state._currentTimeText} of ${state._durationText}`,\n 'aria-orientation': (element as any).orientation || 'horizontal',\n };\n};\n\nexport class TimeSliderRoot extends HTMLElement {\n static readonly observedAttributes: readonly string[] = [\n 'commandfor',\n 'orientation',\n ];\n\n _state: TimeSliderState | undefined;\n\n get currentTime(): number {\n return this._state?.currentTime ?? 0;\n }\n\n get duration(): number {\n return this._state?.duration ?? 0;\n }\n\n get orientation(): 'horizontal' | 'vertical' {\n return (this.getAttribute('orientation') as 'horizontal' | 'vertical') || 'horizontal';\n }\n\n attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void {\n if (name === 'orientation' && this._state) {\n this._update(getTimeSliderRootProps(this._state, this), this._state);\n } else if (name === 'commandfor') {\n this.style.setProperty('anchor-name', `--${newValue}`);\n }\n }\n\n _update(props: any, state: TimeSliderState): void {\n this._state = state;\n\n this.style.setProperty('--slider-fill', `${state._fillWidth.toFixed(3)}%`);\n this.style.setProperty('--slider-pointer', `${(state._pointerWidth * 100).toFixed(3)}%`);\n\n setAttributes(this, props);\n }\n}\n\nexport const TimeSliderRootElement: ConnectedComponentConstructor<TimeSliderState>\n = toConnectedHTMLComponent(\n TimeSliderRoot,\n getTimeSliderRootState,\n getTimeSliderRootProps,\n 'TimeSliderRoot',\n );\n\n// ============================================================================\n// TRACK COMPONENT\n// ============================================================================\n\nexport const getTimeSliderTrackProps: PropsHook<Record<string, never>> = (_state, element) => {\n const rootElement = element.closest('media-time-slider') as any;\n\n if (rootElement._state?._trackElement !== element) {\n rootElement._state?._setTrackElement?.(element);\n }\n\n return {\n 'data-orientation': rootElement?.orientation || 'horizontal',\n };\n};\n\nexport class TimeSliderTrack extends HTMLElement {\n _update(props: any, _state: any): void {\n setAttributes(this, props);\n\n if (props['data-orientation'] === 'horizontal') {\n this.style.width = '100%';\n this.style.removeProperty('height');\n } else {\n this.style.height = '100%';\n this.style.removeProperty('width');\n }\n }\n}\n\nexport const TimeSliderTrackElement: ConnectedComponentConstructor<any> = toConnectedHTMLComponent(\n TimeSliderTrack,\n undefined,\n getTimeSliderTrackProps,\n 'TimeSliderTrack',\n);\n\n// ============================================================================\n// PROGRESS COMPONENT\n// ============================================================================\n\nexport const getTimeSliderProgressProps: PropsHook<Record<string, never>> = (_state, element) => {\n const rootElement = element.closest('media-time-slider') as any;\n return {\n 'data-orientation': rootElement?.orientation || 'horizontal',\n };\n};\n\nexport class TimeSliderProgress extends HTMLElement {\n constructor() {\n super();\n this.style.position = 'absolute';\n this.style.width = 'var(--slider-fill, 0%)';\n this.style.height = '100%';\n }\n\n _update(props: any, _state: any): void {\n setAttributes(this, props);\n\n if (props['data-orientation'] === 'horizontal') {\n this.style.width = 'var(--slider-fill, 0%)';\n this.style.height = '100%';\n this.style.top = '0';\n this.style.removeProperty('bottom');\n } else {\n this.style.height = 'var(--slider-fill, 0%)';\n this.style.width = '100%';\n this.style.bottom = '0';\n this.style.removeProperty('top');\n }\n }\n}\n\nexport const TimeSliderProgressElement: ConnectedComponentConstructor<any> = toConnectedHTMLComponent(\n TimeSliderProgress,\n undefined,\n getTimeSliderProgressProps,\n 'TimeSliderProgress',\n);\n\n// ============================================================================\n// POINTER COMPONENT\n// ============================================================================\n\nexport const getTimeSliderPointerProps: PropsHook<Record<string, never>> = (_state, element) => {\n const rootElement = element.closest('media-time-slider') as any;\n return {\n 'data-orientation': rootElement?.orientation || 'horizontal',\n };\n};\n\nexport class TimeSliderPointer extends HTMLElement {\n constructor() {\n super();\n this.style.position = 'absolute';\n this.style.width = 'var(--slider-pointer, 0%)';\n this.style.height = '100%';\n }\n\n _update(props: any, _state: any): void {\n setAttributes(this, props);\n\n if (props['data-orientation'] === 'horizontal') {\n this.style.width = 'var(--slider-pointer, 0%)';\n this.style.height = '100%';\n this.style.top = '0';\n this.style.removeProperty('bottom');\n } else {\n this.style.height = 'var(--slider-pointer, 0%)';\n this.style.width = '100%';\n this.style.bottom = '0';\n this.style.removeProperty('top');\n }\n }\n}\n\nexport const TimeSliderPointerElement: ConnectedComponentConstructor<any> = toConnectedHTMLComponent(\n TimeSliderPointer,\n undefined,\n getTimeSliderPointerProps,\n 'TimeSliderPointer',\n);\n\n// ============================================================================\n// THUMB COMPONENT\n// ============================================================================\n\nexport const getTimeSliderThumbProps: PropsHook<Record<string, never>> = (_state, element) => {\n const rootElement = element.closest('media-time-slider') as any;\n return {\n 'data-orientation': rootElement?.orientation || 'horizontal',\n };\n};\n\nexport class TimeSliderThumb extends HTMLElement {\n constructor() {\n super();\n this.style.position = 'absolute';\n }\n\n _update(props: any, _state: any): void {\n setAttributes(this, props);\n\n // Set appropriate positioning based on orientation\n if (props['data-orientation'] === 'horizontal') {\n this.style.left = 'var(--slider-fill, 0%)';\n this.style.top = '50%';\n this.style.translate = '-50% -50%';\n } else {\n this.style.bottom = 'var(--slider-fill, 0%)';\n this.style.left = '50%';\n this.style.translate = '-50% 50%';\n }\n }\n}\n\nexport const TimeSliderThumbElement: ConnectedComponentConstructor<any> = toConnectedHTMLComponent(\n TimeSliderThumb,\n undefined,\n getTimeSliderThumbProps,\n 'TimeSliderThumb',\n);\n\n// ============================================================================\n// EXPORTS\n// ============================================================================\n\nexport const TimeSliderElement = Object.assign(\n {},\n {\n Root: TimeSliderRootElement,\n Track: TimeSliderTrackElement,\n Progress: TimeSliderProgressElement,\n Pointer: TimeSliderPointerElement,\n Thumb: TimeSliderThumbElement,\n },\n) as {\n Root: typeof TimeSliderRootElement;\n Track: typeof TimeSliderTrackElement;\n Progress: typeof TimeSliderProgressElement;\n Pointer: typeof TimeSliderPointerElement;\n Thumb: typeof TimeSliderThumbElement;\n};\n"],"mappings":";;;;;;AAgBA,SAAgB,uBAAuB,YAAyC;CAC9E,MAAM,aAAa,0BAA0B,eAAe,WAAW,UAAU,CAAC;CAClF,MAAM,eAAe,0BAA0B,qBAAqB,WAAW,SAAS;AAExF,QAAO,EACL,GAFgB,aAAaA,YAAgB;EAAE,GAAG;EAAY,GAAG;EAAc,CAAC,EAGjF;;;;;;AAOH,MAAaC,0BAAsD,OAAO,YAAY;AACpF,KAAI,MAAM,iBAAiB,QACzB,OAAM,gBAAgB,QAAQ;AAGhC,QAAO;EACL,MAAM;EACN,UAAU,QAAQ,aAAa,WAAW,IAAI;EAC9C,qBAAqB,MAAM,YAAY,UAAU;EACjD,iBAAiB,MAAM,SAAS,UAAU;EAC1C,oBAAqB,QAAgB,eAAe;EACpD,cAAc;EACd,iBAAiB;EACjB,iBAAiB,KAAK,MAAM,MAAM,SAAS,CAAC,UAAU;EACtD,iBAAiB,KAAK,MAAM,MAAM,YAAY,CAAC,UAAU;EACzD,kBAAkB,GAAG,MAAM,iBAAiB,MAAM,MAAM;EACxD,oBAAqB,QAAgB,eAAe;EACrD;;AAGH,IAAa,iBAAb,cAAoC,YAAY;;4BACU,CACtD,cACA,cACD;;CAID,IAAI,cAAsB;AACxB,SAAO,KAAK,QAAQ,eAAe;;CAGrC,IAAI,WAAmB;AACrB,SAAO,KAAK,QAAQ,YAAY;;CAGlC,IAAI,cAAyC;AAC3C,SAAQ,KAAK,aAAa,cAAc,IAAkC;;CAG5E,yBAAyB,MAAc,WAA0B,UAA+B;AAC9F,MAAI,SAAS,iBAAiB,KAAK,OACjC,MAAK,QAAQ,uBAAuB,KAAK,QAAQ,KAAK,EAAE,KAAK,OAAO;WAC3D,SAAS,aAClB,MAAK,MAAM,YAAY,eAAe,KAAK,WAAW;;CAI1D,QAAQ,OAAY,OAA8B;AAChD,OAAK,SAAS;AAEd,OAAK,MAAM,YAAY,iBAAiB,GAAG,MAAM,WAAW,QAAQ,EAAE,CAAC,GAAG;AAC1E,OAAK,MAAM,YAAY,oBAAoB,IAAI,MAAM,gBAAgB,KAAK,QAAQ,EAAE,CAAC,GAAG;AAExF,gBAAc,MAAM,MAAM;;;AAI9B,MAAaC,wBACT,yBACA,gBACA,wBACA,wBACA,iBACD;AAMH,MAAaC,2BAA6D,QAAQ,YAAY;CAC5F,MAAM,cAAc,QAAQ,QAAQ,oBAAoB;AAExD,KAAI,YAAY,QAAQ,kBAAkB,QACxC,aAAY,QAAQ,mBAAmB,QAAQ;AAGjD,QAAO,EACL,oBAAoB,aAAa,eAAe,cACjD;;AAGH,IAAa,kBAAb,cAAqC,YAAY;CAC/C,QAAQ,OAAY,QAAmB;AACrC,gBAAc,MAAM,MAAM;AAE1B,MAAI,MAAM,wBAAwB,cAAc;AAC9C,QAAK,MAAM,QAAQ;AACnB,QAAK,MAAM,eAAe,SAAS;SAC9B;AACL,QAAK,MAAM,SAAS;AACpB,QAAK,MAAM,eAAe,QAAQ;;;;AAKxC,MAAaC,yBAA6D,yBACxE,iBACA,QACA,yBACA,kBACD;AAMD,MAAaC,8BAAgE,QAAQ,YAAY;CAC/F,MAAM,cAAc,QAAQ,QAAQ,oBAAoB;AACxD,QAAO,EACL,oBAAoB,aAAa,eAAe,cACjD;;AAGH,IAAa,qBAAb,cAAwC,YAAY;CAClD,cAAc;AACZ,SAAO;AACP,OAAK,MAAM,WAAW;AACtB,OAAK,MAAM,QAAQ;AACnB,OAAK,MAAM,SAAS;;CAGtB,QAAQ,OAAY,QAAmB;AACrC,gBAAc,MAAM,MAAM;AAE1B,MAAI,MAAM,wBAAwB,cAAc;AAC9C,QAAK,MAAM,QAAQ;AACnB,QAAK,MAAM,SAAS;AACpB,QAAK,MAAM,MAAM;AACjB,QAAK,MAAM,eAAe,SAAS;SAC9B;AACL,QAAK,MAAM,SAAS;AACpB,QAAK,MAAM,QAAQ;AACnB,QAAK,MAAM,SAAS;AACpB,QAAK,MAAM,eAAe,MAAM;;;;AAKtC,MAAaC,4BAAgE,yBAC3E,oBACA,QACA,4BACA,qBACD;AAMD,MAAaC,6BAA+D,QAAQ,YAAY;CAC9F,MAAM,cAAc,QAAQ,QAAQ,oBAAoB;AACxD,QAAO,EACL,oBAAoB,aAAa,eAAe,cACjD;;AAGH,IAAa,oBAAb,cAAuC,YAAY;CACjD,cAAc;AACZ,SAAO;AACP,OAAK,MAAM,WAAW;AACtB,OAAK,MAAM,QAAQ;AACnB,OAAK,MAAM,SAAS;;CAGtB,QAAQ,OAAY,QAAmB;AACrC,gBAAc,MAAM,MAAM;AAE1B,MAAI,MAAM,wBAAwB,cAAc;AAC9C,QAAK,MAAM,QAAQ;AACnB,QAAK,MAAM,SAAS;AACpB,QAAK,MAAM,MAAM;AACjB,QAAK,MAAM,eAAe,SAAS;SAC9B;AACL,QAAK,MAAM,SAAS;AACpB,QAAK,MAAM,QAAQ;AACnB,QAAK,MAAM,SAAS;AACpB,QAAK,MAAM,eAAe,MAAM;;;;AAKtC,MAAaC,2BAA+D,yBAC1E,mBACA,QACA,2BACA,oBACD;AAMD,MAAaC,2BAA6D,QAAQ,YAAY;CAC5F,MAAM,cAAc,QAAQ,QAAQ,oBAAoB;AACxD,QAAO,EACL,oBAAoB,aAAa,eAAe,cACjD;;AAGH,IAAa,kBAAb,cAAqC,YAAY;CAC/C,cAAc;AACZ,SAAO;AACP,OAAK,MAAM,WAAW;;CAGxB,QAAQ,OAAY,QAAmB;AACrC,gBAAc,MAAM,MAAM;AAG1B,MAAI,MAAM,wBAAwB,cAAc;AAC9C,QAAK,MAAM,OAAO;AAClB,QAAK,MAAM,MAAM;AACjB,QAAK,MAAM,YAAY;SAClB;AACL,QAAK,MAAM,SAAS;AACpB,QAAK,MAAM,OAAO;AAClB,QAAK,MAAM,YAAY;;;;AAK7B,MAAaC,yBAA6D,yBACxE,iBACA,QACA,yBACA,kBACD;AAMD,MAAa,oBAAoB,OAAO,OACtC,EAAE,EACF;CACE,MAAM;CACN,OAAO;CACP,UAAU;CACV,SAAS;CACT,OAAO;CACR,CACF"}