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

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 (175) hide show
  1. package/cdn/audio-minimal.css +1 -1
  2. package/cdn/audio-minimal.dev.js +197 -126
  3. package/cdn/audio-minimal.dev.js.map +1 -1
  4. package/cdn/audio-minimal.js +5 -5
  5. package/cdn/audio-minimal.js.map +1 -1
  6. package/cdn/audio.css +1 -1
  7. package/cdn/audio.dev.js +191 -120
  8. package/cdn/audio.dev.js.map +1 -1
  9. package/cdn/audio.js +5 -5
  10. package/cdn/audio.js.map +1 -1
  11. package/cdn/background.dev.js +40 -25
  12. package/cdn/background.dev.js.map +1 -1
  13. package/cdn/background.js +4 -4
  14. package/cdn/background.js.map +1 -1
  15. package/cdn/media/hls-video.dev.js +0 -1
  16. package/cdn/media/hls-video.dev.js.map +1 -1
  17. package/cdn/media/hls-video.js +1 -1
  18. package/cdn/media/hls-video.js.map +1 -1
  19. package/cdn/media/simple-hls-video.dev.js +178 -158
  20. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  21. package/cdn/media/simple-hls-video.js +1 -1
  22. package/cdn/media/simple-hls-video.js.map +1 -1
  23. package/cdn/video-minimal.css +1 -1
  24. package/cdn/video-minimal.dev.js +220 -161
  25. package/cdn/video-minimal.dev.js.map +1 -1
  26. package/cdn/video-minimal.js +5 -5
  27. package/cdn/video-minimal.js.map +1 -1
  28. package/cdn/video.css +1 -1
  29. package/cdn/video.dev.js +217 -158
  30. package/cdn/video.dev.js.map +1 -1
  31. package/cdn/video.js +4 -4
  32. package/cdn/video.js.map +1 -1
  33. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  34. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  35. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  36. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  37. package/dist/default/_virtual/inline-css_src/define/base.js +6 -0
  38. package/dist/default/_virtual/inline-css_src/define/base.js.map +1 -0
  39. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  40. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  41. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  42. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  43. package/dist/default/define/audio/minimal-skin.css +8 -2
  44. package/dist/default/define/audio/minimal-skin.js +2 -1
  45. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  46. package/dist/default/define/audio/minimal-skin.tailwind.js +5 -2
  47. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  48. package/dist/default/define/audio/skin.css +7 -5
  49. package/dist/default/define/audio/skin.js +2 -1
  50. package/dist/default/define/audio/skin.js.map +1 -1
  51. package/dist/default/define/audio/skin.tailwind.js +5 -2
  52. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  53. package/dist/default/define/base.css +25 -0
  54. package/dist/default/define/shared.css +3 -0
  55. package/dist/default/define/skin-mixin.js +10 -18
  56. package/dist/default/define/skin-mixin.js.map +1 -1
  57. package/dist/default/define/video/minimal-skin.css +35 -73
  58. package/dist/default/define/video/minimal-skin.js +2 -1
  59. package/dist/default/define/video/minimal-skin.js.map +1 -1
  60. package/dist/default/define/video/minimal-skin.tailwind.js +4 -4
  61. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  62. package/dist/default/define/video/skin.css +32 -71
  63. package/dist/default/define/video/skin.js +2 -1
  64. package/dist/default/define/video/skin.js.map +1 -1
  65. package/dist/default/define/video/skin.tailwind.js +5 -4
  66. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  67. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +3 -21
  68. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  69. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  70. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  71. package/dist/default/skins/dist/default/default/tailwind/components/root.js +1 -1
  72. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  73. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +8 -5
  74. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  75. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +3 -22
  76. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  77. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  78. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  79. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
  80. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  81. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -4
  82. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  83. package/dist/default/skins/dist/default/{default/tailwind/components → shared/tailwind}/icon-state.js +1 -1
  84. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  85. package/dist/{dev/skins/dist/default/default/tailwind/components → default/skins/dist/default/shared/tailwind}/tooltip-state.js +1 -1
  86. package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -0
  87. package/dist/default/store/container-mixin.js +22 -10
  88. package/dist/default/store/container-mixin.js.map +1 -1
  89. package/dist/default/ui/tooltip/tooltip-group-element.js +4 -1
  90. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  91. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  92. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  93. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  94. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  95. package/dist/dev/_virtual/inline-css_src/define/base.js +6 -0
  96. package/dist/dev/_virtual/inline-css_src/define/base.js.map +1 -0
  97. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  98. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  99. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  100. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  101. package/dist/dev/define/audio/minimal-skin.css +8 -2
  102. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  103. package/dist/dev/define/audio/minimal-skin.js +67 -64
  104. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  105. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
  106. package/dist/dev/define/audio/minimal-skin.tailwind.js +71 -66
  107. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  108. package/dist/dev/define/audio/skin.css +7 -5
  109. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  110. package/dist/dev/define/audio/skin.js +59 -56
  111. package/dist/dev/define/audio/skin.js.map +1 -1
  112. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
  113. package/dist/dev/define/audio/skin.tailwind.js +64 -59
  114. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  115. package/dist/dev/define/base.css +25 -0
  116. package/dist/dev/define/shared.css +3 -0
  117. package/dist/dev/define/skin-mixin.d.ts +2 -2
  118. package/dist/dev/define/skin-mixin.d.ts.map +1 -1
  119. package/dist/dev/define/skin-mixin.js +10 -32
  120. package/dist/dev/define/skin-mixin.js.map +1 -1
  121. package/dist/dev/define/video/minimal-skin.css +35 -73
  122. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  123. package/dist/dev/define/video/minimal-skin.js +92 -101
  124. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  125. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  126. package/dist/dev/define/video/minimal-skin.tailwind.js +98 -108
  127. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  128. package/dist/dev/define/video/skin.css +32 -71
  129. package/dist/dev/define/video/skin.d.ts.map +1 -1
  130. package/dist/dev/define/video/skin.js +82 -91
  131. package/dist/dev/define/video/skin.js.map +1 -1
  132. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  133. package/dist/dev/define/video/skin.tailwind.js +93 -102
  134. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  135. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +3 -21
  136. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  137. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  138. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  139. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +1 -1
  140. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  141. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +8 -5
  142. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  143. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +3 -22
  144. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  145. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  146. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  147. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
  148. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  149. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -4
  150. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  151. package/dist/dev/skins/dist/default/{default/tailwind/components → shared/tailwind}/icon-state.js +1 -1
  152. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  153. package/dist/{default/skins/dist/default/minimal/tailwind/components → dev/skins/dist/default/shared/tailwind}/tooltip-state.js +1 -1
  154. package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -0
  155. package/dist/dev/store/container-mixin.js +22 -10
  156. package/dist/dev/store/container-mixin.js.map +1 -1
  157. package/dist/dev/ui/tooltip/tooltip-group-element.js +4 -1
  158. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  159. package/package.json +7 -7
  160. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  161. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js +0 -28
  162. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js.map +0 -1
  163. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +0 -15
  164. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
  165. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  166. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  167. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +0 -1
  168. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  169. package/dist/dev/skins/dist/default/default/tailwind/components/tooltip-state.js.map +0 -1
  170. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +0 -15
  171. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
  172. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  173. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  174. package/dist/dev/skins/dist/default/minimal/tailwind/components/tooltip-state.js +0 -28
  175. package/dist/dev/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +0 -1
