@videojs/html 10.0.0-beta.30 → 10.0.0-beta.31

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 (357) hide show
  1. package/cdn/audio-minimal-ui.dev.js +1 -1
  2. package/cdn/audio-minimal-ui.js +1 -1
  3. package/cdn/audio-minimal.dev.js +4 -4
  4. package/cdn/audio-minimal.dev.js.map +1 -1
  5. package/cdn/audio-minimal.js +1 -1
  6. package/cdn/audio-minimal.js.map +1 -1
  7. package/cdn/audio-player.dev.js +1 -0
  8. package/cdn/audio-player.js +1 -0
  9. package/cdn/audio-ui.dev.js +1 -1
  10. package/cdn/audio-ui.js +1 -1
  11. package/cdn/audio.dev.js +4 -4
  12. package/cdn/audio.dev.js.map +1 -1
  13. package/cdn/audio.js +1 -1
  14. package/cdn/audio.js.map +1 -1
  15. package/cdn/background.dev.js +1 -1
  16. package/cdn/background.js +1 -1
  17. package/cdn/{compounds-D1FPw7jg.js → compounds-BA8gXlmJ.js} +32 -188
  18. package/cdn/compounds-BA8gXlmJ.js.map +1 -0
  19. package/cdn/compounds-DKoFv2f8.js +8 -0
  20. package/cdn/compounds-DKoFv2f8.js.map +1 -0
  21. package/cdn/{create-player-5UrHNqBI.js → create-player-BEEc22xK.js} +18 -2
  22. package/cdn/{create-player-5UrHNqBI.js.map → create-player-BEEc22xK.js.map} +1 -1
  23. package/cdn/create-player-D5WQ_jzZ.js +2 -0
  24. package/cdn/{create-player-LjvbIxIq.js.map → create-player-D5WQ_jzZ.js.map} +1 -1
  25. package/cdn/{gesture-element-BbNy1Pjt.js → gesture-element-CxdagZOo.js} +2 -2
  26. package/cdn/{gesture-element-BbNy1Pjt.js.map → gesture-element-CxdagZOo.js.map} +1 -1
  27. package/cdn/{gesture-element-KdpjbbBD.js → gesture-element-x6kojUJk.js} +3 -3
  28. package/cdn/{gesture-element-KdpjbbBD.js.map → gesture-element-x6kojUJk.js.map} +1 -1
  29. package/cdn/i18n-CE4KxKuj.js.map +1 -1
  30. package/cdn/{i18n-DeI9j-ko.js → i18n-C_WyuIHd.js} +2 -2
  31. package/cdn/{i18n-DeI9j-ko.js.map → i18n-C_WyuIHd.js.map} +1 -1
  32. package/cdn/i18n-DyF_NfCk.js.map +1 -1
  33. package/cdn/i18n-o3_t8fxw.js +2 -0
  34. package/cdn/{i18n-R3TQ8P2f.js.map → i18n-o3_t8fxw.js.map} +1 -1
  35. package/cdn/live-audio-minimal-ui.dev.js +2 -0
  36. package/cdn/live-audio-minimal-ui.js +1 -0
  37. package/cdn/live-audio-minimal.dev.d.ts +1 -0
  38. package/cdn/live-audio-minimal.dev.js +97 -0
  39. package/cdn/live-audio-minimal.dev.js.map +1 -0
  40. package/cdn/live-audio-minimal.js +2 -0
  41. package/cdn/live-audio-minimal.js.map +1 -0
  42. package/cdn/live-audio-player.dev.d.ts +1 -0
  43. package/cdn/live-audio-player.dev.js +1 -0
  44. package/cdn/live-audio-player.js +1 -0
  45. package/cdn/live-audio-ui.dev.d.ts +1 -0
  46. package/cdn/live-audio-ui.dev.js +2 -0
  47. package/cdn/live-audio-ui.js +1 -0
  48. package/cdn/live-audio.dev.d.ts +1 -0
  49. package/cdn/live-audio.dev.js +97 -0
  50. package/cdn/live-audio.dev.js.map +1 -0
  51. package/cdn/live-audio.js +2 -0
  52. package/cdn/live-audio.js.map +1 -0
  53. package/cdn/{live-button-element-CylfQD0v.js → live-button-element-BFufqFFV.js} +3 -3
  54. package/cdn/{live-button-element-CylfQD0v.js.map → live-button-element-BFufqFFV.js.map} +1 -1
  55. package/cdn/live-button-element-CEbrR59d.js +2 -0
  56. package/cdn/{live-button-element-C-WypudK.js.map → live-button-element-CEbrR59d.js.map} +1 -1
  57. package/cdn/live-video-minimal-ui.dev.d.ts +1 -0
  58. package/cdn/live-video-minimal-ui.dev.js +2 -0
  59. package/cdn/live-video-minimal-ui.js +1 -0
  60. package/cdn/live-video-minimal.dev.js +5 -36
  61. package/cdn/live-video-minimal.dev.js.map +1 -1
  62. package/cdn/live-video-minimal.js +1 -1
  63. package/cdn/live-video-minimal.js.map +1 -1
  64. package/cdn/live-video-player.dev.d.ts +1 -0
  65. package/cdn/live-video-player.dev.js +1 -0
  66. package/cdn/live-video-player.js +1 -0
  67. package/cdn/live-video-ui.dev.d.ts +1 -0
  68. package/cdn/live-video-ui.dev.js +2 -0
  69. package/cdn/live-video-ui.js +1 -0
  70. package/cdn/live-video.dev.js +5 -38
  71. package/cdn/live-video.dev.js.map +1 -1
  72. package/cdn/live-video.js +1 -1
  73. package/cdn/live-video.js.map +1 -1
  74. package/cdn/media/hls-background-video.dev.js +1 -1
  75. package/cdn/media/hls-background-video.js +1 -1
  76. package/cdn/media/hls-background-video.js.map +1 -1
  77. package/cdn/media/mux-background-video.dev.js +1 -1
  78. package/cdn/media/mux-background-video.js +1 -1
  79. package/cdn/media/mux-background-video.js.map +1 -1
  80. package/cdn/media/mux-data.dev.js +1 -1
  81. package/cdn/media/mux-data.dev.js.map +1 -1
  82. package/cdn/media/mux-data.js +1 -1
  83. package/cdn/media/mux-data.js.map +1 -1
  84. package/cdn/{media-B4uT13xV.js → media-B4uT13xV2.js} +1 -1
  85. package/cdn/media-B4uT13xV2.js.map +1 -0
  86. package/cdn/{media-D6Xer97u.js → media-D6Xer97u2.js} +1 -1
  87. package/cdn/media-D6Xer97u2.js.map +1 -0
  88. package/cdn/minimal-ui-0eDc51VS.js +2 -0
  89. package/cdn/{minimal-ui-D3XCtSx_.js.map → minimal-ui-0eDc51VS.js.map} +1 -1
  90. package/cdn/minimal-ui-C2vRjwax.js +36 -0
  91. package/cdn/minimal-ui-C2vRjwax.js.map +1 -0
  92. package/cdn/{minimal-ui-ajeAXABk.js → minimal-ui-CLBGXvp5.js} +4 -4
  93. package/cdn/{minimal-ui-ajeAXABk.js.map → minimal-ui-CLBGXvp5.js.map} +1 -1
  94. package/cdn/minimal-ui-ClCvmIm4.js +2 -0
  95. package/cdn/minimal-ui-ClCvmIm4.js.map +1 -0
  96. package/cdn/minimal-ui-DDM48qb3.js +2 -0
  97. package/cdn/minimal-ui-DDM48qb3.js.map +1 -0
  98. package/cdn/minimal-ui-DY4C1zGt.js +23 -0
  99. package/cdn/minimal-ui-DY4C1zGt.js.map +1 -0
  100. package/cdn/{minimal-ui-KUzZkG_3.js → minimal-ui-Dk4_XLp4.js} +8 -8
  101. package/cdn/{minimal-ui-KUzZkG_3.js.map → minimal-ui-Dk4_XLp4.js.map} +1 -1
  102. package/cdn/{minimal-ui-p9QCZfCz.js → minimal-ui-JHiRECkp.js} +2 -2
  103. package/cdn/{minimal-ui-p9QCZfCz.js.map → minimal-ui-JHiRECkp.js.map} +1 -1
  104. package/cdn/{player-POHYt5tr.js → player-BGAk4zHP.js} +2 -2
  105. package/cdn/{player-POHYt5tr.js.map → player-BGAk4zHP.js.map} +1 -1
  106. package/cdn/{player-CngT-cVQ.js → player-Bb9oakYz.js} +2 -2
  107. package/cdn/{player-CngT-cVQ.js.map → player-Bb9oakYz.js.map} +1 -1
  108. package/cdn/{player-BXQMSpgR.js → player-BrlY19A2.js} +2 -2
  109. package/cdn/{player-BXQMSpgR.js.map → player-BrlY19A2.js.map} +1 -1
  110. package/cdn/{player-BuxifKSM.js → player-CQENs37B.js} +2 -2
  111. package/cdn/{player-BuxifKSM.js.map → player-CQENs37B.js.map} +1 -1
  112. package/cdn/player-DdOHaN9e.js +2 -0
  113. package/cdn/player-DdOHaN9e.js.map +1 -0
  114. package/cdn/{player-B5zkgqwT.js → player-DtcVc6sP.js} +2 -2
  115. package/cdn/{player-B5zkgqwT.js.map → player-DtcVc6sP.js.map} +1 -1
  116. package/cdn/{player-DMP2pc3L.js → player-bEUswOOg.js} +2 -2
  117. package/cdn/{player-DMP2pc3L.js.map → player-bEUswOOg.js.map} +1 -1
  118. package/cdn/player-qLOeas8M.js +18 -0
  119. package/cdn/player-qLOeas8M.js.map +1 -0
  120. package/cdn/poster-element-BA7p_OJL.js +2 -0
  121. package/cdn/{poster-element-Djlm5fwC.js.map → poster-element-BA7p_OJL.js.map} +1 -1
  122. package/cdn/{poster-element-CuCEBVr3.js → poster-element-BTynHaSW.js} +4 -3
  123. package/cdn/{poster-element-CuCEBVr3.js.map → poster-element-BTynHaSW.js.map} +1 -1
  124. package/cdn/radio-options-controller-Cz5yFvUh.js +138 -0
  125. package/cdn/radio-options-controller-Cz5yFvUh.js.map +1 -0
  126. package/cdn/radio-options-controller-hybHJkeC.js +2 -0
  127. package/cdn/radio-options-controller-hybHJkeC.js.map +1 -0
  128. package/cdn/seek-button-element-C4g3qPbc.js +2 -0
  129. package/cdn/{seek-button-element-CgaXVFPS.js.map → seek-button-element-C4g3qPbc.js.map} +1 -1
  130. package/cdn/{seek-button-element-BD2caCd5.js → seek-button-element-CirtfRSE.js} +4 -3
  131. package/cdn/seek-button-element-CirtfRSE.js.map +1 -0
  132. package/cdn/{skin-element-PDwjO4v0.js → skin-element-BF1a0EIj.js} +2 -2
  133. package/cdn/{skin-element-PDwjO4v0.js.map → skin-element-BF1a0EIj.js.map} +1 -1
  134. package/cdn/skin-element-BTt7JKoR.js +2 -0
  135. package/cdn/{skin-element-DE8OodF5.js.map → skin-element-BTt7JKoR.js.map} +1 -1
  136. package/cdn/template-BKUlUXWF.js +2 -0
  137. package/cdn/template-BKUlUXWF.js.map +1 -0
  138. package/cdn/template-ClYP_1RH.js +31 -0
  139. package/cdn/template-ClYP_1RH.js.map +1 -0
  140. package/cdn/text-element-DW2FuvdI.js +2 -0
  141. package/cdn/text-element-DW2FuvdI.js.map +1 -0
  142. package/cdn/{text-element-dyiwucQB.js → text-element-LzVNdZbp.js} +50 -2
  143. package/cdn/text-element-LzVNdZbp.js.map +1 -0
  144. package/cdn/time-slider-chapters-element-Bf4gYppH.js +2 -0
  145. package/cdn/{time-slider-chapters-element-b6oeaZtJ.js.map → time-slider-chapters-element-Bf4gYppH.js.map} +1 -1
  146. package/cdn/{time-slider-chapters-element-BTMqnBhM.js → time-slider-chapters-element-DMkTYNg3.js} +5 -3
  147. package/cdn/time-slider-chapters-element-DMkTYNg3.js.map +1 -0
  148. package/cdn/{ui-BsUcH4YJ.js → ui-BL6b1m09.js} +7 -7
  149. package/cdn/{ui-BsUcH4YJ.js.map → ui-BL6b1m09.js.map} +1 -1
  150. package/cdn/ui-BbpSrILu.js +2 -0
  151. package/cdn/{ui-DLvwCbsU.js.map → ui-BbpSrILu.js.map} +1 -1
  152. package/cdn/ui-BmCfIOl5.js +38 -0
  153. package/cdn/ui-BmCfIOl5.js.map +1 -0
  154. package/cdn/ui-Bu9GX-M_.js +28 -0
  155. package/cdn/ui-Bu9GX-M_.js.map +1 -0
  156. package/cdn/ui-CBrFrvmm.js +2 -0
  157. package/cdn/{ui-CxftD4RF.js.map → ui-CBrFrvmm.js.map} +1 -1
  158. package/cdn/{ui-CtONjPC2.js → ui-CQsP0EFA.js} +9 -9
  159. package/cdn/{ui-CtONjPC2.js.map → ui-CQsP0EFA.js.map} +1 -1
  160. package/cdn/ui-Crbp7m4I.js +2 -0
  161. package/cdn/ui-Crbp7m4I.js.map +1 -0
  162. package/cdn/ui-DRKjxVsj.js +2 -0
  163. package/cdn/ui-DRKjxVsj.js.map +1 -0
  164. package/cdn/video-minimal-ui.dev.js +1 -1
  165. package/cdn/video-minimal-ui.js +1 -1
  166. package/cdn/video-minimal.dev.js +13 -12
  167. package/cdn/video-minimal.dev.js.map +1 -1
  168. package/cdn/video-minimal.js +1 -1
  169. package/cdn/video-minimal.js.map +1 -1
  170. package/cdn/video-player.dev.d.ts +1 -0
  171. package/cdn/video-player.dev.js +1 -0
  172. package/cdn/video-player.js +1 -0
  173. package/cdn/video-ui.dev.js +1 -1
  174. package/cdn/video-ui.js +1 -1
  175. package/cdn/video.dev.js +14 -13
  176. package/cdn/video.dev.js.map +1 -1
  177. package/cdn/video.js +1 -1
  178. package/cdn/video.js.map +1 -1
  179. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  180. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  181. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  182. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  183. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  184. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  185. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  186. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  187. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  188. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  189. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  190. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  191. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  192. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  193. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  194. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  195. package/dist/default/define/audio/minimal-skin.css +39 -7
  196. package/dist/default/define/audio/skin.css +31 -7
  197. package/dist/default/define/live-audio/minimal-skin.css +39 -7
  198. package/dist/default/define/live-audio/skin.css +31 -7
  199. package/dist/default/define/live-video/minimal-skin.css +39 -7
  200. package/dist/default/define/live-video/minimal-skin.js +1 -1
  201. package/dist/default/define/live-video/minimal-skin.js.map +1 -1
  202. package/dist/default/define/live-video/minimal-skin.tailwind.js +1 -1
  203. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
  204. package/dist/default/define/live-video/skin.css +31 -7
  205. package/dist/default/define/live-video/skin.js +1 -1
  206. package/dist/default/define/live-video/skin.js.map +1 -1
  207. package/dist/default/define/live-video/skin.tailwind.js +1 -1
  208. package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
  209. package/dist/default/define/video/minimal-skin.css +39 -7
  210. package/dist/default/define/video/minimal-skin.js +1 -1
  211. package/dist/default/define/video/minimal-skin.js.map +1 -1
  212. package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
  213. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  214. package/dist/default/define/video/skin.css +31 -7
  215. package/dist/default/define/video/skin.js +1 -1
  216. package/dist/default/define/video/skin.js.map +1 -1
  217. package/dist/default/define/video/skin.tailwind.js +1 -1
  218. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  219. package/dist/default/i18n/provider-mixin.js +24 -0
  220. package/dist/default/i18n/provider-mixin.js.map +1 -1
  221. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +1 -1
  222. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
  223. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  224. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  225. package/dist/default/skins/dist/default/default/tailwind/components/menu.js +8 -7
  226. package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
  227. package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
  228. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  229. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
  230. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  231. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  232. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  233. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +8 -7
  234. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
  235. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +2 -2
  236. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  237. package/dist/default/ui/slider/slider-element.js +1 -2
  238. package/dist/default/ui/slider/slider-element.js.map +1 -1
  239. package/dist/default/ui/time-slider/time-slider-element.js +1 -2
  240. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  241. package/dist/default/ui/volume-slider/volume-slider-element.js +1 -2
  242. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  243. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  244. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  245. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  246. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  247. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  248. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  249. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  250. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  251. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  252. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  253. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  254. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  255. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  256. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  257. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  258. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  259. package/dist/dev/define/audio/minimal-skin.css +39 -7
  260. package/dist/dev/define/audio/skin.css +31 -7
  261. package/dist/dev/define/live-audio/minimal-skin.css +39 -7
  262. package/dist/dev/define/live-audio/skin.css +31 -7
  263. package/dist/dev/define/live-video/minimal-skin.css +39 -7
  264. package/dist/dev/define/live-video/minimal-skin.js +1 -1
  265. package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
  266. package/dist/dev/define/live-video/minimal-skin.tailwind.js +1 -1
  267. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
  268. package/dist/dev/define/live-video/skin.css +31 -7
  269. package/dist/dev/define/live-video/skin.js +1 -1
  270. package/dist/dev/define/live-video/skin.js.map +1 -1
  271. package/dist/dev/define/live-video/skin.tailwind.js +1 -1
  272. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
  273. package/dist/dev/define/video/minimal-skin.css +39 -7
  274. package/dist/dev/define/video/minimal-skin.js +8 -8
  275. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  276. package/dist/dev/define/video/minimal-skin.tailwind.js +12 -12
  277. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  278. package/dist/dev/define/video/skin.css +31 -7
  279. package/dist/dev/define/video/skin.js +8 -8
  280. package/dist/dev/define/video/skin.js.map +1 -1
  281. package/dist/dev/define/video/skin.tailwind.js +12 -12
  282. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  283. package/dist/dev/i18n/provider-mixin.d.ts.map +1 -1
  284. package/dist/dev/i18n/provider-mixin.js +24 -0
  285. package/dist/dev/i18n/provider-mixin.js.map +1 -1
  286. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button-group.js +1 -1
  287. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
  288. package/dist/dev/packages/skins/dist/default/default/tailwind/components/controls.js +1 -1
  289. package/dist/dev/packages/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  290. package/dist/dev/packages/skins/dist/default/default/tailwind/components/menu.js +8 -7
  291. package/dist/dev/packages/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
  292. package/dist/dev/packages/skins/dist/default/default/tailwind/components/time.js +1 -1
  293. package/dist/dev/packages/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  294. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
  295. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  296. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  297. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  298. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/menu.js +8 -7
  299. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
  300. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/time.js +2 -2
  301. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  302. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -1
  303. package/dist/dev/ui/slider/slider-element.js +1 -2
  304. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  305. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -1
  306. package/dist/dev/ui/time-slider/time-slider-element.js +1 -2
  307. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  308. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
  309. package/dist/dev/ui/volume-slider/volume-slider-element.js +1 -2
  310. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  311. package/docs/README.md +1 -1
  312. package/docs/concepts/media-sources.md +26 -2
  313. package/docs/concepts/skins.md +39 -15
  314. package/docs/how-to/customize-skins.md +7662 -48
  315. package/docs/how-to/i18n-switch-locale.md +27 -0
  316. package/docs/how-to/installation.md +4 -4
  317. package/docs/how-to/migrate-from-plyr.md +1 -5
  318. package/docs/llms.txt +7 -0
  319. package/docs/reference/cloudflare-video.md +483 -0
  320. package/docs/reference/dash-video.md +54 -0
  321. package/docs/reference/feature-metadata.md +3 -1
  322. package/docs/reference/hlsjs-video.md +626 -0
  323. package/docs/reference/native-hls-video.md +40 -0
  324. package/docs/reference/shaka-video.md +588 -0
  325. package/docs/reference/spotify-audio.md +394 -0
  326. package/docs/reference/tiktok-video.md +504 -0
  327. package/docs/reference/title.md +1 -1
  328. package/docs/reference/twitch-video.md +447 -0
  329. package/docs/reference/vimeo-video.md +1038 -0
  330. package/docs/reference/youtube-video.md +573 -0
  331. package/package.json +9 -9
  332. package/cdn/audio-headless.dev.js +0 -1
  333. package/cdn/audio-headless.js +0 -1
  334. package/cdn/compounds-CHlzbAKu.js +0 -8
  335. package/cdn/compounds-CHlzbAKu.js.map +0 -1
  336. package/cdn/compounds-D1FPw7jg.js.map +0 -1
  337. package/cdn/create-player-LjvbIxIq.js +0 -2
  338. package/cdn/i18n-R3TQ8P2f.js +0 -2
  339. package/cdn/live-button-element-C-WypudK.js +0 -2
  340. package/cdn/media-B4uT13xV.js.map +0 -1
  341. package/cdn/media-D6Xer97u.js.map +0 -1
  342. package/cdn/minimal-ui-D3XCtSx_.js +0 -2
  343. package/cdn/poster-element-Djlm5fwC.js +0 -2
  344. package/cdn/seek-button-element-BD2caCd5.js.map +0 -1
  345. package/cdn/seek-button-element-CgaXVFPS.js +0 -2
  346. package/cdn/skin-element-DE8OodF5.js +0 -2
  347. package/cdn/text-element-BJyj7nLo.js +0 -2
  348. package/cdn/text-element-BJyj7nLo.js.map +0 -1
  349. package/cdn/text-element-dyiwucQB.js.map +0 -1
  350. package/cdn/time-slider-chapters-element-BTMqnBhM.js.map +0 -1
  351. package/cdn/time-slider-chapters-element-b6oeaZtJ.js +0 -2
  352. package/cdn/ui-CxftD4RF.js +0 -2
  353. package/cdn/ui-DLvwCbsU.js +0 -2
  354. package/cdn/video-headless.dev.js +0 -1
  355. package/cdn/video-headless.js +0 -1
  356. /package/cdn/{audio-headless.dev.d.ts → audio-player.dev.d.ts} +0 -0
  357. /package/cdn/{video-headless.dev.d.ts → live-audio-minimal-ui.dev.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/button-group.js"],"sourcesContent":["//#region src/default/tailwind/components/button-group.ts\nconst buttonGroup = \"flex items-center gap-px\";\n//#endregion\nexport { buttonGroup };\n\n//# sourceMappingURL=button-group.js.map"],"mappings":";AACA,MAAM,cAAc"}
1
+ {"version":3,"file":"button-group.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/button-group.js"],"sourcesContent":["//#region src/default/tailwind/components/button-group.ts\nconst buttonGroup = \"flex items-center gap-px [&:dir(rtl)]:flex-row-reverse\";\n//#endregion\nexport { buttonGroup };\n\n//# sourceMappingURL=button-group.js.map"],"mappings":";AACA,MAAM,cAAc"}
@@ -1,6 +1,6 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
  //#region ../skins/dist/default/default/tailwind/components/controls.js
