@videojs/html 10.0.0-beta.7 → 10.0.0-beta.9

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 (177) hide show
  1. package/cdn/audio-minimal.dev.js +9 -9
  2. package/cdn/audio-minimal.dev.js.map +1 -1
  3. package/cdn/audio-minimal.js +1 -1
  4. package/cdn/audio-minimal.js.map +1 -1
  5. package/cdn/audio.dev.js +9 -9
  6. package/cdn/audio.dev.js.map +1 -1
  7. package/cdn/audio.js +1 -1
  8. package/cdn/audio.js.map +1 -1
  9. package/cdn/background.dev.js +14 -1
  10. package/cdn/background.dev.js.map +1 -1
  11. package/cdn/background.js +1 -1
  12. package/cdn/background.js.map +1 -1
  13. package/cdn/{create-player-Dv7K1Ezk.js → create-player-4kACDl5S.js} +3 -2
  14. package/cdn/create-player-4kACDl5S.js.map +1 -0
  15. package/cdn/{create-player-QjiNZlh7.js → create-player-DxN4WCxY.js} +3 -3
  16. package/cdn/create-player-DxN4WCxY.js.map +1 -0
  17. package/cdn/media/simple-hls-video.dev.js +22 -4
  18. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  19. package/cdn/media/simple-hls-video.js +1 -1
  20. package/cdn/media/simple-hls-video.js.map +1 -1
  21. package/cdn/{player-CztIlNio.js → player-DVYGAHSo.js} +2 -2
  22. package/cdn/{player-CztIlNio.js.map → player-DVYGAHSo.js.map} +1 -1
  23. package/cdn/{player-Dvj38jlr.js → player-u-bvetUg.js} +2 -2
  24. package/cdn/{player-Dvj38jlr.js.map → player-u-bvetUg.js.map} +1 -1
  25. package/cdn/{poster-O0SI05LC.js → poster-BoF67sLZ.js} +3 -3
  26. package/cdn/{poster-O0SI05LC.js.map → poster-BoF67sLZ.js.map} +1 -1
  27. package/cdn/{poster-C4WHg3BH.js → poster-CkKPGKQ1.js} +2 -2
  28. package/cdn/{poster-C4WHg3BH.js.map → poster-CkKPGKQ1.js.map} +1 -1
  29. package/cdn/video-minimal.dev.js +12 -12
  30. package/cdn/video-minimal.dev.js.map +1 -1
  31. package/cdn/video-minimal.js +1 -1
  32. package/cdn/video-minimal.js.map +1 -1
  33. package/cdn/video.dev.js +12 -12
  34. package/cdn/video.dev.js.map +1 -1
  35. package/cdn/video.js +1 -1
  36. package/cdn/video.js.map +1 -1
  37. package/cdn/{volume-slider-BqzTytgB.js → volume-slider-Bv1urvub.js} +2 -2
  38. package/cdn/{volume-slider-BqzTytgB.js.map → volume-slider-Bv1urvub.js.map} +1 -1
  39. package/cdn/{volume-slider-CfhOO9RM.js → volume-slider-DYG1mki7.js} +2 -2
  40. package/cdn/{volume-slider-CfhOO9RM.js.map → volume-slider-DYG1mki7.js.map} +1 -1
  41. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  42. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  43. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  44. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  45. package/dist/default/_virtual/inline-css_src/define/background/skin.js +6 -0
  46. package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -0
  47. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  48. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  49. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  50. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  51. package/dist/default/define/audio/minimal-skin.css +161 -141
  52. package/dist/default/define/audio/minimal-skin.js +1 -1
  53. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  54. package/dist/default/define/audio/minimal-skin.tailwind.js +1 -1
  55. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  56. package/dist/default/define/audio/skin.css +164 -132
  57. package/dist/default/define/audio/skin.js +1 -1
  58. package/dist/default/define/audio/skin.js.map +1 -1
  59. package/dist/default/define/audio/skin.tailwind.js +1 -1
  60. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  61. package/dist/default/define/background/skin.js +10 -0
  62. package/dist/default/define/background/skin.js.map +1 -1
  63. package/dist/default/define/video/minimal-skin.css +224 -192
  64. package/dist/default/define/video/minimal-skin.js +1 -1
  65. package/dist/default/define/video/minimal-skin.js.map +1 -1
  66. package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
  67. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  68. package/dist/default/define/video/skin.css +238 -189
  69. package/dist/default/define/video/skin.js +1 -1
  70. package/dist/default/define/video/skin.js.map +1 -1
  71. package/dist/default/define/video/skin.tailwind.js +1 -1
  72. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  73. package/dist/default/media/simple-hls-video/index.js +1 -0
  74. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  75. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +4 -3
  76. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  77. package/dist/default/skins/dist/default/default/tailwind/components/button.js +4 -3
  78. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  79. package/dist/default/skins/dist/default/default/tailwind/components/error.js +2 -2
  80. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  81. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  82. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  83. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +1 -1
  84. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  85. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -1
  86. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  87. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +5 -3
  88. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  89. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +8 -2
  90. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  91. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +4 -3
  92. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  93. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +15 -0
  94. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
  95. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  96. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  97. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
  98. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  99. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  100. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  101. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  102. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  103. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +9 -2
  104. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  105. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  106. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  107. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  108. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  109. package/dist/dev/_virtual/inline-css_src/define/background/skin.js +6 -0
  110. package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -0
  111. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  112. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  113. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  114. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  115. package/dist/dev/define/audio/minimal-skin.css +161 -141
  116. package/dist/dev/define/audio/minimal-skin.js +5 -5
  117. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  118. package/dist/dev/define/audio/minimal-skin.tailwind.js +5 -5
  119. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  120. package/dist/dev/define/audio/skin.css +164 -132
  121. package/dist/dev/define/audio/skin.js +5 -5
  122. package/dist/dev/define/audio/skin.js.map +1 -1
  123. package/dist/dev/define/audio/skin.tailwind.js +5 -5
  124. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  125. package/dist/dev/define/background/skin.d.ts.map +1 -1
  126. package/dist/dev/define/background/skin.js +10 -0
  127. package/dist/dev/define/background/skin.js.map +1 -1
  128. package/dist/dev/define/video/minimal-skin.css +224 -192
  129. package/dist/dev/define/video/minimal-skin.js +8 -8
  130. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  131. package/dist/dev/define/video/minimal-skin.tailwind.js +8 -8
  132. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  133. package/dist/dev/define/video/skin.css +238 -189
  134. package/dist/dev/define/video/skin.js +8 -8
  135. package/dist/dev/define/video/skin.js.map +1 -1
  136. package/dist/dev/define/video/skin.tailwind.js +8 -8
  137. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  138. package/dist/dev/media/simple-hls-video/index.js +1 -0
  139. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  140. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +4 -3
  141. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  142. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +4 -3
  143. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  144. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +2 -2
  145. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  146. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  147. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  148. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +1 -1
  149. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  150. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -1
  151. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  152. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +5 -3
  153. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  154. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +8 -2
  155. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  156. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +4 -3
  157. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  158. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +15 -0
  159. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
  160. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  161. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  162. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
  163. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  164. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  165. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  166. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  167. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  168. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +9 -2
  169. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  170. package/package.json +9 -9
  171. package/cdn/audio-minimal.css +0 -1
  172. package/cdn/audio.css +0 -1
  173. package/cdn/background.css +0 -1
  174. package/cdn/create-player-Dv7K1Ezk.js.map +0 -1
  175. package/cdn/create-player-QjiNZlh7.js.map +0 -1
  176. package/cdn/video-minimal.css +0 -1
  177. package/cdn/video.css +0 -1
