@videojs/html 10.0.0-beta.3 → 10.0.0-beta.5

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 (159) hide show
  1. package/cdn/audio-minimal.css +1 -1
  2. package/cdn/audio-minimal.dev.js +172 -87
  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 +166 -81
  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 +27 -18
  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 +196 -111
  25. package/cdn/video-minimal.dev.js.map +1 -1
  26. package/cdn/video-minimal.js +3 -3
  27. package/cdn/video-minimal.js.map +1 -1
  28. package/cdn/video.css +1 -1
  29. package/cdn/video.dev.js +192 -107
  30. package/cdn/video.dev.js.map +1 -1
  31. package/cdn/video.js +5 -5
  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/video/minimal-skin.js +1 -1
  38. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  39. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  40. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  41. package/dist/default/define/audio/minimal-skin.css +8 -2
  42. package/dist/default/define/audio/minimal-skin.js +2 -1
  43. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  44. package/dist/default/define/audio/minimal-skin.tailwind.js +5 -2
  45. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  46. package/dist/default/define/audio/skin.css +5 -5
  47. package/dist/default/define/audio/skin.js +2 -1
  48. package/dist/default/define/audio/skin.js.map +1 -1
  49. package/dist/default/define/audio/skin.tailwind.js +5 -2
  50. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  51. package/dist/default/define/shared.css +3 -0
  52. package/dist/default/define/video/minimal-skin.css +68 -31
  53. package/dist/default/define/video/minimal-skin.js +2 -1
  54. package/dist/default/define/video/minimal-skin.js.map +1 -1
  55. package/dist/default/define/video/minimal-skin.tailwind.js +4 -3
  56. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  57. package/dist/default/define/video/skin.css +61 -23
  58. package/dist/default/define/video/skin.js +2 -1
  59. package/dist/default/define/video/skin.js.map +1 -1
  60. package/dist/default/define/video/skin.tailwind.js +4 -3
  61. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  62. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +3 -21
  63. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  64. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  65. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  66. package/dist/default/skins/dist/default/default/tailwind/components/root.js +1 -1
  67. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  68. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +8 -5
  69. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  70. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +3 -21
  71. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  72. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  73. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  74. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
  75. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  76. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -4
  77. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  78. package/dist/default/skins/dist/default/{default/tailwind/components → shared/tailwind}/icon-state.js +1 -1
  79. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  80. package/dist/{dev/skins/dist/default/default/tailwind/components → default/skins/dist/default/shared/tailwind}/tooltip-state.js +1 -1
  81. package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -0
  82. package/dist/default/store/container-mixin.js +22 -10
  83. package/dist/default/store/container-mixin.js.map +1 -1
  84. package/dist/default/ui/tooltip/tooltip-group-element.js +4 -1
  85. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  86. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  87. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  88. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  89. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  90. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  91. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  92. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  93. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  94. package/dist/dev/define/audio/minimal-skin.css +8 -2
  95. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  96. package/dist/dev/define/audio/minimal-skin.js +67 -64
  97. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  98. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
  99. package/dist/dev/define/audio/minimal-skin.tailwind.js +71 -66
  100. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  101. package/dist/dev/define/audio/skin.css +5 -5
  102. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  103. package/dist/dev/define/audio/skin.js +59 -56
  104. package/dist/dev/define/audio/skin.js.map +1 -1
  105. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
  106. package/dist/dev/define/audio/skin.tailwind.js +64 -59
  107. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  108. package/dist/dev/define/shared.css +3 -0
  109. package/dist/dev/define/video/minimal-skin.css +68 -31
  110. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  111. package/dist/dev/define/video/minimal-skin.js +88 -85
  112. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  113. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  114. package/dist/dev/define/video/minimal-skin.tailwind.js +98 -95
  115. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  116. package/dist/dev/define/video/skin.css +61 -23
  117. package/dist/dev/define/video/skin.d.ts.map +1 -1
  118. package/dist/dev/define/video/skin.js +82 -79
  119. package/dist/dev/define/video/skin.js.map +1 -1
  120. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  121. package/dist/dev/define/video/skin.tailwind.js +92 -89
  122. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  123. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +3 -21
  124. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  125. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  126. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  127. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +1 -1
  128. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  129. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +8 -5
  130. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  131. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +3 -21
  132. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.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 +1 -1
  136. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  137. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -4
  138. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  139. package/dist/{default/skins/dist/default/minimal/tailwind/components → dev/skins/dist/default/shared/tailwind}/icon-state.js +1 -1
  140. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  141. package/dist/dev/skins/dist/default/{minimal/tailwind/components → shared/tailwind}/tooltip-state.js +1 -1
  142. package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -0
  143. package/dist/dev/store/container-mixin.js +22 -10
  144. package/dist/dev/store/container-mixin.js.map +1 -1
  145. package/dist/dev/ui/tooltip/tooltip-group-element.js +4 -1
  146. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  147. package/package.json +8 -8
  148. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  149. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js +0 -28
  150. package/dist/default/skins/dist/default/default/tailwind/components/tooltip-state.js.map +0 -1
  151. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  152. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js +0 -28
  153. package/dist/default/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +0 -1
  154. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js +0 -29
  155. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  156. package/dist/dev/skins/dist/default/default/tailwind/components/tooltip-state.js.map +0 -1
  157. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  158. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  159. package/dist/dev/skins/dist/default/minimal/tailwind/components/tooltip-state.js.map +0 -1