3
- const controls = cn("peer/controls", "@container/media-controls", "[--media-popover-side-offset:calc(var(--spacing)*(var(--base-side-offset,2)+var(--controls-padding,1)))]", "[--media-tooltip-side-offset:var(--media-popover-side-offset)]", "[--media-popover-boundary-offset:calc(var(--spacing)*var(--base-boundary-offset,2))]", "[--media-tooltip-boundary-offset:var(--media-popover-boundary-offset)]", "[padding:calc(var(--spacing)*var(--controls-padding,1))] flex items-center", "rounded-full", "text-shadow-2xs text-shadow-(color:--shadow-current-color)");
3
+ const controls = cn("peer/controls", "@container/media-controls", "[--media-popover-side-offset:calc(var(--spacing)*(var(--base-side-offset,2)+var(--controls-padding,1)))]", "[--media-tooltip-side-offset:var(--media-popover-side-offset)]", "[--media-popover-boundary-offset:calc(var(--spacing)*var(--base-boundary-offset,2))]", "[--media-tooltip-boundary-offset:var(--media-popover-boundary-offset)]", "[padding:calc(var(--spacing)*var(--controls-padding,1))] flex items-center [&:dir(rtl)]:flex-row-reverse", "rounded-full", "text-shadow-2xs text-shadow-(color:--shadow-current-color)");
4
4
  //#endregion
5
5
  export { controls };
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"controls.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/controls.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/default/tailwind/components/controls.ts\nconst controls = cn(\"peer/controls\", \"@container/media-controls\", \"[--media-popover-side-offset:calc(var(--spacing)*(var(--base-side-offset,2)+var(--controls-padding,1)))]\", \"[--media-tooltip-side-offset:var(--media-popover-side-offset)]\", \"[--media-popover-boundary-offset:calc(var(--spacing)*var(--base-boundary-offset,2))]\", \"[--media-tooltip-boundary-offset:var(--media-popover-boundary-offset)]\", \"[padding:calc(var(--spacing)*var(--controls-padding,1))] flex items-center\", \"rounded-full\", \"text-shadow-2xs text-shadow-(color:--shadow-current-color)\");\n//#endregion\nexport { controls };\n\n//# sourceMappingURL=controls.js.map"],"mappings":";;AAEA,MAAM,WAAW,GAAG,iBAAiB,6BAA6B,4GAA4G,kEAAkE,wFAAwF,0EAA0E,8EAA8E,gBAAgB,4DAA4D"}
1
+ {"version":3,"file":"controls.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/controls.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/default/tailwind/components/controls.ts\nconst controls = cn(\"peer/controls\", \"@container/media-controls\", \"[--media-popover-side-offset:calc(var(--spacing)*(var(--base-side-offset,2)+var(--controls-padding,1)))]\", \"[--media-tooltip-side-offset:var(--media-popover-side-offset)]\", \"[--media-popover-boundary-offset:calc(var(--spacing)*var(--base-boundary-offset,2))]\", \"[--media-tooltip-boundary-offset:var(--media-popover-boundary-offset)]\", \"[padding:calc(var(--spacing)*var(--controls-padding,1))] flex items-center [&:dir(rtl)]:flex-row-reverse\", \"rounded-full\", \"text-shadow-2xs text-shadow-(color:--shadow-current-color)\");\n//#endregion\nexport { controls };\n\n//# sourceMappingURL=controls.js.map"],"mappings":";;AAEA,MAAM,WAAW,GAAG,iBAAiB,6BAA6B,4GAA4G,kEAAkE,wFAAwF,0EAA0E,4GAA4G,gBAAgB,4DAA4D"}
@@ -2,8 +2,8 @@ import { popup } from "./popup.js";
2
2
  import { surface } from "./surface.js";
3
3
  import { cn } from "@videojs/utils/style";
4
4
  //#region ../skins/dist/default/default/tailwind/components/menu.js
5
- const submenuPanel = cn("absolute inset-x-0 top-0 [max-height:inherit] overflow-auto overscroll-none p-(--menu-padding) outline-none", "z-10", "translate-none transition-[translate,filter] duration-(--menu-transition-duration) ease-out", "data-starting-style:pointer-events-none data-ending-style:pointer-events-none", "data-starting-style:overflow-hidden data-ending-style:overflow-hidden", "data-starting-style:translate-x-full data-ending-style:translate-x-full", "data-starting-style:blur data-ending-style:blur");
6
- const itemBase = cn("group/menu-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-(--menu-item-border-radius) py-1.5 px-2", "text-left", "text-shadow-2xs text-shadow-(color:--shadow-current-color)", "outline-2 -outline-offset-2 outline-transparent", "transition-colors duration-100 ease-in-out", "supports-[top:anchor(top)]:duration-50", "supports-[top:anchor(top)]:hover:duration-200", "supports-[top:anchor(top)]:data-highlighted:duration-200", "hover:bg-(--accent-background-color) hover:text-(--accent-text-color)", "data-highlighted:bg-(--accent-background-color) data-highlighted:text-(--accent-text-color)", "focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2");
5
+ const submenuPanel = cn("[--submenu-translate:100%] [&:dir(rtl)]:[--submenu-translate:-100%]", "absolute inset-x-0 top-0 [max-height:inherit] overflow-auto overscroll-none p-(--menu-padding) outline-none", "z-10", "translate-none transition-[translate,filter] duration-(--menu-transition-duration) ease-out", "data-starting-style:pointer-events-none data-ending-style:pointer-events-none", "data-starting-style:overflow-hidden data-ending-style:overflow-hidden", "data-starting-style:[translate:var(--submenu-translate)_0] data-ending-style:[translate:var(--submenu-translate)_0]", "data-starting-style:blur data-ending-style:blur");
6
+ const itemBase = cn("group/menu-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-(--menu-item-border-radius) py-1.5 px-2", "text-start", "text-shadow-2xs text-shadow-(color:--shadow-current-color)", "outline-2 -outline-offset-2 outline-transparent", "transition-colors duration-100 ease-in-out", "supports-[top:anchor(top)]:duration-50", "supports-[top:anchor(top)]:hover:duration-200", "supports-[top:anchor(top)]:data-highlighted:duration-200", "hover:bg-(--accent-background-color) hover:text-(--accent-text-color)", "data-highlighted:bg-(--accent-background-color) data-highlighted:text-(--accent-text-color)", "focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2");
7
7
  const menuTokens = cn("[--menu-transition-duration:250ms]", "[--menu-max-height:--spacing(56)]", "[--menu-padding:--spacing(1)]", "[--menu-border-radius:--spacing(3)]", "[--menu-item-border-radius:calc(var(--menu-border-radius)_-_var(--menu-padding))]", "motion-reduce:[--menu-transition-duration:0ms]");
8
8
  const group = cn("flex flex-col gap-0.5", "[anchor-scope:--menu-item-highlight-anchor]", "supports-[top:anchor(top)]:before:absolute", "supports-[top:anchor(top)]:before:[position-anchor:--menu-item-highlight-anchor]", "supports-[top:anchor(top)]:before:[inset:anchor(inside)]", "supports-[top:anchor(top)]:before:[overflow-anchor:none]", "supports-[top:anchor(top)]:before:pointer-events-none", "supports-[top:anchor(top)]:before:bg-(--accent-background-color)", "supports-[top:anchor(top)]:before:rounded-(--menu-item-border-radius)", "supports-[top:anchor(top)]:before:transition-[inset]", "supports-[top:anchor(top)]:before:duration-100", "supports-[top:anchor(top)]:before:ease-in-out", "supports-[top:anchor(top)]:has-data-[highlighted=]:before:duration-0");
9
9
  const menuHostShell = cn(popup.popover, surface, menuTokens, "min-w-max max-w-(--media-popover-available-width,none) max-h-[min(var(--media-popover-available-height,var(--menu-max-height)),var(--menu-max-height))]", "box-border rounded-(--menu-border-radius) p-(--menu-padding) overscroll-none");
