@videojs/html 10.0.0-beta.4 → 10.0.0-beta.6

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 (145) hide show
  1. package/cdn/audio-minimal.css +1 -1
  2. package/cdn/audio-minimal.dev.js +16 -8
  3. package/cdn/audio-minimal.dev.js.map +1 -1
  4. package/cdn/audio-minimal.js +2 -2
  5. package/cdn/audio-minimal.js.map +1 -1
  6. package/cdn/audio.css +1 -1
  7. package/cdn/audio.dev.js +16 -8
  8. package/cdn/audio.dev.js.map +1 -1
  9. package/cdn/audio.js +2 -2
  10. package/cdn/audio.js.map +1 -1
  11. package/cdn/media/hls-video.dev.js +11 -9
  12. package/cdn/media/hls-video.dev.js.map +1 -1
  13. package/cdn/media/hls-video.js +11 -9
  14. package/cdn/media/hls-video.js.map +1 -1
  15. package/cdn/media/simple-hls-video.dev.js +11 -9
  16. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  17. package/cdn/media/simple-hls-video.js +11 -9
  18. package/cdn/media/simple-hls-video.js.map +1 -1
  19. package/cdn/video-minimal.css +1 -1
  20. package/cdn/video-minimal.dev.js +24 -8
  21. package/cdn/video-minimal.dev.js.map +1 -1
  22. package/cdn/video-minimal.js +3 -3
  23. package/cdn/video-minimal.js.map +1 -1
  24. package/cdn/video.css +1 -1
  25. package/cdn/video.dev.js +22 -8
  26. package/cdn/video.dev.js.map +1 -1
  27. package/cdn/video.js +3 -3
  28. package/cdn/video.js.map +1 -1
  29. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  30. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  31. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  32. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  33. package/dist/default/_virtual/inline-css_src/define/base.js +1 -1
  34. package/dist/default/_virtual/inline-css_src/define/base.js.map +1 -1
  35. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  36. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  37. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  38. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  39. package/dist/default/define/audio/minimal-skin.css +60 -9
  40. package/dist/default/define/audio/skin.css +60 -11
  41. package/dist/default/define/base.css +10 -12
  42. package/dist/default/define/shared.css +4 -0
  43. package/dist/default/define/video/minimal-skin.css +207 -47
  44. package/dist/default/define/video/minimal-skin.js +1 -1
  45. package/dist/default/define/video/minimal-skin.js.map +1 -1
  46. package/dist/default/define/video/minimal-skin.tailwind.js +2 -2
  47. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  48. package/dist/default/define/video/skin.css +195 -37
  49. package/dist/default/define/video/skin.js +1 -1
  50. package/dist/default/define/video/skin.js.map +1 -1
  51. package/dist/default/define/video/skin.tailwind.js +2 -2
  52. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  53. package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
  54. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  55. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  56. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  57. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +3 -3
  58. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  59. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +13 -0
  60. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  61. package/dist/default/skins/dist/default/default/tailwind/components/root.js +1 -1
  62. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  63. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +1 -1
  64. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  65. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +1 -1
  66. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  67. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +17 -12
  68. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  69. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +1 -1
  70. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  71. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  72. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  73. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  74. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  75. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +4 -3
  76. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  77. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +14 -0
  78. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  79. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  80. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  81. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  82. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  83. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +19 -13
  84. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  85. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  86. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  87. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  88. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  89. package/dist/dev/_virtual/inline-css_src/define/base.js +1 -1
  90. package/dist/dev/_virtual/inline-css_src/define/base.js.map +1 -1
  91. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  92. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  93. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  94. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  95. package/dist/dev/define/audio/minimal-skin.css +60 -9
  96. package/dist/dev/define/audio/skin.css +60 -11
  97. package/dist/dev/define/base.css +10 -12
  98. package/dist/dev/define/shared.css +4 -0
  99. package/dist/dev/define/video/minimal-skin.css +207 -47
  100. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  101. package/dist/dev/define/video/minimal-skin.js +8 -0
  102. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  103. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  104. package/dist/dev/define/video/minimal-skin.tailwind.js +9 -1
  105. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  106. package/dist/dev/define/video/skin.css +195 -37
  107. package/dist/dev/define/video/skin.d.ts.map +1 -1
  108. package/dist/dev/define/video/skin.js +6 -0
  109. package/dist/dev/define/video/skin.js.map +1 -1
  110. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  111. package/dist/dev/define/video/skin.tailwind.js +7 -1
  112. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  113. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
  114. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  115. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  116. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  117. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +3 -3
  118. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  119. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +13 -0
  120. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  121. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +1 -1
  122. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  123. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +1 -1
  124. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  125. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +1 -1
  126. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  127. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +17 -12
  128. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  129. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +1 -1
  130. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  131. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  132. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  133. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  134. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  135. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +4 -3
  136. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  137. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +14 -0
  138. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  139. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  140. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  141. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  142. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  143. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +19 -13
  144. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  145. package/package.json +8 -8
@@ -100,7 +100,6 @@
100
100
  .media-default-skin *::before,
101
101
  .media-default-skin *::after {
102
102
  box-sizing: border-box;
103
- margin: 0;
104
103
  }
105
104
  .media-default-skin img,
106
105
  .media-default-skin video,
@@ -150,7 +149,7 @@
150
149
  background-color: var(--media-surface-background-color);
151
150
  backdrop-filter: var(--media-surface-backdrop-filter);
152
151
  box-shadow:
153
- inset 0 0 0 1px var(--media-surface-inner-border-color),
152
+ 0 0 0 1px var(--media-surface-outer-border-color),
154
153
  0 1px 3px 0 var(--media-surface-shadow-color),
155
154
  0 1px 2px -1px var(--media-surface-shadow-color);
156
155
 
@@ -161,7 +160,7 @@
161
160
  inset: 0;
162
161
  z-index: 10;
163
162
  border-radius: inherit;
