@munsonlabs/video-player 0.1.4 → 0.1.6

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.
@@ -0,0 +1 @@
1
+ :where(.mvp-play-button[data-v-218255bd]){all:unset;cursor:pointer;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-play-button svg[data-v-218255bd]){width:1em;height:1em}@keyframes spin-259be2b2{to{transform:rotate(360deg)}}.spinner[data-v-259be2b2]{border-style:solid;border-color:#fffc #ffffff26 #ffffff26;border-radius:50%;animation:.75s linear infinite spin-259be2b2}:where(.mvp-buffering[data-v-454fec7f]){justify-content:center;align-items:center;display:inline-flex}.ppbtn{backdrop-filter:blur(12px);will-change:backdrop-filter;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,transform .15s;display:flex}.ppbtn:hover{background:#fff3;transform:scale(1.08)}.ppbtn--lg{background:var(--mvp-btn-bg,#ffffff1a);width:clamp(48px,20cqw,64px);height:clamp(48px,20cqw,64px);color:var(--mvp-btn-color,#fff)}.ppbtn--lg svg{width:clamp(20px,9cqw,28px);height:clamp(20px,9cqw,28px)}.ppbtn--lg:hover{background:var(--mvp-btn-bg,#fff3);filter:brightness(1.12)}.ppbtn--sm{color:#ffffffbf;background:0 0;border:none;border-radius:8px;width:30px;height:30px}.ppbtn--sm svg{width:16px;height:16px}.ppbtn--sm:hover{color:#fff;background:#ffffff1a;transform:none}.hud[data-v-a6d118e7]{align-items:center;gap:clamp(12px,5cqw,20px);display:flex}.hud__play-wrap[data-v-a6d118e7]{display:flex;position:relative}.hud__buf-spinner[data-v-a6d118e7]{margin-top:8px;position:absolute;top:100%;left:calc(50% - 7px)}.hud__spacer[data-v-a6d118e7]{flex-shrink:0;width:clamp(36px,14cqw,44px);height:clamp(36px,14cqw,44px)}.hud__btn[data-v-a6d118e7]{background:var(--mvp-btn-bg,#ffffff1a);backdrop-filter:blur(12px);will-change:backdrop-filter;width:clamp(36px,14cqw,44px);height:clamp(36px,14cqw,44px);color:var(--mvp-btn-color,#fff);cursor:pointer;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,transform .15s;display:flex}.hud__btn svg[data-v-a6d118e7]{width:clamp(16px,6cqw,18px);height:clamp(16px,6cqw,18px)}.hud__btn[data-v-a6d118e7]:hover{background:var(--mvp-btn-bg,#fff3);filter:brightness(1.12);transform:scale(1.08)}.hud__btn--active[data-v-a6d118e7]{border-color:var(--mvp-accent,#3b82f6);background:color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, var(--mvp-btn-bg,#ffffff1a));color:var(--mvp-btn-color,#fff)}.hud__btn--active[data-v-a6d118e7]:hover{background:color-mix(in srgb, var(--mvp-accent,#3b82f6) 45%, var(--mvp-btn-bg,#fff3))}:where(.mvp-fullscreen-button[data-v-b93a5017]){all:unset;cursor:pointer;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-fullscreen-button svg[data-v-b93a5017]){width:1em;height:1em}:where(.mvp-pip-button[data-v-f654d93e]){all:unset;cursor:pointer;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-pip-button--active[data-v-f654d93e]){opacity:1}:where(.mvp-pip-button svg[data-v-f654d93e]){width:1em;height:1em}.mvp-scrubber-wrap[data-v-043f1bc8]{width:100%;position:relative}:where(.mvp-scrubber[data-v-043f1bc8]){cursor:pointer;accent-color:currentColor;width:100%}.mvp-scrubber__preview[data-v-043f1bc8]{font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap;margin-bottom:.4rem;font-size:.75rem;position:absolute;bottom:100%;transform:translate(-50%)}:where(.mvp-time-display[data-v-0285c811]){font-variant-numeric:tabular-nums;align-items:center;gap:.35rem;display:inline-flex}:where(.mvp-time-display__dot[data-v-0285c811]){background:currentColor;border-radius:50%;width:6px;height:6px}.mvp-volume-wrap[data-v-fbb2c86c]{align-items:center;gap:.75rem;width:100%;display:flex}:where(.mvp-volume-slider[data-v-fbb2c86c]){cursor:pointer;accent-color:currentColor;flex:1}:where(.mvp-volume-pct[data-v-fbb2c86c]){font-variant-numeric:tabular-nums;text-align:right;min-width:2rem}.controls__vol-slider{-webkit-appearance:none;appearance:none;cursor:pointer;background:linear-gradient(to right, #fff 0%, #fff var(--v), #ffffff26 var(--v), #ffffff26 100%);outline:none;flex:1;height:5px;transition:height .15s}.controls__vol-slider:hover{height:7px}.controls__vol-slider::-webkit-slider-runnable-track{background:0 0;height:5px}.controls__vol-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;margin-top:-5.5px;transition:transform .15s;box-shadow:0 0 0 3px #fff3}.controls__vol-slider:hover::-webkit-slider-thumb{transform:scale(1.2)}.controls__vol-slider::-moz-range-track{background:#ffffff26;height:5px}.controls__vol-slider::-moz-range-progress{background:#fff;height:5px}.controls__vol-slider::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 3px #fff3}.controls__vol-header[data-v-10b0ae67]{align-items:center;gap:4px;display:flex}.controls__vol-label[data-v-10b0ae67]{color:#ffffffe6;flex:1;padding:0 4px;font-size:.8rem;font-weight:600}.controls__vol-body[data-v-10b0ae67]{align-items:center;gap:12px;padding:6px 0 4px;display:flex}.controls__vol-pct[data-v-10b0ae67]{font-variant-numeric:tabular-nums;color:#fff9;text-align:right;min-width:32px;font-size:.75rem;font-weight:600}.controls__more-row[data-v-47ca5bfc]{color:#ffffffd9;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:8px 4px;font-size:.8rem;font-weight:500;transition:background .15s;display:flex}.controls__more-row[data-v-47ca5bfc]:hover{background:#ffffff14}.controls__more-row-label[data-v-47ca5bfc]{align-items:center;gap:8px;display:flex}.controls__more-row-icon[data-v-47ca5bfc]{flex-shrink:0;width:16px;height:16px}.controls__more-value[data-v-47ca5bfc]{font-variant-numeric:tabular-nums;color:#ffffff80;font-size:.7rem;font-weight:600}.controls__more-row--active .controls__more-value[data-v-47ca5bfc]{color:var(--mvp-accent,#3b82f6)}.controls__more-header[data-v-e89a8208]{flex-shrink:0;align-items:center;gap:4px;display:flex}.controls__more-label[data-v-e89a8208]{color:#ffffffe6;flex:1;padding:0 4px;font-size:.8rem;font-weight:600}.controls__more-body[data-v-e89a8208]{flex-direction:column;min-height:0;padding:2px 0;display:flex;overflow-y:auto}::view-transition-old(controls-popup),::view-transition-new(controls-popup){animation-duration:.22s;animation-timing-function:ease-in-out}.controls__btn{color:#ffffffbf;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,color .15s;display:flex}.controls__btn svg{width:16px;height:16px}.controls__btn:hover{color:#fff;background:#ffffff1a}.controls--compact .controls__seek,.controls--compact .mvp-scrubber-wrap,.controls--compact .controls__btn--more,.controls--compact .controls__btn--pip,.controls--compact .controls__fs-wrap{display:none}@container player-shell (width<=300px){.controls__seek,.mvp-scrubber-wrap,.controls__btn--more,.controls__btn--pip,.controls__fs-wrap{display:none}}.controls__seek{-webkit-appearance:none;appearance:none;cursor:pointer;box-sizing:border-box;background:padding-box content-box;background-image:linear-gradient(to right, var(--mvp-accent,#3b82f6) 0%, var(--mvp-accent,#3b82f6) var(--p), #ffffff4d var(--p), #ffffff4d var(--b), #ffffff1a var(--b), #ffffff1a 100%);outline:none;width:100%;height:20px;padding:8px 0}.controls__seek::-webkit-slider-runnable-track{background:0 0;height:4px}.controls__seek::-webkit-slider-thumb{-webkit-appearance:none;background:var(--mvp-accent,#3b82f6);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, transparent);cursor:pointer;border-radius:50%;margin-top:-5px;transition:transform .15s}.controls__seek:hover::-webkit-slider-thumb{transform:scale(1.25)}.controls__seek::-moz-range-track{background:#ffffff1a;height:4px}.controls__seek::-moz-range-progress{background:var(--mvp-accent,#3b82f6);height:4px}.controls__seek::-moz-range-thumb{background:var(--mvp-accent,#3b82f6);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, transparent);cursor:pointer;border:none;border-radius:50%}.controls[data-v-5712aad4]{-webkit-backdrop-filter:blur(20px);background:#0a0a0e;border:1px solid #ffffff1a;border-radius:18px;flex-direction:column;gap:10px;width:min(340px,100% - 32px);max-height:100%;padding:14px 16px 12px;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000080}.controls--fs[data-v-5712aad4]{width:100%}.controls__row[data-v-5712aad4]{align-items:center;gap:4px;display:flex}.controls__time-display[data-v-5712aad4]{color:#fff9;letter-spacing:.02em;flex:1;padding:0 4px;font-size:.7rem;font-weight:500}.controls__time-display.mvp-time-display--live[data-v-5712aad4]{letter-spacing:.04em;text-transform:uppercase;color:#f87171;font-weight:700}.controls__play-wrap[data-v-5712aad4]{flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.controls__btn--active[data-v-5712aad4],.controls__btn--pip.mvp-pip-button--active[data-v-5712aad4]{color:var(--mvp-accent,#3b82f6)}.controls__btn--active[data-v-5712aad4]:hover,.controls__btn--pip.mvp-pip-button--active[data-v-5712aad4]:hover{color:var(--mvp-accent,#60a5fa)}.controls__fs-wrap[data-v-5712aad4]{flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.overlay__spinner[data-v-f3307b98]{z-index:5;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.fade-enter-active[data-v-f3307b98],.fade-leave-active[data-v-f3307b98]{transition:opacity .25s}.fade-enter-from[data-v-f3307b98],.fade-leave-to[data-v-f3307b98]{opacity:0}.overlay__error[data-v-f3307b98]{z-index:6;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;display:flex;position:absolute;inset:0}.overlay__error p[data-v-f3307b98]{color:#ffffffb3;text-align:center;max-width:260px;font-size:.875rem;line-height:1.5}.overlay__retry[data-v-f3307b98]{pointer-events:auto;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;padding:.4rem 1rem;font-size:.8rem;font-weight:600;transition:background .15s}.overlay__retry[data-v-f3307b98]:hover{background:#fff3}.overlay__hud[data-v-f3307b98]{z-index:4;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.overlay__hud--visible[data-v-f3307b98]{opacity:1;pointer-events:all}.overlay__popup[data-v-f3307b98]{z-index:5;align-items:var(--mvp-popup-align,center);pointer-events:none;justify-content:center;padding:16px;display:flex;position:absolute;inset:0}.overlay__popup[data-v-f3307b98] .controls{pointer-events:auto}.overlay__popup--fs[data-v-f3307b98]{align-items:flex-end}.popup-enter-active[data-v-f3307b98],.popup-leave-active[data-v-f3307b98]{transition:opacity .2s,transform .2s}.popup-enter-from[data-v-f3307b98],.popup-leave-to[data-v-f3307b98]{opacity:0;transform:scale(.95)}.ad-overlay[data-v-23efcc8b]{z-index:21;pointer-events:none;position:absolute;inset:0}.ad-overlay__bar[data-v-23efcc8b]{align-items:center;gap:6px;display:flex;position:absolute;bottom:10px;left:10px}.ad-overlay__badge[data-v-23efcc8b]{color:#fff;text-transform:uppercase;letter-spacing:.06em;background:#0009;border-radius:4px;align-items:center;gap:6px;padding:3px 8px;font-size:.65rem;font-weight:700;display:flex}.ad-overlay__countdown[data-v-23efcc8b]{font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:.02em;opacity:.8;font-weight:500}.ad-overlay__btn[data-v-23efcc8b]{color:#fff;cursor:pointer;pointer-events:auto;background:#0009;border:none;border-radius:4px;justify-content:center;align-items:center;padding:3px;transition:background .15s;display:flex}.ad-overlay__btn[data-v-23efcc8b]:hover{background:#000c}.ad-overlay__btn svg[data-v-23efcc8b]{width:11px;height:11px}.player[data-v-4ab3cf75]{user-select:none;-webkit-tap-highlight-color:transparent;width:100%;max-width:800px;margin:0 auto}[data-mvp-player][data-v-4ab3cf75]{position:absolute;inset:0}.player__shell[data-v-4ab3cf75]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#000;position:relative;overflow:hidden;container:player-shell/inline-size}.mvp-video--hidden[data-v-4ab3cf75]{opacity:0}.overlay__tap-capture[data-v-4ab3cf75]{z-index:2;position:absolute;inset:0}.player__shell--portrait[data-v-4ab3cf75]{width:auto;max-width:100%;max-height:75dvh;margin:0 auto}.player__native-play[data-v-4ab3cf75]{z-index:3;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.player__native-play[data-v-4ab3cf75]>*{pointer-events:auto}.player__shell[data-v-4ab3cf75]:fullscreen{border-radius:0;width:100vw;height:100dvh}.player__shell:fullscreen .mvp-video[data-v-4ab3cf75],.player__shell:fullscreen [data-mvp-player][data-v-4ab3cf75]{width:100%!important;height:100%!important}.mvp-video{border-radius:var(--mvp-radius,12px);object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.mvp-dailymotion .mvp-tech>*,.mvp-dailymotion .dailymotion-player-root,.mvp-dailymotion iframe{width:100%!important;height:100%!important;position:absolute!important;inset:0!important}.mvp-vimeo .mvp-tech>div{width:100%!important;height:100%!important;padding:0!important;position:absolute!important;top:0!important;left:0!important}.mvp-vimeo iframe{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}[data-mvp-player] .ima-ad-container{pointer-events:none;z-index:20!important;width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}.mvp-ad-playing .ima-ad-container{pointer-events:auto}.mvp-ad-playing .overlay__hud,.mvp-ad-playing .overlay__spinner{display:none!important}.stage-wrapper[data-v-fb8c86cf]{width:100%;max-width:800px;margin:0 auto}.stage[data-v-fb8c86cf]{width:100%}.stage__dismiss[data-v-fb8c86cf],.stage__scroll-to[data-v-fb8c86cf]{z-index:10;backdrop-filter:blur(6px);color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;transition:all .15s;display:flex;position:absolute;top:.4rem}.stage__dismiss[data-v-fb8c86cf]:hover,.stage__scroll-to[data-v-fb8c86cf]:hover{background:#000000d9}.stage__dismiss svg[data-v-fb8c86cf],.stage__scroll-to svg[data-v-fb8c86cf]{width:14px;height:14px}.stage__dismiss[data-v-fb8c86cf]{right:.4rem}.stage__scroll-to[data-v-fb8c86cf]{left:.4rem}.stage--minified[data-v-fb8c86cf]{z-index:100;margin:0;position:fixed;overflow:hidden;box-shadow:0 8px 32px #0009}.stage--pin-bottom-right[data-v-fb8c86cf],.stage--pin-bottom-left[data-v-fb8c86cf],.stage--pin-top-right[data-v-fb8c86cf],.stage--pin-top-left[data-v-fb8c86cf]{border-radius:var(--mvp-radius,12px);width:360px;max-width:360px;transition:transform .25s;@media (width<=740px){max-width:300px}}.stage--pin-bottom-right[data-v-fb8c86cf]{bottom:1.25rem;right:1.25rem}.stage--pin-bottom-left[data-v-fb8c86cf]{bottom:1.25rem;left:1.25rem}.stage--pin-top-right[data-v-fb8c86cf]{top:1.25rem;right:1.25rem}.stage--pin-top-left[data-v-fb8c86cf]{top:1.25rem;left:1.25rem}.stage--pin-bottom-right.stage--tucked[data-v-fb8c86cf],.stage--pin-top-right.stage--tucked[data-v-fb8c86cf]{transform:translateX(calc(100% - var(--mvp-stage-tuck,32px)))}.stage--pin-bottom-left.stage--tucked[data-v-fb8c86cf],.stage--pin-top-left.stage--tucked[data-v-fb8c86cf]{transform:translateX(calc(-100% + var(--mvp-stage-tuck,32px)))}.stage--pin-full-width[data-v-fb8c86cf]{width:100%;max-width:100%;box-shadow:none;border-radius:0;top:0;left:0;right:0}.stage__idle[data-v-fb8c86cf]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#111;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.stage__idle-poster[data-v-fb8c86cf]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.stage__idle-scrim[data-v-fb8c86cf]{background:#00000073;transition:background .15s;position:absolute;inset:0}.stage__idle:hover .stage__idle-scrim[data-v-fb8c86cf]{background:#0000004d}.stage__idle-body[data-v-fb8c86cf]{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;display:flex;position:relative}.stage__idle-btn[data-v-fb8c86cf]{backdrop-filter:blur(4px);color:#fff;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;transition:transform .15s,background .15s;display:flex}.stage__idle:hover .stage__idle-btn[data-v-fb8c86cf]{background:#000c;transform:scale(1.1)}.stage__idle-btn svg[data-v-fb8c86cf]{width:32px;height:32px}.stage__idle-title[data-v-fb8c86cf]{color:#f1f5f9;text-shadow:0 1px 4px #000c;font-size:1rem;font-weight:600}.stage__idle-empty[data-v-fb8c86cf]{color:#64748b;font-size:.95rem}.placeholder[data-v-dbcb4f82]{width:100%}.placeholder__shell[data-v-dbcb4f82]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#111;position:relative;overflow:hidden}.placeholder__shell--portrait[data-v-dbcb4f82]{width:auto;max-height:75dvh;margin:0 auto}.placeholder__poster[data-v-dbcb4f82]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.placeholder__scrim[data-v-dbcb4f82]{background:#00000059;transition:background .15s;position:absolute;inset:0}.placeholder__shell:hover .placeholder__scrim[data-v-dbcb4f82]{background:#00000026}.placeholder__btn-wrap[data-v-dbcb4f82]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.placeholder__btn-wrap[data-v-dbcb4f82]>*{pointer-events:auto}.placeholder__footer[data-v-dbcb4f82]{pointer-events:none;background:linear-gradient(#0000 0%,#000c 100%);padding:1.5rem .75rem .6rem;position:absolute;bottom:0;left:0;right:0}.placeholder__title[data-v-dbcb4f82]{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #0009;font-size:.8rem;font-weight:600;overflow:hidden}.mvp-hide-marker[data-v-bacb702a]{width:100%;min-height:1px}:where(.mvp-mute-button[data-v-1940b598]){all:unset;cursor:pointer;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-mute-button svg[data-v-1940b598]){width:1em;height:1em}:where(.mvp-loop-button[data-v-e32eda25]){all:unset;cursor:pointer;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-loop-button--active[data-v-e32eda25]){opacity:1}:where(.mvp-loop-button svg[data-v-e32eda25]){width:1em;height:1em}:where(.mvp-captions-button[data-v-2572c4f2]){all:unset;cursor:pointer;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-captions-button--active[data-v-2572c4f2]){opacity:1}:where(.mvp-captions-button svg[data-v-2572c4f2]){width:1em;height:1em}:where(.mvp-quality-button[data-v-d1352878]){all:unset;cursor:pointer;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-quality-button--active[data-v-d1352878]){opacity:1}:where(.mvp-quality-button svg[data-v-d1352878]){width:1em;height:1em}:where(.mvp-playback-rate-button[data-v-646c9bc1]){all:unset;cursor:pointer;font-variant-numeric:tabular-nums;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-playback-rate-button--active[data-v-646c9bc1]){opacity:1}
package/dist/index.d.mts CHANGED
@@ -20,7 +20,7 @@ interface CustomAction {
20
20
  onClick: () => void;
21
21
  }
22
22
  type PlayerAction = BuiltinAction | CustomAction;
23
- type StateChangeType = 'play' | 'pause' | 'ended' | 'seeked' | 'error' | 'adstart' | 'adend' | 'volumechange' | 'ratechange' | 'captionchange' | 'qualitychange' | 'pipchange' | 'loopchange' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'controlsopen' | 'controlsclose' | 'bufferstart' | 'bufferend';
23
+ type StateChangeType = 'play' | 'pause' | 'ended' | 'seeked' | 'error' | 'adstart' | 'adend' | 'volumechange' | 'ratechange' | 'captionchange' | 'qualitychange' | 'pipchange' | 'loopchange' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'controlsopen' | 'controlsclose' | 'bufferstart' | 'bufferend' | 'timeupdate' | 'tap';
24
24
  interface StateChangeEvent {
25
25
  type: StateChangeType;
26
26
  currentTime: number;
@@ -79,6 +79,8 @@ interface PlayerProps {
79
79
  payload?: Record<string, unknown>;
80
80
  action?: PlayerAction | null;
81
81
  disableTapCapture?: boolean;
82
+ controls?: boolean;
83
+ playWhenInView?: boolean;
82
84
  }
83
85
  type VideoSelectDetail = PlayerProps;
84
86
  interface VideoStateDetail {
@@ -89,15 +91,52 @@ interface VideoToggleDetail {
89
91
  videoUrl: string;
90
92
  }
91
93
  type VideoEntry = PlayerProps;
94
+ interface PlayerHandle {
95
+ isPlaying: boolean;
96
+ togglePlay(): void;
97
+ hasEnded: boolean;
98
+ isError: boolean;
99
+ retry(): void;
100
+ isMuted: boolean;
101
+ toggleMute(): void;
102
+ isAudible: boolean;
103
+ isFullscreen: boolean;
104
+ toggleFullscreen(): void;
105
+ current: number;
106
+ total: number;
107
+ seek(percent: number): void;
108
+ bufferedDisplay: number;
109
+ isBuffering: boolean;
110
+ isLive: boolean;
111
+ vol: number;
112
+ setVolume(vol: number): void;
113
+ isLooping: boolean;
114
+ toggleLoop(): void;
115
+ supportsPip: boolean;
116
+ isPipActive: boolean;
117
+ togglePip(): void;
118
+ supportsCaptions: boolean;
119
+ captionTracks: CaptionTrackInfo[];
120
+ activeCaptionIndex: number | null;
121
+ setCaptionTrack(index: number | null): void;
122
+ supportsQuality: boolean;
123
+ qualityLevels: QualityLevelInfo[];
124
+ currentQualityIndex: number | null;
125
+ isAutoQuality: boolean;
126
+ setQuality(index: number | null): void;
127
+ supportsPlaybackRate: boolean;
128
+ playbackRate: number;
129
+ setPlaybackRate(rate: number): void;
130
+ }
92
131
  //#endregion
93
132
  //#region src/components/VideoPlayer.vue.d.ts
94
- type __VLS_Props$1 = PlayerProps & {
133
+ type __VLS_Props$13 = PlayerProps & {
95
134
  hasPlaylist?: boolean;
96
135
  hasNext?: boolean;
97
136
  hasPrevious?: boolean;
98
137
  autoAdvance?: boolean;
99
138
  };
100
- declare const __VLS_export$3: import("vue").DefineComponent<__VLS_Props$1, {
139
+ declare const __VLS_export$16: import("vue").DefineComponent<__VLS_Props$13, {
101
140
  isPlaying: boolean;
102
141
  hasEnded: boolean;
103
142
  isReady: boolean;
@@ -111,6 +150,7 @@ declare const __VLS_export$3: import("vue").DefineComponent<__VLS_Props$1, {
111
150
  total: number;
112
151
  vol: number;
113
152
  isMuted: boolean;
153
+ isAudible: boolean;
114
154
  isLooping: boolean;
115
155
  playbackRate: number;
116
156
  hasStarted: boolean;
@@ -151,82 +191,120 @@ declare const __VLS_export$3: import("vue").DefineComponent<__VLS_Props$1, {
151
191
  "play-next": () => any;
152
192
  "play-previous": () => any;
153
193
  "toggle-auto-advance": () => any;
154
- }, string, import("vue").PublicProps, Readonly<__VLS_Props$1> & Readonly<{
194
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props$13> & Readonly<{
155
195
  "onState-change"?: ((event: StateChangeEvent) => any) | undefined;
156
196
  "onPlay-next"?: (() => any) | undefined;
157
197
  "onPlay-previous"?: (() => any) | undefined;
158
198
  "onToggle-auto-advance"?: (() => any) | undefined;
159
199
  }>, {
160
- nativeUi: boolean;
161
- autoplay: boolean;
162
200
  title: string;
163
201
  poster: string;
164
202
  aspectRatio: string;
165
203
  adTagUrl: string;
166
204
  tracks: CaptionTrackDef[];
205
+ autoplay: boolean;
167
206
  muted: boolean;
207
+ nativeUi: boolean;
168
208
  autoStage: boolean;
169
209
  lazy: boolean;
170
210
  payload: Record<string, unknown>;
171
211
  action: PlayerAction | null;
172
212
  disableTapCapture: boolean;
213
+ controls: boolean;
214
+ playWhenInView: boolean;
173
215
  hasPlaylist: boolean;
174
216
  hasNext: boolean;
175
217
  hasPrevious: boolean;
176
218
  autoAdvance: boolean;
177
219
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
178
- declare const _default$2: typeof __VLS_export$3;
220
+ declare const _default$14: typeof __VLS_export$16;
179
221
  //#endregion
180
222
  //#region src/components/VideoStage.vue.d.ts
181
- type __VLS_Props = {
223
+ type __VLS_Props$12 = {
182
224
  pinPosition?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'full-width';
183
225
  playlist?: VideoEntry[];
184
226
  };
185
227
  declare function playNext(): void;
186
228
  declare function playPrevious(): void;
187
- declare const __VLS_export$2: import("vue").DefineComponent<__VLS_Props, {
229
+ declare const __VLS_export$15: import("vue").DefineComponent<__VLS_Props$12, {
230
+ retry: () => Promise<void>;
231
+ togglePlay: () => Promise<void>;
232
+ seek: (val: number) => Promise<void>;
233
+ toggleMute: () => Promise<void>;
234
+ setVolume: (val: number) => Promise<void>;
235
+ toggleFullscreen: () => Promise<void>;
236
+ markFullscreenPending: () => Promise<void>;
237
+ toggleLoop: () => Promise<void>;
238
+ toggleAdMute: () => Promise<void>;
239
+ setPlaybackRate: (rate: number) => Promise<void>;
240
+ setCaptionTrack: (index: number | null) => Promise<void>;
241
+ setQuality: (index: number | null) => Promise<void>;
242
+ togglePip: () => Promise<void>;
243
+ playbackRate: import("vue").ComputedRef<number>;
244
+ nativeUi: import("vue").ComputedRef<boolean>;
245
+ isPlaying: import("vue").ComputedRef<boolean>;
246
+ hasEnded: import("vue").ComputedRef<boolean>;
247
+ isReady: import("vue").ComputedRef<boolean>;
248
+ isAdPlaying: import("vue").ComputedRef<boolean>;
249
+ isAdPaused: import("vue").ComputedRef<boolean>;
250
+ isAdMuted: import("vue").ComputedRef<boolean>;
251
+ adRemainingTime: import("vue").ComputedRef<number>;
252
+ isLive: import("vue").ComputedRef<boolean>;
253
+ isBuffering: import("vue").ComputedRef<boolean>;
254
+ current: import("vue").ComputedRef<number>;
255
+ total: import("vue").ComputedRef<number>;
256
+ vol: import("vue").ComputedRef<number>;
257
+ isMuted: import("vue").ComputedRef<boolean>;
258
+ isAudible: import("vue").ComputedRef<boolean>;
259
+ isLooping: import("vue").ComputedRef<boolean>;
260
+ hasStarted: import("vue").ComputedRef<boolean>;
261
+ isError: import("vue").ComputedRef<boolean>;
262
+ errorMessage: import("vue").ComputedRef<string>;
263
+ progress: import("vue").ComputedRef<number>;
264
+ bufferedDisplay: import("vue").ComputedRef<number>;
265
+ isFullscreen: import("vue").ComputedRef<boolean>;
266
+ isFullscreenPending: import("vue").ComputedRef<boolean>;
267
+ supportsPlaybackRate: import("vue").ComputedRef<boolean>;
268
+ supportsCaptions: import("vue").ComputedRef<boolean>;
269
+ captionTracks: import("vue").ComputedRef<CaptionTrackInfo[]>;
270
+ activeCaptionIndex: import("vue").ComputedRef<number | null>;
271
+ supportsQuality: import("vue").ComputedRef<boolean>;
272
+ qualityLevels: import("vue").ComputedRef<QualityLevelInfo[]>;
273
+ currentQualityIndex: import("vue").ComputedRef<number | null>;
274
+ isAutoQuality: import("vue").ComputedRef<boolean>;
275
+ supportsPip: import("vue").ComputedRef<boolean>;
276
+ isPipActive: import("vue").ComputedRef<boolean>;
188
277
  playNext: typeof playNext;
189
278
  playPrevious: typeof playPrevious;
190
279
  hasNext: import("vue").ComputedRef<boolean>;
191
280
  hasPrevious: import("vue").ComputedRef<boolean>;
192
281
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
193
282
  "state-change": (event: StateChangeEvent) => any;
194
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
283
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props$12> & Readonly<{
195
284
  "onState-change"?: ((event: StateChangeEvent) => any) | undefined;
196
285
  }>, {
197
286
  pinPosition: "bottom-right" | "bottom-left" | "top-right" | "top-left" | "full-width";
198
287
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
199
- declare const _default$3: typeof __VLS_export$2;
288
+ declare const _default$15: typeof __VLS_export$15;
200
289
  //#endregion
201
290
  //#region src/components/VideoPlaceholder.vue.d.ts
202
- declare const __VLS_export$1: import("vue").DefineComponent<PlayerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<PlayerProps> & Readonly<{}>, {
203
- nativeUi: boolean;
204
- autoplay: boolean;
291
+ declare const __VLS_export$14: import("vue").DefineComponent<PlayerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
292
+ "enter-view": () => any;
293
+ }, string, import("vue").PublicProps, Readonly<PlayerProps> & Readonly<{
294
+ "onEnter-view"?: (() => any) | undefined;
295
+ }>, {
205
296
  title: string;
206
297
  poster: string;
207
298
  aspectRatio: string;
208
299
  adTagUrl: string;
300
+ autoplay: boolean;
209
301
  muted: boolean;
302
+ nativeUi: boolean;
210
303
  autoStage: boolean;
211
304
  payload: Record<string, unknown>;
212
305
  action: PlayerAction | null;
213
306
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
214
- declare const _default$1: typeof __VLS_export$1;
215
- //#endregion
216
- //#region src/components/VideoItem.vue.d.ts
217
- declare const __VLS_export: import("vue").DefineComponent<PlayerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
218
- "state-change": (event: StateChangeEvent) => any;
219
- }, string, import("vue").PublicProps, Readonly<PlayerProps> & Readonly<{
220
- "onState-change"?: ((event: StateChangeEvent) => any) | undefined;
221
- }>, {
222
- muted: boolean;
223
- lazy: boolean;
224
- action: PlayerAction | null;
225
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
226
- declare const _default: typeof __VLS_export;
227
- //#endregion
228
- //#region src/adapters/index.d.ts
229
- declare function getPlatform(url: string): string;
307
+ declare const _default$13: typeof __VLS_export$14;
230
308
  //#endregion
231
309
  //#region src/composables/player/usePlayer.d.ts
232
310
  interface UsePlayerReturn {
@@ -243,6 +321,7 @@ interface UsePlayerReturn {
243
321
  total: Ref<number>;
244
322
  vol: Ref<number>;
245
323
  isMuted: Ref<boolean>;
324
+ isAudible: ComputedRef<boolean>;
246
325
  isLooping: Ref<boolean>;
247
326
  playbackRate: Ref<number>;
248
327
  hasStarted: Ref<boolean>;
@@ -314,7 +393,326 @@ interface PlaylistContext {
314
393
  declare const PlaylistKey: InjectionKey<PlaylistContext>;
315
394
  declare function injectStrict<T>(key: InjectionKey<T>): T;
316
395
  //#endregion
396
+ //#region src/composables/useForwardedPlayer.d.ts
397
+ declare const METHOD_KEYS: readonly ["retry", "togglePlay", "seek", "toggleMute", "setVolume", "toggleFullscreen", "markFullscreenPending", "toggleLoop", "toggleAdMute", "setPlaybackRate", "setCaptionTrack", "setQuality", "togglePip"];
398
+ declare const STATE_KEYS: readonly ["isPlaying", "hasEnded", "isReady", "isAdPlaying", "isAdPaused", "isAdMuted", "adRemainingTime", "isLive", "isBuffering", "current", "total", "vol", "isMuted", "isAudible", "isLooping", "playbackRate", "hasStarted", "isError", "errorMessage", "progress", "bufferedDisplay", "isFullscreen", "isFullscreenPending", "supportsPlaybackRate", "supportsCaptions", "captionTracks", "activeCaptionIndex", "supportsQuality", "qualityLevels", "currentQualityIndex", "isAutoQuality", "supportsPip", "isPipActive", "nativeUi"];
399
+ type MethodKey = (typeof METHOD_KEYS)[number];
400
+ type StateKey = (typeof STATE_KEYS)[number];
401
+ type ForwardedPlayer = { [K in MethodKey]: (...args: Parameters<PlayerContext[K]>) => Promise<void>; } & { [K in StateKey]: ComputedRef<PlayerContext[K]>; };
402
+ interface UseForwardedPlayerReturn {
403
+ playerRef: Ref<PlayerContext | null>;
404
+ forwarded: ForwardedPlayer;
405
+ }
406
+ declare function useForwardedPlayer(guard?: (key: MethodKey) => boolean | Promise<boolean>): UseForwardedPlayerReturn;
407
+ //#endregion
408
+ //#region src/components/VideoItem.vue.d.ts
409
+ declare const __VLS_export$13: import("vue").DefineComponent<PlayerProps, ForwardedPlayer, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
410
+ "state-change": (event: StateChangeEvent) => any;
411
+ }, string, import("vue").PublicProps, Readonly<PlayerProps> & Readonly<{
412
+ "onState-change"?: ((event: StateChangeEvent) => any) | undefined;
413
+ }>, {
414
+ muted: boolean;
415
+ lazy: boolean;
416
+ action: PlayerAction | null;
417
+ controls: boolean;
418
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
419
+ declare const _default$12: typeof __VLS_export$13;
420
+ //#endregion
421
+ //#region src/components/HideMarker.vue.d.ts
422
+ declare const __VLS_export$12: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
423
+ declare const _default$3: typeof __VLS_export$12;
424
+ //#endregion
425
+ //#region src/components/controls/Scrubber.vue.d.ts
426
+ type __VLS_Props$11 = {
427
+ player?: PlayerHandle | null;
428
+ for?: string;
429
+ };
430
+ declare var __VLS_1$11: {
431
+ scrubbing: boolean;
432
+ percent: number;
433
+ previewSeconds: number;
434
+ formatTime: (seconds: number) => string;
435
+ };
436
+ type __VLS_Slots$11 = {} & {
437
+ preview?: (props: typeof __VLS_1$11) => any;
438
+ };
439
+ declare const __VLS_base$11: import("vue").DefineComponent<__VLS_Props$11, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$11> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
440
+ declare const __VLS_export$11: __VLS_WithSlots$11<typeof __VLS_base$11, __VLS_Slots$11>;
441
+ declare const _default$10: typeof __VLS_export$11;
442
+ type __VLS_WithSlots$11<T, S> = T & {
443
+ new (): {
444
+ $slots: S;
445
+ };
446
+ };
447
+ //#endregion
448
+ //#region src/components/controls/PlayButton.vue.d.ts
449
+ type __VLS_Props$10 = {
450
+ player?: PlayerHandle | null;
451
+ for?: string;
452
+ };
453
+ declare var __VLS_1$10: {
454
+ isPlaying: boolean;
455
+ hasEnded: boolean;
456
+ isError: boolean;
457
+ };
458
+ type __VLS_Slots$10 = {} & {
459
+ default?: (props: typeof __VLS_1$10) => any;
460
+ };
461
+ declare const __VLS_base$10: import("vue").DefineComponent<__VLS_Props$10, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$10> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
462
+ declare const __VLS_export$10: __VLS_WithSlots$10<typeof __VLS_base$10, __VLS_Slots$10>;
463
+ declare const _default$7: typeof __VLS_export$10;
464
+ type __VLS_WithSlots$10<T, S> = T & {
465
+ new (): {
466
+ $slots: S;
467
+ };
468
+ };
469
+ //#endregion
470
+ //#region src/components/controls/MuteButton.vue.d.ts
471
+ type __VLS_Props$9 = {
472
+ player?: PlayerHandle | null;
473
+ for?: string;
474
+ };
475
+ declare var __VLS_1$9: {
476
+ isMuted: boolean;
477
+ };
478
+ type __VLS_Slots$9 = {} & {
479
+ default?: (props: typeof __VLS_1$9) => any;
480
+ };
481
+ declare const __VLS_base$9: import("vue").DefineComponent<__VLS_Props$9, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$9> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
482
+ declare const __VLS_export$9: __VLS_WithSlots$9<typeof __VLS_base$9, __VLS_Slots$9>;
483
+ declare const _default$5: typeof __VLS_export$9;
484
+ type __VLS_WithSlots$9<T, S> = T & {
485
+ new (): {
486
+ $slots: S;
487
+ };
488
+ };
489
+ //#endregion
490
+ //#region src/components/controls/FullscreenButton.vue.d.ts
491
+ type __VLS_Props$8 = {
492
+ player?: PlayerHandle | null;
493
+ for?: string;
494
+ };
495
+ declare var __VLS_1$8: {
496
+ isFullscreen: boolean;
497
+ };
498
+ type __VLS_Slots$8 = {} & {
499
+ default?: (props: typeof __VLS_1$8) => any;
500
+ };
501
+ declare const __VLS_base$8: import("vue").DefineComponent<__VLS_Props$8, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$8> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
502
+ declare const __VLS_export$8: __VLS_WithSlots$8<typeof __VLS_base$8, __VLS_Slots$8>;
503
+ declare const _default$2: typeof __VLS_export$8;
504
+ type __VLS_WithSlots$8<T, S> = T & {
505
+ new (): {
506
+ $slots: S;
507
+ };
508
+ };
509
+ //#endregion
510
+ //#region src/components/controls/Buffering.vue.d.ts
511
+ type __VLS_Props$7 = {
512
+ player?: PlayerHandle | null;
513
+ for?: string;
514
+ };
515
+ declare var __VLS_1$7: {};
516
+ type __VLS_Slots$7 = {} & {
517
+ default?: (props: typeof __VLS_1$7) => any;
518
+ };
519
+ declare const __VLS_base$7: import("vue").DefineComponent<__VLS_Props$7, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$7> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
520
+ declare const __VLS_export$7: __VLS_WithSlots$7<typeof __VLS_base$7, __VLS_Slots$7>;
521
+ declare const _default: typeof __VLS_export$7;
522
+ type __VLS_WithSlots$7<T, S> = T & {
523
+ new (): {
524
+ $slots: S;
525
+ };
526
+ };
527
+ //#endregion
528
+ //#region src/components/controls/LoopButton.vue.d.ts
529
+ type __VLS_Props$6 = {
530
+ player?: PlayerHandle | null;
531
+ for?: string;
532
+ };
533
+ declare var __VLS_1$6: {
534
+ isLooping: boolean;
535
+ };
536
+ type __VLS_Slots$6 = {} & {
537
+ default?: (props: typeof __VLS_1$6) => any;
538
+ };
539
+ declare const __VLS_base$6: import("vue").DefineComponent<__VLS_Props$6, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$6> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
540
+ declare const __VLS_export$6: __VLS_WithSlots$6<typeof __VLS_base$6, __VLS_Slots$6>;
541
+ declare const _default$4: typeof __VLS_export$6;
542
+ type __VLS_WithSlots$6<T, S> = T & {
543
+ new (): {
544
+ $slots: S;
545
+ };
546
+ };
547
+ //#endregion
548
+ //#region src/components/controls/PipButton.vue.d.ts
549
+ type __VLS_Props$5 = {
550
+ player?: PlayerHandle | null;
551
+ for?: string;
552
+ };
553
+ declare var __VLS_1$5: {
554
+ isPipActive: boolean;
555
+ };
556
+ type __VLS_Slots$5 = {} & {
557
+ default?: (props: typeof __VLS_1$5) => any;
558
+ };
559
+ declare const __VLS_base$5: import("vue").DefineComponent<__VLS_Props$5, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$5> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
560
+ declare const __VLS_export$5: __VLS_WithSlots$5<typeof __VLS_base$5, __VLS_Slots$5>;
561
+ declare const _default$6: typeof __VLS_export$5;
562
+ type __VLS_WithSlots$5<T, S> = T & {
563
+ new (): {
564
+ $slots: S;
565
+ };
566
+ };
567
+ //#endregion
568
+ //#region src/components/controls/CaptionsButton.vue.d.ts
569
+ type __VLS_Props$4 = {
570
+ player?: PlayerHandle | null;
571
+ for?: string;
572
+ };
573
+ declare var __VLS_1$4: {
574
+ currentLabel: string;
575
+ tracks: CaptionTrackInfo[];
576
+ activeIndex: number | null;
577
+ };
578
+ type __VLS_Slots$4 = {} & {
579
+ default?: (props: typeof __VLS_1$4) => any;
580
+ };
581
+ declare const __VLS_base$4: import("vue").DefineComponent<__VLS_Props$4, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$4> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
582
+ declare const __VLS_export$4: __VLS_WithSlots$4<typeof __VLS_base$4, __VLS_Slots$4>;
583
+ declare const _default$1: typeof __VLS_export$4;
584
+ type __VLS_WithSlots$4<T, S> = T & {
585
+ new (): {
586
+ $slots: S;
587
+ };
588
+ };
589
+ //#endregion
590
+ //#region src/components/controls/QualityButton.vue.d.ts
591
+ type __VLS_Props$3 = {
592
+ player?: PlayerHandle | null;
593
+ for?: string;
594
+ };
595
+ declare var __VLS_1$3: {
596
+ currentLabel: string;
597
+ levels: QualityLevelInfo[];
598
+ currentIndex: number | null;
599
+ isAuto: boolean;
600
+ };
601
+ type __VLS_Slots$3 = {} & {
602
+ default?: (props: typeof __VLS_1$3) => any;
603
+ };
604
+ declare const __VLS_base$3: import("vue").DefineComponent<__VLS_Props$3, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$3> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
605
+ declare const __VLS_export$3: __VLS_WithSlots$3<typeof __VLS_base$3, __VLS_Slots$3>;
606
+ declare const _default$9: typeof __VLS_export$3;
607
+ type __VLS_WithSlots$3<T, S> = T & {
608
+ new (): {
609
+ $slots: S;
610
+ };
611
+ };
612
+ //#endregion
613
+ //#region src/components/controls/PlaybackRateButton.vue.d.ts
614
+ type __VLS_Props$2 = {
615
+ player?: PlayerHandle | null;
616
+ for?: string;
617
+ };
618
+ declare var __VLS_1$2: {
619
+ currentLabel: string;
620
+ rate: number;
621
+ rates: number[];
622
+ };
623
+ type __VLS_Slots$2 = {} & {
624
+ default?: (props: typeof __VLS_1$2) => any;
625
+ };
626
+ declare const __VLS_base$2: import("vue").DefineComponent<__VLS_Props$2, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$2> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
627
+ declare const __VLS_export$2: __VLS_WithSlots$2<typeof __VLS_base$2, __VLS_Slots$2>;
628
+ declare const _default$8: typeof __VLS_export$2;
629
+ type __VLS_WithSlots$2<T, S> = T & {
630
+ new (): {
631
+ $slots: S;
632
+ };
633
+ };
634
+ //#endregion
635
+ //#region src/components/controls/VolumeSlider.vue.d.ts
636
+ type __VLS_Props$1 = {
637
+ player?: PlayerHandle | null;
638
+ for?: string;
639
+ };
640
+ declare var __VLS_1$1: {
641
+ percent: number;
642
+ };
643
+ type __VLS_Slots$1 = {} & {
644
+ default?: (props: typeof __VLS_1$1) => any;
645
+ };
646
+ declare const __VLS_base$1: import("vue").DefineComponent<__VLS_Props$1, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props$1> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
647
+ declare const __VLS_export$1: __VLS_WithSlots$1<typeof __VLS_base$1, __VLS_Slots$1>;
648
+ declare const _default$16: typeof __VLS_export$1;
649
+ type __VLS_WithSlots$1<T, S> = T & {
650
+ new (): {
651
+ $slots: S;
652
+ };
653
+ };
654
+ //#endregion
655
+ //#region src/utils/tech.d.ts
656
+ declare function fmtTime(s: number, round?: boolean): string;
657
+ //#endregion
658
+ //#region src/components/controls/TimeDisplay.vue.d.ts
659
+ type __VLS_Props = {
660
+ player?: PlayerHandle | null;
661
+ for?: string;
662
+ };
663
+ declare var __VLS_1: {
664
+ isLive: boolean;
665
+ current: number;
666
+ total: number;
667
+ formatTime: typeof fmtTime;
668
+ };
669
+ type __VLS_Slots = {} & {
670
+ default?: (props: typeof __VLS_1) => any;
671
+ };
672
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
673
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
674
+ declare const _default$11: typeof __VLS_export;
675
+ type __VLS_WithSlots<T, S> = T & {
676
+ new (): {
677
+ $slots: S;
678
+ };
679
+ };
680
+ //#endregion
681
+ //#region src/adapters/index.d.ts
682
+ declare function getPlatform(url: string): string;
683
+ //#endregion
684
+ //#region src/composables/controls/useScrubber.d.ts
685
+ interface UseScrubberReturn {
686
+ scrubbing: ComputedRef<boolean>;
687
+ displayPercent: ComputedRef<number>;
688
+ previewSeconds: ComputedRef<number>;
689
+ onInput: (e: Event) => void;
690
+ onChange: (e: Event) => void;
691
+ }
692
+ declare function useScrubber(player: Ref<PlayerHandle | null | undefined>): UseScrubberReturn;
693
+ //#endregion
694
+ //#region src/composables/overlay/useCaptions.d.ts
695
+ interface UseCaptionsReturn {
696
+ cycleCaptionTrack: () => void;
697
+ currentCaptionLabel: () => string;
698
+ }
699
+ declare function useCaptions(player: PlayerHandle): UseCaptionsReturn;
700
+ //#endregion
701
+ //#region src/composables/overlay/useQuality.d.ts
702
+ interface UseQualityReturn {
703
+ cycleQuality: () => void;
704
+ currentQualityLabel: () => string;
705
+ }
706
+ declare function useQuality(player: PlayerHandle): UseQualityReturn;
707
+ //#endregion
708
+ //#region src/composables/overlay/usePlaybackRate.d.ts
709
+ interface UsePlaybackRateReturn {
710
+ cycleRate: () => void;
711
+ fmtRate: (rate: number) => string;
712
+ }
713
+ declare function usePlaybackRate(player: PlayerHandle): UsePlaybackRateReturn;
714
+ //#endregion
317
715
  //#region src/index.d.ts
318
716
  declare const VideoPlayerPlugin: Plugin;
319
717
  //#endregion
320
- export { ActionKey, BuiltinAction, CaptionTrackDef, CompactKey, CustomAction, HeaderBiddingAdUnit, HeaderBiddingConfig, HudContext, HudKey, PlayerAction, PlayerContext, PlayerKey, PlayerProps, PlaylistContext, PlaylistKey, StateChangeEvent, StateChangeType, VideoEntry, _default as VideoItem, _default$1 as VideoPlaceholder, _default$2 as VideoPlayer, VideoPlayerPlugin, VideoPlayerPlugin as default, VideoSelectDetail, _default$3 as VideoStage, VideoStateDetail, VideoToggleDetail, getPlatform, injectStrict };
718
+ export { ActionKey, _default as Buffering, BuiltinAction, CaptionTrackDef, type CaptionTrackInfo, _default$1 as CaptionsButton, CompactKey, CustomAction, type ForwardedPlayer, _default$2 as FullscreenButton, HeaderBiddingAdUnit, HeaderBiddingConfig, _default$3 as HideMarker, HudContext, HudKey, _default$4 as LoopButton, type MethodKey, _default$5 as MuteButton, _default$6 as PipButton, _default$7 as PlayButton, _default$8 as PlaybackRateButton, PlayerAction, PlayerContext, PlayerHandle, PlayerKey, PlayerProps, PlaylistContext, PlaylistKey, _default$9 as QualityButton, type QualityLevelInfo, _default$10 as Scrubber, StateChangeEvent, StateChangeType, _default$11 as TimeDisplay, type UseForwardedPlayerReturn, VideoEntry, _default$12 as VideoItem, _default$13 as VideoPlaceholder, _default$14 as VideoPlayer, VideoPlayerPlugin, VideoPlayerPlugin as default, VideoSelectDetail, _default$15 as VideoStage, VideoStateDetail, VideoToggleDetail, _default$16 as VolumeSlider, getPlatform, injectStrict, useCaptions, useForwardedPlayer, usePlaybackRate, useQuality, useScrubber };