@locpd/vidstack 1.12.14

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 (242) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -0
  3. package/analyze.json.d.ts +8 -0
  4. package/bundle.d.ts +1 -0
  5. package/cdn/chunks/vidstack-2f5gzOW6.js +1 -0
  6. package/cdn/chunks/vidstack-BYgY9wmd.js +1 -0
  7. package/cdn/chunks/vidstack-BfBBPhXV.js +1 -0
  8. package/cdn/chunks/vidstack-Bjo5esRp.js +1 -0
  9. package/cdn/chunks/vidstack-BuL67v3q.js +1 -0
  10. package/cdn/chunks/vidstack-C0msPRTd.js +3 -0
  11. package/cdn/chunks/vidstack-CJNLoJPa.js +1 -0
  12. package/cdn/chunks/vidstack-CQSpZ7X8.js +16 -0
  13. package/cdn/chunks/vidstack-C_AxqLKV.js +1 -0
  14. package/cdn/chunks/vidstack-CioT3Yw2.js +1 -0
  15. package/cdn/chunks/vidstack-CrqkytHl.js +1 -0
  16. package/cdn/chunks/vidstack-D0M8R0ZU.js +1 -0
  17. package/cdn/chunks/vidstack-D40FSa5B.js +3 -0
  18. package/cdn/chunks/vidstack-DD2JwFVU.js +1 -0
  19. package/cdn/chunks/vidstack-DRH_1tFW.js +1 -0
  20. package/cdn/chunks/vidstack-DfDZuHNP.js +1 -0
  21. package/cdn/chunks/vidstack-DiNS2Vx5.js +1 -0
  22. package/cdn/chunks/vidstack-xjJ-ui_l.js +1 -0
  23. package/cdn/providers/vidstack-audio-2Dt_Ivbp.js +1 -0
  24. package/cdn/providers/vidstack-dash-CUtD4e6q.js +1 -0
  25. package/cdn/providers/vidstack-google-cast-BdORATUX.js +1 -0
  26. package/cdn/providers/vidstack-hls-R25Kb6DP.js +1 -0
  27. package/cdn/providers/vidstack-html-DaAUJYsD.js +1 -0
  28. package/cdn/providers/vidstack-video-Csvox7SO.js +1 -0
  29. package/cdn/providers/vidstack-vimeo-D4Z96kg2.js +1 -0
  30. package/cdn/providers/vidstack-youtube-DiND6h3s.js +1 -0
  31. package/cdn/vidstack.js +1 -0
  32. package/cdn/with-layouts/chunks/vidstack-2f5gzOW6.js +1 -0
  33. package/cdn/with-layouts/chunks/vidstack-45yH5los.js +1 -0
  34. package/cdn/with-layouts/chunks/vidstack-BBVMdOnf.js +1 -0
  35. package/cdn/with-layouts/chunks/vidstack-BB_ulI_T.js +1 -0
  36. package/cdn/with-layouts/chunks/vidstack-BcAewM33.js +1 -0
  37. package/cdn/with-layouts/chunks/vidstack-BfBBPhXV.js +1 -0
  38. package/cdn/with-layouts/chunks/vidstack-Bxv1Qnxe.js +1 -0
  39. package/cdn/with-layouts/chunks/vidstack-C2ZbG62f.js +3 -0
  40. package/cdn/with-layouts/chunks/vidstack-CCYIOKgL.js +1 -0
  41. package/cdn/with-layouts/chunks/vidstack-CL6PeIO1.js +1 -0
  42. package/cdn/with-layouts/chunks/vidstack-C_AxqLKV.js +1 -0
  43. package/cdn/with-layouts/chunks/vidstack-CifDkwDH.js +795 -0
  44. package/cdn/with-layouts/chunks/vidstack-Cry7aD59.js +3 -0
  45. package/cdn/with-layouts/chunks/vidstack-D065okCn.js +1 -0
  46. package/cdn/with-layouts/chunks/vidstack-DGuMoXmI.js +1 -0
  47. package/cdn/with-layouts/chunks/vidstack-DRH_1tFW.js +1 -0
  48. package/cdn/with-layouts/chunks/vidstack-DVBs1XoQ.js +1 -0
  49. package/cdn/with-layouts/chunks/vidstack-Dge3KT8k.js +1 -0
  50. package/cdn/with-layouts/chunks/vidstack-DiNS2Vx5.js +1 -0
  51. package/cdn/with-layouts/chunks/vidstack-HvYfJoen.js +1 -0
  52. package/cdn/with-layouts/providers/vidstack-audio-DE5vKIzW.js +1 -0
  53. package/cdn/with-layouts/providers/vidstack-dash-CA2agUuZ.js +1 -0
  54. package/cdn/with-layouts/providers/vidstack-google-cast-CGs-t8HM.js +1 -0
  55. package/cdn/with-layouts/providers/vidstack-hls-BHMbMFFR.js +1 -0
  56. package/cdn/with-layouts/providers/vidstack-html-Dm9gmNk6.js +1 -0
  57. package/cdn/with-layouts/providers/vidstack-video-C5it_Lbl.js +1 -0
  58. package/cdn/with-layouts/providers/vidstack-vimeo-BabLn9sy.js +1 -0
  59. package/cdn/with-layouts/providers/vidstack-youtube-D8UlccUL.js +1 -0
  60. package/cdn/with-layouts/vidstack.js +1 -0
  61. package/dev/chunks/vidstack-B7Zi3v_O.js +104 -0
  62. package/dev/chunks/vidstack-BFg1ZqiG.js +91 -0
  63. package/dev/chunks/vidstack-BGB2pa9s.js +58 -0
  64. package/dev/chunks/vidstack-BaIbHZE3.js +1519 -0
  65. package/dev/chunks/vidstack-Bb2rASIc.js +5188 -0
  66. package/dev/chunks/vidstack-Bcmx8pmK.js +224 -0
  67. package/dev/chunks/vidstack-Bl4b0Nen.js +29 -0
  68. package/dev/chunks/vidstack-Bo5OTJ06.js +58 -0
  69. package/dev/chunks/vidstack-BoAGnlRt.js +58 -0
  70. package/dev/chunks/vidstack-Bpr4fI4n.js +7 -0
  71. package/dev/chunks/vidstack-Bt8MP2DK.js +204 -0
  72. package/dev/chunks/vidstack-Bu2kfzUd.js +1637 -0
  73. package/dev/chunks/vidstack-C-ffXlSV.js +2995 -0
  74. package/dev/chunks/vidstack-C-ztJq-f.js +109 -0
  75. package/dev/chunks/vidstack-CFNlaVTR.js +55 -0
  76. package/dev/chunks/vidstack-C_l97D5j.js +254 -0
  77. package/dev/chunks/vidstack-CjhKISI0.js +114 -0
  78. package/dev/chunks/vidstack-CofXIJAy.js +57 -0
  79. package/dev/chunks/vidstack-CwTj4H1w.js +18 -0
  80. package/dev/chunks/vidstack-DDwbYVHV.js +66 -0
  81. package/dev/chunks/vidstack-DFImIcIL.js +11 -0
  82. package/dev/chunks/vidstack-DGDvUbvO.js +33 -0
  83. package/dev/chunks/vidstack-DO0kqA99.js +107 -0
  84. package/dev/chunks/vidstack-DXxIKXmd.js +50 -0
  85. package/dev/chunks/vidstack-DajrMUR0.js +297 -0
  86. package/dev/chunks/vidstack-DbBJlz7I.js +10 -0
  87. package/dev/chunks/vidstack-Dihypf8P.js +11 -0
  88. package/dev/chunks/vidstack-DlAhl87f.js +1193 -0
  89. package/dev/chunks/vidstack-Dm1xEU9Q.js +34 -0
  90. package/dev/chunks/vidstack-Dv_LIPFu.js +14 -0
  91. package/dev/chunks/vidstack-igYn0Apa.js +254 -0
  92. package/dev/chunks/vidstack-krOAtKMi.js +32 -0
  93. package/dev/chunks/vidstack-qh1N5_f_.js +26 -0
  94. package/dev/chunks/vidstack-rB-wqXw1.js +107 -0
  95. package/dev/chunks/vidstack-zG6PIeGg.js +66 -0
  96. package/dev/define/plyr-layout.js +51 -0
  97. package/dev/define/templates/plyr-layout.js +571 -0
  98. package/dev/define/templates/vidstack-audio-layout.js +167 -0
  99. package/dev/define/templates/vidstack-video-layout.js +390 -0
  100. package/dev/define/vidstack-icons.js +1 -0
  101. package/dev/define/vidstack-player-default-layout.js +21 -0
  102. package/dev/define/vidstack-player-layouts.js +25 -0
  103. package/dev/define/vidstack-player-ui.js +70 -0
  104. package/dev/define/vidstack-player.js +19 -0
  105. package/dev/global/plyr.js +501 -0
  106. package/dev/global/vidstack-player.js +129 -0
  107. package/dev/providers/vidstack-audio.js +35 -0
  108. package/dev/providers/vidstack-dash.js +516 -0
  109. package/dev/providers/vidstack-google-cast.js +474 -0
  110. package/dev/providers/vidstack-hls.js +408 -0
  111. package/dev/providers/vidstack-html.js +567 -0
  112. package/dev/providers/vidstack-video.js +207 -0
  113. package/dev/providers/vidstack-vimeo.js +554 -0
  114. package/dev/providers/vidstack-youtube.js +286 -0
  115. package/dev/vidstack-elements.js +36 -0
  116. package/dev/vidstack.js +91 -0
  117. package/dom.d.ts +91 -0
  118. package/elements.d.ts +1433 -0
  119. package/empty.vtt +1 -0
  120. package/global/player.d.ts +52 -0
  121. package/global/plyr.d.ts +343 -0
  122. package/google-cast.d.ts +1422 -0
  123. package/icons.d.ts +1 -0
  124. package/index.d.ts +402 -0
  125. package/package.json +199 -0
  126. package/player/index.d.ts +3 -0
  127. package/player/layouts/default.d.ts +3 -0
  128. package/player/layouts/index.d.ts +3 -0
  129. package/player/layouts/plyr.d.ts +3 -0
  130. package/player/styles/base.css +153 -0
  131. package/player/styles/default/buffering.css +55 -0
  132. package/player/styles/default/buttons.css +175 -0
  133. package/player/styles/default/captions.css +181 -0
  134. package/player/styles/default/chapter-title.css +26 -0
  135. package/player/styles/default/controls.css +56 -0
  136. package/player/styles/default/gestures.css +19 -0
  137. package/player/styles/default/icons.css +6 -0
  138. package/player/styles/default/keyboard.css +148 -0
  139. package/player/styles/default/layouts/audio.css +417 -0
  140. package/player/styles/default/layouts/video.css +590 -0
  141. package/player/styles/default/menus.css +959 -0
  142. package/player/styles/default/poster.css +52 -0
  143. package/player/styles/default/sliders.css +391 -0
  144. package/player/styles/default/theme.css +2461 -0
  145. package/player/styles/default/thumbnail.css +40 -0
  146. package/player/styles/default/time.css +45 -0
  147. package/player/styles/default/tooltips.css +141 -0
  148. package/player/styles/plyr/theme.css +1237 -0
  149. package/player/ui.d.ts +3 -0
  150. package/plugins.d.ts +19 -0
  151. package/plugins.js +13 -0
  152. package/prod/chunks/vidstack-B01xzxC4.js +7 -0
  153. package/prod/chunks/vidstack-BCeb7ryV.js +201 -0
  154. package/prod/chunks/vidstack-BGSTndAW.js +1590 -0
  155. package/prod/chunks/vidstack-BPitBBjh.js +1519 -0
  156. package/prod/chunks/vidstack-BQlOPwOu.js +45 -0
  157. package/prod/chunks/vidstack-BSDzlwxO.js +4778 -0
  158. package/prod/chunks/vidstack-BT0m6zEi.js +109 -0
  159. package/prod/chunks/vidstack-BTigPj2h.js +55 -0
  160. package/prod/chunks/vidstack-BiyXcJ_M.js +107 -0
  161. package/prod/chunks/vidstack-BoVf5n1M.js +2985 -0
  162. package/prod/chunks/vidstack-Bq6c3Bam.js +58 -0
  163. package/prod/chunks/vidstack-ByLCIBtB.js +297 -0
  164. package/prod/chunks/vidstack-C2US-gSO.js +248 -0
  165. package/prod/chunks/vidstack-C9vIqaYT.js +10 -0
  166. package/prod/chunks/vidstack-CF6fixCQ.js +1193 -0
  167. package/prod/chunks/vidstack-CTojmhKq.js +66 -0
  168. package/prod/chunks/vidstack-ChQTHmIQ.js +77 -0
  169. package/prod/chunks/vidstack-Cm6_unwd.js +246 -0
  170. package/prod/chunks/vidstack-CwTj4H1w.js +18 -0
  171. package/prod/chunks/vidstack-D3ltXc3a.js +33 -0
  172. package/prod/chunks/vidstack-D5EzK014.js +14 -0
  173. package/prod/chunks/vidstack-DDXt6fpN.js +58 -0
  174. package/prod/chunks/vidstack-DJDnh4xT.js +11 -0
  175. package/prod/chunks/vidstack-DXxIKXmd.js +50 -0
  176. package/prod/chunks/vidstack-D_-9AA6_.js +29 -0
  177. package/prod/chunks/vidstack-DbkZGjSn.js +107 -0
  178. package/prod/chunks/vidstack-Dihypf8P.js +11 -0
  179. package/prod/chunks/vidstack-Dm1xEU9Q.js +34 -0
  180. package/prod/chunks/vidstack-Dq5Yu0Vr.js +205 -0
  181. package/prod/chunks/vidstack-DqAw8m9J.js +26 -0
  182. package/prod/chunks/vidstack-DsPOyKtl.js +57 -0
  183. package/prod/chunks/vidstack-krOAtKMi.js +32 -0
  184. package/prod/chunks/vidstack-nLyr4NEP.js +58 -0
  185. package/prod/chunks/vidstack-xMS8dnYq.js +114 -0
  186. package/prod/chunks/vidstack-yEGTpgeA.js +104 -0
  187. package/prod/define/plyr-layout.js +51 -0
  188. package/prod/define/templates/plyr-layout.js +571 -0
  189. package/prod/define/templates/vidstack-audio-layout.js +167 -0
  190. package/prod/define/templates/vidstack-video-layout.js +390 -0
  191. package/prod/define/vidstack-icons.js +1 -0
  192. package/prod/define/vidstack-player-default-layout.js +21 -0
  193. package/prod/define/vidstack-player-layouts.js +25 -0
  194. package/prod/define/vidstack-player-ui.js +70 -0
  195. package/prod/define/vidstack-player.js +19 -0
  196. package/prod/global/plyr.js +493 -0
  197. package/prod/global/vidstack-player.js +129 -0
  198. package/prod/providers/vidstack-audio.js +35 -0
  199. package/prod/providers/vidstack-dash.js +501 -0
  200. package/prod/providers/vidstack-google-cast.js +468 -0
  201. package/prod/providers/vidstack-hls.js +393 -0
  202. package/prod/providers/vidstack-html.js +555 -0
  203. package/prod/providers/vidstack-video.js +204 -0
  204. package/prod/providers/vidstack-vimeo.js +548 -0
  205. package/prod/providers/vidstack-youtube.js +286 -0
  206. package/prod/vidstack-elements.js +36 -0
  207. package/prod/vidstack.js +158 -0
  208. package/server/chunks/vidstack-6juFdkKy.js +29 -0
  209. package/server/chunks/vidstack-B7iHmv7_.js +307 -0
  210. package/server/chunks/vidstack-BmxyML9v.js +1619 -0
  211. package/server/chunks/vidstack-BskfxwD3.js +566 -0
  212. package/server/chunks/vidstack-BvLV0SMz.js +4642 -0
  213. package/server/chunks/vidstack-BvWwluXZ.js +205 -0
  214. package/server/chunks/vidstack-C-413dj2.js +8 -0
  215. package/server/chunks/vidstack-C26K8z_-.js +55 -0
  216. package/server/chunks/vidstack-CJJiksDz.js +107 -0
  217. package/server/chunks/vidstack-CUNv52x1.js +141 -0
  218. package/server/chunks/vidstack-CqyBCODe.js +295 -0
  219. package/server/chunks/vidstack-CwTj4H1w.js +18 -0
  220. package/server/chunks/vidstack-DHAyGSOl.js +1502 -0
  221. package/server/chunks/vidstack-DLU3cjcp.js +381 -0
  222. package/server/chunks/vidstack-DXxIKXmd.js +50 -0
  223. package/server/chunks/vidstack-DbtDXDS2.js +104 -0
  224. package/server/chunks/vidstack-Dm1xEU9Q.js +34 -0
  225. package/server/chunks/vidstack-DzTHw_bw.js +207 -0
  226. package/server/chunks/vidstack-Wn3NH5Sg.js +1566 -0
  227. package/server/chunks/vidstack-krOAtKMi.js +32 -0
  228. package/server/chunks/vidstack-wNViAkr4.js +3045 -0
  229. package/server/define/plyr-layout.js +16 -0
  230. package/server/define/vidstack-icons.js +1 -0
  231. package/server/define/vidstack-player-default-layout.js +13 -0
  232. package/server/define/vidstack-player-layouts.js +16 -0
  233. package/server/define/vidstack-player-ui.js +11 -0
  234. package/server/define/vidstack-player.js +6 -0
  235. package/server/global/plyr.js +322 -0
  236. package/server/global/vidstack-player.js +58 -0
  237. package/server/vidstack-elements.js +46 -0
  238. package/server/vidstack.js +148 -0
  239. package/tailwind.cjs +101 -0
  240. package/tailwind.d.cts +15 -0
  241. package/types/vidstack-BOvzfZjK.d.ts +1269 -0
  242. package/types/vidstack-Cttpg6GU.d.ts +7474 -0