@@ -1,5 +1,7 @@
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 { button } from "../../skins/dist/default/minimal/tailwind/components/button.js";
4
6
  import { buttonGroup } from "../../skins/dist/default/minimal/tailwind/components/button-group.js";
5
7
  import { icon, iconContainer, iconFlipped } from "../../skins/dist/default/minimal/tailwind/components/icon.js";
@@ -15,9 +17,10 @@ import "../ui/seek-button.js";
15
17
  import "../ui/time.js";
16
18
  import "../ui/time-slider.js";
17
19
  import "../ui/tooltip.js";
20
+ import "../ui/tooltip-group.js";
18
21
  import "../ui/volume-slider.js";
19
22
  import { playbackRate } from "../../skins/dist/default/default/tailwind/components/playback-rate.js";
20
- import { controls, iconState, popup, root, tooltipState } from "../../skins/dist/default/minimal/tailwind/audio.tailwind.js";
23
+ import { controls, popup, root } from "../../skins/dist/default/minimal/tailwind/audio.tailwind.js";
21
24
  import { ReactiveElement } from "@videojs/element";
22
25
  import { cn } from "@videojs/utils/style";
23
26
 
@@ -29,79 +32,81 @@ function getTemplateHTML() {
29
32
  <slot name="media"></slot>
30
33
 
31
34
  <div class="${controls}">
32
- <span class="${buttonGroup}">
33
- <span class="${tooltipState.play.wrapper}">
34
- <media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}">
35
- ${renderIcon("restart", { class: cn(icon, iconState.play.restart) })}
36
- ${renderIcon("play", { class: cn(icon, iconState.play.play) })}
37
- ${renderIcon("pause", { class: cn(icon, iconState.play.pause) })}
38
- </media-play-button>
39
- <media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}">
40
- <span class="${tooltipState.play.replay}">Replay</span>
41
- <span class="${tooltipState.play.play}">Play</span>
42
- <span class="${tooltipState.play.pause}">Pause</span>
43
- </media-tooltip>
44
- </span>
45
-
46
- <media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
47
- <span class="${iconContainer}">
48
- ${renderIcon("seek", { class: cn(icon, iconFlipped) })}
49
- <span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span>
50
- </span>
51
- </media-seek-button>
52
- <media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}">
53
- Seek backward ${SEEK_TIME} seconds
54
- </media-tooltip>
55
-
56
- <media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
57
- <span class="${iconContainer}">
58
- ${renderIcon("seek", { class: icon })}
59
- <span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span>
35
+ <media-tooltip-group class="contents">
36
+ <div class="${buttonGroup}">
37
+ <span class="${tooltipState.play.wrapper}">
38
+ <media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}">
39
+ ${renderIcon("restart", { class: cn(icon, iconState.play.restart) })}
40
+ ${renderIcon("play", { class: cn(icon, iconState.play.play) })}
41
+ ${renderIcon("pause", { class: cn(icon, iconState.play.pause) })}
42
+ </media-play-button>
43
+ <media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}">
44
+ <span class="${tooltipState.play.replay}">Replay</span>
45
+ <span class="${tooltipState.play.play}">Play</span>
46
+ <span class="${tooltipState.play.pause}">Pause</span>
47
+ </media-tooltip>
60
48
  </span>
61
- </media-seek-button>
62
- <media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}">
63
- Seek forward ${SEEK_TIME} seconds
64
- </media-tooltip>
65
- </span>
66
-
67
- <span class="${time.controls}">
68
- <media-time-group class="${time.group}">
69
- <media-time type="current" class="${time.current}"></media-time>
70
- <media-time-separator class="${time.separator}"></media-time-separator>
71
- <media-time type="duration" class="${time.duration}"></media-time>
72
- </media-time-group>
73
49
 
74
- <media-time-slider class="${slider.root}">
75
- <media-slider-track class="${slider.track}">
76
- <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
77
- <media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer>
78
- </media-slider-track>
79
- <media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb>
80
- </media-time-slider>
81
- </span>
50
+ <media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
51
+ <span class="${iconContainer}">
52
+ ${renderIcon("seek", { class: cn(icon, iconFlipped) })}
53
+ <span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span>
54
+ </span>
55
+ </media-seek-button>
56
+ <media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}">
57
+ Seek backward ${SEEK_TIME} seconds
58
+ </media-tooltip>
82
59
 