@@ -11,19 +11,20 @@ const menu = {
11
11
  /** Standalone menu popover host (audio playback rate, sandbox demos). */
12
12
  root: cn(menuHostShell, "overflow-auto!"),
13
13
  /** Settings menu host with nested submenu navigation. */
14
- settings: cn(menuHostShell, "[--popup-transition:var(--popup-base-transition),width_var(--popup-transition-timing-function)_var(--menu-transition-duration),height_var(--popup-transition-timing-function)_var(--menu-transition-duration)]", "data-starting-style:[--popup-transition:var(--popup-base-transition)]", "data-ending-style:[--popup-transition:var(--popup-base-transition)]", "min-w-48! w-(--media-menu-width) h-(--media-menu-height)", "[&>:not([data-submenu])]:translate-none [&>:not([data-submenu])]:transition-[translate,filter]", "[&>:not([data-submenu])]:duration-(--menu-transition-duration) [&>:not([data-submenu])]:ease-out", "[&[data-submenu-expanded=true]>:not([data-submenu])]:-translate-x-full", "[&[data-submenu-expanded=true]>:not([data-submenu])]:blur", "[&[data-submenu-expanded]>:not([data-submenu])]:before:hidden", "overflow-hidden!"),
14
+ settings: cn(menuHostShell, "[--popup-transition:var(--popup-base-transition),width_var(--popup-transition-timing-function)_var(--menu-transition-duration),height_var(--popup-transition-timing-function)_var(--menu-transition-duration)]", "data-starting-style:[--popup-transition:var(--popup-base-transition)]", "data-ending-style:[--popup-transition:var(--popup-base-transition)]", "min-w-48! w-(--media-menu-width) h-(--media-menu-height)", "[&>:not([data-submenu])]:translate-none [&>:not([data-submenu])]:transition-[translate,filter]", "[&>:not([data-submenu])]:duration-(--menu-transition-duration) [&>:not([data-submenu])]:ease-out", "[--submenu-parent-translate:-100%] [&:dir(rtl)]:[--submenu-parent-translate:100%]", "[&[data-submenu-expanded=true]>:not([data-submenu])]:[translate:var(--submenu-parent-translate)_0]", "[&[data-submenu-expanded=true]>:not([data-submenu])]:blur", "[&[data-submenu-expanded]>:not([data-submenu])]:before:hidden", "overflow-hidden!"),
15
15
  group,
16
16
  item: cn(itemBase, "justify-between tabular-nums text-inherit", "supports-[top:anchor(top)]:data-highlighted:[anchor-name:--menu-item-highlight-anchor]", "supports-[top:anchor(top)]:data-highlighted:bg-transparent", "data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden", "aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50"),
17
17
  separator: "my-1 border-b border-[oklch(0_0_0/0.1)] shadow-[0_1px_0_0_oklch(1_0_0/0.075)]",
18
- tier: "pl-0.5 pt-px text-(length:--font-size-tiny) font-semibold leading-none text-current/70",
19
- indicator: "ml-auto -mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100",
18
+ tier: "ps-0.5 pt-px text-(length:--font-size-tiny) font-semibold leading-none text-current/70",
19
+ indicator: "ms-auto -me-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100",
20
20
  icon: "shrink-0 text-current/65 drop-shadow-[0_1px_0_var(--shadow-current-color)] group-hover/menu-item:text-inherit group-data-highlighted/menu-item:text-inherit",
21
21
  /** Nested submenu panel. */
22
22
  submenuPanel,
23
23
  back: cn(itemBase, "mb-0.5 w-full"),
24
- hint: "ml-auto inline-flex min-w-0 items-center gap-1 pl-2 text-current/65",
24
+ hint: "ms-auto inline-flex min-w-0 items-center gap-1 ps-2 text-current/65",
25
25
  hintLabel: "max-w-24 overflow-hidden text-ellipsis whitespace-nowrap",
26
- chevron: "size-3.5",
26
+ chevron: "size-3.5 [&:dir(rtl)]:[scale:-1_1]",
27
+ backChevron: "[&:dir(rtl)]:[scale:1_1]",
27
28
  settingsGroup: "group/settings",
28
29
  settingsTrigger: "group",
29
30
  settingsIcon: "transition-transform duration-150 ease-in-out group-aria-expanded:rotate-90 motion-reduce:duration-0"
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/menu.js"],"sourcesContent":["import { popup } from \"./popup.js\";\nimport { surface } from \"./surface.js\";\nimport { cn } from \"@videojs/utils/style\";\n//#region src/default/tailwind/components/menu.ts\nconst submenuPanel = cn(\"absolute inset-x-0 top-0 [max-height:inherit] overflow-auto overscroll-none p-(--menu-padding) outline-none\", \"z-10\", \"translate-none transition-[translate,filter] duration-(--menu-transition-duration) ease-out\", \"data-starting-style:pointer-events-none data-ending-style:pointer-events-none\", \"data-starting-style:overflow-hidden data-ending-style:overflow-hidden\", \"data-starting-style:translate-x-full data-ending-style:translate-x-full\", \"data-starting-style:blur data-ending-style:blur\");\nconst itemBase = cn(\"group/menu-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-(--menu-item-border-radius) py-1.5 px-2\", \"text-left\", \"text-shadow-2xs text-shadow-(color:--shadow-current-color)\", \"outline-2 -outline-offset-2 outline-transparent\", \"transition-colors duration-100 ease-in-out\", \"supports-[top:anchor(top)]:duration-50\", \"supports-[top:anchor(top)]:hover:duration-200\", \"supports-[top:anchor(top)]:data-highlighted:duration-200\", \"hover:bg-(--accent-background-color) hover:text-(--accent-text-color)\", \"data-highlighted:bg-(--accent-background-color) data-highlighted:text-(--accent-text-color)\", \"focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2\");\nconst menuTokens = cn(\"[--menu-transition-duration:250ms]\", \"[--menu-max-height:--spacing(56)]\", \"[--menu-padding:--spacing(1)]\", \"[--menu-border-radius:--spacing(3)]\", \"[--menu-item-border-radius:calc(var(--menu-border-radius)_-_var(--menu-padding))]\", \"motion-reduce:[--menu-transition-duration:0ms]\");\nconst group = cn(\"flex flex-col gap-0.5\", \"[anchor-scope:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:before:absolute\", \"supports-[top:anchor(top)]:before:[position-anchor:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:before:[inset:anchor(inside)]\", \"supports-[top:anchor(top)]:before:[overflow-anchor:none]\", \"supports-[top:anchor(top)]:before:pointer-events-none\", \"supports-[top:anchor(top)]:before:bg-(--accent-background-color)\", \"supports-[top:anchor(top)]:before:rounded-(--menu-item-border-radius)\", \"supports-[top:anchor(top)]:before:transition-[inset]\", \"supports-[top:anchor(top)]:before:duration-100\", \"supports-[top:anchor(top)]:before:ease-in-out\", \"supports-[top:anchor(top)]:has-data-[highlighted=]:before:duration-0\");\nconst menuHostShell = cn(popup.popover, surface, menuTokens, \"min-w-max max-w-(--media-popover-available-width,none) max-h-[min(var(--media-popover-available-height,var(--menu-max-height)),var(--menu-max-height))]\", \"box-border rounded-(--menu-border-radius) p-(--menu-padding) overscroll-none\");\nconst menu = {\n\t/** Standalone menu popover host (audio playback rate, sandbox demos). */\n\troot: cn(menuHostShell, \"overflow-auto!\"),\n\t/** Settings menu host with nested submenu navigation. */\n\tsettings: cn(menuHostShell, \"[--popup-transition:var(--popup-base-transition),width_var(--popup-transition-timing-function)_var(--menu-transition-duration),height_var(--popup-transition-timing-function)_var(--menu-transition-duration)]\", \"data-starting-style:[--popup-transition:var(--popup-base-transition)]\", \"data-ending-style:[--popup-transition:var(--popup-base-transition)]\", \"min-w-48! w-(--media-menu-width) h-(--media-menu-height)\", \"[&>:not([data-submenu])]:translate-none [&>:not([data-submenu])]:transition-[translate,filter]\", \"[&>:not([data-submenu])]:duration-(--menu-transition-duration) [&>:not([data-submenu])]:ease-out\", \"[&[data-submenu-expanded=true]>:not([data-submenu])]:-translate-x-full\", \"[&[data-submenu-expanded=true]>:not([data-submenu])]:blur\", \"[&[data-submenu-expanded]>:not([data-submenu])]:before:hidden\", \"overflow-hidden!\"),\n\tgroup,\n\titem: cn(itemBase, \"justify-between tabular-nums text-inherit\", \"supports-[top:anchor(top)]:data-highlighted:[anchor-name:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:data-highlighted:bg-transparent\", \"data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden\", \"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50\"),\n\tseparator: \"my-1 border-b border-[oklch(0_0_0/0.1)] shadow-[0_1px_0_0_oklch(1_0_0/0.075)]\",\n\ttier: \"pl-0.5 pt-px text-(length:--font-size-tiny) font-semibold leading-none text-current/70\",\n\tindicator: \"ml-auto -mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100\",\n\ticon: \"shrink-0 text-current/65 drop-shadow-[0_1px_0_var(--shadow-current-color)] group-hover/menu-item:text-inherit group-data-highlighted/menu-item:text-inherit\",\n\t/** Nested submenu panel. */\n\tsubmenuPanel,\n\tback: cn(itemBase, \"mb-0.5 w-full\"),\n\thint: \"ml-auto inline-flex min-w-0 items-center gap-1 pl-2 text-current/65\",\n\thintLabel: \"max-w-24 overflow-hidden text-ellipsis whitespace-nowrap\",\n\tchevron: \"size-3.5\",\n\tsettingsGroup: \"group/settings\",\n\tsettingsTrigger: \"group\",\n\tsettingsIcon: \"transition-transform duration-150 ease-in-out group-aria-expanded:rotate-90 motion-reduce:duration-0\"\n};\n//#endregion\nexport { menu };\n\n//# sourceMappingURL=menu.js.map"],"mappings":";;;;AAIA,MAAM,eAAe,GAAG,+GAA+G,QAAQ,+FAA+F,iFAAiF,yEAAyE,2EAA2E,iDAAiD;AACpgB,MAAM,WAAW,GAAG,iIAAiI,aAAa,8DAA8D,mDAAmD,8CAA8C,0CAA0C,iDAAiD,4DAA4D,yEAAyE,+FAA+F,2EAA2E;AAC3sB,MAAM,aAAa,GAAG,sCAAsC,qCAAqC,iCAAiC,uCAAuC,qFAAqF,gDAAgD;AAC9S,MAAM,QAAQ,GAAG,yBAAyB,+CAA+C,8CAA8C,oFAAoF,4DAA4D,4DAA4D,yDAAyD,oEAAoE,yEAAyE,wDAAwD,kDAAkD,iDAAiD,sEAAsE;AAC1vB,MAAM,gBAAgB,GAAG,MAAM,SAAS,SAAS,YAAY,2JAA2J,8EAA8E;AACtS,MAAM,OAAO;;CAEZ,MAAM,GAAG,eAAe,gBAAgB;;CAExC,UAAU,GAAG,eAAe,kNAAkN,yEAAyE,uEAAuE,4DAA4D,kGAAkG,oGAAoG,0EAA0E,6DAA6D,iEAAiE,kBAAkB;CAC11B;CACA,MAAM,GAAG,UAAU,6CAA6C,0FAA0F,8DAA8D,iFAAiF,6FAA6F;CACtY,WAAW;CACX,MAAM;CACN,WAAW;CACX,MAAM;;CAEN;CACA,MAAM,GAAG,UAAU,eAAe;CAClC,MAAM;CACN,WAAW;CACX,SAAS;CACT,eAAe;CACf,iBAAiB;CACjB,cAAc;AACf"}
1
+ {"version":3,"file":"menu.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/menu.js"],"sourcesContent":["import { popup } from \"./popup.js\";\nimport { surface } from \"./surface.js\";\nimport { cn } from \"@videojs/utils/style\";\n//#region src/default/tailwind/components/menu.ts\nconst submenuPanel = cn(\"[--submenu-translate:100%] [&:dir(rtl)]:[--submenu-translate:-100%]\", \"absolute inset-x-0 top-0 [max-height:inherit] overflow-auto overscroll-none p-(--menu-padding) outline-none\", \"z-10\", \"translate-none transition-[translate,filter] duration-(--menu-transition-duration) ease-out\", \"data-starting-style:pointer-events-none data-ending-style:pointer-events-none\", \"data-starting-style:overflow-hidden data-ending-style:overflow-hidden\", \"data-starting-style:[translate:var(--submenu-translate)_0] data-ending-style:[translate:var(--submenu-translate)_0]\", \"data-starting-style:blur data-ending-style:blur\");\nconst itemBase = cn(\"group/menu-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-(--menu-item-border-radius) py-1.5 px-2\", \"text-start\", \"text-shadow-2xs text-shadow-(color:--shadow-current-color)\", \"outline-2 -outline-offset-2 outline-transparent\", \"transition-colors duration-100 ease-in-out\", \"supports-[top:anchor(top)]:duration-50\", \"supports-[top:anchor(top)]:hover:duration-200\", \"supports-[top:anchor(top)]:data-highlighted:duration-200\", \"hover:bg-(--accent-background-color) hover:text-(--accent-text-color)\", \"data-highlighted:bg-(--accent-background-color) data-highlighted:text-(--accent-text-color)\", \"focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2\");\nconst menuTokens = cn(\"[--menu-transition-duration:250ms]\", \"[--menu-max-height:--spacing(56)]\", \"[--menu-padding:--spacing(1)]\", \"[--menu-border-radius:--spacing(3)]\", \"[--menu-item-border-radius:calc(var(--menu-border-radius)_-_var(--menu-padding))]\", \"motion-reduce:[--menu-transition-duration:0ms]\");\nconst group = cn(\"flex flex-col gap-0.5\", \"[anchor-scope:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:before:absolute\", \"supports-[top:anchor(top)]:before:[position-anchor:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:before:[inset:anchor(inside)]\", \"supports-[top:anchor(top)]:before:[overflow-anchor:none]\", \"supports-[top:anchor(top)]:before:pointer-events-none\", \"supports-[top:anchor(top)]:before:bg-(--accent-background-color)\", \"supports-[top:anchor(top)]:before:rounded-(--menu-item-border-radius)\", \"supports-[top:anchor(top)]:before:transition-[inset]\", \"supports-[top:anchor(top)]:before:duration-100\", \"supports-[top:anchor(top)]:before:ease-in-out\", \"supports-[top:anchor(top)]:has-data-[highlighted=]:before:duration-0\");\nconst menuHostShell = cn(popup.popover, surface, menuTokens, \"min-w-max max-w-(--media-popover-available-width,none) max-h-[min(var(--media-popover-available-height,var(--menu-max-height)),var(--menu-max-height))]\", \"box-border rounded-(--menu-border-radius) p-(--menu-padding) overscroll-none\");\nconst menu = {\n\t/** Standalone menu popover host (audio playback rate, sandbox demos). */\n\troot: cn(menuHostShell, \"overflow-auto!\"),\n\t/** Settings menu host with nested submenu navigation. */\n\tsettings: cn(menuHostShell, \"[--popup-transition:var(--popup-base-transition),width_var(--popup-transition-timing-function)_var(--menu-transition-duration),height_var(--popup-transition-timing-function)_var(--menu-transition-duration)]\", \"data-starting-style:[--popup-transition:var(--popup-base-transition)]\", \"data-ending-style:[--popup-transition:var(--popup-base-transition)]\", \"min-w-48! w-(--media-menu-width) h-(--media-menu-height)\", \"[&>:not([data-submenu])]:translate-none [&>:not([data-submenu])]:transition-[translate,filter]\", \"[&>:not([data-submenu])]:duration-(--menu-transition-duration) [&>:not([data-submenu])]:ease-out\", \"[--submenu-parent-translate:-100%] [&:dir(rtl)]:[--submenu-parent-translate:100%]\", \"[&[data-submenu-expanded=true]>:not([data-submenu])]:[translate:var(--submenu-parent-translate)_0]\", \"[&[data-submenu-expanded=true]>:not([data-submenu])]:blur\", \"[&[data-submenu-expanded]>:not([data-submenu])]:before:hidden\", \"overflow-hidden!\"),\n\tgroup,\n\titem: cn(itemBase, \"justify-between tabular-nums text-inherit\", \"supports-[top:anchor(top)]:data-highlighted:[anchor-name:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:data-highlighted:bg-transparent\", \"data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden\", \"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50\"),\n\tseparator: \"my-1 border-b border-[oklch(0_0_0/0.1)] shadow-[0_1px_0_0_oklch(1_0_0/0.075)]\",\n\ttier: \"ps-0.5 pt-px text-(length:--font-size-tiny) font-semibold leading-none text-current/70\",\n\tindicator: \"ms-auto -me-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100\",\n\ticon: \"shrink-0 text-current/65 drop-shadow-[0_1px_0_var(--shadow-current-color)] group-hover/menu-item:text-inherit group-data-highlighted/menu-item:text-inherit\",\n\t/** Nested submenu panel. */\n\tsubmenuPanel,\n\tback: cn(itemBase, \"mb-0.5 w-full\"),\n\thint: \"ms-auto inline-flex min-w-0 items-center gap-1 ps-2 text-current/65\",\n\thintLabel: \"max-w-24 overflow-hidden text-ellipsis whitespace-nowrap\",\n\tchevron: \"size-3.5 [&:dir(rtl)]:[scale:-1_1]\",\n\tbackChevron: \"[&:dir(rtl)]:[scale:1_1]\",\n\tsettingsGroup: \"group/settings\",\n\tsettingsTrigger: \"group\",\n\tsettingsIcon: \"transition-transform duration-150 ease-in-out group-aria-expanded:rotate-90 motion-reduce:duration-0\"\n};\n//#endregion\nexport { menu };\n\n//# sourceMappingURL=menu.js.map"],"mappings":";;;;AAIA,MAAM,eAAe,GAAG,uEAAuE,+GAA+G,QAAQ,+FAA+F,iFAAiF,yEAAyE,uHAAuH,iDAAiD;AACvnB,MAAM,WAAW,GAAG,iIAAiI,cAAc,8DAA8D,mDAAmD,8CAA8C,0CAA0C,iDAAiD,4DAA4D,yEAAyE,+FAA+F,2EAA2E;AAC5sB,MAAM,aAAa,GAAG,sCAAsC,qCAAqC,iCAAiC,uCAAuC,qFAAqF,gDAAgD;AAC9S,MAAM,QAAQ,GAAG,yBAAyB,+CAA+C,8CAA8C,oFAAoF,4DAA4D,4DAA4D,yDAAyD,oEAAoE,yEAAyE,wDAAwD,kDAAkD,iDAAiD,sEAAsE;AAC1vB,MAAM,gBAAgB,GAAG,MAAM,SAAS,SAAS,YAAY,2JAA2J,8EAA8E;AACtS,MAAM,OAAO;;CAEZ,MAAM,GAAG,eAAe,gBAAgB;;CAExC,UAAU,GAAG,eAAe,kNAAkN,yEAAyE,uEAAuE,4DAA4D,kGAAkG,oGAAoG,qFAAqF,sGAAsG,6DAA6D,iEAAiE,kBAAkB;CAC38B;CACA,MAAM,GAAG,UAAU,6CAA6C,0FAA0F,8DAA8D,iFAAiF,6FAA6F;CACtY,WAAW;CACX,MAAM;CACN,WAAW;CACX,MAAM;;CAEN;CACA,MAAM,GAAG,UAAU,eAAe;CAClC,MAAM;CACN,WAAW;CACX,SAAS;CACT,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,cAAc;AACf"}
@@ -1,6 +1,6 @@
1
1
  //#region ../skins/dist/default/default/tailwind/components/time.js