@@ -0,0 +1,148 @@
1
+ /*
2
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
+ * Keyboard Action
4
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
+ */
6
+
7
+ :where(.vds-kb-action.hidden) {
8
+ opacity: 0;
9
+ }
10
+
11
+ /*
12
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13
+ * Keyboard Text
14
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15
+ */
16
+
17
+ :where(.vds-kb-text-wrapper) {
18
+ text-align: center;
19
+ position: absolute;
20
+ left: 0;
21
+ right: 0;
22
+ top: var(--media-kb-text-top, 10%);
23
+ z-index: 20;
24
+ pointer-events: none;
25
+ }
26
+
27
+ :where(.vds-kb-text) {
28
+ display: inline-block;
29
+ font-size: var(--media-kb-text-size, 150%);
30
+ font-family: var(--media-font-family, sans-serif);
31
+ backdrop-filter: blur(2px);
32
+ border-radius: var(--media-kb-border-radius, 2.5px);
33
+ pointer-events: none;
34
+ }
35
+
36
+ .vds-kb-text {
37
+ color: var(--media-kb-text-color, var(--default-color));
38
+ background-color: var(--media-kb-text-bg, var(--default-bg));
39
+ padding: var(--media-kb-text-padding, 10px 20px);
40
+ }
41
+
42
+ .light .vds-kb-text {
43
+ --default-color: #1a1a1a;
44
+ --default-bg: rgb(240 240 240 / 0.6);
45
+ }
46
+
47
+ .dark .vds-kb-text {
48
+ --default-color: #f5f5f5;
49
+ --default-bg: rgb(10 10 10 / 0.6);
50
+ }
51
+
52
+ :where(.vds-kb-text:empty) {
53
+ display: none;
54
+ }
55
+
56
+ /*
57
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58
+ * Keyboard Bezel
59
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60
+ */
61
+
62
+ :where(.vds-kb-bezel) {
63
+ --size: var(--media-kb-bezel-size, 52px);
64
+ position: absolute;
65
+ left: 50%;
66
+ top: 45%;
67
+ display: flex;
68
+ flex-direction: column;
69
+ align-items: center;
70
+ justify-content: center;
71
+ width: var(--size);
72
+ height: var(--size);
73
+ margin-left: calc(-1 * calc(var(--size) / 2));
74
+ margin-right: calc(-1 * calc(var(--size) / 2));
75
+ z-index: 20;
76
+ backdrop-filter: blur(2px);
77
+ background-color: var(--media-kb-bezel-bg, var(--default-bg));
78
+ animation: var(--media-kb-bezel-animation, vds-bezel-fade 0.35s linear 1 normal forwards);
79
+ border-radius: var(--media-kb-bezel-border-radius, calc(var(--size) / 2));
80
+ pointer-events: none;
81
+ }
82
+
83
+ .vds-kb-bezel:not(:has(svg)) {
84
+ display: none !important;
85
+ }
86
+
87
+ .light .vds-kb-bezel {
88
+ --default-bg: rgb(255 255 255 / 0.6);
89
+ }
90
+
91
+ .dark .vds-kb-bezel {
92
+ --default-bg: rgb(10 10 10 / 0.6);
93
+ }
94
+
95
+ @media (prefers-reduced-motion) {
96
+ :where(.vds-kb-bezel) {
97
+ animation: none;
98
+ }
99
+ }
100
+
101
+ :where(.vds-kb-bezel:has(slot:empty)) {
102
+ opacity: 0;
103
+ }
104
+
105
+ :where(.vds-kb-action[data-action='seek-forward'] .vds-kb-bezel) {
106
+ top: 45%;
107
+ left: unset;
108
+ right: 10%;
109
+ }
110
+
111
+ :where(.vds-kb-action[data-action='seek-backward'] .vds-kb-bezel) {
112
+ top: 45%;
113
+ left: 10%;
114
+ }
115
+
116
+ /*
117
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
118
+ * Keyboard Icon
119
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120
+ */
121
+
122
+ :where(.vds-kb-icon) {
123
+ --size: var(--media-kb-icon-size, 38px);
124
+ width: var(--size);
125
+ height: var(--size);
126
+ }
127
+
128
+ .vds-kb-icon {
129
+ color: var(--media-kb-icon-color, var(--default-color));
130
+ }
131
+
132
+ .light .vds-kb-icon {
133
+ --default-color: #1a1a1a;
134
+ }
135
+
136
+ .dark .vds-kb-icon {
137
+ --default-color: #f5f5f5;
138
+ }
139
+
140
+ @keyframes vds-bezel-fade {
141
+ 0% {
142
+ opacity: 1;
143
+ }
144
+ 100% {
145
+ opacity: 0;
146
+ transform: scale(2);
147
+ }
148
+ }
@@ -0,0 +1,417 @@
1
+ /*
2
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
+ * Audio Layout
4
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
+ */
6
+
7
+ [data-media-player] .vds-audio-layout:not([data-match]) {
8
+ display: none !important;
9
+ }
10
+
11
+ :where([data-media-player][data-layout='audio']) {
12
+ border-radius: var(--audio-border-radius, 6px);
13
+ }
14
+
15
+ :where(.vds-audio-layout) {
16
+ position: relative;
17
+ display: inline-flex;
18
+ align-items: center;
19
+ min-width: 100%;
20
+ height: 60px;
21
+ color: var(--audio-controls-color, var(--default-color));
22
+ background-color: var(--audio-bg, var(--default-bg));
23
+ border-radius: var(--audio-border-radius, 6px);
24
+ box-sizing: border-box;
25
+ filter: var(
26
+ --audio-filter,
27
+ drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06))
28
+ );
29
+ }
30
+
31
+ .vds-audio-layout {
32
+ border: var(--audio-border, 1px solid rgb(255 255 255 / 0.1));
33
+ }
34
+
35
+ :where([data-media-player][data-focus]:not([data-playing]) .vds-audio-layout) {
36
+ box-shadow: var(--media-focus-ring);
37
+ }
38
+
39
+ :where(.vds-audio-layout) {
40
+ --media-brand: var(--audio-brand, var(--default-brand));
41
+ --media-font-family: var(--audio-font-family, sans-serif);
42
+ --media-controls-color: var(--audio-controls-color, var(--default-controls-color));
43
+ --media-menu-y-offset: 18px;
44
+ --media-tooltip-y-offset: 18px;
45
+ --media-slider-track-bg: var(--audio-slider-track-bg, var(--default-slider-track-bg));
46
+ --media-slider-track-fill-bg: var(--audio-slider-track-bg, var(--media-brand));
47
+ --media-slider-track-progress-bg: var(
48
+ --audio-slider-progress-bg,
49
+ var(--default-slider-progress-bg)
50
+ );
51
+ --media-slider-value-border: var(--audio-slider-value-border, 1px solid rgb(255 255 255 / 0.1));
52
+ --media-slider-value-gap: var(--audio-slider-value-gap, 6px);
53
+ --media-focus-ring-color: var(--audio-focus-ring-color, rgb(78 156 246));
54
+ --media-focus-ring: var(--audio-focus-ring, 0 0 0 3px var(--media-focus-ring-color));
55
+ }
56
+
57
+ .vds-audio-layout.light,
58
+ .light .vds-audio-layout {
59
+ --default-brand: rgb(10 10 10);
60
+ --default-color: rgb(10 10 10);
61
+ --default-bg: rgb(250 250 250);
62
+ --default-controls-color: rgb(10 10 10);
63
+ --default-border: 1px solid rgb(100 100 100 /0.2);
64
+ --default-slider-track-bg: rgb(50 50 50 / 0.1);
65
+ --default-slider-progress-bg: rgb(10 10 10 / 0.2);
66
+ }
67
+
68
+ .vds-audio-layout.dark,
69
+ .dark .vds-audio-layout {
70
+ --default-brand: #f5f5f5;
71
+ --default-color: #f5f5f5;
72
+ --default-controls-color: #f5f5f5;
73
+ --default-bg: black;
74
+ --default-slider-track-bg: rgb(255 255 255 / 0.3);
75
+ --default-slider-progress-bg: rgb(255 255 255 / 0.5);
76
+ }
77
+
78
+ /*
79
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80
+ * Controls
81
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82
+ */
83
+
84
+ .vds-audio-layout .vds-controls {
85
+ padding-inline: 6px;
86
+ border-radius: var(--audio-border-radius, 6px);
87
+ }
88
+
89
+ :where(.vds-audio-layout .vds-controls-group) {
90
+ display: flex;
91
+ align-items: center;
92
+ pointer-events: auto;
93
+ width: 100%;
94
+ }
95
+
96
+ :where(.vds-audio-layout .vds-button) {
97
+ width: var(--audio-button-size, 36px);
98
+ height: var(--audio-button-size, 36px);
99
+ margin-right: 2.5px;
100
+ }
101
+
102
+ /*
103
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104
+ * Buttons
105
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
106
+ */
107
+
108
+ :where(.vds-audio-layout .vds-play-tooltip) {
109
+ --media-tooltip-y-offset: 18px;
110
+ }
111
+
112
+ :where(.vds-audio-layout .vds-button) {
113
+ transition: max-width 140ms ease-in;
114
+ max-width: var(--audio-button-size, 36px);
115
+ }
116
+
117
+ :where(.vds-audio-layout .vds-play-button) {
118
+ --media-button-hover-transform: 0;
119
+ --media-button-border: var(--audio-play-button-border, var(--color));
120
+ --media-button-hover-bg: var(--bg-color);
121
+ --media-button-touch-hover-bg: var(--bg-color);
122
+ width: var(--audio-play-button-size, 32px);
123
+ height: var(--audio-play-button-size, 32px);
124
+ border-radius: var(--audio-play-button-border-radius, 100%);
125
+ pointer-events: auto;
126
+ margin-bottom: 2px;
127
+ overflow: hidden;
128
+ }
129
+
130
+ .vds-audio-layout .vds-play-button {
131
+ color: var(--audio-play-button-color, var(--default-color));
132
+ background-color: var(--audio-play-button-bg, var(--default-bg));
133
+ }
134
+
135
+ .light .vds-audio-layout .vds-play-button,
136
+ .vds-audio-layout.light .vds-play-button {
137
+ --default-color: #f5f5f5;
138
+ --default-bg: var(--media-brand);
139
+ }
140
+
141
+ .dark .vds-audio-layout .vds-play-button,
142
+ .vds-audio-layout.dark .vds-play-button {
143
+ --default-color: rgb(10 10 10);
144
+ --default-bg: var(--media-brand);
145
+ }
146
+
147
+ :where(.vds-audio-layout .vds-caption-button:not([data-active])) {
148
+ opacity: var(--audio-caption-button-off-opacity, 0.64);
149
+ }
150
+
151
+ :where(.vds-audio-layout .vds-live-button) {
152
+ margin-right: 8px;
153
+ }
154
+
155
+ :where(.vds-audio-layout .vds-seek-button) {
156
+ max-width: 0px;
157
+ visibility: hidden;
158
+ }
159
+
160
+ :where([data-playing] .vds-audio-layout .vds-seek-button) {
161
+ max-width: var(--audio-button-size, 36px);
162
+ visibility: visible;
163
+ }
164
+
165
+ :where(.vds-audio-layout .vds-settings-menu .vds-button) {
166
+ margin-right: 0;
167
+ }
168
+
169
+ @media (pointer: coarse) {
170
+ :where(.vds-audio-layout .vds-caption-button) {
171
+ display: none;
172
+ }
173
+ }
174
+
175
+ /*
176
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
177
+ * Title
178
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
179
+ */
180
+
181
+ :where(.vds-audio-layout .vds-title) {
182
+ display: flex;
183
+ align-items: center;
184
+ position: relative;
185
+ margin-left: 6px;
186
+ margin-right: auto;
187
+ max-width: 100%;
188
+ opacity: 1;
189
+ transition:
190
+ max-width 150ms ease-in,
191
+ opacity 150ms ease-in;
192
+ overflow: hidden;
193
+ text-wrap: nowrap;
194
+ white-space: nowrap;
195
+ transition-delay: 75ms;
196
+ }
197
+
198
+ :where([data-playing] .vds-audio-layout .vds-title) {
199
+ opacity: 0;
200
+ margin: 0;
201
+ max-width: 0px;
202
+ transition: none;
203
+ transition-delay: 0;
204
+ }
205
+
206
+ :where(.vds-audio-layout .vds-title-text) {
207
+ display: inline-flex;
208
+ align-items: center;
209
+ }
210
+
211
+ :where(.vds-audio-layout .vds-marquee .vds-title-text) {
212
+ animation: vds-marquee 8s linear infinite;
213
+ }
214
+
215
+ :where(.vds-audio-layout .vds-title:hover *) {
216
+ animation-play-state: paused;
217
+ }
218
+
219
+ :where(.vds-audio-layout .vds-title-text:nth-child(2)) {
220
+ margin-left: 16px;
221
+ }
222
+
223
+ @keyframes vds-marquee {
224
+ from {
225
+ transform: translateX(0%);
226
+ }
227
+ to {
228
+ transform: translateX(calc(-100% - 16px));
229
+ }
230
+ }
231
+
232
+ /*
233
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234
+ * Time
235
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
236
+ */
237
+
238
+ :where(.vds-audio-layout .vds-time) {
239
+ margin-inline: 8px;
240
+ transition: max-width 140ms ease-in;
241
+ font-size: var(--audio-time-font-size, 15px);
242
+ }
243
+
244
+ /*
245
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
246
+ * Time Slider
247
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
248
+ */
249
+
250
+ :where(.vds-audio-layout .vds-time-slider) {
251
+ --media-slider-preview-offset: 14px;
252
+ opacity: 0;
253
+ max-width: 0px;
254
+ transform: scaleX(0);
255
+ transform-origin: center left;
256
+ transition: none;
257
+ visibility: hidden;
258
+ }
259
+
260
+ :where([data-media-player]:not([data-paused]) .vds-audio-layout .vds-time-slider) {
261
+ opacity: 1;
262
+ max-width: 100%;
263
+ transform: scaleX(1);
264
+ transition:
265
+ opacity 150ms ease-in,
266
+ transform 150ms ease-in;
267
+ transition-delay: 75ms;
268
+ visibility: visible;
269
+ }
270
+
271
+ :where(.vds-audio-layout .vds-slider-chapter-title) {
272
+ color: var(--audio-slider-chapter-title-color, black);
273
+ }
274
+
275
+ :where(.dark .vds-audio-layout .vds-slider-chapter-title) {
276
+ color: var(--audio-slider-chapter-title-color, white);
277
+ }
278
+
279
+ :where([data-buffering] .vds-audio-layout .vds-slider-progress) {
280
+ --stripe-color: var(--audio-buffering-stripe-color, rgb(0 0 0 / 0.25));
281
+ --stripe-size: var(--audio-buffering-stripe-size, 30px);
282
+ width: 100% !important;
283
+ background-image: linear-gradient(
284
+ -45deg,
285
+ var(--stripe-color) 25%,
286
+ transparent 25%,
287
+ transparent 50%,
288
+ var(--stripe-color) 50%,
289
+ var(--stripe-color) 75%,
290
+ transparent 75%,
291
+ transparent
292
+ );
293
+ background-size: var(--stripe-size) var(--stripe-size);
294
+ animation: vds-audio-track-progress var(--audio-buffering-stripe-speed, 2s) linear infinite;
295
+ }
296
+
297
+ @keyframes vds-audio-track-progress {
298
+ 0% {
299
+ background-position: 0 0;
300
+ }
301
+ 100% {
302
+ background-position: var(--stripe-size) var(--stripe-size);
303
+ }
304
+ }
305
+
306
+ /*
307
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
308
+ * Volume Slider
309
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
310
+ */
311
+
312
+ :where(.vds-audio-layout .vds-volume) {
313
+ --media-slider-height: var(--audio-volume-height, 96px);
314
+ --media-slider-preview-offset: 6px;
315
+ --gap: var(--audio-volume-gap, 16px);
316
+ position: relative;
317
+ display: flex;
318
+ align-items: center;
319
+ justify-content: center;
320
+ }
321
+
322
+ :where(.vds-audio-layout .vds-volume-popup) {
323
+ position: absolute;
324
+ bottom: calc(100% + var(--gap));
325
+ left: 50%;
326
+ opacity: 0;
327
+ transform: translateX(-50%);
328
+ transition:
329
+ opacity 150ms ease-out,
330
+ visibility 150ms ease-out;
331
+ border-radius: var(--audio-volume-border-radius, 8px);
332
+ filter: var(--media-volume-filter, drop-shadow(0 1px 1px rgb(0 0 0 / 0.05)));
333
+ visibility: hidden;
334
+ }
335
+
336
+ /* safe area. */
337
+ .vds-audio-layout .vds-volume-popup::after {
338
+ content: '';
339
+ position: fixed;
340
+ bottom: calc(-1 * var(--gap));
341
+ right: 0;
342
+ width: 100%;
343
+ height: var(--gap);
344
+ z-index: 1;
345
+ pointer-events: auto;
346
+ }
347
+
348
+ .vds-audio-layout .vds-volume-popup {
349
+ background-color: var(--audio-volume-bg, var(--media-menu-bg, var(--default-bg)));
350
+ border: var(--audio-volume-border, var(--default-border));
351
+ }
352
+
353
+ .light .vds-audio-layout .vds-volume-popup,
354
+ .vds-audio-layout.light .vds-volume-popup {
355
+ --default-bg: rgb(250 250 250);
356
+ --default-border: 1px solid rgb(10 10 10 / 0.1);
357
+ }
358
+
359
+ .dark .vds-audio-layout .vds-volume-popup,
360
+ .vds-audio-layout.dark .vds-volume-popup {
361
+ --default-bg: rgb(10 10 10);
362
+ --default-border: 1px solid rgb(255 255 255 / 0.1);
363
+ }
364
+
365
+ :where(.vds-audio-layout .vds-volume[data-active] .vds-volume-popup),
366
+ :where(.vds-audio-layout .vds-volume:has([data-active]) .vds-volume-popup) {
367
+ transition:
368
+ opacity 150ms ease-in,
369
+ visibility 150ms ease-in;
370
+ opacity: 1;
371
+ visibility: visible;
372
+ }
373
+
374
+ :where(.vds-audio-layout .vds-volume[data-active] .vds-tooltip-content) {
375
+ display: none !important;
376
+ }
377
+
378
+ /*
379
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
380
+ * Menus
381
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
382
+ */
383
+
384
+ :where(.vds-audio-layout .vds-menu-items[data-root]) {
385
+ max-height: var(--audio-menu-max-height, 320px);
386
+ }
387
+
388
+ /*
389
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
390
+ * Captions
391
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
392
+ */
393
+
394
+ :where(.vds-audio-layout .vds-captions) {
395
+ --cue-font-size: calc(var(--audio-cue-font-size, 14px) * var(--media-user-font-size, 1));
396
+ display: inline-block;
397
+ position: absolute;
398
+ width: 100%;
399
+ top: unset;
400
+ bottom: calc(100% + var(--audio-captions-offset, 4px));
401
+ text-align: center;
402
+ background-color: var(--media-user-display-bg, var(--media-cue-display-bg));
403
+ }
404
+
405
+ :where([data-preview] .vds-audio-layout .vds-captions),
406
+ :where([data-paused] .vds-audio-layout .vds-captions) {
407
+ opacity: 0;
408
+ }
409
+
410
+ @media (pointer: coarse) {
411
+ .vds-audio-layout[data-scrubbing] :where(.vds-button, .vds-time) {
412
+ max-width: 0 !important;
413
+ margin: 0 !important;
414
+ padding: 0 !important;
415
+ transition: max-width 150ms ease-out;
416
+ }
417
+ }