164
- box-shadow: 0 0 0 1px var(--media-surface-outer-border-color);
163
+ box-shadow: inset 0 0 0 1px var(--media-surface-inner-border-color);
165
164
  pointer-events: none;
166
165
  }
167
166
 
@@ -183,9 +182,11 @@
183
182
  display: block;
184
183
  width: 100%;
185
184
  height: 100%;
185
+ object-fit: var(--media-object-fit, contain);
186
+ object-position: var(--media-object-position, center);
186
187
  }
187
188
  .media-default-skin ::slotted(video) {
188
- border-radius: var(--media-border-radius, 2rem);
189
+ border-radius: var(--media-video-border-radius);
189
190
  }
190
191
  .media-default-skin video {
191
192
  border-radius: inherit;
@@ -200,10 +201,11 @@
200
201
  inset: 0;
201
202
  width: 100%;
202
203
  height: 100%;
203
- border-radius: inherit;
204
- object-fit: cover;
204
+ object-fit: var(--media-object-fit, contain);
205
+ object-position: var(--media-object-position, center);
205
206
  transition: opacity 0.25s;
206
207
  pointer-events: none;
208
+ border-radius: inherit;
207
209
 
208
210
  &:not([data-visible]) {
209
211
  opacity: 0;
@@ -214,14 +216,10 @@
214
216
  Fullscreen
215
217
  ========================================================================== */
216
218
 
217
- .media-default-skin:fullscreen video,
218
219
  .media-default-skin:fullscreen ::slotted(video),
219
- .media-default-skin > img {
220
+ .media-default-skin:fullscreen video {
220
221
  object-fit: contain;
221
222
  }
222
- .media-default-skin:fullscreen ::slotted(video) {
223
- border-radius: 0;
224
- }
225
223
 
226
224
  /* ==========================================================================
227
225
  Overlay / Scrim
@@ -234,22 +232,28 @@
234
232
  background-image: linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.3), oklch(0 0 0 / 0));
235
233
  backdrop-filter: blur(0) saturate(1.5);
236
234
  opacity: 0;
237
- transition-property: opacity, backdrop-filter;
238
- transition-duration: 300ms;
239
- transition-delay: 500ms;
240
- transition-timing-function: ease-out;
241
235
  pointer-events: none;
242
236
 
243
- @media (prefers-reduced-motion: reduce) {
244
- transition-duration: 100ms;
237
+ @media (pointer: fine) {
238
+ transition-property: opacity, backdrop-filter;
239
+ transition-duration: 300ms;
240
+ transition-delay: 500ms;
241
+ transition-timing-function: ease-out;
242
+
243
+ @media (prefers-reduced-motion: reduce) {
244
+ transition-duration: 100ms;
245
+ }
245
246
  }
246
247
  }
247
248
 
248
249
  .media-default-skin .media-controls[data-visible] ~ .media-overlay,
249
250
  .media-default-skin .media-error[data-open] ~ .media-overlay {
250
251
  opacity: 1;
251
- transition-duration: 150ms;
252
- transition-delay: 0ms;
252
+
253
+ @media (pointer: fine) {
254
+ transition-duration: 150ms;
255
+ transition-delay: 0ms;
256
+ }
253
257
  }
254
258
 
255
259
  .media-default-skin .media-error[data-open] ~ .media-overlay {
@@ -428,6 +432,7 @@
428
432
  transition-timing-function: ease-out;
429
433
  cursor: pointer;
430
434
  user-select: none;
435
+ touch-action: manipulation;
431
436
 
432
437
  &:focus-visible {
433
438
  outline-color: oklch(62.3% 0.214 259.815);
@@ -525,6 +530,63 @@
525
530
  scale: -1 1;
526
531
  }
527
532
 
533
+ /* ==========================================================================
534
+ Media preview
535
+ ========================================================================== */
536
+ .media-default-skin .media-preview {
537
+ background-color: oklch(0 0 0 / 0.9);
538
+ border-radius: 0.75rem;
539
+
540
+ & .media-preview__thumbnail {
541
+ display: block;
542
+ position: relative;
543
+ border-radius: inherit;
544
+ overflow: clip;
545
+
546
+ &::after {
547
+ content: "";
548
+ position: absolute;
549
+ inset: 0;
550
+ border-radius: inherit;
551
+ background-image: linear-gradient(to top, oklch(0 0 0 / 0.8), oklch(0 0 0 / 0.3), oklch(0 0 0 / 0));
552
+ }
553
+ }
554
+
555
+ & .media-preview__timestamp {
556
+ position: absolute;
557
+ bottom: 0.5rem;
558
+ inset-inline: 0;
559
+ text-align: center;
560
+ font-variant-numeric: tabular-nums;
561
+ }
562
+
563
+ & .media-overlay {
564
+ opacity: 1;
565
+ }
566
+
567
+ & .media-preview__spinner {
568
+ position: absolute;
569
+ top: 50%;
570
+ left: 50%;
571
+ transform: translate(-50%, -50%);
572
+ opacity: 0;
573
+ }
574
+
575
+ & .media-preview__thumbnail,
576
+ & .media-preview__spinner {
577
+ transition: opacity 150ms ease-out;
578
+ }
579
+
580
+ &:has(.media-preview__thumbnail[data-loading]) {
581
+ & .media-preview__thumbnail {
582
+ opacity: 0;
583
+ }
584
+ & .media-preview__spinner {
585
+ opacity: 1;
586
+ }
587
+ }
588
+ }
589
+
528
590
  /* ==========================================================================
529
591
  Slider
530
592
  ========================================================================== */
@@ -537,6 +599,7 @@
537
599
  flex: 1;
538
600
  border-radius: calc(infinity * 1px);
539
601
  outline: none;
602
+ cursor: pointer;
540
603
 
541
604
  &[data-orientation="horizontal"] {
542
605
  min-width: 5rem;
@@ -669,11 +732,6 @@
669
732
  }
670
733
  }
671
734
 
672
- /* Time display within slider */
673
- .media-default-skin .media-slider__time-display {
674
- font-variant-numeric: tabular-nums;
675
- }
676
-
677
735
  /* ==========================================================================
678
736
  Popups & Tooltips
679
737
  ========================================================================== */
@@ -685,12 +743,12 @@
685
743
  color: inherit;
686
744
  overflow: visible;
687
745
  transition-property: transform, scale, opacity, filter;
688
- transition-duration: 200ms;
746
+ transition-duration: 150ms;
689
747
 
690
748
  &[data-starting-style],
691
749
  &[data-ending-style] {
692
750
  opacity: 0;
693
- transform: scale(0);
751
+ transform: scale(0.5);
694
752
  filter: blur(8px);
695
753
  }
696
754
 
@@ -710,10 +768,50 @@
710
768
  &[data-side="right"] {
711
769
  transform-origin: left;
712
770
  }
771
+
772
+ /* Safe area between trigger and popup */
773
+ &::before {
774
+ content: "";
775
+ position: absolute;
776
+ pointer-events: inherit;
777
+ }
778
+
779
+ &[data-side="top"]::before,
780
+ &[data-side="bottom"]::before {
781
+ width: 100%;
782
+ inset-inline: 0;
783
+ }
784
+ &[data-side="top"]::before {
785
+ top: 100%;
786
+ }
787
+ &[data-side="bottom"]::before {
788
+ bottom: 100%;
789
+ }
790
+
791
+ &[data-side="left"]::before,
792
+ &[data-side="right"]::before {
793
+ height: 100%;
794
+ inset-block: 0;
795
+ }
796
+ &[data-side="left"]::before {
797
+ left: 100%;
798
+ }
799
+ &[data-side="right"]::before {
800
+ right: 100%;
801
+ }
713
802
  }
714
803
 
715
804
  .media-default-skin .media-popover {
716
805
  --media-popover-side-offset: 0.5rem;
806
+
807
+ &[data-side="top"]::before,
808
+ &[data-side="bottom"]::before {
809
+ height: var(--media-popover-side-offset);
810
+ }
811
+ &[data-side="left"]::before,
812
+ &[data-side="right"]::before {
813
+ width: var(--media-popover-side-offset);
814
+ }
717
815
  }
718
816
  .media-default-skin .media-popover--volume {
719
817
  padding: 0.625rem 0.25rem;
@@ -725,7 +823,16 @@
725
823
  border-radius: calc(infinity * 1px);
726
824
  font-size: 0.75rem;
727
825
  white-space: nowrap;
728
- --media-tooltip-side-offset: 0.5rem;
826
+ --media-tooltip-side-offset: 0.75rem;
827
+
828
+ &[data-side="top"]::before,
829
+ &[data-side="bottom"]::before {
830
+ height: var(--media-tooltip-side-offset);
831
+ }
832
+ &[data-side="left"]::before,
833
+ &[data-side="right"]::before {
834
+ width: var(--media-tooltip-side-offset);
835
+ }
729
836
  }
730
837
 
731
838
  /* ==========================================================================
@@ -733,6 +840,7 @@
733
840
  ========================================================================== */
734
841
 
735
842
  .media-default-skin {
843
+ --media-caption-track-duration: 150ms;
736
844
  --media-caption-track-delay: 600ms;
737
845
  --media-caption-track-y: -0.5rem;
738
846
 
@@ -740,11 +848,15 @@
740
848
  --media-caption-track-delay: 25ms;
741
849
  --media-caption-track-y: -3.5rem;
742
850
  }
851
+
852
+ @media (prefers-reduced-motion: reduce) {
853
+ --media-caption-track-duration: 50ms;
854
+ }
743
855
  }