2
2
  const time = {
3
- group: "@container/media-time flex items-center flex-1 gap-2.5 @max-[16rem]/media-time:[&>*:last-child]:hidden",
3
+ group: "@container/media-time flex items-center flex-1 gap-2.5 [&:dir(rtl)]:flex-row-reverse @max-[16rem]/media-time:[&>*:last-child]:hidden",
4
4
  current: "tabular-nums",
5
5
  duration: "tabular-nums cursor-pointer rounded-[--spacing(1)] outline-2 outline-transparent -outline-offset-2 transition-[outline-color,outline-offset] duration-100 ease-out focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2"
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/time.js"],"sourcesContent":["//#region src/default/tailwind/components/time.ts\nconst time = {\n\tgroup: \"@container/media-time flex items-center flex-1 gap-2.5 @max-[16rem]/media-time:[&>*:last-child]:hidden\",\n\tcurrent: \"tabular-nums\",\n\tduration: \"tabular-nums cursor-pointer rounded-[--spacing(1)] outline-2 outline-transparent -outline-offset-2 transition-[outline-color,outline-offset] duration-100 ease-out focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2\"\n};\n//#endregion\nexport { time };\n\n//# sourceMappingURL=time.js.map"],"mappings":";AACA,MAAM,OAAO;CACZ,OAAO;CACP,SAAS;CACT,UAAU;AACX"}
1
+ {"version":3,"file":"time.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/time.js"],"sourcesContent":["//#region src/default/tailwind/components/time.ts\nconst time = {\n\tgroup: \"@container/media-time flex items-center flex-1 gap-2.5 [&:dir(rtl)]:flex-row-reverse @max-[16rem]/media-time:[&>*:last-child]:hidden\",\n\tcurrent: \"tabular-nums\",\n\tduration: \"tabular-nums cursor-pointer rounded-[--spacing(1)] outline-2 outline-transparent -outline-offset-2 transition-[outline-color,outline-offset] duration-100 ease-out focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2\"\n};\n//#endregion\nexport { time };\n\n//# sourceMappingURL=time.js.map"],"mappings":";AACA,MAAM,OAAO;CACZ,OAAO;CACP,SAAS;CACT,UAAU;AACX"}
@@ -1,5 +1,5 @@
1
1
  //#region ../skins/dist/default/minimal/tailwind/components/button-group.js
2
- const buttonGroup = "flex items-center gap-px";
2
+ const buttonGroup = "flex items-center gap-px [&:dir(rtl)]:flex-row-reverse";
3
3
  //#endregion
4
4
  export { buttonGroup };
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/button-group.js"],"sourcesContent":["//#region src/minimal/tailwind/components/button-group.ts\nconst buttonGroup = \"flex items-center gap-px\";\n//#endregion\nexport { buttonGroup };\n\n//# sourceMappingURL=button-group.js.map"],"mappings":";AACA,MAAM,cAAc"}
1
+ {"version":3,"file":"button-group.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/button-group.js"],"sourcesContent":["//#region src/minimal/tailwind/components/button-group.ts\nconst buttonGroup = \"flex items-center gap-px [&:dir(rtl)]:flex-row-reverse\";\n//#endregion\nexport { buttonGroup };\n\n//# sourceMappingURL=button-group.js.map"],"mappings":";AACA,MAAM,cAAc"}
@@ -1,6 +1,6 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
  //#region ../skins/dist/default/minimal/tailwind/components/controls.js
3
- const controls = cn("peer/controls", "@container/media-controls", "[--media-popover-side-offset:calc(var(--spacing)*(var(--base-side-offset,0)+var(--controls-padding,1)))]", "[--media-tooltip-side-offset:var(--media-popover-side-offset)]", "[--media-popover-boundary-offset:calc(var(--spacing)*(var(--base-boundary-offset,0)+var(--controls-padding,1)))]", "[--media-tooltip-boundary-offset:var(--media-popover-boundary-offset)]", "[padding:calc(var(--spacing)*var(--controls-padding,1))] flex items-center", "bg-(--controls-background-color)", "[backdrop-filter:var(--controls-backdrop-filter)]", "text-shadow-2xs text-shadow-(color:--shadow-current-color)");
3
+ const controls = cn("peer/controls", "@container/media-controls", "[--media-popover-side-offset:calc(var(--spacing)*(var(--base-side-offset,0)+var(--controls-padding,1)))]", "[--media-tooltip-side-offset:var(--media-popover-side-offset)]", "[--media-popover-boundary-offset:calc(var(--spacing)*(var(--base-boundary-offset,0)+var(--controls-padding,1)))]", "[--media-tooltip-boundary-offset:var(--media-popover-boundary-offset)]", "[padding:calc(var(--spacing)*var(--controls-padding,1))] flex items-center [&:dir(rtl)]:flex-row-reverse", "bg-(--controls-background-color)", "[backdrop-filter:var(--controls-backdrop-filter)]", "text-shadow-2xs text-shadow-(color:--shadow-current-color)");
4
4
  //#endregion
5
5
  export { controls };
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"controls.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/controls.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/controls.ts\nconst controls = cn(\"peer/controls\", \"@container/media-controls\", \"[--media-popover-side-offset:calc(var(--spacing)*(var(--base-side-offset,0)+var(--controls-padding,1)))]\", \"[--media-tooltip-side-offset:var(--media-popover-side-offset)]\", \"[--media-popover-boundary-offset:calc(var(--spacing)*(var(--base-boundary-offset,0)+var(--controls-padding,1)))]\", \"[--media-tooltip-boundary-offset:var(--media-popover-boundary-offset)]\", \"[padding:calc(var(--spacing)*var(--controls-padding,1))] flex items-center\", \"bg-(--controls-background-color)\", \"[backdrop-filter:var(--controls-backdrop-filter)]\", \"text-shadow-2xs text-shadow-(color:--shadow-current-color)\");\n//#endregion\nexport { controls };\n\n//# sourceMappingURL=controls.js.map"],"mappings":";;AAEA,MAAM,WAAW,GAAG,iBAAiB,6BAA6B,4GAA4G,kEAAkE,oHAAoH,0EAA0E,8EAA8E,oCAAoC,qDAAqD,4DAA4D"}
1
+ {"version":3,"file":"controls.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/controls.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/controls.ts\nconst controls = cn(\"peer/controls\", \"@container/media-controls\", \"[--media-popover-side-offset:calc(var(--spacing)*(var(--base-side-offset,0)+var(--controls-padding,1)))]\", \"[--media-tooltip-side-offset:var(--media-popover-side-offset)]\", \"[--media-popover-boundary-offset:calc(var(--spacing)*(var(--base-boundary-offset,0)+var(--controls-padding,1)))]\", \"[--media-tooltip-boundary-offset:var(--media-popover-boundary-offset)]\", \"[padding:calc(var(--spacing)*var(--controls-padding,1))] flex items-center [&:dir(rtl)]:flex-row-reverse\", \"bg-(--controls-background-color)\", \"[backdrop-filter:var(--controls-backdrop-filter)]\", \"text-shadow-2xs text-shadow-(color:--shadow-current-color)\");\n//#endregion\nexport { controls };\n\n//# sourceMappingURL=controls.js.map"],"mappings":";;AAEA,MAAM,WAAW,GAAG,iBAAiB,6BAA6B,4GAA4G,kEAAkE,oHAAoH,0EAA0E,4GAA4G,oCAAoC,qDAAqD,4DAA4D"}
@@ -1,8 +1,8 @@
1
1
  import { popup } from "./popup.js";
2
2
  import { cn } from "@videojs/utils/style";
3
3
  //#region ../skins/dist/default/minimal/tailwind/components/menu.js
4
- const submenuPanel = cn("absolute inset-x-0 top-0 [max-height:inherit] overflow-auto overscroll-none p-(--menu-padding) outline-none", "z-10", "translate-none transition-[translate,filter] duration-(--menu-transition-duration) ease-out", "data-starting-style:pointer-events-none data-ending-style:pointer-events-none", "data-starting-style:overflow-hidden data-ending-style:overflow-hidden", "data-starting-style:translate-x-full data-ending-style:translate-x-full", "data-starting-style:blur data-ending-style:blur");
5
- const itemBase = cn("group/menu-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-(--menu-item-border-radius) py-1.5 px-2", "text-left", "text-shadow-2xs text-shadow-(color:--shadow-current-color)", "outline-2 -outline-offset-2 outline-transparent", "transition-colors duration-100 ease-in-out", "supports-[top:anchor(top)]:duration-50", "supports-[top:anchor(top)]:hover:duration-200", "supports-[top:anchor(top)]:data-highlighted:duration-200", "hover:bg-(--accent-background-color) hover:text-(--accent-text-color)", "data-highlighted:bg-(--accent-background-color) data-highlighted:text-(--accent-text-color)", "focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2");
4
+ const submenuPanel = cn("[--submenu-translate:100%] [&:dir(rtl)]:[--submenu-translate:-100%]", "absolute inset-x-0 top-0 [max-height:inherit] overflow-auto overscroll-none p-(--menu-padding) outline-none", "z-10", "translate-none transition-[translate,filter] duration-(--menu-transition-duration) ease-out", "data-starting-style:pointer-events-none data-ending-style:pointer-events-none", "data-starting-style:overflow-hidden data-ending-style:overflow-hidden", "data-starting-style:[translate:var(--submenu-translate)_0] data-ending-style:[translate:var(--submenu-translate)_0]", "data-starting-style:blur data-ending-style:blur");
5
+ const itemBase = cn("group/menu-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-(--menu-item-border-radius) py-1.5 px-2", "text-start", "text-shadow-2xs text-shadow-(color:--shadow-current-color)", "outline-2 -outline-offset-2 outline-transparent", "transition-colors duration-100 ease-in-out", "supports-[top:anchor(top)]:duration-50", "supports-[top:anchor(top)]:hover:duration-200", "supports-[top:anchor(top)]:data-highlighted:duration-200", "hover:bg-(--accent-background-color) hover:text-(--accent-text-color)", "data-highlighted:bg-(--accent-background-color) data-highlighted:text-(--accent-text-color)", "focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2");
6
6
  const menuTokens = cn("[--menu-transition-duration:250ms]", "[--menu-max-height:--spacing(56)]", "[--menu-padding:--spacing(1)]", "[--menu-border-radius:--spacing(2.5)]", "[--menu-item-border-radius:calc(var(--menu-border-radius)_-_var(--menu-padding))]", "motion-reduce:[--menu-transition-duration:0ms]");
7
7
  const group = cn("flex flex-col gap-0.5", "[anchor-scope:--menu-item-highlight-anchor]", "supports-[top:anchor(top)]:before:absolute", "supports-[top:anchor(top)]:before:[position-anchor:--menu-item-highlight-anchor]", "supports-[top:anchor(top)]:before:[inset:anchor(inside)]", "supports-[top:anchor(top)]:before:[overflow-anchor:none]", "supports-[top:anchor(top)]:before:pointer-events-none", "supports-[top:anchor(top)]:before:bg-(--accent-background-color)", "supports-[top:anchor(top)]:before:rounded-(--menu-item-border-radius)", "supports-[top:anchor(top)]:before:transition-[inset]", "supports-[top:anchor(top)]:before:duration-100", "supports-[top:anchor(top)]:before:ease-in-out", "supports-[top:anchor(top)]:has-data-[highlighted=]:before:duration-0");
8
8
  const menuHostShell = cn(popup.popover, menuTokens, "min-w-max max-w-(--media-popover-available-width,none) max-h-[min(var(--media-popover-available-height,var(--menu-max-height)),var(--menu-max-height))]", "bg-(--popover-background-color) [backdrop-filter:var(--popover-backdrop-filter)]", "shadow-[0_0_0_1px_var(--popover-border-color),0_4px_6px_-1px_oklch(0_0_0/0.1),0_2px_4px_-2px_oklch(0_0_0/0.1)]", "box-border rounded-(--menu-border-radius) p-(--menu-padding) overscroll-none");