@@ -125,6 +125,8 @@
125
125
  position: relative;
126
126
  isolation: isolate;
127
127
  display: block;
128
+ height: 100%;
129
+ width: 100%;
128
130
  container: media-root / inline-size;
129
131
  border-radius: var(--media-border-radius, 0.75rem);
130
132
  font-family:
@@ -149,8 +151,13 @@
149
151
  display: block;
150
152
  width: 100%;
151
153
  height: 100%;
154
+ }
155
+ .media-minimal-skin ::slotted(video) {
152
156
  border-radius: var(--media-border-radius, 0.75rem);
153
157
  }
158
+ .media-minimal-skin video {
159
+ border-radius: inherit;
160
+ }
154
161
 
155
162
  /* ==========================================================================
156
163
  Poster Image
@@ -171,6 +178,19 @@
171
178
  }
172
179
  }
173
180
 
181
+ /* ==========================================================================
182
+ Fullscreen
183
+ ========================================================================== */
184
+
185
+ .media-minimal-skin:fullscreen video,
186
+ .media-minimal-skin:fullscreen ::slotted(video),
187
+ .media-minimal-skin > img {
188
+ object-fit: contain;
189
+ }
190
+ .media-minimal-skin:fullscreen ::slotted(video) {
191
+ border-radius: 0;
192
+ }
193
+
174
194
  /* ==========================================================================
175
195
  Overlay / Scrim
176
196
  ========================================================================== */
@@ -180,7 +200,7 @@
180
200
  inset: 0;
181
201
  border-radius: inherit;
182
202
  background-image: linear-gradient(to top, oklch(0 0 0 / 0.7), oklch(0 0 0 / 0.5) 7.5rem, oklch(0 0 0 / 0));