744
856
 
745
857
  .media-default-skin video::-webkit-media-text-track-container {
746
858
  /* NOTE: The delay must account for the controls delay/duration */
747
- transition: transform 150ms ease-out;
859
+ transition: transform var(--media-caption-track-duration) ease-out;
748
860
  transition-delay: var(--media-caption-track-delay);
749
861
  transform: translateY(var(--media-caption-track-y)) scale(0.98);
750
862
  z-index: 1;
@@ -770,6 +882,7 @@
770
882
  --media-surface-outer-border-color: oklch(0 0 0 / 0.1);
771
883
  --media-surface-shadow-color: oklch(0 0 0 / 0.15);
772
884
  --media-surface-backdrop-filter: blur(16px) saturate(1.5);
885
+ --media-video-border-radius: var(--media-border-radius, 2rem);
773
886
 
774
887
  @media (prefers-color-scheme: dark) {
775
888
  --media-border-color: oklch(1 0 0 / 0.1);
@@ -787,7 +900,7 @@
787
900
  }
788
901
 
789
902
  &:fullscreen {
790
- border-radius: 0;
903
+ --media-border-radius: 0;
791
904
  }
792
905
  }
793
906
 
@@ -800,30 +913,45 @@
800
913
  bottom: 0.75rem;
801
914
  inset-inline: 0.75rem;
802
915
  z-index: 10;
916
+ color: oklch(1 0 0);
917
+
803
918
  will-change: scale, transform, filter, opacity;
804
- transition-property: scale, transform, filter, opacity;
805
- transition-duration: 100ms;
806
- transition-delay: 0ms;
807
919
  transition-timing-function: ease-out;
808
920
  transform-origin: bottom;
809
- color: oklch(1 0 0);
921
+
922
+ @media (pointer: fine) {
923
+ transition-property: scale, transform, filter, opacity;
924
+ transition-duration: 100ms;
925
+ transition-delay: 0ms;
926
+ }
810
927
 