@@ -1,67 +1,3 @@
1
- /* ==========================================================================
2
- Icon State Visibility for Audio Skins
3
-
4
- Data-attribute-driven visibility rules for multi-state icon buttons.
5
- Uses :is() with both element selectors (for HTML custom element wrappers)
6
- and class selectors (for React rendered SVG elements).
7
- ========================================================================== */
8
-
9
- /* --- All icons hidden by default --- */
10
-
11
- .media-button--play .media-icon--restart,
12
- .media-button--play .media-icon--play,
13
- .media-button--play .media-icon--pause,
14
- .media-button--mute .media-icon--volume-off,
15
- .media-button--mute .media-icon--volume-low,
16
- .media-button--mute .media-icon--volume-high {
17
- display: none;
18
- opacity: 0;
19
- }
20
-
21
- /* --- Active icon per state --- */
22
-
23
- /* Play: ended → restart */
24
- .media-button--play[data-ended] .media-icon--restart,
25
- /* Play: paused (not ended) → play */
26
- .media-button--play:not([data-ended])[data-paused] .media-icon--play,
27
- /* Play: playing (not paused, not ended) → pause */
28
- .media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
29
- /* Mute: muted → volume off */
30
- .media-button--mute[data-muted] .media-icon--volume-off,
31
- /* Mute: volume low (not muted) → volume low */
32
- .media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
33
- /* Mute: volume high (not muted, not low) → volume high */
34
- .media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high {
35
- display: block;
36
- opacity: 1;
37
- }
38
-
39
- /* ==========================================================================
40
- Tooltip Label State Visibility for Audio Skins
41
-
42
- Data-attribute-driven visibility rules for multi-state tooltip labels.
43
- Uses adjacent sibling selectors to match button state → tooltip content.
44
- ========================================================================== */
45
-
46
- /* --- All multi-state labels hidden by default --- */
47
-
48
- .media-tooltip-label {
49
- display: none;
50
- }
51
-
52
- /* --- Active label per state --- */
53
-
54
- /* Play: ended → replay */
55
- .media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
56
- /* Play: paused (not ended) → play */
57
- .media-button--play:not([data-ended])[data-paused] + .media-tooltip
58
- .media-tooltip-label--play,
59
- /* Play: playing (not paused, not ended) → pause */
60
- .media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
61
- .media-tooltip-label--pause {
62
- display: block;
63
- }
64
-
65
1
  /* ==========================================================================
66
2
  Reset
67
3
  ========================================================================== */
@@ -171,57 +107,7 @@
171
107
  ========================================================================== */
172
108
 
173
109
  .media-default-skin .media-error {
174
- position: absolute;
175
- inset: 0;
176
- z-index: 20;
177
- display: flex;
178
- align-items: center;
179
- justify-content: center;
180
- }
181
-
182
- .media-default-skin .media-error__dialog {
183
- display: flex;
184
- flex-direction: column;
185
- gap: 0.75rem;
186
- max-width: 18rem;
187
- padding: 0.75rem;
188
- border-radius: 1.75rem;
189
- color: oklch(1 0 0);
190
- font-size: 0.875rem;
191
- transition-property: opacity, scale;
192
- transition-duration: 500ms;
193
- transition-delay: 100ms;
194
- transition-timing-function: linear(
195
- 0,
196
- 0.034 1.5%,
197
- 0.763 9.7%,
198
- 1.066 13.9%,
199
- 1.198 19.9%,
200
- 1.184 21.8%,
201
- 0.963 37.5%,
202
- 0.997 50.9%,
203
- 1
204
- );
205
-
206
- /* Simple, fast transition for reduced motion users */
207
- @media (prefers-reduced-motion: reduce) {
208
- transition-duration: 100ms;
209
- transition-delay: 0ms;
210
- transition-timing-function: ease-out;
211
- }
212
- }
213
-
214
- .media-default-skin .media-error[data-starting-style] .media-error__dialog,
215
- .media-default-skin .media-error[data-ending-style] .media-error__dialog {
216
- opacity: 0;
217
- scale: 0.5;
218
- }
219
-
220
- .media-default-skin .media-error__content {
221
- display: flex;
222
- flex-direction: column;
223
- gap: 0.5rem;
224
- padding: 0.5rem 0.5rem 0.375rem;
110
+ outline: none;
225
111
  }