@@ -10,19 +10,20 @@ const menu = {
10
10
  /** Standalone menu popover host (audio playback rate, sandbox demos). */
11
11
  root: cn(menuHostShell, "overflow-auto!"),
12
12
  /** Settings menu host with nested submenu navigation. */
13
- settings: cn(menuHostShell, "[--popup-transition:var(--popup-base-transition),width_var(--popup-transition-timing-function)_var(--menu-transition-duration),height_var(--popup-transition-timing-function)_var(--menu-transition-duration)]", "data-starting-style:[--popup-transition:var(--popup-base-transition)]", "data-ending-style:[--popup-transition:var(--popup-base-transition)]", "min-w-48! w-(--media-menu-width) h-(--media-menu-height)", "[&>:not([data-submenu])]:translate-none [&>:not([data-submenu])]:transition-[translate,filter]", "[&>:not([data-submenu])]:duration-(--menu-transition-duration) [&>:not([data-submenu])]:ease-out", "[&[data-submenu-expanded=true]>:not([data-submenu])]:-translate-x-full", "[&[data-submenu-expanded=true]>:not([data-submenu])]:blur", "[&[data-submenu-expanded]>:not([data-submenu])]:before:hidden", "overflow-hidden!"),
13
+ settings: cn(menuHostShell, "[--popup-transition:var(--popup-base-transition),width_var(--popup-transition-timing-function)_var(--menu-transition-duration),height_var(--popup-transition-timing-function)_var(--menu-transition-duration)]", "data-starting-style:[--popup-transition:var(--popup-base-transition)]", "data-ending-style:[--popup-transition:var(--popup-base-transition)]", "min-w-48! w-(--media-menu-width) h-(--media-menu-height)", "[&>:not([data-submenu])]:translate-none [&>:not([data-submenu])]:transition-[translate,filter]", "[&>:not([data-submenu])]:duration-(--menu-transition-duration) [&>:not([data-submenu])]:ease-out", "[--submenu-parent-translate:-100%] [&:dir(rtl)]:[--submenu-parent-translate:100%]", "[&[data-submenu-expanded=true]>:not([data-submenu])]:[translate:var(--submenu-parent-translate)_0]", "[&[data-submenu-expanded=true]>:not([data-submenu])]:blur", "[&[data-submenu-expanded]>:not([data-submenu])]:before:hidden", "overflow-hidden!"),
14
14
  group,
15
15
  item: cn(itemBase, "justify-between tabular-nums text-inherit", "supports-[top:anchor(top)]:data-highlighted:[anchor-name:--menu-item-highlight-anchor]", "supports-[top:anchor(top)]:data-highlighted:bg-transparent", "data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden", "aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50"),
16
16
  separator: "my-1 border-b border-[oklch(1_0_0/0.1)]",
17
- tier: "pl-0.5 pt-px text-(length:--font-size-tiny) font-semibold leading-none text-current/70",
18
- indicator: "ml-auto -mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100",
17
+ tier: "ps-0.5 pt-px text-(length:--font-size-tiny) font-semibold leading-none text-current/70",
18
+ indicator: "ms-auto -me-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100",
19
19
  icon: "shrink-0 text-current/50 drop-shadow-[0_1px_0_var(--shadow-current-color)] group-hover/menu-item:text-inherit group-data-highlighted/menu-item:text-inherit",
20
20
  /** Nested submenu panel. */
21
21
  submenuPanel,
22
22
  back: cn(itemBase, "mb-0.5 w-full"),
23
- hint: "ml-auto inline-flex min-w-0 items-center gap-1 pl-2 text-current/65",
23
+ hint: "ms-auto inline-flex min-w-0 items-center gap-1 ps-2 text-current/65",
24
24
  hintLabel: "max-w-24 overflow-hidden text-ellipsis whitespace-nowrap",
25
- chevron: "size-3.5",
25
+ chevron: "size-3.5 [&:dir(rtl)]:[scale:-1_1]",
26
+ backChevron: "[&:dir(rtl)]:[scale:1_1]",
26
27
  settingsGroup: "group/settings",
27
28
  settingsTrigger: "group",
28
29
  settingsIcon: "transition-transform duration-150 ease-in-out group-aria-expanded:rotate-90 motion-reduce:duration-0"
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/menu.js"],"sourcesContent":["import { popup } from \"./popup.js\";\nimport { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/menu.ts\nconst submenuPanel = cn(\"absolute inset-x-0 top-0 [max-height:inherit] overflow-auto overscroll-none p-(--menu-padding) outline-none\", \"z-10\", \"translate-none transition-[translate,filter] duration-(--menu-transition-duration) ease-out\", \"data-starting-style:pointer-events-none data-ending-style:pointer-events-none\", \"data-starting-style:overflow-hidden data-ending-style:overflow-hidden\", \"data-starting-style:translate-x-full data-ending-style:translate-x-full\", \"data-starting-style:blur data-ending-style:blur\");\nconst itemBase = cn(\"group/menu-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-(--menu-item-border-radius) py-1.5 px-2\", \"text-left\", \"text-shadow-2xs text-shadow-(color:--shadow-current-color)\", \"outline-2 -outline-offset-2 outline-transparent\", \"transition-colors duration-100 ease-in-out\", \"supports-[top:anchor(top)]:duration-50\", \"supports-[top:anchor(top)]:hover:duration-200\", \"supports-[top:anchor(top)]:data-highlighted:duration-200\", \"hover:bg-(--accent-background-color) hover:text-(--accent-text-color)\", \"data-highlighted:bg-(--accent-background-color) data-highlighted:text-(--accent-text-color)\", \"focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2\");\nconst menuTokens = cn(\"[--menu-transition-duration:250ms]\", \"[--menu-max-height:--spacing(56)]\", \"[--menu-padding:--spacing(1)]\", \"[--menu-border-radius:--spacing(2.5)]\", \"[--menu-item-border-radius:calc(var(--menu-border-radius)_-_var(--menu-padding))]\", \"motion-reduce:[--menu-transition-duration:0ms]\");\nconst group = cn(\"flex flex-col gap-0.5\", \"[anchor-scope:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:before:absolute\", \"supports-[top:anchor(top)]:before:[position-anchor:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:before:[inset:anchor(inside)]\", \"supports-[top:anchor(top)]:before:[overflow-anchor:none]\", \"supports-[top:anchor(top)]:before:pointer-events-none\", \"supports-[top:anchor(top)]:before:bg-(--accent-background-color)\", \"supports-[top:anchor(top)]:before:rounded-(--menu-item-border-radius)\", \"supports-[top:anchor(top)]:before:transition-[inset]\", \"supports-[top:anchor(top)]:before:duration-100\", \"supports-[top:anchor(top)]:before:ease-in-out\", \"supports-[top:anchor(top)]:has-data-[highlighted=]:before:duration-0\");\nconst menuHostShell = cn(popup.popover, menuTokens, \"min-w-max max-w-(--media-popover-available-width,none) max-h-[min(var(--media-popover-available-height,var(--menu-max-height)),var(--menu-max-height))]\", \"bg-(--popover-background-color) [backdrop-filter:var(--popover-backdrop-filter)]\", \"shadow-[0_0_0_1px_var(--popover-border-color),0_4px_6px_-1px_oklch(0_0_0/0.1),0_2px_4px_-2px_oklch(0_0_0/0.1)]\", \"box-border rounded-(--menu-border-radius) p-(--menu-padding) overscroll-none\");\nconst menu = {\n\t/** Standalone menu popover host (audio playback rate, sandbox demos). */\n\troot: cn(menuHostShell, \"overflow-auto!\"),\n\t/** Settings menu host with nested submenu navigation. */\n\tsettings: cn(menuHostShell, \"[--popup-transition:var(--popup-base-transition),width_var(--popup-transition-timing-function)_var(--menu-transition-duration),height_var(--popup-transition-timing-function)_var(--menu-transition-duration)]\", \"data-starting-style:[--popup-transition:var(--popup-base-transition)]\", \"data-ending-style:[--popup-transition:var(--popup-base-transition)]\", \"min-w-48! w-(--media-menu-width) h-(--media-menu-height)\", \"[&>:not([data-submenu])]:translate-none [&>:not([data-submenu])]:transition-[translate,filter]\", \"[&>:not([data-submenu])]:duration-(--menu-transition-duration) [&>:not([data-submenu])]:ease-out\", \"[&[data-submenu-expanded=true]>:not([data-submenu])]:-translate-x-full\", \"[&[data-submenu-expanded=true]>:not([data-submenu])]:blur\", \"[&[data-submenu-expanded]>:not([data-submenu])]:before:hidden\", \"overflow-hidden!\"),\n\tgroup,\n\titem: cn(itemBase, \"justify-between tabular-nums text-inherit\", \"supports-[top:anchor(top)]:data-highlighted:[anchor-name:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:data-highlighted:bg-transparent\", \"data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden\", \"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50\"),\n\tseparator: \"my-1 border-b border-[oklch(1_0_0/0.1)]\",\n\ttier: \"pl-0.5 pt-px text-(length:--font-size-tiny) font-semibold leading-none text-current/70\",\n\tindicator: \"ml-auto -mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100\",\n\ticon: \"shrink-0 text-current/50 drop-shadow-[0_1px_0_var(--shadow-current-color)] group-hover/menu-item:text-inherit group-data-highlighted/menu-item:text-inherit\",\n\t/** Nested submenu panel. */\n\tsubmenuPanel,\n\tback: cn(itemBase, \"mb-0.5 w-full\"),\n\thint: \"ml-auto inline-flex min-w-0 items-center gap-1 pl-2 text-current/65\",\n\thintLabel: \"max-w-24 overflow-hidden text-ellipsis whitespace-nowrap\",\n\tchevron: \"size-3.5\",\n\tsettingsGroup: \"group/settings\",\n\tsettingsTrigger: \"group\",\n\tsettingsIcon: \"transition-transform duration-150 ease-in-out group-aria-expanded:rotate-90 motion-reduce:duration-0\"\n};\n//#endregion\nexport { menu };\n\n//# sourceMappingURL=menu.js.map"],"mappings":";;;AAGA,MAAM,eAAe,GAAG,+GAA+G,QAAQ,+FAA+F,iFAAiF,yEAAyE,2EAA2E,iDAAiD;AACpgB,MAAM,WAAW,GAAG,iIAAiI,aAAa,8DAA8D,mDAAmD,8CAA8C,0CAA0C,iDAAiD,4DAA4D,yEAAyE,+FAA+F,2EAA2E;AAC3sB,MAAM,aAAa,GAAG,sCAAsC,qCAAqC,iCAAiC,yCAAyC,qFAAqF,gDAAgD;AAChT,MAAM,QAAQ,GAAG,yBAAyB,+CAA+C,8CAA8C,oFAAoF,4DAA4D,4DAA4D,yDAAyD,oEAAoE,yEAAyE,wDAAwD,kDAAkD,iDAAiD,sEAAsE;AAC1vB,MAAM,gBAAgB,GAAG,MAAM,SAAS,YAAY,2JAA2J,oFAAoF,kHAAkH,8EAA8E;AACne,MAAM,OAAO;;CAEZ,MAAM,GAAG,eAAe,gBAAgB;;CAExC,UAAU,GAAG,eAAe,kNAAkN,yEAAyE,uEAAuE,4DAA4D,kGAAkG,oGAAoG,0EAA0E,6DAA6D,iEAAiE,kBAAkB;CAC11B;CACA,MAAM,GAAG,UAAU,6CAA6C,0FAA0F,8DAA8D,iFAAiF,6FAA6F;CACtY,WAAW;CACX,MAAM;CACN,WAAW;CACX,MAAM;;CAEN;CACA,MAAM,GAAG,UAAU,eAAe;CAClC,MAAM;CACN,WAAW;CACX,SAAS;CACT,eAAe;CACf,iBAAiB;CACjB,cAAc;AACf"}
1
+ {"version":3,"file":"menu.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/menu.js"],"sourcesContent":["import { popup } from \"./popup.js\";\nimport { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/menu.ts\nconst submenuPanel = cn(\"[--submenu-translate:100%] [&:dir(rtl)]:[--submenu-translate:-100%]\", \"absolute inset-x-0 top-0 [max-height:inherit] overflow-auto overscroll-none p-(--menu-padding) outline-none\", \"z-10\", \"translate-none transition-[translate,filter] duration-(--menu-transition-duration) ease-out\", \"data-starting-style:pointer-events-none data-ending-style:pointer-events-none\", \"data-starting-style:overflow-hidden data-ending-style:overflow-hidden\", \"data-starting-style:[translate:var(--submenu-translate)_0] data-ending-style:[translate:var(--submenu-translate)_0]\", \"data-starting-style:blur data-ending-style:blur\");\nconst itemBase = cn(\"group/menu-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-(--menu-item-border-radius) py-1.5 px-2\", \"text-start\", \"text-shadow-2xs text-shadow-(color:--shadow-current-color)\", \"outline-2 -outline-offset-2 outline-transparent\", \"transition-colors duration-100 ease-in-out\", \"supports-[top:anchor(top)]:duration-50\", \"supports-[top:anchor(top)]:hover:duration-200\", \"supports-[top:anchor(top)]:data-highlighted:duration-200\", \"hover:bg-(--accent-background-color) hover:text-(--accent-text-color)\", \"data-highlighted:bg-(--accent-background-color) data-highlighted:text-(--accent-text-color)\", \"focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2\");\nconst menuTokens = cn(\"[--menu-transition-duration:250ms]\", \"[--menu-max-height:--spacing(56)]\", \"[--menu-padding:--spacing(1)]\", \"[--menu-border-radius:--spacing(2.5)]\", \"[--menu-item-border-radius:calc(var(--menu-border-radius)_-_var(--menu-padding))]\", \"motion-reduce:[--menu-transition-duration:0ms]\");\nconst group = cn(\"flex flex-col gap-0.5\", \"[anchor-scope:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:before:absolute\", \"supports-[top:anchor(top)]:before:[position-anchor:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:before:[inset:anchor(inside)]\", \"supports-[top:anchor(top)]:before:[overflow-anchor:none]\", \"supports-[top:anchor(top)]:before:pointer-events-none\", \"supports-[top:anchor(top)]:before:bg-(--accent-background-color)\", \"supports-[top:anchor(top)]:before:rounded-(--menu-item-border-radius)\", \"supports-[top:anchor(top)]:before:transition-[inset]\", \"supports-[top:anchor(top)]:before:duration-100\", \"supports-[top:anchor(top)]:before:ease-in-out\", \"supports-[top:anchor(top)]:has-data-[highlighted=]:before:duration-0\");\nconst menuHostShell = cn(popup.popover, menuTokens, \"min-w-max max-w-(--media-popover-available-width,none) max-h-[min(var(--media-popover-available-height,var(--menu-max-height)),var(--menu-max-height))]\", \"bg-(--popover-background-color) [backdrop-filter:var(--popover-backdrop-filter)]\", \"shadow-[0_0_0_1px_var(--popover-border-color),0_4px_6px_-1px_oklch(0_0_0/0.1),0_2px_4px_-2px_oklch(0_0_0/0.1)]\", \"box-border rounded-(--menu-border-radius) p-(--menu-padding) overscroll-none\");\nconst menu = {\n\t/** Standalone menu popover host (audio playback rate, sandbox demos). */\n\troot: cn(menuHostShell, \"overflow-auto!\"),\n\t/** Settings menu host with nested submenu navigation. */\n\tsettings: cn(menuHostShell, \"[--popup-transition:var(--popup-base-transition),width_var(--popup-transition-timing-function)_var(--menu-transition-duration),height_var(--popup-transition-timing-function)_var(--menu-transition-duration)]\", \"data-starting-style:[--popup-transition:var(--popup-base-transition)]\", \"data-ending-style:[--popup-transition:var(--popup-base-transition)]\", \"min-w-48! w-(--media-menu-width) h-(--media-menu-height)\", \"[&>:not([data-submenu])]:translate-none [&>:not([data-submenu])]:transition-[translate,filter]\", \"[&>:not([data-submenu])]:duration-(--menu-transition-duration) [&>:not([data-submenu])]:ease-out\", \"[--submenu-parent-translate:-100%] [&:dir(rtl)]:[--submenu-parent-translate:100%]\", \"[&[data-submenu-expanded=true]>:not([data-submenu])]:[translate:var(--submenu-parent-translate)_0]\", \"[&[data-submenu-expanded=true]>:not([data-submenu])]:blur\", \"[&[data-submenu-expanded]>:not([data-submenu])]:before:hidden\", \"overflow-hidden!\"),\n\tgroup,\n\titem: cn(itemBase, \"justify-between tabular-nums text-inherit\", \"supports-[top:anchor(top)]:data-highlighted:[anchor-name:--menu-item-highlight-anchor]\", \"supports-[top:anchor(top)]:data-highlighted:bg-transparent\", \"data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden\", \"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50\"),\n\tseparator: \"my-1 border-b border-[oklch(1_0_0/0.1)]\",\n\ttier: \"ps-0.5 pt-px text-(length:--font-size-tiny) font-semibold leading-none text-current/70\",\n\tindicator: \"ms-auto -me-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100\",\n\ticon: \"shrink-0 text-current/50 drop-shadow-[0_1px_0_var(--shadow-current-color)] group-hover/menu-item:text-inherit group-data-highlighted/menu-item:text-inherit\",\n\t/** Nested submenu panel. */\n\tsubmenuPanel,\n\tback: cn(itemBase, \"mb-0.5 w-full\"),\n\thint: \"ms-auto inline-flex min-w-0 items-center gap-1 ps-2 text-current/65\",\n\thintLabel: \"max-w-24 overflow-hidden text-ellipsis whitespace-nowrap\",\n\tchevron: \"size-3.5 [&:dir(rtl)]:[scale:-1_1]\",\n\tbackChevron: \"[&:dir(rtl)]:[scale:1_1]\",\n\tsettingsGroup: \"group/settings\",\n\tsettingsTrigger: \"group\",\n\tsettingsIcon: \"transition-transform duration-150 ease-in-out group-aria-expanded:rotate-90 motion-reduce:duration-0\"\n};\n//#endregion\nexport { menu };\n\n//# sourceMappingURL=menu.js.map"],"mappings":";;;AAGA,MAAM,eAAe,GAAG,uEAAuE,+GAA+G,QAAQ,+FAA+F,iFAAiF,yEAAyE,uHAAuH,iDAAiD;AACvnB,MAAM,WAAW,GAAG,iIAAiI,cAAc,8DAA8D,mDAAmD,8CAA8C,0CAA0C,iDAAiD,4DAA4D,yEAAyE,+FAA+F,2EAA2E;AAC5sB,MAAM,aAAa,GAAG,sCAAsC,qCAAqC,iCAAiC,yCAAyC,qFAAqF,gDAAgD;AAChT,MAAM,QAAQ,GAAG,yBAAyB,+CAA+C,8CAA8C,oFAAoF,4DAA4D,4DAA4D,yDAAyD,oEAAoE,yEAAyE,wDAAwD,kDAAkD,iDAAiD,sEAAsE;AAC1vB,MAAM,gBAAgB,GAAG,MAAM,SAAS,YAAY,2JAA2J,oFAAoF,kHAAkH,8EAA8E;AACne,MAAM,OAAO;;CAEZ,MAAM,GAAG,eAAe,gBAAgB;;CAExC,UAAU,GAAG,eAAe,kNAAkN,yEAAyE,uEAAuE,4DAA4D,kGAAkG,oGAAoG,qFAAqF,sGAAsG,6DAA6D,iEAAiE,kBAAkB;CAC38B;CACA,MAAM,GAAG,UAAU,6CAA6C,0FAA0F,8DAA8D,iFAAiF,6FAA6F;CACtY,WAAW;CACX,MAAM;CACN,WAAW;CACX,MAAM;;CAEN;CACA,MAAM,GAAG,UAAU,eAAe;CAClC,MAAM;CACN,WAAW;CACX,SAAS;CACT,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,cAAc;AACf"}
@@ -1,11 +1,11 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
  //#region ../skins/dist/default/minimal/tailwind/components/time.js
