@hanifhan1f/vidstack-react 1.12.13 → 1.12.15

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 (392) hide show
  1. package/dev/chunks/vidstack-B-FM4-oZ.js +668 -0
  2. package/dev/chunks/vidstack-B92UncBI.js +61 -0
  3. package/dev/chunks/vidstack-BDiAEW1N.js +11691 -0
  4. package/dev/chunks/vidstack-BZIhWvGa.js +1371 -0
  5. package/dev/chunks/vidstack-Bfi_jCvb.js +476 -0
  6. package/dev/chunks/vidstack-CBF7iUqu.js +22 -0
  7. package/dev/chunks/vidstack-CFZ0rYJz.js +34 -0
  8. package/dev/chunks/vidstack-CM82l-7o.js +551 -0
  9. package/dev/chunks/vidstack-CvWDiSTs.js +84 -0
  10. package/dev/chunks/vidstack-CzU-uC5f.js +189 -0
  11. package/dev/chunks/vidstack-D-hQD1eE.js +9 -0
  12. package/dev/chunks/vidstack-D6_9yy0x.js +643 -0
  13. package/dev/chunks/vidstack-DJQOTrl6.js +180 -0
  14. package/dev/chunks/vidstack-DNbKNc4R.js +288 -0
  15. package/dev/chunks/vidstack-D_bWd66h.js +2023 -0
  16. package/dev/chunks/vidstack-Dm1xEU9Q.js +36 -0
  17. package/dev/chunks/vidstack-f6WXkmfP.js +375 -0
  18. package/dev/chunks/vidstack-krOAtKMi.js +34 -0
  19. package/dev/chunks/vidstack-lYFZKRUc.js +401 -0
  20. package/dev/chunks/vidstack-vz-aZSfo.js +1497 -0
  21. package/dev/player/vidstack-default-components.js +14 -0
  22. package/dev/player/vidstack-default-icons.js +88 -0
  23. package/dev/player/vidstack-default-layout.js +14 -0
  24. package/dev/player/vidstack-plyr-icons.js +62 -0
  25. package/dev/player/vidstack-plyr-layout.js +636 -0
  26. package/dev/player/vidstack-remotion.js +345 -0
  27. package/dev/vidstack.js +587 -0
  28. package/dom.d.ts +91 -0
  29. package/google-cast.d.ts +1422 -0
  30. package/icons.d.ts +5 -0
  31. package/index.d.ts +8 -0
  32. package/package.json +9 -60
  33. package/player/layouts/default.d.ts +11392 -0
  34. package/player/layouts/plyr.d.ts +5 -0
  35. package/player/remotion.d.ts +5 -0
  36. package/player/styles/base.css +153 -0
  37. package/player/styles/default/buffering.css +55 -0
  38. package/player/styles/default/buttons.css +175 -0
  39. package/player/styles/default/captions.css +181 -0
  40. package/player/styles/default/chapter-title.css +26 -0
  41. package/player/styles/default/controls.css +56 -0
  42. package/player/styles/default/gestures.css +19 -0
  43. package/player/styles/default/icons.css +6 -0
  44. package/player/styles/default/keyboard.css +148 -0
  45. package/player/styles/default/layouts/audio.css +417 -0
  46. package/player/styles/default/layouts/video.css +1082 -0
  47. package/player/styles/default/menus.css +959 -0
  48. package/player/styles/default/poster.css +52 -0
  49. package/player/styles/default/sliders.css +391 -0
  50. package/player/styles/default/theme.css +2461 -0
  51. package/player/styles/default/thumbnail.css +40 -0
  52. package/player/styles/default/time.css +45 -0
  53. package/player/styles/default/tooltips.css +141 -0
  54. package/player/styles/plyr/theme.css +1237 -0
  55. package/prod/chunks/vidstack-0Foyib2F.js +34 -0
  56. package/prod/chunks/vidstack-BbPEqH3g.js +11196 -0
  57. package/prod/chunks/vidstack-Bh7M8kL6.js +663 -0
  58. package/prod/chunks/vidstack-BlPINAXN.js +189 -0
  59. package/prod/chunks/vidstack-C5Rzkyfp.js +375 -0
  60. package/prod/chunks/vidstack-CBF7iUqu.js +22 -0
  61. package/prod/chunks/vidstack-CZNlvfmV.js +288 -0
  62. package/prod/chunks/vidstack-CZgUA94N.js +1979 -0
  63. package/prod/chunks/vidstack-Ce0Qn3e1.js +1497 -0
  64. package/prod/chunks/vidstack-D0XCUWbp.js +159 -0
  65. package/prod/chunks/vidstack-DTyDOhwS.js +504 -0
  66. package/prod/chunks/vidstack-DhC5F6c8.js +470 -0
  67. package/prod/chunks/vidstack-Dm1xEU9Q.js +36 -0
  68. package/prod/chunks/vidstack-Ma9rwtR0.js +386 -0
  69. package/prod/chunks/vidstack-WsodkLQg.js +1371 -0
  70. package/prod/chunks/vidstack-jIPoNqhj.js +545 -0
  71. package/prod/chunks/vidstack-krOAtKMi.js +34 -0
  72. package/prod/chunks/vidstack-vqp2QaHR.js +9 -0
  73. package/prod/chunks/vidstack-xo_SmgiV.js +84 -0
  74. package/prod/chunks/vidstack-xvxeRtaN.js +61 -0
  75. package/prod/player/vidstack-default-components.js +14 -0
  76. package/prod/player/vidstack-default-icons.js +88 -0
  77. package/prod/player/vidstack-default-layout.js +14 -0
  78. package/prod/player/vidstack-plyr-icons.js +62 -0
  79. package/prod/player/vidstack-plyr-layout.js +636 -0
  80. package/prod/player/vidstack-remotion.js +335 -0
  81. package/prod/vidstack-icons.js +435 -0
  82. package/prod/vidstack.js +648 -0
  83. package/server/chunks/vidstack-2zMSe4ym.js +1371 -0
  84. package/server/chunks/vidstack-BtqWstSj.js +375 -0
  85. package/server/chunks/vidstack-C-HdFsZi.js +84 -0
  86. package/server/chunks/vidstack-C4iWXMC-.js +545 -0
  87. package/server/chunks/vidstack-C5zFBMwg.js +386 -0
  88. package/server/chunks/vidstack-CBF7iUqu.js +22 -0
  89. package/server/chunks/vidstack-CEh38XpD.js +288 -0
  90. package/server/chunks/vidstack-CWR0J8Qz.js +1497 -0
  91. package/server/chunks/vidstack-CkMAeO-e.js +34 -0
  92. package/server/chunks/vidstack-Cm0qnRvu.js +11196 -0
  93. package/server/chunks/vidstack-CoGzBr_V.js +663 -0
  94. package/server/chunks/vidstack-CyFwkPiu.js +470 -0
  95. package/server/chunks/vidstack-D-hQD1eE.js +9 -0
  96. package/server/chunks/vidstack-D_bWd66h.js +2023 -0
  97. package/server/chunks/vidstack-Dm1xEU9Q.js +36 -0
  98. package/server/chunks/vidstack-DtQSvsQr.js +189 -0
  99. package/server/chunks/vidstack-jlaBqZq5.js +61 -0
  100. package/server/chunks/vidstack-krOAtKMi.js +34 -0
  101. package/server/chunks/vidstack-rWs25cS9.js +159 -0
  102. package/server/chunks/vidstack-uyCXITen.js +504 -0
  103. package/server/player/vidstack-default-components.js +14 -0
  104. package/server/player/vidstack-default-icons.js +88 -0
  105. package/server/player/vidstack-default-layout.js +14 -0
  106. package/server/player/vidstack-plyr-icons.js +62 -0
  107. package/server/player/vidstack-plyr-layout.js +636 -0
  108. package/server/player/vidstack-remotion.js +335 -0
  109. package/server/vidstack.js +648 -0
  110. package/tailwind.cjs +101 -0
  111. package/tailwind.d.cts +15 -0
  112. package/.templates/sandbox/document.css +0 -27
  113. package/.templates/sandbox/favicon-32x32.png +0 -0
  114. package/.templates/sandbox/index.html +0 -21
  115. package/.templates/sandbox/main.tsx +0 -12
  116. package/.templates/sandbox/player.css +0 -39
  117. package/.templates/sandbox/player.tsx +0 -121
  118. package/.templates/sandbox/tracks.ts +0 -23
  119. package/analyze.config.ts +0 -7
  120. package/build/build-icons.js +0 -62
  121. package/rollup.config.ts +0 -256
  122. package/src/components/announcer.tsx +0 -47
  123. package/src/components/layouts/default/audio-layout.tsx +0 -231
  124. package/src/components/layouts/default/context.ts +0 -28
  125. package/src/components/layouts/default/hooks.ts +0 -13
  126. package/src/components/layouts/default/icons.tsx +0 -225
  127. package/src/components/layouts/default/index.ts +0 -11
  128. package/src/components/layouts/default/media-layout.tsx +0 -259
  129. package/src/components/layouts/default/slots.tsx +0 -98
  130. package/src/components/layouts/default/ui/announcer.tsx +0 -22
  131. package/src/components/layouts/default/ui/buttons.tsx +0 -301
  132. package/src/components/layouts/default/ui/captions.tsx +0 -16
  133. package/src/components/layouts/default/ui/controls.tsx +0 -12
  134. package/src/components/layouts/default/ui/keyboard-display.tsx +0 -132
  135. package/src/components/layouts/default/ui/menus/accessibility-menu.tsx +0 -100
  136. package/src/components/layouts/default/ui/menus/audio-menu.tsx +0 -167
  137. package/src/components/layouts/default/ui/menus/captions-menu.tsx +0 -61
  138. package/src/components/layouts/default/ui/menus/chapters-menu.tsx +0 -132
  139. package/src/components/layouts/default/ui/menus/font-menu.tsx +0 -331
  140. package/src/components/layouts/default/ui/menus/items/menu-checkbox.tsx +0 -72
  141. package/src/components/layouts/default/ui/menus/items/menu-items.tsx +0 -135
  142. package/src/components/layouts/default/ui/menus/items/menu-slider.tsx +0 -92
  143. package/src/components/layouts/default/ui/menus/playback-menu.tsx +0 -232
  144. package/src/components/layouts/default/ui/menus/settings-menu.tsx +0 -114
  145. package/src/components/layouts/default/ui/menus/utils.ts +0 -12
  146. package/src/components/layouts/default/ui/sliders.tsx +0 -136
  147. package/src/components/layouts/default/ui/time.tsx +0 -73
  148. package/src/components/layouts/default/ui/title.tsx +0 -24
  149. package/src/components/layouts/default/ui/tooltip.tsx +0 -27
  150. package/src/components/layouts/default/ui.ts +0 -8
  151. package/src/components/layouts/default/video-layout.tsx +0 -344
  152. package/src/components/layouts/plyr/context.ts +0 -26
  153. package/src/components/layouts/plyr/icons/plyr-airplay.js +0 -1
  154. package/src/components/layouts/plyr/icons/plyr-captions-off.js +0 -1
  155. package/src/components/layouts/plyr/icons/plyr-captions-on.js +0 -1
  156. package/src/components/layouts/plyr/icons/plyr-download.js +0 -1
  157. package/src/components/layouts/plyr/icons/plyr-enter-fullscreen.js +0 -1
  158. package/src/components/layouts/plyr/icons/plyr-exit-fullscreen.js +0 -1
  159. package/src/components/layouts/plyr/icons/plyr-fast-forward.js +0 -1
  160. package/src/components/layouts/plyr/icons/plyr-muted.js +0 -1
  161. package/src/components/layouts/plyr/icons/plyr-pause.js +0 -1
  162. package/src/components/layouts/plyr/icons/plyr-pip.js +0 -1
  163. package/src/components/layouts/plyr/icons/plyr-play.js +0 -1
  164. package/src/components/layouts/plyr/icons/plyr-restart.js +0 -1
  165. package/src/components/layouts/plyr/icons/plyr-rewind.js +0 -1
  166. package/src/components/layouts/plyr/icons/plyr-settings.js +0 -1
  167. package/src/components/layouts/plyr/icons/plyr-volume.js +0 -1
  168. package/src/components/layouts/plyr/icons.tsx +0 -71
  169. package/src/components/layouts/plyr/index.ts +0 -11
  170. package/src/components/layouts/plyr/layout.tsx +0 -1024
  171. package/src/components/layouts/plyr/props.ts +0 -104
  172. package/src/components/layouts/plyr/slots.tsx +0 -52
  173. package/src/components/layouts/remotion-ui.ts +0 -13
  174. package/src/components/layouts/utils.ts +0 -17
  175. package/src/components/player-callbacks.ts +0 -67
  176. package/src/components/player.tsx +0 -67
  177. package/src/components/primitives/instances.ts +0 -92
  178. package/src/components/primitives/nodes.tsx +0 -58
  179. package/src/components/primitives/slot.tsx +0 -132
  180. package/src/components/provider.tsx +0 -187
  181. package/src/components/text-track.tsx +0 -106
  182. package/src/components/ui/buttons/airplay-button.tsx +0 -53
  183. package/src/components/ui/buttons/caption-button.tsx +0 -55
  184. package/src/components/ui/buttons/fullscreen-button.tsx +0 -55
  185. package/src/components/ui/buttons/google-cast-button.tsx +0 -53
  186. package/src/components/ui/buttons/live-button.tsx +0 -56
  187. package/src/components/ui/buttons/mute-button.tsx +0 -60
  188. package/src/components/ui/buttons/pip-button.tsx +0 -54
  189. package/src/components/ui/buttons/play-button.tsx +0 -53
  190. package/src/components/ui/buttons/seek-button.tsx +0 -55
  191. package/src/components/ui/buttons/toggle-button.tsx +0 -51
  192. package/src/components/ui/caption.tsx +0 -70
  193. package/src/components/ui/captions.tsx +0 -41
  194. package/src/components/ui/chapter-title.tsx +0 -40
  195. package/src/components/ui/controls.tsx +0 -90
  196. package/src/components/ui/gesture.tsx +0 -43
  197. package/src/components/ui/menu.tsx +0 -251
  198. package/src/components/ui/poster.tsx +0 -101
  199. package/src/components/ui/radio-group.tsx +0 -88
  200. package/src/components/ui/sliders/audio-gain-slider.tsx +0 -55
  201. package/src/components/ui/sliders/quality-slider.tsx +0 -54
  202. package/src/components/ui/sliders/slider-callbacks.ts +0 -14
  203. package/src/components/ui/sliders/slider-value.tsx +0 -13
  204. package/src/components/ui/sliders/slider.tsx +0 -254
  205. package/src/components/ui/sliders/speed-slider.tsx +0 -54
  206. package/src/components/ui/sliders/time-slider.tsx +0 -379
  207. package/src/components/ui/sliders/volume-slider.tsx +0 -55
  208. package/src/components/ui/spinner.tsx +0 -105
  209. package/src/components/ui/thumbnail.tsx +0 -82
  210. package/src/components/ui/time.tsx +0 -77
  211. package/src/components/ui/title.tsx +0 -32
  212. package/src/components/ui/tooltip.tsx +0 -135
  213. package/src/globals.d.ts +0 -3
  214. package/src/hooks/create-text-track.ts +0 -22
  215. package/src/hooks/options/use-audio-gain-options.ts +0 -75
  216. package/src/hooks/options/use-audio-options.ts +0 -71
  217. package/src/hooks/options/use-caption-options.ts +0 -95
  218. package/src/hooks/options/use-chapter-options.ts +0 -97
  219. package/src/hooks/options/use-playback-rate-options.ts +0 -75
  220. package/src/hooks/options/use-video-quality-options.ts +0 -123
  221. package/src/hooks/use-active-text-cues.ts +0 -28
  222. package/src/hooks/use-active-text-track.ts +0 -19
  223. package/src/hooks/use-chapter-title.ts +0 -12
  224. package/src/hooks/use-dom.ts +0 -121
  225. package/src/hooks/use-media-context.ts +0 -6
  226. package/src/hooks/use-media-player.ts +0 -19
  227. package/src/hooks/use-media-provider.ts +0 -31
  228. package/src/hooks/use-media-remote.ts +0 -37
  229. package/src/hooks/use-media-state.ts +0 -58
  230. package/src/hooks/use-signals.ts +0 -24
  231. package/src/hooks/use-slider-preview.ts +0 -126
  232. package/src/hooks/use-slider-state.ts +0 -63
  233. package/src/hooks/use-state.ts +0 -47
  234. package/src/hooks/use-text-cues.ts +0 -33
  235. package/src/hooks/use-thumbnails.ts +0 -69
  236. package/src/icon.ts +0 -37
  237. package/src/icons.ts +0 -754
  238. package/src/index.ts +0 -181
  239. package/src/providers/remotion/index.ts +0 -10
  240. package/src/providers/remotion/layout-engine.ts +0 -123
  241. package/src/providers/remotion/loader.ts +0 -35
  242. package/src/providers/remotion/playback-engine.ts +0 -142
  243. package/src/providers/remotion/provider.tsx +0 -514
  244. package/src/providers/remotion/type-check.ts +0 -13
  245. package/src/providers/remotion/types.ts +0 -94
  246. package/src/providers/remotion/ui/context.tsx +0 -120
  247. package/src/providers/remotion/ui/error-boundary.tsx +0 -57
  248. package/src/providers/remotion/ui/poster.tsx +0 -33
  249. package/src/providers/remotion/ui/slider-thumbnail.tsx +0 -41
  250. package/src/providers/remotion/ui/thumbnail.tsx +0 -166
  251. package/src/providers/remotion/validate.ts +0 -220
  252. package/src/source.ts +0 -5
  253. package/src/utils.ts +0 -27
  254. package/tsconfig.build.json +0 -10
  255. package/tsconfig.json +0 -11
  256. package/types/react/src/components/announcer.d.ts +0 -16
  257. package/types/react/src/components/layouts/default/audio-layout.d.ts +0 -27
  258. package/types/react/src/components/layouts/default/context.d.ts +0 -14
  259. package/types/react/src/components/layouts/default/hooks.d.ts +0 -2
  260. package/types/react/src/components/layouts/default/icons.d.ts +0 -95
  261. package/types/react/src/components/layouts/default/index.d.ts +0 -5
  262. package/types/react/src/components/layouts/default/media-layout.d.ts +0 -133
  263. package/types/react/src/components/layouts/default/slots.d.ts +0 -22
  264. package/types/react/src/components/layouts/default/ui/announcer.d.ts +0 -6
  265. package/types/react/src/components/layouts/default/ui/buttons.d.ts +0 -54
  266. package/types/react/src/components/layouts/default/ui/captions.d.ts +0 -6
  267. package/types/react/src/components/layouts/default/ui/controls.d.ts +0 -6
  268. package/types/react/src/components/layouts/default/ui/keyboard-display.d.ts +0 -8
  269. package/types/react/src/components/layouts/default/ui/menus/accessibility-menu.d.ts +0 -10
  270. package/types/react/src/components/layouts/default/ui/menus/audio-menu.d.ts +0 -10
  271. package/types/react/src/components/layouts/default/ui/menus/captions-menu.d.ts +0 -10
  272. package/types/react/src/components/layouts/default/ui/menus/chapters-menu.d.ts +0 -7
  273. package/types/react/src/components/layouts/default/ui/menus/font-menu.d.ts +0 -6
  274. package/types/react/src/components/layouts/default/ui/menus/items/menu-checkbox.d.ts +0 -13
  275. package/types/react/src/components/layouts/default/ui/menus/items/menu-items.d.ts +0 -49
  276. package/types/react/src/components/layouts/default/ui/menus/items/menu-slider.d.ts +0 -26
  277. package/types/react/src/components/layouts/default/ui/menus/playback-menu.d.ts +0 -10
  278. package/types/react/src/components/layouts/default/ui/menus/settings-menu.d.ts +0 -15
  279. package/types/react/src/components/layouts/default/ui/menus/utils.d.ts +0 -1
  280. package/types/react/src/components/layouts/default/ui/sliders.d.ts +0 -24
  281. package/types/react/src/components/layouts/default/ui/time.d.ts +0 -30
  282. package/types/react/src/components/layouts/default/ui/title.d.ts +0 -6
  283. package/types/react/src/components/layouts/default/ui/tooltip.d.ts +0 -12
  284. package/types/react/src/components/layouts/default/ui.d.ts +0 -8
  285. package/types/react/src/components/layouts/default/video-layout.d.ts +0 -47
  286. package/types/react/src/components/layouts/plyr/context.d.ts +0 -12
  287. package/types/react/src/components/layouts/plyr/icons/plyr-airplay.d.ts +0 -2
  288. package/types/react/src/components/layouts/plyr/icons/plyr-captions-off.d.ts +0 -2
  289. package/types/react/src/components/layouts/plyr/icons/plyr-captions-on.d.ts +0 -2
  290. package/types/react/src/components/layouts/plyr/icons/plyr-download.d.ts +0 -2
  291. package/types/react/src/components/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +0 -2
  292. package/types/react/src/components/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +0 -2
  293. package/types/react/src/components/layouts/plyr/icons/plyr-fast-forward.d.ts +0 -2
  294. package/types/react/src/components/layouts/plyr/icons/plyr-muted.d.ts +0 -2
  295. package/types/react/src/components/layouts/plyr/icons/plyr-pause.d.ts +0 -2
  296. package/types/react/src/components/layouts/plyr/icons/plyr-pip.d.ts +0 -2
  297. package/types/react/src/components/layouts/plyr/icons/plyr-play.d.ts +0 -2
  298. package/types/react/src/components/layouts/plyr/icons/plyr-restart.d.ts +0 -2
  299. package/types/react/src/components/layouts/plyr/icons/plyr-rewind.d.ts +0 -2
  300. package/types/react/src/components/layouts/plyr/icons/plyr-settings.d.ts +0 -2
  301. package/types/react/src/components/layouts/plyr/icons/plyr-volume.d.ts +0 -2
  302. package/types/react/src/components/layouts/plyr/icons.d.ts +0 -25
  303. package/types/react/src/components/layouts/plyr/index.d.ts +0 -6
  304. package/types/react/src/components/layouts/plyr/layout.d.ts +0 -17
  305. package/types/react/src/components/layouts/plyr/props.d.ts +0 -71
  306. package/types/react/src/components/layouts/plyr/slots.d.ts +0 -9
  307. package/types/react/src/components/layouts/remotion-ui.d.ts +0 -3
  308. package/types/react/src/components/layouts/utils.d.ts +0 -1
  309. package/types/react/src/components/player-callbacks.d.ts +0 -6
  310. package/types/react/src/components/player.d.ts +0 -32
  311. package/types/react/src/components/primitives/instances.d.ts +0 -83
  312. package/types/react/src/components/primitives/nodes.d.ts +0 -15
  313. package/types/react/src/components/primitives/slot.d.ts +0 -11
  314. package/types/react/src/components/provider.d.ts +0 -26
  315. package/types/react/src/components/text-track.d.ts +0 -100
  316. package/types/react/src/components/ui/buttons/airplay-button.d.ts +0 -22
  317. package/types/react/src/components/ui/buttons/caption-button.d.ts +0 -24
  318. package/types/react/src/components/ui/buttons/fullscreen-button.d.ts +0 -24
  319. package/types/react/src/components/ui/buttons/google-cast-button.d.ts +0 -22
  320. package/types/react/src/components/ui/buttons/live-button.d.ts +0 -26
  321. package/types/react/src/components/ui/buttons/mute-button.d.ts +0 -30
  322. package/types/react/src/components/ui/buttons/pip-button.d.ts +0 -24
  323. package/types/react/src/components/ui/buttons/play-button.d.ts +0 -23
  324. package/types/react/src/components/ui/buttons/seek-button.d.ts +0 -25
  325. package/types/react/src/components/ui/buttons/toggle-button.d.ts +0 -22
  326. package/types/react/src/components/ui/caption.d.ts +0 -11
  327. package/types/react/src/components/ui/captions.d.ts +0 -20
  328. package/types/react/src/components/ui/chapter-title.d.ts +0 -20
  329. package/types/react/src/components/ui/controls.d.ts +0 -40
  330. package/types/react/src/components/ui/gesture.d.ts +0 -20
  331. package/types/react/src/components/ui/menu.d.ts +0 -102
  332. package/types/react/src/components/ui/poster.d.ts +0 -25
  333. package/types/react/src/components/ui/radio-group.d.ts +0 -39
  334. package/types/react/src/components/ui/sliders/audio-gain-slider.d.ts +0 -29
  335. package/types/react/src/components/ui/sliders/quality-slider.d.ts +0 -28
  336. package/types/react/src/components/ui/sliders/slider-callbacks.d.ts +0 -6
  337. package/types/react/src/components/ui/sliders/slider-value.d.ts +0 -9
  338. package/types/react/src/components/ui/sliders/slider.d.ts +0 -134
  339. package/types/react/src/components/ui/sliders/speed-slider.d.ts +0 -28
  340. package/types/react/src/components/ui/sliders/time-slider.d.ts +0 -124
  341. package/types/react/src/components/ui/sliders/volume-slider.d.ts +0 -29
  342. package/types/react/src/components/ui/spinner.d.ts +0 -31
  343. package/types/react/src/components/ui/thumbnail.d.ts +0 -26
  344. package/types/react/src/components/ui/time.d.ts +0 -20
  345. package/types/react/src/components/ui/title.d.ts +0 -15
  346. package/types/react/src/components/ui/tooltip.d.ts +0 -63
  347. package/types/react/src/hooks/create-text-track.d.ts +0 -7
  348. package/types/react/src/hooks/options/use-audio-gain-options.d.ts +0 -22
  349. package/types/react/src/hooks/options/use-audio-options.d.ts +0 -17
  350. package/types/react/src/hooks/options/use-caption-options.d.ts +0 -24
  351. package/types/react/src/hooks/options/use-chapter-options.d.ts +0 -18
  352. package/types/react/src/hooks/options/use-playback-rate-options.d.ts +0 -22
  353. package/types/react/src/hooks/options/use-video-quality-options.d.ts +0 -35
  354. package/types/react/src/hooks/use-active-text-cues.d.ts +0 -6
  355. package/types/react/src/hooks/use-active-text-track.d.ts +0 -5
  356. package/types/react/src/hooks/use-chapter-title.d.ts +0 -4
  357. package/types/react/src/hooks/use-dom.d.ts +0 -9
  358. package/types/react/src/hooks/use-media-context.d.ts +0 -1
  359. package/types/react/src/hooks/use-media-player.d.ts +0 -7
  360. package/types/react/src/hooks/use-media-provider.d.ts +0 -7
  361. package/types/react/src/hooks/use-media-remote.d.ts +0 -12
  362. package/types/react/src/hooks/use-media-state.d.ts +0 -15
  363. package/types/react/src/hooks/use-signals.d.ts +0 -5
  364. package/types/react/src/hooks/use-slider-preview.d.ts +0 -27
  365. package/types/react/src/hooks/use-slider-state.d.ts +0 -16
  366. package/types/react/src/hooks/use-state.d.ts +0 -18
  367. package/types/react/src/hooks/use-text-cues.d.ts +0 -6
  368. package/types/react/src/hooks/use-thumbnails.d.ts +0 -16
  369. package/types/react/src/icon.d.ts +0 -17
  370. package/types/react/src/icons.d.ts +0 -215
  371. package/types/react/src/index.d.ts +0 -78
  372. package/types/react/src/providers/remotion/index.d.ts +0 -7
  373. package/types/react/src/providers/remotion/layout-engine.d.ts +0 -8
  374. package/types/react/src/providers/remotion/loader.d.ts +0 -9
  375. package/types/react/src/providers/remotion/playback-engine.d.ts +0 -11
  376. package/types/react/src/providers/remotion/provider.d.ts +0 -26
  377. package/types/react/src/providers/remotion/type-check.d.ts +0 -6
  378. package/types/react/src/providers/remotion/types.d.ts +0 -91
  379. package/types/react/src/providers/remotion/ui/context.d.ts +0 -17
  380. package/types/react/src/providers/remotion/ui/error-boundary.d.ts +0 -21
  381. package/types/react/src/providers/remotion/ui/poster.d.ts +0 -18
  382. package/types/react/src/providers/remotion/ui/slider-thumbnail.d.ts +0 -17
  383. package/types/react/src/providers/remotion/ui/thumbnail.d.ts +0 -32
  384. package/types/react/src/providers/remotion/validate.d.ts +0 -12
  385. package/types/react/src/source.d.ts +0 -3
  386. package/types/react/src/utils.d.ts +0 -3
  387. package/types/vidstack/src/core/api/src-types.d.ts +0 -50
  388. package/types/vidstack/src/utils/mime.d.ts +0 -15
  389. package/types/vidstack/src/utils/network.d.ts +0 -17
  390. package/types/vidstack/src/utils/support.d.ts +0 -72
  391. package/vite.config.ts +0 -23
  392. /package/{npm/analyze.json.d.ts → analyze.json.d.ts} +0 -0
