@videojs/html 10.0.0-beta.3 → 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 (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 +34 -9
  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 +29 -7
  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 +7 -4
  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 +6 -3
  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 +34 -9
  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 +29 -7
  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 +7 -4
  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 +6 -3
  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
@@ -473,14 +473,11 @@ const controlsFeature = definePlayerFeature({
473
473
  pointerDownTime = Date.now();
474
474
  }
475
475
  function onPointerUp(event) {
476
- if (event.pointerType === "touch" && Date.now() - pointerDownTime < TAP_THRESHOLD) if (get().controlsVisible) {
477
- clearIdle();
478
- set({
479
- userActive: false,
480
- controlsVisible: computeVisible(false)
481
- });
476
+ if (event.pointerType === "touch" && Date.now() - pointerDownTime < TAP_THRESHOLD) {
477
+ const isMediaOrContainer = [media, container].includes(event.target);
478
+ if (get().controlsVisible && isMediaOrContainer) setInactive();
479
+ else setActive();
482
480
  } else setActive();
483
- else setActive();
484
481
  }
485
482
  function onPlaybackChange() {
486
483
  const { userActive } = get();
@@ -492,7 +489,7 @@ const controlsFeature = definePlayerFeature({
492
489
  listen(container, "pointerup", onPointerUp, { signal });
493
490
  listen(container, "keyup", setActive, { signal });
494
491
  listen(container, "focusin", setActive, { signal });
495
- listen(container, "pointerleave", setInactive, { signal });
492
+ listen(container, "mouseleave", setInactive, { signal });
496
493
  listen(media, "play", onPlaybackChange, { signal });
497
494
  listen(media, "pause", onPlaybackChange, { signal });
498
495
  listen(media, "ended", onPlaybackChange, { signal });
@@ -1301,13 +1298,13 @@ function createContainerMixin(context) {
1301
1298
  connectedCallback() {
1302
1299
  super.connectedCallback();
1303
1300
  this.#observer = new MutationObserver((records) => {
1304
- if (records.some(hasMediaNode)) this.#attachMedia();
1301
+ if (records.some(hasMediaElement)) this.#attachMedia();
1305
1302
  });
1306
1303
  this.#observer.observe(this, {
1307
1304
  childList: true,
1308
1305
  subtree: true,
1309
1306
  attributes: true,
1310
- attributeFilter: ["data-media-element"]
1307
+ attributeFilter: ["name"]
1311
1308
  });
1312
1309
  this.addEventListener("slotchange", this.#onSlotChange);
1313
1310
  this.#attachMedia();
@@ -1325,18 +1322,24 @@ function createContainerMixin(context) {
1325
1322
  #getSlottedMedia() {
1326
1323
  const slot = this.querySelector("slot[name=\"media\"]");
1327
1324
  if (!slot) return null;
1328
- for (const el of slot.assignedElements({ flatten: true })) if (el instanceof HTMLMediaElement) return el;
1325
+ for (const el of slot.assignedElements({ flatten: true })) if (isMediaElement(el)) return el;
1326
+ return null;
1327
+ }
1328
+ #findMediaElement() {
1329
+ const media = Array.from(this.children).find(isMediaElement);
1330
+ if (media) return media;
1329
1331
  return null;
1330
1332
  }
1331
1333
  #attachMedia() {
1332
1334
  const store = this.#contextStore ?? this.store;
1333
1335
  if (!store) return;
1334
- const media = this.querySelector("video, audio, [data-media-element]") ?? this.#getSlottedMedia();
1336
+ const media = this.querySelector("video, audio") ?? this.#findMediaElement() ?? this.#getSlottedMedia();
1335
1337
  if (!media) {
1336
1338
  this.#detach();
1337
1339
  this.#detach = noop;
1338
1340
  return;
1339
1341
  }
1342
+ if (isCustomMediaElement(media)) globalThis.customElements?.upgrade?.(media);
1340
1343
  const target = {
1341
1344
  media,
1342
1345
  container: this
@@ -1351,13 +1354,19 @@ function createContainerMixin(context) {
1351
1354
  return PlayerContainerElement;
1352
1355
  };
1353
1356
  }
1354
- function isMediaNode(node) {
1355
- return node instanceof HTMLMediaElement || node instanceof Element && node.hasAttribute("data-media-element");
1357
+ function isMediaElement(node) {
1358
+ return node instanceof HTMLMediaElement || isCustomMediaElement(node);
1359
+ }
1360
+ function isCustomMediaElement(node) {
1361
+ return node instanceof HTMLElement && (node.localName.endsWith("-audio") || node.localName.endsWith("-video"));
1362
+ }
1363
+ function isMediaSlotElement(node) {
1364
+ return node instanceof HTMLSlotElement && node.name === "media";
1356
1365
  }
1357
- function hasMediaNode(record) {
1358
- if (record.type === "attributes" && record.target instanceof Element) return record.target.hasAttribute("data-media-element");
1359
- for (const node of record.addedNodes) if (isMediaNode(node)) return true;
1360
- for (const node of record.removedNodes) if (isMediaNode(node)) return true;
1366
+ function hasMediaElement(record) {
1367
+ if (isMediaSlotElement(record.target)) return true;
1368
+ for (const node of record.addedNodes) if (isMediaElement(node) || isMediaSlotElement(node)) return true;
1369
+ for (const node of record.removedNodes) if (isMediaElement(node) || isMediaSlotElement(node)) return true;
1361
1370
  return false;
1362
1371
  }
1363
1372