811
928
  &:not([data-visible]) {
812
929
  opacity: 0;
930
+ pointer-events: none;
813
931
  scale: 0.9;
814
932
  filter: blur(8px);
815
- transition-duration: 300ms;
816
- transition-delay: 500ms;
817
- pointer-events: none;
933
+
934
+ @media (pointer: fine) {
935
+ transition-duration: 300ms;
936
+ transition-delay: 500ms;
937
+
938
+ @media (prefers-reduced-motion: reduce) {
939
+ transition-duration: 100ms;
940
+ }
941
+ }
818
942
 
819
943
  @media (prefers-reduced-motion: reduce) {
820
944
  scale: 1;
821
945
  filter: blur(0);
822
- transition-duration: 100ms;
823
946
  }
824
947
  }
825
948
  }
826
949
 
950
+ /* Hide cursor when controls are hidden in fullscreen */
951
+ .media-default-skin--video:fullscreen:has(.media-controls:not([data-visible])) {
952
+ cursor: none;
953
+ }
954
+
827
955
  /* ==========================================================================
828
956
  Sliders
829
957
  ========================================================================== */
@@ -833,7 +961,37 @@
833
961
  box-shadow: 0 0 0 1px oklch(0 0 0 / 0.05);
834
962
  }
835
963
 
964
+ .media-default-skin .media-slider__preview {
965
+ position: absolute;
966
+ left: var(--media-slider-pointer);
967
+ bottom: calc(100% + 1.2rem);
968
+ translate: -50%;
969
+ opacity: 0;
970
+ scale: 0.8;
971
+ filter: blur(8px);
972
+ transition-property: scale, opacity, filter;
973
+ transition-duration: 150ms;
974
+ transform-origin: bottom;
975
+
976
+ & .media-preview__thumbnail {
977
+ max-width: 11rem;
978
+ }
979
+
980
+ &:has(.media-preview__thumbnail[data-loading]) {
981
+ max-height: 6rem;
982
+ }
983
+ }
984
+ .media-default-skin .media-slider[data-pointing] .media-slider__preview:has([role="img"]:not([data-hidden])) {
985
+ opacity: 1;
986
+ scale: 1;
987
+ filter: blur(0);
988
+ }
989
+
836
990
  media-tooltip-group {
837
991
  display: contents;
838
992
  }
839
993
 
994
+ :host {
995
+ display: grid;
996
+ }
997
+
@@ -22,7 +22,7 @@ import { ReactiveElement } from "@videojs/element";
22
22
  //#region src/define/video/skin.ts
23
23
  const SEEK_TIME = 10;
24
24
  function getTemplateHTML() {
25
- return `<media-container class="media-default-skin media-default-skin--video"><slot name="media"></slot><media-buffering-indicator class="media-buffering-indicator"><div class="media-surface"> ${renderIcon("spinner", { class: "media-icon" })} </div></media-buffering-indicator><media-controls 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--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" })} <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="video-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="video-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-captions-button commandfor="captions-tooltip" class="media-button media-button--icon media-button--captions"> ${renderIcon("captions-off", { class: "media-icon media-icon--captions-off" })} ${renderIcon("captions-on", { class: "media-icon media-icon--captions-on" })} </media-captions-button><media-tooltip id="captions-tooltip" side="top" class="media-surface media-tooltip"><span class="media-tooltip-label media-tooltip-label--enable-captions">Enable captions</span><span class="media-tooltip-label media-tooltip-label--disable-captions">Disable captions</span></media-tooltip><media-pip-button commandfor="pip-tooltip" class="media-button media-button--icon media-button--pip"> ${renderIcon("pip", { class: "media-icon" })} </media-pip-button><media-tooltip id="pip-tooltip" side="top" class="media-surface media-tooltip"><span class="media-tooltip-label media-tooltip-label--enter-pip">Enter picture-in-picture</span><span class="media-tooltip-label media-tooltip-label--exit-pip">Exit picture-in-picture</span></media-tooltip><media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--icon media-button--fullscreen"> ${renderIcon("fullscreen-enter", { class: "media-icon media-icon--fullscreen-enter" })} ${renderIcon("fullscreen-exit", { class: "media-icon media-icon--fullscreen-exit" })} </media-fullscreen-button><media-tooltip id="fullscreen-tooltip" side="top" class="media-surface media-tooltip"><span class="media-tooltip-label media-tooltip-label--enter-fullscreen">Enter fullscreen</span><span class="media-tooltip-label media-tooltip-label--exit-fullscreen">Exit fullscreen</span></media-tooltip></media-tooltip-group></media-controls><div class="media-overlay"></div></media-container>`;
25
+ return `<media-container class="media-default-skin media-default-skin--video"><slot name="media"></slot><media-buffering-indicator class="media-buffering-indicator"><div class="media-surface"> ${renderIcon("spinner", { class: "media-icon" })} </div></media-buffering-indicator><media-controls 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--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" })} <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><div class="media-surface media-preview media-slider__preview"><media-slider-thumbnail class="media-preview__thumbnail"></media-slider-thumbnail><media-slider-value type="pointer" class="media-preview__timestamp"></media-slider-value> ${renderIcon("spinner", { class: "media-preview__spinner media-icon" })} </div></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="video-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="video-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-captions-button commandfor="captions-tooltip" class="media-button media-button--icon media-button--captions"> ${renderIcon("captions-off", { class: "media-icon media-icon--captions-off" })} ${renderIcon("captions-on", { class: "media-icon media-icon--captions-on" })} </media-captions-button><media-tooltip id="captions-tooltip" side="top" class="media-surface media-tooltip"><span class="media-tooltip-label media-tooltip-label--enable-captions">Enable captions</span><span class="media-tooltip-label media-tooltip-label--disable-captions">Disable captions</span></media-tooltip><media-pip-button commandfor="pip-tooltip" class="media-button media-button--icon media-button--pip"> ${renderIcon("pip", { class: "media-icon" })} </media-pip-button><media-tooltip id="pip-tooltip" side="top" class="media-surface media-tooltip"><span class="media-tooltip-label media-tooltip-label--enter-pip">Enter picture-in-picture</span><span class="media-tooltip-label media-tooltip-label--exit-pip">Exit picture-in-picture</span></media-tooltip><media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--icon media-button--fullscreen"> ${renderIcon("fullscreen-enter", { class: "media-icon media-icon--fullscreen-enter" })} ${renderIcon("fullscreen-exit", { class: "media-icon media-icon--fullscreen-exit" })} </media-fullscreen-button><media-tooltip id="fullscreen-tooltip" side="top" class="media-surface media-tooltip"><span class="media-tooltip-label media-tooltip-label--enter-fullscreen">Enter fullscreen</span><span class="media-tooltip-label media-tooltip-label--exit-fullscreen">Exit fullscreen</span></media-tooltip></media-tooltip-group></media-controls><div class="media-overlay"></div></media-container>`;
26
26
  }