183
- backdrop-filter: blur(0) saturate(1.2) brightness(0.9);
203
+ backdrop-filter: blur(0) saturate(1.5);
184
204
  opacity: 0;
185
205
  transition-property: opacity, backdrop-filter;
186
206
  transition-duration: 500ms;
@@ -201,7 +221,7 @@
201
221
  }
202
222
 
203
223
  .media-minimal-skin .media-error[data-open] ~ .media-overlay {
204
- backdrop-filter: blur(8px) saturate(1.2) brightness(0.9);
224
+ backdrop-filter: blur(16px) saturate(1.5);
205
225
  }
206
226
 
207
227
  /* ==========================================================================
@@ -675,7 +695,7 @@
675
695
  padding: 0.25rem 0.5rem;
676
696
  border-radius: 0.25rem;
677
697
  background-color: oklch(1 0 0 / 0.1);
678
- backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);
698
+ backdrop-filter: blur(16px) saturate(1.5);
679
699
  box-shadow:
680
700
  0 4px 6px -1px oklch(0 0 0 / 0.1),
681
701
  0 2px 4px -2px oklch(0 0 0 / 0.1);
@@ -693,62 +713,9 @@
693
713
  }
694
714
 
695
715
  /* ==========================================================================
696
- Captions
716
+ Native Caption Track
697
717
  ========================================================================== */
698
718
 
699
- .media-minimal-skin .media-captions {
700
- position: absolute;
701
- inset: auto 1rem 1.5rem 1rem;
702
- z-index: 20;
703
- font-size: 1rem;
704
- text-wrap: balance;
705
- pointer-events: none;
706
-
707
- @container media-root (width > 20rem) {
708
- font-size: 1.5rem;
709
- }
710
-
711
- @container media-root (width > 48rem) {
712
- font-size: 1.875rem;
713
- }
714
-
715
- @container media-root (width > 80rem) {
716
- font-size: 2.25rem;
717
- }
718
- }
719
-
720
- .media-minimal-skin .media-captions__container {
721
- display: flex;
722
- flex-direction: column;
723
- align-items: center;
724
- max-width: 42ch;
725
- margin: 0 auto;
726
- text-align: center;
727
- }
728
-
729
- .media-minimal-skin .media-captions__text {
730
- display: block;
731
- padding: 0.125rem 0.5rem;
732
- color: oklch(1 0 0);
733
- text-shadow:
734
- 0 0 1px oklch(0 0 0 / 0.7),
735
- 0 0 8px oklch(0 0 0 / 0.7);
736
- text-align: center;
737
- white-space: pre-wrap;
738
- line-height: 1.2;
739
-
740
- @media (prefers-contrast: more) {
741
- background: oklch(0 0 0 / 0.7);
742
- text-shadow: none;
743
- box-decoration-break: clone;
744
- }
745
-
746
- & > * {
747
- display: inline;
748
- }
749
- }
750
-
751
- /* Caption shifting styles (custom and native) */
752
719
  .media-minimal-skin {
753
720
  --media-caption-track-delay: 600ms;
754
721
  --media-caption-track-y: -0.5rem;
@@ -759,26 +726,16 @@
759
726
  }
760
727
  }
761
728
 
762
- .media-minimal-skin .media-captions,
763
729
  .media-minimal-skin video::-webkit-media-text-track-container {
764
730
  /* NOTE: The delay must account for the controls delay/duration */
765
731
  transition: transform 150ms ease-out;
766
732
  transition-delay: var(--media-caption-track-delay);
767
- }
768
-
769
- .media-minimal-skin video::-webkit-media-text-track-container {
770
733
  transform: translateY(var(--media-caption-track-y)) scale(0.98);
771
734
  z-index: 1;
772
735
  font-family: inherit;
773
736
  }
774
737
 