226
112
 
227
113
  .media-default-skin .media-error__title {
@@ -243,6 +129,10 @@
243
129
  }
244
130
  }
245
131
 
132
+ .media-default-skin .media-error[data-open] ~ .media-controls * {
133
+ visibility: hidden;
134
+ }
135
+
246
136
  /* ==========================================================================
247
137
  Controls
248
138
  ========================================================================== */
@@ -303,15 +193,11 @@
303
193
  justify-content: center;
304
194
  flex-shrink: 0;
305
195
  padding: 0.5rem 1rem;
306
- background: oklch(1 0 0);
307
196
  border: none;
308
197
  border-radius: calc(infinity * 1px);
309
198
  outline: 2px solid transparent;
310
199
  outline-offset: -2px;
311
- color: oklch(0 0 0);
312
- font-weight: 500;
313
- text-align: center;
314
- transition-property: background-color, color, outline-offset, scale;
200
+ transition-property: background-color, outline-offset, scale;
315
201
  transition-duration: 150ms;
316
202
  transition-timing-function: ease-out;
317
203
  cursor: pointer;
@@ -319,10 +205,14 @@
319
205
  touch-action: manipulation;
320
206
 
321
207
  &:focus-visible {
322
- outline-color: oklch(62.3% 0.214 259.815);
208
+ outline-color: currentColor;
323
209
  outline-offset: 2px;
324
210
  }
325
211
 
212
+ &:active {
213
+ scale: 0.98;
214
+ }
215
+
326
216
  &[disabled] {
327
217
  opacity: 0.5;
328
218
  filter: grayscale(1);
@@ -334,12 +224,16 @@
334
224
  }
335
225
  }
336
226
 
337
- /* Icon button variant */
338
- .media-default-skin .media-button--icon {
339
- display: grid;
340
- width: 2.125rem;
341
- padding: 0;
342
- aspect-ratio: 1;
227
+ /* Primary button variant */
228
+ .media-default-skin .media-button--primary {
229
+ background: oklch(1 0 0);
230
+ color: oklch(0 0 0);
231
+ font-weight: 500;
232
+ text-align: center;
233
+ }
234
+
235
+ /* Subtle button variant */
236
+ .media-default-skin .media-button--subtle {
343
237
  background: transparent;
344
238
  color: inherit;
345
239
  text-shadow: inherit;
@@ -350,6 +244,14 @@
350
244
  background-color: oklch(from currentColor l c h / 0.1);
351
245
  text-decoration: none;
352
246
  }
247
+ }
248
+
249
+ /* Icon button variant */
250
+ .media-default-skin .media-button--icon {
251
+ display: grid;
252
+ width: 2.125rem;
253
+ padding: 0;
254
+ aspect-ratio: 1;
353
255
 
354
256
  &:active {
355
257
  scale: 0.9;
@@ -366,7 +268,7 @@
366
268
  position: absolute;
367
269
  right: -1px;
368
270
  bottom: -3px;
369
- font-size: 0.75em;
271
+ font-size: 10px;
370
272
  font-weight: 480;
371
273
  font-variant-numeric: tabular-nums;
372
274
  }
@@ -495,6 +397,22 @@
495
397
  outline-color: oklch(from currentColor l c h / 0.25);
496
398
  outline-offset: 0;
497
399
  }
400
+
401
+ &::after {
402
+ content: "";
403
+ position: absolute;
404
+ inset: -4px;
405
+ border-radius: inherit;
406
+ box-shadow: 0 0 0 2px oklch(1 0 0);
407
+ transition-property: opacity, scale;
408
+ transition-duration: 150ms;
409
+ transition-timing-function: ease-out;
410
+ }
411
+
412
+ &:not(:focus-visible)::after {
413
+ scale: 0.5;
414
+ opacity: 0;
415
+ }
498
416
  }
499
417
 
500
418
  .media-default-skin .media-slider:active .media-slider__thumb,
@@ -570,7 +488,8 @@
570
488
  color: inherit;
571
489
  overflow: visible;
572
490
  transition-property: scale, opacity, filter;
573
- transition-duration: 150ms;
491
+ transition-duration: var(--media-popup-transition-duration);
492
+ transition-timing-function: var(--media-popup-transition-timing-function);
574
493
 
575
494
  &[data-starting-style],
576
495
  &[data-ending-style] {
@@ -666,6 +585,70 @@
666
585
  }
667
586
  }
668
587
 
588
+ /* ==========================================================================
589
+ Icon State Visibility for Audio Skins
590
+
591
+ Data-attribute-driven visibility rules for multi-state icon buttons.
592
+ Uses :is() with both element selectors (for HTML custom element wrappers)
593
+ and class selectors (for React rendered SVG elements).
594
+ ========================================================================== */
595
+
596
+ /* --- All icons hidden by default --- */
597
+
598
+ .media-button--play .media-icon--restart,
599
+ .media-button--play .media-icon--play,
600
+ .media-button--play .media-icon--pause,
601
+ .media-button--mute .media-icon--volume-off,
602
+ .media-button--mute .media-icon--volume-low,
603
+ .media-button--mute .media-icon--volume-high {
604
+ display: none;
605
+ opacity: 0;
606
+ }
607
+
608
+ /* --- Active icon per state --- */
609
+
610
+ /* Play: ended → restart */
611
+ .media-button--play[data-ended] .media-icon--restart,
612
+ /* Play: paused (not ended) → play */
613
+ .media-button--play:not([data-ended])[data-paused] .media-icon--play,
614
+ /* Play: playing (not paused, not ended) → pause */
615
+ .media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
616
+ /* Mute: muted → volume off */
617
+ .media-button--mute[data-muted] .media-icon--volume-off,
618
+ /* Mute: volume low (not muted) → volume low */
619
+ .media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
620
+ /* Mute: volume high (not muted, not low) → volume high */
621
+ .media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high {
622
+ display: block;
623
+ opacity: 1;
624
+ }
625
+
626
+ /* ==========================================================================
627
+ Tooltip Label State Visibility for Audio Skins
628
+
629
+ Data-attribute-driven visibility rules for multi-state tooltip labels.
630
+ Uses adjacent sibling selectors to match button state → tooltip content.
631
+ ========================================================================== */
632
+
633
+ /* --- All multi-state labels hidden by default --- */
634
+
635
+ .media-tooltip-label {
636
+ display: none;
637
+ }
638
+
639
+ /* --- Active label per state --- */
640
+
641
+ /* Play: ended → replay */
642
+ .media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
643
+ /* Play: paused (not ended) → play */
644
+ .media-button--play:not([data-ended])[data-paused] + .media-tooltip
645
+ .media-tooltip-label--play,
646
+ /* Play: playing (not paused, not ended) → pause */
647
+ .media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
648
+ .media-tooltip-label--pause {
649
+ display: block;
650
+ }
651
+
669
652
 