27
27
  var VideoSkinElement = class extends SkinMixin(ReactiveElement) {
28
28
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/video/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/buffering-indicator';\nimport '../ui/captions-button';\nimport '../ui/controls';\nimport '../ui/fullscreen-button';\nimport '../ui/mute-button';\nimport '../ui/pip-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--video\">\n <slot name=\"media\"></slot>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n <div class=\"media-surface\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </div>\n </media-buffering-indicator>\n\n <media-controls 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--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' })}\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=\"video-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=\"video-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\n <media-captions-button commandfor=\"captions-tooltip\" class=\"media-button media-button--icon media-button--captions\">\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enable-captions\">Enable captions</span>\n <span class=\"media-tooltip-label media-tooltip-label--disable-captions\">Disable captions</span>\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--icon media-button--pip\">\n ${renderIcon('pip', { class: 'media-icon' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-pip\">Enter picture-in-picture</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-pip\">Exit picture-in-picture</span>\n </media-tooltip>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"media-button media-button--icon media-button--fullscreen\">\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-fullscreen\">Enter fullscreen</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-fullscreen\">Exit fullscreen</span>\n </media-tooltip>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n </media-container>\n `;\n}\n\nexport class VideoSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(VideoSkinElement.tagName, VideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoSkinElement.tagName]: VideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,4LAAA,WAAA,WAAA,EAAA,OAAA,cAAA,CAAA,CAAA,wNAAA,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,kCAAA,CAAA,CAAA,mCAAA,UAAA,4IAAA,UAAA,yFAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,cAAA,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,gpBAAA,WAAA,gBAAA,EAAA,OAAA,uCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,iaAAA,WAAA,OAAA,EAAA,OAAA,cAAA,CAAA,CAAA,8aAAA,WAAA,oBAAA,EAAA,OAAA,2CAAA,CAAA,CAAA,GAAA,WAAA,mBAAA,EAAA,OAAA,0CAAA,CAAA,CAAA;;;;iBAIK;;;gBACL,aAAQ,aAAQ;;;yBACV"}
1
+ {"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/video/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/buffering-indicator';\nimport '../ui/captions-button';\nimport '../ui/controls';\nimport '../ui/fullscreen-button';\nimport '../ui/mute-button';\nimport '../ui/pip-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--video\">\n <slot name=\"media\"></slot>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n <div class=\"media-surface\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </div>\n </media-buffering-indicator>\n\n <media-controls 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--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' })}\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\n <div class=\"media-surface media-preview media-slider__preview\">\n <media-slider-thumbnail class=\"media-preview__thumbnail\"></media-slider-thumbnail>\n <media-slider-value type=\"pointer\" class=\"media-preview__timestamp\"></media-slider-value>\n ${renderIcon('spinner', { class: 'media-preview__spinner media-icon' })}\n </div>\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=\"video-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=\"video-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\n <media-captions-button commandfor=\"captions-tooltip\" class=\"media-button media-button--icon media-button--captions\">\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enable-captions\">Enable captions</span>\n <span class=\"media-tooltip-label media-tooltip-label--disable-captions\">Disable captions</span>\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--icon media-button--pip\">\n ${renderIcon('pip', { class: 'media-icon' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-pip\">Enter picture-in-picture</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-pip\">Exit picture-in-picture</span>\n </media-tooltip>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"media-button media-button--icon media-button--fullscreen\">\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-fullscreen\">Enter fullscreen</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-fullscreen\">Exit fullscreen</span>\n </media-tooltip>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n </media-container>\n `;\n}\n\nexport class VideoSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(VideoSkinElement.tagName, VideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoSkinElement.tagName]: VideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,4LAAA,WAAA,WAAA,EAAA,OAAA,cAAA,CAAA,CAAA,wNAAA,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,kCAAA,CAAA,CAAA,mCAAA,UAAA,4IAAA,UAAA,yFAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,cAAA,CAAA,CAAA,mCAAA,UAAA,0IAAA,UAAA,yqBAAA,WAAA,WAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,mgBAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,gpBAAA,WAAA,gBAAA,EAAA,OAAA,uCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,iaAAA,WAAA,OAAA,EAAA,OAAA,cAAA,CAAA,CAAA,8aAAA,WAAA,oBAAA,EAAA,OAAA,2CAAA,CAAA,CAAA,GAAA,WAAA,mBAAA,EAAA,OAAA,0CAAA,CAAA,CAAA;;;;iBAIK;;;gBACL,aAAQ,aAAQ;;;yBACV"}
@@ -23,7 +23,7 @@ import { playbackRate } from "../../skins/dist/default/default/tailwind/componen
23
23
  import { seek } from "../../skins/dist/default/default/tailwind/components/seek.js";
24
24
  import { time } from "../../skins/dist/default/default/tailwind/components/time.js";
25
25
  import { overlay } from "../../skins/dist/default/default/tailwind/components/overlay.js";
26
- import { bufferingIndicator, controls, popup, root, slider } from "../../skins/dist/default/default/tailwind/video.tailwind.js";
26
+ import { bufferingIndicator, controls, popup, preview, root, slider } from "../../skins/dist/default/default/tailwind/video.tailwind.js";
27
27
  import { renderIcon } from "../../icons/dist/render/default/index.js";