83
- <span class="${buttonGroup}">
84
- <media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}">
85
- </media-playback-rate-button>
86
- <media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}">
87
- Toggle playback rate
88
- </media-tooltip>
60
+ <media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
61
+ <span class="${iconContainer}">
62
+ ${renderIcon("seek", { class: icon })}
63
+ <span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span>
64
+ </span>
65
+ </media-seek-button>
66
+ <media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}">
67
+ Seek forward ${SEEK_TIME} seconds
68
+ </media-tooltip>
69
+ </div>
89
70
 
90
- <media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}">
91
- ${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })}
92
- ${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })}
93
- ${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })}
94
- </media-mute-button>
71
+ <div class="${time.controls}">
72
+ <media-time-group class="${time.group}">
73
+ <media-time type="current" class="${time.current}"></media-time>
74
+ <media-time-separator class="${time.separator}"></media-time-separator>
75
+ <media-time type="duration" class="${time.duration}"></media-time>
76
+ </media-time-group>
95
77
 
96
- <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="left" class="${cn(popup.volume)}">
97
- <media-volume-slider class="${slider.root}" orientation="horizontal" thumb-alignment="edge">
78
+ <media-time-slider class="${slider.root}">
98
79
  <media-slider-track class="${slider.track}">
99
80
  <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
81
+ <media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer>
100
82
  </media-slider-track>
101
- <media-slider-thumb class="${slider.thumb.base}"></media-slider-thumb>
102
- </media-volume-slider>
103
- </media-popover>
104
- </span>
83
+ <media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb>
84
+ </media-time-slider>
85
+ </div>
86
+
87
+ <div class="${buttonGroup}">
88
+ <media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}">
89
+ </media-playback-rate-button>
90
+ <media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}">
91
+ Toggle playback rate
92
+ </media-tooltip>
93
+
94
+ <media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}">
95
+ ${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })}
96
+ ${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })}
97
+ ${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })}
98
+ </media-mute-button>
99
+
100
+ <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="left" class="${cn(popup.volume)}">
101
+ <media-volume-slider class="${slider.root}" orientation="horizontal" thumb-alignment="edge">
102
+ <media-slider-track class="${slider.track}">
103
+ <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
104
+ </media-slider-track>
105
+ <media-slider-thumb class="${slider.thumb.base}"></media-slider-thumb>
106
+ </media-volume-slider>
107
+ </media-popover>
108
+ </div>
109
+ </media-tooltip-group>
105
110
  </div>
106
111
  </media-container>