670
653
  /* ==========================================================================
671
654
  Root
@@ -678,26 +661,75 @@
678
661
  --media-surface-outer-border-color: oklch(0 0 0 / 0.05);
679
662
  --media-surface-shadow-color: oklch(0 0 0 / 0.15);
680
663
  --media-surface-backdrop-filter: blur(16px) saturate(1.5);
681
- --media-controls-text-color: var(--media-color-primary, oklch(0 0 0));
664
+ --media-text-color: var(--media-color-primary, oklch(0 0 0));
665
+ --media-error-dialog-transition-duration: 250ms;
666
+ --media-error-dialog-transition-delay: 100ms;
667
+ --media-popup-transition-duration: 100ms;
668
+ --media-popup-transition-timing-function: ease-out;
669
+
670
+ @media (prefers-reduced-motion: reduce) {
671
+ --media-error-dialog-transition-duration: 50ms;
672
+ --media-error-dialog-transition-delay: 0ms;
673
+ --media-popup-transition-duration: 0ms;
674
+ }
682
675
 
683
676
  @media (prefers-color-scheme: dark) {
684
677
  --media-border-color: oklch(1 0 0 / 0.1);
685
678
  --media-surface-background-color: oklch(0 0 0 / 0.4);
686
- --media-controls-text-color: var(--media-color-primary, oklch(1 0 0));
679
+ --media-text-color: var(--media-color-primary, oklch(1 0 0));
687
680
  }
688
681
  }
689
682
 
683
+ /* ==========================================================================
684
+ Error Dialog
685
+ ========================================================================== */
686
+
687
+ .media-default-skin--audio .media-error__dialog {
688
+ position: absolute;
689
+ inset: 0;
690
+ z-index: 20;
691
+ display: flex;
692
+ align-items: center;
693
+ gap: 0.75rem;
694
+ padding-inline: 1.25rem 0.125rem;
695
+ transition-property: opacity, filter;
696
+ transition-duration: var(--media-error-dialog-transition-duration);
697
+ transition-delay: var(--media-error-dialog-transition-delay);
698
+ transition-timing-function: ease-out;
699
+ border-radius: calc(infinity * 1px);
700
+ background-color: var(--media-surface-background-color);
701
+ backdrop-filter: var(--media-surface-backdrop-filter);
702
+ color: var(--media-text-color);
703
+ }
704
+
705
+ .media-default-skin .media-error[data-starting-style] .media-error__dialog,
706
+ .media-default-skin .media-error[data-ending-style] .media-error__dialog {
707
+ opacity: 0;
708
+ filter: blur(4px);
709
+ }
710
+ .media-default-skin .media-error[data-ending-style] .media-error__dialog {
711
+ transition-delay: 0ms;
712
+ }
713
+
714
+ .media-default-skin--audio .media-error__content {
715
+ flex: 1;
716
+ display: flex;
717
+ gap: 0.5rem;
718
+ align-items: center;
719
+ }
720
+
690
721
  /* ==========================================================================
691
722
  Controls
692
723
  ========================================================================== */
693
724
 
694
725
  .media-default-skin--audio .media-controls {
695
- color: var(--media-controls-text-color);
726
+ color: var(--media-text-color);
696
727
  }
697
728
 
698
729
  /* ==========================================================================
699
730
  Sliders
700
731
  ========================================================================== */