28
28
  import { ReactiveElement } from "@videojs/element";
29
29
  import { cn } from "@videojs/utils/style";
@@ -31,7 +31,7 @@ import { cn } from "@videojs/utils/style";
31
31
  //#region src/define/video/skin.tailwind.ts
32
32
  const SEEK_TIME = 10;
33
33
  function getTemplateHTML() {
34
- return `<media-container class="${root(true)}"><slot name="media"></slot><media-buffering-indicator class="${bufferingIndicator.root}"><div class="${bufferingIndicator.container}"> ${renderIcon("spinner")} </div></media-buffering-indicator><media-controls data-controls="" class="${controls}"><media-tooltip-group class="contents"><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="video-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="video-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><span class="${tooltipState.captions.wrapper}"><media-captions-button commandfor="captions-tooltip" class="${cn(button.base, button.icon, iconState.captions.button)}"> ${renderIcon("captions-off", { class: cn(icon, iconState.captions.off) })} ${renderIcon("captions-on", { class: cn(icon, iconState.captions.on) })} </media-captions-button><media-tooltip id="captions-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.captions.enable}">Enable captions</span><span class="${tooltipState.captions.disable}">Disable captions</span></media-tooltip></span><span class="${tooltipState.pip.wrapper}"><media-pip-button commandfor="pip-tooltip" class="${cn(button.base, button.icon)}"> ${renderIcon("pip", { class: icon })} </media-pip-button><media-tooltip id="pip-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.pip.enter}">Enter picture-in-picture</span><span class="${tooltipState.pip.exit}">Exit picture-in-picture</span></media-tooltip></span><span class="${tooltipState.fullscreen.wrapper}"><media-fullscreen-button commandfor="fullscreen-tooltip" class="${cn(button.base, button.icon, iconState.fullscreen.button)}"> ${renderIcon("fullscreen-enter", { class: cn(icon, iconState.fullscreen.enter) })} ${renderIcon("fullscreen-exit", { class: cn(icon, iconState.fullscreen.exit) })} </media-fullscreen-button><media-tooltip id="fullscreen-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.fullscreen.enter}">Enter fullscreen</span><span class="${tooltipState.fullscreen.exit}">Exit fullscreen</span></media-tooltip></span></media-tooltip-group></media-controls><div class="${overlay}"></div></media-container>`;
34
+ return `<media-container class="${root(true)}"><slot name="media"></slot><media-buffering-indicator class="${bufferingIndicator.root}"><div class="${bufferingIndicator.container}"> ${renderIcon("spinner")} </div></media-buffering-indicator><media-controls data-controls="" class="${controls}"><media-tooltip-group class="contents"><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><div class="${preview.root}"><media-slider-thumbnail class="${preview.thumbnail}"></media-slider-thumbnail><media-slider-value type="pointer" class="${preview.timestamp}"></media-slider-value> ${renderIcon("spinner", { class: cn(icon, preview.spinner) })} </div></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="video-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="video-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><span class="${tooltipState.captions.wrapper}"><media-captions-button commandfor="captions-tooltip" class="${cn(button.base, button.icon, iconState.captions.button)}"> ${renderIcon("captions-off", { class: cn(icon, iconState.captions.off) })} ${renderIcon("captions-on", { class: cn(icon, iconState.captions.on) })} </media-captions-button><media-tooltip id="captions-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.captions.enable}">Enable captions</span><span class="${tooltipState.captions.disable}">Disable captions</span></media-tooltip></span><span class="${tooltipState.pip.wrapper}"><media-pip-button commandfor="pip-tooltip" class="${cn(button.base, button.icon)}"> ${renderIcon("pip", { class: icon })} </media-pip-button><media-tooltip id="pip-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.pip.enter}">Enter picture-in-picture</span><span class="${tooltipState.pip.exit}">Exit picture-in-picture</span></media-tooltip></span><span class="${tooltipState.fullscreen.wrapper}"><media-fullscreen-button commandfor="fullscreen-tooltip" class="${cn(button.base, button.icon, iconState.fullscreen.button)}"> ${renderIcon("fullscreen-enter", { class: cn(icon, iconState.fullscreen.enter) })} ${renderIcon("fullscreen-exit", { class: cn(icon, iconState.fullscreen.exit) })} </media-fullscreen-button><media-tooltip id="fullscreen-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.fullscreen.enter}">Enter fullscreen</span><span class="${tooltipState.fullscreen.exit}">Exit fullscreen</span></media-tooltip></span></media-tooltip-group></media-controls><div class="${overlay}"></div></media-container>`;
35
35
  }