3
3
  const time = {
4
- group: "flex items-center gap-1",
4
+ group: "flex items-center gap-1 [&:dir(rtl)]:flex-row-reverse",
5
5
  current: cn("hidden tabular-nums cursor-pointer rounded-[--spacing(1)] outline-2 outline-transparent -outline-offset-2", "transition-[outline-color,outline-offset] duration-100 ease-out", "supports-[corner-shape:squircle]:rounded-[--spacing(4)]", "supports-[corner-shape:squircle]:[corner-shape:squircle]", "focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2", "@2xl/media-root:inline"),
6
6
  separator: cn("hidden", "@2xl/media-root:inline @2xl/media-root:text-current/60"),
7
7
  duration: cn("tabular-nums", "@2xl/media-root:text-current/60"),
8
- controls: cn("@container/media-time-controls flex flex-row-reverse items-center flex-1 gap-3", "@2xl/media-root:flex-row")
8
+ controls: cn("@container/media-time-controls flex flex-row-reverse items-center flex-1 gap-3 [&:dir(rtl)]:flex-row", "@2xl/media-root:flex-row @2xl/media-root:[&:dir(rtl)]:flex-row-reverse")
9
9
  };
10
10
  //#endregion
11
11
  export { time };
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/time.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/time.ts\nconst time = {\n\tgroup: \"flex items-center gap-1\",\n\tcurrent: cn(\"hidden tabular-nums cursor-pointer rounded-[--spacing(1)] outline-2 outline-transparent -outline-offset-2\", \"transition-[outline-color,outline-offset] duration-100 ease-out\", \"supports-[corner-shape:squircle]:rounded-[--spacing(4)]\", \"supports-[corner-shape:squircle]:[corner-shape:squircle]\", \"focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2\", \"@2xl/media-root:inline\"),\n\tseparator: cn(\"hidden\", \"@2xl/media-root:inline @2xl/media-root:text-current/60\"),\n\tduration: cn(\"tabular-nums\", \"@2xl/media-root:text-current/60\"),\n\tcontrols: cn(\"@container/media-time-controls flex flex-row-reverse items-center flex-1 gap-3\", \"@2xl/media-root:flex-row\")\n};\n//#endregion\nexport { time };\n\n//# sourceMappingURL=time.js.map"],"mappings":";;AAEA,MAAM,OAAO;CACZ,OAAO;CACP,SAAS,GAAG,6GAA6G,mEAAmE,2DAA2D,4DAA4D,6EAA6E,wBAAwB;CACxZ,WAAW,GAAG,UAAU,wDAAwD;CAChF,UAAU,GAAG,gBAAgB,iCAAiC;CAC9D,UAAU,GAAG,kFAAkF,0BAA0B;AAC1H"}
1
+ {"version":3,"file":"time.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/time.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/time.ts\nconst time = {\n\tgroup: \"flex items-center gap-1 [&:dir(rtl)]:flex-row-reverse\",\n\tcurrent: cn(\"hidden tabular-nums cursor-pointer rounded-[--spacing(1)] outline-2 outline-transparent -outline-offset-2\", \"transition-[outline-color,outline-offset] duration-100 ease-out\", \"supports-[corner-shape:squircle]:rounded-[--spacing(4)]\", \"supports-[corner-shape:squircle]:[corner-shape:squircle]\", \"focus-visible:outline-(--focus-ring-color) focus-visible:outline-offset-2\", \"@2xl/media-root:inline\"),\n\tseparator: cn(\"hidden\", \"@2xl/media-root:inline @2xl/media-root:text-current/60\"),\n\tduration: cn(\"tabular-nums\", \"@2xl/media-root:text-current/60\"),\n\tcontrols: cn(\"@container/media-time-controls flex flex-row-reverse items-center flex-1 gap-3 [&:dir(rtl)]:flex-row\", \"@2xl/media-root:flex-row @2xl/media-root:[&:dir(rtl)]:flex-row-reverse\")\n};\n//#endregion\nexport { time };\n\n//# sourceMappingURL=time.js.map"],"mappings":";;AAEA,MAAM,OAAO;CACZ,OAAO;CACP,SAAS,GAAG,6GAA6G,mEAAmE,2DAA2D,4DAA4D,6EAA6E,wBAAwB;CACxZ,WAAW,GAAG,UAAU,wDAAwD;CAChF,UAAU,GAAG,gBAAgB,iCAAiC;CAC9D,UAAU,GAAG,wGAAwG,wEAAwE;AAC9L"}
@@ -7,7 +7,7 @@ import { sliderContext } from "./context.js";
7
7
  import { applyElementProps, applyStateDataAttrs, createSlider, getSliderCSSVars, selectControls } from "@videojs/core/dom";
8
8
  import { ContextProvider } from "@videojs/element/context";
9
9
  import { translateText } from "@videojs/core/i18n";
10
- import { applyStyles, isRTL } from "@videojs/utils/dom";
10
+ import { applyStyles } from "@videojs/utils/dom";
11
11
  import { SliderCore, SliderDataAttrs } from "@videojs/core";
12
12
  //#region src/ui/slider/slider-element.ts