732
+
701
733
  .media-default-skin--audio .media-slider__track {
702
734
  background-color: oklch(0 0 0 / 0.1);
703
735
 
@@ -17,7 +17,7 @@ import { ReactiveElement } from "@videojs/element";
17
17
  //#region src/define/audio/skin.ts
18
18
  const SEEK_TIME = 10;
19
19
  function getTemplateHTML() {
20
- return `<media-container class="media-default-skin media-default-skin--audio"><slot name="media"></slot><slot></slot><div class="media-surface media-controls"><media-tooltip-group><media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play"> ${renderIcon("restart", { class: "media-icon media-icon--restart" })} ${renderIcon("play", { class: "media-icon media-icon--play" })} ${renderIcon("pause", { class: "media-icon media-icon--pause" })} </media-play-button><media-tooltip id="play-tooltip" side="top" class="media-surface media-tooltip"><span class="media-tooltip-label media-tooltip-label--replay">Replay</span><span class="media-tooltip-label media-tooltip-label--play">Play</span><span class="media-tooltip-label media-tooltip-label--pause">Pause</span></media-tooltip><media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek"><span class="media-icon__container"> ${renderIcon("seek", { class: "media-icon media-icon--seek media-icon--flipped" })} <span class="media-icon__label">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-backward-tooltip" side="top" class="media-surface media-tooltip"> Seek backward ${SEEK_TIME} seconds </media-tooltip><media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek"><span class="media-icon__container"> ${renderIcon("seek", { class: "media-icon media-icon--seek" })} <span class="media-icon__label">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-forward-tooltip" side="top" class="media-surface media-tooltip"> Seek forward ${SEEK_TIME} seconds </media-tooltip><media-time-group class="media-time"><media-time type="current" class="media-time__value"></media-time><media-time-slider class="media-slider"><media-slider-track class="media-slider__track"><media-slider-fill class="media-slider__fill"></media-slider-fill><media-slider-buffer class="media-slider__buffer"></media-slider-buffer></media-slider-track><media-slider-thumb class="media-slider__thumb"></media-slider-thumb></media-time-slider><media-time type="duration" class="media-time__value"></media-time></media-time-group><media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate"></media-playback-rate-button><media-tooltip id="playback-rate-tooltip" side="top" class="media-surface media-tooltip"> Toggle playback rate </media-tooltip><media-mute-button commandfor="audio-volume-popover" class="media-button media-button--icon media-button--mute"> ${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })} ${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })} ${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })} </media-mute-button><media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-surface media-popover media-popover--volume"><media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge"><media-slider-track class="media-slider__track"><media-slider-fill class="media-slider__fill"></media-slider-fill></media-slider-track><media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb></media-volume-slider></media-popover></media-tooltip-group></div></media-container>`;
20
+ return `<media-container class="media-default-skin media-default-skin--audio"><slot name="media"></slot><slot></slot><div class="media-surface media-controls"><media-tooltip-group><media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play"> ${renderIcon("restart", { class: "media-icon media-icon--restart" })} ${renderIcon("play", { class: "media-icon media-icon--play" })} ${renderIcon("pause", { class: "media-icon media-icon--pause" })} </media-play-button><media-tooltip id="play-tooltip" side="top" class="media-surface media-tooltip"><span class="media-tooltip-label media-tooltip-label--replay">Replay</span><span class="media-tooltip-label media-tooltip-label--play">Play</span><span class="media-tooltip-label media-tooltip-label--pause">Pause</span></media-tooltip><media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--subtle media-button--icon media-button--seek"> <span class="media-icon__container"> ${renderIcon("seek", { class: "media-icon media-icon--seek media-icon--flipped" })} <span class="media-icon__label">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-backward-tooltip" side="top" class="media-surface media-tooltip"> Seek backward ${SEEK_TIME} seconds </media-tooltip><media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--subtle media-button--icon media-button--seek"> <span class="media-icon__container"> ${renderIcon("seek", { class: "media-icon media-icon--seek" })} <span class="media-icon__label">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-forward-tooltip" side="top" class="media-surface media-tooltip"> Seek forward ${SEEK_TIME} seconds </media-tooltip><media-time-group class="media-time"><media-time type="current" class="media-time__value"></media-time><media-time-slider class="media-slider"><media-slider-track class="media-slider__track"><media-slider-fill class="media-slider__fill"></media-slider-fill><media-slider-buffer class="media-slider__buffer"></media-slider-buffer></media-slider-track><media-slider-thumb class="media-slider__thumb"></media-slider-thumb></media-time-slider><media-time type="duration" class="media-time__value"></media-time></media-time-group><media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--subtle media-button--icon media-button--playback-rate"></media-playback-rate-button><media-tooltip id="playback-rate-tooltip" side="top" class="media-surface media-tooltip"> Toggle playback rate </media-tooltip><media-mute-button commandfor="audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute"> ${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })} ${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })} ${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })} </media-mute-button><media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-surface media-popover media-popover--volume"><media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge"><media-slider-track class="media-slider__track"><media-slider-fill class="media-slider__fill"></media-slider-fill></media-slider-track><media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb></media-volume-slider></media-popover></media-tooltip-group></div></media-container>`;
21
21
  }
22
22
  var AudioSkinElement = class extends SkinMixin(ReactiveElement) {
23
23
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/audio/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-default-skin media-default-skin--audio\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <div class=\"media-surface media-controls\">\n <media-tooltip-group>\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value\"></media-time>\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"media-time__value\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"media-button media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-surface media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinElement.tagName, AudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinElement.tagName]: AudioSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,wRAAA,WAAA,WAAA,EAAA,OAAA,kCAAA,CAAA,CAAA,GAAA,WAAA,QAAA,EAAA,OAAA,+BAAA,CAAA,CAAA,GAAA,WAAA,SAAA,EAAA,OAAA,gCAAA,CAAA,CAAA,iZAAA,CAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,mDAAA,CAAA,CAAA,mCAAA,UAAA,4IAAA,UAAA,yFAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,+BAAA,CAAA,CAAA,mCAAA,UAAA,0IAAA,UAAA,w7BAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA;;AAGlB,IAAY,mBAAZ,cAA+B,UAAA,gBAAA,CAAA;;iBACb;;;;;;yBAEM;;;AAGxB,eAAc,OAAA,iBAAwB,SAAQ,iBAAiB"}
1
+ {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/audio/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-default-skin media-default-skin--audio\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <div class=\"media-surface media-controls\">\n <media-tooltip-group>\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value\"></media-time>\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"media-time__value\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"media-button media-button--subtle media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-surface media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinElement.tagName, AudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinElement.tagName]: AudioSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,6SAAA,WAAA,WAAA,EAAA,OAAA,kCAAA,CAAA,CAAA,GAAA,WAAA,QAAA,EAAA,OAAA,+BAAA,CAAA,CAAA,GAAA,WAAA,SAAA,EAAA,OAAA,gCAAA,CAAA,CAAA,iZAAA,CAAA,UAAA,0HAAA,WAAA,QAAA,EAAA,OAAA,mDAAA,CAAA,CAAA,mCAAA,UAAA,4IAAA,UAAA,yFAAA,UAAA,0HAAA,WAAA,QAAA,EAAA,OAAA,+BAAA,CAAA,CAAA,mCAAA,UAAA,0IAAA,UAAA,k+BAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA;;AAGlB,IAAY,mBAAZ,cAA+B,UAAA,gBAAA,CAAA;;iBACb;;;;;;yBAEM;;;AAGxB,eAAc,OAAA,iBAAwB,SAAQ,iBAAiB"}
@@ -25,7 +25,7 @@ import { cn } from "@videojs/utils/style";
25
25
  //#region src/define/audio/skin.tailwind.ts
26
26
  const SEEK_TIME = 10;
27
27
  function getTemplateHTML() {
28
- return `<media-container class="${root}"><slot name="media"></slot><slot></slot><div class="${controls}"><media-tooltip-group><span class="${tooltipState.play.wrapper}"><media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}"> ${renderIcon("restart", { class: cn(icon, iconState.play.restart) })} ${renderIcon("play", { class: cn(icon, iconState.play.play) })} ${renderIcon("pause", { class: cn(icon, iconState.play.pause) })} </media-play-button><media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.play.replay}">Replay</span><span class="${tooltipState.play.play}">Play</span><span class="${tooltipState.play.pause}">Pause</span></media-tooltip></span><media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}"><span class="${iconContainer}"> ${renderIcon("seek", { class: cn(icon, iconFlipped) })} <span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}"> Seek backward ${SEEK_TIME} seconds </media-tooltip><media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}"><span class="${iconContainer}"> ${renderIcon("seek", { class: icon })} <span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}"> Seek forward ${SEEK_TIME} seconds </media-tooltip><media-time-group class="${time.group}"><media-time type="current" class="${time.current}"></media-time><media-time-slider class="${slider.root}"><media-slider-track class="${slider.track}"><media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill><media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer></media-slider-track><media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb></media-time-slider><media-time type="duration" class="${time.duration}"></media-time></media-time-group><media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}"></media-playback-rate-button><media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}"> Toggle playback rate </media-tooltip><media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}"> ${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })} ${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })} ${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })} </media-mute-button><media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="${cn(popup.popover, popup.volume)}"><media-volume-slider class="${slider.root}" orientation="vertical" thumb-alignment="edge"><media-slider-track class="${slider.track}"><media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill></media-slider-track><media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.persistent)}"></media-slider-thumb></media-volume-slider></media-popover></media-tooltip-group></div></media-container>`;
28
+ return `<media-container class="${root}"> <slot name="media"></slot><slot></slot><div class="${controls}"> <media-tooltip-group><span class="${tooltipState.play.wrapper}"> <media-play-button commandfor="play-tooltip" class="${cn(button.base, button.subtle, button.icon, iconState.play.button)}"> ${renderIcon("restart", { class: cn(icon, iconState.play.restart) })} ${renderIcon("play", { class: cn(icon, iconState.play.play) })} ${renderIcon("pause", { class: cn(icon, iconState.play.pause) })} </media-play-button><media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}"> <span class="${tooltipState.play.replay}">Replay</span><span class="${tooltipState.play.play}">Play</span><span class="${tooltipState.play.pause}">Pause</span></media-tooltip></span><media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.subtle, button.icon, seek.button)}"> <span class="${iconContainer}"> ${renderIcon("seek", { class: cn(icon, iconFlipped) })} <span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}"> Seek backward ${SEEK_TIME} seconds </media-tooltip><media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.subtle, button.icon, seek.button)}"> <span class="${iconContainer}"> ${renderIcon("seek", { class: icon })} <span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}"> Seek forward ${SEEK_TIME} seconds </media-tooltip><media-time-group class="${time.group}"> <media-time type="current" class="${time.current}"></media-time><media-time-slider class="${slider.root}"> <media-slider-track class="${slider.track}"> <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill><media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer></media-slider-track><media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb></media-time-slider><media-time type="duration" class="${time.duration}"></media-time></media-time-group><media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.subtle, button.icon, playbackRate.button)}"></media-playback-rate-button><media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}"> Toggle playback rate </media-tooltip><media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.subtle, button.icon, iconState.mute.button)}"> ${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })} ${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })} ${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })} </media-mute-button><media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="${cn(popup.popover, popup.volume)}"> <media-volume-slider class="${slider.root}" orientation="vertical" thumb-alignment="edge"> <media-slider-track class="${slider.track}"> <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill></media-slider-track><media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.persistent)}"></media-slider-thumb></media-volume-slider></media-popover></media-tooltip-group></div></media-container>`;
29
29
  }
30
30
  var AudioSkinTailwindElement = class extends SkinMixin(ReactiveElement) {
31
31
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport {\n button,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n playbackRate,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/default/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <div class=\"${controls}\">\n <media-tooltip-group>\n <span class=\"${tooltipState.play.wrapper}\">\n <media-play-button commandfor=\"play-tooltip\" class=\"${cn(button.base, button.icon, iconState.play.button)}\">\n ${renderIcon('restart', { class: cn(icon, iconState.play.restart) })}\n ${renderIcon('play', { class: cn(icon, iconState.play.play) })}\n ${renderIcon('pause', { class: cn(icon, iconState.play.pause) })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.play.replay}\">Replay</span>\n <span class=\"${tooltipState.play.play}\">Play</span>\n <span class=\"${tooltipState.play.pause}\">Pause</span>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: cn(icon, iconFlipped) })}\n <span class=\"${cn(seek.label, seek.labelBackward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: icon })}\n <span class=\"${cn(seek.label, seek.labelForward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-slider class=\"${slider.root}\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n <media-slider-buffer class=\"${cn(slider.fill.base, slider.fill.buffer)}\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.interactive)}\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.icon, playbackRate.button)}\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"${cn(button.base, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"${cn(popup.popover, popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.persistent)}\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinTailwindElement.tagName, AudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinTailwindElement.tagName]: AudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,2BAAA,KAAA,uDAAA,SAAA,sCAAA,aAAA,KAAA,QAAA,wDAAA,GAAA,OAAA,MAAA,OAAA,MAAA,UAAA,KAAA,OAAA,CAAA,KAAA,WAAA,WAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,QAAA,EAAA,CAAA,CAAA,GAAA,WAAA,QAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,KAAA,EAAA,CAAA,CAAA,GAAA,WAAA,SAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,MAAA,EAAA,CAAA,CAAA,0EAAA,GAAA,MAAA,QAAA,CAAA,iBAAA,aAAA,KAAA,OAAA,8BAAA,aAAA,KAAA,KAAA,4BAAA,aAAA,KAAA,MAAA,sGAAA,CAAA,UAAA,WAAA,GAAA,OAAA,MAAA,OAAA,MAAA,KAAA,OAAA,CAAA,iBAAA,cAAA,KAAA,WAAA,QAAA,EAAA,OAAA,GAAA,MAAA,YAAA,EAAA,CAAA,CAAA,gBAAA,GAAA,KAAA,OAAA,KAAA,cAAA,CAAA,IAAA,UAAA,gGAAA,GAAA,MAAA,QAAA,CAAA,mBAAA,UAAA,yFAAA,UAAA,WAAA,GAAA,OAAA,MAAA,OAAA,MAAA,KAAA,OAAA,CAAA,iBAAA,cAAA,KAAA,WAAA,QAAA,EAAA,OAAA,MAAA,CAAA,CAAA,gBAAA,GAAA,KAAA,OAAA,KAAA,aAAA,CAAA,IAAA,UAAA,+FAAA,GAAA,MAAA,QAAA,CAAA,kBAAA,UAAA,oDAAA,KAAA,MAAA,sCAAA,KAAA,QAAA,2CAAA,OAAA,KAAA,+BAAA,OAAA,MAAA,8BAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,KAAA,CAAA,oDAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,OAAA,CAAA,0EAAA,GAAA,OAAA,MAAA,MAAA,OAAA,MAAA,YAAA,CAAA,gFAAA,KAAA,SAAA,0GAAA,GAAA,OAAA,MAAA,OAAA,MAAA,aAAA,OAAA,CAAA,6FAAA,GAAA,MAAA,QAAA,CAAA,sGAAA,GAAA,OAAA,MAAA,OAAA,MAAA,UAAA,KAAA,OAAA,CAAA,KAAA,WAAA,cAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,UAAA,EAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,UAAA,EAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,WAAA,EAAA,CAAA,CAAA,8HAAA,GAAA,MAAA,SAAA,MAAA,OAAA,CAAA,gCAAA,OAAA,KAAA,6EAAA,OAAA,MAAA,8BAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,KAAA,CAAA,wEAAA,GAAA,OAAA,MAAA,MAAA,OAAA,MAAA,WAAA,CAAA;;AAGlB,IAAY,2BAAZ,cAA+B,UAAA,gBAAA,CAAA;;iBACb;;;;;;AAIlB,eAAe,OAAO,yBAAqB,SAAS,yBAAA"}
1
+ {"version":3,"file":"skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport {\n button,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n playbackRate,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/default/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <div class=\"${controls}\">\n <media-tooltip-group>\n <span class=\"${tooltipState.play.wrapper}\">\n <media-play-button commandfor=\"play-tooltip\" class=\"${cn(button.base, button.subtle, button.icon, iconState.play.button)}\">\n ${renderIcon('restart', { class: cn(icon, iconState.play.restart) })}\n ${renderIcon('play', { class: cn(icon, iconState.play.play) })}\n ${renderIcon('pause', { class: cn(icon, iconState.play.pause) })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.play.replay}\">Replay</span>\n <span class=\"${tooltipState.play.play}\">Play</span>\n <span class=\"${tooltipState.play.pause}\">Pause</span>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"${cn(button.base, button.subtle, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: cn(icon, iconFlipped) })}\n <span class=\"${cn(seek.label, seek.labelBackward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"${cn(button.base, button.subtle, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: icon })}\n <span class=\"${cn(seek.label, seek.labelForward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-slider class=\"${slider.root}\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n <media-slider-buffer class=\"${cn(slider.fill.base, slider.fill.buffer)}\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.interactive)}\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.subtle, button.icon, playbackRate.button)}\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"${cn(button.base, button.subtle, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"${cn(popup.popover, popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.persistent)}\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinTailwindElement.tagName, AudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinTailwindElement.tagName]: AudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,2BAAA,KAAA,wDAAA,SAAA,uCAAA,aAAA,KAAA,QAAA,yDAAA,GAAA,OAAA,MAAA,OAAA,QAAA,OAAA,MAAA,UAAA,KAAA,OAAA,CAAA,KAAA,WAAA,WAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,QAAA,EAAA,CAAA,CAAA,GAAA,WAAA,QAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,KAAA,EAAA,CAAA,CAAA,GAAA,WAAA,SAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,MAAA,EAAA,CAAA,CAAA,0EAAA,GAAA,MAAA,QAAA,CAAA,kBAAA,aAAA,KAAA,OAAA,8BAAA,aAAA,KAAA,KAAA,4BAAA,aAAA,KAAA,MAAA,sGAAA,CAAA,UAAA,WAAA,GAAA,OAAA,MAAA,OAAA,QAAA,OAAA,MAAA,KAAA,OAAA,CAAA,kBAAA,cAAA,KAAA,WAAA,QAAA,EAAA,OAAA,GAAA,MAAA,YAAA,EAAA,CAAA,CAAA,gBAAA,GAAA,KAAA,OAAA,KAAA,cAAA,CAAA,IAAA,UAAA,gGAAA,GAAA,MAAA,QAAA,CAAA,mBAAA,UAAA,yFAAA,UAAA,WAAA,GAAA,OAAA,MAAA,OAAA,QAAA,OAAA,MAAA,KAAA,OAAA,CAAA,kBAAA,cAAA,KAAA,WAAA,QAAA,EAAA,OAAA,MAAA,CAAA,CAAA,gBAAA,GAAA,KAAA,OAAA,KAAA,aAAA,CAAA,IAAA,UAAA,+FAAA,GAAA,MAAA,QAAA,CAAA,kBAAA,UAAA,oDAAA,KAAA,MAAA,uCAAA,KAAA,QAAA,2CAAA,OAAA,KAAA,gCAAA,OAAA,MAAA,+BAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,KAAA,CAAA,oDAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,OAAA,CAAA,0EAAA,GAAA,OAAA,MAAA,MAAA,OAAA,MAAA,YAAA,CAAA,gFAAA,KAAA,SAAA,0GAAA,GAAA,OAAA,MAAA,OAAA,QAAA,OAAA,MAAA,aAAA,OAAA,CAAA,6FAAA,GAAA,MAAA,QAAA,CAAA,sGAAA,GAAA,OAAA,MAAA,OAAA,QAAA,OAAA,MAAA,UAAA,KAAA,OAAA,CAAA,KAAA,WAAA,cAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,UAAA,EAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,UAAA,EAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,WAAA,EAAA,CAAA,CAAA,8HAAA,GAAA,MAAA,SAAA,MAAA,OAAA,CAAA,iCAAA,OAAA,KAAA,8EAAA,OAAA,MAAA,+BAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,KAAA,CAAA,wEAAA,GAAA,OAAA,MAAA,MAAA,OAAA,MAAA,WAAA,CAAA;;AAGlB,IAAY,2BAAZ,cAA+B,UAAA,gBAAA,CAAA;;iBACb;;;;;;AAIlB,eAAe,OAAO,yBAAqB,SAAS,yBAAA"}
@@ -1,8 +1,17 @@
1
1
  import { safeDefine } from "../safe-define.js";
2
+ import skin_default from "../../_virtual/inline-css_src/define/background/skin.js";
2
3
  import { ReactiveElement } from "@videojs/element";
3
4
  import { namedNodeMapToObject } from "@videojs/utils/dom";
4
5
 
5
6
  //#region src/define/background/skin.ts
7
+ const STYLES_ID = "__media-background-styles";
8
+ function ensureBackgroundStyles() {
9
+ if (document.getElementById(STYLES_ID)) return;
10
+ const style = document.createElement("style");
11
+ style.id = STYLES_ID;
12
+ style.textContent = skin_default;
13
+ document.head.appendChild(style);
14
+ }
6
15
  function getTemplateHTML(_attrs) {
7
16
  return `<media-container><slot name="media"></slot><slot></slot></media-container>`;
8
17
  }
@@ -18,6 +27,7 @@ var BackgroundVideoSkinElement = class extends ReactiveElement {
18
27
  }
19
28
  constructor() {
20
29
  super();
30
+ ensureBackgroundStyles();
21
31
  if (!this.shadowRoot) {
22
32
  this.attachShadow(this.constructor.shadowRootOptions);
23
33
  this.shadowRoot.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes));
@@ -1 +1 @@
1
- {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/background/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { namedNodeMapToObject } from '@videojs/utils/dom';\nimport { safeDefine } from '../safe-define';\n\nfunction getTemplateHTML(_attrs: Record<string, string>) {\n return /*html*/ `\n <media-container>\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n </media-container>\n `;\n}\n\nexport class BackgroundVideoSkinElement extends ReactiveElement {\n static readonly tagName = 'background-video-skin';\n static shadowRootOptions = { mode: 'open' as ShadowRootMode };\n static getTemplateHTML = getTemplateHTML;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof BackgroundVideoSkinElement).shadowRootOptions);\n this.shadowRoot!.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes));\n }\n }\n}\n\nsafeDefine(BackgroundVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoSkinElement.tagName]: BackgroundVideoSkinElement;\n }\n}\n"],"mappings":";;;;;AAIA,SAAS,gBAAgB,QAAgC;AACvD,QAAgB;;AAGlB,IAAY,6BAAZ,cAA+B,gBAAA;;iBACb;;;2BACG,EAAA,MAAA,QAAA;;;yBAClB;;;AAGH,SAAO;AAEL,MAAM,CAAC,KAAA,YAAiB;AACxB,QAAO,aAAgB,KAAE,YAAe,kBAAA;;;;;AAM1C,WAAW,2BAAmB"}
1
+ {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/background/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { namedNodeMapToObject } from '@videojs/utils/dom';\nimport { safeDefine } from '../safe-define';\nimport styles from './skin.css?inline';\n\nconst STYLES_ID = '__media-background-styles';\n\nfunction ensureBackgroundStyles(): void {\n if (document.getElementById(STYLES_ID)) return;\n const style = document.createElement('style');\n style.id = STYLES_ID;\n style.textContent = styles;\n document.head.appendChild(style);\n}\n\nfunction getTemplateHTML(_attrs: Record<string, string>) {\n return /*html*/ `\n <media-container>\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n </media-container>\n `;\n}\n\nexport class BackgroundVideoSkinElement extends ReactiveElement {\n static readonly tagName = 'background-video-skin';\n static shadowRootOptions = { mode: 'open' as ShadowRootMode };\n static getTemplateHTML = getTemplateHTML;\n\n constructor() {\n super();\n\n ensureBackgroundStyles();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof BackgroundVideoSkinElement).shadowRootOptions);\n this.shadowRoot!.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes));\n }\n }\n}\n\nsafeDefine(BackgroundVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoSkinElement.tagName]: BackgroundVideoSkinElement;\n }\n}\n"],"mappings":";;;;;;AAKA,MAAM,YAAY;AAElB,SAAS,yBAA+B;AACtC,KAAI,SAAS,eAAe,UAAU,CAAE;CACxC,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,OAAM,KAAK;AACX,OAAM,cAAc;AACpB,UAAS,KAAK,YAAY,MAAM;;AAGlC,SAAS,gBAAgB,QAAgC;AACvD,QAAgB;;AAGlB,IAAY,6BAAZ,cAA+B,gBAAA;;iBACb;;;2BACG,EAAA,MAAA,QAAA;;;yBAClB;;;AAGH,SAAO;AAEL,0BAA0B;;AAG1B,QAAA,aAAc,KAAA,YAAA,kBAAA;AACZ,QAAO,WAAA,YAAA,gBAAA,qBAAA,KAAA,WAAA,CAAA;;;;AAKX,WAAW,2BAAmB"}