775
- /* When controls are visible, shift captions up to avoid overlap */
776
- .media-minimal-skin .media-controls[data-visible] ~ .media-captions {
777
- transform: translateY(calc(var(--media-caption-track-y) - 0.5rem));
778
- }
779
-
780
738
  @media (prefers-reduced-motion: reduce) {
781
- .media-minimal-skin .media-captions,
782
739
  .media-minimal-skin video::-webkit-media-text-track-container {
783
740
  transition-duration: 50ms;
784
741
  }
@@ -791,20 +748,21 @@
791
748
 
792
749
  .media-minimal-skin--video {
793
750
  background: oklch(0 0 0);
751
+ --media-border-color: oklch(0 0 0 / 0.15);
794
752
 
795
- /* Border ring */
753
+ @media (prefers-color-scheme: dark) {
754
+ --media-border-color: oklch(1 0 0 / 0.15);
755
+ }
756
+
757
+ /* Inner border ring */
796
758
  &::after {
797
759
  content: "";
798
760
  position: absolute;
799
761
  inset: 0;
800
762
  z-index: 10;
801
763
  border-radius: inherit;
802
- box-shadow: inset 0 0 0 1px oklch(0 0 0 / 0.15);
764
+ box-shadow: inset 0 0 0 1px var(--media-border-color);
803
765
  pointer-events: none;
804
-
805
- @media (prefers-color-scheme: dark) {
806
- box-shadow: inset 0 0 0 1px oklch(1 0 0 / 0.15);
807
- }
808
766
  }
809
767
 
810
768
  /* Fullscreen */
@@ -871,3 +829,7 @@
871
829
  padding: 0.25rem;
872
830
  }
873
831
 
832
+ media-tooltip-group {
833
+ display: contents;
834
+ }
835
+
@@ -13,6 +13,7 @@ import "../ui/seek-button.js";
13
13
  import "../ui/time.js";
14
14
  import "../ui/time-slider.js";
15
15
  import "../ui/tooltip.js";
16
+ import "../ui/tooltip-group.js";
16
17
  import "../ui/volume-slider.js";
17
18
  import minimal_skin_default from "../../_virtual/inline-css_src/define/video/minimal-skin.js";
18
19
  import { ReactiveElement } from "@videojs/element";
@@ -20,7 +21,7 @@ import { ReactiveElement } from "@videojs/element";
20
21
  //#region src/define/video/minimal-skin.ts
21
22
  const SEEK_TIME = 10;
22
23
  function getTemplateHTML() {
23
- return `<media-container class="media-minimal-skin media-minimal-skin--video"><slot name="media"></slot><media-buffering-indicator class="media-buffering-indicator"> ${renderIcon("spinner", { class: "media-icon" })} </media-buffering-indicator><media-controls class="media-controls"><span class="media-button-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-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-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-tooltip"> Seek forward ${SEEK_TIME} seconds </media-tooltip></span><span class="media-time-controls"><media-time-group class="media-time"><media-time type="current" class="media-time__value media-time__value--current"></media-time><media-time-separator class="media-time__separator"></media-time-separator><media-time type="duration" class="media-time__value media-time__value--duration"></media-time></media-time-group><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></span><span class="media-button-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-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-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-tooltip"> Toggle captions </media-tooltip><media-pip-button commandfor="pip-tooltip" class="media-button media-button--icon"> ${renderIcon("pip", { class: "media-icon" })} </media-pip-button><media-tooltip id="pip-tooltip" side="top" class="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-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></span></media-controls><div class="media-overlay"></div></media-container>`;
24
+ return `<media-container class="media-minimal-skin media-minimal-skin--video"><slot name="media"></slot><media-buffering-indicator class="media-buffering-indicator"> ${renderIcon("spinner", { class: "media-icon" })} </media-buffering-indicator><media-controls class="media-controls"><media-tooltip-group><div class="media-button-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-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-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-tooltip"> Seek forward ${SEEK_TIME} seconds </media-tooltip></div><div class="media-time-controls"><media-time-group class="media-time"><media-time type="current" class="media-time__value media-time__value--current"></media-time><media-time-separator class="media-time__separator"></media-time-separator><media-time type="duration" class="media-time__value media-time__value--duration"></media-time></media-time-group><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></div><div class="media-button-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-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-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-tooltip"> Toggle captions </media-tooltip><media-pip-button commandfor="pip-tooltip" class="media-button media-button--icon"> ${renderIcon("pip", { class: "media-icon" })} </media-pip-button><media-tooltip id="pip-tooltip" side="top" class="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-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></div></media-tooltip-group></media-controls><div class="media-overlay"></div></media-container>`;
24
25
  }
25
26
  var MinimalVideoSkinElement = class extends SkinMixin(ReactiveElement) {
26
27
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"minimal-skin.js","names":[],"sources":["../../../../src/define/video/minimal-skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './minimal-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/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/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-minimal-skin media-minimal-skin--video\">\n <slot name=\"media\"></slot>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\n\n <!--<div class=\"media-error\" role=\"alertdialog\" aria-labelledby=\"media-error-title\" aria-describedby=\"media-error-description\">\n <div class=\"media-error__dialog\">\n <div class=\"media-error__content\">\n <p id=\"media-error-title\" class=\"media-error__title\">Something went wrong.</p>\n <p id=\"media-error-description\" class=\"media-error__description\">An error occurred while trying to play the video. Please try again.</p>\n </div>\n <div class=\"media-error__actions\">\n <button type=\"button\" class=\"media-button\">OK</button>\n </div>\n </div>\n </div>-->\n\n <media-controls class=\"media-controls\">\n <span class=\"media-button-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-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-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-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </span>\n\n <span class=\"media-time-controls\">\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value media-time__value--current\"></media-time>\n <media-time-separator class=\"media-time__separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time__value media-time__value--duration\"></media-time>\n </media-time-group>\n\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 </span>\n\n <span class=\"media-button-group\">\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-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-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-tooltip\">\n Toggle captions\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--icon\">\n ${renderIcon('pip', { class: 'media-icon' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"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-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 </span>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n </media-container>\n `;\n}\n\nexport class MinimalVideoSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-minimal-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalVideoSkinElement.tagName, MinimalVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalVideoSkinElement.tagName]: MinimalVideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,iKAAA,WAAA,WAAA,EAAA,OAAA,cAAA,CAAA,CAAA,gNAAA,WAAA,WAAA,EAAA,OAAA,kCAAA,CAAA,CAAA,GAAA,WAAA,QAAA,EAAA,OAAA,+BAAA,CAAA,CAAA,GAAA,WAAA,SAAA,EAAA,OAAA,gCAAA,CAAA,CAAA,mYAAA,CAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,kCAAA,CAAA,CAAA,mCAAA,UAAA,8HAAA,UAAA,yFAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,cAAA,CAAA,CAAA,mCAAA,UAAA,4HAAA,UAAA,6nCAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,koBAAA,WAAA,gBAAA,EAAA,OAAA,uCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,sNAAA,WAAA,OAAA,EAAA,OAAA,cAAA,CAAA,CAAA,gaAAA,WAAA,oBAAA,EAAA,OAAA,2CAAA,CAAA,CAAA,GAAA,WAAA,mBAAA,EAAA,OAAA,0CAAA,CAAA,CAAA;;;;iBAIK;;;gBACb,aAAqB,qBAAG;;;yBACV;;;AAGxB,eAAa,OAAO,wBAAoB,SAAA,wBAAA"}
1
+ {"version":3,"file":"minimal-skin.js","names":[],"sources":["../../../../src/define/video/minimal-skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './minimal-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/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-minimal-skin media-minimal-skin--video\">\n <slot name=\"media\"></slot>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\n\n <media-controls class=\"media-controls\">\n <media-tooltip-group>\n <div class=\"media-button-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-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-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-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </div>\n\n <div class=\"media-time-controls\">\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value media-time__value--current\"></media-time>\n <media-time-separator class=\"media-time__separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time__value media-time__value--duration\"></media-time>\n </media-time-group>\n\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 </div>\n\n <div class=\"media-button-group\">\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-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-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-tooltip\">\n Toggle captions\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--icon\">\n ${renderIcon('pip', { class: 'media-icon' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"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-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 </div>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n </media-container>\n `;\n}\n\nexport class MinimalVideoSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-minimal-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalVideoSkinElement.tagName, MinimalVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalVideoSkinElement.tagName]: MinimalVideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,iKAAA,WAAA,WAAA,EAAA,OAAA,cAAA,CAAA,CAAA,oOAAA,WAAA,WAAA,EAAA,OAAA,kCAAA,CAAA,CAAA,GAAA,WAAA,QAAA,EAAA,OAAA,+BAAA,CAAA,CAAA,GAAA,WAAA,SAAA,EAAA,OAAA,gCAAA,CAAA,CAAA,mYAAA,CAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,kCAAA,CAAA,CAAA,mCAAA,UAAA,8HAAA,UAAA,yFAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,cAAA,CAAA,CAAA,mCAAA,UAAA,4HAAA,UAAA,ynCAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,koBAAA,WAAA,gBAAA,EAAA,OAAA,uCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,sNAAA,WAAA,OAAA,EAAA,OAAA,cAAA,CAAA,CAAA,gaAAA,WAAA,oBAAA,EAAA,OAAA,2CAAA,CAAA,CAAA,GAAA,WAAA,mBAAA,EAAA,OAAA,0CAAA,CAAA,CAAA;;;;iBAIK;;;gBACb,aAAqB,qBAAG;;;yBACV;;;AAGxB,eAAe,OAAO,wBAAM,SAAA,wBAAA"}
@@ -1,15 +1,14 @@
1
1
  import { SkinMixin } from "../skin-mixin.js";
2
2
  import { renderIcon } from "../../icons/dist/render/minimal/index.js";
3
+ import { iconState } from "../../skins/dist/default/shared/tailwind/icon-state.js";
4
+ import { tooltipState } from "../../skins/dist/default/shared/tailwind/tooltip-state.js";
3
5
  import { bufferingIndicator } from "../../skins/dist/default/minimal/tailwind/components/buffering.js";
4
6
  import { button } from "../../skins/dist/default/minimal/tailwind/components/button.js";
5
7
  import { buttonGroup } from "../../skins/dist/default/minimal/tailwind/components/button-group.js";
6
- import { error } from "../../skins/dist/default/minimal/tailwind/components/error.js";
7
8
  import { icon, iconContainer, iconFlipped } from "../../skins/dist/default/minimal/tailwind/components/icon.js";
8
9
  import { seek } from "../../skins/dist/default/minimal/tailwind/components/seek.js";
9
10
  import { time } from "../../skins/dist/default/minimal/tailwind/components/time.js";
10
- import { iconState } from "../../skins/dist/default/minimal/tailwind/components/icon-state.js";
11
11
  import { overlay } from "../../skins/dist/default/minimal/tailwind/components/overlay.js";
12
- import { tooltipState } from "../../skins/dist/default/minimal/tailwind/components/tooltip-state.js";
13
12
  import { controls, popup, root, slider } from "../../skins/dist/default/minimal/tailwind/video.tailwind.js";
14
13
  import "../media/container.js";
15
14
  import "../ui/buffering-indicator.js";
@@ -25,6 +24,7 @@ import "../ui/seek-button.js";
25
24
  import "../ui/time.js";
26
25
  import "../ui/time-slider.js";
27
26
  import "../ui/tooltip.js";
27
+ import "../ui/tooltip-group.js";
28
28
  import "../ui/volume-slider.js";
29
29
  import { playbackRate } from "../../skins/dist/default/default/tailwind/components/playback-rate.js";
30
30
  import { ReactiveElement } from "@videojs/element";
@@ -33,7 +33,7 @@ import { cn } from "@videojs/utils/style";
33
33
  //#region src/define/video/minimal-skin.tailwind.ts
34
34
  const SEEK_TIME = 10;
35
35
  function getTemplateHTML() {
36
- return `<media-container class="${root(true)}"><slot name="media"></slot><media-buffering-indicator class="${bufferingIndicator}"> ${renderIcon("spinner")} </media-buffering-indicator><!--<div class="${error.root}" role="alertdialog" aria-labelledby="media-error-title" aria-describedby="media-error-description"><div class="${error.dialog}"><div class="${error.content}"><p id="media-error-title" class="${error.title}">Something went wrong.</p><p id="media-error-description">An error occurred while trying to play the video. Please try again.</p></div><div class="${error.actions}"><button type="button" class="${cn(button.base, button.default)}">OK</button></div></div></div>--><media-controls data-controls="" class="${controls}"><span class="${buttonGroup}"><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></span><span class="${time.controls}"><media-time-group class="${time.group}"><media-time type="current" class="${time.current}"></media-time><media-time-separator class="${time.separator}"></media-time-separator><media-time type="duration" class="${time.duration}"></media-time></media-time-group><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></span><span class="${buttonGroup}"><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.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="${slider.thumb.base}"></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></span></media-controls><div class="${overlay}"></div></media-container>`;
36
+ return `<media-container class="${root(true)}"><slot name="media"></slot><media-buffering-indicator class="${bufferingIndicator}"> ${renderIcon("spinner")} </media-buffering-indicator><media-controls data-controls="" class="${controls}"><media-tooltip-group class="contents"><div class="${buttonGroup}"><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></div><div class="${time.controls}"><media-time-group class="${time.group}"><media-time type="current" class="${time.current}"></media-time><media-time-separator class="${time.separator}"></media-time-separator><media-time type="duration" class="${time.duration}"></media-time></media-time-group><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></div><div class="${buttonGroup}"><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.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="${slider.thumb.base}"></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></div></media-tooltip-group></media-controls><div class="${overlay}"></div></media-container>`;
37
37
  }
38
38
  var MinimalVideoSkinTailwindElement = class extends SkinMixin(ReactiveElement) {
39
39
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"minimal-skin.tailwind.js","names":[],"sources":["../../../../src/define/video/minimal-skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport {\n bufferingIndicator,\n button,\n buttonGroup,\n controls,\n error,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n overlay,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/minimal/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/volume-slider';\nimport { playbackRate } from '@videojs/skins/default/tailwind/video.tailwind';\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}\">\n ${renderIcon('spinner')}\n </media-buffering-indicator>\n\n <!--<div class=\"${error.root}\" role=\"alertdialog\" aria-labelledby=\"media-error-title\" aria-describedby=\"media-error-description\">\n <div class=\"${error.dialog}\">\n <div class=\"${error.content}\">\n <p id=\"media-error-title\" class=\"${error.title}\">Something went wrong.</p>\n <p id=\"media-error-description\">An error occurred while trying to play the video. Please try again.</p>\n </div>\n <div class=\"${error.actions}\">\n <button type=\"button\" class=\"${cn(button.base, button.default)}\">OK</button>\n </div>\n </div>\n </div>-->\n\n <media-controls data-controls=\"\" class=\"${controls}\">\n <span class=\"${buttonGroup}\">\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 </span>\n\n <span class=\"${time.controls}\">\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-separator class=\"${time.separator}\"></media-time-separator>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\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 </span>\n\n <span class=\"${buttonGroup}\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.icon, playbackRate.button)}\">\n </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.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=\"${slider.thumb.base}\"></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 </span>\n </media-controls>\n\n <div class=\"${overlay}\"></div>\n </media-container>\n `;\n}\n\nexport class MinimalVideoSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-minimal-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalVideoSkinTailwindElement.tagName, MinimalVideoSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalVideoSkinTailwindElement.tagName]: MinimalVideoSkinTailwindElement;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"minimal-skin.tailwind.js","names":[],"sources":["../../../../src/define/video/minimal-skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport {\n bufferingIndicator,\n button,\n buttonGroup,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n overlay,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/minimal/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';\nimport { playbackRate } from '@videojs/skins/default/tailwind/video.tailwind';\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}\">\n ${renderIcon('spinner')}\n </media-buffering-indicator>\n\n <media-controls data-controls=\"\" class=\"${controls}\">\n <media-tooltip-group class=\"contents\">\n <div class=\"${buttonGroup}\">\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 </div>\n\n <div class=\"${time.controls}\">\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-separator class=\"${time.separator}\"></media-time-separator>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\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 </div>\n\n <div class=\"${buttonGroup}\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.icon, playbackRate.button)}\">\n </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.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=\"${slider.thumb.base}\"></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 </div>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"${overlay}\"></div>\n </media-container>\n `;\n}\n\nexport class MinimalVideoSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-minimal-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalVideoSkinTailwindElement.tagName, MinimalVideoSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalVideoSkinTailwindElement.tagName]: MinimalVideoSkinTailwindElement;\n }\n}\n"],"mappings":"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"}
@@ -125,6 +125,8 @@
125
125
  position: relative;
126
126
  isolation: isolate;
127
127
  display: block;
128
+ height: 100%;
129
+ width: 100%;
128
130
  container: media-root / inline-size;
129
131
  border-radius: var(--media-border-radius, 2rem);
130
132
  font-family:
@@ -138,10 +140,6 @@
138
140
  letter-spacing: normal;
139
141
  -webkit-font-smoothing: auto;
140
142
  -moz-osx-font-smoothing: auto;
141
-
142
- &:fullscreen {
143
- border-radius: 0;
144
- }
145
143
  }
146
144
 
147
145
  /* ==========================================================================
@@ -185,8 +183,13 @@
185
183
  display: block;
186
184
  width: 100%;
187
185
  height: 100%;
186
+ }
187
+ .media-default-skin ::slotted(video) {
188
188
  border-radius: var(--media-border-radius, 2rem);
189
189
  }
190
+ .media-default-skin video {
191
+ border-radius: inherit;
192
+ }
190
193
 
191
194
  /* ==========================================================================
192
195
  Poster Image
@@ -207,6 +210,19 @@
207
210
  }
208
211
  }
209
212
 
213
+ /* ==========================================================================
214
+ Fullscreen
215
+ ========================================================================== */
216
+
217
+ .media-default-skin:fullscreen video,
218
+ .media-default-skin:fullscreen ::slotted(video),
219
+ .media-default-skin > img {
220
+ object-fit: contain;
221
+ }
222
+ .media-default-skin:fullscreen ::slotted(video) {
223
+ border-radius: 0;
224
+ }
225
+
210
226
  /* ==========================================================================
211
227
  Overlay / Scrim
212
228
  ========================================================================== */
@@ -216,7 +232,7 @@
216
232
  inset: 0;
217
233
  border-radius: inherit;
218
234
  background-image: linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.3), oklch(0 0 0 / 0));
219
- backdrop-filter: blur(0) saturate(1.2) brightness(0.9);
235
+ backdrop-filter: blur(0) saturate(1.5);
220
236
  opacity: 0;
221
237
  transition-property: opacity, backdrop-filter;
222
238
  transition-duration: 300ms;
@@ -237,7 +253,7 @@
237
253
  }