13
13
  var SliderElement = class extends MediaElement {
@@ -68,7 +68,6 @@ var SliderElement = class extends MediaElement {
68
68
  getElement: () => this,
69
69
  getThumbElement: () => this.querySelector("media-slider-thumb"),
70
70
  getOrientation: () => this.orientation,
71
- isRTL: () => isRTL(this),
72
71
  isDisabled: () => this.disabled,
73
72
  getPercent: () => this.#core.percentFromValue(this.value),
74
73
  getStepPercent: () => this.#core.getStepPercent(),
@@ -1 +1 @@
1
- {"version":3,"file":"slider-element.js","names":["#core","#controlsState","#i18n","#provider","#disconnect","#slider","#releaseControlsLock","#releaseControlsVisibilityLock"],"sources":["../../../../src/ui/slider/slider-element.ts"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getSliderCSSVars,\n type SliderApi,\n selectControls,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderElement extends MediaElement {\n static readonly tagName = 'media-slider';\n\n static override properties = {\n label: { type: String },\n value: { type: Number },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<keyof SliderCore.Props>;\n\n label: Text | string = '';\n value = SliderCore.defaultProps.value;\n min = SliderCore.defaultProps.min;\n max = SliderCore.defaultProps.max;\n step = SliderCore.defaultProps.step;\n largeStep = SliderCore.defaultProps.largeStep;\n orientation = SliderCore.defaultProps.orientation;\n disabled = SliderCore.defaultProps.disabled;\n thumbAlignment = SliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new SliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled: () => this.disabled,\n getPercent: () => this.#core.percentFromValue(this.value),\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-change', { detail: { value: this.value }, bubbles: true }));\n },\n onValueCommit: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-commit', { detail: { value: this.value }, bubbles: true }));\n },\n onDragStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.#releaseControlsVisibilityLock();\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps(this);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#slider) return;\n\n this.#core.setInput(this.#slider.input.current);\n const state = this.#core.getSliderState(this.value);\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n\n applyStyles(this, cssVars);\n\n // Apply state data attributes to the root element.\n applyStateDataAttrs(this, state, SliderDataAttrs);\n\n // Provide context to child elements (thumb, value, track, etc.).\n this.#provider.setValue({\n state,\n stateAttrMap: SliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: (() => {\n const attrs = this.#core.getAttrs(state);\n return { ...attrs, 'aria-label': translateText(attrs['aria-label'], this.#i18n.value) };\n })(),\n thumbProps: this.#slider.thumbProps,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;AAoBA,IAAa,gBAAb,cAAmC,aAAa;;;EAevB,KAAA,QAAA;EACf,KAAA,QAAA,WAAW,aAAa;EAC1B,KAAA,MAAA,WAAW,aAAa;EACxB,KAAA,MAAA,WAAW,aAAa;EACvB,KAAA,OAAA,WAAW,aAAa;EACnB,KAAA,YAAA,WAAW,aAAa;EACtB,KAAA,cAAA,WAAW,aAAa;EAC3B,KAAA,WAAA,WAAW,aAAa;EAClB,KAAA,iBAAA,WAAW,aAAa;EAExB,KAAA,QAAA,IAAI,WAAW;EACN,KAAA,iBAAA,IAAI,iBAAiB,MAAM,eAAe,cAAc;EACjE,KAAA,QAAA,IAAI,eAAe,MAAM,WAAW;EAChC,KAAA,YAAA,IAAI,gBAAgB,MAAM,EAAE,SAAS,cAAc,CAAC;EAE7C,KAAA,UAAA;EACU,KAAA,cAAA;EACM,KAAA,uBAAA;;;EA/BlB,KAAA,UAAA;;;EAEG,KAAA,aAAA;GAC3B,OAAO,EAAE,MAAM,OAAO;GACtB,OAAO,EAAE,MAAM,OAAO;GACtB,KAAK,EAAE,MAAM,OAAO;GACpB,KAAK,EAAE,MAAM,OAAO;GACpB,MAAM,EAAE,MAAM,OAAO;GACrB,WAAW;IAAE,MAAM;IAAQ,WAAW;GAAa;GACnD,aAAa,EAAE,MAAM,OAAO;GAC5B,UAAU,EAAE,MAAM,QAAQ;GAC1B,gBAAgB;IAAE,MAAM;IAAQ,WAAW;GAAkB;EAC/D;;CAYA;CACA;CACA;CACA;CAEA;CACA;CACA;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,IAAI,KAAK,WAAW;EAEpB,KAAKI,cAAc,IAAI,gBAAgB;EACvC,MAAM,SAAS,KAAKA,YAAY;EAEhC,KAAKC,UAAU,aAAa;GAC1B,kBAAkB;GAClB,uBAAuB,KAAK,cAA2B,oBAAoB;GAC3E,sBAAsB,KAAK;GAC3B,aAAa,MAAM,IAAI;GACvB,kBAAkB,KAAK;GACvB,kBAAkB,KAAKL,MAAM,iBAAiB,KAAK,KAAK;GACxD,sBAAsB,KAAKA,MAAM,eAAe;GAChD,2BAA2B,KAAKA,MAAM,oBAAoB;GAC1D,gBAAgB,YAAY;IAC1B,KAAK,QAAQ,KAAKA,MAAM,iBAAiB,OAAO;IAChD,KAAK,cAAc,IAAI,YAAY,gBAAgB;KAAE,QAAQ,EAAE,OAAO,KAAK,MAAM;KAAG,SAAS;IAAK,CAAC,CAAC;GACtG;GACA,gBAAgB,YAAY;IAC1B,KAAK,QAAQ,KAAKA,MAAM,iBAAiB,OAAO;IAChD,KAAK,cAAc,IAAI,YAAY,gBAAgB;KAAE,QAAQ,EAAE,OAAO,KAAK,MAAM;KAAG,SAAS;IAAK,CAAC,CAAC;GACtG;GACA,mBAAmB;IACjB,KAAKM,yBAAyB,KAAKL,eAAe,OAAO,oBAAoB,KAAK;IAClF,KAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,KAAK,CAAC,CAAC;GACrE;GACA,iBAAiB;IACf,KAAKM,+BAA+B;IACpC,KAAK,cAAc,IAAI,YAAY,YAAY,EAAE,SAAS,KAAK,CAAC,CAAC;GACnE;GACA,gBAAgB,KAAK,WAAW,cAAc,KAAKP,MAAM,0BAA0B,KAAK,WAAW,SAAS;GAC5G,gBAAgB,KAAK,cAAc;EACrC,CAAC;EAED,kBAAkB,MAAM,KAAKK,QAAQ,WAAW,EAAE,OAAO,CAAC;EAC1D,YAAY,MAAM,KAAKA,QAAQ,SAAS;EACxC,KAAKA,QAAQ,MAAM,gBAAgB,KAAK,cAAc,GAAG,EAAE,OAAO,CAAC;CACrE;CAEA,uBAAsC;EACpC,KAAKE,+BAA+B;EACpC,MAAM,qBAAqB;EAC3B,KAAKH,aAAa,MAAM;EACxB,KAAKA,cAAc;CACrB;CAEA,kBAAiC;EAC/B,KAAKG,+BAA+B;EACpC,KAAKF,SAAS,QAAQ;EACtB,MAAM,gBAAgB;CACxB;CAEA,iCAAuC;EACrC,KAAKC,uBAAuB;EAC5B,KAAKA,uBAAuB;CAC9B;CAEA,WAA8B,UAAgC;EAC5D,MAAM,WAAW,QAAQ;EACzB,KAAKN,MAAM,SAAS,IAAI;CAC1B;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,KAAKK,SAAS;EAEnB,KAAKL,MAAM,SAAS,KAAKK,QAAQ,MAAM,OAAO;EAC9C,MAAM,QAAQ,KAAKL,MAAM,eAAe,KAAK,KAAK;EAElD,MAAM,UAAU,iBAAiB,KAAKK,QAAQ,mBAAmB,KAAK,CAAC;EAEvE,YAAY,MAAM,OAAO;EAGzB,oBAAoB,MAAM,OAAO,eAAe;EAGhD,KAAKF,UAAU,SAAS;GACtB;GACA,cAAc;GACd,cAAc,KAAKH,MAAM,iBAAiB,MAAM,cAAc;GAC9D,mBAAmB;IACjB,MAAM,QAAQ,KAAKA,MAAM,SAAS,KAAK;IACvC,OAAO;KAAE,GAAG;KAAO,cAAc,cAAc,MAAM,eAAe,KAAKE,MAAM,KAAK;IAAE;GACxF,EAAA,CAAG;GACH,YAAY,KAAKG,QAAQ;EAC3B,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"slider-element.js","names":["#core","#controlsState","#i18n","#provider","#disconnect","#slider","#releaseControlsLock","#releaseControlsVisibilityLock"],"sources":["../../../../src/ui/slider/slider-element.ts"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getSliderCSSVars,\n type SliderApi,\n selectControls,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderElement extends MediaElement {\n static readonly tagName = 'media-slider';\n\n static override properties = {\n label: { type: String },\n value: { type: Number },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<keyof SliderCore.Props>;\n\n label: Text | string = '';\n value = SliderCore.defaultProps.value;\n min = SliderCore.defaultProps.min;\n max = SliderCore.defaultProps.max;\n step = SliderCore.defaultProps.step;\n largeStep = SliderCore.defaultProps.largeStep;\n orientation = SliderCore.defaultProps.orientation;\n disabled = SliderCore.defaultProps.disabled;\n thumbAlignment = SliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new SliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isDisabled: () => this.disabled,\n getPercent: () => this.#core.percentFromValue(this.value),\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-change', { detail: { value: this.value }, bubbles: true }));\n },\n onValueCommit: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-commit', { detail: { value: this.value }, bubbles: true }));\n },\n onDragStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.#releaseControlsVisibilityLock();\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps(this);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#slider) return;\n\n this.#core.setInput(this.#slider.input.current);\n const state = this.#core.getSliderState(this.value);\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n\n applyStyles(this, cssVars);\n\n // Apply state data attributes to the root element.\n applyStateDataAttrs(this, state, SliderDataAttrs);\n\n // Provide context to child elements (thumb, value, track, etc.).\n this.#provider.setValue({\n state,\n stateAttrMap: SliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: (() => {\n const attrs = this.#core.getAttrs(state);\n return { ...attrs, 'aria-label': translateText(attrs['aria-label'], this.#i18n.value) };\n })(),\n thumbProps: this.#slider.thumbProps,\n });\n }\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { sliderContext } from "../slider/context.js";
7
7
  import { applyElementProps, applyStateDataAttrs, createSlider, getTimeSliderCSSVars, selectBuffer, selectControls, selectPlayback, selectTime } from "@videojs/core/dom";
8
8
  import { ContextProvider } from "@videojs/element/context";
9
9
  import { translateText } from "@videojs/core/i18n";
10
- import { applyStyles, isRTL } from "@videojs/utils/dom";
10
+ import { applyStyles } from "@videojs/utils/dom";
11
11
  import { TimeSliderCore, TimeSliderDataAttrs } from "@videojs/core";
12
12
  import { formatTime } from "@videojs/utils/time";
13
13
  //#region src/ui/time-slider/time-slider-element.ts
@@ -79,7 +79,6 @@ var TimeSliderElement = class extends MediaElement {
79
79
  getElement: () => this,
80
80
  getThumbElement: () => this.querySelector("media-slider-thumb"),
81
81
  getOrientation: () => this.orientation,
82
- isRTL: () => isRTL(this),
83
82
  isDisabled: () => this.disabled || !this.#timeState.value,
84
83
  getPercent: () => {
85
84
  const media = this.#timeState.value;
@@ -1 +1 @@
1
- {"version":3,"file":"time-slider-element.js","names":["#core","#controlsState","#provider","#timeState","#bufferState","#playbackState","#i18n","#disconnect","#slider","#releaseControlsLock","#releaseControlsVisibilityLock","#resumeIfDragPaused"],"sources":["../../../../src/ui/time-slider/time-slider-element.ts"],"sourcesContent":["import { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getTimeSliderCSSVars,\n logMissingFeature,\n type SliderApi,\n selectBuffer,\n selectControls,\n selectPlayback,\n selectTime,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\nimport { formatTime } from '@videojs/utils/time';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from '../slider/context';\n\nexport class TimeSliderElement extends MediaElement {\n static readonly tagName = 'media-time-slider';\n\n static override properties = {\n label: { type: String },\n changeThrottle: { type: Number, attribute: 'change-throttle' },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n pauseOnDrag: { type: Boolean, attribute: 'pause-on-drag' },\n } satisfies PropertyDeclarationMap<Exclude<keyof TimeSliderCore.Props, 'value' | 'min' | 'max'>>;\n\n label: Text | string = '';\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle;\n step = TimeSliderCore.defaultProps.step;\n largeStep = TimeSliderCore.defaultProps.largeStep;\n orientation = TimeSliderCore.defaultProps.orientation;\n disabled = TimeSliderCore.defaultProps.disabled;\n thumbAlignment = TimeSliderCore.defaultProps.thumbAlignment;\n pauseOnDrag = TimeSliderCore.defaultProps.pauseOnDrag;\n\n readonly #core = new TimeSliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n readonly #timeState = new PlayerController(this, playerContext, selectTime);\n readonly #bufferState = new PlayerController(this, playerContext, selectBuffer);\n readonly #playbackState = new PlayerController(this, playerContext, selectPlayback);\n readonly #i18n = new I18nController(this, i18nContext);\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled: () => this.disabled || !this.#timeState.value,\n getPercent: () => {\n const media = this.#timeState.value;\n if (!media) return 0;\n return this.#core.percentFromValue(media.currentTime);\n },\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueCommit: (percent) => {\n const media = this.#timeState.value;\n if (media) media.seek(this.#core.rawValueFromPercent(percent));\n },\n changeThrottle: this.changeThrottle,\n onDragStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n this.#core.startDrag(this.#playbackState.value);\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.#releaseControlsVisibilityLock();\n this.#core.endDrag(this.#playbackState.value);\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n\n if (__DEV__ && !this.#timeState.value) {\n logMissingFeature(this.localName, this.#timeState.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#resumeIfDragPaused();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#resumeIfDragPaused();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n // createSlider's destroy() does not fire onDragEnd, so a teardown mid-drag\n // would leave playback paused. Called from both disconnect and destroy paths\n // before super so the PlayerController is still attached.\n #resumeIfDragPaused(): void {\n this.#core.endDrag(this.#playbackState.value);\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps({\n label: this.label,\n changeThrottle: this.changeThrottle,\n step: this.step,\n largeStep: this.largeStep,\n orientation: this.orientation,\n disabled: this.disabled,\n thumbAlignment: this.thumbAlignment,\n pauseOnDrag: this.pauseOnDrag,\n });\n this.#core.setFormatLocale(this.#i18n.locale);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#slider) return;\n\n const time = this.#timeState.value;\n const buffer = this.#bufferState.value;\n if (!time) return;\n\n this.#core.setInput(this.#slider.input.current);\n const media = { ...time, ...(buffer ?? { buffered: [], seekable: [] }) };\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n const cssVars = getTimeSliderCSSVars(this.#slider.adjustForAlignment(state));\n const thumbAttrs = this.#core.getAttrs(state);\n\n applyStyles(this, cssVars);\n\n // Domain-specific data attributes on root (includes data-seeking).\n applyStateDataAttrs(this, state, TimeSliderDataAttrs);\n\n // Provide context to child elements with base slider data attrs.\n this.#provider.setValue({\n state,\n stateAttrMap: TimeSliderDataAttrs,\n pointerValue: this.#core.rawValueFromPercent(state.pointerPercent),\n thumbAttrs: {\n ...thumbAttrs,\n 'aria-label': translateText(thumbAttrs['aria-label'], this.#i18n.value),\n 'aria-valuetext': translateText(\n thumbAttrs['aria-valuetext'],\n this.#i18n.value,\n this.#core.getValueTextParams(state)\n ),\n },\n thumbProps: this.#slider.thumbProps,\n formatValue: (value) => formatTime(value, state.duration, { locale: this.#i18n.locale }),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AA0BA,IAAa,oBAAb,cAAuC,aAAa;;;EAc3B,KAAA,QAAA;EACN,KAAA,iBAAA,eAAe,aAAa;EACtC,KAAA,OAAA,eAAe,aAAa;EACvB,KAAA,YAAA,eAAe,aAAa;EAC1B,KAAA,cAAA,eAAe,aAAa;EAC/B,KAAA,WAAA,eAAe,aAAa;EACtB,KAAA,iBAAA,eAAe,aAAa;EAC/B,KAAA,cAAA,eAAe,aAAa;EAEzB,KAAA,QAAA,IAAI,eAAe;EACV,KAAA,iBAAA,IAAI,iBAAiB,MAAM,eAAe,cAAc;EAC7D,KAAA,YAAA,IAAI,gBAAgB,MAAM,EAAE,SAAS,cAAc,CAAC;EACnD,KAAA,aAAA,IAAI,iBAAiB,MAAM,eAAe,UAAU;EAClD,KAAA,eAAA,IAAI,iBAAiB,MAAM,eAAe,YAAY;EACpD,KAAA,iBAAA,IAAI,iBAAiB,MAAM,eAAe,cAAc;EACjE,KAAA,QAAA,IAAI,eAAe,MAAM,WAAW;EAEzB,KAAA,UAAA;EACU,KAAA,cAAA;EACM,KAAA,uBAAA;;;EAhClB,KAAA,UAAA;;;EAEG,KAAA,aAAA;GAC3B,OAAO,EAAE,MAAM,OAAO;GACtB,gBAAgB;IAAE,MAAM;IAAQ,WAAW;GAAkB;GAC7D,MAAM,EAAE,MAAM,OAAO;GACrB,WAAW;IAAE,MAAM;IAAQ,WAAW;GAAa;GACnD,aAAa,EAAE,MAAM,OAAO;GAC5B,UAAU,EAAE,MAAM,QAAQ;GAC1B,gBAAgB;IAAE,MAAM;IAAQ,WAAW;GAAkB;GAC7D,aAAa;IAAE,MAAM;IAAS,WAAW;GAAgB;EAC3D;;CAWA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,IAAI,KAAK,WAAW;EAEpB,KAAKO,cAAc,IAAI,gBAAgB;EACvC,MAAM,SAAS,KAAKA,YAAY;EAEhC,KAAKC,UAAU,aAAa;GAC1B,kBAAkB;GAClB,uBAAuB,KAAK,cAA2B,oBAAoB;GAC3E,sBAAsB,KAAK;GAC3B,aAAa,MAAM,IAAI;GACvB,kBAAkB,KAAK,YAAY,CAAC,KAAKL,WAAW;GACpD,kBAAkB;IAChB,MAAM,QAAQ,KAAKA,WAAW;IAC9B,IAAI,CAAC,OAAO,OAAO;IACnB,OAAO,KAAKH,MAAM,iBAAiB,MAAM,WAAW;GACtD;GACA,sBAAsB,KAAKA,MAAM,eAAe;GAChD,2BAA2B,KAAKA,MAAM,oBAAoB;GAC1D,gBAAgB,YAAY;IAC1B,MAAM,QAAQ,KAAKG,WAAW;IAC9B,IAAI,OAAO,MAAM,KAAK,KAAKH,MAAM,oBAAoB,OAAO,CAAC;GAC/D;GACA,gBAAgB,KAAK;GACrB,mBAAmB;IACjB,KAAKS,yBAAyB,KAAKR,eAAe,OAAO,oBAAoB,KAAK;IAClF,KAAKD,MAAM,UAAU,KAAKK,eAAe,KAAK;IAC9C,KAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,KAAK,CAAC,CAAC;GACrE;GACA,iBAAiB;IACf,KAAKK,+BAA+B;IACpC,KAAKV,MAAM,QAAQ,KAAKK,eAAe,KAAK;IAC5C,KAAK,cAAc,IAAI,YAAY,YAAY,EAAE,SAAS,KAAK,CAAC,CAAC;GACnE;GACA,gBAAgB,KAAK,WAAW,cAAc,KAAKL,MAAM,0BAA0B,KAAK,WAAW,SAAS;GAC5G,gBAAgB,KAAK,cAAc;EACrC,CAAC;EAED,kBAAkB,MAAM,KAAKQ,QAAQ,WAAW,EAAE,OAAO,CAAC;EAC1D,YAAY,MAAM,KAAKA,QAAQ,SAAS;EACxC,KAAKA,QAAQ,MAAM,gBAAgB,KAAK,cAAc,GAAG,EAAE,OAAO,CAAC;CAKrE;CAEA,uBAAsC;EACpC,KAAKE,+BAA+B;EACpC,KAAKC,oBAAoB;EACzB,MAAM,qBAAqB;EAC3B,KAAKJ,aAAa,MAAM;EACxB,KAAKA,cAAc;CACrB;CAEA,kBAAiC;EAC/B,KAAKG,+BAA+B;EACpC,KAAKC,oBAAoB;EACzB,KAAKH,SAAS,QAAQ;EACtB,MAAM,gBAAgB;CACxB;CAKA,sBAA4B;EAC1B,KAAKR,MAAM,QAAQ,KAAKK,eAAe,KAAK;CAC9C;CAEA,iCAAuC;EACrC,KAAKI,uBAAuB;EAC5B,KAAKA,uBAAuB;CAC9B;CAEA,WAA8B,UAAgC;EAC5D,MAAM,WAAW,QAAQ;EACzB,KAAKT,MAAM,SAAS;GAClB,OAAO,KAAK;GACZ,gBAAgB,KAAK;GACrB,MAAM,KAAK;GACX,WAAW,KAAK;GAChB,aAAa,KAAK;GAClB,UAAU,KAAK;GACf,gBAAgB,KAAK;GACrB,aAAa,KAAK;EACpB,CAAC;EACD,KAAKA,MAAM,gBAAgB,KAAKM,MAAM,MAAM;CAC9C;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,KAAKE,SAAS;EAEnB,MAAM,OAAO,KAAKL,WAAW;EAC7B,MAAM,SAAS,KAAKC,aAAa;EACjC,IAAI,CAAC,MAAM;EAEX,KAAKJ,MAAM,SAAS,KAAKQ,QAAQ,MAAM,OAAO;EAC9C,MAAM,QAAQ;GAAE,GAAG;GAAM,GAAI,UAAU;IAAE,UAAU,CAAC;IAAG,UAAU,CAAC;GAAE;EAAG;EACvE,KAAKR,MAAM,SAAS,KAAK;EACzB,MAAM,QAAQ,KAAKA,MAAM,SAAS;EAElC,MAAM,UAAU,qBAAqB,KAAKQ,QAAQ,mBAAmB,KAAK,CAAC;EAC3E,MAAM,aAAa,KAAKR,MAAM,SAAS,KAAK;EAE5C,YAAY,MAAM,OAAO;EAGzB,oBAAoB,MAAM,OAAO,mBAAmB;EAGpD,KAAKE,UAAU,SAAS;GACtB;GACA,cAAc;GACd,cAAc,KAAKF,MAAM,oBAAoB,MAAM,cAAc;GACjE,YAAY;IACV,GAAG;IACH,cAAc,cAAc,WAAW,eAAe,KAAKM,MAAM,KAAK;IACtE,kBAAkB,cAChB,WAAW,mBACX,KAAKA,MAAM,OACX,KAAKN,MAAM,mBAAmB,KAAK,CACrC;GACF;GACA,YAAY,KAAKQ,QAAQ;GACzB,cAAc,UAAU,WAAW,OAAO,MAAM,UAAU,EAAE,QAAQ,KAAKF,MAAM,OAAO,CAAC;EACzF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"time-slider-element.js","names":["#core","#controlsState","#provider","#timeState","#bufferState","#playbackState","#i18n","#disconnect","#slider","#releaseControlsLock","#releaseControlsVisibilityLock","#resumeIfDragPaused"],"sources":["../../../../src/ui/time-slider/time-slider-element.ts"],"sourcesContent":["import { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getTimeSliderCSSVars,\n logMissingFeature,\n type SliderApi,\n selectBuffer,\n selectControls,\n selectPlayback,\n selectTime,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\nimport { formatTime } from '@videojs/utils/time';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from '../slider/context';\n\nexport class TimeSliderElement extends MediaElement {\n static readonly tagName = 'media-time-slider';\n\n static override properties = {\n label: { type: String },\n changeThrottle: { type: Number, attribute: 'change-throttle' },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n pauseOnDrag: { type: Boolean, attribute: 'pause-on-drag' },\n } satisfies PropertyDeclarationMap<Exclude<keyof TimeSliderCore.Props, 'value' | 'min' | 'max'>>;\n\n label: Text | string = '';\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle;\n step = TimeSliderCore.defaultProps.step;\n largeStep = TimeSliderCore.defaultProps.largeStep;\n orientation = TimeSliderCore.defaultProps.orientation;\n disabled = TimeSliderCore.defaultProps.disabled;\n thumbAlignment = TimeSliderCore.defaultProps.thumbAlignment;\n pauseOnDrag = TimeSliderCore.defaultProps.pauseOnDrag;\n\n readonly #core = new TimeSliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n readonly #timeState = new PlayerController(this, playerContext, selectTime);\n readonly #bufferState = new PlayerController(this, playerContext, selectBuffer);\n readonly #playbackState = new PlayerController(this, playerContext, selectPlayback);\n readonly #i18n = new I18nController(this, i18nContext);\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isDisabled: () => this.disabled || !this.#timeState.value,\n getPercent: () => {\n const media = this.#timeState.value;\n if (!media) return 0;\n return this.#core.percentFromValue(media.currentTime);\n },\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueCommit: (percent) => {\n const media = this.#timeState.value;\n if (media) media.seek(this.#core.rawValueFromPercent(percent));\n },\n changeThrottle: this.changeThrottle,\n onDragStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n this.#core.startDrag(this.#playbackState.value);\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.#releaseControlsVisibilityLock();\n this.#core.endDrag(this.#playbackState.value);\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n\n if (__DEV__ && !this.#timeState.value) {\n logMissingFeature(this.localName, this.#timeState.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#resumeIfDragPaused();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#resumeIfDragPaused();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n // createSlider's destroy() does not fire onDragEnd, so a teardown mid-drag\n // would leave playback paused. Called from both disconnect and destroy paths\n // before super so the PlayerController is still attached.\n #resumeIfDragPaused(): void {\n this.#core.endDrag(this.#playbackState.value);\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps({\n label: this.label,\n changeThrottle: this.changeThrottle,\n step: this.step,\n largeStep: this.largeStep,\n orientation: this.orientation,\n disabled: this.disabled,\n thumbAlignment: this.thumbAlignment,\n pauseOnDrag: this.pauseOnDrag,\n });\n this.#core.setFormatLocale(this.#i18n.locale);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#slider) return;\n\n const time = this.#timeState.value;\n const buffer = this.#bufferState.value;\n if (!time) return;\n\n this.#core.setInput(this.#slider.input.current);\n const media = { ...time, ...(buffer ?? { buffered: [], seekable: [] }) };\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n const cssVars = getTimeSliderCSSVars(this.#slider.adjustForAlignment(state));\n const thumbAttrs = this.#core.getAttrs(state);\n\n applyStyles(this, cssVars);\n\n // Domain-specific data attributes on root (includes data-seeking).\n applyStateDataAttrs(this, state, TimeSliderDataAttrs);\n\n // Provide context to child elements with base slider data attrs.\n this.#provider.setValue({\n state,\n stateAttrMap: TimeSliderDataAttrs,\n pointerValue: this.#core.rawValueFromPercent(state.pointerPercent),\n thumbAttrs: {\n ...thumbAttrs,\n 'aria-label': translateText(thumbAttrs['aria-label'], this.#i18n.value),\n 'aria-valuetext': translateText(\n thumbAttrs['aria-valuetext'],\n this.#i18n.value,\n this.#core.getValueTextParams(state)\n ),\n },\n thumbProps: this.#slider.thumbProps,\n formatValue: (value) => formatTime(value, state.duration, { locale: this.#i18n.locale }),\n });\n }\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { sliderContext } from "../slider/context.js";
7
7
  import { applyElementProps, applyStateDataAttrs, createSlider, createWheelStep, getSliderCSSVars, selectControls, selectVolume } from "@videojs/core/dom";
8
8
  import { ContextProvider } from "@videojs/element/context";
9
9
  import { translateText } from "@videojs/core/i18n";
10
- import { applyStyles, isRTL } from "@videojs/utils/dom";
10
+ import { applyStyles } from "@videojs/utils/dom";
11
11
  import { VolumeSliderCore, VolumeSliderDataAttrs } from "@videojs/core";
12
12
  //#region src/ui/volume-slider/volume-slider-element.ts
13
13
  var VolumeSliderElement = class extends MediaElement {
@@ -76,7 +76,6 @@ var VolumeSliderElement = class extends MediaElement {
76
76
  getElement: () => this,
77
77
  getThumbElement: () => this.querySelector("media-slider-thumb"),
78
78
  getOrientation: () => this.orientation,
79
- isRTL: () => isRTL(this),
80
79
  isDisabled,
81
80
  getPercent,
82
81
  getStepPercent,
@@ -1 +1 @@
1
- {"version":3,"file":"volume-slider-element.js","names":["#core","#controlsState","#provider","#volumeState","#i18n","#disconnect","#setVolume","#slider","#releaseControlsLock","#releaseControlsVisibilityLock"],"sources":["../../../../src/ui/volume-slider/volume-slider-element.ts"],"sourcesContent":["import { VolumeSliderCore, VolumeSliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n createWheelStep,\n getSliderCSSVars,\n logMissingFeature,\n type SliderApi,\n selectControls,\n selectVolume,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from '../slider/context';\n\nexport class VolumeSliderElement extends MediaElement {\n static readonly tagName = 'media-volume-slider';\n\n static override properties = {\n label: { type: String },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n wheelStep: { type: Number, attribute: 'wheel-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<Exclude<keyof VolumeSliderCore.Props, 'value' | 'min' | 'max'>>;\n\n label: Text | string = '';\n step = VolumeSliderCore.defaultProps.step;\n largeStep = VolumeSliderCore.defaultProps.largeStep;\n wheelStep = VolumeSliderCore.defaultProps.wheelStep;\n orientation = VolumeSliderCore.defaultProps.orientation;\n disabled = VolumeSliderCore.defaultProps.disabled;\n thumbAlignment = VolumeSliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new VolumeSliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n readonly #volumeState = new PlayerController(this, playerContext, selectVolume);\n readonly #i18n = new I18nController(this, i18nContext);\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n const isDisabled = () => {\n const volume = this.#volumeState.value;\n return this.disabled || !volume || volume.volumeAvailability !== 'available';\n };\n const getPercent = () => (this.#volumeState.value?.volume ?? 0) * 100;\n const getStepPercent = () => this.#core.getStepPercent();\n const setVolume = (percent: number) => this.#setVolume(percent);\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled,\n getPercent,\n getStepPercent,\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: setVolume,\n onValueCommit: setVolume,\n onDragStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.#releaseControlsVisibilityLock();\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n const wheelProps = createWheelStep({\n isDisabled,\n getPercent,\n getStepPercent: () => this.#core.getWheelStepPercent(),\n onValueChange: setVolume,\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyElementProps(this, wheelProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n\n if (__DEV__ && !this.#volumeState.value) {\n logMissingFeature(this.localName, this.#volumeState.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps(this);\n this.#core.setFormatLocale(this.#i18n.locale);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#slider) return;\n\n const media = this.#volumeState.value;\n if (!media) return;\n\n this.#core.setInput(this.#slider.input.current);\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n const thumbAttrs = this.#core.getAttrs(state);\n\n applyStyles(this, cssVars);\n\n // Apply data attributes to root.\n applyStateDataAttrs(this, state, VolumeSliderDataAttrs);\n applyElementProps(this, { hidden: state.hidden ? '' : undefined });\n\n // Provide context to child elements.\n this.#provider.setValue({\n state,\n stateAttrMap: VolumeSliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: {\n ...thumbAttrs,\n 'aria-label': translateText(thumbAttrs['aria-label'], this.#i18n.value),\n 'aria-valuetext': translateText(\n thumbAttrs['aria-valuetext'],\n this.#i18n.value,\n this.#core.getValueTextParams(state)\n ),\n },\n thumbProps: this.#slider.thumbProps,\n formatValue: (value) => `${Math.round(value)}%`,\n });\n }\n\n #setVolume(percent: number): void {\n const media = this.#volumeState.value;\n media?.setVolume(this.#core.valueFromPercent(percent) / 100);\n }\n}\n"],"mappings":";;;;;;;;;;;;AAwBA,IAAa,sBAAb,cAAyC,aAAa;;;EAa7B,KAAA,QAAA;EAChB,KAAA,OAAA,iBAAiB,aAAa;EACzB,KAAA,YAAA,iBAAiB,aAAa;EAC9B,KAAA,YAAA,iBAAiB,aAAa;EAC5B,KAAA,cAAA,iBAAiB,aAAa;EACjC,KAAA,WAAA,iBAAiB,aAAa;EACxB,KAAA,iBAAA,iBAAiB,aAAa;EAE9B,KAAA,QAAA,IAAI,iBAAiB;EACZ,KAAA,iBAAA,IAAI,iBAAiB,MAAM,eAAe,cAAc;EAC7D,KAAA,YAAA,IAAI,gBAAgB,MAAM,EAAE,SAAS,cAAc,CAAC;EACjD,KAAA,eAAA,IAAI,iBAAiB,MAAM,eAAe,YAAY;EAC7D,KAAA,QAAA,IAAI,eAAe,MAAM,WAAW;EAEzB,KAAA,UAAA;EACU,KAAA,cAAA;EACM,KAAA,uBAAA;;;EA5BlB,KAAA,UAAA;;;EAEG,KAAA,aAAA;GAC3B,OAAO,EAAE,MAAM,OAAO;GACtB,MAAM,EAAE,MAAM,OAAO;GACrB,WAAW;IAAE,MAAM;IAAQ,WAAW;GAAa;GACnD,WAAW;IAAE,MAAM;IAAQ,WAAW;GAAa;GACnD,aAAa,EAAE,MAAM,OAAO;GAC5B,UAAU,EAAE,MAAM,QAAQ;GAC1B,gBAAgB;IAAE,MAAM;IAAQ,WAAW;GAAkB;EAC/D;;CAUA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,IAAI,KAAK,WAAW;EAEpB,KAAKK,cAAc,IAAI,gBAAgB;EACvC,MAAM,SAAS,KAAKA,YAAY;EAEhC,MAAM,mBAAmB;GACvB,MAAM,SAAS,KAAKF,aAAa;GACjC,OAAO,KAAK,YAAY,CAAC,UAAU,OAAO,uBAAuB;EACnE;EACA,MAAM,oBAAoB,KAAKA,aAAa,OAAO,UAAU,KAAK;EAClE,MAAM,uBAAuB,KAAKH,MAAM,eAAe;EACvD,MAAM,aAAa,YAAoB,KAAKM,WAAW,OAAO;EAE9D,KAAKC,UAAU,aAAa;GAC1B,kBAAkB;GAClB,uBAAuB,KAAK,cAA2B,oBAAoB;GAC3E,sBAAsB,KAAK;GAC3B,aAAa,MAAM,IAAI;GACvB;GACA;GACA;GACA,2BAA2B,KAAKP,MAAM,oBAAoB;GAC1D,eAAe;GACf,eAAe;GACf,mBAAmB;IACjB,KAAKQ,yBAAyB,KAAKP,eAAe,OAAO,oBAAoB,KAAK;IAClF,KAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,KAAK,CAAC,CAAC;GACrE;GACA,iBAAiB;IACf,KAAKQ,+BAA+B;IACpC,KAAK,cAAc,IAAI,YAAY,YAAY,EAAE,SAAS,KAAK,CAAC,CAAC;GACnE;GACA,gBAAgB,KAAK,WAAW,cAAc,KAAKT,MAAM,0BAA0B,KAAK,WAAW,SAAS;GAC5G,gBAAgB,KAAK,cAAc;EACrC,CAAC;EAED,MAAM,aAAa,gBAAgB;GACjC;GACA;GACA,sBAAsB,KAAKA,MAAM,oBAAoB;GACrD,eAAe;EACjB,CAAC;EAED,kBAAkB,MAAM,KAAKO,QAAQ,WAAW,EAAE,OAAO,CAAC;EAC1D,kBAAkB,MAAM,YAAY,EAAE,OAAO,CAAC;EAC9C,YAAY,MAAM,KAAKA,QAAQ,SAAS;EACxC,KAAKA,QAAQ,MAAM,gBAAgB,KAAK,cAAc,GAAG,EAAE,OAAO,CAAC;CAKrE;CAEA,uBAAsC;EACpC,KAAKE,+BAA+B;EACpC,MAAM,qBAAqB;EAC3B,KAAKJ,aAAa,MAAM;EACxB,KAAKA,cAAc;CACrB;CAEA,kBAAiC;EAC/B,KAAKI,+BAA+B;EACpC,KAAKF,SAAS,QAAQ;EACtB,MAAM,gBAAgB;CACxB;CAEA,iCAAuC;EACrC,KAAKC,uBAAuB;EAC5B,KAAKA,uBAAuB;CAC9B;CAEA,WAA8B,UAAgC;EAC5D,MAAM,WAAW,QAAQ;EACzB,KAAKR,MAAM,SAAS,IAAI;EACxB,KAAKA,MAAM,gBAAgB,KAAKI,MAAM,MAAM;CAC9C;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,KAAKG,SAAS;EAEnB,MAAM,QAAQ,KAAKJ,aAAa;EAChC,IAAI,CAAC,OAAO;EAEZ,KAAKH,MAAM,SAAS,KAAKO,QAAQ,MAAM,OAAO;EAC9C,KAAKP,MAAM,SAAS,KAAK;EACzB,MAAM,QAAQ,KAAKA,MAAM,SAAS;EAElC,MAAM,UAAU,iBAAiB,KAAKO,QAAQ,mBAAmB,KAAK,CAAC;EACvE,MAAM,aAAa,KAAKP,MAAM,SAAS,KAAK;EAE5C,YAAY,MAAM,OAAO;EAGzB,oBAAoB,MAAM,OAAO,qBAAqB;EACtD,kBAAkB,MAAM,EAAE,QAAQ,MAAM,SAAS,KAAK,KAAA,EAAU,CAAC;EAGjE,KAAKE,UAAU,SAAS;GACtB;GACA,cAAc;GACd,cAAc,KAAKF,MAAM,iBAAiB,MAAM,cAAc;GAC9D,YAAY;IACV,GAAG;IACH,cAAc,cAAc,WAAW,eAAe,KAAKI,MAAM,KAAK;IACtE,kBAAkB,cAChB,WAAW,mBACX,KAAKA,MAAM,OACX,KAAKJ,MAAM,mBAAmB,KAAK,CACrC;GACF;GACA,YAAY,KAAKO,QAAQ;GACzB,cAAc,UAAU,GAAG,KAAK,MAAM,KAAK,EAAE;EAC/C,CAAC;CACH;CAEA,WAAW,SAAuB;EAEhC,KADmBJ,aAAa,OACzB,UAAU,KAAKH,MAAM,iBAAiB,OAAO,IAAI,GAAG;CAC7D;AACF"}
1
+ {"version":3,"file":"volume-slider-element.js","names":["#core","#controlsState","#provider","#volumeState","#i18n","#disconnect","#setVolume","#slider","#releaseControlsLock","#releaseControlsVisibilityLock"],"sources":["../../../../src/ui/volume-slider/volume-slider-element.ts"],"sourcesContent":["import { VolumeSliderCore, VolumeSliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n createWheelStep,\n getSliderCSSVars,\n logMissingFeature,\n type SliderApi,\n selectControls,\n selectVolume,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from '../slider/context';\n\nexport class VolumeSliderElement extends MediaElement {\n static readonly tagName = 'media-volume-slider';\n\n static override properties = {\n label: { type: String },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n wheelStep: { type: Number, attribute: 'wheel-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<Exclude<keyof VolumeSliderCore.Props, 'value' | 'min' | 'max'>>;\n\n label: Text | string = '';\n step = VolumeSliderCore.defaultProps.step;\n largeStep = VolumeSliderCore.defaultProps.largeStep;\n wheelStep = VolumeSliderCore.defaultProps.wheelStep;\n orientation = VolumeSliderCore.defaultProps.orientation;\n disabled = VolumeSliderCore.defaultProps.disabled;\n thumbAlignment = VolumeSliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new VolumeSliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n readonly #volumeState = new PlayerController(this, playerContext, selectVolume);\n readonly #i18n = new I18nController(this, i18nContext);\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n const isDisabled = () => {\n const volume = this.#volumeState.value;\n return this.disabled || !volume || volume.volumeAvailability !== 'available';\n };\n const getPercent = () => (this.#volumeState.value?.volume ?? 0) * 100;\n const getStepPercent = () => this.#core.getStepPercent();\n const setVolume = (percent: number) => this.#setVolume(percent);\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isDisabled,\n getPercent,\n getStepPercent,\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: setVolume,\n onValueCommit: setVolume,\n onDragStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.#releaseControlsVisibilityLock();\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n const wheelProps = createWheelStep({\n isDisabled,\n getPercent,\n getStepPercent: () => this.#core.getWheelStepPercent(),\n onValueChange: setVolume,\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyElementProps(this, wheelProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n\n if (__DEV__ && !this.#volumeState.value) {\n logMissingFeature(this.localName, this.#volumeState.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps(this);\n this.#core.setFormatLocale(this.#i18n.locale);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#slider) return;\n\n const media = this.#volumeState.value;\n if (!media) return;\n\n this.#core.setInput(this.#slider.input.current);\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n const thumbAttrs = this.#core.getAttrs(state);\n\n applyStyles(this, cssVars);\n\n // Apply data attributes to root.\n applyStateDataAttrs(this, state, VolumeSliderDataAttrs);\n applyElementProps(this, { hidden: state.hidden ? '' : undefined });\n\n // Provide context to child elements.\n this.#provider.setValue({\n state,\n stateAttrMap: VolumeSliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: {\n ...thumbAttrs,\n 'aria-label': translateText(thumbAttrs['aria-label'], this.#i18n.value),\n 'aria-valuetext': translateText(\n thumbAttrs['aria-valuetext'],\n this.#i18n.value,\n this.#core.getValueTextParams(state)\n ),\n },\n thumbProps: this.#slider.thumbProps,\n formatValue: (value) => `${Math.round(value)}%`,\n });\n }\n\n #setVolume(percent: number): void {\n const media = this.#volumeState.value;\n media?.setVolume(this.#core.valueFromPercent(percent) / 100);\n }\n}\n"],"mappings":"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"}