107
112
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"minimal-skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/minimal-skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { playbackRate } from '@videojs/skins/default/tailwind/audio.tailwind';\nimport {\n button,\n buttonGroup,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/minimal/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <slot name=\"media\"></slot>\n\n <div 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=\"audio-volume-popover\" class=\"${cn(button.base, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"left\" class=\"${cn(popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"horizontal\" 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 </span>\n </div>\n </media-container>\n `;\n}\n\nexport class MinimalAudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-minimal-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalAudioSkinTailwindElement.tagName, MinimalAudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinTailwindElement.tagName]: MinimalAudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;8BACY,KAAK;;;oBAGf,SAAS;uBACN,YAAY;yBACV,aAAa,KAAK,QAAQ;kEACe,GAAG,OAAO,MAAM,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;gBACtG,WAAW,WAAW,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,QAAQ,EAAE,CAAC,CAAC;gBACnE,WAAW,QAAQ,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC7D,WAAW,SAAS,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;;iEAEd,GAAG,MAAM,QAAQ,CAAC;6BACtD,aAAa,KAAK,OAAO;6BACzB,aAAa,KAAK,KAAK;6BACvB,aAAa,KAAK,MAAM;;;;2EAIsB,CAAC,UAAU,WAAW,GAAG,OAAO,MAAM,OAAO,MAAM,KAAK,OAAO,CAAC;2BAChH,cAAc;gBACzB,WAAW,QAAQ,EAAE,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC,CAAC;6BACxC,GAAG,KAAK,OAAO,KAAK,cAAc,CAAC,IAAI,UAAU;;;wEAGN,GAAG,MAAM,QAAQ,CAAC;4BAC9D,UAAU;;;0EAGoC,UAAU,WAAW,GAAG,OAAO,MAAM,OAAO,MAAM,KAAK,OAAO,CAAC;2BAC9G,cAAc;gBACzB,WAAW,QAAQ,EAAE,OAAO,MAAM,CAAC,CAAC;6BACvB,GAAG,KAAK,OAAO,KAAK,aAAa,CAAC,IAAI,UAAU;;;uEAGN,GAAG,MAAM,QAAQ,CAAC;2BAC9D,UAAU;;;;uBAId,KAAK,SAAS;qCACA,KAAK,MAAM;gDACA,KAAK,QAAQ;2CAClB,KAAK,UAAU;iDACT,KAAK,SAAS;;;sCAGzB,OAAO,KAAK;yCACT,OAAO,MAAM;0CACZ,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;4CACrC,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,OAAO,CAAC;;yCAE5C,GAAG,OAAO,MAAM,MAAM,OAAO,MAAM,YAAY,CAAC;;;;uBAIlE,YAAY;mFACgD,GAAG,OAAO,MAAM,OAAO,MAAM,aAAa,OAAO,CAAC;;wEAE7D,GAAG,MAAM,QAAQ,CAAC;;;;wEAIlB,GAAG,OAAO,MAAM,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;cAC9G,WAAW,cAAc,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;cACxE,WAAW,cAAc,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;cACxE,WAAW,eAAe,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,WAAW,EAAE,CAAC,CAAC;;;oHAG4B,GAAG,MAAM,OAAO,CAAC;0CAC3F,OAAO,KAAK;2CACX,OAAO,MAAM;4CACZ,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;;2CAExC,OAAO,MAAM,KAAK;;;;;;;;AAS7D,IAAa,kCAAb,cAAqD,UAAU,gBAAgB,CAAC;;iBACpD;;;yBACD;;;AAG3B,eAAe,OAAO,gCAAgC,SAAS,gCAAgC"}
1
+ {"version":3,"file":"minimal-skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/minimal-skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { playbackRate } from '@videojs/skins/default/tailwind/audio.tailwind';\nimport {\n button,\n buttonGroup,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/minimal/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <slot name=\"media\"></slot>\n\n <div 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=\"audio-volume-popover\" class=\"${cn(button.base, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"left\" class=\"${cn(popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"horizontal\" 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 </div>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class MinimalAudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-minimal-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalAudioSkinTailwindElement.tagName, MinimalAudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinTailwindElement.tagName]: MinimalAudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;8BACY,KAAK;;;oBAGf,SAAS;;wBAEL,YAAY;2BACT,aAAa,KAAK,QAAQ;oEACe,GAAG,OAAO,MAAM,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;kBACtG,WAAW,WAAW,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,QAAQ,EAAE,CAAC,CAAC;kBACnE,WAAW,QAAQ,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;kBAC7D,WAAW,SAAS,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;;mEAEd,GAAG,MAAM,QAAQ,CAAC;+BACtD,aAAa,KAAK,OAAO;+BACzB,aAAa,KAAK,KAAK;+BACvB,aAAa,KAAK,MAAM;;;;6EAIsB,CAAC,UAAU,WAAW,GAAG,OAAO,MAAM,OAAO,MAAM,KAAK,OAAO,CAAC;6BAChH,cAAc;kBACzB,WAAW,QAAQ,EAAE,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC,CAAC;+BACxC,GAAG,KAAK,OAAO,KAAK,cAAc,CAAC,IAAI,UAAU;;;0EAGN,GAAG,MAAM,QAAQ,CAAC;8BAC9D,UAAU;;;4EAGoC,UAAU,WAAW,GAAG,OAAO,MAAM,OAAO,MAAM,KAAK,OAAO,CAAC;6BAC9G,cAAc;kBACzB,WAAW,QAAQ,EAAE,OAAO,MAAM,CAAC,CAAC;+BACvB,GAAG,KAAK,OAAO,KAAK,aAAa,CAAC,IAAI,UAAU;;;yEAGN,GAAG,MAAM,QAAQ,CAAC;6BAC9D,UAAU;;;;wBAIf,KAAK,SAAS;uCACC,KAAK,MAAM;kDACA,KAAK,QAAQ;6CAClB,KAAK,UAAU;mDACT,KAAK,SAAS;;;wCAGzB,OAAO,KAAK;2CACT,OAAO,MAAM;4CACZ,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;8CACrC,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,OAAO,CAAC;;2CAE5C,GAAG,OAAO,MAAM,MAAM,OAAO,MAAM,YAAY,CAAC;;;;wBAInE,YAAY;qFACiD,GAAG,OAAO,MAAM,OAAO,MAAM,aAAa,OAAO,CAAC;;0EAE7D,GAAG,MAAM,QAAQ,CAAC;;;;0EAIlB,GAAG,OAAO,MAAM,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;gBAC9G,WAAW,cAAc,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;gBACxE,WAAW,cAAc,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;gBACxE,WAAW,eAAe,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,WAAW,EAAE,CAAC,CAAC;;;sHAG4B,GAAG,MAAM,OAAO,CAAC;4CAC3F,OAAO,KAAK;6CACX,OAAO,MAAM;8CACZ,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;;6CAExC,OAAO,MAAM,KAAK;;;;;;;;;AAU/D,IAAa,kCAAb,cAAqD,UAAU,gBAAgB,CAAC;;iBACpD;;;yBACD;;;AAG3B,eAAe,OAAO,gCAAgC,SAAS,gCAAgC"}
@@ -110,10 +110,6 @@
110
110
  letter-spacing: normal;
111
111
  -webkit-font-smoothing: auto;