238
254
 
239
255
  .media-default-skin .media-error[data-open] ~ .media-overlay {
240
- backdrop-filter: blur(8px) saturate(1.2) brightness(0.9);
256
+ backdrop-filter: blur(16px) saturate(1.5);
241
257
  }
242
258
 
243
259
  /* ==========================================================================
@@ -713,62 +729,9 @@
713
729
  }
714
730
 
715
731
  /* ==========================================================================
716
- Captions
732
+ Native Caption Track
717
733
  ========================================================================== */
718
734
 
719
- .media-default-skin .media-captions {
720
- position: absolute;
721
- inset: auto 1rem 1.5rem 1rem;
722
- z-index: 20;
723
- font-size: 1rem;
724
- text-wrap: balance;
725
- pointer-events: none;
726
-
727
- @container media-root (width > 20rem) {
728
- font-size: 1.5rem;
729
- }
730
-
731
- @container media-root (width > 48rem) {
732
- font-size: 1.875rem;
733
- }
734
-
735
- @container media-root (width > 80rem) {
736
- font-size: 2.25rem;
737
- }
738
- }
739
-
740
- .media-default-skin .media-captions__container {
741
- display: flex;
742
- flex-direction: column;
743
- align-items: center;
744
- max-width: 42ch;
745
- margin: 0 auto;
746
- text-align: center;
747
- }
748
-
749
- .media-default-skin .media-captions__text {
750
- display: block;
751
- padding: 0.125rem 0.5rem;
752
- color: oklch(1 0 0);
753
- text-shadow:
754
- 0 0 1px oklch(0 0 0 / 0.7),
755
- 0 0 8px oklch(0 0 0 / 0.7);
756
- text-align: center;
757
- white-space: pre-wrap;
758
- line-height: 1.2;
759
-
760
- @media (prefers-contrast: more) {
761
- background: oklch(0 0 0 / 0.7);
762
- text-shadow: none;
763
- box-decoration-break: clone;
764
- }
765
-
766
- & > * {
767
- display: inline;
768
- }
769
- }
770
-
771
- /* Caption shifting styles (custom and native) */
772
735
  .media-default-skin {
773
736
  --media-caption-track-delay: 600ms;
774
737
  --media-caption-track-y: -0.5rem;
@@ -779,26 +742,16 @@
779
742
  }