36
36
  var VideoSkinTailwindElement = class extends SkinMixin(ReactiveElement) {
37
37
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"skin.tailwind.js","names":[],"sources":["../../../../src/define/video/skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport {\n bufferingIndicator,\n button,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n overlay,\n playbackRate,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/default/tailwind/video.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/buffering-indicator';\nimport '../ui/captions-button';\nimport '../ui/controls';\nimport '../ui/fullscreen-button';\nimport '../ui/mute-button';\nimport '../ui/pip-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(true)}\">\n <slot name=\"media\"></slot>\n\n <media-buffering-indicator class=\"${bufferingIndicator.root}\">\n <div class=\"${bufferingIndicator.container}\">\n ${renderIcon('spinner')}\n </div>\n </media-buffering-indicator>\n\n <media-controls data-controls=\"\" class=\"${controls}\">\n <media-tooltip-group class=\"contents\">\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=\"video-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=\"video-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\n <span class=\"${tooltipState.captions.wrapper}\">\n <media-captions-button commandfor=\"captions-tooltip\" class=\"${cn(button.base, button.icon, iconState.captions.button)}\">\n ${renderIcon('captions-off', { class: cn(icon, iconState.captions.off) })}\n ${renderIcon('captions-on', { class: cn(icon, iconState.captions.on) })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.captions.enable}\">Enable captions</span>\n <span class=\"${tooltipState.captions.disable}\">Disable captions</span>\n </media-tooltip>\n </span>\n\n <span class=\"${tooltipState.pip.wrapper}\">\n <media-pip-button commandfor=\"pip-tooltip\" class=\"${cn(button.base, button.icon)}\">\n ${renderIcon('pip', { class: icon })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.pip.enter}\">Enter picture-in-picture</span>\n <span class=\"${tooltipState.pip.exit}\">Exit picture-in-picture</span>\n </media-tooltip>\n </span>\n\n <span class=\"${tooltipState.fullscreen.wrapper}\">\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"${cn(button.base, button.icon, iconState.fullscreen.button)}\">\n ${renderIcon('fullscreen-enter', { class: cn(icon, iconState.fullscreen.enter) })}\n ${renderIcon('fullscreen-exit', { class: cn(icon, iconState.fullscreen.exit) })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.fullscreen.enter}\">Enter fullscreen</span>\n <span class=\"${tooltipState.fullscreen.exit}\">Exit fullscreen</span>\n </media-tooltip>\n </span>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"${overlay}\"></div>\n </media-container>\n `;\n}\n\nexport class VideoSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(VideoSkinTailwindElement.tagName, VideoSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoSkinTailwindElement.tagName]: VideoSkinTailwindElement;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"skin.tailwind.js","names":[],"sources":["../../../../src/define/video/skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport {\n bufferingIndicator,\n button,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n overlay,\n playbackRate,\n popup,\n preview,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/default/tailwind/video.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/buffering-indicator';\nimport '../ui/captions-button';\nimport '../ui/controls';\nimport '../ui/fullscreen-button';\nimport '../ui/mute-button';\nimport '../ui/pip-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(true)}\">\n <slot name=\"media\"></slot>\n\n <media-buffering-indicator class=\"${bufferingIndicator.root}\">\n <div class=\"${bufferingIndicator.container}\">\n ${renderIcon('spinner')}\n </div>\n </media-buffering-indicator>\n\n <media-controls data-controls=\"\" class=\"${controls}\">\n <media-tooltip-group class=\"contents\">\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\n <div class=\"${preview.root}\">\n <media-slider-thumbnail class=\"${preview.thumbnail}\"></media-slider-thumbnail>\n <media-slider-value type=\"pointer\" class=\"${preview.timestamp}\"></media-slider-value>\n ${renderIcon('spinner', { class: cn(icon, preview.spinner) })}\n </div>\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=\"video-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=\"video-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\n <span class=\"${tooltipState.captions.wrapper}\">\n <media-captions-button commandfor=\"captions-tooltip\" class=\"${cn(button.base, button.icon, iconState.captions.button)}\">\n ${renderIcon('captions-off', { class: cn(icon, iconState.captions.off) })}\n ${renderIcon('captions-on', { class: cn(icon, iconState.captions.on) })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.captions.enable}\">Enable captions</span>\n <span class=\"${tooltipState.captions.disable}\">Disable captions</span>\n </media-tooltip>\n </span>\n\n <span class=\"${tooltipState.pip.wrapper}\">\n <media-pip-button commandfor=\"pip-tooltip\" class=\"${cn(button.base, button.icon)}\">\n ${renderIcon('pip', { class: icon })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.pip.enter}\">Enter picture-in-picture</span>\n <span class=\"${tooltipState.pip.exit}\">Exit picture-in-picture</span>\n </media-tooltip>\n </span>\n\n <span class=\"${tooltipState.fullscreen.wrapper}\">\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"${cn(button.base, button.icon, iconState.fullscreen.button)}\">\n ${renderIcon('fullscreen-enter', { class: cn(icon, iconState.fullscreen.enter) })}\n ${renderIcon('fullscreen-exit', { class: cn(icon, iconState.fullscreen.exit) })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.fullscreen.enter}\">Enter fullscreen</span>\n <span class=\"${tooltipState.fullscreen.exit}\">Exit fullscreen</span>\n </media-tooltip>\n </span>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"${overlay}\"></div>\n </media-container>\n `;\n}\n\nexport class VideoSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(VideoSkinTailwindElement.tagName, VideoSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoSkinTailwindElement.tagName]: VideoSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,2BAAA,KAAA,KAAA,CAAA,gEAAA,mBAAA,KAAA,gBAAA,mBAAA,UAAA,KAAA,WAAA,UAAA,CAAA,6EAAA,SAAA,uDAAA,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,qCAAA,QAAA,KAAA,mCAAA,QAAA,UAAA,uEAAA,QAAA,UAAA,0BAAA,WAAA,WAAA,EAAA,OAAA,GAAA,MAAA,QAAA,QAAA,EAAA,CAAA,CAAA,gEAAA,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,4EAAA,aAAA,SAAA,QAAA,gEAAA,GAAA,OAAA,MAAA,OAAA,MAAA,UAAA,SAAA,OAAA,CAAA,KAAA,WAAA,gBAAA,EAAA,OAAA,GAAA,MAAA,UAAA,SAAA,IAAA,EAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,GAAA,MAAA,UAAA,SAAA,GAAA,EAAA,CAAA,CAAA,kFAAA,GAAA,MAAA,QAAA,CAAA,iBAAA,aAAA,SAAA,OAAA,uCAAA,aAAA,SAAA,QAAA,+DAAA,aAAA,IAAA,QAAA,sDAAA,GAAA,OAAA,MAAA,OAAA,KAAA,CAAA,KAAA,WAAA,OAAA,EAAA,OAAA,MAAA,CAAA,CAAA,wEAAA,GAAA,MAAA,QAAA,CAAA,iBAAA,aAAA,IAAA,MAAA,gDAAA,aAAA,IAAA,KAAA,sEAAA,aAAA,WAAA,QAAA,oEAAA,GAAA,OAAA,MAAA,OAAA,MAAA,UAAA,WAAA,OAAA,CAAA,KAAA,WAAA,oBAAA,EAAA,OAAA,GAAA,MAAA,UAAA,WAAA,MAAA,EAAA,CAAA,CAAA,GAAA,WAAA,mBAAA,EAAA,OAAA,GAAA,MAAA,UAAA,WAAA,KAAA,EAAA,CAAA,CAAA,sFAAA,GAAA,MAAA,QAAA,CAAA,iBAAA,aAAA,WAAA,MAAA,wCAAA,aAAA,WAAA,KAAA,oGAAA,QAAA;;;;iBAIK;;;yBACD;;;AAGtB,eAAc,OAAA,yBAAmB,SAAA,yBAAA"}
@@ -2,7 +2,7 @@ import { cn } from "@videojs/utils/style";
2
2
 
3
3
  //#region ../skins/dist/default/default/tailwind/components/button.js
4
4
  const button = {
5
- base: cn("items-center justify-center shrink-0 border-none cursor-pointer select-none text-center", "font-medium", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,color,outline-offset,scale] duration-150 ease-out", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "focus-visible:outline-blue-500 focus-visible:outline-offset-2", "data-[availability=unavailable]:hidden"),
5
+ base: cn("items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "font-medium", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,color,outline-offset,scale] duration-150 ease-out", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "focus-visible:outline-blue-500 focus-visible:outline-offset-2", "data-[availability=unavailable]:hidden"),
6
6
  icon: cn("grid w-[2.125rem] aspect-square bg-transparent rounded-full", "text-inherit text-shadow-inherit", "hover:bg-current/10 hover:no-underline", "focus-visible:bg-current/10", "aria-expanded:bg-current/10", "active:scale-90"),
7
7
  default: cn("flex py-2 px-4 bg-white rounded-full", "text-black")
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n\n//#region src/default/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"items-center justify-center shrink-0 border-none cursor-pointer select-none text-center\", \"font-medium\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,color,outline-offset,scale] duration-150 ease-out\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"focus-visible:outline-blue-500 focus-visible:outline-offset-2\", \"data-[availability=unavailable]:hidden\"),\n\ticon: cn(\"grid w-[2.125rem] aspect-square bg-transparent rounded-full\", \"text-inherit text-shadow-inherit\", \"hover:bg-current/10 hover:no-underline\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\", \"active:scale-90\"),\n\tdefault: cn(\"flex py-2 px-4 bg-white rounded-full\", \"text-black\")\n};\n\n//#endregion\nexport { button };\n//# sourceMappingURL=button.js.map"],"mappings":";;;AAGA,MAAM,SAAS;CACd,MAAM,GAAG,2FAA2F,eAAe,mDAAmD,kFAAkF,sEAAsE,iEAAiE,yCAAyC;CACxa,MAAM,GAAG,+DAA+D,oCAAoC,0CAA0C,+BAA+B,+BAA+B,kBAAkB;CACtO,SAAS,GAAG,wCAAwC,aAAa;CACjE"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n\n//#region src/default/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"font-medium\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,color,outline-offset,scale] duration-150 ease-out\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"focus-visible:outline-blue-500 focus-visible:outline-offset-2\", \"data-[availability=unavailable]:hidden\"),\n\ticon: cn(\"grid w-[2.125rem] aspect-square bg-transparent rounded-full\", \"text-inherit text-shadow-inherit\", \"hover:bg-current/10 hover:no-underline\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\", \"active:scale-90\"),\n\tdefault: cn(\"flex py-2 px-4 bg-white rounded-full\", \"text-black\")\n};\n\n//#endregion\nexport { button };\n//# sourceMappingURL=button.js.map"],"mappings":";;;AAGA,MAAM,SAAS;CACd,MAAM,GAAG,8GAA8G,eAAe,mDAAmD,kFAAkF,sEAAsE,iEAAiE,yCAAyC;CAC3b,MAAM,GAAG,+DAA+D,oCAAoC,0CAA0C,+BAA+B,+BAA+B,kBAAkB;CACtO,SAAS,GAAG,wCAAwC,aAAa;CACjE"}
@@ -1,7 +1,7 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
 
3
3
  //#region ../skins/dist/default/default/tailwind/components/overlay.js
4
- const overlay = cn("absolute inset-0 flex flex-col items-start", "pointer-events-none rounded-[inherit]", "opacity-0", "bg-linear-to-t from-black/50 via-black/30 to-transparent", "backdrop-blur-none backdrop-saturate-150", "transition-[opacity,backdrop-filter] ease-out", "duration-300 delay-500", "peer-data-visible/controls:opacity-100", "peer-data-visible/controls:duration-150", "peer-data-visible/controls:delay-0", "peer-data-open/error:opacity-100", "peer-data-open/error:duration-150", "peer-data-open/error:delay-0", "peer-data-open/error:backdrop-blur-lg", "motion-reduce:duration-100");
4
+ const overlay = cn("absolute inset-0 flex flex-col items-start", "pointer-events-none rounded-[inherit]", "opacity-0", "bg-linear-to-t from-black/50 via-black/30 to-transparent", "backdrop-blur-none backdrop-saturate-150", "[@media(pointer:fine)]:transition-[opacity,backdrop-filter]", "[@media(pointer:fine)]:ease-out", "[@media(pointer:fine)]:duration-300 [@media(pointer:fine)]:delay-500", "peer-data-visible/controls:opacity-100", "[@media(pointer:fine)]:peer-data-visible/controls:duration-150", "[@media(pointer:fine)]:peer-data-visible/controls:delay-0", "peer-data-open/error:opacity-100", "[@media(pointer:fine)]:peer-data-open/error:duration-150", "[@media(pointer:fine)]:peer-data-open/error:delay-0", "peer-data-open/error:backdrop-blur-lg", "[@media(pointer:fine)]:motion-reduce:duration-100");
5
5
 
6
6
  //#endregion
7
7
  export { overlay };