112
112
  -moz-osx-font-smoothing: auto;
113
-
114
- &:fullscreen {
115
- border-radius: 0;
116
- }
117
113
  }
118
114
 
119
115
  /* ==========================================================================
@@ -631,7 +627,7 @@
631
627
  --media-surface-inner-border-color: oklch(1 0 0 / 0.1);
632
628
  --media-surface-outer-border-color: oklch(0 0 0 / 0.05);
633
629
  --media-surface-shadow-color: oklch(0 0 0 / 0.15);
634
- --media-surface-backdrop-filter: blur(8px) brightness(0.98) saturate(1.2);
630
+ --media-surface-backdrop-filter: blur(16px) saturate(1.5);
635
631
 
636
632
  @media (prefers-color-scheme: dark) {
637
633
  --media-border-color: oklch(1 0 0 / 0.1);
@@ -661,3 +657,7 @@
661
657
  }
662
658
  }
663
659
 
660
+ media-tooltip-group {
661
+ display: contents;
662
+ }
663
+
@@ -1 +1 @@
1
- {"version":3,"file":"skin.d.ts","names":[],"sources":["../../../../src/define/audio/skin.ts"],"mappings":";;;iBAmBS,eAAA,CAAA;AAAA,cAAe,qBAAA;;;;cAyEX,gBAAA,SAAyB,qBAAA;EAAA,gBACpB,OAAA;EAAA,OACT,MAAA,EAAM,aAAA;EAAA,OACN,eAAA,SAAe,eAAA;AAAA;AAAA,QAKhB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,gBAAA,CAAiB,OAAA,GAAU,gBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"skin.d.ts","names":[],"sources":["../../../../src/define/audio/skin.ts"],"mappings":";;;iBAoBS,eAAA,CAAA;AAAA,cAAe,qBAAA;;;;cA2EX,gBAAA,SAAyB,qBAAA;EAAA,gBACpB,OAAA;EAAA,OACT,MAAA,EAAM,aAAA;EAAA,OACN,eAAA,SAAe,eAAA;AAAA;AAAA,QAKhB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,gBAAA,CAAiB,OAAA,GAAU,gBAAA;EAAA;AAAA"}
@@ -8,6 +8,7 @@ import "../ui/seek-button.js";
8
8
  import "../ui/time.js";
9
9
  import "../ui/time-slider.js";
10
10
  import "../ui/tooltip.js";
11
+ import "../ui/tooltip-group.js";
11
12
  import "../ui/volume-slider.js";
12
13
  import { renderIcon } from "../../icons/dist/render/default/index.js";
13
14
  import skin_default from "../../_virtual/inline-css_src/define/audio/skin.js";
@@ -21,68 +22,70 @@ function getTemplateHTML() {
21
22
  <slot name="media"></slot>
22
23
 
23
24
  <div class="media-surface media-controls">
24
- <media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play">
25
- ${renderIcon("restart", { class: "media-icon media-icon--restart" })}
26
- ${renderIcon("play", { class: "media-icon media-icon--play" })}
27
- ${renderIcon("pause", { class: "media-icon media-icon--pause" })}
28
- </media-play-button>
29
- <media-tooltip id="play-tooltip" side="top" class="media-surface media-tooltip">
30
- <span class="media-tooltip-label media-tooltip-label--replay">Replay</span>
31
- <span class="media-tooltip-label media-tooltip-label--play">Play</span>
32
- <span class="media-tooltip-label media-tooltip-label--pause">Pause</span>
33
- </media-tooltip>
25
+ <media-tooltip-group>
26
+ <media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play">
27
+ ${renderIcon("restart", { class: "media-icon media-icon--restart" })}
28
+ ${renderIcon("play", { class: "media-icon media-icon--play" })}
29
+ ${renderIcon("pause", { class: "media-icon media-icon--pause" })}
30
+ </media-play-button>
31
+ <media-tooltip id="play-tooltip" side="top" class="media-surface media-tooltip">
32
+ <span class="media-tooltip-label media-tooltip-label--replay">Replay</span>
33
+ <span class="media-tooltip-label media-tooltip-label--play">Play</span>
34
+ <span class="media-tooltip-label media-tooltip-label--pause">Pause</span>
35
+ </media-tooltip>
34
36
 
35
- <media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek">
36
- <span class="media-icon__container">
37
- ${renderIcon("seek", { class: "media-icon media-icon--seek media-icon--flipped" })}
38
- <span class="media-icon__label">${SEEK_TIME}</span>
39
- </span>
40
- </media-seek-button>
41
- <media-tooltip id="seek-backward-tooltip" side="top" class="media-surface media-tooltip">
42
- Seek backward ${SEEK_TIME} seconds
43
- </media-tooltip>
37
+ <media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek">
38
+ <span class="media-icon__container">
39
+ ${renderIcon("seek", { class: "media-icon media-icon--seek media-icon--flipped" })}
40
+ <span class="media-icon__label">${SEEK_TIME}</span>
41
+ </span>
42
+ </media-seek-button>
43
+ <media-tooltip id="seek-backward-tooltip" side="top" class="media-surface media-tooltip">
44
+ Seek backward ${SEEK_TIME} seconds
45
+ </media-tooltip>
44
46
 
45
- <media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek">
46
- <span class="media-icon__container">
47
- ${renderIcon("seek", { class: "media-icon media-icon--seek" })}
48
- <span class="media-icon__label">${SEEK_TIME}</span>
49
- </span>
50
- </media-seek-button>
51
- <media-tooltip id="seek-forward-tooltip" side="top" class="media-surface media-tooltip">
52
- Seek forward ${SEEK_TIME} seconds
53
- </media-tooltip>
47
+ <media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek">
48
+ <span class="media-icon__container">
49
+ ${renderIcon("seek", { class: "media-icon media-icon--seek" })}
50
+ <span class="media-icon__label">${SEEK_TIME}</span>
51
+ </span>
52
+ </media-seek-button>
53
+ <media-tooltip id="seek-forward-tooltip" side="top" class="media-surface media-tooltip">
54
+ Seek forward ${SEEK_TIME} seconds
55
+ </media-tooltip>
54
56
 
55
- <media-time-group class="media-time">
56
- <media-time type="current" class="media-time__value"></media-time>
57
- <media-time-slider class="media-slider">
58
- <media-slider-track class="media-slider__track">
59
- <media-slider-fill class="media-slider__fill"></media-slider-fill>
60
- <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
61
- </media-slider-track>
62
- <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
63
- </media-time-slider>
64
- <media-time type="duration" class="media-time__value"></media-time>
65
- </media-time-group>
57
+ <media-time-group class="media-time">
58
+ <media-time type="current" class="media-time__value"></media-time>
59
+ <media-time-slider class="media-slider">
60
+ <media-slider-track class="media-slider__track">
61
+ <media-slider-fill class="media-slider__fill"></media-slider-fill>
62
+ <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
63
+ </media-slider-track>
64
+ <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
65
+ </media-time-slider>
66
+ <media-time type="duration" class="media-time__value"></media-time>
67
+ </media-time-group>
66
68
 
67
- <media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate"></media-playback-rate-button>
68
- <media-tooltip id="playback-rate-tooltip" side="top" class="media-surface media-tooltip">
69
- Toggle playback rate
70
- </media-tooltip>
69
+ <media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate"></media-playback-rate-button>
70
+ <media-tooltip id="playback-rate-tooltip" side="top" class="media-surface media-tooltip">
71
+ Toggle playback rate
72
+ </media-tooltip>
71
73
 
72
- <media-mute-button commandfor="audio-volume-popover" class="media-button media-button--icon media-button--mute">
73
- ${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })}
74
- ${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })}
75
- ${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })}
76
- </media-mute-button>
74
+ <media-mute-button commandfor="audio-volume-popover" class="media-button media-button--icon media-button--mute">
75
+ ${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })}
76
+ ${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })}
77
+ ${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })}
78
+ </media-mute-button>
77
79
 
78
- <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-surface media-popover media-popover--volume">
79
- <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
80
- <media-slider-track class="media-slider__track">
81
- <media-slider-fill class="media-slider__fill"></media-slider-fill>
82
- </media-slider-track>
83
- <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
84
- </media-volume-slider>
85
- </media-popover>
80
+ <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-surface media-popover media-popover--volume">
81
+ <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
82
+ <media-slider-track class="media-slider__track">
83
+ <media-slider-fill class="media-slider__fill"></media-slider-fill>
84
+ </media-slider-track>
85
+ <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
86
+ </media-volume-slider>
87
+ </media-popover>
88
+ </media-tooltip-group>
86
89
  </div>
87
90
  </media-container>
88
91
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"skin.js","names":["styles"],"sources":["../../../../src/define/audio/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-default-skin media-default-skin--audio\">\n <slot name=\"media\"></slot>\n\n <div class=\"media-surface media-controls\">\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value\"></media-time>\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"media-time__value\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"media-button media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-surface media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinElement.tagName, AudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinElement.tagName]: AudioSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;;;;;;YAMN,WAAW,WAAW,EAAE,OAAO,kCAAkC,CAAC,CAAC;YACnE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;YAC7D,WAAW,SAAS,EAAE,OAAO,gCAAgC,CAAC,CAAC;;;;;;;;yEAQF,CAAC,UAAU;;cAEtE,WAAW,QAAQ,EAAE,OAAO,mDAAmD,CAAC,CAAC;8CACjD,UAAU;;;;0BAI9B,UAAU;;;wEAGoC,UAAU;;cAEpE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;8CAC7B,UAAU;;;;yBAI/B,UAAU;;;;;;;;;;;;;;;;;;;;;YAqBvB,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;YACzE,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;YACzE,WAAW,eAAe,EAAE,OAAO,sCAAsC,CAAC,CAAC;;;;;;;;;;;;;;;AAgBvF,IAAa,mBAAb,cAAsC,UAAU,gBAAgB,CAAC;;iBACrC;;;gBACV,aAAaA,aAAO;;;yBACX;;;AAG3B,eAAe,OAAO,iBAAiB,SAAS,iBAAiB"}
1
+ {"version":3,"file":"skin.js","names":["styles"],"sources":["../../../../src/define/audio/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-default-skin media-default-skin--audio\">\n <slot name=\"media\"></slot>\n\n <div class=\"media-surface media-controls\">\n <media-tooltip-group>\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value\"></media-time>\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"media-time__value\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"media-button media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-surface media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinElement.tagName, AudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinElement.tagName]: AudioSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;;;;;;;cAOJ,WAAW,WAAW,EAAE,OAAO,kCAAkC,CAAC,CAAC;cACnE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;cAC7D,WAAW,SAAS,EAAE,OAAO,gCAAgC,CAAC,CAAC;;;;;;;;2EAQF,CAAC,UAAU;;gBAEtE,WAAW,QAAQ,EAAE,OAAO,mDAAmD,CAAC,CAAC;gDACjD,UAAU;;;;4BAI9B,UAAU;;;0EAGoC,UAAU;;gBAEpE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;gDAC7B,UAAU;;;;2BAI/B,UAAU;;;;;;;;;;;;;;;;;;;;;cAqBvB,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;cACzE,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;cACzE,WAAW,eAAe,EAAE,OAAO,sCAAsC,CAAC,CAAC;;;;;;;;;;;;;;;;AAiBzF,IAAa,mBAAb,cAAsC,UAAU,gBAAgB,CAAC;;iBACrC;;;gBACV,aAAaA,aAAO;;;yBACX;;;AAG3B,eAAe,OAAO,iBAAiB,SAAS,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"skin.tailwind.d.ts","names":[],"sources":["../../../../src/define/audio/skin.tailwind.ts"],"mappings":";;;iBAkCS,eAAA,CAAA;AAAA,cAAe,6BAAA;;;;cA2EX,wBAAA,SAAiC,6BAAA;EAAA,gBAC5B,OAAA;EAAA,OACT,eAAA,SAAe,eAAA;AAAA;AAAA,QAKhB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,wBAAA,CAAyB,OAAA,GAAU,wBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"skin.tailwind.d.ts","names":[],"sources":["../../../../src/define/audio/skin.tailwind.ts"],"mappings":";;;iBAmCS,eAAA,CAAA;AAAA,cAAe,6BAAA;;;;cA6EX,wBAAA,SAAiC,6BAAA;EAAA,gBAC5B,OAAA;EAAA,OACT,eAAA,SAAe,eAAA;AAAA;AAAA,QAKhB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,wBAAA,CAAyB,OAAA,GAAU,wBAAA;EAAA;AAAA"}
@@ -1,4 +1,6 @@
1
1
  import { SkinMixin } from "../skin-mixin.js";
2
+ import { iconState } from "../../skins/dist/default/shared/tailwind/icon-state.js";
3
+ import { tooltipState } from "../../skins/dist/default/shared/tailwind/tooltip-state.js";
2
4
  import "../media/container.js";
3
5
  import "../ui/mute-button.js";
4
6
  import "../ui/play-button.js";
@@ -8,6 +10,7 @@ import "../ui/seek-button.js";
8
10
  import "../ui/time.js";
9
11
  import "../ui/time-slider.js";
10
12
  import "../ui/tooltip.js";
13
+ import "../ui/tooltip-group.js";
11
14
  import "../ui/volume-slider.js";
12
15
  import { button } from "../../skins/dist/default/default/tailwind/components/button.js";
13
16
  import { icon, iconContainer, iconFlipped } from "../../skins/dist/default/default/tailwind/components/icon.js";
@@ -16,7 +19,7 @@ import { root } from "../../skins/dist/default/default/tailwind/components/root.
16
19
  import { seek } from "../../skins/dist/default/default/tailwind/components/seek.js";
17
20
  import { time } from "../../skins/dist/default/default/tailwind/components/time.js";
18
21
  import { renderIcon } from "../../icons/dist/render/default/index.js";
19
- import { controls, iconState, popup, slider, tooltipState } from "../../skins/dist/default/default/tailwind/audio.tailwind.js";
22
+ import { controls, popup, slider } from "../../skins/dist/default/default/tailwind/audio.tailwind.js";
20
23
  import { ReactiveElement } from "@videojs/element";
21
24
  import { cn } from "@videojs/utils/style";
22
25
 
@@ -28,70 +31,72 @@ function getTemplateHTML() {
28
31
  <slot name="media"></slot>
29
32
 
30
33
  <div class="${controls}">
31
- <span class="${tooltipState.play.wrapper}">
32
- <media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}">
33
- ${renderIcon("restart", { class: cn(icon, iconState.play.restart) })}
34
- ${renderIcon("play", { class: cn(icon, iconState.play.play) })}
35
- ${renderIcon("pause", { class: cn(icon, iconState.play.pause) })}
36
- </media-play-button>
37
- <media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}">
38
- <span class="${tooltipState.play.replay}">Replay</span>
39
- <span class="${tooltipState.play.play}">Play</span>
40
- <span class="${tooltipState.play.pause}">Pause</span>
41
- </media-tooltip>
42
- </span>
43
-
44
- <media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
45
- <span class="${iconContainer}">
46
- ${renderIcon("seek", { class: cn(icon, iconFlipped) })}
47
- <span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span>
34
+ <media-tooltip-group class="contents">
35
+ <span class="${tooltipState.play.wrapper}">
36
+ <media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}">
37
+ ${renderIcon("restart", { class: cn(icon, iconState.play.restart) })}
38
+ ${renderIcon("play", { class: cn(icon, iconState.play.play) })}
39
+ ${renderIcon("pause", { class: cn(icon, iconState.play.pause) })}
40
+ </media-play-button>
41
+ <media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}">
42
+ <span class="${tooltipState.play.replay}">Replay</span>
43
+ <span class="${tooltipState.play.play}">Play</span>
44
+ <span class="${tooltipState.play.pause}">Pause</span>
45
+ </media-tooltip>
48
46
  </span>
49
- </media-seek-button>
50
- <media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}">
51
- Seek backward ${SEEK_TIME} seconds
52
- </media-tooltip>
53
47
 
54
- <media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
55
- <span class="${iconContainer}">
56
- ${renderIcon("seek", { class: icon })}
57
- <span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span>
58
- </span>
59
- </media-seek-button>
60
- <media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}">
61
- Seek forward ${SEEK_TIME} seconds
62
- </media-tooltip>
48
+ <media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
49
+ <span class="${iconContainer}">
50
+ ${renderIcon("seek", { class: cn(icon, iconFlipped) })}
51
+ <span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span>
52
+ </span>
53
+ </media-seek-button>
54
+ <media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}">
55
+ Seek backward ${SEEK_TIME} seconds
56
+ </media-tooltip>
63
57
 
64
- <media-time-group class="${time.group}">
65
- <media-time type="current" class="${time.current}"></media-time>
66
- <media-time-slider class="${slider.root}">
67
- <media-slider-track class="${slider.track}">
68
- <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
69
- <media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer>
70
- </media-slider-track>
71
- <media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb>
72
- </media-time-slider>
73
- <media-time type="duration" class="${time.duration}"></media-time>
74
- </media-time-group>
58
+ <media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
59
+ <span class="${iconContainer}">
60
+ ${renderIcon("seek", { class: icon })}
61
+ <span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span>
62
+ </span>
63
+ </media-seek-button>
64
+ <media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}">
65
+ Seek forward ${SEEK_TIME} seconds
66
+ </media-tooltip>
67
+
68
+ <media-time-group class="${time.group}">
69
+ <media-time type="current" class="${time.current}"></media-time>
70
+ <media-time-slider class="${slider.root}">
71
+ <media-slider-track class="${slider.track}">
72
+ <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
73
+ <media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer>
74
+ </media-slider-track>
75
+ <media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb>
76
+ </media-time-slider>
77
+ <media-time type="duration" class="${time.duration}"></media-time>
78
+ </media-time-group>
75
79
 
76
- <media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}"></media-playback-rate-button>
77
- <media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}">
78
- Toggle playback rate
79
- </media-tooltip>
80
+ <media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}"></media-playback-rate-button>
81
+ <media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}">
82
+ Toggle playback rate
83
+ </media-tooltip>
80
84
 
81
- <media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}">
82
- ${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })}
83
- ${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })}
84
- ${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })}
85
- </media-mute-button>
85
+ <media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}">
86
+ ${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })}
87
+ ${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })}
88
+ ${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })}
89
+ </media-mute-button>
86
90
 
87
- <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="${cn(popup.popover, popup.volume)}">
88
- <media-volume-slider class="${slider.root}" orientation="vertical" thumb-alignment="edge">
89
- <media-slider-track class="${slider.track}">
90
- <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
91
- </media-slider-track>
92
- <media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.persistent)}"></media-slider-thumb>
93
- </media-volume-slider>
94
- </media-popover>
91
+ <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="${cn(popup.popover, popup.volume)}">
92
+ <media-volume-slider class="${slider.root}" orientation="vertical" thumb-alignment="edge">
93
+ <media-slider-track class="${slider.track}">
94
+ <media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
95
+ </media-slider-track>
96
+ <media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.persistent)}"></media-slider-thumb>
97
+ </media-volume-slider>
98
+ </media-popover>
99
+ </media-tooltip-group>
95
100
  </div>
96
101
  </media-container>
97
102
  `;