@@ -0,0 +1,2461 @@
1
+ /*
2
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
+ * Player
4
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
+ */
6
+
7
+ [data-media-player] {
8
+ width: 100%;
9
+ display: inline-flex;
10
+ align-items: center;
11
+ position: relative;
12
+ contain: style;
13
+ box-sizing: border-box;
14
+ user-select: none;
15
+ }
16
+
17
+ [data-media-player] * {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ :where([data-media-player][data-view-type='video']) {
22
+ aspect-ratio: 16 / 9;
23
+ }
24
+
25
+ [data-media-player]:focus,
26
+ [data-media-player]:focus-visible {
27
+ outline: none;
28
+ }
29
+
30
+ [data-media-player][data-view-type='video'][data-started]:not([data-controls]) {
31
+ pointer-events: auto;
32
+ cursor: none;
33
+ }
34
+
35
+ [data-media-player] slot {
36
+ display: contents;
37
+ }
38
+
39
+ /*
40
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41
+ * Provider
42
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43
+ */
44
+
45
+ [data-media-provider] {
46
+ display: flex;
47
+ position: relative;
48
+ box-sizing: border-box;
49
+ align-items: center;
50
+ border-radius: inherit;
51
+ width: 100%;
52
+ aspect-ratio: inherit;
53
+ overflow: hidden;
54
+ }
55
+
56
+ [data-media-player]:not([data-view-type='audio']) [data-media-provider],
57
+ [data-media-player][data-fullscreen] [data-media-provider] {
58
+ height: 100%;
59
+ }
60
+
61
+ [data-media-player][data-view-type='audio'] [data-media-provider] {
62
+ display: contents;
63
+ background-color: unset;
64
+ }
65
+
66
+ [data-media-provider] audio {
67
+ width: 100%;
68
+ }
69
+
70
+ :where(video:not([width]):not([height]), iframe:not([width]):not([height])) {
71
+ width: 100%;
72
+ aspect-ratio: 16 / 9;
73
+ }
74
+
75
+ :where([data-media-provider] video),
76
+ :where([data-media-provider] iframe) {
77
+ aspect-ratio: inherit;
78
+ display: inline-block;
79
+ height: auto;
80
+ object-fit: contain;
81
+ touch-action: manipulation;
82
+ border-radius: inherit;
83
+ width: 100%;
84
+ }
85
+
86
+ [data-media-provider] iframe {
87
+ height: 100%;
88
+ }
89
+
90
+ [data-media-player][data-view-type='audio'] video,
91
+ [data-media-player][data-view-type='audio'] iframe {
92
+ display: none;
93
+ }
94
+
95
+ [data-media-player][data-fullscreen] video {
96
+ height: 100%;
97
+ }
98
+
99
+ [data-media-provider] iframe:not([src]) {
100
+ display: none;
101
+ }
102
+
103
+ iframe.vds-youtube[data-no-controls] {
104
+ height: 1000%;
105
+ }
106
+
107
+ .vds-blocker {
108
+ position: absolute;
109
+ inset: 0;
110
+ width: 100%;
111
+ height: auto;
112
+ aspect-ratio: inherit;
113
+ pointer-events: auto;
114
+ border-radius: inherit;
115
+ z-index: 1;
116
+ }
117
+
118
+ [data-ended] .vds-blocker {
119
+ background-color: black;
120
+ }
121
+
122
+ .vds-icon:focus {
123
+ outline: none;
124
+ }
125
+
126
+ /*
127
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
128
+ * Google Cast
129
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
130
+ */
131
+
132
+ .vds-google-cast {
133
+ width: 100%;
134
+ height: 100%;
135
+ display: flex;
136
+ align-items: center;
137
+ justify-content: center;
138
+ flex-direction: column;
139
+ color: #dedede;
140
+ font-family: sans-serif;
141
+ font-weight: 500;
142
+ }
143
+
144
+ .vds-google-cast svg {
145
+ --size: max(18%, 40px);
146
+ width: var(--size);
147
+ height: var(--size);
148
+ margin-bottom: 8px;
149
+ }
150
+
151
+ .vds-google-cast-info {
152
+ font-size: calc(var(--media-height) / 100 * 6);
153
+ }
154
+
155
+ :where(.vds-buffering-indicator) {
156
+ position: absolute;
157
+ top: 0;
158
+ left: 0;
159
+ width: 100%;
160
+ height: 100%;
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ pointer-events: none;
165
+ z-index: 1;
166
+ }
167
+
168
+ :where(.vds-buffering-indicator) :where(.vds-buffering-icon, .vds-buffering-spinner) {
169
+ opacity: 0;
170
+ pointer-events: none;
171
+ transition: var(--media-buffering-transition, opacity 200ms ease);
172
+ }
173
+
174
+ :where(.vds-buffering-indicator)
175
+ :where(.vds-buffering-icon, svg.vds-buffering-spinner, .vds-buffering-spinner svg) {
176
+ width: var(--media-buffering-size, 96px);
177
+ height: var(--media-buffering-size, 96px);
178
+ }
179
+
180
+ :where(.vds-buffering-indicator) :where(.vds-buffering-track, circle[data-part='track']) {
181
+ color: var(--media-buffering-track-color, #f5f5f5);
182
+ opacity: var(--media-buffering-track-opacity, 0.25);
183
+ stroke-width: var(--media-buffering-track-width, 8);
184
+ }
185
+
186
+ :where(.vds-buffering-indicator) :where(.vds-buffering-track-fill, circle[data-part='track-fill']) {
187
+ color: var(--media-buffering-track-fill-color, var(--media-brand));
188
+ opacity: var(--media-buffering-track-fill-opacity, 0.75);
189
+ stroke-width: var(--media-buffering-track-fill-width, 9);
190
+ stroke-dasharray: 100;
191
+ stroke-dashoffset: var(--media-buffering-track-fill-offset, 50);
192
+ }
193
+
194
+ :where([data-buffering]) :where(.vds-buffering-icon, .vds-buffering-spinner) {
195
+ opacity: 1;
196
+ animation: var(--media-buffering-animation, vds-buffering-spin 1s linear infinite);
197
+ }
198
+
199
+ @keyframes vds-buffering-spin {
200
+ to {
201
+ transform: rotate(360deg);
202
+ }
203
+ }
204
+
205
+ @media (prefers-reduced-motion) {
206
+ :where([data-buffering]) :where(.vds-buffering-icon, .vds-buffering-spinner) {
207
+ animation-duration: 8s;
208
+ }
209
+ }
210
+
211
+ /*
212
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
213
+ * Buttons
214
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
215
+ */
216
+
217
+ :where(.vds-button) {
218
+ -webkit-tap-highlight-color: transparent;
219
+ position: relative;
220
+ display: inline-flex;
221
+ justify-content: center;
222
+ align-items: center;
223
+ user-select: none;
224
+ appearance: none;
225
+ background: none;
226
+ outline: none;
227
+ border: none;
228
+ border-radius: var(--media-button-border-radius, 8px);
229
+ width: var(--media-button-size, 40px);
230
+ height: var(--media-button-size, 40px);
231
+ transition: transform 0.2s ease-out;
232
+ contain: layout style;
233
+ cursor: pointer;
234
+ -webkit-user-select: none;
235
+ -webkit-tap-highlight-color: transparent;
236
+ touch-action: manipulation;
237
+ flex-shrink: 0;
238
+ }
239
+
240
+ .vds-button {
241
+ border: var(--media-button-border);
242
+ color: var(--media-button-color, var(--media-controls-color, #f5f5f5));
243
+ padding: var(--media-button-padding, 0px);
244
+ }
245
+
246
+ :where([data-fullscreen] .vds-button) {
247
+ width: var(--media-fullscreen-button-size, 42px);
248
+ height: var(--media-fullscreen-button-size, 42px);
249
+ }
250
+
251
+ @media screen and (max-width: 599px) {
252
+ :where([data-fullscreen] .vds-button) {
253
+ width: var(--media-sm-fullscreen-button-size, 42px);
254
+ height: var(--media-sm-fullscreen-button-size, 42px);
255
+ }
256
+ }
257
+
258
+ :where(.vds-button .vds-icon) {
259
+ width: var(--media-button-icon-size, 80%);
260
+ height: var(--media-button-icon-size, 80%);
261
+ border-radius: var(--media-button-border-radius, 8px);
262
+ }
263
+
264
+ :where(.vds-menu-button .vds-icon) {
265
+ display: flex !important;
266
+ }
267
+
268
+ :where(.vds-button[aria-hidden='true']) {
269
+ display: none !important;
270
+ }
271
+
272
+ @media (hover: hover) and (pointer: fine) {
273
+ .vds-button:hover {
274
+ background-color: var(--media-button-hover-bg, rgb(255 255 255 / 0.2));
275
+ }
276
+
277
+ .vds-button:hover {
278
+ transform: var(--media-button-hover-transform, scale(1.05));
279
+ transition: var(--media-button-hover-transition, transform 0.2s ease-in);
280
+ }
281
+
282
+ .vds-button[aria-expanded='true'] {
283
+ transform: unset;
284
+ }
285
+ }
286
+
287
+ @media (pointer: coarse) {
288
+ .vds-button:hover {
289
+ border-radius: var(--media-button-touch-hover-border-radius, 100%);
290
+ background-color: var(--media-button-touch-hover-bg, rgb(255 255 255 / 0.2));
291
+ }
292
+ }
293
+
294
+ :where(.vds-button:focus) {
295
+ outline: none;
296
+ }
297
+
298
+ :where(.vds-button[data-focus], .vds-button:focus-visible) {
299
+ box-shadow: var(--media-focus-ring);
300
+ }
301
+
302
+ /*
303
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304
+ * Live Button
305
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
306
+ */
307
+
308
+ :where(.vds-live-button) {
309
+ min-width: auto;
310
+ min-height: auto;
311
+ width: var(--media-live-button-width, 40px);
312
+ height: var(--media-live-button-height, 40px);
313
+ padding: 0;
314
+ display: flex;
315
+ align-items: center;
316
+ justify-content: center;
317
+ cursor: pointer;
318
+ user-select: none;
319
+ appearance: none;
320
+ background: none;
321
+ outline: none;
322
+ border: none;
323
+ }
324
+
325
+ :where(.vds-live-button-text) {
326
+ font-family: var(--media-font-family, sans-serif);
327
+ font-size: var(--media-live-button-font-size, 12px);
328
+ font-weight: var(--media-live-button-font-weight, 600);
329
+ letter-spacing: var(--media-live-button-letter-spacing, 1.5px);
330
+ transition: color 0.3s ease;
331
+ }
332
+
333
+ .vds-live-button-text {
334
+ background-color: var(--media-live-button-bg, #8a8a8a);
335
+ border-radius: var(--media-live-button-border-radius, 2px);
336
+ color: var(--media-live-button-color, #161616);
337
+ padding: var(--media-live-button-padding, 1px 4px);
338
+ }
339
+
340
+ :where(.vds-live-button[data-focus] .vds-live-button-text) {
341
+ box-shadow: var(--media-focus-ring);
342
+ }
343
+
344
+ :where(.vds-live-button[data-edge]) {
345
+ cursor: unset;
346
+ }
347
+
348
+ .vds-live-button[data-edge] .vds-live-button-text {
349
+ background-color: var(--media-live-button-edge-bg, #dc2626);
350
+ color: var(--media-live-button-edge-color, #f5f5f5);
351
+ }
352
+
353
+ @media (pointer: fine) {
354
+ :where(.vds-live-button:hover) {
355
+ background-color: unset;
356
+ }
357
+ }
358
+
359
+ /*
360
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
361
+ * States
362
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
363
+ */
364
+
365
+ /* Play Button */
366
+ .vds-button:not([data-paused]) .vds-play-icon,
367
+ .vds-button[data-ended] .vds-play-icon,
368
+ .vds-button[data-paused] .vds-pause-icon,
369
+ .vds-button[data-ended] .vds-pause-icon,
370
+ .vds-button:not([data-ended]) .vds-replay-icon,
371
+ /* PIP Button */
372
+ .vds-button[data-active] .vds-pip-enter-icon,
373
+ .vds-button:not([data-active]) .vds-pip-exit-icon,
374
+ /* Fullscreen Button */
375
+ .vds-button[data-active] .vds-fs-enter-icon,
376
+ .vds-button:not([data-active]) .vds-fs-exit-icon,
377
+ /* Caption Button */
378
+ .vds-button:not([data-active]) .vds-cc-on-icon,
379
+ .vds-button[data-active] .vds-cc-off-icon,
380
+ /* Mute Button */
381
+ .vds-button:not([data-muted]) .vds-mute-icon,
382
+ .vds-button:not([data-state='low']) .vds-volume-low-icon,
383
+ .vds-button:not([data-state='high']) .vds-volume-high-icon {
384
+ display: none;
385
+ }
386
+
387
+ /*
388
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
389
+ * Captions
390
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
391
+ */
392
+
393
+ :where(.vds-captions) {
394
+ /* Recommended settings in the WebVTT spec (https://www.w3.org/TR/webvtt1). */
395
+ --overlay-padding: var(--media-captions-padding, 1%);
396
+ --cue-color: var(--media-user-text-color, var(--media-cue-color, white));
397
+ --cue-bg-color: var(--media-user-text-bg, var(--media-cue-bg, rgba(0, 0, 0, 0.7)));
398
+ --cue-default-font-size: var(--media-cue-font-size, calc(var(--overlay-height) / 100 * 4.5));
399
+ --cue-font-size: calc(var(--cue-default-font-size) * var(--media-user-font-size, 1));
400
+ --cue-line-height: var(--media-cue-line-height, calc(var(--cue-font-size) * 1.2));
401
+ --cue-padding-x: var(--media-cue-padding-x, calc(var(--cue-font-size) * 0.6));
402
+ --cue-padding-y: var(--media-cue-padding-x, calc(var(--cue-font-size) * 0.4));
403
+ --cue-padding: var(--cue-padding-y) var(--cue-padding-x);
404
+ position: absolute;
405
+ inset: 0;
406
+ z-index: 1;
407
+ contain: layout style;
408
+ margin: var(--overlay-padding);
409
+ font-size: var(--cue-font-size);
410
+ font-family: var(--media-user-font-family, sans-serif);
411
+ box-sizing: border-box;
412
+ pointer-events: none;
413
+ user-select: none;
414
+ word-spacing: normal;
415
+ word-break: break-word;
416
+ }
417
+
418
+ :where([data-fullscreen][data-orientation='portrait'] .vds-captions) {
419
+ --cue-default-font-size: var(--media-cue-font-size, calc(var(--overlay-width) / 100 * 4.5));
420
+ }
421
+
422
+ :where([data-view-type='audio'] .vds-captions) {
423
+ position: relative;
424
+ margin: 0;
425
+ }
426
+
427
+ :where(.vds-captions[aria-hidden='true']) {
428
+ opacity: 0;
429
+ visibility: hidden;
430
+ }
431
+
432
+ .vds-captions[data-example] {
433
+ opacity: 1 !important;
434
+ visibility: visible !important;
435
+ }
436
+
437
+ :where([data-view-type='video'] .vds-captions [data-part='cue-display'][data-example]) {
438
+ --cue-text-align: center;
439
+ --cue-width: 100%;
440
+ --cue-top: 90%;
441
+ --cue-left: 0%;
442
+ }
443
+
444
+ :where([data-view-type='audio'] .vds-captions [data-part='cue-display']) {
445
+ --cue-width: 100%;
446
+ position: relative !important;
447
+ }
448
+
449
+ /*
450
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
451
+ * VTT Cues
452
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
453
+ */
454
+
455
+ :where(.vds-captions [data-part='cue-display']) {
456
+ position: absolute;
457
+ direction: ltr;
458
+ overflow: visible;
459
+ contain: content;
460
+ top: var(--cue-top);
461
+ left: var(--cue-left);
462
+ right: var(--cue-right);
463
+ bottom: var(--cue-bottom);
464
+ width: var(--cue-width, auto);
465
+ height: var(--cue-height, auto);
466
+ box-sizing: border-box;
467
+ transform: var(--cue-transform);
468
+ text-align: var(--cue-text-align);
469
+ writing-mode: var(--cue-writing-mode, unset);
470
+ white-space: pre-line;
471
+ unicode-bidi: plaintext;
472
+ min-width: min-content;
473
+ min-height: min-content;
474
+ background-color: var(--media-user-display-bg, var(--media-cue-display-bg));
475
+ border-radius: var(--media-cue-display-border-radius);
476
+ }
477
+
478
+ .vds-captions [data-part='cue-display'] {
479
+ padding: var(--media-cue-display-padding);
480
+ }
481
+
482
+ :where(.vds-captions[data-dir='rtl'] [data-part='cue-display']) {
483
+ direction: rtl;
484
+ }
485
+
486
+ :where(.vds-captions [data-part='cue']) {
487
+ display: inline-block;
488
+ contain: content;
489
+ font-variant: var(--media-user-font-variant);
490
+ border: var(--media-cue-border, unset);
491
+ border-radius: var(--media-cue-border-radius, 2px);
492
+ backdrop-filter: var(--media-cue-backdrop, blur(8px));
493
+ line-height: var(--cue-line-height);
494
+ box-sizing: border-box;
495
+ box-shadow: var(--media-cue-box-shadow, var(--cue-box-shadow));
496
+ white-space: var(--cue-white-space, pre-wrap);
497
+ outline: var(--cue-outline);
498
+ text-shadow: var(--media-user-text-shadow, var(--cue-text-shadow));
499
+ }
500
+
501
+ .vds-captions [data-part='cue'] {
502
+ background-color: var(--cue-bg-color);
503
+ color: var(--cue-color);
504
+ padding: var(--cue-padding);
505
+ }
506
+
507
+ :where(.vds-captions [data-part='cue-display'][data-vertical] [data-part='cue']) {
508
+ --cue-padding: var(--cue-padding-x) var(--cue-padding-y);
509
+ }
510
+
511
+ /*
512
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
513
+ * VTT Regions
514
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
515
+ */
516
+
517
+ :where(.vds-captions [data-part='region']) {
518
+ --anchor-x-percent: calc(var(--region-anchor-x) / 100);
519
+ --anchor-x: calc(var(--region-width) * var(--anchor-x-percent));
520
+ --anchor-y-percent: calc(var(--region-anchor-y) / 100);
521
+ --anchor-y: calc(var(--region-height) * var(--anchor-y-percent));
522
+ --vp-anchor-x: calc(var(--region-viewport-anchor-x) * 1%);
523
+ --vp-anchor-y-percent: calc(var(--region-viewport-anchor-y) / 100);
524
+ --vp-anchor-y: calc(var(--overlay-height) * var(--vp-anchor-y-percent));
525
+ position: absolute;
526
+ display: inline-flex;
527
+ flex-flow: column;
528
+ justify-content: flex-start;
529
+ width: var(--region-width);
530
+ height: var(--region-height);
531
+ min-height: 0px;
532
+ max-height: var(--region-height);
533
+ writing-mode: horizontal-tb;
534
+ top: var(--region-top, calc(var(--vp-anchor-y) - var(--anchor-y)));
535
+ left: var(--region-left, calc(var(--vp-anchor-x) - var(--anchor-x)));
536
+ right: var(--region-right);
537
+ bottom: var(--region-bottom);
538
+ overflow: hidden;
539
+ overflow-wrap: break-word;
540
+ box-sizing: border-box;
541
+ }
542
+
543
+ :where(.vds-captions [data-part='region'][data-active]) {
544
+ }
545
+
546
+ :where(.vds-captions [data-part='region'][data-scroll='up']) {
547
+ justify-content: end;
548
+ }
549
+
550
+ :where(.vds-captions [data-part='region'][data-active][data-scroll='up']) {
551
+ transition: top 0.433s;
552
+ }
553
+
554
+ :where(.vds-captions [data-part='region'] > [data-part='cue-display']) {
555
+ position: relative;
556
+ width: auto;
557
+ left: var(--cue-offset);
558
+ height: var(--cue-height, auto);
559
+ text-align: var(--cue-text-align);
560
+ unicode-bidi: plaintext;
561
+ margin-top: 2px;
562
+ }
563
+
564
+ :where(.vds-captions [data-part='region'] [data-part='cue']) {
565
+ position: relative;
566
+ border-radius: 0px;
567
+ }
568
+
569
+ :where(.vds-chapter-title) {
570
+ --color: var(--media-chapter-title-color, rgba(255 255 255 / 0.64));
571
+ display: inline-block;
572
+ font-family: var(--media-font-family, sans-serif);
573
+ font-size: var(--media-chapter-title-font-size, 16px);
574
+ font-weight: var(--media-chapter-title-font-weight, 400);
575
+ color: var(--color);
576
+ flex: 1 1 0%;
577
+ padding-inline: 6px;
578
+ overflow: hidden;
579
+ text-align: start;
580
+ white-space: nowrap;
581
+ text-overflow: ellipsis;
582
+ }
583
+
584
+ .vds-chapter-title::before {
585
+ content: var(--media-chapter-title-separator, '\2022');
586
+ display: inline-block;
587
+ margin-right: var(--media-chapter-title-separator-gap, 6px);
588
+ color: var(--media-chapter-title-separator-color, var(--color));
589
+ }
590
+
591
+ .vds-chapter-title:empty::before {
592
+ content: '';
593
+ margin: 0;
594
+ }
595
+
596
+ /*
597
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
598
+ * Controls
599
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
600
+ */
601
+
602
+ :where(.vds-controls),
603
+ :where(.vds-controls-group) {
604
+ position: relative;
605
+ display: inline-block;
606
+ width: 100%;
607
+ box-sizing: border-box;
608
+ }
609
+
610
+ /*
611
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
612
+ * Audio Controls
613
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
614
+ */
615
+
616
+ :where([data-view-type='audio'] .vds-controls) {
617
+ display: inline-block;
618
+ max-width: 100%;
619
+ }
620
+
621
+ /*
622
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
623
+ * Video Controls
624
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
625
+ */
626
+
627
+ :where([data-view-type='video'] .vds-controls) {
628
+ display: flex;
629
+ position: absolute;
630
+ flex-direction: column;
631
+ inset: 0;
632
+ width: 100%;
633
+ height: 100%;
634
+ z-index: 10;
635
+ opacity: 0;
636
+ visibility: hidden;
637
+ pointer-events: none;
638
+ padding: var(--media-controls-padding, 0px);
639
+ transition: var(--media-controls-out-transition, opacity 0.2s ease-out);
640
+ }
641
+
642
+ :where([data-view-type='video'] .vds-controls[data-visible]) {
643
+ opacity: 1;
644
+ visibility: visible;
645
+ transition: var(--media-controls-in-transition, opacity 0.2s ease-in);
646
+ }
647
+
648
+ :where(.vds-controls-spacer) {
649
+ flex: 1 1 0%;
650
+ pointer-events: none;
651
+ }
652
+
653
+ /*
654
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
655
+ * Gesture
656
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
657
+ */
658
+
659
+ :where(.vds-gestures) {
660
+ display: contents;
661
+ }
662
+
663
+ :where(.vds-gesture) {
664
+ position: absolute;
665
+ display: block;
666
+ contain: content;
667
+ z-index: 0;
668
+ opacity: 0;
669
+ visibility: hidden;
670
+ pointer-events: none !important;
671
+ }
672
+
673
+ :where(.vds-icon svg) {
674
+ display: block;
675
+ width: 100%;
676
+ height: 100%;
677
+ vertical-align: middle;
678
+ }
679
+
680
+ /*
681
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
682
+ * Keyboard Action
683
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
684
+ */
685
+
686
+ :where(.vds-kb-action.hidden) {
687
+ opacity: 0;
688
+ }
689
+
690
+ /*
691
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
692
+ * Keyboard Text
693
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
694
+ */
695
+
696
+ :where(.vds-kb-text-wrapper) {
697
+ text-align: center;
698
+ position: absolute;
699
+ left: 0;
700
+ right: 0;
701
+ top: var(--media-kb-text-top, 10%);
702
+ z-index: 20;
703
+ pointer-events: none;
704
+ }
705
+
706
+ :where(.vds-kb-text) {
707
+ display: inline-block;
708
+ font-size: var(--media-kb-text-size, 150%);
709
+ font-family: var(--media-font-family, sans-serif);
710
+ backdrop-filter: blur(2px);
711
+ border-radius: var(--media-kb-border-radius, 2.5px);
712
+ pointer-events: none;
713
+ }
714
+
715
+ .vds-kb-text {
716
+ color: var(--media-kb-text-color, var(--default-color));
717
+ background-color: var(--media-kb-text-bg, var(--default-bg));
718
+ padding: var(--media-kb-text-padding, 10px 20px);
719
+ }
720
+
721
+ .light .vds-kb-text {
722
+ --default-color: #1a1a1a;
723
+ --default-bg: rgb(240 240 240 / 0.6);
724
+ }
725
+
726
+ .dark .vds-kb-text {
727
+ --default-color: #f5f5f5;
728
+ --default-bg: rgb(10 10 10 / 0.6);
729
+ }
730
+
731
+ :where(.vds-kb-text:empty) {
732
+ display: none;
733
+ }
734
+
735
+ /*
736
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
737
+ * Keyboard Bezel
738
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
739
+ */
740
+
741
+ :where(.vds-kb-bezel) {
742
+ --size: var(--media-kb-bezel-size, 52px);
743
+ position: absolute;
744
+ left: 50%;
745
+ top: 45%;
746
+ display: flex;
747
+ flex-direction: column;
748
+ align-items: center;
749
+ justify-content: center;
750
+ width: var(--size);
751
+ height: var(--size);
752
+ margin-left: calc(-1 * calc(var(--size) / 2));
753
+ margin-right: calc(-1 * calc(var(--size) / 2));
754
+ z-index: 20;
755
+ backdrop-filter: blur(2px);
756
+ background-color: var(--media-kb-bezel-bg, var(--default-bg));
757
+ animation: var(--media-kb-bezel-animation, vds-bezel-fade 0.35s linear 1 normal forwards);
758
+ border-radius: var(--media-kb-bezel-border-radius, calc(var(--size) / 2));
759
+ pointer-events: none;
760
+ }
761
+
762
+ .vds-kb-bezel:not(:has(svg)) {
763
+ display: none !important;
764
+ }
765
+
766
+ .light .vds-kb-bezel {
767
+ --default-bg: rgb(255 255 255 / 0.6);
768
+ }
769
+
770
+ .dark .vds-kb-bezel {
771
+ --default-bg: rgb(10 10 10 / 0.6);
772
+ }
773
+
774
+ @media (prefers-reduced-motion) {
775
+ :where(.vds-kb-bezel) {
776
+ animation: none;
777
+ }
778
+ }
779
+
780
+ :where(.vds-kb-bezel:has(slot:empty)) {
781
+ opacity: 0;
782
+ }
783
+
784
+ :where(.vds-kb-action[data-action='seek-forward'] .vds-kb-bezel) {
785
+ top: 45%;
786
+ left: unset;
787
+ right: 10%;
788
+ }
789
+
790
+ :where(.vds-kb-action[data-action='seek-backward'] .vds-kb-bezel) {
791
+ top: 45%;
792
+ left: 10%;
793
+ }
794
+
795
+ /*
796
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
797
+ * Keyboard Icon
798
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
799
+ */
800
+
801
+ :where(.vds-kb-icon) {
802
+ --size: var(--media-kb-icon-size, 38px);
803
+ width: var(--size);
804
+ height: var(--size);
805
+ }
806
+
807
+ .vds-kb-icon {
808
+ color: var(--media-kb-icon-color, var(--default-color));
809
+ }
810
+
811
+ .light .vds-kb-icon {
812
+ --default-color: #1a1a1a;
813
+ }
814
+
815
+ .dark .vds-kb-icon {
816
+ --default-color: #f5f5f5;
817
+ }
818
+
819
+ @keyframes vds-bezel-fade {
820
+ 0% {
821
+ opacity: 1;
822
+ }
823
+ 100% {
824
+ opacity: 0;
825
+ transform: scale(2);
826
+ }
827
+ }
828
+
829
+ /*
830
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
831
+ * Theme
832
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
833
+ */
834
+
835
+ :where(.vds-menu-items) {
836
+ --color-inverse: var(--media-menu-color-inverse, var(--default-inverse));
837
+ --color-gray-50: var(--media-menu-color-gray-50, var(--default-gray-50));
838
+ --color-gray-100: var(--media-menu-color-gray-100, var(--default-gray-100));
839
+ --color-gray-200: var(--media-menu-color-gray-200, var(--default-gray-200));
840
+ --color-gray-300: var(--media-menu-color-gray-300, var(--default-gray-300));
841
+ --color-gray-400: var(--media-menu-color-gray-400, var(--default-gray-400));
842
+
843
+ --text-color: var(--media-menu-text-color, var(--default-text));
844
+ --text-secondary-color: var(--media-menu-text-secondary-color, var(--default-text-secondary));
845
+
846
+ --root-border: var(--media-menu-border, var(--default-root-border));
847
+ }
848
+
849
+ .light .vds-menu-items {
850
+ --default-inverse: black;
851
+ --default-gray-50: rgb(80 80 80 / 0.15);
852
+ --default-gray-100: rgb(80 80 80 / 0.45);
853
+ --default-gray-200: rgb(235 235 235 / 0.6);
854
+ --default-gray-300: rgb(238 238 238);
855
+ --default-gray-400: rgb(250 250 250);
856
+
857
+ --default-text: #1a1a1a;
858
+ --default-text-secondary: #6b6b6b;
859
+
860
+ --default-root-border: 1px solid rgb(10 10 10 / 0.1);
861
+ }
862
+
863
+ .dark .vds-menu-items {
864
+ --default-inverse: white;
865
+ --default-gray-50: rgb(245 245 245 / 0.1);
866
+ --default-gray-100: rgb(245 245 245 / 0.45);
867
+ --default-gray-200: rgb(10 10 10 / 0.6);
868
+ --default-gray-300: rgb(27 27 27);
869
+ --default-gray-400: rgb(10 10 10);
870
+
871
+ --default-text: #f5f5f5;
872
+ --default-text-secondary: #8a8a8a;
873
+
874
+ --default-root-border: 1px solid rgb(255 255 255 / 0.1);
875
+ }
876
+
877
+ :where(.vds-menu-items) {
878
+ --font-family: var(--media-font-family, sans-serif);
879
+ --font-size: var(--media-menu-font-size, 14px);
880
+ --font-weight: var(--media-menu-font-weight, 500);
881
+
882
+ --root-bg: var(--media-menu-bg, var(--color-gray-400));
883
+ --root-padding: var(--media-menu-padding, 12px);
884
+ --root-border-radius: var(--media-menu-border-radius, 4px);
885
+
886
+ --divider: var(--media-menu-divider, 1px solid var(--color-gray-50));
887
+
888
+ --section-bg: var(--media-menu-section-bg, var(--color-gray-300));
889
+ --section-border: var(--media-menu-section-border);
890
+ --section-divider: var(--media-menu-section-divider, var(--divider));
891
+
892
+ --top-bar-bg: var(--media-menu-top-bar-bg, var(--color-gray-200));
893
+ --top-bar-divider: var(--media-menu-divider, transparent);
894
+
895
+ --text-hint-color: var(--media-menu-hint-color, var(--text-secondary-color));
896
+
897
+ --chapter-divider: var(--media-chapters-divider, var(--divider));
898
+ --chapter-active-bg: var(--media-chapters-item-active-bg, var(--color-gray-50));
899
+ --chapter-active-border-left: var(--media-chapters-item-active-border-left);
900
+
901
+ --chapter-progress-bg: var(--media-chapters-progress-bg, var(--color-inverse));
902
+
903
+ --chapter-time-font-size: var(--media-chapters-time-font-size, 12px);
904
+ --chapter-time-font-weight: var(--media-chapters-time-font-weight, 500);
905
+ --chapter-time-gap: var(--media-chapters-time-gap, 6px);
906
+
907
+ --chapter-duration-bg: var(--media-chapters-duration-bg);
908
+
909
+ --item-border: var(--media-menu-item-border, 0);
910
+ --item-bg: var(--media-menu-item-bg, transparent);
911
+ --item-hover-bg: var(--media-menu-item-hover-bg, var(--color-gray-50));
912
+ --item-icon-size: var(--media-menu-item-icon-size, 18px);
913
+ --item-padding: var(--media-menu-item-padding, 10px);
914
+ --item-min-height: var(--media-menu-item-height, 40px);
915
+ --item-border-radius: var(--media-menu-item-border-radius, 2px);
916
+
917
+ --scrollbar-track-bg: var(--media-menu-scrollbar-track-bg, transparent);
918
+ --scrollbar-thumb-bg: var(--media-menu-scrollbar-thumb-bg, var(--color-gray-50));
919
+ --webkit-scrollbar-bg: var(--color-gray-400);
920
+ --webkit-scrollbar-track-bg: var(--media-menu-scrollbar-track-bg, var(--color-gray-50));
921
+
922
+ --checkbox-bg: var(--media-menu-checkbox-bg, var(--color-gray-100));
923
+ --checkbox-active-bg: var(--media-menu-checkbox-bg-active, #1ba13f);
924
+ --checkbox-handle-bg: var(--media-menu-checkbox-handle-bg, #f5f5f5);
925
+ --checkbox-handle-border: var(--media-menu-checkbox-handle-border);
926
+
927
+ --radio-icon-color: var(--media-menu-radio-icon-color, var(--text-color));
928
+ }
929
+
930
+ /*
931
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
932
+ * Menu
933
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
934
+ */
935
+
936
+ :where(.vds-menu[data-root] media-menu[data-root]) {
937
+ display: contents;
938
+ }
939
+
940
+ :where(.vds-menu) {
941
+ font-family: var(--font-family);
942
+ font-size: var(--font-size);
943
+ font-weight: var(--font-weight);
944
+ }
945
+
946
+ :where(.vds-menu[data-disabled][data-root]) {
947
+ display: none;
948
+ }
949
+
950
+ :where(.vds-menu[data-submenu]) {
951
+ display: inline-block;
952
+ }
953
+
954
+ :where(.vds-menu-items:focus) {
955
+ outline: none;
956
+ }
957
+
958
+ :where(.vds-menu-item:focus, .vds-radio:focus) {
959
+ outline: none;
960
+ }
961
+
962
+ :where(
963
+ .vds-menu-item:focus-visible,
964
+ .vds-menu-item[data-focus],
965
+ .vds-radio:focus-visible,
966
+ .vds-radio[data-focus]
967
+ ) {
968
+ outline: none;
969
+ box-shadow: var(--media-focus-ring);
970
+ }
971
+
972
+ :where(.vds-menu[data-open] .vds-tooltip-content) {
973
+ display: none !important;
974
+ }
975
+
976
+ .vds-menu-items [data-hidden] {
977
+ display: none !important;
978
+ }
979
+
980
+ /*
981
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
982
+ * Scroll
983
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
984
+ */
985
+
986
+ @media (prefers-reduced-motion: no-preference) {
987
+ :where(.vds-menu-items) {
988
+ scroll-behavior: smooth;
989
+ }
990
+ }
991
+
992
+ :where(.vds-menu-items) {
993
+ box-sizing: border-box;
994
+ min-width: var(--media-menu-min-width, 280px);
995
+ scrollbar-width: thin;
996
+ scrollbar-color: var(--scrollbar-thumb-bg) var(--scrollbar-track-bg);
997
+ transform: translate3d(0, 0, 0);
998
+ }
999
+
1000
+ :where(.vds-menu-items)::-webkit-scrollbar {
1001
+ background-color: var(--webkit-scrollbar-bg);
1002
+ border-radius: var(--root-border-radius);
1003
+ height: 6px;
1004
+ width: 5px;
1005
+ }
1006
+
1007
+ :where(.vds-menu-items)::-webkit-scrollbar-track {
1008
+ background-color: var(--webkit-scrollbar-track-bg);
1009
+ border-radius: 4px;
1010
+ }
1011
+
1012
+ :where(.vds-menu-items)::-webkit-scrollbar-thumb {
1013
+ background-color: var(--scrollbar-thumb-bg);
1014
+ border-radius: 4px;
1015
+ }
1016
+
1017
+ :where(.vds-menu-items)::-webkit-scrollbar-corner {
1018
+ background-color: var(--scrollbar-thumb-bg);
1019
+ }
1020
+
1021
+ /*
1022
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1023
+ * Menu Button
1024
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1025
+ */
1026
+
1027
+ :where(.vds-menu-button) {
1028
+ outline: none;
1029
+ box-sizing: border-box;
1030
+ }
1031
+
1032
+ :where(.vds-menu-button .vds-rotate-icon) {
1033
+ transition: transform 0.2s ease-out;
1034
+ }
1035
+
1036
+ :where(.vds-menu-button[aria-expanded='true'] .vds-rotate-icon) {
1037
+ transform: rotate(var(--media-menu-icon-rotate-deg, 90deg));
1038
+ transition: transform 0.2s ease-in;
1039
+ }
1040
+
1041
+ :where(.vds-menu-button) {
1042
+ display: inline-flex;
1043
+ align-items: center;
1044
+ justify-content: center;
1045
+ }
1046
+
1047
+ @media (prefers-reduced-motion) {
1048
+ :where(.vds-menu-button .vds-rotate-icon) {
1049
+ transition: unset;
1050
+ }
1051
+ }
1052
+
1053
+ /*
1054
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1055
+ * Menu Items
1056
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1057
+ */
1058
+
1059
+ :where(.vds-menu-items) {
1060
+ display: flex;
1061
+ align-items: center;
1062
+ flex-direction: column;
1063
+ font-family: var(--font-family);
1064
+ font-size: var(--font-size);
1065
+ font-weight: var(--font-weight);
1066
+ transition: height 0.35s ease;
1067
+ }
1068
+
1069
+ @media (prefers-reduced-motion) {
1070
+ :where(.vds-menu-items) {
1071
+ transition: unset;
1072
+ }
1073
+ }
1074
+
1075
+ :where(.vds-menu-items[data-root]) {
1076
+ background-color: var(--root-bg);
1077
+ border-radius: var(--root-border-radius);
1078
+ box-shadow: var(--media-menu-box-shadow);
1079
+ backdrop-filter: blur(4px);
1080
+ height: var(--menu-height, auto);
1081
+ will-change: width, height;
1082
+ overflow-y: auto;
1083
+ overscroll-behavior: contain;
1084
+ opacity: 0;
1085
+ z-index: 9999999;
1086
+ box-sizing: border-box;
1087
+ max-height: var(--media-menu-max-height, 250px);
1088
+ filter: var(
1089
+ --media-menu-filter,
1090
+ drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06))
1091
+ );
1092
+ }
1093
+
1094
+ @-moz-document url-prefix() {
1095
+ :where(.vds-menu-items[data-root]) {
1096
+ backdrop-filter: none;
1097
+ }
1098
+ }
1099
+
1100
+ .vds-menu-items[data-root] {
1101
+ border: var(--root-border);
1102
+ padding: var(--root-padding);
1103
+ }
1104
+
1105
+ :where([data-view-type='video']) :where(.vds-menu-items[data-root]) {
1106
+ max-height: var(--media-menu-video-max-height, calc(var(--player-height) * 0.7));
1107
+ }
1108
+
1109
+ :where(.vds-menu-items[data-transition='height']) {
1110
+ --scrollbar-thumb-bg: rgba(0, 0, 0, 0);
1111
+ pointer-events: none;
1112
+ overflow: hidden;
1113
+ }
1114
+
1115
+ .vds-menu-button[aria-disabled='true'],
1116
+ .vds-menu-item[aria-disabled='true'],
1117
+ .vds-menu-item[data-disabled] {
1118
+ display: none;
1119
+ }
1120
+
1121
+ /*
1122
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1123
+ * Menu Items Animation
1124
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1125
+ */
1126
+
1127
+ :where(.vds-menu-items[data-root]) {
1128
+ --enter-transform: translateY(0px);
1129
+ --exit-transform: translateY(12px);
1130
+ }
1131
+
1132
+ /* Mobile Popup */
1133
+ :where(.vds-menu-items[data-root]:not([data-placement])) {
1134
+ --enter-transform: translateY(-24px);
1135
+ }
1136
+
1137
+ :where(.vds-menu-items[data-root][aria-hidden='true']) {
1138
+ animation: var(--media-menu-exit-animation, vds-menu-exit 0.2s ease-out);
1139
+ }
1140
+
1141
+ :where(.vds-menu-items[data-root][aria-hidden='false']) {
1142
+ animation: var(--media-menu-enter-animation, vds-menu-enter 0.3s ease-out);
1143
+ animation-fill-mode: forwards;
1144
+ }
1145
+
1146
+ /* Bottom */
1147
+ :where(.vds-menu-items[data-placement~='bottom']) {
1148
+ --enter-transform: translateY(0);
1149
+ --exit-transform: translateY(-12px);
1150
+ }
1151
+
1152
+ @keyframes vds-menu-enter {
1153
+ from {
1154
+ opacity: 0;
1155
+ transform: var(--exit-transform);
1156
+ }
1157
+ to {
1158
+ opacity: 1;
1159
+ transform: var(--enter-transform);
1160
+ }
1161
+ }
1162
+
1163
+ @keyframes vds-menu-exit {
1164
+ from {
1165
+ opacity: 1;
1166
+ transform: var(--enter-transform);
1167
+ }
1168
+ to {
1169
+ opacity: 0;
1170
+ transform: var(--exit-transform);
1171
+ }
1172
+ }
1173
+
1174
+ @media (prefers-reduced-motion) {
1175
+ :where(.vds-menu-items) {
1176
+ animation: none;
1177
+ opacity: 1;
1178
+ }
1179
+ }
1180
+
1181
+ /*
1182
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1183
+ * Menu Portal
1184
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1185
+ */
1186
+
1187
+ :where(media-menu-portal) {
1188
+ display: contents;
1189
+ }
1190
+
1191
+ :where(.vds-menu-items[data-root]:not([data-placement])) {
1192
+ position: fixed;
1193
+ left: 16px;
1194
+ right: 16px;
1195
+ top: unset;
1196
+ bottom: 0;
1197
+ max-height: var(--media-sm-menu-portrait-max-height, 40vh);
1198
+ max-height: var(--media-sm-menu-portrait-max-height, 40dvh);
1199
+ }
1200
+
1201
+ :where(.vds-menu-items[data-root]:not([data-placement])) {
1202
+ max-width: 480px;
1203
+ margin: 0 auto;
1204
+ }
1205
+
1206
+ @media (orientation: landscape) and (pointer: coarse) {
1207
+ :where(.vds-menu-items[data-root]:not([data-placement])) {
1208
+ max-height: var(--media-sm-menu-landscape-max-height, min(70vh, 400px));
1209
+ max-height: var(--media-sm-menu-landscape-max-height, min(70dvh, 400px));
1210
+ }
1211
+ }
1212
+
1213
+ /*
1214
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1215
+ * Submenu
1216
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1217
+ */
1218
+
1219
+ :where(.vds-menu[data-submenu] .vds-menu-button) {
1220
+ display: flex;
1221
+ align-items: center;
1222
+ justify-content: flex-start;
1223
+ }
1224
+
1225
+ :where(.vds-menu-items[data-submenu]) {
1226
+ width: 100%;
1227
+ }
1228
+
1229
+ :where(.vds-menu[aria-hidden='true']),
1230
+ :where(.vds-menu-items[data-submenu][aria-hidden='true']) {
1231
+ display: none;
1232
+ }
1233
+
1234
+ /*
1235
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1236
+ * Menu Item
1237
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1238
+ */
1239
+
1240
+ :where(.vds-menu-item, .vds-radio) {
1241
+ position: relative;
1242
+ -webkit-tap-highlight-color: transparent;
1243
+ user-select: none;
1244
+ display: flex;
1245
+ align-items: center;
1246
+ justify-content: left;
1247
+ width: 100%;
1248
+ appearance: none;
1249
+ border: 0;
1250
+ border-radius: var(--item-border-radius);
1251
+ box-sizing: border-box;
1252
+ min-height: var(--item-min-height);
1253
+ font-size: var(--font-size);
1254
+ outline: none;
1255
+ }
1256
+
1257
+ .vds-menu-item,
1258
+ .vds-radio {
1259
+ color: var(--text-color);
1260
+ background-color: var(--item-bg);
1261
+ padding: var(--item-padding);
1262
+ }
1263
+
1264
+ .vds-menu-item:focus-visible,
1265
+ .vds-menu-item[data-focus],
1266
+ .vds-radio:focus-visible,
1267
+ .vds-radio[data-focus] {
1268
+ cursor: pointer;
1269
+ background-color: var(--item-hover-bg);
1270
+ }
1271
+
1272
+ @media (hover: hover) and (pointer: fine) {
1273
+ .vds-menu-item[role]:hover,
1274
+ .vds-radio:hover {
1275
+ cursor: pointer;
1276
+ background-color: var(--item-hover-bg);
1277
+ }
1278
+ }
1279
+
1280
+ :where(.vds-menu-items[data-submenu]) {
1281
+ align-items: flex-start;
1282
+ justify-content: center;
1283
+ flex-direction: column;
1284
+ }
1285
+
1286
+ :where(.vds-menu-item[aria-expanded='true']) {
1287
+ font-weight: bold;
1288
+ border-radius: 0;
1289
+ border-top-left-radius: var(--item-border-radius);
1290
+ border-top-right-radius: var(--item-border-radius);
1291
+ }
1292
+
1293
+ .vds-menu-item[aria-expanded='true'] {
1294
+ border-bottom: var(--top-bar-divider);
1295
+ }
1296
+
1297
+ :where(.vds-menu-item[aria-expanded='true']) {
1298
+ position: sticky;
1299
+ top: calc(-1 * var(--root-padding));
1300
+ left: 0;
1301
+ width: 100%;
1302
+ z-index: 10;
1303
+ backdrop-filter: blur(4px);
1304
+ margin-bottom: 4px;
1305
+ }
1306
+
1307
+ .vds-menu-item[aria-expanded='true'] {
1308
+ background-color: var(--top-bar-bg);
1309
+ }
1310
+
1311
+ /*
1312
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1313
+ * Menu Item Parts
1314
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1315
+ */
1316
+
1317
+ :where(.vds-menu-item-label) {
1318
+ flex: 1 0 0%;
1319
+ text-align: start;
1320
+ }
1321
+
1322
+ :where(.vds-menu-item .vds-icon, .vds-radio .vds-icon) {
1323
+ --size: var(--item-icon-size);
1324
+ width: var(--size);
1325
+ height: var(--size);
1326
+ margin-right: var(--media-menu-item-icon-spacing, 6px);
1327
+ }
1328
+
1329
+ :where(.vds-menu-open-icon, .vds-menu-close-icon) {
1330
+ --size: var(--media-menu-arrow-icon-size, 18px);
1331
+ width: var(--size);
1332
+ height: var(--size);
1333
+ }
1334
+
1335
+ :where(.vds-menu-item-hint, .vds-menu-open-icon, .vds-radio-hint) {
1336
+ color: var(--text-hint-color);
1337
+ font-size: var(--media-menu-hint-font-size, 13px);
1338
+ font-weight: var(--media-menu-hint-font-weight, 400);
1339
+ }
1340
+
1341
+ :where(.vds-menu-items .vds-menu-open-icon) {
1342
+ margin-right: 0;
1343
+ }
1344
+
1345
+ :where(.vds-menu-items) :where(.vds-menu-item-hint, .vds-menu-open-icon) {
1346
+ margin-left: auto;
1347
+ }
1348
+
1349
+ :where(.vds-menu-items) :where(.vds-menu-item-hint + .vds-menu-open-icon),
1350
+ :where(.vds-menu-item-hint + media-icon .vds-menu-open-icon),
1351
+ :where(.vds-menu-item-hint + slot > .vds-menu-open-icon) {
1352
+ margin-left: 2px;
1353
+ }
1354
+
1355
+ :where(.vds-menu-item[aria-hidden='true']),
1356
+ :where(.vds-menu-item[aria-expanded='true'] .vds-menu-open-icon) {
1357
+ display: none !important;
1358
+ }
1359
+
1360
+ :where(.vds-menu-items)
1361
+ :where(.vds-menu-item[aria-disabled='true'], .vds-menu-item[data-disabled])
1362
+ :where(.vds-menu-open-icon) {
1363
+ opacity: 0;
1364
+ }
1365
+
1366
+ :where(.vds-menu-close-icon),
1367
+ :where(.vds-menu-item[aria-expanded='true'] > .vds-icon) {
1368
+ display: none !important;
1369
+ }
1370
+
1371
+ :where(.vds-menu-item[aria-expanded='true'] .vds-menu-close-icon) {
1372
+ display: inline !important;
1373
+ margin-left: calc(-1 * var(--item-padding) / 2);
1374
+ }
1375
+ /*
1376
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1377
+ * Checkbox
1378
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1379
+ */
1380
+
1381
+ :where(.vds-menu-checkbox) {
1382
+ --checkbox-width: var(--media-menu-checkbox-width, 40px);
1383
+ --checkbox-height: var(--media-menu-checkbox-height, 18px);
1384
+ --checkbox-top: calc((var(--checkbox-height) - var(--checkbox-diameter)) / 2);
1385
+ --checkbox-diameter: var(
1386
+ --media-menu-checkbox-handle-diameter,
1387
+ calc(var(--checkbox-height) - 2px)
1388
+ );
1389
+ --checkbox-gap: var(--media-menu-checkbox-gap, 2.5px);
1390
+ position: relative;
1391
+ display: inline-block;
1392
+ width: var(--checkbox-width);
1393
+ height: var(--checkbox-height);
1394
+ border-radius: calc(var(--checkbox-height) / 2);
1395
+ transition: 0.3s all ease-in-out;
1396
+ box-sizing: border-box;
1397
+ cursor: pointer;
1398
+ pointer-events: auto;
1399
+ }
1400
+
1401
+ .vds-menu-checkbox {
1402
+ background-color: var(--checkbox-bg);
1403
+ }
1404
+
1405
+ :where(.vds-menu-checkbox:focus-visible) {
1406
+ outline: none;
1407
+ box-shadow: var(--media-focus-ring);
1408
+ }
1409
+
1410
+ .vds-menu-checkbox[aria-checked='true'] {
1411
+ background-color: var(--checkbox-active-bg);
1412
+ }
1413
+
1414
+ :where(.vds-menu-checkbox)::after {
1415
+ content: '';
1416
+ display: inline-block;
1417
+ width: var(--checkbox-diameter);
1418
+ height: var(--checkbox-diameter);
1419
+ border-radius: calc(var(--checkbox-diameter) / 2);
1420
+ position: absolute;
1421
+ top: var(--checkbox-top);
1422
+ transform: translateX(var(--checkbox-gap));
1423
+ transition: 0.3s all ease-in-out;
1424
+ border: var(--checkbox-handle-border);
1425
+ box-sizing: border-box;
1426
+ }
1427
+
1428
+ .vds-menu-checkbox::after {
1429
+ background-color: var(--checkbox-handle-bg);
1430
+ }
1431
+
1432
+ :where(.vds-menu-checkbox[aria-checked='true'])::after {
1433
+ transform: translateX(
1434
+ calc(var(--checkbox-width) - var(--checkbox-diameter) - var(--checkbox-gap))
1435
+ );
1436
+ }
1437
+
1438
+ @media (prefers-reduced-motion: no-preference) {
1439
+ :where(.vds-menu-checkbox[data-active])::after {
1440
+ width: calc(var(--checkbox-width) - calc(var(--checkbox-gap) * 2));
1441
+ }
1442
+ }
1443
+
1444
+ :where(.vds-menu-checkbox[aria-checked='true'][data-active])::after {
1445
+ transform: translateX(var(--checkbox-gap));
1446
+ }
1447
+
1448
+ /*
1449
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1450
+ * Slider
1451
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1452
+ */
1453
+
1454
+ :where(.vds-menu-items .vds-slider) {
1455
+ --media-slider-track-bg: var(--media-menu-slider-track-bg, var(--color-gray-50));
1456
+ --media-slider-track-fill-bg: var(--media-menu-slider-track-fill-bg, var(--color-inverse));
1457
+ --media-slider-height: var(--media-menu-slider-height, 32px);
1458
+ --track-focus-height: var(--track-height) !important;
1459
+ }
1460
+
1461
+ :where(.vds-menu-items .vds-slider-thumb) {
1462
+ opacity: 1 !important;
1463
+ }
1464
+
1465
+ :where(.vds-menu-slider-item.group) {
1466
+ flex-direction: column;
1467
+ }
1468
+
1469
+ :where(.vds-menu-slider-title) {
1470
+ margin-top: 4px;
1471
+ }
1472
+
1473
+ :where(.vds-menu-slider-body) {
1474
+ width: 100%;
1475
+ display: flex;
1476
+ align-items: center;
1477
+ margin-top: 6px;
1478
+ }
1479
+
1480
+ :where(.vds-menu-slider-item .vds-icon) {
1481
+ margin: 0;
1482
+ color: var(--text-hint-color);
1483
+ }
1484
+
1485
+ :where(
1486
+ .vds-menu-slider-item[data-min] .vds-icon.down,
1487
+ .vds-menu-slider-item[data-max] .vds-icon.up
1488
+ ) {
1489
+ color: var(--text-color);
1490
+ animation: 0.6s ease-in-out vds-slider-icon;
1491
+ transition: all 1.2s ease;
1492
+ }
1493
+
1494
+ @keyframes vds-slider-icon {
1495
+ 0% {
1496
+ transform: scale(1);
1497
+ }
1498
+ 50% {
1499
+ transform: scale(1.25);
1500
+ }
1501
+ 100% {
1502
+ transform: scale(1);
1503
+ }
1504
+ }
1505
+
1506
+ :where(.vds-menu-items .vds-slider-track-fill) {
1507
+ transition: opacity 0.3s ease;
1508
+ }
1509
+
1510
+ :where(.vds-menu-items .vds-slider[data-active] .vds-slider-track-fill) {
1511
+ opacity: 0;
1512
+ }
1513
+
1514
+ /*
1515
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1516
+ * Radio
1517
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1518
+ */
1519
+
1520
+ :where(.vds-radio-group) {
1521
+ box-sizing: border-box;
1522
+ width: 100%;
1523
+ display: flex;
1524
+ flex-direction: column;
1525
+ }
1526
+
1527
+ .vds-radio {
1528
+ cursor: pointer;
1529
+ contain: content;
1530
+ padding-left: calc(var(--item-icon-size) + var(--item-padding));
1531
+ }
1532
+
1533
+ .vds-radio[aria-checked='true'] {
1534
+ padding-left: 0;
1535
+ }
1536
+
1537
+ .vds-radio .vds-icon {
1538
+ display: none;
1539
+ color: var(--radio-icon-color);
1540
+ }
1541
+
1542
+ .vds-radio[aria-checked='true'] .vds-icon {
1543
+ display: inline-block;
1544
+ margin-left: 6px;
1545
+ }
1546
+
1547
+ :where(.vds-radio-hint) {
1548
+ margin-left: auto;
1549
+ }
1550
+
1551
+ /*
1552
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1553
+ * Color Picker
1554
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1555
+ */
1556
+
1557
+ .vds-color-picker {
1558
+ width: 32px;
1559
+ height: 32px;
1560
+ border: 0;
1561
+ background-color: transparent;
1562
+ outline: none;
1563
+ }
1564
+
1565
+ .vds-color-picker::-webkit-color-swatch {
1566
+ border-radius: 2px;
1567
+ }
1568
+
1569
+ .vds-color-picker::-moz-color-swatch {
1570
+ border-radius: 2px;
1571
+ }
1572
+
1573
+ .vds-color-picker:focus-visible::-webkit-color-swatch {
1574
+ box-shadow: var(--media-focus-ring);
1575
+ }
1576
+
1577
+ .vds-color-picker:focus-visible::-moz-color-swatch {
1578
+ box-shadow: var(--media-focus-ring);
1579
+ }
1580
+
1581
+ /*
1582
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1583
+ * Menu Section
1584
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1585
+ */
1586
+
1587
+ :where(.vds-menu-section) {
1588
+ width: 100%;
1589
+ }
1590
+
1591
+ :where(.vds-menu-item + .vds-menu-section) {
1592
+ margin-top: 8px;
1593
+ }
1594
+
1595
+ :where(.vds-menu-section + .vds-menu-section) {
1596
+ margin-top: 24px;
1597
+ }
1598
+
1599
+ :where(.vds-menu-section:first-child) {
1600
+ margin-top: 8px;
1601
+ }
1602
+
1603
+ :where(.vds-menu-section:last-child) {
1604
+ margin-bottom: 8px;
1605
+ }
1606
+
1607
+ :where(.vds-menu-section-title),
1608
+ :where(.vds-menu-slider-title) {
1609
+ width: 100%;
1610
+ display: flex;
1611
+ align-items: center;
1612
+ justify-content: space-between;
1613
+ color: var(--text-secondary-color);
1614
+ font-size: var(--media-menu-section-header-font-size, 12px);
1615
+ font-weight: var(--media-menu-section-header-font-weight, 500);
1616
+ padding-inline: 2px;
1617
+ }
1618
+
1619
+ :where(.vds-menu-section-body) {
1620
+ width: 100%;
1621
+ }
1622
+
1623
+ :where(.vds-menu-section-title + .vds-menu-section-body) {
1624
+ margin-top: var(--media-menu-section-gap, 8px);
1625
+ }
1626
+
1627
+ .vds-menu-section-body {
1628
+ background-color: var(--section-bg);
1629
+ border: var(--section-border);
1630
+ border-radius: var(--media-menu-section-border-radius, 2px);
1631
+ }
1632
+
1633
+ :where(.vds-menu-section:not([data-open]) .vds-menu-item:not(:last-child)) {
1634
+ border-bottom: var(--section-divider);
1635
+ }
1636
+
1637
+ :where(.vds-menu-section-body .vds-menu:last-child > .vds-menu-item) {
1638
+ border-bottom: unset;
1639
+ }
1640
+
1641
+ .vds-menu-section[data-open],
1642
+ .vds-menu-section[data-open] > .vds-menu-section-body {
1643
+ display: contents !important;
1644
+ background-color: transparent !important;
1645
+ }
1646
+
1647
+ .vds-menu-section[data-open] > .vds-menu-section-title,
1648
+ .vds-menu-section[data-open] > .vds-menu-section-body > :not([data-open]) {
1649
+ display: none;
1650
+ }
1651
+
1652
+ /*
1653
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1654
+ * Chapters Menu
1655
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1656
+ */
1657
+
1658
+ :where(.vds-chapters-menu-items) {
1659
+ min-width: var(--media-chapters-min-width, var(--media-menu-min-width, 220px));
1660
+ }
1661
+
1662
+ .vds-chapters-menu-items {
1663
+ padding: var(--media-chapters-padding, 0);
1664
+ }
1665
+
1666
+ :where(.vds-menu-items:has(.vds-chapters-radio-group[data-thumbnails])) {
1667
+ min-width: var(--media-chapters-with-thumbnails-min-width, 300px);
1668
+ }
1669
+
1670
+ :where(.vds-chapter-radio) {
1671
+ border-radius: 0;
1672
+ }
1673
+
1674
+ .vds-chapter-radio {
1675
+ border-bottom: var(--chapter-divider);
1676
+ padding: var(--item-padding);
1677
+ }
1678
+
1679
+ .vds-chapter-radio[aria-checked='true'] {
1680
+ padding-left: var(--item-padding);
1681
+ }
1682
+
1683
+ :where(.vds-chapter-radio:last-child) {
1684
+ border-bottom: 0;
1685
+ }
1686
+
1687
+ .vds-chapter-radio[aria-checked='true'] {
1688
+ background-color: var(--chapter-active-bg);
1689
+ border-left: var(--chapter-active-border-left);
1690
+ }
1691
+
1692
+ :where(.vds-chapter-radio[aria-checked='true']):after {
1693
+ content: ' ';
1694
+ width: var(--progress);
1695
+ height: var(--media-chapters-progress-height, 4px);
1696
+ position: absolute;
1697
+ bottom: 0;
1698
+ left: 0;
1699
+ }
1700
+
1701
+ .vds-chapter-radio[aria-checked='true']:after {
1702
+ border-radius: var(--media-chapters-progress-border-radius, 0);
1703
+ background-color: var(--chapter-progress-bg);
1704
+ }
1705
+
1706
+ .vds-chapters-radio-group :where(.vds-thumbnail) {
1707
+ margin-right: var(--media-chapters-thumbnail-gap, 12px);
1708
+ flex-shrink: 0;
1709
+ min-width: var(--media-chapters-thumbnail-min-width, 100px);
1710
+ min-height: var(--media-chapters-thumbnail-min-height, 56px);
1711
+ max-width: var(--media-chapters-thumbnail-max-width, 120px);
1712
+ max-height: var(--media-chapters-thumbnail-max-height, 68px);
1713
+ }
1714
+
1715
+ .vds-chapters-radio-group .vds-thumbnail {
1716
+ border: var(--media-chapters-thumbnail-border, 0);
1717
+ }
1718
+
1719
+ :where(.vds-chapters-radio-group .vds-chapter-radio-label) {
1720
+ color: var(--text-secondary-color);
1721
+ font-size: var(--font-size);
1722
+ font-weight: var(--font-weight);
1723
+ white-space: nowrap;
1724
+ }
1725
+
1726
+ :where(.vds-chapter-radio[aria-checked='true'] .vds-chapter-radio-label) {
1727
+ color: var(--text-color);
1728
+ }
1729
+
1730
+ :where(.vds-chapters-radio-group .vds-chapter-radio-start-time) {
1731
+ display: inline-block;
1732
+ letter-spacing: var(--media-chapters-start-time-letter-spacing, 0.4px);
1733
+ border-radius: var(--media-chapters-start-time-border-radius, 2px);
1734
+ font-size: var(--chapter-time-font-size);
1735
+ font-weight: var(--chapter-time-font-weight);
1736
+ margin-top: var(--chapter-time-gap);
1737
+ }
1738
+
1739
+ .vds-chapters-radio-group .vds-chapter-radio-start-time {
1740
+ color: var(--text-secondary-color);
1741
+ background-color: var(--section-bg);
1742
+ padding: var(--media-chapters-start-time-padding, 1px 4px);
1743
+ }
1744
+
1745
+ :where(.vds-chapters-radio-group .vds-chapter-radio-duration) {
1746
+ color: var(--text-hint-color);
1747
+ font-size: var(--chapter-time-font-size);
1748
+ font-weight: var(--chapter-time-font-weight);
1749
+ margin-top: var(--chapter-time-gap);
1750
+ }
1751
+
1752
+ .vds-chapters-radio-group .vds-chapter-radio-duration {
1753
+ background-color: var(--chapter-duration-bg);
1754
+ border-radius: var(--media-chapters-duration-border-radius, 2px);
1755
+ }
1756
+
1757
+ .vds-chapters-radio-group:not([data-thumbnails]) :where(.vds-thumbnail, media-thumbnail) {
1758
+ display: none;
1759
+ }
1760
+
1761
+ :where(.vds-chapter-radio-content) {
1762
+ display: flex;
1763
+ align-items: flex-start;
1764
+ flex-direction: column;
1765
+ }
1766
+
1767
+ :where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-content) {
1768
+ width: 100%;
1769
+ flex-direction: row;
1770
+ display: flex;
1771
+ flex-wrap: wrap;
1772
+ align-items: center;
1773
+ }
1774
+
1775
+ :where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-start-time) {
1776
+ margin-top: 0;
1777
+ margin-left: auto;
1778
+ }
1779
+
1780
+ :where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-duration) {
1781
+ margin-top: 4px;
1782
+ flex-basis: 100%;
1783
+ }
1784
+
1785
+ .vds-menu-items[data-keyboard] .vds-chapters-radio-group:focus-within {
1786
+ padding: var(--media-chapters-focus-padding, 4px);
1787
+ }
1788
+
1789
+ /*
1790
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1791
+ * Poster
1792
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1793
+ */
1794
+
1795
+ :where(.vds-poster) {
1796
+ display: block;
1797
+ contain: content;
1798
+ position: absolute;
1799
+ top: 50%;
1800
+ transform: translateY(-50%);
1801
+ left: 0;
1802
+ opacity: 0;
1803
+ width: 100%;
1804
+ height: 100%;
1805
+ z-index: 1;
1806
+ border: 0;
1807
+ pointer-events: none;
1808
+ box-sizing: border-box;
1809
+ transition: opacity 0.2s ease-out;
1810
+ background-color: var(--media-poster-bg, black);
1811
+ }
1812
+
1813
+ :where(.vds-poster img) {
1814
+ object-fit: inherit;
1815
+ object-position: inherit;
1816
+ pointer-events: none;
1817
+ user-select: none;
1818
+ -webkit-user-select: none;
1819
+ box-sizing: border-box;
1820
+ }
1821
+
1822
+ .vds-poster :where(img) {
1823
+ border: 0;
1824
+ width: 100%;
1825
+ height: 100%;
1826
+ object-fit: contain;
1827
+ }
1828
+
1829
+ :where(.vds-poster[data-hidden]) {
1830
+ display: none;
1831
+ }
1832
+
1833
+ :where(.vds-poster[data-visible]) {
1834
+ opacity: 1;
1835
+ }
1836
+
1837
+ .vds-poster:not(:defined),
1838
+ .vds-poster img:not([src]) {
1839
+ display: none;
1840
+ }
1841
+
1842
+ /*
1843
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1844
+ * Sliders
1845
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1846
+ */
1847
+
1848
+ :where(.vds-slider) {
1849
+ --width: var(--media-slider-width, 100%);
1850
+ --height: var(--media-slider-height, 48px);
1851
+
1852
+ --thumb-size: var(--media-slider-thumb-size, 15px);
1853
+ --thumb-focus-size: var(--media-slider-focused-thumb-size, calc(var(--thumb-size) * 1.1));
1854
+
1855
+ --track-width: var(--media-slider-track-width, 100%);
1856
+ --track-height: var(--media-slider-track-height, 5px);
1857
+ --track-focus-width: var(--media-slider-focused-track-width, var(--track-width));
1858
+ --track-focus-height: var(--media-slider-focused-track-height, calc(var(--track-height) * 1.25));
1859
+
1860
+ display: inline-flex;
1861
+ align-items: center;
1862
+ width: var(--width);
1863
+ height: var(--height);
1864
+ /** Prevent thumb flowing out of slider. */
1865
+ margin: 0 calc(var(--thumb-size) / 2);
1866
+ position: relative;
1867
+ contain: layout style;
1868
+ outline: none;
1869
+ pointer-events: auto;
1870
+ cursor: pointer;
1871
+ user-select: none;
1872
+ touch-action: none;
1873
+ -webkit-user-select: none;
1874
+ -webkit-tap-highlight-color: transparent;
1875
+ }
1876
+
1877
+ :where(.vds-slider[aria-hidden='true']) {
1878
+ display: none !important;
1879
+ }
1880
+
1881
+ :where(.vds-slider[aria-disabled='true']) {
1882
+ cursor: unset;
1883
+ }
1884
+
1885
+ :where(.vds-slider:focus) {
1886
+ outline: none;
1887
+ }
1888
+
1889
+ :where(.vds-slider:not([data-chapters])[data-focus], .vds-slider:not([data-chapters]):focus-visible)
1890
+ :where(.vds-slider-track) {
1891
+ box-shadow: var(--media-focus-ring);
1892
+ }
1893
+
1894
+ :where(.vds-slider .vds-slider-track) {
1895
+ z-index: 0;
1896
+ position: absolute;
1897
+ width: var(--track-width);
1898
+ height: var(--track-height);
1899
+ top: 50%;
1900
+ left: 0;
1901
+ border-radius: var(--media-slider-track-border-radius, 2px);
1902
+ transform: translateY(-50%) translateZ(0);
1903
+ background-color: var(--media-slider-track-bg, rgb(255 255 255 / 0.3));
1904
+ contain: strict;
1905
+ }
1906
+
1907
+ :where(.vds-slider[data-focus], .vds-slider:focus-visible) :where(.vds-slider-track) {
1908
+ outline-offset: var(--thumb-size);
1909
+ }
1910
+
1911
+ :where(.vds-slider:not([data-chapters])[data-active] .vds-slider-track) {
1912
+ width: var(--track-focus-width);
1913
+ height: var(--track-focus-height);
1914
+ }
1915
+
1916
+ :where(.vds-slider .vds-slider-track-fill) {
1917
+ z-index: 2; /** above track and track progress. */
1918
+ background-color: var(--media-slider-track-fill-bg, var(--media-brand));
1919
+ width: var(--slider-fill, 0%);
1920
+ will-change: width;
1921
+ }
1922
+
1923
+ :where(.vds-slider .vds-slider-thumb) {
1924
+ position: absolute;
1925
+ top: 50%;
1926
+ left: var(--slider-fill);
1927
+ opacity: 0;
1928
+ contain: layout size style;
1929
+ width: var(--thumb-size);
1930
+ height: var(--thumb-size);
1931
+ border: var(--media-slider-thumb-border, 1px solid #cacaca);
1932
+ border-radius: var(--media-slider-thumb-border-radius, 9999px);
1933
+ background-color: var(--media-slider-thumb-bg, #fff);
1934
+ transform: translate(-50%, -50%) translateZ(0);
1935
+ transition: opacity 0.15s ease-in;
1936
+ pointer-events: none;
1937
+ will-change: left;
1938
+ z-index: 2; /** above track fill. */
1939
+ }
1940
+
1941
+ :where(.vds-slider[data-dragging], .vds-slider[data-focus], .vds-slider:focus-visible)
1942
+ :where(.vds-slider-thumb) {
1943
+ box-shadow: var(--media-slider-focused-thumb-shadow, 0 0 0 4px hsla(0, 0%, 100%, 0.4));
1944
+ }
1945
+
1946
+ :where(.vds-slider[data-active] .vds-slider-thumb) {
1947
+ opacity: 1;
1948
+ transition: var(--media-slider-thumb-transition, opacity 0.2s ease-in, box-shadow 0.2s ease);
1949
+ }
1950
+
1951
+ :where(.vds-slider[data-dragging] .vds-slider-thumb) {
1952
+ width: var(--thumb-focus-size);
1953
+ height: var(--thumb-focus-size);
1954
+ }
1955
+
1956
+ /*
1957
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1958
+ * Slider Value
1959
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1960
+ */
1961
+
1962
+ :where(.vds-slider-value) {
1963
+ display: inline-block;
1964
+ contain: content;
1965
+ font-size: 14px;
1966
+ font-family: var(--media-font-family, sans-serif);
1967
+ }
1968
+
1969
+ /*
1970
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1971
+ * Slider Thumbnail
1972
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1973
+ */
1974
+
1975
+ :where(.vds-slider-thumbnail) {
1976
+ display: block;
1977
+ contain: content;
1978
+ box-sizing: border-box;
1979
+ }
1980
+
1981
+ /*
1982
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1983
+ * Slider Video
1984
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1985
+ */
1986
+
1987
+ :where(.vds-slider-video) {
1988
+ background-color: black;
1989
+ box-sizing: border-box;
1990
+ contain: content;
1991
+ display: inline-block;
1992
+ border: var(--media-thumbnail-border, 1px solid white);
1993
+ }
1994
+
1995
+ :where(.vds-slider-video video) {
1996
+ display: block;
1997
+ height: auto;
1998
+ width: 156px;
1999
+ }
2000
+
2001
+ /* Temporarily hide video while loading. */
2002
+ :where(.vds-slider-video[data-loading]) {
2003
+ opacity: 0;
2004
+ }
2005
+
2006
+ /* Hide video if it fails to load. */
2007
+ :where(.vds-slider-video[data-hidden], .vds-slider-video[data-hidden] video) {
2008
+ display: none;
2009
+ width: 0px;
2010
+ }
2011
+
2012
+ /*
2013
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2014
+ * Previews
2015
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2016
+ */
2017
+
2018
+ :where(.vds-slider .vds-slider-preview) {
2019
+ display: flex;
2020
+ flex-direction: column;
2021
+ align-items: center;
2022
+ opacity: 0;
2023
+ background-color: var(--media-slider-preview-bg);
2024
+ border-radius: var(--media-slider-preview-border-radius, 2px);
2025
+ pointer-events: none;
2026
+ transition: opacity 0.2s ease-out;
2027
+ will-change: left, opacity;
2028
+ contain: layout paint style;
2029
+ }
2030
+
2031
+ :where(.vds-slider-preview[data-visible]) {
2032
+ opacity: 1;
2033
+ transition: opacity 0.2s ease-in;
2034
+ }
2035
+
2036
+ .vds-slider-value {
2037
+ background-color: var(--media-slider-value-bg, black);
2038
+ border-radius: var(--media-slider-value-border-radius, 2px);
2039
+ border: var(--media-slider-value-border);
2040
+ color: var(--media-slider-value-color, white);
2041
+ padding: var(--media-slider-value-padding, 1px 10px);
2042
+ }
2043
+
2044
+ :where(
2045
+ .vds-slider-video:not([data-hidden]) + .vds-slider-chapter-title,
2046
+ .vds-slider-thumbnail:not([data-hidden]) + .vds-slider-chapter-title
2047
+ ) {
2048
+ margin-top: var(--media-slider-chapter-title-gap, 6px);
2049
+ }
2050
+
2051
+ :where(
2052
+ .vds-slider-video:not([data-hidden]) + .vds-slider-value,
2053
+ .vds-slider-thumbnail:not([data-hidden]) + .vds-slider-value,
2054
+ .vds-slider-chapter-title + .vds-slider-value
2055
+ ) {
2056
+ margin-top: var(--media-slider-value-gap, 2px);
2057
+ }
2058
+
2059
+ /*
2060
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2061
+ * Vertical Sliders
2062
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2063
+ */
2064
+
2065
+ :where(.vds-slider[aria-orientation='vertical']) {
2066
+ --width: var(--media-slider-width, 48px);
2067
+ --height: var(--media-slider-height, 100%);
2068
+
2069
+ --track-width: var(--media-slider-track-width, 4px);
2070
+ --track-height: var(--media-slider-track-height, 100%);
2071
+ --track-focus-width: var(--media-slider-focused-track-width, calc(var(--track-width) * 1.25));
2072
+ --track-focus-height: var(--media-slider-focused-track-height, var(--track-height));
2073
+
2074
+ /** Prevent thumb flowing out of slider. */
2075
+ margin: calc(var(--thumb-size) / 2) 0;
2076
+ }
2077
+
2078
+ :where(.vds-slider[aria-orientation='vertical'] .vds-slider-track) {
2079
+ top: unset;
2080
+ bottom: 0;
2081
+ left: 50%;
2082
+ transform: translateX(-50%) translateZ(0);
2083
+ }
2084
+
2085
+ :where(.vds-slider[aria-orientation='vertical'] .vds-slider-track-fill) {
2086
+ width: var(--track-width);
2087
+ height: var(--slider-fill);
2088
+ will-change: height;
2089
+ transform: translateX(-50%) translateZ(0);
2090
+ }
2091
+
2092
+ :where(.vds-slider[aria-orientation='vertical'] .vds-slider-progress) {
2093
+ top: unset;
2094
+ bottom: 0;
2095
+ width: var(--track-width);
2096
+ height: var(--slider-progress, 0%);
2097
+ will-change: height;
2098
+ }
2099
+
2100
+ :where(.vds-slider[aria-orientation='vertical'] .vds-slider-thumb) {
2101
+ top: unset;
2102
+ bottom: var(--slider-fill);
2103
+ left: 50%;
2104
+ will-change: bottom;
2105
+ transform: translate(-50%, 50%) translateZ(0);
2106
+ }
2107
+
2108
+ :where(.vds-slider[aria-orientation='vertical'] .vds-slider-preview) {
2109
+ will-change: bottom, opacity;
2110
+ }
2111
+
2112
+ /*
2113
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2114
+ * Time Slider
2115
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2116
+ */
2117
+
2118
+ :where([data-live] .vds-time-slider .vds-slider-track-fill) {
2119
+ background-color: var(--media-slider-track-fill-live-bg, #dc2626);
2120
+ }
2121
+
2122
+ :where(.vds-time-slider .vds-slider-progress) {
2123
+ z-index: 1; /** above track. */
2124
+ left: 0;
2125
+ width: var(--slider-progress, 0%);
2126
+ will-change: width;
2127
+ background-color: var(--media-slider-track-progress-bg, rgb(255 255 255 / 0.5));
2128
+ }
2129
+
2130
+ :where([data-media-player]:not([data-can-play]) .vds-time-slider .vds-slider-value) {
2131
+ display: none;
2132
+ }
2133
+
2134
+ /*
2135
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2136
+ * Slider Steps
2137
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2138
+ */
2139
+
2140
+ :where(.vds-slider-steps) {
2141
+ display: flex;
2142
+ align-items: center;
2143
+ justify-content: space-between;
2144
+ width: 100%;
2145
+ height: 100%;
2146
+ position: absolute;
2147
+ top: 0;
2148
+ left: 0;
2149
+ }
2150
+
2151
+ :where(.vds-slider-step) {
2152
+ width: var(--media-slider-step-width, 2.5px);
2153
+ height: calc(var(--track-height) + 1px);
2154
+ background-color: var(--media-slider-step-color, rgb(124, 124, 124));
2155
+ opacity: 0;
2156
+ transition: opacity 0.3s ease;
2157
+ }
2158
+
2159
+ :where(.vds-slider[data-active] .vds-slider-step) {
2160
+ opacity: 1;
2161
+ }
2162
+
2163
+ /*
2164
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2165
+ * Slider Chapters
2166
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2167
+ */
2168
+
2169
+ :where(.vds-time-slider .vds-slider-chapters) {
2170
+ position: relative;
2171
+ display: flex;
2172
+ align-items: center;
2173
+ width: 100%;
2174
+ height: 100%;
2175
+ contain: layout style;
2176
+ border-radius: var(--media-slider-track-border-radius, 1px);
2177
+ }
2178
+
2179
+ :where(.vds-slider[data-focus], .vds-slider:focus-visible) :where(.vds-slider-chapters) {
2180
+ box-shadow: var(--media-focus-ring);
2181
+ height: var(--track-height);
2182
+ }
2183
+
2184
+ :where(.vds-time-slider .vds-slider-chapter) {
2185
+ margin-right: 2px;
2186
+ }
2187
+
2188
+ :where(.vds-time-slider .vds-slider-chapter:last-child) {
2189
+ margin-right: 0;
2190
+ }
2191
+
2192
+ :where(.vds-time-slider .vds-slider-chapter) {
2193
+ position: relative;
2194
+ display: flex;
2195
+ align-items: center;
2196
+ width: 100%;
2197
+ height: 100%;
2198
+ will-change: height, transform;
2199
+ contain: layout style;
2200
+ border-radius: var(--media-slider-track-border-radius, 1px);
2201
+ }
2202
+
2203
+ :where(.vds-time-slider .vds-slider-chapter .vds-slider-track-fill) {
2204
+ width: var(--chapter-fill, 0%);
2205
+ will-change: width;
2206
+ }
2207
+
2208
+ :where(.vds-time-slider .vds-slider-chapter .vds-slider-progress) {
2209
+ width: var(--chapter-progress, 0%);
2210
+ will-change: width;
2211
+ }
2212
+
2213
+ @media (hover: hover) and (pointer: fine) {
2214
+ :where(.vds-time-slider:hover .vds-slider-chapters) {
2215
+ contain: strict;
2216
+ }
2217
+
2218
+ :where(.vds-time-slider .vds-slider-chapter:hover:not(:only-of-type)) {
2219
+ transform: var(--media-slider-chapter-hover-transform, scaleY(2));
2220
+ transition: var(
2221
+ --media-slider-chapter-hover-transition,
2222
+ transform 0.1s cubic-bezier(0.4, 0, 1, 1)
2223
+ );
2224
+ }
2225
+ }
2226
+
2227
+ :where(.vds-time-slider .vds-slider-chapter-title) {
2228
+ font-family: var(--media-font-family, sans-serif);
2229
+ font-size: var(--media-slider-chapter-title-font-size, 14px);
2230
+ color: var(--media-slider-chapter-title-color, #f5f5f5);
2231
+ background-color: var(--media-slider-chapter-title-bg);
2232
+ }
2233
+
2234
+ /*
2235
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2236
+ * Thumbnail
2237
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2238
+ */
2239
+
2240
+ :where(.vds-thumbnail) {
2241
+ --min-width: var(--media-thumbnail-min-width, 140px);
2242
+ --max-width: var(--media-thumbnail-max-width, 180px);
2243
+ --aspect-ratio: var(--media-thumbnail-aspect-ratio, var(--thumbnail-aspect-ratio));
2244
+ display: block;
2245
+ width: var(--thumbnail-width);
2246
+ height: var(--thumbnail-height);
2247
+ background-color: var(--media-thumbnail-bg, black);
2248
+ contain: strict;
2249
+ overflow: hidden;
2250
+ box-sizing: border-box;
2251
+ min-width: var(--min-width);
2252
+ min-height: var(--media-thumbnail-min-height, calc(var(--min-width) / var(--aspect-ratio)));
2253
+ max-width: var(--max-width);
2254
+ max-height: var(--media-thumbnail-max-height, calc(var(--max-width) / var(--aspect-ratio)));
2255
+ }
2256
+
2257
+ .vds-thumbnail {
2258
+ border: var(--media-thumbnail-border, 1px solid white);
2259
+ }
2260
+
2261
+ :where(.vds-thumbnail img) {
2262
+ min-width: unset !important;
2263
+ max-width: unset !important;
2264
+ will-change: width, height, transform;
2265
+ }
2266
+
2267
+ :where(.vds-thumbnail[data-loading] img) {
2268
+ opacity: 0;
2269
+ }
2270
+
2271
+ :where(.vds-thumbnail[aria-hidden='true']) {
2272
+ display: none !important;
2273
+ }
2274
+
2275
+ /*
2276
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2277
+ * Time
2278
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2279
+ */
2280
+
2281
+ :where(.vds-time-group) {
2282
+ display: flex;
2283
+ align-items: center;
2284
+ }
2285
+
2286
+ .vds-time-divider {
2287
+ margin: 0 var(--media-time-divider-gap, 2.5px);
2288
+ color: var(--media-time-divider-color, #e0e0e0);
2289
+ }
2290
+
2291
+ :where(.vds-time) {
2292
+ display: inline-block;
2293
+ contain: content;
2294
+ font-size: var(--media-time-font-size, 15px);
2295
+ font-weight: var(--media-time-font-weight, 400);
2296
+ font-family: var(--media-font-family, sans-serif);
2297
+ border-radius: var(--media-time-border-radius, 2px);
2298
+ letter-spacing: var(--media-time-letter-spacing, 0.025em);
2299
+ }
2300
+
2301
+ .vds-time {
2302
+ outline: 0;
2303
+ color: var(--media-time-color, var(--default-color));
2304
+ background-color: var(--media-time-bg);
2305
+ border: var(--media-time-border);
2306
+ padding: var(--media-time-padding, 2px);
2307
+ }
2308
+
2309
+ :where(.vds-time:focus-visible) {
2310
+ box-shadow: var(--media-focus-ring);
2311
+ }
2312
+
2313
+ .light .vds-time {
2314
+ --default-color: rgb(10 10 10);
2315
+ }
2316
+
2317
+ .dark .vds-time {
2318
+ --default-color: #f5f5f5;
2319
+ }
2320
+
2321
+ /*
2322
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2323
+ * Tooltips
2324
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2325
+ */
2326
+
2327
+ :where(.vds-tooltip, media-tooltip) {
2328
+ display: contents;
2329
+ }
2330
+
2331
+ :where(.vds-tooltip-content) {
2332
+ display: inline-block;
2333
+ box-sizing: border-box;
2334
+ font-family: var(--media-font-family, sans-serif);
2335
+ font-size: var(--media-tooltip-font-size, 13px);
2336
+ font-weight: var(--media-tooltip-font-weight, 500);
2337
+ opacity: 0;
2338
+ pointer-events: none;
2339
+ white-space: nowrap;
2340
+ z-index: 10;
2341
+ will-change: transform, opacity;
2342
+ }
2343
+
2344
+ .vds-tooltip-content {
2345
+ border-radius: var(--media-tooltip-border-radius, 2px);
2346
+ background-color: var(--media-tooltip-bg-color, var(--default-bg));
2347
+ border: var(--media-tooltip-border, var(--default-border));
2348
+ color: var(--media-tooltip-color, var(--default-color));
2349
+ padding: var(--media-tooltip-padding, 2px 8px);
2350
+ }
2351
+
2352
+ .light .vds-tooltip-content {
2353
+ --default-color: #1a1a1a;
2354
+ --default-bg: white;
2355
+ --default-border: 1px solid rgb(0 0 0 / 0.2);
2356
+ }
2357
+
2358
+ .dark .vds-tooltip-content {
2359
+ --default-color: #f5f5f5;
2360
+ --default-bg: black;
2361
+ --default-border: 1px solid rgb(255 255 255 / 0.1);
2362
+ }
2363
+
2364
+ :where(.vds-menu .vds-menu-button[role='button'][data-pressed] .vds-tooltip-content) {
2365
+ opacity: 0;
2366
+ display: none;
2367
+ }
2368
+
2369
+ /*
2370
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2371
+ * Tooltip Animation
2372
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2373
+ */
2374
+
2375
+ :where(.vds-tooltip-content) {
2376
+ --enter-transform: translateY(0px) scale(1);
2377
+ --exit-transform: translateY(12px) scale(0.8);
2378
+ }
2379
+
2380
+ :where(.vds-tooltip-content:not([data-visible])) {
2381
+ animation: var(--media-tooltip-exit-animation, vds-tooltip-exit 0.2s ease-out);
2382
+ }
2383
+
2384
+ :where(.vds-tooltip-content[data-visible]) {
2385
+ animation: var(--media-tooltip-enter-animation, vds-tooltip-enter 0.2s ease-in);
2386
+ animation-fill-mode: forwards;
2387
+ }
2388
+
2389
+ /* Bottom */
2390
+ :where(.vds-tooltip-content[data-placement~='bottom']) {
2391
+ --enter-transform: translateY(0) scale(1);
2392
+ --exit-transform: translateY(-12px) scale(0.8);
2393
+ }
2394
+
2395
+ /* Left */
2396
+ :where(.vds-tooltip-content[data-placement~='left']) {
2397
+ --enter-transform: translateX(0) scale(1);
2398
+ --exit-transform: translateX(12px) scale(0.8);
2399
+ }
2400
+
2401
+ /* Right */
2402
+ :where(.vds-tooltip-content[data-placement~='right']) {
2403
+ --enter-transform: translateX(0) scale(1);
2404
+ --exit-transform: translateX(-12px) scale(0.8);
2405
+ }
2406
+
2407
+ @keyframes vds-tooltip-enter {
2408
+ from {
2409
+ opacity: 0;
2410
+ transform: var(--exit-transform);
2411
+ }
2412
+ to {
2413
+ opacity: 1;
2414
+ transform: var(--enter-transform);
2415
+ }
2416
+ }
2417
+
2418
+ @keyframes vds-tooltip-exit {
2419
+ from {
2420
+ opacity: 1;
2421
+ transform: var(--enter-transform);
2422
+ }
2423
+ to {
2424
+ opacity: 0;
2425
+ transform: var(--exit-transform);
2426
+ }
2427
+ }
2428
+
2429
+ @media (prefers-reduced-motion) {
2430
+ :where(.vds-tooltip-content) {
2431
+ animation: none;
2432
+ }
2433
+
2434
+ :where(.vds-tooltip-content[data-visible]) {
2435
+ opacity: 1;
2436
+ }
2437
+ }
2438
+
2439
+ /*
2440
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2441
+ * States
2442
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2443
+ */
2444
+
2445
+ /* Play Button */
2446
+ [data-media-player]:not([data-paused]) .vds-play-tooltip-text,
2447
+ [data-media-player][data-paused] .vds-pause-tooltip-text,
2448
+ /* PIP Button */
2449
+ [data-media-player][data-pip] .vds-pip-enter-tooltip-text,
2450
+ [data-media-player]:not([data-pip]) .vds-pip-exit-tooltip-text,
2451
+ /* Fullscreen Button */
2452
+ [data-media-player][data-fullscreen] .vds-fs-enter-tooltip-text,
2453
+ [data-media-player]:not([data-fullscreen]) .vds-fs-exit-tooltip-text,
2454
+ /* Caption Button */
2455
+ [data-media-player]:not([data-captions]) .vds-cc-on-tooltip-text,
2456
+ [data-media-player][data-captions] .vds-cc-off-tooltip-text,
2457
+ /* Mute Button */
2458
+ [data-media-player]:not([data-muted]) .vds-mute-tooltip-text,
2459
+ [data-media-player][data-muted] .vds-unmute-tooltip-text {
2460
+ display: none;
2461
+ }