movi-player 0.3.1 → 0.3.2

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.
package/dist/index.js CHANGED
@@ -49965,7 +49965,7 @@ class MoviVideoDecoder {
49965
49965
  }
49966
49966
  async configure(A2, t2, n2 = 0) {
49967
49967
  if (this.currentTrack = A2, this.targetFps = n2, this.currentProfile = A2.profile, this.useSoftware = false, this.requiresSoftware = false, this.isAnnexBSource = false, this.openGopErrorCount = 0, this.hardwareRetryCount = 0, this.lastHardwareRetryTime = 0, this.swDecoder && (this.swDecoder.close(), this.swDecoder = null), this.forceSoftware) return v.info(K, "Force software decoding enabled, using WASM decoder"), this.useSoftware = true, this.initSoftwareDecoder();
49968
- if (!("VideoDecoder" in window)) return v.error(K, "WebCodecs VideoDecoder not supported"), false;
49968
+ if (!("VideoDecoder" in window)) return v.warn(K, "WebCodecs VideoDecoder not supported — falling back to software decoder"), this.useSoftware = true, this.initSoftwareDecoder();
49969
49969
  let b2 = CodecParser.getCodecString(A2.codec, A2.extradata);
49970
49970
  if (b2 || (v.debug(K, "CodecParser returned null, falling back to manual mapping"), b2 = this.mapCodecToWebCodecs(A2.codec, A2.width, A2.height, A2.profile, A2.level)), !b2) return v.error(K, `Unsupported codec: ${A2.codec}`), false;
49971
49971
  const j2 = { codec: b2, codedWidth: A2.width, codedHeight: A2.height, hardwareAcceleration: "prefer-hardware" };
@@ -108990,6 +108990,7 @@ class MoviElement extends HTMLElement {
108990
108990
  isOverControls = false;
108991
108991
  isSeeking = false;
108992
108992
  pendingSeekTarget = null;
108993
+ _pendingSeek = null;
108993
108994
  isDragging = false;
108994
108995
  isTouchDragging = false;
108995
108996
  touchStartX = 0;
@@ -109115,7 +109116,7 @@ class MoviElement extends HTMLElement {
109115
109116
  return ["src", "autoplay", "controls", "loop", "muted", "playsinline", "preload", "poster", "width", "height", "crossorigin", "volume", "playbackrate", "subtitledelay", "subtitlesize", "subtitlecolor", "subtitlebg", "subtitleedge", "ambientmode", "ambientwrapper", "renderer", "objectfit", "thumb", "hdr", "theme", "sw", "fps", "gesturefs", "nohotkeys", "startat", "fastseek", "doubletap", "themecolor", "buffersize", "title", "showtitle", "resume", "stablevolume", "encrypted", "tokenurl", "videourl", "videoid", "drm", "licenseurl", "licenseheaders", "headers", "audioonly", "lcevc", "lcevcurl", "postertime"];
109116
109117
  }
109117
109118
  constructor() {
109118
- super(), this.tabIndex = 0, v.setLevel(A.DEBUG);
109119
+ super(), v.setLevel(A.DEBUG);
109119
109120
  const t2 = this.attachShadow({ mode: "open" });
109120
109121
  this.canvas = document.createElement("canvas"), this.canvas.style.width = "100%", this.canvas.style.height = "100%", this.canvas.style.display = "block", this.canvas.oncontextmenu = (A2) => (A2.preventDefault(), A2.stopPropagation(), false), t2.appendChild(this.canvas), this.video = document.createElement("video"), this.video.style.width = "100%", this.video.style.height = "100%", this.video.style.display = "none", this.video.style.objectFit = "contain", this.video.oncontextmenu = (A2) => (A2.preventDefault(), A2.stopPropagation(), false), t2.appendChild(this.video), this.posterElement = document.createElement("img"), this.posterElement.className = "movi-poster-overlay", this.posterElement.crossOrigin = "anonymous", this.posterElement.referrerPolicy = "no-referrer", this.posterElement.decoding = "async", this.posterElement.addEventListener("error", () => {
109121
109122
  const A2 = this.posterElement.src.match(/\/vi\/([\w-]+)\/maxresdefault\.jpg/);
@@ -110982,6 +110983,7 @@ class MoviElement extends HTMLElement {
110982
110983
  const A3 = this.player?.getState();
110983
110984
  "playing" !== A3 && "buffering" !== A3 && v2.classList.add("movi-center-visible");
110984
110985
  }
110986
+ this._hasEverPlayed ? this.classList.add("movi-bar-visible") : this.classList.remove("movi-bar-visible");
110985
110987
  const j2 = this.shadowRoot?.querySelector(".movi-controls-bar"), s2 = j2?.offsetHeight ?? 80, f2 = this.shadowRoot?.querySelector(".movi-timeline-panel");
110986
110988
  let l2 = s2 + 20;
110987
110989
  if (f2 && "none" !== f2.style.display ? (f2.style.bottom = `${s2 + 20}px`, requestAnimationFrame(() => {
@@ -111071,7 +111073,7 @@ class MoviElement extends HTMLElement {
111071
111073
  v3 && (v3.style.cursor = "none");
111072
111074
  }
111073
111075
  const t2 = this.shadowRoot?.querySelector(".movi-center-play-pause"), v2 = this.player?.getState();
111074
- t2 && "playing" === v2 && t2.classList.remove("movi-center-visible");
111076
+ t2 && "playing" === v2 && t2.classList.remove("movi-center-visible"), this.classList.remove("movi-bar-visible");
111075
111077
  const n2 = this.shadowRoot?.querySelector(".movi-timeline-panel");
111076
111078
  if (n2 && (n2.style.bottom = "12px"), this.player && (n2 && "none" !== n2.style.display ? requestAnimationFrame(() => {
111077
111079
  const A3 = n2.offsetHeight || 0;
@@ -111253,6 +111255,14 @@ class MoviElement extends HTMLElement {
111253
111255
  -moz-osx-font-smoothing: grayscale;
111254
111256
  }
111255
111257
 
111258
+ /* The :host{display:block} above is an author rule, so it beats the
111259
+ UA stylesheet's [hidden]{display:none}. Without this, the standard
111260
+ hidden attribute does nothing and the player stays visible. Honour
111261
+ it explicitly. !important so source-order/specificity can't regress it. */
111262
+ :host([hidden]) {
111263
+ display: none !important;
111264
+ }
111265
+
111256
111266
  /* Light Theme Override */
111257
111267
  :host([theme="light"]) {
111258
111268
  --movi-primary: #7c3aed; /* Vibrancy boost for light theme */
@@ -113841,12 +113851,13 @@ class MoviElement extends HTMLElement {
113841
113851
  height: 64px !important;
113842
113852
  }
113843
113853
 
113844
- /* Disable animations on mobile */
113854
+ /* Keyframe animations off on small/compact layouts for perf, but keep
113855
+ CSS transitions so the controls + centre button still move smoothly
113856
+ here too (the PiP / mini player is a small container). */
113845
113857
  .movi-controls-overlay,
113846
113858
  .movi-center-play-pause,
113847
113859
  .movi-btn,
113848
113860
  .movi-progress-handle {
113849
- transition: none !important;
113850
113861
  animation: none !important;
113851
113862
  transform: none !important;
113852
113863
  }
@@ -114338,7 +114349,7 @@ class MoviElement extends HTMLElement {
114338
114349
  button's bar-hidden and both-bars-visible rules exactly. */
114339
114350
  .movi-loading-indicator {
114340
114351
  position: absolute;
114341
- top: calc(50% - var(--movi-controls-height) / 2);
114352
+ top: 50%;
114342
114353
  left: 50%;
114343
114354
  transform: translate(-50%, -50%);
114344
114355
  display: flex;
@@ -114347,15 +114358,7 @@ class MoviElement extends HTMLElement {
114347
114358
  z-index: 1000;
114348
114359
  pointer-events: none;
114349
114360
  background: transparent;
114350
- }
114351
-
114352
- :host:has(.movi-controls-container.movi-controls-hidden) .movi-loading-indicator,
114353
- :host(:not([controls])) .movi-loading-indicator {
114354
- top: 50%;
114355
- }
114356
-
114357
- :host:has(.movi-controls-container.movi-controls-visible):has(.movi-title-bar.movi-title-visible) .movi-loading-indicator {
114358
- top: calc(50% - (var(--movi-controls-height) - 52px) / 2);
114361
+ transition: top var(--movi-transition-normal);
114359
114362
  }
114360
114363
 
114361
114364
  .movi-loader-container {
@@ -114397,7 +114400,7 @@ class MoviElement extends HTMLElement {
114397
114400
  down adjust this for the other two layout states. */
114398
114401
  .movi-center-play-pause {
114399
114402
  position: absolute;
114400
- top: calc(50% - var(--movi-controls-height) / 2);
114403
+ top: 50%;
114401
114404
  left: 50%;
114402
114405
  transform: translate(-50%, -50%) scale(0.8);
114403
114406
  z-index: 5;
@@ -114426,23 +114429,15 @@ class MoviElement extends HTMLElement {
114426
114429
  transition-delay: 0s;
114427
114430
  }
114428
114431
 
114429
- /* Bar hidden or no controls attribute no chrome to balance
114430
- against, sit at true geometric centre. */
114431
- :host:has(.movi-controls-container.movi-controls-hidden) .movi-center-play-pause,
114432
- :host(:not([controls])) .movi-center-play-pause {
114433
- top: 50%;
114434
- }
114435
-
114436
- /* Bar visible AND title bar visible centre the icon inside
114437
- the visible video band (between title bottom and controls
114438
- top), not the full player. The 44% default biases too far up
114439
- when there's also a title bar to balance the controls; here
114440
- the offset is just half the *difference* between the two
114441
- chrome heights (title ≈ 52px, controls 72px → ~10px above
114442
- centre on desktop). calc() keeps it right on mobile where
114443
- --movi-controls-height drops to 64px too. */
114444
- :host:has(.movi-controls-container.movi-controls-visible):has(.movi-title-bar.movi-title-visible) .movi-center-play-pause {
114445
- top: calc(50% - (var(--movi-controls-height) - 52px) / 2);
114432
+ /* Default (the base rule) is the true geometric centre. When the controls
114433
+ bar is visible, lift the centre button AND the loading spinner a little
114434
+ so they read as centred in the band above the bar. Keyed off a host
114435
+ class toggled in show/hideControls, because :host:has() checks against
114436
+ the shadow tree don't apply in every engine (notably Electron). The
114437
+ transition on top (in each base rule) animates the move. */
114438
+ :host(.movi-bar-visible) .movi-center-play-pause,
114439
+ :host(.movi-bar-visible) .movi-loading-indicator {
114440
+ top: calc(50% - var(--movi-controls-height) / 4);
114446
114441
  }
114447
114442
 
114448
114443
  .movi-center-play-pause:hover {
@@ -116041,6 +116036,7 @@ class MoviElement extends HTMLElement {
116041
116036
  });
116042
116037
  };
116043
116038
  connectedCallback() {
116039
+ this.hasAttribute("tabindex") || (this.tabIndex = 0);
116044
116040
  const A2 = this.getAttribute("src");
116045
116041
  this._src = A2 || null, this._autoplay = this.hasAttribute("autoplay"), this._controls = this.hasAttribute("controls"), this._loop = this.hasAttribute("loop"), this._muted = this.hasAttribute("muted"), this._playsinline = this.hasAttribute("playsinline"), this._preload = this.getAttribute("preload") || "auto", this._poster = this.getAttribute("poster") || "";
116046
116042
  const t2 = this.getAttribute("volume");
@@ -116487,7 +116483,11 @@ class MoviElement extends HTMLElement {
116487
116483
  };
116488
116484
  this.player.trackManager.on("tracksChange", n2), this.eventHandlers.set("tracksChange", () => this.player?.trackManager.off("tracksChange", n2));
116489
116485
  const b2 = (A3) => {
116490
- if (v.info(jj, `stateChange: ${A3}`), "playing" === A3 && this.posterElement && (this._qualitySwitchInProgress && (this._hideSnapshotPoster(), this._qualitySwitchInProgress = false, this._switchResumeTime = 0, this._switchResumeDuration = 0), this.posterElement.style.display = "none"), this.dispatchEvent(new CustomEvent("statechange", { detail: A3 })), this.updateLoadingIndicator(A3), this.updateControlsState(), this.updatePlayPauseIcon(), !this._autoplayStarting || "paused" !== A3 && "ended" !== A3 && "error" !== A3 || (this._autoplayStarting = false, this.updatePlayPauseIcon()), "playing" === A3) {
116486
+ if (v.info(jj, `stateChange: ${A3}`), null !== this._pendingSeek && ("ready" === A3 || "paused" === A3 || "playing" === A3)) {
116487
+ const A4 = this._pendingSeek;
116488
+ this._pendingSeek = null, this.currentTime = A4;
116489
+ }
116490
+ if ("playing" === A3 && this.posterElement && (this._qualitySwitchInProgress && (this._hideSnapshotPoster(), this._qualitySwitchInProgress = false, this._switchResumeTime = 0, this._switchResumeDuration = 0), this.posterElement.style.display = "none"), this.dispatchEvent(new CustomEvent("statechange", { detail: A3 })), this.updateLoadingIndicator(A3), this.updateControlsState(), this.updatePlayPauseIcon(), !this._autoplayStarting || "paused" !== A3 && "ended" !== A3 && "error" !== A3 || (this._autoplayStarting = false, this.updatePlayPauseIcon()), "playing" === A3) {
116491
116491
  const A4 = this._autoplayStarting;
116492
116492
  if (this._autoplayStarting = false, this._resumeDialogPending && !this._hasEverPlayed && (this._resumeDialogPending = false, this.maybeShowResumeDialog()), this._hasEverPlayed = true, this._loopRestartInFlight = false, this.dispatchEvent(new Event("play")), A4) return this.hideControls(), this.updatePlayPauseIcon(), this._ambientMode && (this._ambientSampleInterval = 200), void ("mediaSession" in navigator && this._title && (navigator.mediaSession.metadata = new MediaMetadata({ title: this._title })));
116493
116493
  window.setTimeout(() => {
@@ -117265,10 +117265,11 @@ class MoviElement extends HTMLElement {
117265
117265
  return this.player?.getCurrentTime() || 0;
117266
117266
  }
117267
117267
  set currentTime(A2) {
117268
- if (!this.player) return;
117268
+ if (!this.player) return void (this._pendingSeek = A2);
117269
117269
  A2 = this.clampToBufferedWindow(A2);
117270
117270
  const t2 = this.player.getState();
117271
- v.info(jj, `currentTime setter: value=${A2.toFixed(2)}, state=${t2}, isSeeking=${this.isSeeking}`), "ready" === t2 || "playing" === t2 || "paused" === t2 || "ended" === t2 || "seeking" === t2 || "buffering" === t2 ? this.isSeeking ? this.pendingSeekTarget = A2 : (this.isSeeking = true, this.player.seek(A2).then(() => {
117271
+ if (v.info(jj, `currentTime setter: value=${A2.toFixed(2)}, state=${t2}, isSeeking=${this.isSeeking}`), "ready" !== t2 && "playing" !== t2 && "paused" !== t2 && "ended" !== t2 && "seeking" !== t2 && "buffering" !== t2) return v.info(jj, `Seek held until ready state=${t2}`), void (this._pendingSeek = A2);
117272
+ this._pendingSeek = null, this.isSeeking ? this.pendingSeekTarget = A2 : (this.isSeeking = true, this.player.seek(A2).then(() => {
117272
117273
  v.info(jj, `Seek resolved: value=${A2.toFixed(2)}, newState=${this.player?.getState()}`);
117273
117274
  }).catch((t3) => {
117274
117275
  v.error(jj, `Seek error: value=${A2.toFixed(2)}`, t3);
@@ -117277,7 +117278,7 @@ class MoviElement extends HTMLElement {
117277
117278
  const A3 = this.pendingSeekTarget;
117278
117279
  this.pendingSeekTarget = null, this.currentTime = A3;
117279
117280
  }
117280
- })) : v.warn(jj, `Seek blocked — state=${t2} not allowed`);
117281
+ }));
117281
117282
  }
117282
117283
  get renderer() {
117283
117284
  return this._renderer;
package/dist/player.cjs CHANGED
@@ -49649,7 +49649,7 @@ class MoviVideoDecoder {
49649
49649
  }
49650
49650
  async configure(A, v, b = 0) {
49651
49651
  if (this.currentTrack = A, this.targetFps = b, this.currentProfile = A.profile, this.useSoftware = false, this.requiresSoftware = false, this.isAnnexBSource = false, this.openGopErrorCount = 0, this.hardwareRetryCount = 0, this.lastHardwareRetryTime = 0, this.swDecoder && (this.swDecoder.close(), this.swDecoder = null), this.forceSoftware) return Logger$1.info(TAG$h, "Force software decoding enabled, using WASM decoder"), this.useSoftware = true, this.initSoftwareDecoder();
49652
- if (!("VideoDecoder" in window)) return Logger$1.error(TAG$h, "WebCodecs VideoDecoder not supported"), false;
49652
+ if (!("VideoDecoder" in window)) return Logger$1.warn(TAG$h, "WebCodecs VideoDecoder not supported — falling back to software decoder"), this.useSoftware = true, this.initSoftwareDecoder();
49653
49653
  let j = CodecParser.getCodecString(A.codec, A.extradata);
49654
49654
  if (j || (Logger$1.debug(TAG$h, "CodecParser returned null, falling back to manual mapping"), j = this.mapCodecToWebCodecs(A.codec, A.width, A.height, A.profile, A.level)), !j) return Logger$1.error(TAG$h, `Unsupported codec: ${A.codec}`), false;
49655
49655
  const s2 = { codec: j, codedWidth: A.width, codedHeight: A.height, hardwareAcceleration: "prefer-hardware" };
package/dist/player.js CHANGED
@@ -49664,7 +49664,7 @@ class MoviVideoDecoder {
49664
49664
  }
49665
49665
  async configure(A2, t2, n2 = 0) {
49666
49666
  if (this.currentTrack = A2, this.targetFps = n2, this.currentProfile = A2.profile, this.useSoftware = false, this.requiresSoftware = false, this.isAnnexBSource = false, this.openGopErrorCount = 0, this.hardwareRetryCount = 0, this.lastHardwareRetryTime = 0, this.swDecoder && (this.swDecoder.close(), this.swDecoder = null), this.forceSoftware) return v.info(M, "Force software decoding enabled, using WASM decoder"), this.useSoftware = true, this.initSoftwareDecoder();
49667
- if (!("VideoDecoder" in window)) return v.error(M, "WebCodecs VideoDecoder not supported"), false;
49667
+ if (!("VideoDecoder" in window)) return v.warn(M, "WebCodecs VideoDecoder not supported — falling back to software decoder"), this.useSoftware = true, this.initSoftwareDecoder();
49668
49668
  let b2 = CodecParser.getCodecString(A2.codec, A2.extradata);
49669
49669
  if (b2 || (v.debug(M, "CodecParser returned null, falling back to manual mapping"), b2 = this.mapCodecToWebCodecs(A2.codec, A2.width, A2.height, A2.profile, A2.level)), !b2) return v.error(M, `Unsupported codec: ${A2.codec}`), false;
49670
49670
  const j2 = { codec: b2, codedWidth: A2.width, codedHeight: A2.height, hardwareAcceleration: "prefer-hardware" };
@@ -36,6 +36,7 @@ export declare class MoviElement extends HTMLElement {
36
36
  private isOverControls;
37
37
  private isSeeking;
38
38
  private pendingSeekTarget;
39
+ private _pendingSeek;
39
40
  private isDragging;
40
41
  private isTouchDragging;
41
42
  private touchStartX;
@@ -1 +1 @@
1
- {"version":3,"file":"MoviElement.d.ts","sourceRoot":"","sources":["../../src/render/MoviElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoviElement.d.ts","sourceRoot":"","sources":["../../src/render/MoviElement.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,7 @@ export class MoviElement extends HTMLElement {
72
72
  isOverControls = false;
73
73
  isSeeking = false;
74
74
  pendingSeekTarget = null; // Coalesces rapid currentTime sets while a seek is in flight
75
+ _pendingSeek = null; // Seek requested before the player was ready; applied on the next seekable state
75
76
  isDragging = false;
76
77
  isTouchDragging = false;
77
78
  // Gesture tracking
@@ -371,8 +372,11 @@ export class MoviElement extends HTMLElement {
371
372
  }
372
373
  constructor() {
373
374
  super();
374
- // Enable keyboard focus
375
- this.tabIndex = 0;
375
+ // NOTE: do NOT set attributes (or anything that reflects to one, e.g.
376
+ // `this.tabIndex`) here. The Custom Elements spec forbids a constructor
377
+ // from gaining attributes, so `document.createElement("movi-player")`
378
+ // throws `NotSupportedError: The result must not have attributes`.
379
+ // Keyboard focus is enabled in connectedCallback instead. (issue #9)
376
380
  // Set log level to INFO by default (change to DEBUG for troubleshooting)
377
381
  Logger.setLevel(LogLevel.DEBUG);
378
382
  // Create shadow DOM for encapsulation
@@ -6070,6 +6074,16 @@ export class MoviElement extends HTMLElement {
6070
6074
  centerPlayPause.classList.add("movi-center-visible");
6071
6075
  }
6072
6076
  }
6077
+ // Bar visible → lift the centre button + loading spinner slightly to
6078
+ // balance against it (host class the CSS keys off; see hideControls).
6079
+ // But only once playback has started — on the initial load / autoplay-off
6080
+ // screen the big play button and the spinner belong at the true centre.
6081
+ if (this._hasEverPlayed) {
6082
+ this.classList.add("movi-bar-visible");
6083
+ }
6084
+ else {
6085
+ this.classList.remove("movi-bar-visible");
6086
+ }
6073
6087
  // Shift timeline panel up above controls
6074
6088
  const bar = this.shadowRoot?.querySelector(".movi-controls-bar");
6075
6089
  const barHeight = bar?.offsetHeight ?? 80;
@@ -6427,6 +6441,11 @@ export class MoviElement extends HTMLElement {
6427
6441
  if (centerPlayPause && state === "playing") {
6428
6442
  centerPlayPause.classList.remove("movi-center-visible");
6429
6443
  }
6444
+ // Bar hidden → centre button + loading spinner sit at the true centre.
6445
+ // (The :host:has(.movi-controls-hidden) CSS rule meant to do this doesn't
6446
+ // apply against the shadow tree in some engines, e.g. Electron's Chromium,
6447
+ // so the CSS keys off this host class we toggle instead.)
6448
+ this.classList.remove("movi-bar-visible");
6430
6449
  // Shift timeline panel down when controls hide
6431
6450
  const timelinePanel = this.shadowRoot?.querySelector(".movi-timeline-panel");
6432
6451
  if (timelinePanel) {
@@ -6669,6 +6688,14 @@ export class MoviElement extends HTMLElement {
6669
6688
  -moz-osx-font-smoothing: grayscale;
6670
6689
  }
6671
6690
 
6691
+ /* The :host{display:block} above is an author rule, so it beats the
6692
+ UA stylesheet's [hidden]{display:none}. Without this, the standard
6693
+ hidden attribute does nothing and the player stays visible. Honour
6694
+ it explicitly. !important so source-order/specificity can't regress it. */
6695
+ :host([hidden]) {
6696
+ display: none !important;
6697
+ }
6698
+
6672
6699
  /* Light Theme Override */
6673
6700
  :host([theme="light"]) {
6674
6701
  --movi-primary: #7c3aed; /* Vibrancy boost for light theme */
@@ -9257,12 +9284,13 @@ export class MoviElement extends HTMLElement {
9257
9284
  height: 64px !important;
9258
9285
  }
9259
9286
 
9260
- /* Disable animations on mobile */
9287
+ /* Keyframe animations off on small/compact layouts for perf, but keep
9288
+ CSS transitions so the controls + centre button still move smoothly
9289
+ here too (the PiP / mini player is a small container). */
9261
9290
  .movi-controls-overlay,
9262
9291
  .movi-center-play-pause,
9263
9292
  .movi-btn,
9264
9293
  .movi-progress-handle {
9265
- transition: none !important;
9266
9294
  animation: none !important;
9267
9295
  transform: none !important;
9268
9296
  }
@@ -9754,7 +9782,7 @@ export class MoviElement extends HTMLElement {
9754
9782
  button's bar-hidden and both-bars-visible rules exactly. */
9755
9783
  .movi-loading-indicator {
9756
9784
  position: absolute;
9757
- top: calc(50% - var(--movi-controls-height) / 2);
9785
+ top: 50%;
9758
9786
  left: 50%;
9759
9787
  transform: translate(-50%, -50%);
9760
9788
  display: flex;
@@ -9763,15 +9791,7 @@ export class MoviElement extends HTMLElement {
9763
9791
  z-index: 1000;
9764
9792
  pointer-events: none;
9765
9793
  background: transparent;
9766
- }
9767
-
9768
- :host:has(.movi-controls-container.movi-controls-hidden) .movi-loading-indicator,
9769
- :host(:not([controls])) .movi-loading-indicator {
9770
- top: 50%;
9771
- }
9772
-
9773
- :host:has(.movi-controls-container.movi-controls-visible):has(.movi-title-bar.movi-title-visible) .movi-loading-indicator {
9774
- top: calc(50% - (var(--movi-controls-height) - 52px) / 2);
9794
+ transition: top var(--movi-transition-normal);
9775
9795
  }
9776
9796
 
9777
9797
  .movi-loader-container {
@@ -9813,7 +9833,7 @@ export class MoviElement extends HTMLElement {
9813
9833
  down adjust this for the other two layout states. */
9814
9834
  .movi-center-play-pause {
9815
9835
  position: absolute;
9816
- top: calc(50% - var(--movi-controls-height) / 2);
9836
+ top: 50%;
9817
9837
  left: 50%;
9818
9838
  transform: translate(-50%, -50%) scale(0.8);
9819
9839
  z-index: 5;
@@ -9842,23 +9862,15 @@ export class MoviElement extends HTMLElement {
9842
9862
  transition-delay: 0s;
9843
9863
  }
9844
9864
 
9845
- /* Bar hidden or no controls attribute no chrome to balance
9846
- against, sit at true geometric centre. */
9847
- :host:has(.movi-controls-container.movi-controls-hidden) .movi-center-play-pause,
9848
- :host(:not([controls])) .movi-center-play-pause {
9849
- top: 50%;
9850
- }
9851
-
9852
- /* Bar visible AND title bar visible centre the icon inside
9853
- the visible video band (between title bottom and controls
9854
- top), not the full player. The 44% default biases too far up
9855
- when there's also a title bar to balance the controls; here
9856
- the offset is just half the *difference* between the two
9857
- chrome heights (title ≈ 52px, controls 72px → ~10px above
9858
- centre on desktop). calc() keeps it right on mobile where
9859
- --movi-controls-height drops to 64px too. */
9860
- :host:has(.movi-controls-container.movi-controls-visible):has(.movi-title-bar.movi-title-visible) .movi-center-play-pause {
9861
- top: calc(50% - (var(--movi-controls-height) - 52px) / 2);
9865
+ /* Default (the base rule) is the true geometric centre. When the controls
9866
+ bar is visible, lift the centre button AND the loading spinner a little
9867
+ so they read as centred in the band above the bar. Keyed off a host
9868
+ class toggled in show/hideControls, because :host:has() checks against
9869
+ the shadow tree don't apply in every engine (notably Electron). The
9870
+ transition on top (in each base rule) animates the move. */
9871
+ :host(.movi-bar-visible) .movi-center-play-pause,
9872
+ :host(.movi-bar-visible) .movi-loading-indicator {
9873
+ top: calc(50% - var(--movi-controls-height) / 4);
9862
9874
  }
9863
9875
 
9864
9876
  .movi-center-play-pause:hover {
@@ -11499,6 +11511,11 @@ export class MoviElement extends HTMLElement {
11499
11511
  });
11500
11512
  };
11501
11513
  connectedCallback() {
11514
+ // Enable keyboard focus. Set here (not in the constructor) because
11515
+ // assigning tabIndex reflects to a `tabindex` attribute, which a custom
11516
+ // element constructor is not allowed to do. (issue #9)
11517
+ if (!this.hasAttribute("tabindex"))
11518
+ this.tabIndex = 0;
11502
11519
  // Read initial attributes
11503
11520
  const srcAttr = this.getAttribute("src");
11504
11521
  this._src = srcAttr || null;
@@ -13130,6 +13147,15 @@ export class MoviElement extends HTMLElement {
13130
13147
  // Forward player events to element
13131
13148
  const stateChangeHandler = (state) => {
13132
13149
  Logger.info(TAG, `stateChange: ${state}`);
13150
+ // A seek requested before the player was ready was held — apply it now
13151
+ // that we've reached a seekable state (fixes e.g. a PiP/handoff seek that
13152
+ // arrives while the source is still loading).
13153
+ if (this._pendingSeek !== null &&
13154
+ (state === "ready" || state === "paused" || state === "playing")) {
13155
+ const target = this._pendingSeek;
13156
+ this._pendingSeek = null;
13157
+ this.currentTime = target;
13158
+ }
13133
13159
  // Hide poster on state change to playing
13134
13160
  if (state === "playing" && this.posterElement) {
13135
13161
  // Drop the frozen-frame snapshot overlay used during quality switch
@@ -15888,8 +15914,11 @@ export class MoviElement extends HTMLElement {
15888
15914
  return this.player?.getCurrentTime() || 0;
15889
15915
  }
15890
15916
  set currentTime(value) {
15891
- if (!this.player)
15917
+ // Player not built yet — hold the seek and apply it once it's ready.
15918
+ if (!this.player) {
15919
+ this._pendingSeek = value;
15892
15920
  return;
15921
+ }
15893
15922
  // Linear (non-seekable source) playback — only the bytes in the RAM window
15894
15923
  // are reachable, so clamp the target to the buffered range instead of
15895
15924
  // jumping somewhere that was discarded / not yet downloaded.
@@ -15902,9 +15931,14 @@ export class MoviElement extends HTMLElement {
15902
15931
  state !== "ended" &&
15903
15932
  state !== "seeking" &&
15904
15933
  state !== "buffering") {
15905
- Logger.warn(TAG, `Seek blocked state=${state} not allowed`);
15934
+ // Not seekable yet (still loading/initialising). Hold the seek; the
15935
+ // stateChange handler applies it the moment the player becomes ready.
15936
+ Logger.info(TAG, `Seek held until ready — state=${state}`);
15937
+ this._pendingSeek = value;
15906
15938
  return;
15907
15939
  }
15940
+ // We're committed to seeking now, so any earlier held seek is superseded.
15941
+ this._pendingSeek = null;
15908
15942
  // Coalesce: a previous seek is still running. Stash the latest target and
15909
15943
  // bail. The in-flight seek's finally() will pick up the latest target,
15910
15944
  // collapsing any number of intermediate sets into one tail seek.