Package not found. Please check the package name and try again.

@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
@@ -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
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport {\n button,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n playbackRate,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/default/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/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=\"${tooltipState.play.wrapper}\">\n <media-play-button commandfor=\"play-tooltip\" class=\"${cn(button.base, button.icon, iconState.play.button)}\">\n ${renderIcon('restart', { class: cn(icon, iconState.play.restart) })}\n ${renderIcon('play', { class: cn(icon, iconState.play.play) })}\n ${renderIcon('pause', { class: cn(icon, iconState.play.pause) })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.play.replay}\">Replay</span>\n <span class=\"${tooltipState.play.play}\">Play</span>\n <span class=\"${tooltipState.play.pause}\">Pause</span>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: cn(icon, iconFlipped) })}\n <span class=\"${cn(seek.label, seek.labelBackward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: icon })}\n <span class=\"${cn(seek.label, seek.labelForward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-slider class=\"${slider.root}\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n <media-slider-buffer class=\"${cn(slider.fill.base, slider.fill.buffer)}\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.interactive)}\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.icon, playbackRate.button)}\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"${cn(button.base, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"${cn(popup.popover, popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.persistent)}\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinTailwindElement.tagName, AudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinTailwindElement.tagName]: AudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;8BACY,KAAK;;;oBAGf,SAAS;uBACN,aAAa,KAAK,QAAQ;gEACe,GAAG,OAAO,MAAM,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;cACtG,WAAW,WAAW,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,QAAQ,EAAE,CAAC,CAAC;cACnE,WAAW,QAAQ,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;cAC7D,WAAW,SAAS,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;;+DAEd,GAAG,MAAM,QAAQ,CAAC;2BACtD,aAAa,KAAK,OAAO;2BACzB,aAAa,KAAK,KAAK;2BACvB,aAAa,KAAK,MAAM;;;;yEAIsB,CAAC,UAAU,WAAW,GAAG,OAAO,MAAM,OAAO,MAAM,KAAK,OAAO,CAAC;yBAChH,cAAc;cACzB,WAAW,QAAQ,EAAE,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC,CAAC;2BACxC,GAAG,KAAK,OAAO,KAAK,cAAc,CAAC,IAAI,UAAU;;;sEAGN,GAAG,MAAM,QAAQ,CAAC;0BAC9D,UAAU;;;wEAGoC,UAAU,WAAW,GAAG,OAAO,MAAM,OAAO,MAAM,KAAK,OAAO,CAAC;yBAC9G,cAAc;cACzB,WAAW,QAAQ,EAAE,OAAO,MAAM,CAAC,CAAC;2BACvB,GAAG,KAAK,OAAO,KAAK,aAAa,CAAC,IAAI,UAAU;;;qEAGN,GAAG,MAAM,QAAQ,CAAC;yBAC9D,UAAU;;;mCAGA,KAAK,MAAM;8CACA,KAAK,QAAQ;sCACrB,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;;+CAE1C,KAAK,SAAS;;;iFAGoB,GAAG,OAAO,MAAM,OAAO,MAAM,aAAa,OAAO,CAAC;sEAC7D,GAAG,MAAM,QAAQ,CAAC;;;;sEAIlB,GAAG,OAAO,MAAM,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;YAC9G,WAAW,cAAc,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;YACxE,WAAW,cAAc,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;YACxE,WAAW,eAAe,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,WAAW,EAAE,CAAC,CAAC;;;iHAG2B,GAAG,MAAM,SAAS,MAAM,OAAO,CAAC;wCACzG,OAAO,KAAK;yCACX,OAAO,MAAM;0CACZ,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;;yCAExC,GAAG,OAAO,MAAM,MAAM,OAAO,MAAM,WAAW,CAAC;;;;;;;AAQxF,IAAa,2BAAb,cAA8C,UAAU,gBAAgB,CAAC;;iBAC7C;;;yBACD;;;AAG3B,eAAe,OAAO,yBAAyB,SAAS,yBAAyB"}
1
+ {"version":3,"file":"skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport {\n button,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n playbackRate,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/default/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <slot name=\"media\"></slot>\n\n <div class=\"${controls}\">\n <media-tooltip-group class=\"contents\">\n <span class=\"${tooltipState.play.wrapper}\">\n <media-play-button commandfor=\"play-tooltip\" class=\"${cn(button.base, button.icon, iconState.play.button)}\">\n ${renderIcon('restart', { class: cn(icon, iconState.play.restart) })}\n ${renderIcon('play', { class: cn(icon, iconState.play.play) })}\n ${renderIcon('pause', { class: cn(icon, iconState.play.pause) })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.play.replay}\">Replay</span>\n <span class=\"${tooltipState.play.play}\">Play</span>\n <span class=\"${tooltipState.play.pause}\">Pause</span>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: cn(icon, iconFlipped) })}\n <span class=\"${cn(seek.label, seek.labelBackward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: icon })}\n <span class=\"${cn(seek.label, seek.labelForward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-slider class=\"${slider.root}\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n <media-slider-buffer class=\"${cn(slider.fill.base, slider.fill.buffer)}\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.interactive)}\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.icon, playbackRate.button)}\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"${cn(button.base, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"${cn(popup.popover, popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.persistent)}\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinTailwindElement.tagName, AudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinTailwindElement.tagName]: AudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;8BACY,KAAK;;;oBAGf,SAAS;;yBAEJ,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;;;qCAGA,KAAK,MAAM;gDACA,KAAK,QAAQ;wCACrB,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;;iDAE1C,KAAK,SAAS;;;mFAGoB,GAAG,OAAO,MAAM,OAAO,MAAM,aAAa,OAAO,CAAC;wEAC7D,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;;;mHAG2B,GAAG,MAAM,SAAS,MAAM,OAAO,CAAC;0CACzG,OAAO,KAAK;2CACX,OAAO,MAAM;4CACZ,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;;2CAExC,GAAG,OAAO,MAAM,MAAM,OAAO,MAAM,WAAW,CAAC;;;;;;;;AAS1F,IAAa,2BAAb,cAA8C,UAAU,gBAAgB,CAAC;;iBAC7C;;;yBACD;;;AAG3B,eAAe,OAAO,yBAAyB,SAAS,yBAAyB"}
@@ -0,0 +1,25 @@
1
+ video-player {
2
+ display: contents;
3
+ }
4
+
5
+ video-player video,
6
+ video-player hls-video,
7
+ video-player simple-hls-video {
8
+ display: block;
9
+ width: 100%;
10
+ height: 100%;
11
+ }
12
+
13
+ video-player video::-webkit-media-text-track-container {
14
+ transition: transform var(--media-caption-track-duration, 150ms) ease-out;
15
+ transition-delay: var(--media-caption-track-delay, 600ms);
16
+ transform: translateY(var(--media-caption-track-y, 0)) scale(0.98);
17
+ z-index: var(--media-caption-track-z, 1);
18
+ font-family: inherit;
19
+ }
20
+
21
+ @media (prefers-reduced-motion: reduce) {
22
+ video-player video::-webkit-media-text-track-container {
23
+ transition-duration: 50ms;
24
+ }
25
+ }
@@ -0,0 +1,3 @@
1
+ media-tooltip-group {
2
+ display: contents;
3
+ }
@@ -7,8 +7,8 @@ import { Constructor } from "@videojs/utils/types";
7
7
  * `getTemplateHTML` method into a shadow root. Native `<slot>` elements
8
8
  * handle light DOM projection automatically.
9
9
  *
10
- * When `static styles` is set, the stylesheet is adopted into the shadow
11
- * root via `adoptedStyleSheets`.
10
+ * When `static styles` is set, the stylesheet is adopted into the
11
+ * shadow root via `adoptedStyleSheets`.
12
12
  */
13
13
  declare function SkinMixin<Base extends Constructor<ReactiveElement>>(BaseClass: Base): Base & {
14
14
  shadowRootOptions: ShadowRootInit;
@@ -1 +1 @@
1
- {"version":3,"file":"skin-mixin.d.ts","names":[],"sources":["../../../src/define/skin-mixin.ts"],"mappings":";;;;;;AA6CA;;;;;;iBAAgB,SAAA,cAAuB,WAAA,CAAY,eAAA,EAAA,CACjD,SAAA,EAAW,IAAA,GACV,IAAA;EAAS,iBAAA,EAAmB,cAAA;EAAgB,MAAA,GAAS,aAAA;AAAA;;iBA8BxC,YAAA,CAAa,GAAA,WAAc,aAAA"}
1
+ {"version":3,"file":"skin-mixin.d.ts","names":[],"sources":["../../../src/define/skin-mixin.ts"],"mappings":";;;;;;AAsBA;;;;;;iBAAgB,SAAA,cAAuB,WAAA,CAAY,eAAA,EAAA,CACjD,SAAA,EAAW,IAAA,GACV,IAAA;EAAS,iBAAA,EAAmB,cAAA;EAAgB,MAAA,GAAS,aAAA;AAAA;;iBA6BxC,YAAA,CAAa,GAAA,WAAc,aAAA"}
@@ -1,33 +1,12 @@
1
- //#region src/define/skin-mixin.ts
2
- /**
3
- * Light DOM stylesheet that bridges CSS custom properties set by skins
4
- * to native WebKit text track pseudo-elements on the slotted `<video>`.
5
- *
6
- * `::slotted(video)::-webkit-media-text-track-container` is invalid per
7
- * CSS spec, so this bridge lives in light DOM where it can directly
8
- * target the video element's pseudo-elements.
9
- */
10
- const NATIVE_CAPTION_BRIDGE_CSS = `
11
- .media-skin > video::-webkit-media-text-track-container {
12
- transition: transform var(--media-caption-track-duration, 150ms) ease-out;
13
- transition-delay: var(--media-caption-track-delay, 600ms);
14
- transform: translateY(var(--media-caption-track-y, 0)) scale(0.98);
15
- z-index: var(--media-caption-track-z, 1);
16
- font-family: inherit;
17
- }
1
+ import base_default from "../_virtual/inline-css_src/define/base.js";
18
2
 
19
- @media (prefers-reduced-motion: reduce) {
20
- .media-skin > video::-webkit-media-text-track-container {
21
- transition-duration: 50ms;
22
- }
23
- }
24
- `;
25
- const BRIDGE_ID = "media-caption-bridge";
26
- function ensureCaptionBridge() {
27
- if (document.getElementById(BRIDGE_ID)) return;
3
+ //#region src/define/skin-mixin.ts
4
+ const STYLES_ID = "__media-styles";
5
+ function ensureStyles() {
6
+ if (document.getElementById(STYLES_ID)) return;
28
7
  const style = document.createElement("style");
29
- style.id = BRIDGE_ID;
30
- style.textContent = NATIVE_CAPTION_BRIDGE_CSS;
8
+ style.id = STYLES_ID;
9
+ style.textContent = base_default;
31
10
  document.head.appendChild(style);
32
11
  }
33
12
  /**
@@ -35,8 +14,8 @@ function ensureCaptionBridge() {
35
14
  * `getTemplateHTML` method into a shadow root. Native `<slot>` elements
36
15
  * handle light DOM projection automatically.
37
16
  *
38
- * When `static styles` is set, the stylesheet is adopted into the shadow
39
- * root via `adoptedStyleSheets`.
17
+ * When `static styles` is set, the stylesheet is adopted into the
18
+ * shadow root via `adoptedStyleSheets`.
40
19
  */
41
20
  function SkinMixin(BaseClass) {
42
21
  class SkinElement extends BaseClass {
@@ -45,8 +24,7 @@ function SkinMixin(BaseClass) {
45
24
  }
46
25
  constructor(...args) {
47
26
  super(...args);
48
- this.classList.add("media-skin");
49
- ensureCaptionBridge();
27
+ ensureStyles();
50
28
  if (!this.shadowRoot) {
51
29
  const ctor = this.constructor;
52
30
  this.attachShadow(ctor.shadowRootOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"skin-mixin.js","names":[],"sources":["../../../src/define/skin-mixin.ts"],"sourcesContent":["import type { ReactiveElement } from '@videojs/element';\nimport type { Constructor } from '@videojs/utils/types';\n\n/**\n * Light DOM stylesheet that bridges CSS custom properties set by skins\n * to native WebKit text track pseudo-elements on the slotted `<video>`.\n *\n * `::slotted(video)::-webkit-media-text-track-container` is invalid per\n * CSS spec, so this bridge lives in light DOM where it can directly\n * target the video element's pseudo-elements.\n */\nconst NATIVE_CAPTION_BRIDGE_CSS = /* css */ `\n.media-skin > video::-webkit-media-text-track-container {\n transition: transform var(--media-caption-track-duration, 150ms) ease-out;\n transition-delay: var(--media-caption-track-delay, 600ms);\n transform: translateY(var(--media-caption-track-y, 0)) scale(0.98);\n z-index: var(--media-caption-track-z, 1);\n font-family: inherit;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .media-skin > video::-webkit-media-text-track-container {\n transition-duration: 50ms;\n }\n}\n`;\n\nconst BRIDGE_ID = 'media-caption-bridge';\n\nfunction ensureCaptionBridge(): void {\n if (document.getElementById(BRIDGE_ID)) return;\n const style = document.createElement('style');\n style.id = BRIDGE_ID;\n style.textContent = NATIVE_CAPTION_BRIDGE_CSS;\n document.head.appendChild(style);\n}\n\n/**\n * Mixin for skin elements that renders the template from a static\n * `getTemplateHTML` method into a shadow root. Native `<slot>` elements\n * handle light DOM projection automatically.\n *\n * When `static styles` is set, the stylesheet is adopted into the shadow\n * root via `adoptedStyleSheets`.\n */\nexport function SkinMixin<Base extends Constructor<ReactiveElement>>(\n BaseClass: Base\n): Base & { shadowRootOptions: ShadowRootInit; styles?: CSSStyleSheet } {\n class SkinElement extends (BaseClass as Constructor<ReactiveElement>) {\n static shadowRootOptions: ShadowRootInit = { mode: 'open' };\n static styles?: CSSStyleSheet;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.classList.add('media-skin');\n ensureCaptionBridge();\n\n if (!this.shadowRoot) {\n const ctor = this.constructor as typeof SkinElement & { getTemplateHTML?: () => string };\n this.attachShadow(ctor.shadowRootOptions);\n\n if (ctor.styles) {\n this.shadowRoot!.adoptedStyleSheets = [ctor.styles];\n }\n\n if (ctor.getTemplateHTML) {\n this.shadowRoot!.innerHTML = ctor.getTemplateHTML();\n }\n }\n }\n }\n\n return SkinElement as unknown as Base & { shadowRootOptions: ShadowRootInit; styles?: CSSStyleSheet };\n}\n\n/** Create a shared `CSSStyleSheet` from a CSS string. */\nexport function createStyles(css: string): CSSStyleSheet {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(css);\n return sheet;\n}\n"],"mappings":";;;;;;;;;AAWA,MAAM,4BAAsC;;;;;;;;;;;;;;;AAgB5C,MAAM,YAAY;AAElB,SAAS,sBAA4B;AACnC,KAAI,SAAS,eAAe,UAAU,CAAE;CACxC,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,OAAM,KAAK;AACX,OAAM,cAAc;AACpB,UAAS,KAAK,YAAY,MAAM;;;;;;;;;;AAWlC,SAAgB,UACd,WACsE;CACtE,MAAM,oBAAqB,UAA2C;;4BACzB,EAAE,MAAM,QAAQ;;EAG3D,YAAY,GAAG,MAAa;AAC1B,SAAM,GAAG,KAAK;AAEd,QAAK,UAAU,IAAI,aAAa;AAChC,wBAAqB;AAErB,OAAI,CAAC,KAAK,YAAY;IACpB,MAAM,OAAO,KAAK;AAClB,SAAK,aAAa,KAAK,kBAAkB;AAEzC,QAAI,KAAK,OACP,MAAK,WAAY,qBAAqB,CAAC,KAAK,OAAO;AAGrD,QAAI,KAAK,gBACP,MAAK,WAAY,YAAY,KAAK,iBAAiB;;;;AAM3D,QAAO;;;AAIT,SAAgB,aAAa,KAA4B;CACvD,MAAM,QAAQ,IAAI,eAAe;AACjC,OAAM,YAAY,IAAI;AACtB,QAAO"}
1
+ {"version":3,"file":"skin-mixin.js","names":["styles"],"sources":["../../../src/define/skin-mixin.ts"],"sourcesContent":["import type { ReactiveElement } from '@videojs/element';\nimport type { Constructor } from '@videojs/utils/types';\nimport styles from './base.css?inline';\n\nconst STYLES_ID = '__media-styles';\n\nfunction ensureStyles(): void {\n if (document.getElementById(STYLES_ID)) return;\n const style = document.createElement('style');\n style.id = STYLES_ID;\n style.textContent = styles;\n document.head.appendChild(style);\n}\n\n/**\n * Mixin for skin elements that renders the template from a static\n * `getTemplateHTML` method into a shadow root. Native `<slot>` elements\n * handle light DOM projection automatically.\n *\n * When `static styles` is set, the stylesheet is adopted into the\n * shadow root via `adoptedStyleSheets`.\n */\nexport function SkinMixin<Base extends Constructor<ReactiveElement>>(\n BaseClass: Base\n): Base & { shadowRootOptions: ShadowRootInit; styles?: CSSStyleSheet } {\n class SkinElement extends (BaseClass as Constructor<ReactiveElement>) {\n static shadowRootOptions: ShadowRootInit = { mode: 'open' };\n static styles?: CSSStyleSheet;\n\n constructor(...args: any[]) {\n super(...args);\n\n ensureStyles();\n\n if (!this.shadowRoot) {\n const ctor = this.constructor as typeof SkinElement & { getTemplateHTML?: () => string };\n this.attachShadow(ctor.shadowRootOptions);\n\n if (ctor.styles) {\n this.shadowRoot!.adoptedStyleSheets = [ctor.styles];\n }\n\n if (ctor.getTemplateHTML) {\n this.shadowRoot!.innerHTML = ctor.getTemplateHTML();\n }\n }\n }\n }\n\n return SkinElement as unknown as Base & { shadowRootOptions: ShadowRootInit; styles?: CSSStyleSheet };\n}\n\n/** Create a shared `CSSStyleSheet` from a CSS string. */\nexport function createStyles(css: string): CSSStyleSheet {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(css);\n return sheet;\n}\n"],"mappings":";;;AAIA,MAAM,YAAY;AAElB,SAAS,eAAqB;AAC5B,KAAI,SAAS,eAAe,UAAU,CAAE;CACxC,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,OAAM,KAAK;AACX,OAAM,cAAcA;AACpB,UAAS,KAAK,YAAY,MAAM;;;;;;;;;;AAWlC,SAAgB,UACd,WACsE;CACtE,MAAM,oBAAqB,UAA2C;;4BACzB,EAAE,MAAM,QAAQ;;EAG3D,YAAY,GAAG,MAAa;AAC1B,SAAM,GAAG,KAAK;AAEd,iBAAc;AAEd,OAAI,CAAC,KAAK,YAAY;IACpB,MAAM,OAAO,KAAK;AAClB,SAAK,aAAa,KAAK,kBAAkB;AAEzC,QAAI,KAAK,OACP,MAAK,WAAY,qBAAqB,CAAC,KAAK,OAAO;AAGrD,QAAI,KAAK,gBACP,MAAK,WAAY,YAAY,KAAK,iBAAiB;;;;AAM3D,QAAO;;;AAIT,SAAgB,aAAa,KAA4B;CACvD,MAAM,QAAQ,IAAI,eAAe;AACjC,OAAM,YAAY,IAAI;AACtB,QAAO"}
@@ -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
+
@@ -1 +1 @@
1
- {"version":3,"file":"minimal-skin.d.ts","names":[],"sources":["../../../../src/define/video/minimal-skin.ts"],"mappings":";;;iBAuBS,eAAA,CAAA;AAAA,cAAe,4BAAA;;;;cA4HX,uBAAA,SAAgC,4BAAA;EAAA,gBAC3B,OAAA;EAAA,OACT,MAAA,EAAM,aAAA;EAAA,OACN,eAAA,SAAe,eAAA;AAAA;AAAA,QAKhB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,uBAAA,CAAwB,OAAA,GAAU,uBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"minimal-skin.d.ts","names":[],"sources":["../../../../src/define/video/minimal-skin.ts"],"mappings":";;;iBAwBS,eAAA,CAAA;AAAA,cAAe,4BAAA;;;;cAkHX,uBAAA,SAAgC,4BAAA;EAAA,gBAC3B,OAAA;EAAA,OACT,MAAA,EAAM,aAAA;EAAA,OACN,eAAA,SAAe,eAAA;AAAA;AAAA,QAKhB,MAAA;EAAA,UACI,qBAAA;IAAA,CACP,uBAAA,CAAwB,OAAA,GAAU,uBAAA;EAAA;AAAA"}