780
743
  }
781
744
 
782
- .media-default-skin .media-captions,
783
745
  .media-default-skin video::-webkit-media-text-track-container {
784
746
  /* NOTE: The delay must account for the controls delay/duration */
785
747
  transition: transform 150ms ease-out;
786
748
  transition-delay: var(--media-caption-track-delay);
787
- }
788
-
789
- .media-default-skin video::-webkit-media-text-track-container {
790
749
  transform: translateY(var(--media-caption-track-y)) scale(0.98);
791
750
  z-index: 1;
792
751
  font-family: inherit;
793
752
  }
794
753
 
795
- /* When controls are visible, shift captions up to avoid overlap */
796
- .media-default-skin .media-controls[data-visible] ~ .media-captions {
797
- transform: translateY(calc(var(--media-caption-track-y) - 0.5rem));
798
- }
799
-
800
754
  @media (prefers-reduced-motion: reduce) {
801
- .media-default-skin .media-captions,
802
755
  .media-default-skin video::-webkit-media-text-track-container {
803
756
  transition-duration: 50ms;
804
757
  }
@@ -816,7 +769,7 @@
816
769
  --media-surface-inner-border-color: oklch(1 0 0 / 0.05);
817
770
  --media-surface-outer-border-color: oklch(0 0 0 / 0.1);
818
771
  --media-surface-shadow-color: oklch(0 0 0 / 0.15);
819
- --media-surface-backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);
772
+ --media-surface-backdrop-filter: blur(16px) saturate(1.5);
820
773
 
821
774
  @media (prefers-color-scheme: dark) {
822
775
  --media-border-color: oklch(1 0 0 / 0.1);
@@ -832,6 +785,10 @@
832
785
  box-shadow: inset 0 0 0 1px var(--media-border-color);
833
786
  pointer-events: none;
834
787
  }
788
+
789
+ &:fullscreen {
790
+ border-radius: 0;
791
+ }
835
792
  }
836
793
 
837
794
  /* ==========================================================================
@@ -876,3 +833,7 @@
876
833
  box-shadow: 0 0 0 1px oklch(0 0 0 / 0.05);
877
834
  }
878
835
 
836
+ media-tooltip-group {
837
+ display: contents;
838
+ }
839
+