@serifpersia/dango 3.9.2 → 3.9.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.
- package/README.md +1 -1
- package/client/dist/assets/{AnimeCard-DV3CayVB.js → AnimeCard-BHlM8RoB.js} +1 -1
- package/client/dist/assets/{AnimeInfo-C_yN40WV.js → AnimeInfo-DLwC6WnR.js} +1 -1
- package/client/dist/assets/{AnimeInfoPage-Dr9zOOq1.js → AnimeInfoPage-B0j9F2hU.js} +2 -2
- package/client/dist/assets/{Asmr-BzVhO0PK.js → Asmr-DgFfTykZ.js} +1 -1
- package/client/dist/assets/{AsmrPopup-CfCdTvhx.js → AsmrPopup-Bfu1bQUv.js} +1 -1
- package/client/dist/assets/{AsmrResetProgressModal-CLjzhb4H.js → AsmrResetProgressModal-D_RBg3SF.js} +1 -1
- package/client/dist/assets/{Home-wtyG5fKA.js → Home-VWUXCsSW.js} +1 -1
- package/client/dist/assets/{Insights-DGTqzxXr.js → Insights-CwSGX4GC.js} +1 -1
- package/client/dist/assets/{LibraryListPage-DhsV2n64.js → LibraryListPage-DwzMkJLe.js} +1 -1
- package/client/dist/assets/{ListeningList-BPD9igfn.js → ListeningList-C-ghEkHE.js} +1 -1
- package/client/dist/assets/{Manga-ClgoT4qk.js → Manga-CTviq-se.js} +1 -1
- package/client/dist/assets/{MangaInfoPage-B8fttN1T.js → MangaInfoPage-DQorLNmR.js} +1 -1
- package/client/dist/assets/{MangaReadPage-BTAVFeJH.js → MangaReadPage-BU7pnbhU.js} +1 -1
- package/client/dist/assets/{MangaResetProgressModal-CshoUUBm.js → MangaResetProgressModal-CEpFCn5U.js} +1 -1
- package/client/dist/assets/{Mature-DAgfZt9Q.js → Mature-WVld2bGr.js} +1 -1
- package/client/dist/assets/{MatureConsentModal-BhpY2wdn.js → MatureConsentModal-C0fwxUn1.js} +1 -1
- package/client/dist/assets/{MediaCard-Czkyxqgb.js → MediaCard-DODt4e_8.js} +1 -1
- package/client/dist/assets/{OptionListMenu-HllK8Z_u.js → OptionListMenu-eoSL7q1A.js} +1 -1
- package/client/dist/assets/Player-CnFL_CIh.js +56 -0
- package/client/dist/assets/{PlayerProvider-DGtOX3e2.js → PlayerProvider-CNH0eLGk.js} +1 -1
- package/client/dist/assets/{PlayerSettings-9iBVbWNR.js → PlayerSettings-BYuPEsZa.js} +1 -1
- package/client/dist/assets/{QueueOptionsButton-C3ptca9g.js → QueueOptionsButton-CexOZp0G.js} +1 -1
- package/client/dist/assets/{QueueRail-De3oifUM.js → QueueRail-CLnXPPDK.js} +1 -1
- package/client/dist/assets/{ReadingList-Bco6T_Jh.js → ReadingList-POp8yKgF.js} +1 -1
- package/client/dist/assets/{ResetProgressModal-Cx1SaMad.js → ResetProgressModal-D087dUGp.js} +1 -1
- package/client/dist/assets/{Search-B6dgK2Zu.js → Search-esyosyR6.js} +1 -1
- package/client/dist/assets/{Settings-DvOx960h.js → Settings-D2qVdRHh.js} +1 -1
- package/client/dist/assets/{SkeletonGrid-B2s8ytI8.js → SkeletonGrid-C5HzTMOs.js} +1 -1
- package/client/dist/assets/{Trackers-Bp-U_jYN.js → Trackers-DsapBRQp.js} +1 -1
- package/client/dist/assets/Tv-C-bNPNTQ.css +1 -0
- package/client/dist/assets/Tv-DfZ48kGX.js +4 -0
- package/client/dist/assets/{TvInfo-BiUMbdN7.js → TvInfo-Bh_CBYgl.js} +1 -1
- package/client/dist/assets/{TvPopup-DnwmyRRE.js → TvPopup-A8vCxpDl.js} +1 -1
- package/client/dist/assets/{TvSearch-C9VNflnp.js → TvSearch-CsuMidf9.js} +1 -1
- package/client/dist/assets/{TvWatchlist-Bt39ymiP.js → TvWatchlist-CkDX1fMV.js} +1 -1
- package/client/dist/assets/{VirtualKeyboard-BSILqgeU.js → VirtualKeyboard-CApnkNZd.js} +1 -1
- package/client/dist/assets/{WatchAlong-GtXJ-2Qq.js → WatchAlong-BJcqY5Ot.js} +1 -1
- package/client/dist/assets/{WatchAlongPanel-CxkbtjKg.js → WatchAlongPanel-Cl3cCsu3.js} +1 -1
- package/client/dist/assets/{Watchlist-CQ57yp82.js → Watchlist-CAL-bxfX.js} +1 -1
- package/client/dist/assets/{index-BYGDqzEf.js → index-CATULjSz.js} +2 -2
- package/client/dist/assets/{libraryInvalidation-CHW51Kbi.js → libraryInvalidation-DvWcvlfB.js} +1 -1
- package/client/dist/assets/{playbackCompletion-DrDOXJXe.js → playbackCompletion-D2uuKFOK.js} +1 -1
- package/client/dist/assets/{useAnimeInfoData-CZY3Ui-u.js → useAnimeInfoData-BtrH6xrZ.js} +1 -1
- package/client/dist/assets/{useMangaLibrary-x8zL6mOh.js → useMangaLibrary-D05_gl5b.js} +1 -1
- package/client/dist/assets/{useMangaPopup-DdrgbIw-.js → useMangaPopup-c1QB4Gjx.js} +1 -1
- package/client/dist/assets/{useProviders-Dk2T31ho.js → useProviders-Ba5UjJEI.js} +1 -1
- package/client/dist/assets/{useTv-CDh-n25T.js → useTv-CsHLVUFu.js} +1 -1
- package/client/dist/assets/{useTvLibrary-Dec7yfKF.js → useTvLibrary-BkQPZl2Q.js} +1 -1
- package/client/dist/assets/useWatchAlongPlayer-D4bdtfsi.js +10 -0
- package/client/dist/assets/useWatchAlongPlayer-Dk7zB7P4.css +1 -0
- package/client/dist/index.html +1 -1
- package/package.json +2 -2
- package/server/package.json +1 -1
- package/client/dist/assets/Player-BVGxVSGv.js +0 -56
- package/client/dist/assets/Tv-CDALArd3.css +0 -1
- package/client/dist/assets/Tv-t2tt4jji.js +0 -4
- package/client/dist/assets/useWatchAlongPlayer-D1o2zDEn.css +0 -1
- package/client/dist/assets/useWatchAlongPlayer-DpUPA4jD.js +0 -10
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._fullscreenFlat_10bzs_1{border-radius:0}@media(max-width:900px)and (orientation:landscape){._fullscreenFlat_10bzs_1{border-radius:0}}@container (max-width: 26rem){._timeDisplay_10bzs_12{display:none}._bottomControls_10bzs_16{padding:0 .75rem .75rem}._leftControls_10bzs_20,._rightControls_10bzs_21{gap:.2rem}._controlBtn_10bzs_25{padding:5px;min-width:2.125rem;min-height:2.125rem}}._controlsOverlay_10bzs_32{position:absolute;inset:0;opacity:1;transition:opacity .4s cubic-bezier(.4,0,.2,1);z-index:50;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle,transparent 20%,rgba(0,0,0,.4) 100%)}._controlsOverlay_10bzs_32>*{pointer-events:auto}._controlsOverlay_10bzs_32._hidden_10bzs_52{opacity:0;pointer-events:none;cursor:none}._topControls_10bzs_58{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:var(--space-6);background:linear-gradient(to bottom,rgba(0,0,0,.85) 0%,rgba(0,0,0,.45) 60%,transparent 100%);padding:var(--space-8) var(--space-10);transition:transform .4s cubic-bezier(.2,.8,.2,1);z-index:10;pointer-events:auto}._backBtn_10bzs_78{background:transparent;border:none;color:#ffffffd9;font-size:1.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);padding:8px;border-radius:50%}._backBtn_10bzs_78:hover{background:#0f0f1199;color:#fff;transform:scale(1.1)}._videoTitleInfo_10bzs_98{display:flex;flex-direction:column;gap:.25rem}._animeTitle_10bzs_104{font-size:1.4rem;font-weight:800;color:#fff;letter-spacing:-.01em;text-shadow:0 2px 4px rgba(0,0,0,.5)}._episodeLabel_10bzs_112{font-size:.85rem;font-weight:600;color:#ffffffbf;text-shadow:0 2px 4px rgba(0,0,0,.5)}._speedBoostBadge_10bzs_119{position:absolute;top:1.5rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.7rem;padding:.65rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:var(--radius-md);background:#121216eb;color:#f5f3ff;font-size:.85rem;font-weight:800;letter-spacing:.06em;z-index:11;pointer-events:none}._speedBoostBadge_10bzs_119 span{line-height:1}._speedBoostBadge_10bzs_119 svg{display:block;flex-shrink:0}._bottomControls_10bzs_16{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.45) 60%,transparent 100%);padding:0 clamp(.5rem,1.5cqw,.75rem) clamp(.75rem,2.5cqw,1.5rem);z-index:10;pointer-events:auto;transition:transform .4s cubic-bezier(.2,.8,.2,1)}._progressBarContainer_10bzs_165{width:100%;height:20px;display:flex;align-items:center;cursor:pointer;position:relative;touch-action:none}@media(pointer:coarse){._progressBarContainer_10bzs_165{height:28px}._progressBarContainer_10bzs_165 ._progressBar_10bzs_165{height:6px}._progressBarContainer_10bzs_165 ._thumb_10bzs_184{opacity:1}}._progressBar_10bzs_165{width:100%;height:4px;background:#fff3;border-radius:2px;position:relative;transition:height .15s ease}._progressBarContainer_10bzs_165:hover ._progressBar_10bzs_165{height:6px}._bufferedBar_10bzs_202{position:absolute;top:0;left:0;height:100%;background:#ffffff4d;border-radius:2px;pointer-events:none}._watchedBar_10bzs_212{position:absolute;top:0;left:0;height:100%;background:var(--accent);border-radius:2px;pointer-events:none}._thumb_10bzs_184{position:absolute;top:50%;width:12px;height:12px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #0006;pointer-events:none;opacity:0;transition:opacity .15s ease}._progressBarContainer_10bzs_165:hover ._thumb_10bzs_184,._progressBarContainer_10bzs_165._scrubbing_10bzs_237 ._thumb_10bzs_184{opacity:1}._timeBubble_10bzs_241{position:absolute;bottom:24px;background:#000000d9;color:#fff;padding:4px 8px;border-radius:4px;font-size:.8rem;font-weight:500;transform:translate(-50%);pointer-events:none;white-space:nowrap}._bottomControlsRow_10bzs_255{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:8px}._leftControls_10bzs_20{display:flex;align-items:center;gap:1rem;gap:clamp(.5rem,2.5cqw,1rem);min-width:0}._rightControls_10bzs_21{display:flex;align-items:center;gap:.75rem;gap:clamp(.5rem,2cqw,.75rem)}._nextEpisodeBtn_10bzs_278{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);padding:.45rem .8rem;color:#fffc;font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}._nextEpisodeBtn_10bzs_278:hover{background:#ffffff1a;color:#fff;transform:translateY(-1px);border-color:#fff3}._controlBtn_10bzs_25{background:transparent;border:none;color:#ffffffd9;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:4px;transition:all var(--transition-fast);min-width:2.125rem;min-height:2.125rem;flex:0 0 auto}@media(pointer:coarse){._controlBtn_10bzs_25{padding:10px;min-width:2.75rem;min-height:2.75rem}}._controlBtn_10bzs_25:hover{color:#fff;background:#ffffff1a}._controlBtn_10bzs_25:focus{outline:none}._controlBtn_10bzs_25:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}._controlBtn_10bzs_25._active_10bzs_340{color:var(--accent)}._timeDisplay_10bzs_12{color:#fffc;font-size:.85rem;font-weight:500;font-variant-numeric:tabular-nums;min-width:100px}._settingsPanel_10bzs_352{position:absolute;bottom:clamp(6rem,15vh,8rem);right:clamp(1rem,3vw,2rem);background:#141418f2;border:1px solid var(--border-secondary);border-radius:var(--radius-md);width:max-content;min-width:12rem;max-width:min(19rem,calc(100vw - 1.5rem));font-size:.85rem;z-index:60;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;overflow:hidden}._settingsHeader_10bzs_371{display:flex;align-items:center;padding:.55rem .75rem;border-bottom:1px solid var(--border-secondary);gap:.625rem}._settingsBackBtn_10bzs_379{background:transparent;border:none;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:4px;transition:all var(--transition-fast)}._settingsBackBtn_10bzs_379:hover{background:#ffffff1a;color:#fff}._settingsTitle_10bzs_397{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._settingsContent_10bzs_408{overflow-y:auto;padding:.375rem;display:flex;flex-direction:column;gap:.125rem;max-height:min(56vh,22rem)}._currentValue_10bzs_417{color:var(--text-tertiary);font-size:.8rem;font-weight:500}._menuItem_10bzs_423{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:2rem;padding:.5rem .75rem;background:transparent;border:none;color:var(--text-primary);font-size:.85rem;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast);text-align:left;white-space:nowrap}._menuItem_10bzs_423:hover{background:var(--bg-tertiary)}._menuItem_10bzs_423._active_10bzs_340{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent-lighter)}._currentValue_10bzs_417{color:var(--text-secondary);font-size:.85rem}._menuNote_10bzs_456{padding:.5rem .75rem;font-size:.7rem;line-height:1.5;color:var(--text-tertiary);white-space:normal;overflow-wrap:break-word}._loadingOverlay_10bzs_465{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;z-index:10;background:#00000080;border-radius:inherit}._loadingDots_10bzs_476{display:flex;gap:10px}._dot_10bzs_481{width:12px;height:12px;border-radius:50%;background-color:var(--accent);animation:_bounce_10bzs_1 1.4s infinite ease-in-out both;box-shadow:0 0 10px var(--accent-glow)}._dot_10bzs_481:nth-child(1){animation-delay:-.32s}._dot_10bzs_481:nth-child(2){animation-delay:-.16s}@keyframes _bounce_10bzs_1{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}._bufferingOverlay_10bzs_510{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:20}._bufferingSpinner_10bzs_519{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:var(--accent);animation:_spin_10bzs_1 1s ease-in-out infinite}@keyframes _spin_10bzs_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(pointer:coarse){._settingsPanel_10bzs_352{font-size:.9rem;bottom:calc(env(safe-area-inset-bottom,0px) + 7rem);right:max(.75rem,env(safe-area-inset-right,0px))}._menuItem_10bzs_423{min-height:2.75rem}._settingsContent_10bzs_408{max-height:52vh}}@media(max-width:480px){._settingsPanel_10bzs_352{min-width:9rem;max-width:calc(100vw - 2rem);font-size:.75rem;bottom:calc(env(safe-area-inset-bottom,0px) + 6rem)}._settingsHeader_10bzs_371{padding:.4rem .625rem}._settingsTitle_10bzs_397{font-size:.64rem}._menuItem_10bzs_423{min-height:2.25rem;padding:.45rem .625rem;font-size:.75rem;gap:.5rem}._settingsContent_10bzs_408{max-height:min(40vh,15rem)}}@media(max-height:500px)and (orientation:landscape){._settingsPanel_10bzs_352{bottom:7.25rem;right:2rem;min-width:10rem;max-width:min(15rem,calc(100vw - 1.5rem));font-size:.8rem}._menuItem_10bzs_423{min-height:2.5rem;font-size:.8rem}._settingsContent_10bzs_408{max-height:50vh;overflow-y:auto}}._statusMsg_4kgbf_1{padding:1rem;text-align:center;color:var(--text-secondary)}._statusMsg_4kgbf_1._error_4kgbf_7{color:#f87171}._spinner_4kgbf_11{animation:_spin_4kgbf_11 1s linear infinite;margin-right:.5rem}._sourceLoader_4kgbf_16{padding:.75rem;display:flex;justify-content:center}._ringSpinner_4kgbf_22{width:40px;height:40px;border:4px solid rgba(255,255,255,.1);border-left-color:var(--accent);border-radius:50%;animation:_spin_4kgbf_11 1s linear infinite}@keyframes _spin_4kgbf_11{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._meta_4kgbf_40{display:flex;align-items:center;gap:.75rem;margin:.5rem 0;flex-wrap:wrap}._year_4kgbf_48{color:var(--text-secondary);font-size:.9rem}._rating_4kgbf_53{display:inline-flex;align-items:center;gap:4px;color:var(--accent-lighter);font-weight:600;font-size:.9rem}._typeBadge_4kgbf_62{padding:2px 10px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}._typeBadge_4kgbf_62._tv_4kgbf_70{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}._typeBadge_4kgbf_62._movie_4kgbf_75{background:color-mix(in srgb,var(--accent-lighter) 20%,transparent);color:var(--accent-lighter)}._controlLabel_4kgbf_80{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}._select_4kgbf_90{height:42px;padding:0 1rem;border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--bg-elevated);color:var(--text-primary);font-size:.9rem;cursor:pointer;min-width:160px}._playerSection_4kgbf_102{margin:0;border-radius:0;overflow:hidden;overflow:clip;isolation:isolate;background:#000;position:relative}._video_4kgbf_106{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;display:block;background:#000;border:none;border-radius:inherit}._videoHidden_4kgbf_128{opacity:0;pointer-events:none}._delayCanvas_4kgbf_133{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none;z-index:2;border-radius:inherit}._delayCanvasActive_4kgbf_146{opacity:1}._subtitleOverlay_4kgbf_150{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:hidden;border-radius:inherit}@media(max-width:900px)and (orientation:landscape){._playerSection_4kgbf_102{margin:0;border-radius:0}}._videoIframe_4kgbf_169{width:100%;aspect-ratio:16 / 9;min-height:400px;border:none;background:#000}._retryButton_4kgbf_177{margin-left:8px;padding:4px 10px;border-radius:4px;border:1px solid var(--border-primary);background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;font-size:.8rem}._retryButton_4kgbf_177:hover{border-color:var(--accent)}._sidebarSeason_4kgbf_192{display:flex;flex-direction:column;gap:.4rem;font-size:.75rem;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-4)}._sidebarSeason_4kgbf_192 ._select_4kgbf_90{width:100%}._mobileSeasonRow_4kgbf_208{display:none}@media(max-width:768px){._mobileSeasonRow_4kgbf_208{display:block}._mobileSeasonRow_4kgbf_208 ._sidebarSeason_4kgbf_192{margin-bottom:0}}._providerSelectWrap_4kgbf_222{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;min-width:0}._genreRow_4kgbf_230{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}._genreChip_4kgbf_237{padding:.2rem .7rem;border-radius:20px;border:1px solid var(--glass-border);background:#ffffff0d;color:var(--text-secondary);font-size:.78rem;font-weight:600}._metaRow_4kgbf_247{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem;color:var(--text-secondary);font-size:.9rem}._detailGrid_4kgbf_256{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.1rem 1.25rem;align-content:start;min-width:0}._detailItem_4kgbf_264{display:flex;flex-direction:column;gap:.2rem;padding:0;border-radius:0;border:0;background:none}._detailItem_4kgbf_264 strong{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}._detailItem_4kgbf_264 span{color:var(--text-primary);font-size:.9rem}._imdbLink_4kgbf_286{color:var(--accent-light);font-size:.9rem;text-decoration:none}._imdbLink_4kgbf_286:hover{text-decoration:underline}._watchedOverlay_4kgbf_296{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;text-align:center;color:var(--text-primary);background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),#000;border-radius:inherit}._watchedTitle_4kgbf_318{margin:0;font-size:1.2rem;font-weight:700}._watchedSubtext_4kgbf_324{margin:0;color:var(--text-secondary);font-size:.9rem}._watchedActions_4kgbf_330{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin-top:.5rem;width:100%;max-width:560px}._watchedActions_4kgbf_330>:first-child{justify-self:end}._watchedActions_4kgbf_330>:last-child{justify-self:start}._watchedActionsCentered_4kgbf_348{display:flex;flex-wrap:wrap;justify-content:center}._watchedActionsCentered_4kgbf_348>div{display:contents}@media(max-width:480px){._watchedActions_4kgbf_330{display:flex;flex-wrap:wrap;justify-content:center}._watchedActions_4kgbf_330>div{display:contents}}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{u as t,d as v,A as U,h as p,S as Ue,g as Er,q as _,o as Nr,p as wr,a as Ir,T as ke}from"./vendor-core-DfaOB3Rn.js";import{h as jt,p as $,t as Ct,ac as Ar,a6 as Pr,S as ts,e as xr,ak as Lr,J as Rs,B as ge,a8 as Br}from"./index-BYGDqzEf.js";import{P as Rr,a as Mr,b as $r,F as Dr,f as Or,c as zr}from"./PlayerProvider-DGtOX3e2.js";import{u as Fr}from"./vendor-query-BBT5_sHx.js";import{I as ie}from"./vendor-icons-DrybRNxP.js";import{p as os,M as Vr,z as zs,f as as,c as Ur,C as Wr,a as Hr,P as qr,b as _n,u as Kr,i as Yr,j as Qr,n as jr,h as Gr,k as Xr,m as Jr,l as Zr,s as ns,d as eo,e as to,g as no,r as so,o as Le,A as ro,t as oo,E as ao,w as io,x as lo,v as ee,y as co,R as uo,q as Ms}from"./useWatchAlongPlayer-DpUPA4jD.js";import{S as mo,O as ss,a as ho,A as fo,b as bo}from"./OptionListMenu-HllK8Z_u.js";import{M as go}from"./MatureConsentModal-BhpY2wdn.js";import{u as po}from"./useProviders-Dk2T31ho.js";import{e as vo,b as yo,f as So,g as _o,d as ko,c as To,h as Co,i as Eo}from"./useTvLibrary-Dec7yfKF.js";import{b as No,i as Qt,l as wo,a as Io,c as Ao,h as $s}from"./playbackCompletion-DrDOXJXe.js";import{u as Po}from"./useIsMobile-Dvx1uJ82.js";import{S as xo}from"./SynopsisText-B3Sa5pRv.js";import{W as Lo}from"./WatchAlongPanel-CxkbtjKg.js";import"./libraryInvalidation-CHW51Kbi.js";const Bo="_fullscreenFlat_10bzs_1",Ro="_timeDisplay_10bzs_12",Mo="_bottomControls_10bzs_16",$o="_leftControls_10bzs_20",Do="_rightControls_10bzs_21",Oo="_controlBtn_10bzs_25",zo="_controlsOverlay_10bzs_32",Fo="_hidden_10bzs_52",Vo="_topControls_10bzs_58",Uo="_backBtn_10bzs_78",Wo="_videoTitleInfo_10bzs_98",Ho="_animeTitle_10bzs_104",qo="_episodeLabel_10bzs_112",Ko="_speedBoostBadge_10bzs_119",Yo="_progressBarContainer_10bzs_165",Qo="_progressBar_10bzs_165",jo="_thumb_10bzs_184",Go="_bufferedBar_10bzs_202",Xo="_watchedBar_10bzs_212",Jo="_scrubbing_10bzs_237",Zo="_timeBubble_10bzs_241",ea="_bottomControlsRow_10bzs_255",ta="_nextEpisodeBtn_10bzs_278",na="_active_10bzs_340",sa="_settingsPanel_10bzs_352",ra="_settingsHeader_10bzs_371",oa="_settingsBackBtn_10bzs_379",aa="_settingsTitle_10bzs_397",ia="_settingsContent_10bzs_408",la="_currentValue_10bzs_417",ca="_menuItem_10bzs_423",da="_menuNote_10bzs_456",ua="_loadingOverlay_10bzs_465",ma="_loadingDots_10bzs_476",ha="_dot_10bzs_481",fa="_bufferingOverlay_10bzs_510",ba="_bufferingSpinner_10bzs_519",o={fullscreenFlat:Bo,timeDisplay:Ro,bottomControls:Mo,leftControls:$o,rightControls:Do,controlBtn:Oo,controlsOverlay:zo,hidden:Fo,topControls:Vo,backBtn:Uo,videoTitleInfo:Wo,animeTitle:Ho,episodeLabel:qo,speedBoostBadge:Ko,progressBarContainer:Yo,progressBar:Qo,thumb:jo,bufferedBar:Go,watchedBar:Xo,scrubbing:Jo,timeBubble:Zo,bottomControlsRow:ea,nextEpisodeBtn:ta,active:na,settingsPanel:sa,settingsHeader:ra,settingsBackBtn:oa,settingsTitle:aa,settingsContent:ia,currentValue:la,menuItem:ca,menuNote:da,loadingOverlay:ua,loadingDots:ma,dot:ha,bufferingOverlay:fa,bufferingSpinner:ba},ga=({player:r,visible:b,settingsOpen:z,onOpenSettings:x,onCloseSettings:M,hasSubtitles:C,isSubtitleActive:w,subtitles:d,onSubtitleChange:c,showNextEpisodeButton:k,onNextEpisode:s,isTheaterMode:L,onTheaterModeToggle:pe,timeLabelRef:te})=>{const{state:u,actions:Ne}=r,Be=()=>{if(w){c(-1);return}let ve=null;try{ve=$.getItem("tvLastSubtitle")}catch{}c(os(d,{lastKey:ve,enabled:!0}))};return t("div",{className:`${o.controlsOverlay} ${b?"":o.hidden}`,"data-speed-boost-ignore":"true",style:{pointerEvents:"none",background:"none",justifyContent:"flex-end"},children:t("div",{className:o.bottomControls,onClick:ve=>ve.stopPropagation(),children:[t(Rr,{classes:{container:o.progressBarContainer,scrubbing:o.scrubbing,timeBubble:o.timeBubble,bar:o.progressBar,buffered:o.bufferedBar,watched:o.watchedBar,thumb:o.thumb},timeLabelRef:te}),t("div",{className:o.bottomControlsRow,children:[t("div",{className:o.leftControls,children:[t(Mr,{className:o.controlBtn}),t($r,{buttonClassName:o.controlBtn,onExpandedChange:Ne.setShowVolumeSlider}),t("span",{className:o.timeDisplay,ref:te,children:[jt(0)," / ",jt(u.duration)]})]}),t("div",{className:o.rightControls,children:[k&&t("button",{className:o.nextEpisodeBtn,onClick:s,title:"Play next episode",children:"Next EP"}),C&&t("button",{className:`${o.controlBtn} ${w?o.active:""}`,onClick:Be,"aria-label":w?"Turn subtitles off":"Turn subtitles on",children:t(ie,{name:"closed-captioning"})}),t("button",{className:`${o.controlBtn} ${z?o.active:""}`,onClick:()=>z?M():x(),"aria-label":"Settings",children:t(ie,{name:"cog"})}),t("button",{className:`${o.controlBtn} ${L?o.active:""}`,onClick:ve=>{ve.stopPropagation(),pe()},title:L?"Exit Theater Mode":"Theater Mode","aria-label":L?"Exit Theater Mode":"Theater Mode",children:t(ie,{name:"tv"})}),t(Dr,{className:o.controlBtn})]})]})]})})},kn=-6e4,rs=6e4,Ds=500,pa=({classes:r,delayMs:b,onDelayChange:z})=>{const[x,M]=v(null),C=x??b,w=U(z);w.current=z;const d=U(b);d.current=b;const c=U(null);c.current=x,p(()=>{M(null)},[b]),p(()=>()=>{const L=c.current;L!==null&&L!==d.current&&w.current(L)},[]);const k=L=>{d.current=L,c.current=null,w.current(L),M(null)},s=L=>{const pe=c.current??d.current,te=Math.max(kn,Math.min(rs,pe+L));k(te)};return t(Ue,{children:[t("div",{style:{display:"flex",gap:6,padding:"0.5rem 0.75rem 0.25rem"},children:[t("button",{type:"button",className:r.item,onClick:()=>s(-Ds),"aria-label":"Show subtitles 0.5 seconds earlier",style:{flex:1,justifyContent:"center"},children:t("span",{children:"-0.5s"})}),t("button",{type:"button",className:r.item,onClick:()=>s(Ds),"aria-label":"Show subtitles 0.5 seconds later",style:{flex:1,justifyContent:"center"},children:t("span",{children:"+0.5s"})}),t("button",{type:"button",className:r.item,onClick:()=>k(0),disabled:C===0,"aria-label":"Reset subtitle timing",style:{flex:1,justifyContent:"center"},children:t("span",{children:"Reset"})})]}),t(Vr,{label:"Subtitle timing",display:zs(C),min:kn,max:rs,step:100,value:C,percent:(C-kn)/(rs-kn)*100,onChange:L=>{const pe=Math.round(L);c.current=pe,M(pe)},onCommit:()=>{const L=c.current;L!==null&&k(L)}}),t("div",{className:r.note,children:"Positive delays subtitles (show later). Negative shows them earlier. 0.0s is default."})]})},va=({view:r,onSelectView:b,onClose:z,player:x,onSubtitleStyleChange:M,streams:C,resolutionIdx:w,onResolutionChange:d,hasSubtitles:c,subtitles:k,selectedSubtitle:s,isSubtitleActive:L,onSubtitleChange:pe,audioTracks:te,selectedAudioTrack:u,onAudioTrackChange:Ne,videoDelayEnabled:Be,onVideoDelayToggle:ve,videoDelayMs:ye,onVideoDelayChange:S,onCalibrate:Et,subtitleDelayMs:nt,onSubtitleDelayChange:E,ambientSettings:W,onAmbientChange:Y})=>{const{state:de}=x,Nt=()=>t(Ue,{children:[C.length>1&&t("button",{className:o.menuItem,onClick:()=>b("resolution"),children:[t("span",{children:"Resolution"}),t("span",{className:o.currentValue,children:C[w]?.quality||"Auto"})]}),c&&t("button",{className:o.menuItem,onClick:()=>b("subtitles"),children:[t("span",{children:"Subtitles"}),t("span",{className:o.currentValue,children:L?k[s]?.label||k[s]?.language:"Off"})]}),c&&t("button",{className:o.menuItem,onClick:()=>b("subtitle-style"),children:[t("span",{children:"Subtitle Style"}),t("span",{className:o.currentValue,children:[de.subtitleFontSize.toFixed(1),"x · ",de.subtitlePosition]})]}),c&&t("button",{className:o.menuItem,onClick:()=>b("subtitle-timing"),children:[t("span",{children:"Subtitle Timing"}),t("span",{className:o.currentValue,children:zs(nt)})]}),te.length>0&&t("button",{className:o.menuItem,onClick:()=>b("audio"),children:[t("span",{children:"Audio Track"}),t("span",{className:o.currentValue,children:te[u]?.label||te[u]?.language})]}),t("button",{className:o.menuItem,onClick:()=>b("av-sync"),children:[t("span",{children:"A/V Sync"}),t("span",{className:o.currentValue,children:Be?`${ye}ms`:"Off"})]}),W&&Y&&t("button",{className:o.menuItem,onClick:()=>b("ambient"),children:[t("span",{children:"Ambient Light"}),t("span",{className:o.currentValue,children:W.enabled?"On":"Off"})]})]}),Re=()=>t(ss,{classes:{item:o.menuItem,active:o.active},options:C.map((I,se)=>({key:String(se),label:I.quality,selected:se===w})),onSelect:I=>d(Number(I))}),st=()=>t(ss,{classes:{item:o.menuItem,active:o.active},options:[{key:"off",label:"Off",selected:!L},...k.map((I,se)=>({key:String(se),label:I.label||I.language,selected:se===s}))],onSelect:I=>pe(I==="off"?-1:Number(I))}),bt=()=>t(ho,{classes:{item:o.menuItem,active:o.active},values:{fontSize:de.subtitleFontSize,position:de.subtitlePosition,bgOpacity:de.subtitleBgOpacity,bgColor:de.subtitleBgColor,textColor:de.subtitleTextColor,edge:de.subtitleEdge,bold:de.subtitleBold},onChange:M}),le=()=>t(pa,{classes:{item:o.menuItem,active:o.active,note:o.menuNote},delayMs:nt,onDelayChange:I=>E?.(I)}),wt=()=>t(ss,{classes:{item:o.menuItem,active:o.active},options:te.map((I,se)=>({key:String(se),label:I.label||I.language,selected:se===u})),onSelect:I=>Ne(Number(I))}),rt=()=>t(fo,{classes:{item:o.menuItem,active:o.active,note:o.menuNote},enabled:Be,delayMs:ye,onToggle:I=>ve?.(I),onDelayChange:I=>S?.(I),onCalibrate:Et}),Q=()=>W&&Y?t(bo,{classes:{item:o.menuItem,active:o.active,note:o.menuNote},values:W,onChange:Y}):null;return t("div",{"data-speed-boost-ignore":"true",onClick:I=>I.stopPropagation(),children:t(mo,{classes:{panel:o.settingsPanel,header:o.settingsHeader,backBtn:o.settingsBackBtn,title:o.settingsTitle,content:o.settingsContent},title:r==="main"?"Settings":r==="subtitle-style"?"Subtitle Style":r==="subtitle-timing"?"Subtitle Timing":r==="audio"?"Audio Track":r==="resolution"?"Resolution":r==="av-sync"?"A/V Sync":r==="ambient"?"Ambient Light":r.charAt(0).toUpperCase()+r.slice(1),onBack:()=>r==="main"?z():b("main"),children:[r==="main"&&Nt(),r==="resolution"&&Re(),r==="subtitles"&&st(),r==="subtitle-style"&&bt(),r==="subtitle-timing"&&le(),r==="audio"&&wt(),r==="av-sync"&&rt(),r==="ambient"&&Q()]})})},ya=({player:r,title:b,episodeLabel:z,server:x,audioTracks:M,selectedAudioTrack:C,onAudioTrackChange:w,subtitles:d,selectedSubtitle:c,onSubtitleChange:k,streams:s,resolutionIdx:L,onResolutionChange:pe,onBack:te,children:u,videoDelayEnabled:Ne=!1,onVideoDelayToggle:Be,videoDelayMs:ve=0,onVideoDelayChange:ye,onCalibrateAvSync:S,subtitleDelayMs:Et=0,onSubtitleDelayChange:nt,showNextEpisodeButton:E=!1,onNextEpisode:W,isLoading:Y=!1,isTheaterMode:de,onTheaterModeToggle:Nt,ambientSettings:Re,onAmbientChange:st,hideChrome:bt=!1})=>{const{state:le,refs:wt,actions:rt}=r,Q=wt.videoRef,{subtitleFontSize:I,subtitlePosition:se,subtitleBgOpacity:ue,subtitleBgColor:Me,subtitleTextColor:$e,subtitleEdge:re,subtitleBold:It}=le,[We,Te]=v(null),At=U(null),[Ce,Pt]=v(0);p(()=>{const he=Q.current;if(!he)return;const ne=()=>Pt(he.clientHeight||0);ne();const at=new ResizeObserver(ne);return at.observe(he),()=>at.disconnect()},[Q]);const me=rt.setSubtitleStyle;p(()=>{const he="tv-player-subtitle-style";let ne=document.getElementById(he);ne||(ne=document.createElement("style"),ne.id=he,document.head.appendChild(ne));const at={fontSize:I,position:se,bgOpacity:ue,bgColor:Me,textColor:$e,edge:re,bold:It},oe=Q.current,vt=as(I,Ce||oe?.clientHeight||720);if(ne.textContent=Ur({...at,fontSize:vt}),oe){const Bt=()=>{const i=Number(se);return isNaN(i)?0:Math.max(0,Math.min(100,i))},it=(i,l)=>{try{const F=i;F.snapToLines=!1,F.line=l}catch{}},Se=()=>{const i=vt*16,l=oe.videoHeight||oe.clientHeight||720,F=oe.videoWidth||oe.clientWidth||1280;return{step:i*1.3/l*100,chars:Math.max(20,Math.floor(F/(i*.55)))}},Jt=i=>{const l=Math.max(0,Math.min(100,100-Bt())),F=Array.from(i.activeCues??[]);if(F.length<=1){F.forEach(Oe=>it(Oe,l));return}const{step:ce,chars:Zt}=Se();let $t=l;for(let Oe=F.length-1;Oe>=0;Oe--){const Tn=String(F[Oe].text??"").replace(/<[^>]*>/g,"").split(`
|
|
2
|
-
`).reduce((Cn,fe)=>Cn+Math.max(1,Math.ceil(fe.length/Zt)),0),Dt=$t-Tn*ce;it(F[Oe],Math.max(0,Dt)),$t=Dt-ce*.4}},Ie=()=>{const i=Math.max(0,Math.min(100,100-Bt()));Array.from(oe.textTracks).forEach(l=>{l.cues&&(Array.from(l.cues).forEach(F=>it(F,i)),l.mode==="showing"&&Jt(l))})};Ie();const lt=i=>{const l=i.target;l.mode==="showing"&&Jt(l)},Rt=()=>{Array.from(oe.textTracks).forEach(i=>{i.removeEventListener("cuechange",lt),i.addEventListener("cuechange",lt)}),Ie()};Array.from(oe.textTracks).forEach(i=>{i.addEventListener("cuechange",lt)}),oe.textTracks.addEventListener("addtrack",Rt);const Mt=Array.from(oe.querySelectorAll("track")),yt=()=>Ie();return Mt.forEach(i=>i.addEventListener("load",yt)),()=>{Array.from(oe.textTracks).forEach(i=>{i.removeEventListener("cuechange",lt)}),oe.textTracks.removeEventListener("addtrack",Rt),Mt.forEach(i=>i.removeEventListener("load",yt))}}},[I,se,ue,Me,$e,re,It,c,d,Q,Ce]);const De=d.length>0,we=c>=0,gt=()=>{Te("main"),rt.setShowControls(!0)},He=()=>{Te(null)},Gt=le.showControls||!!We,ot=Or(r.engine),qe=ot.audioTracks.find(he=>he.id===ot.activeAudioTrack)??M[C],Xt=c>=0?d[c]??ot.subtitleTracks.find(he=>he.id===c):void 0,xt=t(Wr,{visible:Gt,title:b,episode:z,server:Y?void 0:x,audio:Y?void 0:qe?.label||qe?.language,subtitles:Y?void 0:Xt?.label||Xt?.language,onBack:te,classes:{overlay:o.controlsOverlay,hidden:o.hidden,top:o.topControls,backBtn:o.backBtn,titleInfo:o.videoTitleInfo,title:o.animeTitle,episode:o.episodeLabel}}),K=!Y&&!le.isBuffering&&le.duration>0?t(Hr,{}):null,pt=t(ga,{player:r,visible:Gt,settingsOpen:!!We,onOpenSettings:gt,onCloseSettings:He,hasSubtitles:De,isSubtitleActive:we,subtitles:d,onSubtitleChange:k,showNextEpisodeButton:E,onNextEpisode:W,isTheaterMode:de,onTheaterModeToggle:Nt,timeLabelRef:At}),A=We?t(va,{view:We,onSelectView:Te,onClose:He,player:r,onSubtitleStyleChange:me,streams:s,resolutionIdx:L,onResolutionChange:pe,hasSubtitles:De,subtitles:d,selectedSubtitle:c,isSubtitleActive:we,onSubtitleChange:k,audioTracks:M,selectedAudioTrack:C,onAudioTrackChange:w,videoDelayEnabled:Ne,onVideoDelayToggle:Be,videoDelayMs:ve,onVideoDelayChange:ye,onCalibrate:()=>{Te(null),S?.()},subtitleDelayMs:Et,onSubtitleDelayChange:nt,ambientSettings:Re,onAmbientChange:st}):null,Lt=t(Ue,{children:[Y&&t("div",{className:o.loadingOverlay,"aria-hidden":"true",children:t("div",{className:o.loadingDots,children:[t("div",{className:o.dot}),t("div",{className:o.dot}),t("div",{className:o.dot})]})}),le.isBuffering&&!Y&&t("div",{className:o.bufferingOverlay,"aria-hidden":"true",children:t("div",{className:o.bufferingSpinner})}),le.isSpeedBoostActive&&t("div",{className:o.speedBoostBadge,"aria-hidden":"true",children:[t("span",{children:"2x"}),t(ie,{name:"forward",size:12})]})]});return t(qr,{engine:r.engine,topBar:xt,centerControls:K,bottomBar:!Y&&le.duration>0?pt:null,settingsPanel:A,overlays:Lt,isInteracting:!!We||le.showVolumeSlider,nativeControls:le.useNativeControls,onStageClick:He,className:le.isFullscreen?o.fullscreenFlat:"",chromeDisabled:bt,children:u})},Sa=({servers:r,selectedServer:b,onServerSelect:z})=>r.length===0?null:t("div",{className:_n.sourceSelectionContainer,children:[t("h4",{children:"Source"}),t("div",{className:_n.sourceButtons,children:r.map(x=>t("button",{className:`${_n.sourceButton} ${b===x?_n.active:""}`,onClick:()=>z(x),children:x},x))})]}),_a=Er.memo(Sa);function ka({details:r,isMovie:b,season:z,episode:x,videoRef:M,active:C}){const w=U("");w.current||(w.current=`tv-${Date.now()}-${Math.random().toString(36).slice(2)}`);const d=_(()=>{if(!r)return;const c=M.current,k=b?"":`S${String(z).padStart(2,"0")}E${String(x).padStart(2,"0")}`;Ct.discord.tvPresence.mutate({title:r.title,episodeLabel:k,isPlaying:c?!c.paused&&!c.ended:!0,thumbnail:r.poster,currentTime:c?c.currentTime:0,duration:c&&c.duration||0,isAdult:r.adult===!0,sessionId:w.current}).catch(()=>{}),Ct.discord.heartbeat.mutate({sessionId:w.current}).catch(()=>{})},[r,b,z,x,M]);return p(()=>{if(!r)return;d();const c=window.setInterval(()=>{const k=M.current;(!k||!k.paused)&&d()},15e3);return()=>window.clearInterval(c)},[d,r,M]),p(()=>{if(!r||!C)return;const c=M.current;if(!c)return;const k=()=>d();return c.addEventListener("play",k),c.addEventListener("pause",k),c.addEventListener("seeked",k),()=>{c.removeEventListener("play",k),c.removeEventListener("pause",k),c.removeEventListener("seeked",k)}},[r,C,d,M]),p(()=>{const c=w.current,k=()=>Ar(c),s=()=>k();return window.addEventListener("pagehide",s),window.addEventListener("beforeunload",s),()=>{window.removeEventListener("pagehide",s),window.removeEventListener("beforeunload",s),k()}},[]),{sendPresence:d}}function Ta(r,b,z){const x=()=>{const C=Array.isArray(r.audioTracks)?r.audioTracks.length:0,w=z.getWant(),d=C>0?Math.min(Math.max(0,w),C-1):w;r.audioTrack=d,d!==w&&z.onResolve(d)},M=(C,w)=>{const d=z.getWant(),c=Array.isArray(r.audioTracks)?r.audioTracks.length:0;if(w.id!==d&&d>=0&&d<c){r.audioTrack!==d&&(r.audioTrack=d);return}z.onResolve(w.id)};return r.on(b.MANIFEST_PARSED,x),r.on(b.AUDIO_TRACK_SWITCHED,M),()=>{r.off(b.MANIFEST_PARSED,x),r.off(b.AUDIO_TRACK_SWITCHED,M)}}const Ca=/\b(SmartTV|SMART-TV|Tizen|Web0S|webOS|NetCast|HbbTV|AppleTV|CrKey|BRAVIA|AFT[A-Za-z]|Fire\s?TV|GoogleTV|Roku|VIDAA|DTV|PlayStation|Xbox|Opera TV|POV_TV)\b/i;function Ea(){try{if(Ca.test(navigator.userAgent||""))return!0;const r=navigator.deviceMemory;if(typeof r=="number"&&r>0&&r<2)return!0}catch{}return!1}const Na="_statusMsg_4kgbf_1",wa="_error_4kgbf_7",Ia="_spinner_4kgbf_11",Aa="_spin_4kgbf_11",Pa="_sourceLoader_4kgbf_16",xa="_ringSpinner_4kgbf_22",La="_meta_4kgbf_40",Ba="_year_4kgbf_48",Ra="_rating_4kgbf_53",Ma="_typeBadge_4kgbf_62",$a="_tv_4kgbf_70",Da="_movie_4kgbf_75",Oa="_controlLabel_4kgbf_80",za="_select_4kgbf_90",Fa="_playerSection_4kgbf_102",Va="_video_4kgbf_106",Ua="_videoHidden_4kgbf_128",Wa="_delayCanvas_4kgbf_133",Ha="_delayCanvasActive_4kgbf_146",qa="_subtitleOverlay_4kgbf_150",Ka="_videoIframe_4kgbf_169",Ya="_retryButton_4kgbf_177",Qa="_sidebarSeason_4kgbf_192",ja="_mobileSeasonRow_4kgbf_208",Ga="_providerSelectWrap_4kgbf_222",Xa="_genreRow_4kgbf_230",Ja="_genreChip_4kgbf_237",Za="_metaRow_4kgbf_247",ei="_detailGrid_4kgbf_256",ti="_detailItem_4kgbf_264",ni="_imdbLink_4kgbf_286",si="_watchedOverlay_4kgbf_296",ri="_watchedTitle_4kgbf_318",oi="_watchedSubtext_4kgbf_324",ai="_watchedActions_4kgbf_330",ii="_watchedActionsCentered_4kgbf_348",g={statusMsg:Na,error:wa,spinner:Ia,spin:Aa,sourceLoader:Pa,ringSpinner:xa,meta:La,year:Ba,rating:Ra,typeBadge:Ma,tv:$a,movie:Da,controlLabel:Oa,select:za,playerSection:Fa,video:Va,videoHidden:Ua,delayCanvas:Wa,delayCanvasActive:Ha,subtitleOverlay:qa,videoIframe:Ka,retryButton:Ya,sidebarSeason:Qa,mobileSeasonRow:ja,providerSelectWrap:Ga,genreRow:Xa,genreChip:Ja,metaRow:Za,detailGrid:ei,detailItem:ti,imdbLink:ni,watchedOverlay:si,watchedTitle:ri,watchedSubtext:oi,watchedActions:ai,watchedActionsCentered:ii},li=[],ci=[];function Os({error:r,onRetry:b}){return t("div",{className:`${g.statusMsg} ${g.error}`,style:{flexDirection:"column",alignItems:"stretch",gap:8},children:t("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[t("span",{style:{flex:1},children:r}),t("button",{className:g.retryButton,onClick:b,children:"Retry"})]})})}const Ei=()=>{const{id:r}=Nr(),[b]=wr(),z=U(b);z.current=b;const x=Ir(),M=Fr(),C=b.get("type"),w=Pr(),d=!!w.session,c=d&&!w.session?.host,k=c&&["tv","movie"].includes(w.room?.selection.kind||"")?w.room?.selection:null,[s,L]=v(null),[pe,te]=v(()=>parseInt(b.get("s")||"1",10)||1),u=k?.season??pe,[Ne,Be]=v([]),[ve,ye]=v(()=>parseInt(b.get("e")||"1",10)||1),S=k?Number(k.episode):ve,[Et,nt]=v(()=>{try{return $.getItem("tvProvider")||""}catch{return""}}),E=k?.provider??Et,[W,Y]=v([]),[de,Nt]=v(""),[Re,st]=v(""),{options:bt,isFallback:le,isLoading:wt}=po(),rt=ke(()=>bt.filter(e=>(e.kind??"tv")==="tv").map(e=>({id:e.id,label:e.label,tier:e.tier==="embed"?"embed":"direct",servers:e.servers})),[bt]),Q=le||rt.length===0?li:rt,I=Q.filter(e=>e.tier==="direct"),se=Q.filter(e=>e.tier==="embed"),[ue,Me]=v(!1),[$e,re]=v(""),[It,We]=v([]),[Te,At]=v(0),[Ce,Pt]=v([]),[me,De]=v(-1),[we,gt]=v(0),[He,Gt]=v(""),[ot,qe]=v(""),[Xt,xt]=v(()=>{try{return $.getItem("tvServer")||""}catch{return""}}),K=k?.source??Xt,pt=ke(()=>Q.find(e=>e.id===E),[Q,E]),A=pt?.tier==="embed",[Lt,he]=v([]),[ne,at]=v(""),[oe,vt]=v(""),[Bt,it]=v(!1),Se=ke(()=>Lt.length>0?Lt:pt?.servers??[],[Lt,pt]),Jt=ke(()=>ne&&!d?["Embed",...Se]:Se,[Se,ne,d]),Ie=Bt&&!!ne,lt=Ie?oe||ne:"";p(()=>{if(!ne){vt("");return}let e=!1;return ts(`/api/resolve?url=${encodeURIComponent(ne)}`).then(n=>{!e&&n.finalUrl&&vt(n.finalUrl)}).catch(()=>{}),()=>{e=!0}},[ne]);const Rt=U([]);p(()=>{Rt.current=W},[W]);const Mt=U(Te);p(()=>{Mt.current=Te},[Te]);const yt=U(me);p(()=>{yt.current=me},[me]);const i=Kr({skipIntervals:ci}),l=i.refs.videoRef,F=U(null),ce=U([]),Zt=U(null),$t=U(null),{videoDelayMs:Oe,videoDelayEnabled:en,setDelayEnabled:Tn,handleVideoDelayChange:Dt,isCalibrating:Cn,testClipActive:fe,stopCalibration:En,openAvSyncCalibrator:Fs,cancelAvSyncCalibrator:Vs,applyAvSyncCalibrator:Us,toggleTestClip:Ws,calibReturnRef:tn,effectiveVideoDelayMs:Nn}=Yr(l),[St,Hs]=v(()=>{try{const e=Number($.getItem("tvSubtitleDelayMs"));if(Number.isFinite(e)&&e>=-6e4&&e<=6e4)return Math.round(e)}catch{}return 0}),wn=U(St);wn.current=St;const qs=_(e=>{const n=Math.max(-6e4,Math.min(6e4,Math.round(e)));if(wn.current!==n){wn.current=n,Hs(n);try{$.setItem("tvSubtitleDelayMs",String(n))}catch{}}},[]);Qr({videoRef:l,canvasRef:Zt,delayMs:Nn,enabled:en});const In=en,_e=In||St!==0,{settings:An,update:Ks}=jr(),Pn=U(_e);Pn.current=_e;const xn=_(()=>{if(!Pn.current)return;const e=l.current;e&&Array.from(e.textTracks).forEach(n=>{n.mode!=="hidden"&&(n.mode="hidden")})},[l]),{hasConsent:Ot,grant:Ys}=xr(),f=C==="movie";ka({details:s,isMovie:f,season:u,episode:S,videoRef:l,active:!A&&!ue&&!$e&&W.length>0});const nn=r?Lr(C||"tv",r):"",j=nn,ze=`${j}:${u}:${S}:${E}:${K}`,sn=ke(()=>!r||!s||A||Ie||ue||Re!==ze||W[we]?.type!=="hls"?null:{kind:f?"movie":"tv",...f?{}:{season:u},showId:r,episode:String(f?1:S),provider:E,source:K,mode:"sub",title:s.title},[r,s,A,Ie,ue,Re,ze,W,we,f,u,S,E,K]),is=Gr(i.engine,sn,ue||!s),ls=vo(),Ln=yo(),Ke=So(),Ye=_o(),{toggle:cs,bookmarkedIds:Qs,pending:js}=ko(),{data:ds}=To(s?nn:void 0),zt=ds?!!ds.inLibrary:nn?Qs.has(nn):!1,Gs=_(()=>{!s||!r||cs({tmdbId:Number(r),mediaType:C||"tv",title:s.title,poster:s.poster,year:s.year,adult:s.adult})},[s,r,C,cs]),{data:Qe,isFetched:Ft,isFetching:Bn}=Co(j||void 0,u,S),rn=ke(()=>Ne.map(e=>e.episode_number).sort((e,n)=>e-n),[Ne]),Vt=rn.indexOf(S),Rn=Vt>0?rn[Vt-1]:null,P=Vt>=0&&Vt<rn.length-1?rn[Vt+1]:null,on=ke(()=>(s?.seasons??[]).map(e=>e.season_number).filter(e=>Number.isFinite(e)).sort((e,n)=>e-n),[s]),G=ke(()=>{if(f||P!=null)return null;const e=on.indexOf(u);return e>=0&&e<on.length-1?on[e+1]:(s?.number_of_seasons??0)>u?u+1:null},[f,P,on,u,s?.number_of_seasons]),Mn=No(s?.status),ct=f||P==null&&G==null&&Mn,us=P==null&&G==null&&!ct,Ae=Qe?.currentTime??0,an=U(null),[je,ln]=v(!1),[_t,ms]=v(0),[Ut,hs]=v(!1),[dt,ut]=v(!1),[Xs,$n]=v(!1),[Js,Zs]=v(""),[cn,er]=v(!1),[tr,Dn]=v(!1),[On,zn]=v(!1),{isTheaterMode:Fe,toggleTheaterMode:Fn,handleLayoutClick:nr}=Xr(),fs=Qe?.duration??0,bs=Qe?.completed===1,Wt=`${j}:${u}:${S}`,[gs,sr]=v(null);p(()=>{Ft&&sr(e=>e?.key===Wt?e:{key:Wt,watched:bs||Qt(Ae,fs)})},[Ft,Wt,bs,Ae,fs]);const rr=Ft&&gs?.key===Wt&&gs.watched,[dn]=v(wo),[or,ps]=v(!1);p(()=>{ps(!1)},[Wt]);const vs=!d&&!fe&&rr&&!On,Ge=vs&&dn,mt=vs&&!dn&&!or,Xe=dt&&dn,ar=dt&&!dn,ys=_(()=>{zn(!0),ut(!1)},[]);p(()=>{const e=n=>{n.defaultPrevented||n.ctrlKey||n.metaKey||n.altKey||n.repeat||n.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')||n.key.toLowerCase()==="t"&&Fn()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[Fn]),Jr(i,(W.length>0||ot!=="")&&!Fe&&!je&&!dt&&!Ge&&!mt);const ir=Po(),[kt,lr]=v(Io),cr=_(e=>{lr(e),Ao(e)},[]),Je=U(!1),Ve=U(null),Vn=U(0),X=U(null),Ss=_(()=>{X.current=Ae,zn(!0),ut(!1)},[Ae]),un=U(""),dr=$s(Ae),Ht=!d&&!Je.current&&!On&&(je||dt||dr||Ge||mt),mn=U(Ht);mn.current=Ht;const hn=U(!1);p(()=>{hn.current=Ut},[Ut]);const Ze=_((e,n)=>{if(!j||!n||n<30)return;const a=Qt(e,n);Math.abs(e-Vn.current)<10&&!a||(Vn.current=e,ls.mutate({mediaId:j,season:u,episode:S,currentTime:Math.floor(e),duration:Math.floor(n),completed:a,title:s?.title??null,poster:s?.poster??null,backdrop:s?.backdrop??null,year:s?.year??null,overview:s?.overview??null,tmdbId:s?.id??null,mediaType:C||"tv",adult:s?.adult?1:0}))},[j,u,S,ls,s,C]),Pe=_((e,n)=>{En();const a=new URLSearchParams(b);a.set("type",b.get("type")||"tv"),a.set("s",String(e)),a.set("e",String(n)),x(`${window.location.pathname}?${a.toString()}`)},[b,x,En]),qt=_(()=>{const e=l.current;if(!e||f||P==null){$n(!1);return}const n=e.duration||0,a=e.currentTime||0;$n(n>0&&a/n>=.8)},[f,P,l]),fn=_((e,n)=>["tv-sources",E,f?"movie":"tv",r,e,n,K],[E,f,r,K]),bn=_(async(e,n)=>{if(!s||!r||!E)return{valid:!1,sources:[]};const a=f?"movie":"tv",m=await Ct.tv.sources.query({provider:E,type:a,tmdbId:String(r),season:e,episode:n,title:s.title||"",year:s.year||"",totalSeasons:String(s.number_of_seasons||1),imdbId:s.imdb_id||"",...K?{server:K}:{}});return{valid:"valid"in m?m.valid:!1,error:"error"in m?m.error:void 0,sources:m.sources,referer:"referer"in m?m.referer:void 0,audioTracks:m.audioTracks,subtitles:"subtitles"in m?m.subtitles:void 0,servers:"servers"in m?m.servers:void 0,server:"server"in m?m.server:void 0,embedUrl:"embedUrl"in m?m.embedUrl:void 0}},[s,r,E,f,K]),_s=_(()=>{if(f||!s||!r||!E||A||P==null)return;const e=fn(u,P);M.getQueryState(e)?.status!=="success"&&M.prefetchQuery({queryKey:e,queryFn:()=>bn(u,P),staleTime:300*1e3,gcTime:1800*1e3})},[f,s,r,E,A,P,u,M,fn,bn]),ur=_(()=>{if(fe)return;qt();const e=l.current;!e||e.paused||e.ended||(e.duration>0&&e.duration-e.currentTime<=60&&_s(),!Ve.current&&(Ve.current=setTimeout(()=>{Ve.current=null,Ze(e.currentTime,e.duration||0)},5e3)))},[Ze,l,fe,qt,_s]),mr=_(()=>{const e=l.current;if(!(!e||!s)&&(Ve.current&&clearTimeout(Ve.current),Ve.current=null,Ze(e.currentTime,e.duration||0),!c)){if(P!=null){kt&&(ye(P),Pe(u,P));return}!f&&G==null&&!Mn||(Zs(f?s.title:`${s.title} - Season ${u}`),ut(!0),Je.current=!0)}},[f,s,u,P,G,Mn,kt,Ze,Pe,l,c]),{checkEnd:gn,logDuration:ks}=Zr({videoRef:l,sourceType:A?"iframe":void 0,resetKey:`${j}:${u}:${S}:${On}`,onEnd:mr}),hr=_(()=>{i.actions.onPlay()},[i.actions]),fr=_(()=>{i.actions.onPause();const e=l.current;e&&!e.ended&&Ze(e.currentTime,e.duration||0)},[i.actions,Ze,l]),br=_(()=>{const e=l.current;if(e){try{const n=parseFloat($.getItem("playerVolume")||"");isNaN(n)||(e.volume=Math.max(0,Math.min(1,n))),e.muted=$.getItem("playerMuted")==="true"}catch{}if(X.current!=null&&X.current>0){try{e.currentTime=X.current}catch{}X.current=null}qt()}},[l,qt]),Un=_(()=>{const e=l.current;if(e&&X.current!=null&&X.current>0){try{e.currentTime=X.current}catch{}X.current=null}},[l]),gr=_(()=>{_t>0&&(X.current=_t);const e=l.current;if(e&&_t>0){try{e.currentTime=_t,X.current=null}catch{}e.play().catch(()=>{})}ln(!1),Je.current=!0},[_t,l]),Ts=_(()=>{X.current=null;const e=l.current;e&&(e.currentTime=0,e.play().catch(()=>{})),ln(!1),Je.current=!0},[l]),Wn=_(()=>{P!=null&&(Je.current=!0,ye(P),Pe(u,P))},[P,u,Pe]),Hn=_(()=>{G!=null&&(ut(!1),Je.current=!0,te(G),ye(1),Pe(G,1))},[G,Pe]),qn=_(async()=>{if(j)try{zt?await Ke.mutateAsync({id:j,status:"Completed"}):s&&r&&(await Ye.mutateAsync({tmdbId:Number(r),mediaType:C||"tv",title:s.title,poster:s.poster,backdrop:s.backdrop,year:s.year,overview:s.overview,adult:s.adult,status:"Completed",silent:!0}),Rs.success("Moved to Completed")),ut(!1),x("/")}catch{}},[j,zt,Ke,Ye,s,r,C,x]);p(()=>{Je.current=!1,an.current=null,ln(!1),$n(!1),ms(0),hs(!1),zn(!1),hn.current=!1,X.current=null,Vn.current=0},[j,u,S]),p(()=>{un.current=ze},[ze]),p(()=>{Ft&&(hs(!0),hn.current=!0)},[Ft,j,u,S]),p(()=>{if(d||Bn||!Qe||Je.current)return;const e=`${j}:${u}:${S}`;if(an.current===e)return;an.current=e;const n=Qe,a=n.currentTime??0;$s(a)&&n.completed!==1&&!Qt(a,n.duration??0)&&(ms(a),ln(!0))},[Qe,Bn,j,u,S,d]),p(()=>{!d&&je&&l.current&&l.current.pause()},[je,l,d]),p(()=>{!d&&mt&&l.current&&l.current.pause()},[mt,l,d]),p(()=>{(Ge||mt||Xe)&&i.state.isFullscreen&&i.actions.toggleFullscreen()},[Ge,mt,Xe,i.state.isFullscreen,i.actions]),p(()=>{const e=l.current;return()=>{Ve.current&&clearTimeout(Ve.current),Ve.current=null,!e?.ended&&i.engine.getState().duration>0&&Ze(i.engine.getTimeline().currentTime,i.engine.getState().duration)}},[i.engine,Ze,l]);const Kn=_(e=>{let n=null,a=!0;try{n=$.getItem("tvLastSubtitle"),a=$.getItem("tvSubtitlesEnabled")!=="false"}catch{}return os(e,{lastKey:n,enabled:a})},[]),Yn=_(e=>{if(!(e<0))try{$.setItem("tvSubtitlesEnabled","true"),$.setItem("tvSelectedSubtitle",String(e))}catch{}},[]),Cs=_(e=>{if(e.length===0)return 0;let n=null;try{n=$.getItem("tvLastAudio")}catch{}if(n){const a=e.findIndex(B=>ns(B)===n);if(a>=0)return a;const m=n.indexOf("|||"),h=m>=0?n.slice(0,m):n,T=m>=0?n.slice(m+3):n,D=e.findIndex(B=>B.language===h||B.label===T);if(D>=0)return D}return os(e,{lastKey:null,enabled:!0})},[]),Es=_(e=>{let n=null;try{n=$.getItem("tvLastQuality")}catch{}if(!n||e.length===0)return 0;const a=e.findIndex(B=>(B.quality||"")===n);if(a>=0)return a;const m=B=>{const Z=/(\d{3,4})/.exec(B||"");return Z?parseInt(Z[1],10):0},h=m(n);if(!h)return 0;let T=0,D=1/0;return e.forEach((B,Z)=>{const y=m(B.quality),H=Math.abs(y-h);y>0&&H<D&&(D=H,T=Z)}),T},[]),{data:Ns}=Eo(j||void 0),ws=ke(()=>(Ns?.progress??[]).filter(n=>n.season===u&&(n.completed===1||Qt(n.currentTime,n.duration))).map(n=>String(n.episode)),[Ns,u]),Is=ke(()=>Ne.map(e=>({id:String(e.episode_number),label:`Episode ${e.episode_number}`,sublabel:e.name||void 0,thumbnail:e.still_path?`https://image.tmdb.org/t/p/w185${e.still_path}`:void 0})),[Ne]),As=ke(()=>(s?.genres??[]).map(e=>e.name).slice(0,5),[s]),Qn=ke(()=>[s?.year,s?.status,s?.number_of_seasons?`${s.number_of_seasons} Season${s.number_of_seasons>1?"s":""}`:null,s?.number_of_episodes?`${s.number_of_episodes} Episodes`:null].filter(Boolean),[s]);p(()=>{if(!c&&Q.length!==0&&!Q.some(e=>e.id===E)){const e=Q.find(n=>n.tier==="direct")?.id??Q[0].id;nt(e);try{$.setItem("tvProvider",e)}catch{}}},[Q,E,c]),p(()=>{he([]),at(""),vt(""),it(!1)},[E]),p(()=>{if(!c&&Se.length!==0&&!Se.includes(K)){xt(Se[0]);try{$.setItem("tvServer",Se[0])}catch{}}},[Se,K,c]),p(()=>{if(!r){L(null),Y([]),st(""),re(""),qe("");return}const e=Number(r),n=C||"tv";L(null),Y([]),st(""),re(""),qe("");const a=parseInt(z.current.get("s")||"",10),m=parseInt(z.current.get("e")||"",10);te(isNaN(a)?1:a),ye(isNaN(m)?1:m),gt(0),Ct.tv.details.query({type:n,id:String(e)}).then(h=>{const T={id:h.id,title:h.title||"",overview:h.overview||"",vote_average:h.vote_average,year:h.year,poster:h.poster,backdrop:h.backdrop,imdb_id:h.imdb_id||void 0,adult:h.adult,status:h.status,seasons:h.seasons,number_of_seasons:h.number_of_seasons};L(T),T.seasons&&T.seasons.length>0&&isNaN(a)&&te(T.seasons[0].season_number)}).catch(()=>{})},[r,C]),p(()=>{if(!s||!r)return;if(!(s.seasons!==void 0||s.number_of_seasons!==void 0)){Be([]);return}const n=parseInt(b.get("e")||"",10);Ct.tv.episodes.query({id:String(r),season:String(u)}).then(a=>{const m=(a.episodes||[]).map(h=>({episode_number:h.episode_number,name:h.name||"",vote_average:h.vote_average,overview:h.overview||"",still_path:h.still_path||""}));Be(m),m.length!==0&&ye(h=>!isNaN(n)&&m.some(T=>T.episode_number===n)?n:m.some(T=>T.episode_number===h)?h:m[0].episode_number)}).catch(()=>{})},[s,r,u,b]),p(()=>{if(!A||!s||!r)return;ts(`/api/tv/embed/${E}/${f?"movie":"tv"}/${r}?season=${u}&episode=${S}`).then(n=>{if(n.url)return qe(n.url),ts(`/api/resolve?url=${encodeURIComponent(n.url)}`).then(a=>{a.finalUrl&&qe(a.finalUrl)})}).catch(()=>{})},[E,s,r,u,S,f,A]);const pn=_(async()=>{if(!s||!r||!E||A||s.adult&&!Ot)return;const e=ze;Me(!0),re(""),Rt.current.length===0&&(Y([]),gt(0),We([]),Pt([]));try{const n=await M.fetchQuery({queryKey:fn(u,S),queryFn:()=>bn(u,S),staleTime:3e5,gcTime:18e5});if(un.current!==e)return;if(Me(!1),!n.valid||!n.sources?.length){re(n.error?`${n.error}`:Se.length>0?`No streams from ${K}. Try another server.`:"No streams available.");return}if(d&&K&&n.server&&n.server!==K){Y([]),re("The host's selected server is unavailable. Automatic source switching is disabled in watch-along rooms.");return}!c&&!K&&n.server&&xt(n.server);const a=d?n.sources.filter(B=>B.type==="hls"):n.sources;if(d&&a.length===0){Y([]),re("The room requires a direct HLS source. No compatible stream is available here.");return}Y(a),Nt(n.server||K),st(e),n.servers?.length&&he(n.servers),n.embedUrl&&at(n.embedUrl),gt(Es(a)),n.referer&&Gt(n.referer);const m=n.audioTracks||[];We(m),At(m.length>0?Cs(m):0);const h=n.subtitles||[];if(Pt(h),h.length>0){const B=Kn(h);De(B),Yn(B)}else De(-1);const T=f?"movie":"tv",D=r;Ct.tv.subtitles.query({type:T,tmdbId:String(D),season:String(u),episode:String(S)}).then(B=>{if(un.current!==e)return;const Z=Array.isArray(B.subtitles)?B.subtitles:[];Z.length!==0&&Pt(y=>{const H=[...y,...Z.filter(J=>!y.some(V=>V.url===J.url))];if(y.length===0){const J=Kn(H);De(J),Yn(J)}return H})}).catch(()=>{}),re("")}catch(n){if(un.current!==e)return;Me(!1),re(n instanceof Error?n.message:"Failed to load streams.")}},[s,r,E,u,S,f,A,Ot,Se,K,Kn,Yn,Cs,Es,M,fn,bn,ze,d,c]),jn=_(()=>{const e=l.current;e&&!isNaN(e.currentTime)&&(X.current=e.currentTime)},[l]),pr=_(e=>{if(!(c||d&&e==="Embed")){if(e==="Embed"){it(!0);return}jn(),it(!1),xt(e);try{$.setItem("tvServer",e)}catch{}re("")}},[jn,c,d]),vr=_(e=>{nt(e);try{$.setItem("tvProvider",e)}catch{}},[]);p(()=>{E&&s&&!A&&pn()},[E,s,pn,A]),p(()=>{if(Ge){i.engine.unload();return}if(!l.current)return;if(F.current=null,A||Ie||d&&W[we]?.type!=="hls"){i.engine.unload();return}if(fe&&!d)return i.engine.loadSource({url:"/av-sync-test.mp4"},{autoPlay:!mn.current});if(tn.current!=null&&(X.current=tn.current,tn.current=null),Re===ze&&X.current==null&&!mn.current)try{const y=l.current;y&&!y.ended&&y.currentTime>1&&(X.current=y.currentTime)}catch{}const n=X.current??0,a=!ue&&Re===ze?Ie?"":W[we]?.url||"":"";if(!a){try{l.current?.pause(),l.current?.removeAttribute("src"),l.current?.load()}catch{}return}const m=l.current;m.pause(),m.removeAttribute("src"),m.load(),i.actions.resetMediaState();const h=`/api/tv/stream-proxy?url=${encodeURIComponent(a)}&referer=${encodeURIComponent(He)}&provider=${encodeURIComponent(E)}`,T=Ea()||document.body.classList.contains("low-end"),D=T?60:180,B=i.engine.loadSource({url:h,hls:W[we]?.type==="hls"},{hlsConfig:{enableWorker:!0,lowLatencyMode:!1,startPosition:n>0?n:-1,maxBufferLength:D,maxMaxBufferLength:D+(T?30:60),backBufferLength:T?30:60,maxBufferSize:(T?120:360)*1e3*1e3,fragLoadPolicy:{default:{maxTimeToFirstByteMs:15e3,maxLoadTimeMs:45e3,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:3,retryDelayMs:800,maxRetryDelayMs:6e3}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:25e3,timeoutRetry:{maxNumRetry:1,retryDelayMs:500,maxRetryDelayMs:2e3},errorRetry:{maxNumRetry:2,retryDelayMs:800,maxRetryDelayMs:4e3}}}},onHls:(y,H)=>{F.current=y;const J=()=>{let O=!1,R=0;try{O=$.getItem("tvSubtitlesEnabled")==="true";const N=parseInt($.getItem("tvSelectedSubtitle")||"0",10);!isNaN(N)&&N>=0&&(R=N)}catch{}return{enabled:O,index:R}},V=()=>{if(typeof y.subtitleTrack!="number")return;if(ce.current.length>0){y.subtitleTrack=-1;return}const O=Array.isArray(y.subtitleTracks)?y.subtitleTracks:[];if(O.length===0){y.subtitleTrack=-1;return}const R=J();if(R.enabled){const N=R.index<O.length?R.index:0;y.subtitleTrack=N,De(N),xn()}else y.subtitleTrack=-1};Ta(y,H.Events,{getWant:()=>Mt.current,onResolve:O=>At(O)}),y.on(H.Events.MANIFEST_PARSED,V),y.on(H.Events.SUBTITLE_TRACKS_UPDATED,()=>{V()}),y.on(H.Events.SUBTITLE_TRACK_SWITCH,(O,R)=>{if(ce.current.length>0){if(R.id!==-1)try{y.subtitleTrack=-1}catch{}return}const N=Array.isArray(y.subtitleTracks)?y.subtitleTracks:[];if(N.length!==0){if(R.id===-1){const Ee=J();if(Ee.enabled){const ae=Ee.index<N.length?Ee.index:0;y.subtitleTrack=ae;return}}De(R.id),xn()}})},onReady:()=>{(n>0||!mn.current&&hn.current)&&i.engine.play()},onError:y=>{re(y.message),Me(!1),F.current=null}}),Z=()=>{const J=m.error?.code===4?"Video source not supported or not found":"Failed to load video stream";re(`${J}. The source may be invalid or expired. Try switching source or reloading.`),Me(!1)};return m.addEventListener("error",Z),()=>{B(),F.current=null,m.removeEventListener("error",Z)}},[W,Re,ue,we,E,He,A,Ie,l,tn,fe,j,u,S,Un,xn,i.actions,i.engine,ze,d,Ge]),p(()=>{if(c||!Ut||je||dt||Ht||A||fe)return;const e=l.current;!e||!e.paused||e.ended||e.readyState<1||(Un(),i.engine.play())},[Ut,je,dt,Ht,A,fe,Un,l,c,i.engine]),p(()=>{const e=F.current;!e||typeof e.audioTrack!="number"||(e.audioTrack=Te)},[Te]),p(()=>{const e=F.current;!e||typeof e.subtitleTrack!="number"||!Array.isArray(e.subtitleTracks)||e.subtitleTracks.length===0||ce.current.length>0||(me>=0?e.subtitleTrack=me:e.subtitleTrack=-1)},[me]),p(()=>{const e=l.current;if(!(!e||A)&&(e.querySelectorAll("track").forEach(n=>n.remove()),ce.current=[],Ce.length!==0&&(Ce.forEach(n=>{const a=document.createElement("track");a.kind="subtitles",a.label=n.label||n.language||"Unknown",a.srclang=n.language||n.label||"en";const m=`/api/subtitle-proxy?url=${encodeURIComponent(n.url)}&referer=${encodeURIComponent(He)}`;a.src=m,a.addEventListener("load",()=>{const h=ce.current.indexOf(a),T=a.track;if(T&&h>=0){const D=h===yt.current;T.mode=D&&!Pn.current?"showing":"hidden"}}),e.appendChild(a),ce.current.push(a)}),Ce.length>0)))try{const n=F.current;n&&typeof n.subtitleTrack=="number"&&n.subtitleTrack!==-1&&(n.subtitleTrack=-1)}catch{}},[Ce,He,A,E,K,l]),p(()=>{const e=l.current;if(!e||A)return;const n=F.current;ce.current.length>0&&n&&typeof n.subtitleTrack=="number"&&Array.isArray(n.subtitleTracks)&&n.subtitleTracks.length>0&&(n.subtitleTrack=-1);const a=()=>{const T=as(i.state.subtitleFontSize,e.clientHeight||720),D=Math.max(0,Math.min(100,100-i.state.subtitlePosition)),B=()=>{const V=T*16,O=e.videoHeight||e.clientHeight||720,R=e.videoWidth||e.clientWidth||1280;return{step:V*1.3/O*100,chars:Math.max(20,Math.floor(R/(V*.55)))}},Z=(V,O)=>{const R=V;R.snapToLines=!1,R.line=O},y=V=>{if(!V.cues)return;Array.from(V.cues).forEach(ae=>Z(ae,D));const O=Array.from(V.activeCues??[]);if(O.length<=1){O.forEach(ae=>Z(ae,D));return}const{step:R,chars:N}=B();let Ee=D;for(let ae=O.length-1;ae>=0;ae--){const et=String(O[ae].text??"").replace(/<[^>]*>/g,"").split(`
|
|
3
|
-
`).reduce((yn,Kt)=>yn+Math.max(1,Math.ceil(Kt.length/N)),0);Ee=Math.max(0,Ee-et*R),Z(O[ae],Ee),Ee-=R*.4}},H=ce.current;if(H.length>0){H.forEach((V,O)=>{const R=V.track;if(!R)return;const N=O===me;R.mode=N&&!_e?"showing":"hidden",N&&!_e&&y(R)});return}const J=Array.from(e.textTracks);J.length!==0&&J.forEach((V,O)=>{const R=O===me;V.mode=R&&!_e?"showing":"hidden",R&&!_e&&y(V)})};a();const m=()=>a();e.textTracks.addEventListener("addtrack",m),e.addEventListener("loadedmetadata",a,{once:!0});const h=window.setTimeout(a,600);return()=>{e.textTracks.removeEventListener("addtrack",m),e.removeEventListener("loadedmetadata",a),window.clearTimeout(h)}},[me,Ce,A,E,l,_e,i.state.subtitleFontSize,i.state.subtitlePosition]),p(()=>{if(!_e)return;const e=l.current,n=$t.current;if(!e||!n)return;const a=St/1e3,m=Nn/1e3,h=new Set;let T=[],D=-1,B=-1,Z=-1,y=-1,H=0,J=0,V=!1;const O=()=>{const q=yt.current;if(q<0)return null;const tt=ce.current;return tt.length>0?tt[q]?.track??null:Array.from(e.textTracks)[q]??null},R=(q,tt)=>{const be=q.cues;if(!be||be.length===0)return Array.from(q.activeCues??[]);let ht=0,ft=be.length;for(;ht<ft;){const xe=ht+ft>>>1;be[xe].endTime+a<tt?ht=xe+1:ft=xe}const Yt=[];for(let xe=ht;xe<be.length;xe++){const Sn=be[xe];if(Sn.startTime+a>tt)break;Sn.endTime+a>=tt&&Yt.push(Sn)}return Yt},N=()=>{const q=O(),tt=e.currentTime-m,be=q?R(q,tt):[],ht=e.clientWidth,ft=e.clientHeight,Yt=e.videoWidth,xe=e.videoHeight;if(be.length===T.length&&be.every((Jn,Zn)=>Jn===T[Zn])&&ht===D&&ft===B&&Yt===Z&&xe===y||(T=be,D=ht,B=ft,Z=Yt,y=xe,n.textContent="",be.length===0))return;const Ls={fontSize:as(i.state.subtitleFontSize,ft),position:i.state.subtitlePosition,bgOpacity:i.state.subtitleBgOpacity,bgColor:i.state.subtitleBgColor,textColor:i.state.subtitleTextColor,edge:i.state.subtitleEdge,bold:i.state.subtitleBold},kr=eo(Ls),Tr=to(e,Ls.position);be.forEach((Jn,Zn)=>{const Bs=String(Jn.text??"");if(!no(Bs).trim())return;const es=document.createElement("div"),Cr=(be.length-1-Zn)*1.7;es.style.cssText=`${kr}
|
|
4
|
-
bottom: calc(${Tr}px + ${Cr}em);`,es.innerHTML=so(Bs),n.appendChild(es)})},Ee=()=>{Array.from(e.textTracks).forEach(q=>{h.has(q)||(h.add(q),q.addEventListener("cuechange",N))})},ae=()=>{Ee(),N()},Xn=()=>{if(V||J)return;const q=()=>{J=0,!(V||e.paused||e.ended)&&(N(),Xn())};J=window.requestAnimationFrame(q)},et=e,yn=()=>{H=0,N(),!V&&et.requestVideoFrameCallback&&(H=et.requestVideoFrameCallback(yn))},Kt=()=>{N(),et.requestVideoFrameCallback?H||(H=et.requestVideoFrameCallback(yn)):Xn()};Ee(),e.textTracks.addEventListener("addtrack",ae),e.textTracks.addEventListener("removetrack",ae),e.addEventListener("timeupdate",N),e.addEventListener("seeked",N),e.addEventListener("loadedmetadata",N),e.addEventListener("play",Kt);const Ps=Array.from(e.querySelectorAll("track"));Ps.forEach(q=>q.addEventListener("load",N));const xs=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>N());return xs?.observe(e),N(),Kt(),()=>{V=!0,h.forEach(q=>q.removeEventListener("cuechange",N)),e.textTracks.removeEventListener("addtrack",ae),e.textTracks.removeEventListener("removetrack",ae),e.removeEventListener("timeupdate",N),e.removeEventListener("seeked",N),e.removeEventListener("loadedmetadata",N),e.removeEventListener("play",Kt),Ps.forEach(q=>q.removeEventListener("load",N)),xs?.disconnect(),J&&window.cancelAnimationFrame(J),H&&et.cancelVideoFrameCallback&&et.cancelVideoFrameCallback(H),n.textContent=""}},[_e,St,me,Ce,Nn,l,i.state.subtitleFontSize,i.state.subtitlePosition,i.state.subtitleBgOpacity,i.state.subtitleBgColor,i.state.subtitleTextColor,i.state.subtitleEdge,i.state.subtitleBold]);const Gn=()=>{L(null),Y([]),qe(""),x(-1)},yr=_(e=>{c||(te(e),ye(1),Pe(e,1))},[Pe,c]),vn=!f&&s?.seasons&&s.seasons.length>1?t("label",{className:g.sidebarSeason,children:[t("span",{children:"Season"}),t("select",{disabled:c,value:u,onChange:e=>yr(parseInt(e.currentTarget.value,10)||1),className:g.select,children:s.seasons.map(e=>t("option",{value:e.season_number,children:["Season ",e.season_number," (",e.episode_count," ep)"]},e.season_number))})]}):null,Tt=_(e=>{if(c)return;const n=parseInt(e,10);if(!isNaN(n)){try{l.current?.pause()}catch{}ye(n),Pe(u,n)}Dn(!1)},[u,Pe,l,c]);p(()=>{if(f)return;const e=n=>{n.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')||n.key.toLowerCase()==="n"&&(P!=null?Tt(String(P)):Rs.error("No next episode available"))};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[f,P,Tt]);const Sr=e=>{At(e);try{const a=It[e];a&&$.setItem("tvLastAudio",ns(a))}catch{}const n=F.current;n&&n.audioTrack!==void 0&&(n.audioTrack=e)},_r=e=>{De(e);try{if(e===-1)$.setItem("tvSubtitlesEnabled","false");else{$.setItem("tvSubtitlesEnabled","true"),$.setItem("tvSelectedSubtitle",String(e));const h=Ce[e];h&&$.setItem("tvLastSubtitle",ns(h))}}catch{}const n=l.current,a=F.current;if(a&&typeof a.subtitleTrack=="number"&&Array.isArray(a.subtitleTracks)&&a.subtitleTracks.length>0&&(a.subtitleTrack=ce.current.length>0||e<0?-1:e),!n)return;const m=ce.current;if(m.length>0){m.forEach((h,T)=>{const D=h.track;if(!D)return;const B=T===e;D.mode=B&&!_e?"showing":"hidden"});return}Array.from(n.textTracks).forEach((h,T)=>{const D=T===e;h.mode=D&&!_e?"showing":"hidden"})};return p(()=>{if(!s){document.title="TV & Movies - dango";return}document.title=f?`${s.title} - dango`:`${s.title} - Season ${u} Episode ${S} - dango`},[s,f,u,S]),p(()=>{if(!s||f)return;const e=new URLSearchParams(b),n=e.get("s"),a=e.get("e"),m=String(u),h=String(S);n===m&&a===h||(e.set("type",b.get("type")||"tv"),e.set("s",m),e.set("e",h),x(`${window.location.pathname}?${e.toString()}`,{replace:!0}))},[s,f,u,S,b,x]),t("div",{className:`${Le.playerPageLayout} ${Fe?Le.theaterMode:""} ${f?Le.noSidebar:""}`,onClick:nr,children:[Fe&&t(ro,{videoRef:l,active:An.enabled&&!A&&W.length>0&&!$e&&!(s?.adult&&!Ot),settings:An}),!Fe&&!f&&t("aside",{className:Le.episodeSidebar,children:s?t(oo,{episodes:Is,currentEpisode:String(S),watchedEpisodes:ws,onEpisodeClick:Tt,header:vn}):t(ao,{variant:"sidebar"})}),t("div",{className:Le.playerMain,children:[s&&t("div",{className:g.playerSection,onContextMenu:e=>e.preventDefault(),style:s.adult&&!Ot?{filter:"blur(14px)",pointerEvents:"none",userSelect:"none"}:void 0,children:A&&ot&&!d?t("iframe",{src:ot,className:g.videoIframe,allow:"autoplay; fullscreen",allowFullScreen:!0}):!A&<&&!d?t("iframe",{src:lt,className:g.videoIframe,allow:"autoplay; fullscreen",allowFullScreen:!0}):!A&&(W.length>0||ue)?t(Ue,{children:[$e&&t(Os,{error:$e,onRetry:pn}),t(ya,{player:i,title:s.title,episodeLabel:f?void 0:`S${u} E${S}`,server:de||pt?.label||E,audioTracks:It,selectedAudioTrack:Te,onAudioTrackChange:Sr,subtitles:Ce,selectedSubtitle:me,onSubtitleChange:_r,streams:W,resolutionIdx:we,onResolutionChange:e=>{jn(),gt(e);try{const n=W[e]?.quality;n&&$.setItem("tvLastQuality",n)}catch{}},onBack:Gn,videoDelayEnabled:en,onVideoDelayToggle:Tn,videoDelayMs:Oe,onVideoDelayChange:Dt,onCalibrateAvSync:d?void 0:Fs,subtitleDelayMs:St,onSubtitleDelayChange:qs,showNextEpisodeButton:!c&&Xs&&!je&&!dt,onNextEpisode:Wn,isLoading:ue,isTheaterMode:Fe,onTheaterModeToggle:Fn,ambientSettings:An,onAmbientChange:Ks,hideChrome:Ge||Xe,children:t(Ue,{children:[t(zr,{autoPlay:!d&&Ut&&!Ht,playsInline:!0,disablePictureInPicture:!0,className:`${g.video} ${In?g.videoHidden:""}`,onTimeUpdate:()=>{fe||(ur(),gn())},onEnded:()=>{fe||gn(!0)},onPlay:hr,onPause:fr,onSeeked:()=>{fe||(qt(),gn())},onLoadedMetadata:()=>{br(),ks(),gn()},onDurationChange:()=>{ks()},onContextMenu:e=>e.preventDefault(),onError:()=>{re("Video failed to load. Try another server or reload."),Me(!1)}}),t("canvas",{ref:Zt,className:`${g.delayCanvas} ${In?g.delayCanvasActive:""}`}),_e&&t("div",{ref:$t,className:g.subtitleOverlay}),t(io,{isOpen:Cn,ms:Oe,onChange:Dt,onApply:Us,onClose:Vs,testClipActive:fe,onTestClip:Ws}),(Ge||Xe)&&t("div",{className:g.watchedOverlay,children:[t(ie,{name:"check-circle",size:48,style:{color:"var(--accent-lighter)"}}),t("p",{className:g.watchedTitle,children:Xe||ct?G!=null?"Season Complete!":f?"Movie Completed!":"Show Completed!":f?"Movie watched":`S${u} E${S} watched`}),t("p",{className:g.watchedSubtext,children:Xe||ct?G!=null?`You finished Season ${u}.`:f?"You finished this movie!":"Congratulations! You finished all available episodes.":"Resume where you left off, replay from the beginning, or continue with the next episode."}),t("div",{className:`${g.watchedActions} ${Xe?g.watchedActionsCentered:""}`,children:[t("div",{children:Ae>5&&!Xe&&t(ge,{variant:us?void 0:"secondary",onClick:Ss,children:`Resume ${jt(Ae)}`})}),t("div",{children:P!=null?t(ge,{onClick:Wn,children:`Watch EP ${P}`}):G!=null?t(ge,{onClick:Hn,children:`Start Season ${G}`}):null}),t("div",{children:[t(ge,{variant:"secondary",onClick:ys,children:"Replay"}),ct&&t(ge,{onClick:qn,disabled:Ke.isPending||Ye.isPending,children:Ke.isPending||Ye.isPending?"Saving...":"Move to Completed"})]})]})]})]})})]}):$e&&!A?t(Os,{error:$e,onRetry:pn}):null}),t(Lo,{playback:sn?{selection:sn,position:l.current?.currentTime||0,playing:!1,rate:i.engine.getState().playbackRate}:null,onCreate:()=>{En(),i.engine.pause()},needsPlayback:is.needsPlayback,onEnablePlayback:is.enablePlayback}),d&&!ue&&s&&!sn&&t("p",{role:"alert",children:"The host's direct HLS source is unavailable here. Retry or leave the room to use another source."}),!Fe&&s&&t(lo,{}),!Fe&&vn&&t("div",{className:g.mobileSeasonRow,children:vn}),!Fe&&s&&t("div",{className:ee.streamPanel,children:[t("div",{className:g.providerSelectWrap,children:t("label",{className:g.controlLabel,children:["Provider",t("select",{value:E,onChange:e=>vr(e.currentTarget.value),className:g.select,disabled:c||Q.length===0,children:wt?t("option",{value:"",children:"Loading..."}):Q.length===0?t("option",{value:"",children:"No providers available"}):t(Ue,{children:[I.length>0&&t("optgroup",{label:"Direct HLS",children:I.map(e=>t("option",{value:e.id,children:e.label},e.id))}),se.length>0&&t("optgroup",{label:"Embeds",children:se.map(e=>t("option",{value:e.id,children:e.label},e.id))})]})})]})}),!c&&!A&&(ue?t("div",{className:g.sourceLoader,children:t("div",{className:g.ringSpinner})}):t(_a,{servers:Jt,selectedServer:Bt?"Embed":K,onServerSelect:pr}))]}),!Fe&&s&&t("div",{className:Le.playerInfoContainer,children:[t("div",{className:Le.playerInfoHeader,children:[t("div",{className:Le.playerAnimeCard,children:s.poster&&t(Br,{src:`https://image.tmdb.org/t/p/w342${s.poster}`,alt:s.title,loading:"lazy",decoding:"async"})}),t("div",{className:Le.videoTitleSection,children:[t("div",{className:ee.titleContainer,children:[t("h1",{children:s.title}),t("div",{className:g.meta,children:[t("span",{className:g.year,children:s.year}),s.vote_average!=null&&s.vote_average>0&&t("span",{className:g.rating,children:[t(ie,{name:"star",size:12}),Number(s.vote_average).toFixed(1)]}),t("span",{className:`${g.typeBadge} ${g[f?"movie":"tv"]}`,children:f?"Movie":"TV Show"})]}),As.length>0&&t("div",{className:g.genreRow,children:As.map(e=>t("span",{className:g.genreChip,children:e},e))}),Qn.length>0&&t("div",{className:g.metaRow,children:Qn.map((e,n)=>t("span",{children:[e,n<Qn.length-1?" · ":""]},`${e}-${n}`))})]}),t("div",{className:ee.controls,children:[t("button",{className:`${ee.watchlistBtn} ${zt?ee.inList:""}`,onClick:Gs,disabled:js,type:"button",children:[zt?t(ie,{name:"check",size:14}):t(ie,{name:"plus",size:14}),zt?"In Watchlist":"Add to Watchlist"]}),!f&&t(Ue,{children:[t("button",{className:`${ee.episodeNavBtn} ${ee.secondary}`,onClick:()=>Rn!=null&&Tt(String(Rn)),disabled:c||Rn==null,type:"button",children:[t(ie,{name:"chevron-left",size:14}),"Prev EP"]}),t("button",{className:`${ee.episodeNavBtn} ${ee.primary}`,onClick:()=>P!=null&&Tt(String(P)),disabled:c||P==null,type:"button",children:["Next EP",t(ie,{name:"chevron-right",size:14})]}),!f&&t("button",{className:`${ee.watchlistBtn} ${ee.modeToggleBtn} ${kt?ee.modeToggleActive:""}`,onClick:()=>cr(!kt),type:"button","aria-pressed":kt,children:kt?"AUTOPLAY: ON":"AUTOPLAY: OFF"}),ir&&t("button",{className:`${ee.watchlistBtn}`,onClick:()=>Dn(!0),type:"button",children:[t(ie,{name:"list-ul",size:14}),"Episodes"]}),t("button",{className:`${ee.watchlistBtn}`,onClick:()=>Ln.mutate({mediaId:j??"",season:u,episode:S}),disabled:Ln.isPending,type:"button",children:[t(ie,{name:"undo",size:14}),Ln.isPending?"Resetting...":"Reset Progress"]})]})]})]})]}),t("div",{className:Le.infoColumns,children:[t("div",{className:`${ee.descriptionSection} ${ee.synopsisFlat}`,children:[t("h3",{children:"Synopsis"}),t(xo,{text:s.overview,emptyText:"No description available."}),t("button",{className:ee.detailsToggleBtn,onClick:()=>er(!cn),type:"button",children:[cn?t(ie,{name:"chevron-up"}):t(ie,{name:"chevron-down"}),cn?"Hide Details":"Show Details"]})]}),cn&&t("div",{className:g.detailGrid,children:[s.first_air_date&&t("div",{className:g.detailItem,children:[t("strong",{children:f?"Release Date":"First Air Date"}),t("span",{children:s.first_air_date})]}),s.last_air_date&&t("div",{className:g.detailItem,children:[t("strong",{children:"Last Air Date"}),t("span",{children:s.last_air_date})]}),s.networks&&s.networks.length>0&&t("div",{className:g.detailItem,children:[t("strong",{children:"Networks"}),t("span",{children:s.networks.map(e=>e.name).join(", ")})]}),s.created_by&&s.created_by.length>0&&t("div",{className:g.detailItem,children:[t("strong",{children:"Created By"}),t("span",{children:s.created_by.map(e=>e.name).join(", ")})]}),s.episode_run_time&&s.episode_run_time.length>0&&t("div",{className:g.detailItem,children:[t("strong",{children:"Episode Runtime"}),t("span",{children:[s.episode_run_time[0]," min"]})]}),s.imdb_id&&t("div",{className:g.detailItem,children:[t("strong",{children:"IMDb"}),t("a",{href:`https://www.imdb.com/title/${s.imdb_id}`,target:"_blank",rel:"noopener noreferrer",className:g.imdbLink,children:"View on IMDb"})]})]})]})]}),!f&&t(co,{isOpen:tr,onClose:()=>Dn(!1),episodes:Is,currentEpisode:String(S),watchedEpisodes:ws,onEpisodeClick:Tt,header:vn}),s?.adult&&!Ot&&t(go,{isOpen:!0,onClose:Gn,onGrant:Ys}),t(uo,{isOpen:!d&&je&&!Bn&&an.current===`${j}:${u}:${S}`&&Qe?.completed!==1&&!Qt(Ae,Qe?.duration??0),onClose:Ts,title:"Resume Watching",message:t(Ue,{children:["You were at ",t("strong",{children:jt(_t)})]}),restartLabel:"Start from Beginning",onResume:gr,onRestart:Ts}),t(Ms,{isOpen:mt,onClose:()=>ps(!0),title:ct?f?"Movie Completed!":"Show Completed!":"Episode Completed",heading:f?s?.title??"Movie":`S${u} E${S}`,message:ct?f?"You finished this movie!":"Congratulations! You finished all available episodes.":f?"You've already watched this movie. Resume where you left off or replay it.":"You've already watched this episode. Resume where you left off, replay it, or continue with the next episode.",children:[Ae>5&&t(ge,{variant:us?void 0:"secondary",onClick:Ss,children:`Resume ${jt(Ae)}`}),t(ge,{variant:"secondary",onClick:ys,children:"Replay"}),P!=null?t(ge,{onClick:Wn,children:["Watch EP ",P]}):G!=null?t(ge,{onClick:Hn,children:["Start Season ",G]}):ct?t(ge,{onClick:qn,disabled:Ke.isPending||Ye.isPending,children:Ke.isPending||Ye.isPending?"Saving...":"Move to Completed"}):null]}),t(Ms,{isOpen:ar,onClose:()=>ut(!1),title:f?"Movie Completed!":G!=null?"Season Complete!":"Show Completed!",heading:Js,message:f?"You finished this movie!":G!=null?`You finished Season ${u}.`:"Congratulations! You finished all available episodes.",children:G!=null?t(ge,{onClick:Hn,children:["Start Season ",G]}):t(Ue,{children:[t(ge,{onClick:()=>{ut(!1),Gn()},children:"Back to Details"}),t(ge,{onClick:qn,disabled:Ke.isPending||Ye.isPending,children:Ke.isPending||Ye.isPending?"Saving...":"Move to Completed"})]})}),!s&&t("div",{className:g.statusMsg,children:[t(ie,{name:"spinner",className:g.spinner})," Loading..."]})]})]})};export{Ei as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._controls_tar8a_1{display:flex;align-items:stretch;gap:1rem;flex-wrap:wrap;width:100%}._titleContainer_tar8a_9{display:flex;flex-direction:column;gap:.75rem}._scheduleInfo_tar8a_15{display:flex;gap:1rem;font-size:.95rem;color:var(--text-tertiary);align-items:center}._status_tar8a_23{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-light);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);padding:.35rem .85rem;border-radius:var(--radius-full);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}._nextEpisode_tar8a_35{background:#ffffff0d;color:var(--text-secondary);padding:.35rem .85rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;border:1px solid var(--glass-border)}._watchlistBtn_tar8a_45{background:#ffffff0d;color:var(--text-primary);border:1px solid rgba(255,255,255,.09);padding:.55rem 1.1rem;border-radius:var(--radius-full);font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:.5rem;font-size:.82rem;flex:0 1 auto;min-width:110px;justify-content:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);letter-spacing:.01em}._watchlistBtn_tar8a_45:hover{background:#ffffff1a;border-color:#fff3;transform:translateY(-1px);box-shadow:0 4px 12px #00000040}._watchlistBtn_tar8a_45._inList_tar8a_73{background:color-mix(in srgb,var(--color-success) 12%,transparent);border-color:color-mix(in srgb,var(--color-success) 35%,transparent);color:var(--color-success)}._watchlistBtn_tar8a_45._inList_tar8a_73:hover{background:color-mix(in srgb,var(--color-success) 18%,transparent);border-color:var(--color-success)}._queueBtn_tar8a_84{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent-light)}._queueBtn_tar8a_84:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent-lighter)}._queueActive_tar8a_96{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent-lighter)}._modeToggleBtn_tar8a_102{background:#ffffff0d;color:var(--text-primary);border-color:#ffffff1a;flex:0 1 auto}._modeToggleActive_tar8a_109{background:color-mix(in srgb,var(--color-info) 12%,transparent);border-color:color-mix(in srgb,var(--color-info) 45%,transparent);color:#dbeafe}._modeToggleActive_tar8a_109:hover{background:color-mix(in srgb,var(--color-info) 18%,transparent);border-color:color-mix(in srgb,var(--color-info) 65%,transparent)}._watchlistBtn_tar8a_45:disabled{opacity:.7;cursor:wait;transform:none}._watchlistBtn_tar8a_45:disabled:hover{transform:none}._markWatchedBtn_tar8a_130{background:color-mix(in srgb,var(--color-info) 8%,transparent);border-color:color-mix(in srgb,var(--color-info) 25%,transparent);color:#93c5fd;flex:0 1 auto;justify-content:center}._markWatchedBtn_tar8a_130:hover{background:color-mix(in srgb,var(--color-info) 14%,transparent);border-color:color-mix(in srgb,var(--color-info) 45%,transparent);color:#dbeafe}._markWatchedDone_tar8a_144{background:color-mix(in srgb,var(--color-success) 12%,transparent);border-color:color-mix(in srgb,var(--color-success) 35%,transparent);color:var(--color-success)}._markWatchedDone_tar8a_144:hover{background:color-mix(in srgb,var(--color-success) 18%,transparent);border-color:var(--color-success)}._streamPanel_tar8a_155{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;align-items:center;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:1rem 1.25rem;box-shadow:var(--glass-shadow)}._streamPanel_tar8a_155 ._desktopEpisodeActions_tar8a_169{flex:0 0 auto;align-self:center;margin:0}._streamPanel_tar8a_155 ._sourceLoader_tar8a_175{grid-column:1 / -1;animation:none}._streamPanel_tar8a_155>:last-child:not(:first-child){grid-column:1 / -1}._streamPanel_tar8a_155 select{max-width:320px}._episodeActions_tar8a_188{display:flex;flex-wrap:wrap;gap:.75rem;margin:.5rem 0 .25rem}._desktopEpisodeActions_tar8a_169{flex:1 1 320px;justify-content:flex-end;align-self:flex-end;margin:0}._mobileEpisodeActions_tar8a_202{margin:.5rem 0 .25rem}._episodeNavBtn_tar8a_206{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:.7rem 1rem;background:#ffffff0d;color:var(--text-primary);cursor:pointer;font-size:.9rem;font-weight:700;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}._episodeNavBtn_tar8a_206:hover:not(:disabled){border-color:var(--text-secondary);background:#ffffff14}._episodeNavBtn_tar8a_206:disabled{opacity:.5;cursor:not-allowed}._episodeNavBtn_tar8a_206._primary_tar8a_235{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);border-color:transparent;color:#fff}._episodeNavBtn_tar8a_206._primary_tar8a_235:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-light) 0%,var(--accent) 100%)}._episodeNavBtn_tar8a_206._secondary_tar8a_245{background:#ffffff0a}._episodePickerBtn_tar8a_249{display:none}._queueCountdown_tar8a_253{position:absolute;left:50%;bottom:1.5rem;transform:translate(-50%);z-index:75;padding:.7rem 1rem;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:#121216eb;color:#fff;font-weight:700;box-shadow:var(--glass-shadow)}._speedBoostBadge_tar8a_268{position:absolute;top:1.5rem;left:50%;transform:translate(-50%);z-index:75;display:flex;align-items:center;gap:.7rem;padding:.65rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:var(--radius-md);background:#121216eb;color:#f5f3ff;font-weight:800;letter-spacing:.06em;text-transform:none;box-shadow:var(--glass-shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}._speedBoostBadge_tar8a_268 span{line-height:1}._speedBoostBadge_tar8a_268 svg{display:block;flex-shrink:0}._videoContainer_tar8a_299{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;display:flex;justify-content:center;align-items:center;container-type:inline-size}._loadingOverlay_tar8a_312{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:10;background:#00000080;border-radius:inherit}._loadingDots_tar8a_326{display:flex;gap:10px}._dot_tar8a_331{width:12px;height:12px;border-radius:50%;background-color:var(--accent);animation:_bounce_tar8a_1 1.4s infinite ease-in-out both;box-shadow:0 0 10px var(--accent-glow)}._dot_tar8a_331:nth-child(1){animation-delay:-.32s}._dot_tar8a_331:nth-child(2){animation-delay:-.16s}._bufferingOverlay_tar8a_348{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:20}._bufferingSpinner_tar8a_357{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:var(--accent);animation:_spin_tar8a_444 1s ease-in-out infinite}._videoIframe_tar8a_366{width:100%;height:100%;border:none;position:absolute;top:0;left:0;object-fit:cover;border-radius:inherit}._videoContainer_tar8a_299 video{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;object-fit:contain;background-color:#000;border-radius:inherit}._videoContainer_tar8a_299 video._videoElementHidden_tar8a_389{opacity:0;pointer-events:none}._upscalerCanvas_tar8a_394{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;object-fit:contain;opacity:0;pointer-events:none;border-radius:inherit}._upscalerCanvas_tar8a_394._upscalerActive_tar8a_407{opacity:1}._upscalerStatusBadge_tar8a_411{position:absolute;top:12px;right:12px;z-index:4;background:#000000a6;color:var(--text-primary);font-size:.75rem;font-weight:600;padding:.35em .8em;border-radius:999px;border:1px solid var(--glass-border);pointer-events:none}._subtitleOverlay_tar8a_426{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:hidden;border-radius:inherit}._sourceLoader_tar8a_175{padding:.75rem;display:flex;justify-content:center}._spinner_tar8a_444{width:40px;height:40px;border:4px solid rgba(255,255,255,.1);border-left-color:var(--accent);border-radius:50%;animation:_spin_tar8a_444 1s linear infinite}@media(max-width:768px){._titleContainer_tar8a_9 h1{font-size:1.25rem}._episodeActions_tar8a_188{margin-top:.25rem}._controls_tar8a_1{gap:.5rem}._watchlistBtn_tar8a_45,._queueBtn_tar8a_84,._markWatchedBtn_tar8a_130,._modeToggleBtn_tar8a_102{flex:1 1 calc(50% - .25rem);min-width:0;padding:.5rem .75rem;font-size:.78rem;gap:.4rem}._episodeNavBtn_tar8a_206{flex:1 1 calc(50% - .25rem);min-width:0;padding:.45rem .75rem;font-size:.8rem;min-height:44px}._episodePickerBtn_tar8a_249{display:inline-flex;flex-basis:100%;padding:.4rem .75rem;font-size:.78rem;min-height:44px}._desktopEpisodeActions_tar8a_169{display:none}._mobileEpisodeActions_tar8a_202{display:flex}._streamPanel_tar8a_155{grid-template-columns:minmax(0,1fr)}._errorOverlay_tar8a_505{padding:1rem;gap:.5rem;overflow-y:auto}._errorOverlay_tar8a_505 p{font-size:1rem}._retryButton_tar8a_515{padding:.5rem 1.25rem;font-size:.9rem;margin-top:0}}@media(min-width:769px){._mobileEpisodeActions_tar8a_202{display:none}}._detailsToggleBtn_tar8a_528{background:transparent;border:1px solid var(--border-accent);color:var(--accent-light);padding:.5rem .9rem;border-radius:var(--radius-full);cursor:pointer;font-size:.85rem;font-weight:700;transition:all var(--transition-fast);display:flex;align-items:center;gap:.4rem;margin-top:1rem;width:fit-content}._detailsToggleBtn_tar8a_528:hover{background:var(--accent-subtle);color:var(--accent-lighter);border-color:var(--accent)}._descriptionSection_tar8a_551{margin-top:1.75rem;padding:1.5rem;background:#ffffff05;border-radius:var(--radius-lg);border:1px solid var(--glass-border)}._descriptionSection_tar8a_551._synopsisFlat_tar8a_559{margin-top:0;padding:0;background:none;border:0;border-radius:0;min-width:0}._synopsisFlat_tar8a_559 p{max-width:80ch}._descriptionSection_tar8a_551 h3{font-size:.95rem;font-weight:800;margin-bottom:.85rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.75rem}._descriptionSection_tar8a_551 h3:before{content:"";width:4px;height:16px;background:var(--accent);border-radius:var(--radius-full);box-shadow:0 0 10px var(--accent-glow)}._videoContainer_tar8a_299._fullscreenActive_tar8a_593{border-radius:0}._videoContainer_tar8a_299:fullscreen,._videoContainer_tar8a_299:-webkit-full-screen{width:100vw;height:100vh;border-radius:0}._videoContainer_tar8a_299:fullscreen video,._videoContainer_tar8a_299:fullscreen canvas,._videoContainer_tar8a_299:-webkit-full-screen video,._videoContainer_tar8a_299:-webkit-full-screen canvas{border-radius:0}._errorOverlay_tar8a_505{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#000c;color:#fff;z-index:30;padding:2rem;text-align:center;gap:1rem;border-radius:inherit}._errorOverlay_tar8a_505 p{margin:0;font-size:1.2rem;font-weight:500}._errorSubtext_tar8a_636{color:var(--text-tertiary)!important;font-size:.9rem!important}._retryButton_tar8a_515{background:var(--accent);color:var(--accent-text);border:none;padding:.6rem 2rem;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s;margin-top:.5rem;box-shadow:0 4px 12px var(--accent-glow)}._retryButton_tar8a_515:hover{background:var(--accent-light);transform:translateY(-2px)}._watchedOverlay_tar8a_659{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;text-align:center;color:var(--text-primary);background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),#000;border-radius:inherit}._watchedTitle_tar8a_681{margin:0;font-size:1.2rem;font-weight:700}._watchedSubtext_tar8a_687{margin:0;color:var(--text-secondary);font-size:.9rem}._watchedActions_tar8a_693{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin-top:.5rem;width:100%;max-width:560px}._watchedActions_tar8a_693>:first-child{justify-self:end}._watchedActions_tar8a_693>:last-child{justify-self:start}._watchedActionsCentered_tar8a_711{display:flex;flex-wrap:wrap;justify-content:center}._watchedActionsCentered_tar8a_711>div{display:contents}@media(max-width:480px){._watchedActions_tar8a_693{display:flex;flex-wrap:wrap;justify-content:center}._watchedActions_tar8a_693>div{display:contents}}._playerPageLayout_1rxx0_1{display:grid;grid-template-columns:320px 1fr;gap:2.5rem;padding:2rem;width:100%;max-width:1800px;margin:0 auto;align-items:start;min-height:calc(100vh - var(--header-height));background-color:transparent;animation:_fadeIn_1rxx0_1 .8s var(--ease-smooth)}._playerPageLayout_1rxx0_1._noSidebar_1rxx0_15{grid-template-columns:minmax(0,1fr)}._episodeSidebar_1rxx0_19{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:visible;display:flex;flex-direction:column;box-shadow:var(--glass-shadow);animation:_slideUpIn_1rxx0_1 .8s var(--ease-smooth)}._playerMain_1rxx0_32{min-width:0;display:flex;flex-direction:column;gap:1.25rem;animation:_slideUpIn_1rxx0_1 .8s .1s var(--ease-smooth) both}._videoPlayerWrapper_1rxx0_40{width:100%;padding-top:56.25%;background-color:#000;border-radius:0;overflow:clip;isolation:isolate;position:relative;box-shadow:0 20px 50px #00000080;border:1px solid var(--glass-border)}._playerInfoHeader_1rxx0_56{display:flex;gap:2rem;align-items:flex-start}._playerAnimeCard_1rxx0_62{width:160px;flex-shrink:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xl);border:1px solid var(--glass-border);transform:translateZ(0);aspect-ratio:2/3;height:auto}._playerInfoContainer_1rxx0_74{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:2rem;border-radius:var(--radius-2xl);box-shadow:var(--glass-shadow);display:flex;flex-direction:column;position:relative;overflow:hidden}._playerInfoContainer_1rxx0_74:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--accent) 40%,transparent) 50%,transparent 100%);pointer-events:none}._infoColumns_1rxx0_104{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem 2.5rem;border-top:1px solid var(--border-primary);padding-top:1.5rem;margin-top:1.5rem}@media(min-width:1100px){._infoColumns_1rxx0_104:has(>:last-child:not(:first-child)){grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);align-items:start}}._playerAnimeCard_1rxx0_62 img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .4s ease}._playerAnimeCard_1rxx0_62:hover img{transform:scale(1.1)}._videoTitleSection_1rxx0_134{flex:1;display:flex;flex-direction:column;justify-content:flex-start;gap:1.25rem}._videoTitleSection_1rxx0_134 h1{margin:0;font-size:2.25rem;line-height:1.1;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}@keyframes _fadeIn_1rxx0_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUpIn_1rxx0_1{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1280px){._playerPageLayout_1rxx0_1{grid-template-columns:280px 1fr;padding:1.5rem;gap:1.5rem}}@media(max-width:1024px){._playerPageLayout_1rxx0_1{display:flex;flex-direction:column;gap:2rem}._episodeSidebar_1rxx0_19{width:100%;height:auto;max-height:500px;position:static;order:2;overflow-y:auto;-webkit-overflow-scrolling:touch}._playerMain_1rxx0_32{order:1;width:100%}._playerInfoHeader_1rxx0_56{padding:0}}@media(max-width:768px){._playerPageLayout_1rxx0_1{padding:1rem;gap:1.5rem}._episodeSidebar_1rxx0_19{display:none}._playerMain_1rxx0_32{gap:1.5rem}._videoPlayerWrapper_1rxx0_40{border-radius:0}._playerInfoContainer_1rxx0_74{border-radius:var(--radius-xl);padding:1.5rem}._playerInfoHeader_1rxx0_56{flex-direction:row;align-items:flex-start;text-align:left;gap:1.5rem}._videoTitleSection_1rxx0_134 h1{font-size:1.75rem}._playerAnimeCard_1rxx0_62{width:100px}}@media(max-width:480px){._playerInfoHeader_1rxx0_56{flex-direction:column;align-items:center;text-align:center}._playerAnimeCard_1rxx0_62{width:120px}}@media(max-width:480px)and (orientation:portrait){._videoPlayerWrapper_1rxx0_40{padding-top:100%;position:relative}}@media(min-width:481px)and (max-width:768px)and (orientation:portrait){._videoPlayerWrapper_1rxx0_40{padding-top:75%;position:relative}}@media(max-width:900px)and (orientation:landscape){._playerPageLayout_1rxx0_1{padding:0;gap:0}._videoPlayerWrapper_1rxx0_40{border-radius:0;height:100vh;padding-top:0}._playerInfoContainer_1rxx0_74{padding:1.5rem}}body.low-end ._playerPageLayout_1rxx0_1,body.low-end ._episodeSidebar_1rxx0_19,body.low-end ._playerInfoContainer_1rxx0_74{animation:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;background:var(--bg-secondary)!important}body.low-end ._videoPlayerWrapper_1rxx0_40{box-shadow:none!important;border-color:var(--border-primary)!important}body.low-end ._episodeSidebar_1rxx0_19{background:var(--bg-secondary)!important}._theaterMode_1rxx0_308{display:flex!important;justify-content:center!important;align-items:center!important;position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;min-height:100vh!important;max-width:none!important;padding:2.5rem!important;margin:0!important;background-color:var(--bg-main)!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;animation:_fadeIn_1rxx0_1 .4s var(--ease-smooth)!important;overflow:hidden!important;z-index:var(--z-overlay)!important}._theaterMode_1rxx0_308 ._playerMain_1rxx0_32{width:90%!important;max-width:1200px!important;height:auto!important;aspect-ratio:16/9!important;gap:0!important;margin:auto!important;padding:0!important;animation:_scaleUpIn_1rxx0_1 .4s cubic-bezier(.25,1,.5,1)!important;position:relative!important;z-index:1!important}._theaterMode_1rxx0_308 ._videoPlayerWrapper_1rxx0_40{width:100%!important;height:100%!important;padding-top:0!important;border-radius:0!important;border-color:#ffffff26!important;box-shadow:0 20px 60px color-mix(in srgb,var(--accent) 15%,transparent),0 0 100px #000000e6!important;overflow:hidden!important;position:relative!important}@keyframes _scaleUpIn_1rxx0_1{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}body.theater-mode header,body.theater-mode footer{display:none!important}body.theater-mode main{padding:0!important;max-width:none!important;margin:0!important;width:100vw!important;height:100vh!important}body.theater-mode{overflow:hidden!important;background:#000!important}@media(max-width:768px){._theaterMode_1rxx0_308{padding:1rem!important}._theaterMode_1rxx0_308 ._playerMain_1rxx0_32{width:100%!important;max-width:none!important}}._centerControls_1oa5h_1{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(1);display:flex;align-items:center;gap:clamp(1rem,3cqw,2rem);z-index:10;pointer-events:auto;transition:transform .4s cubic-bezier(.2,.8,.2,1)}._centerSkipBtn_1oa5h_14,._centerPlayPause_1oa5h_15{display:flex;align-items:center;justify-content:center;padding:0;background:#0f0f112e;border:none;border-radius:50%;color:#ffffffe6;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .15s ease}._centerSkipBtn_1oa5h_14>svg,._centerPlayPause_1oa5h_15>svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.9)) drop-shadow(0 2px 4px rgba(0,0,0,.45))}._centerSkipBtn_1oa5h_14{width:clamp(3rem,6.5cqw,3.5rem);height:clamp(3rem,6.5cqw,3.5rem);font-size:clamp(1.4rem,2.8cqw,1.625rem)}._centerPlayPause_1oa5h_15{background:#0f0f113d;color:#fff;width:clamp(3.5rem,8cqw,4.75rem);height:clamp(3.5rem,8cqw,4.75rem);font-size:clamp(1.5rem,3.4cqw,1.875rem)}@media(hover:hover){._centerSkipBtn_1oa5h_14:hover:enabled{background:#0f0f1142;color:#fff}._centerPlayPause_1oa5h_15:hover:enabled{background:#0f0f1152}}._centerSkipBtn_1oa5h_14:active:enabled,._centerPlayPause_1oa5h_15:active:enabled{transform:scale(.96)}._centerSkipBtn_1oa5h_14:focus-visible,._centerPlayPause_1oa5h_15:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}._centerSkipBtn_1oa5h_14:disabled,._centerPlayPause_1oa5h_15:disabled{color:#ffffff73;cursor:default}@media(prefers-reduced-motion:reduce){._centerControls_1oa5h_1,._centerSkipBtn_1oa5h_14,._centerPlayPause_1oa5h_15{transition:none}._centerSkipBtn_1oa5h_14:active,._centerPlayPause_1oa5h_15:active{transform:none}}._statusArea_1xccu_1{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;background:var(--bg-secondary);border:1px solid var(--border-primary);padding:.75rem 1.25rem;border-radius:var(--radius-lg);margin-top:.5rem;margin-bottom:0;color:var(--text-secondary);box-shadow:var(--shadow-lg);width:fit-content;max-width:100%;-webkit-user-select:none;user-select:none;flex-wrap:wrap}._toggleBtn_1xccu_20{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--text-secondary);font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;padding:.15rem .25rem;border-radius:var(--radius-sm);transition:color var(--transition-fast);pointer-events:auto}._toggleBtn_1xccu_20:hover{color:var(--text-primary)}._toggleBtn_1xccu_20 svg{color:var(--accent)}._shortcuts_1xccu_46{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;padding-top:.6rem;border-top:1px solid var(--border-primary);width:100%}._shortcutGroup_1xccu_56{display:flex;gap:1rem;align-items:center;flex-wrap:nowrap}._shortcut_1xccu_46{display:flex;align-items:center;gap:.3rem;white-space:nowrap}._key_1xccu_70{background:#ffffff14;padding:.15rem .4rem;border-radius:5px;border:1px solid rgba(255,255,255,.1);font-weight:800;color:var(--text-primary);font-size:.75rem;min-width:1.4rem;height:1.4rem;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);box-shadow:0 1.5px #0000004d}._key_1xccu_70+._key_1xccu_70{margin-left:-.15rem}._label_1xccu_91{color:var(--text-tertiary);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}@media(max-width:768px){._statusArea_1xccu_1{display:none}}._episodeListContainer_11isr_1{display:flex;flex-direction:column;height:100%;min-height:0;background:transparent}._drawerContainer_11isr_9{height:auto;min-height:100%}._episodeListHeader_11isr_14{background:transparent;padding:var(--space-6);border-bottom:1px solid var(--glass-border)}._drawerHeader_11isr_20{position:sticky;top:0;z-index:5;background:#0c0c0ffa;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}._episodeListTitle_11isr_29{margin:0 0 var(--space-5) 0;font-size:.85rem;font-weight:800;color:var(--text-tertiary);display:flex;align-items:center;gap:var(--space-3);letter-spacing:.1em;text-transform:uppercase}._rangeSelector_11isr_41{display:flex;flex-wrap:wrap;gap:var(--space-2)}._rangeButton_11isr_47{background:#ffffff0a;border:1px solid var(--border-primary);color:var(--text-secondary);padding:.35rem .65rem;border-radius:var(--radius-full);font-size:.76rem;font-weight:600;transition:all var(--transition-fast);cursor:pointer}._rangeButton_11isr_47:hover{border-color:#ffffff40;color:var(--text-primary);background:#ffffff14}._rangeButton_11isr_47:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._rangeButton_11isr_47._active_11isr_70{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent-light);border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 0 8px var(--accent-glow)}._episodeList_11isr_1{flex:1;display:flex;flex-direction:column;padding:var(--space-4);overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}._drawerList_11isr_90{overflow:visible;-webkit-overflow-scrolling:auto;touch-action:pan-y}._episodeList_11isr_1::-webkit-scrollbar{width:6px}._episodeList_11isr_1::-webkit-scrollbar-track{background:transparent}._episodeList_11isr_1::-webkit-scrollbar-thumb{background:#ffffff24;background-clip:padding-box;border-radius:var(--radius-full);border:2px solid transparent}._episodeList_11isr_1:hover::-webkit-scrollbar-thumb{background-color:#ffffff47}._episodeList_11isr_1::-webkit-scrollbar-thumb:hover{background-color:var(--accent)}._episodeItem_11isr_119{padding:var(--space-3) var(--space-4);margin-bottom:6px;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);font-weight:600;display:flex;justify-content:space-between;align-items:center;font-size:.88rem;border:1px solid transparent;background:#ffffff05}._episodeItem_11isr_119:hover{background:#ffffff12;color:var(--text-primary);transform:translate(4px);border-color:#ffffff1f}._episodeItem_11isr_119:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._episodeItem_11isr_119._watched_11isr_147{color:var(--text-muted);opacity:.55}._episodeItem_11isr_119._watched_11isr_147:hover{opacity:.85}._episodeItem_11isr_119._active_11isr_70{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent-light);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);box-shadow:0 2px 10px var(--accent-glow)}._episodeItem_11isr_119._active_11isr_70:hover{transform:none;background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}._episodeItem_11isr_119 span{display:flex;align-items:center;gap:var(--space-3)}._episodeThumb_11isr_175{width:76px;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;background:var(--bg-tertiary);border:1px solid rgba(255,255,255,.08)}._episodeText_11isr_185{flex-direction:column!important;align-items:flex-start!important;gap:2px!important;min-width:0;flex:1}._episodeLabel_11isr_193{font-weight:700;color:inherit}._episodeSub_11isr_198{font-size:.78rem;font-weight:500;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}._shell_cys6s_1{position:fixed;inset:0;z-index:var(--z-drawer);display:flex;align-items:flex-end;justify-content:center}._overlay_cys6s_10{position:absolute;inset:0;border:0;padding:0;background:#0000008f;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:_fadeIn_cys6s_1 .2s ease-out}._drawer_cys6s_21{position:relative;z-index:1;width:min(100vw,100%);max-height:86vh;background:#0c0c0ffa;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border:1px solid var(--glass-border);border-bottom:none;display:flex;flex-direction:column;overflow:hidden;animation:_slideUpIn_cys6s_1 .25s ease-out}@keyframes _fadeIn_cys6s_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUpIn_cys6s_1{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}._handle_cys6s_56{width:52px;height:5px;border-radius:999px;background:#ffffff2e;margin:.7rem auto 0}._header_cys6s_64{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1rem .9rem;border-bottom:1px solid var(--glass-border)}._headerCopy_cys6s_73{display:flex;flex-direction:column;gap:.25rem}._kicker_cys6s_79{color:var(--text-tertiary);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em}._title_cys6s_87{margin:0;font-size:1.1rem;font-weight:800;color:var(--text-primary)}._closeBtn_cys6s_94{width:38px;height:38px;border-radius:999px;border:1px solid var(--glass-border);background:#ffffff0d;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}._closeBtn_cys6s_94:hover{background:#ffffff1a}._closeBtn_cys6s_94:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._body_cys6s_116{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}._sourceSelectionContainer_g7xev_1{display:flex;flex-direction:column;gap:1rem;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:1.25rem 1.5rem;border-radius:var(--radius-xl);width:100%}._providerSelectContainer_g7xev_14{display:flex;flex-direction:column;gap:.6rem;width:100%}._providerSelect_g7xev_14,._sourceSelect_g7xev_1{height:40px;padding:0 1rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;font-family:inherit;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2371717a' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;transition:all var(--transition-fast);width:100%;max-width:400px}._providerSelect_g7xev_14:hover,._sourceSelect_g7xev_1:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._providerSelect_g7xev_14:focus,._sourceSelect_g7xev_1:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}._providerSelect_g7xev_14 option,._sourceSelect_g7xev_1 option{background:var(--bg-tertiary);color:var(--text-primary)}._sourceSelectionContainer_g7xev_1 h4,._providerSelectContainer_g7xev_14 h4{margin:0;color:var(--text-tertiary);font-weight:700;text-transform:uppercase;font-size:.7rem;letter-spacing:.1em}._sourceButtons_g7xev_70{display:flex;flex-wrap:wrap;gap:.5rem}._sourceButton_g7xev_70{background:#ffffff0a;color:var(--text-secondary);border:1px solid var(--glass-border);padding:.55rem 1.1rem;border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;font-weight:600;transition:all var(--transition-fast)}._sourceButton_g7xev_70:hover{background:#ffffff17;border-color:#ffffff4d;color:var(--text-primary);transform:translateY(-1px)}._sourceButton_g7xev_70._active_g7xev_95{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--accent-lighter);box-shadow:0 2px 12px var(--accent-glow)}._theaterAmbient_x9t0o_1{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;transform:scale(1.15)!important;pointer-events:none!important;z-index:0!important}body.low-end ._theaterAmbient_x9t0o_1{display:none!important}._row_1fq55_1{display:flex;flex-direction:column;gap:.3rem;padding:.5rem .75rem .6rem;min-width:0}._rowHeader_1fq55_9{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;min-width:0}._rowLabel_1fq55_17{font-size:.68rem;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._rowValue_1fq55_28{font-size:.72rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}._slider_1fq55_36{width:100%;min-width:8rem;cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent;height:1.375rem;margin:0;touch-action:pan-y}._slider_1fq55_36::-webkit-slider-runnable-track{width:100%;height:4px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--slider-percent, 0%),rgba(255,255,255,.25) var(--slider-percent, 0%),rgba(255,255,255,.25) 100%);border-radius:4px;border:none}._slider_1fq55_36::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;background-color:#fff;border:2px solid var(--accent);border-radius:50%;cursor:pointer;margin-top:-4px;box-shadow:0 0 8px #00000080}._slider_1fq55_36::-moz-range-track{width:100%;height:4px;background:#ffffff40;border-radius:4px;border:none}._slider_1fq55_36::-moz-range-progress{height:4px;background:var(--accent);border-radius:4px}._slider_1fq55_36::-moz-range-thumb{width:10px;height:10px;background-color:#fff;border:2px solid var(--accent);border-radius:50%;cursor:pointer;box-shadow:0 0 8px #00000080}._swatches_1fq55_99{display:flex;gap:.375rem;align-items:center}._swatch_1fq55_99{width:1.25rem;height:1.25rem;padding:0;border-radius:50%;cursor:pointer;flex:0 0 auto}._swatchPicked_1fq55_114{box-shadow:0 0 0 2px var(--panel-bg, #141416),0 0 0 3.5px var(--accent)}._colorInput_1fq55_120{width:1.75rem;height:1.25rem;padding:0;border:none;border-radius:.3rem;background:transparent;cursor:pointer;flex:0 0 auto}._segmented_1fq55_131{display:flex;gap:.25rem;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:.2rem}._segmented_1fq55_131 button{flex:1 1 0;min-width:0;background:transparent;border:none;border-radius:calc(var(--radius-sm) - 2px);color:var(--text-secondary);font-size:.72rem;font-weight:700;text-transform:capitalize;padding:.3rem .25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.3rem;white-space:nowrap}._segmented_1fq55_131 button:hover{color:var(--text-primary)}._segmented_1fq55_131 button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent-light)}@media(pointer:coarse){._row_1fq55_1{gap:.4rem;padding:.6rem .85rem .7rem}._slider_1fq55_36{height:1.875rem}._slider_1fq55_36::-webkit-slider-thumb{width:16px;height:16px;margin-top:-6px}._slider_1fq55_36::-moz-range-thumb{width:14px;height:14px}._swatch_1fq55_99{width:1.5rem;height:1.5rem}._segmented_1fq55_131 button{padding:.5rem .25rem;min-height:2.5rem}}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{u as t,A as C,q as A,h as F,d as P,T as te,$ as ct}from"./vendor-core-DfaOB3Rn.js";import{p as M,al as lt,Q as He,B as X,a3 as ae,o as dt,am as Re,q as U,ac as ut,t as pt,h as ht,a6 as ft,an as Fe,ao as mt}from"./index-BYGDqzEf.js";import{I as j}from"./vendor-icons-DrybRNxP.js";import{S as De,a as yt,s as G,f as We,m as _t,h as gt,d as bt,k as vt,u as St,n as ie}from"./PlayerProvider-DGtOX3e2.js";import{u as wt}from"./vendor-query-BBT5_sHx.js";import{i as ce,d as Ct}from"./playbackCompletion-DrDOXJXe.js";const kt="_controls_tar8a_1",xt="_titleContainer_tar8a_9",Tt="_scheduleInfo_tar8a_15",Nt="_status_tar8a_23",Lt="_nextEpisode_tar8a_35",Pt="_watchlistBtn_tar8a_45",Bt="_inList_tar8a_73",At="_queueBtn_tar8a_84",Et="_queueActive_tar8a_96",$t="_modeToggleBtn_tar8a_102",It="_modeToggleActive_tar8a_109",Mt="_markWatchedBtn_tar8a_130",Rt="_markWatchedDone_tar8a_144",Ft="_streamPanel_tar8a_155",Dt="_desktopEpisodeActions_tar8a_169",Ot="_sourceLoader_tar8a_175",qt="_episodeActions_tar8a_188",Ht="_mobileEpisodeActions_tar8a_202",Wt="_episodeNavBtn_tar8a_206",zt="_primary_tar8a_235",Vt="_secondary_tar8a_245",Kt="_episodePickerBtn_tar8a_249",Ut="_queueCountdown_tar8a_253",Qt="_speedBoostBadge_tar8a_268",Gt="_videoContainer_tar8a_299",jt="_loadingOverlay_tar8a_312",Yt="_loadingDots_tar8a_326",Xt="_dot_tar8a_331",Jt="_bounce_tar8a_1",Zt="_bufferingOverlay_tar8a_348",er="_bufferingSpinner_tar8a_357",tr="_spin_tar8a_444",rr="_videoIframe_tar8a_366",nr="_videoElementHidden_tar8a_389",ar="_upscalerCanvas_tar8a_394",sr="_upscalerActive_tar8a_407",or="_upscalerStatusBadge_tar8a_411",ir="_subtitleOverlay_tar8a_426",cr="_spinner_tar8a_444",lr="_errorOverlay_tar8a_505",dr="_retryButton_tar8a_515",ur="_detailsToggleBtn_tar8a_528",pr="_descriptionSection_tar8a_551",hr="_synopsisFlat_tar8a_559",fr="_fullscreenActive_tar8a_593",mr="_errorSubtext_tar8a_636",yr="_watchedOverlay_tar8a_659",_r="_watchedTitle_tar8a_681",gr="_watchedSubtext_tar8a_687",br="_watchedActions_tar8a_693",vr="_watchedActionsCentered_tar8a_711",ea={controls:kt,titleContainer:xt,scheduleInfo:Tt,status:Nt,nextEpisode:Lt,watchlistBtn:Pt,inList:Bt,queueBtn:At,queueActive:Et,modeToggleBtn:$t,modeToggleActive:It,markWatchedBtn:Mt,markWatchedDone:Rt,streamPanel:Ft,desktopEpisodeActions:Dt,sourceLoader:Ot,episodeActions:qt,mobileEpisodeActions:Ht,episodeNavBtn:Wt,primary:zt,secondary:Vt,episodePickerBtn:Kt,queueCountdown:Ut,speedBoostBadge:Qt,videoContainer:Gt,loadingOverlay:jt,loadingDots:Yt,dot:Xt,bounce:Jt,bufferingOverlay:Zt,bufferingSpinner:er,spin:tr,videoIframe:rr,videoElementHidden:nr,upscalerCanvas:ar,upscalerActive:sr,upscalerStatusBadge:or,subtitleOverlay:ir,spinner:cr,errorOverlay:lr,retryButton:dr,detailsToggleBtn:ur,descriptionSection:pr,synopsisFlat:hr,fullscreenActive:fr,errorSubtext:mr,watchedOverlay:yr,watchedTitle:_r,watchedSubtext:gr,watchedActions:br,watchedActionsCentered:vr},Sr="_playerPageLayout_1rxx0_1",wr="_noSidebar_1rxx0_15",Cr="_episodeSidebar_1rxx0_19",kr="_playerMain_1rxx0_32",xr="_videoPlayerWrapper_1rxx0_40",Tr="_playerInfoHeader_1rxx0_56",Nr="_playerAnimeCard_1rxx0_62",Lr="_playerInfoContainer_1rxx0_74",Pr="_infoColumns_1rxx0_104",Br="_videoTitleSection_1rxx0_134",Ar="_theaterMode_1rxx0_308",ta={playerPageLayout:Sr,noSidebar:wr,episodeSidebar:Cr,playerMain:kr,videoPlayerWrapper:xr,playerInfoHeader:Tr,playerAnimeCard:Nr,playerInfoContainer:Lr,infoColumns:Pr,videoTitleSection:Br,theaterMode:Ar},Er={fontSize:"subtitleFontSize",position:"subtitlePosition",bgOpacity:"subtitleBgOpacity",bgColor:"subtitleBgColor",textColor:"subtitleTextColor",edge:"subtitleEdge",bold:"subtitleBold"},Q={fontSize:1.8,position:0,bgOpacity:.5,bgColor:"#000000",textColor:"#ffffff",edge:"shadow",bold:!1},he=(e,r,a)=>Math.max(r,Math.min(a,e)),fe=e=>typeof e=="string"&&/^#[0-9a-fA-F]{6}$/.test(e),le=(e,r,a,o)=>{try{const n=M.getItem(e);if(n===null)return r;const i=parseFloat(n);return Number.isFinite(i)?he(i,a,o):r}catch{return r}};function $r(){let e=Q.edge,r=Q.bgColor,a=Q.textColor,o=Q.bold;try{const n=M.getItem("subtitleEdge");(n==="shadow"||n==="outline"||n==="none")&&(e=n);const i=M.getItem("subtitleBgColor");fe(i)&&(r=i);const c=M.getItem("subtitleTextColor");fe(c)&&(a=c);const p=M.getItem("subtitleBold");p!==null&&(o=p==="true")}catch{}return{fontSize:le("subtitleFontSize",Q.fontSize,.5,10),position:le("subtitlePosition",Q.position,0,100),bgOpacity:le("subtitleBgOpacity",Q.bgOpacity,0,1),bgColor:r,textColor:a,edge:e,bold:o}}function ze(e,r){const a=`rgba(0, 0, 0, ${he(r,0,1)})`;if(!fe(e))return a;const o=parseInt(e.slice(1,3),16),n=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16);return`rgba(${o}, ${n}, ${i}, ${he(r,0,1)})`}function Ve(e,r){return e==="none"?r<=0?"0 1px 3px rgba(0, 0, 0, 0.9)":"none":e==="outline"?["-1px 0 0 black","1px 0 0 black","0 -1px 0 black","0 1px 0 black","-1px -1px 0 black","1px -1px 0 black","-1px 1px 0 black","1px 1px 0 black","0 0 6px rgba(0, 0, 0, 0.9)"].join(", "):"0 0 4px black, 0 1px 2px rgba(0, 0, 0, 0.8)"}function ra(e){return`
|
|
2
|
-
video::cue {
|
|
3
|
-
font-size: ${e.fontSize}rem !important;
|
|
4
|
-
color: ${e.textColor} !important;
|
|
5
|
-
background-color: ${ze(e.bgColor,e.bgOpacity)} !important;
|
|
6
|
-
font-weight: ${e.bold?"bold":"normal"} !important;
|
|
7
|
-
text-shadow: ${Ve(e.edge,e.bgOpacity)} !important;
|
|
8
|
-
}
|
|
9
|
-
`}function na(e){return[`font-size: ${e.fontSize}rem`,`color: ${e.textColor}`,`background-color: ${ze(e.bgColor,e.bgOpacity)}`,`font-weight: ${e.bold?"700":"400"}`,`text-shadow: ${Ve(e.edge,e.bgOpacity)}`,"padding: 0.2em 0.5em","border-radius: 0.25em","text-align: center","position: absolute","left: 50%","transform: translateX(-50%)","max-width: 92%","white-space: pre-wrap","overflow-wrap: break-word","line-height: 1.4"].join(`;
|
|
10
|
-
`)+";"}const Ir=new Set(["b","i","u","strong","em"]);function aa(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/<(\/?)([a-zA-Z]+)>/g,(a,o,n)=>Ir.has(n.toLowerCase())?`<${o}${n.toLowerCase()}>`:a)}function sa(e){return e.replace(/<[^>]*>/g,"")}const oa=["#ffffff","#ffff00","#7CFC00","#00e5ff","#ff9ff3","#ffa502"],ia=["#000000","#1e272e","#2f3542","#3d0c02","#0c3d2e","#ffffff"];function ca(e,r){const a=Number.isFinite(e)?e*16:Q.fontSize*16;return!Number.isFinite(r)||r<=0?a/16:Math.min(a,Math.max(13,r*.07))/16}function la(e){const r=Math.abs(e/1e3).toFixed(1);return e>0?`+${r}s`:e<0?`-${r}s`:"0.0s"}function da(e,r){const a=e.clientWidth||0,o=e.clientHeight||0,n=e.videoWidth>0&&e.videoHeight>0?e.videoWidth/e.videoHeight:0;let i=o;n>0&&a>0&&o>0&&(i=a/o>n?o:a/n);const c=Math.max(0,(o-i)/2),p=Math.max(0,Math.min(100,Number(r)||0))/100*i;return c+p}const ua=({isOpen:e,onClose:r,title:a,heading:o,message:n,children:i})=>t(He,{isOpen:e,onClose:r,title:a,width:"sm",children:t("div",{style:{padding:"1rem",textAlign:"center"},children:[t("button",{type:"button",className:lt.closeButton,onClick:r,"aria-label":"Close",children:t(j,{name:"times",size:16})}),t(j,{name:"check-circle",size:48,style:{color:"var(--accent-lighter)",marginBottom:"0.5rem"}}),t("p",{style:{fontSize:"1.1rem",fontWeight:600},children:o}),t("p",{style:{color:"var(--text-secondary)"},children:n}),i&&t("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center",flexWrap:"wrap"},children:i})]})}),pa=({isOpen:e,onClose:r,title:a,message:o,resumeLabel:n="Resume",restartLabel:i="Start Over",onResume:c,onRestart:p})=>t(He,{isOpen:e,onClose:r,title:a,width:"sm",children:t("div",{style:{padding:"1rem",textAlign:"center"},children:[t("p",{children:o}),t("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[t(X,{variant:"secondary",onClick:p,children:i}),t(X,{onClick:c,children:n})]})]})}),Mr="_centerControls_1oa5h_1",Rr="_centerSkipBtn_1oa5h_14",Fr="_centerPlayPause_1oa5h_15",se={centerControls:Mr,centerSkipBtn:Rr,centerPlayPause:Fr},ha=()=>t("div",{className:se.centerControls,onClick:e=>e.stopPropagation(),children:[t(De,{seconds:-10,className:se.centerSkipBtn}),t(yt,{className:se.centerPlayPause,"data-speed-boost-ignore":"true"}),t(De,{seconds:10,className:se.centerSkipBtn})]}),fa=({visible:e,title:r,episode:a,server:o,mode:n,audio:i,subtitles:c,onBack:p,classes:s})=>t("div",{className:`${s.overlay} ${e?"":s.hidden} `,"data-speed-boost-ignore":"true",style:{pointerEvents:"none",background:"none"},children:t("div",{className:s.top,onClick:u=>u.stopPropagation(),children:[t("button",{className:s.backBtn,onClick:u=>{u.stopPropagation(),p()},title:"Back","aria-label":"Back",children:t(j,{name:"chevron-left"})}),t("div",{className:`${s.titleInfo} ${G.topBarTitleInfo}`,children:[t("span",{className:s.title,children:r}),a&&t("span",{className:s.episode,children:a}),(n||o||i||c)&&t("div",{className:G.streamDetails,children:[n&&t("span",{className:G.modeTag,children:n.toUpperCase()}),o&&t("span",{title:`Server: ${o}`,children:["Server: ",o]}),i&&t("span",{title:`Audio: ${i}`,children:["Audio: ",i]}),c&&t("span",{title:`Subs: ${c}`,children:["Subs: ",c]})]})]})]})});function Dr(e){return e instanceof Element&&!!e.closest('button, input, select, textarea, a, [role="button"], [role="slider"], [data-player-ui="true"]')}function ma({engine:e,topBar:r,centerControls:a,bottomBar:o,settingsPanel:n,overlays:i,isInteracting:c=!1,nativeControls:p=!1,chromeDisabled:s=!1,className:u,onStageClick:b,children:x}){const g=We(e),E=_t(),l=C(void 0),d=C(void 0),k=C(0),h=C(c);h.current=c;const m=A(()=>{clearTimeout(l.current),l.current=void 0},[]),y=A(()=>{m();const L=e.getState();!L.isPlaying||L.isScrubbing||h.current||p||(l.current=setTimeout(()=>{const _=e.getState();h.current||_.isScrubbing||!_.isPlaying||e.setShowControls(!1)},E?5e3:3e3))},[e,E,p,m]),B=A(()=>{e.setShowControls(!0),y()},[e,y]);gt(e,B,!p&&!s),F(()=>(c||g.isScrubbing||!g.isPlaying?(e.setShowControls(!0),m()):y(),m),[e,c,g.isPlaying,g.isScrubbing,g.showControls,m,y]),F(()=>()=>{clearTimeout(d.current)},[]);const f=L=>{if(Dr(L.target)||p||s)return;b?.();const _=Date.now();if(_-k.current<280){clearTimeout(d.current),d.current=void 0,k.current=0,e.toggleFullscreen();return}k.current=_,clearTimeout(d.current),d.current=setTimeout(()=>{d.current=void 0,e.setShowControls(!e.getState().showControls),y()},280)},T=g.showControls||g.isScrubbing||c||!g.isPlaying;return t(bt,{engine:e,children:t("div",{ref:e.containerRef,"data-player-root":"true",className:`${G.shell} ${g.isFullscreen?G.shellFullscreen:""} ${u??""}`,style:{cursor:!T&&g.isFullscreen?"none":"default"},onContextMenu:L=>L.preventDefault(),onPointerMove:L=>{L.pointerType==="mouse"&&B()},onFocusIn:B,onMouseLeave:()=>{window.matchMedia?.("(hover: hover) and (pointer: fine)").matches&&e.getState().isPlaying&&!h.current&&e.setShowControls(!1)},children:[t("div",{className:G.stage,onClick:f,children:x}),i,(g.error||g.playBlocked)&&t("div",{className:G.engineStatus,"data-player-ui":"true",children:t(vt,{})}),!s&&!p&&t("div",{className:G.uiLayer,children:[t("div",{"data-player-ui":"true",children:r}),T&&a&&t("div",{"data-player-ui":"true",children:a}),t("div",{"data-player-ui":"true",children:o}),n&&t("div",{"data-player-ui":"true",children:n})]})]})})}const Or=e=>(e.language??e.lang??"").toLowerCase(),qr=e=>(e.label??"").toLowerCase(),Hr=e=>`${e.language??e.lang??""}|||${e.label??""}`,Wr=e=>Or(e).startsWith("en")||qr(e).includes("english");function ya(e,r){if(e.length===0||r?.enabled===!1)return-1;const a=r?.lastKey??null;if(a){const n=e.findIndex(i=>Hr(i)===a);if(n>=0)return n}const o=e.findIndex(Wr);return o>=0?o:0}const zr="_statusArea_1xccu_1",Vr="_toggleBtn_1xccu_20",Kr="_shortcuts_1xccu_46",Ur="_shortcutGroup_1xccu_56",Qr="_shortcut_1xccu_46",Gr="_key_1xccu_70",jr="_label_1xccu_91",S={statusArea:zr,toggleBtn:Vr,shortcuts:Kr,shortcutGroup:Ur,shortcut:Qr,key:Gr,label:jr},_a=({showTheater:e=!0})=>{const[r,a]=P(!1);return t("div",{className:S.statusArea,children:[t("button",{type:"button",className:S.toggleBtn,onClick:()=>a(o=>!o),"aria-expanded":r,"aria-controls":"player-shortcuts",children:[t(j,{name:"keyboard",size:14}),t("span",{children:"Keyboard Shortcuts"}),r?t(j,{name:"chevron-up",size:12}):t(j,{name:"chevron-down",size:12})]}),r&&t("div",{id:"player-shortcuts",className:S.shortcuts,children:[t("div",{className:S.shortcutGroup,children:[t("div",{className:S.shortcut,children:[t("span",{className:S.key,children:"↑"}),t("span",{className:S.key,children:"↓"}),t("span",{className:S.label,children:"Volume"})]}),t("div",{className:S.shortcut,children:[t("span",{className:S.key,children:"←"}),t("span",{className:S.key,children:"→"}),t("span",{className:S.label,children:"Seek"})]})]}),t("div",{className:S.shortcutGroup,children:[t("div",{className:S.shortcut,children:[t("span",{className:S.key,children:"Space"}),t("span",{className:S.label,children:"Play/Pause"})]}),t("div",{className:S.shortcut,children:[t("span",{className:S.key,children:"F"}),t("span",{className:S.label,children:"Fullscreen"})]}),t("div",{className:S.shortcut,children:[t("span",{className:S.key,children:"M"}),t("span",{className:S.label,children:"Mute"})]}),e&&t("div",{className:S.shortcut,children:[t("span",{className:S.key,children:"T"}),t("span",{className:S.label,children:"Theater"})]}),t("div",{className:S.shortcut,children:[t("span",{className:S.key,children:"P"}),t("span",{className:S.label,children:"Previous"})]}),t("div",{className:S.shortcut,children:[t("span",{className:S.key,children:"N"}),t("span",{className:S.label,children:"Next"})]})]})]})]})},Yr="_episodeListContainer_11isr_1",Xr="_drawerContainer_11isr_9",Jr="_episodeListHeader_11isr_14",Zr="_drawerHeader_11isr_20",en="_episodeListTitle_11isr_29",tn="_rangeSelector_11isr_41",rn="_rangeButton_11isr_47",nn="_active_11isr_70",an="_episodeList_11isr_1",sn="_drawerList_11isr_90",on="_episodeItem_11isr_119",cn="_watched_11isr_147",ln="_episodeThumb_11isr_175",dn="_episodeText_11isr_185",un="_episodeLabel_11isr_193",pn="_episodeSub_11isr_198",N={episodeListContainer:Yr,drawerContainer:Xr,episodeListHeader:Jr,drawerHeader:Zr,episodeListTitle:en,rangeSelector:tn,rangeButton:rn,active:nn,episodeList:an,drawerList:sn,episodeItem:on,watched:cn,episodeThumb:ln,episodeText:dn,episodeLabel:un,episodeSub:pn},hn=({episodes:e,currentEpisode:r,watchedEpisodes:a=[],onEpisodeClick:o,variant:n="sidebar",title:i="Episodes",header:c})=>{const[p,s]=P(0),u=C(null),b=te(()=>e.map(l=>typeof l=="string"?{id:l,label:`Episode ${l}`}:l),[e]),x=te(()=>new Set(a),[a]);F(()=>{const l=u.current;if(!l)return;let d=l.parentElement;for(;d;){const m=window.getComputedStyle(d);if((m.overflowY==="auto"||m.overflowY==="scroll")&&d.scrollHeight>d.clientHeight)break;d=d.parentElement}if(!d)return;const k=d.getBoundingClientRect(),h=l.getBoundingClientRect();d.scrollTop+=h.top+h.height/2-(k.top+d.clientHeight/2)},[r,p]);const g=te(()=>{if(b.length<=100)return[];const l=[];for(let d=0;d<b.length;d+=100){const k=d+1,h=Math.min(d+100,b.length);l.push(`${k}-${h}`)}return l},[b]),E=te(()=>{if(g.length===0)return b;const l=g[p];if(!l)return b;const[d,k]=l.split("-"),h=parseInt(d,10),m=parseInt(k,10);return b.slice(h-1,m)},[b,g,p]);return t("div",{className:`${N.episodeListContainer} ${n==="drawer"?N.drawerContainer:""}`,children:[t("div",{className:`${N.episodeListHeader} ${n==="drawer"?N.drawerHeader:""}`,children:[c,t("h3",{className:N.episodeListTitle,children:i}),g.length>0&&t("div",{className:N.rangeSelector,children:g.map((l,d)=>t("button",{className:`${N.rangeButton} ${p===d?N.active:""}`,onClick:()=>s(d),children:l},l))})]}),t("div",{className:`${N.episodeList} ${n==="drawer"?N.drawerList:""}`,children:E.map(l=>{const d=l.id===r,k=x.has(l.id)||l.watched===!0;return t("div",{ref:d?u:void 0,className:`${N.episodeItem} ${k?N.watched:""} ${d?N.active:""}`,onClick:()=>o(l.id),children:[l.thumbnail&&t("img",{src:l.thumbnail,alt:"",loading:"lazy",decoding:"async",className:N.episodeThumb}),t("span",{className:N.episodeText,children:[t("span",{className:N.episodeLabel,children:l.label??`Episode ${l.id}`}),l.sublabel&&t("span",{className:N.episodeSub,children:l.sublabel})]})]},l.id)})})]})},ga=({variant:e="sidebar",count:r=12})=>t("div",{className:`${N.episodeListContainer} ${e==="drawer"?N.drawerContainer:""}`,children:[t("div",{className:`${N.episodeListHeader} ${e==="drawer"?N.drawerHeader:""}`,children:[t("h3",{className:N.episodeListTitle,children:"Episodes"}),t("div",{className:N.rangeSelector,children:[t(ae,{width:"60px",height:"28px",variant:"rectangular"}),t(ae,{width:"60px",height:"28px",variant:"rectangular"}),t(ae,{width:"60px",height:"28px",variant:"rectangular"})]})]}),t("div",{className:`${N.episodeList} ${e==="drawer"?N.drawerList:""}`,children:Array.from({length:r}).map((a,o)=>t("div",{className:N.episodeItem,style:{border:"none",background:"transparent"},children:t(ae,{width:"120px",height:"1.2rem",variant:"text"})},o))})]}),fn="_shell_cys6s_1",mn="_overlay_cys6s_10",yn="_drawer_cys6s_21",_n="_handle_cys6s_56",gn="_header_cys6s_64",bn="_headerCopy_cys6s_73",vn="_kicker_cys6s_79",Sn="_title_cys6s_87",wn="_closeBtn_cys6s_94",Cn="_body_cys6s_116",V={shell:fn,overlay:mn,drawer:yn,handle:_n,header:gn,headerCopy:bn,kicker:vn,title:Sn,closeBtn:wn,body:Cn};function ba({isOpen:e,onClose:r,episodes:a,currentEpisode:o,watchedEpisodes:n=[],onEpisodeClick:i,title:c,header:p}){return F(()=>{if(!e)return;const s=b=>{b.key==="Escape"&&r()},u=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",s),()=>{document.body.style.overflow=u,document.removeEventListener("keydown",s)}},[e,r]),e?ct(t("div",{className:V.shell,role:"dialog","aria-modal":"true","aria-label":"Episode picker",children:[t("button",{className:V.overlay,type:"button",onClick:r,"aria-label":"Close episodes"}),t("aside",{className:V.drawer,children:[t("div",{className:V.handle}),t("div",{className:V.header,children:[t("div",{className:V.headerCopy,children:[t("span",{className:V.kicker,children:"Episode picker"}),t("h3",{className:V.title,children:"Choose an episode"})]}),t("button",{className:V.closeBtn,type:"button",onClick:r,"aria-label":"Close",children:t(j,{name:"times"})})]}),t("div",{className:V.body,children:t(hn,{episodes:a,currentEpisode:o,watchedEpisodes:n,onEpisodeClick:i,variant:"drawer",title:c,header:p})})]})]}),document.body):null}const kn="_sourceSelectionContainer_g7xev_1",xn="_providerSelectContainer_g7xev_14",Tn="_providerSelect_g7xev_14",Nn="_sourceSelect_g7xev_1",Ln="_sourceButtons_g7xev_70",Pn="_sourceButton_g7xev_70",Bn="_active_g7xev_95",va={sourceSelectionContainer:kn,providerSelectContainer:xn,providerSelect:Tn,sourceSelect:Nn,sourceButtons:Ln,sourceButton:Pn,active:Bn},Sa=({skipIntervals:e,showId:r,episodeNumber:a,episodeCount:o,sourceType:n,showMeta:i})=>{const c=wt(),p=dt(),{engine:s,mediaRef:u}=St({volumeKey:"playerVolume",mutedKey:"playerMuted"}),{isPlaying:b,isMuted:x,volume:g,duration:E,isScrubbing:l,isBuffering:d,isFullscreen:k,isSpeedBoostActive:h,showControls:m,playbackLocked:y}=We(s),B=s.containerRef,f=C(null),T=C(0),L=C(Math.random().toString(36).substring(2)),_=s.setShowControls,[I,q]=P(M.getItem("autoSkipEnabled")==="true"),[K,$]=P(null),[W]=P($r),[Ke,ye]=P(W.fontSize),[Ue,_e]=P(W.position),[Qe,ge]=P(W.bgOpacity),[Ge,be]=P(W.bgColor),[je,ve]=P(W.textColor),[Ye,Se]=P(W.edge),[Xe,we]=P(W.bold),Ce=A((v,R)=>{if({fontSize:w=>typeof w!="number"?!1:(ye(w),!0),position:w=>typeof w!="number"?!1:(_e(w),!0),bgOpacity:w=>typeof w!="number"?!1:(ge(w),!0),bgColor:w=>typeof w!="string"?!1:(be(w),!0),textColor:w=>typeof w!="string"?!1:(ve(w),!0),edge:w=>w!=="shadow"&&w!=="outline"&&w!=="none"?!1:(Se(w),!0),bold:w=>typeof w!="boolean"?!1:(we(w),!0)}[v](R))try{M.setItem(Er[v],String(R))}catch{}},[]),[Je,Ze]=P([]),[et,tt]=P(null),[rt,nt]=P(!1),[at,st]=P(!1),[ot,ke]=P(()=>{try{return M.getItem("playerUseNativeControls")==="true"}catch{return!1}}),J=C(!1),re=C(-1),ne=A(()=>{const v=u.current;return!r||!a||!i?.name?null:{showId:r,episodeNumber:a,episodeCount:o,currentTime:s.getTimeline().currentTime,duration:s.getState().duration,showName:i.name,showThumbnail:i.thumbnail,nativeName:i.names?.native,englishName:i.names?.english,genres:Array.isArray(i.genres)?i.genres.map(R=>typeof R=="string"?R:R?.name).filter(Boolean):void 0,popularityScore:i.score,type:i.type,isPlaying:v?!v.paused:n==="iframe",sessionId:L.current,isAdult:i.isAdult}},[s,u,r,a,o,i,n]),D=A((v=!1,R=!1)=>{if(J.current)return!1;const H=ne();if(!H)return!1;const w=u.current;if(!w&&!v&&n!=="iframe"||n!=="iframe"&&H.duration<=0)return!1;const z=s.getTimeline().currentTime;if(!R){if(z===0)return!1;const ee=w?Math.abs(z-re.current):0;if(!v&&w&&z!==w.duration&&ee<5)return!1}return H.currentTime=z,re.current=z,v?(async()=>{try{await Re("progress.updateProgress",H),c.invalidateQueries({queryKey:[U.playerData,r]}),c.invalidateQueries({queryKey:[U.videoSources,r,a]}),c.invalidateQueries({queryKey:[U.continueWatching]}),c.invalidateQueries({queryKey:[U.thisWeekSchedule]}),c.invalidateQueries(p.continueWatching.pathFilter())}catch(ee){console.error("Failed to update progress:",ee)}})():Re("progress.updateProgress",H).then(()=>{ce(H.currentTime,H.duration)&&c.invalidateQueries({queryKey:[U.playerData,r]})}).catch(ee=>console.error("Failed to update progress:",ee)),!0},[s,ne,n,c,r,a,p.continueWatching,u]);F(()=>{const v=()=>{J.current||D(!0)};window.addEventListener("beforeunload",v),window.addEventListener("pagehide",v);const R=()=>{document.visibilityState==="hidden"&&v()};document.addEventListener("visibilitychange",R);const H=f;return()=>{window.removeEventListener("beforeunload",v),window.removeEventListener("pagehide",v),document.removeEventListener("visibilitychange",R),J.current||D(!0),H.current&&clearTimeout(H.current)}},[D]);const xe=A(()=>s.setShowControls(!0),[s]),Te=s.toggleFullscreen,Ne=A(()=>{s.togglePlay(),_(!0)},[s,_]),Le=A(()=>{s.toggleMute(),_(!0)},[s,_]),Pe=A(v=>{s.seekRelative(v),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>D(!1,!0),1500),_(!0)},[s,D,_]),Be=A(()=>{J.current=!1,D(!1,!0)},[D]),Ae=A(()=>{_(!0),D(!1,!0)},[D,_]);F(()=>{J.current=!1,re.current=-1,T.current=0,L.current=Math.random().toString(36).substring(2),s.reset()},[s,r,a]);const Ee=s.reset;F(()=>{const v=L.current;return()=>{ut(v)}},[s,r,a]),F(()=>{if(n!=="iframe")return;D(!1,!0);const v=setInterval(()=>{D(!1,!0)},6e4);return()=>clearInterval(v)},[n,D]);const $e=A(()=>{const v=u.current;if(!v)return;const R=v.currentTime||0,H=Date.now(),w=ce(R,v.duration)&&!ce(re.current,v.duration);(w||H-T.current>6e4)&&D(!1,w)&&(T.current=H);const z=e.find(Z=>R>=Z.start_time&&R<Z.end_time)||null;$(Z=>Z?.skip_id!==z?.skip_id?z:Z),I&&z&&!v.paused&&!s.getState().playbackLocked&&(s.seek(z.end_time),$(null))},[u,e,I,D,s]),Ie=A(()=>{const v=ne();v&&(v.currentTime=v.duration,pt.progress.updateProgress.mutate(v).then(()=>{c.invalidateQueries({queryKey:[U.playerData,r]}),c.invalidateQueries({queryKey:[U.videoSources,r,a]}),c.invalidateQueries({queryKey:[U.continueWatching]})}).catch(R=>console.error("Failed to send final progress:",R)))},[ne,c,r,a]),Me=A(()=>{J.current=!0,Ie()},[Ie]),it=te(()=>({togglePlay:Ne,seek:Pe,toggleMute:Le,toggleFullscreen:Te,onPlay:Be,onPause:Ae,formatTime:ht,onTimeUpdate:$e,onEnded:Me,setShowControls:_,setIsAutoSkipEnabled:q,setCurrentSkipInterval:$,setSubtitleFontSize:ye,setSubtitlePosition:_e,setSubtitleBgOpacity:ge,setSubtitleBgColor:be,setSubtitleTextColor:ve,setSubtitleEdge:Se,setSubtitleBold:we,setSubtitleStyle:Ce,setAvailableSubtitles:Ze,setActiveSubtitleTrack:tt,setShowSettings:nt,setShowVolumeSlider:st,flashControls:xe,sendProgressUpdate:D,setUseNativeControls:ke,resetMediaState:Ee}),[Ne,Pe,Le,Te,Be,Ae,$e,Me,D,ke,Ee,xe,Ce,_]);return{engine:s,refs:{videoRef:u,playerContainerRef:B},state:{playbackLocked:y,isPlaying:b,isMuted:x,volume:g,isFullscreen:k,duration:E,showControls:m,isScrubbing:l,isAutoSkipEnabled:I,currentSkipInterval:K,subtitleFontSize:Ke,subtitlePosition:Ue,subtitleBgOpacity:Qe,subtitleBgColor:Ge,subtitleTextColor:je,subtitleEdge:Ye,subtitleBold:Xe,availableSubtitles:Je,activeSubtitleTrack:et,showSettings:rt,showVolumeSlider:at,isBuffering:d,isSpeedBoostActive:h,useNativeControls:ot},actions:it}};function An(){try{return typeof navigator<"u"&&/android/i.test(navigator.userAgent)}catch{return!1}}function wa(e,r){const{refs:a,actions:o}=e,n=C(r);n.current=r;const i=C(!1),c=C(!1),p=s=>{try{if(s)return s.matches}catch{}try{return window.innerWidth>window.innerHeight}catch{return!1}};F(()=>{if(!An())return;let s=null;const u=()=>{const b=a.playerContainerRef.current;if(p(s)){if(!n.current||!b||ie(a.videoRef.current)||c.current)return;i.current=!0,o.toggleFullscreen()}else c.current=!1,i.current&&(i.current=!1,ie(a.videoRef.current)&&o.toggleFullscreen())};try{s=window.matchMedia("(orientation: landscape)"),s.addEventListener?s.addEventListener("change",u):s.addListener(u)}catch{}return u(),()=>{try{s&&(s.removeEventListener?s.removeEventListener("change",u):s.removeListener(u))}catch{}}},[o,a.playerContainerRef,a.videoRef,r]),F(()=>{const s=()=>{if(!ie(a.videoRef.current)){i.current=!1;try{window.matchMedia("(orientation: landscape)").matches&&(c.current=!0)}catch{c.current=!0}}};return document.addEventListener("fullscreenchange",s),document.addEventListener("webkitfullscreenchange",s),()=>{document.removeEventListener("fullscreenchange",s),document.removeEventListener("webkitfullscreenchange",s)}},[a.videoRef])}const En=e=>Math.max(8,Math.min(40,Math.ceil(e/16.7)+4));function Ca({videoRef:e,canvasRef:r,delayMs:a,enabled:o}){const n=C(a);n.current=a;const i=C([]),c=C(-1),p=C(-1),s=C(!1),u=C(0),b=C(null);F(()=>{const x=h=>{if(h)try{h.close()}catch{}},g=()=>{for(const h of i.current)x(h.bitmap);i.current=[]};if(!o){g(),c.current=-1,p.current=-1,s.current=!1,u.current=0;return}let E=!1;const l=()=>{b.current!==null&&(cancelAnimationFrame(b.current),b.current=null)},d=()=>{E||(l(),b.current=requestAnimationFrame(()=>{k()}))};async function k(){if(E)return;const h=e.current,m=r.current;if(!h||!m||h.videoWidth===0){d();return}if(h.paused||h.ended||document.hidden||h.readyState<HTMLMediaElement.HAVE_CURRENT_DATA){d();return}const y=h.getVideoPlaybackQuality().totalVideoFrames;if(y===c.current){d();return}(h.seeking||p.current>=0&&Math.abs(h.currentTime-p.current)>.5)&&(g(),s.current=!1,u.current=0,c.current=-1),p.current=h.currentTime,(m.width!==h.videoWidth||m.height!==h.videoHeight)&&(m.width=h.videoWidth,m.height=h.videoHeight);const B=Math.max(0,n.current||0);B>u.current&&(s.current=!1);try{const f=await createImageBitmap(h);if(E){x(f);return}c.current=y;const T=performance.now(),L=m.getContext("2d"),_=$=>{L&&L.drawImage($,0,0,m.width,m.height)};if(B<=0){g(),s.current=!1,u.current=0,_(f),x(f),d();return}const I=i.current;I.push({bitmap:f,capture:T});const q=En(B);for(;I.length>q;)x(I.shift()?.bitmap);let K=-1;for(let $=I.length-1;$>=0;$--)if(T-I[$].capture>=B){K=$;break}if(K!==-1){for(let W=0;W<K;W++)x(I.shift()?.bitmap);const $=I.shift();$?(_($.bitmap),x($.bitmap),s.current=!0,u.current=B):_(f)}else if(!s.current)_(f);else{const $=I.shift();$?(_($.bitmap),x($.bitmap)):_(f)}}catch{}d()}return d(),()=>{E=!0,l();for(const h of i.current)try{h.bitmap.close()}catch{}i.current=[]}},[o,e,r])}const Oe=(e,r)=>{try{M.setItem("playerVideoDelayMs",String(e)),M.setItem("playerVideoDelayEnabled",String(r))}catch{}},qe=e=>{try{M.setItem("playerVideoDelayEnabled",String(e))}catch{}};function ka(e,r){const[a,o]=P(()=>{try{const y=Number(M.getItem("playerVideoDelayMs"));if(Number.isFinite(y)&&y>=0&&y<=500)return Math.round(y)}catch{}return 180}),[n,i]=P(()=>{try{return M.getItem("playerVideoDelayEnabled")==="true"}catch{return!1}}),[c,p]=P(!1),[s,u]=P(!1),b=C(null),x=C(null),g=y=>{const B=Math.max(0,Math.min(500,Math.round(y)));o(B);try{M.setItem("playerVideoDelayMs",String(B))}catch{}},E=y=>{i(y),qe(y)},l=A(()=>{u(!1),p(!1)},[]);return{videoDelayMs:a,videoDelayEnabled:n,setDelayEnabled:E,handleVideoDelayChange:g,isCalibrating:c,testClipActive:s,stopCalibration:l,openAvSyncCalibrator:()=>{b.current={enabled:n,ms:a},i(!0),qe(!0),r?.(),p(!0)},cancelAvSyncCalibrator:()=>{const y=b.current;b.current=null,y&&(o(y.ms),i(y.enabled),Oe(y.ms,y.enabled)),u(!1),p(!1)},applyAvSyncCalibrator:()=>{b.current=null,i(!0),Oe(a,!0),u(!1),p(!1)},toggleTestClip:()=>{if(s){u(!1);return}const y=e.current;y&&!isNaN(y.currentTime)&&(x.current=y.currentTime),u(!0)},calibReturnRef:x,effectiveVideoDelayMs:n?a:0}}function xa(){const[e,r]=P(()=>{try{return M.getItem("playerTheaterMode")==="true"}catch{return!1}});F(()=>{try{e?document.body.classList.add("theater-mode"):document.body.classList.remove("theater-mode")}catch(n){console.error(n)}return()=>{try{document.body.classList.remove("theater-mode")}catch(n){console.error(n)}}},[e]);const a=A(()=>{r(n=>{const i=!n;try{M.setItem("playerTheaterMode",i.toString())}catch{}return i})},[]),o=A(n=>{if(e&&n.target===n.currentTarget){r(!1);try{M.setItem("playerTheaterMode","false")}catch{}}},[e]);return{isTheaterMode:e,toggleTheaterMode:a,handleLayoutClick:o}}const Y={enabled:!0,blur:60,saturation:150,brightness:70,opacity:60};function $n(){try{const e=M.getItem("playerAmbientLight");if(!e)return Y;const r=JSON.parse(e),a=(o,n,i,c)=>{const p=Number(o);return Number.isFinite(p)?Math.max(i,Math.min(c,p)):n};return{enabled:r.enabled??Y.enabled,blur:a(r.blur,Y.blur,0,120),saturation:a(r.saturation,Y.saturation,0,200),brightness:a(r.brightness,Y.brightness,20,120),opacity:a(r.opacity,Y.opacity,10,100)}}catch{return Y}}function Ta(){const[e,r]=P($n),a=A(o=>{r(n=>{const i={...n,...o};try{M.setItem("playerAmbientLight",JSON.stringify(i))}catch{}return i})},[]);return{settings:e,update:a}}const In="_theaterAmbient_x9t0o_1",Mn={theaterAmbient:In},de=160,ue=90,Rn=120,Na=({videoRef:e,active:r,settings:a,className:o})=>{const n=C(null);return F(()=>{if(!r)return;const i=n.current,c=e.current;if(!i||!c)return;const p=i.getContext("2d",{alpha:!1});if(!p)return;let s=0,u=0,b=!1;const x=()=>{if(!(c.readyState<2||!c.videoWidth))try{const d=c.videoWidth,k=c.videoHeight,h=de/ue,m=d/k;let y=d,B=k,f=0,T=0;m>h?(y=k*h,f=(d-y)/2):(B=d/h,T=(k-B)/2),p.drawImage(c,f,T,y,B,0,0,de,ue)}catch{}},g=d=>{b||c.paused||(s=requestAnimationFrame(g),!(d-u<Rn)&&(u=d,x()))},E=()=>{b||(cancelAnimationFrame(s),u=0,s=requestAnimationFrame(g))},l=()=>cancelAnimationFrame(s);return c.addEventListener("play",E),c.addEventListener("pause",l),c.addEventListener("seeked",x),c.addEventListener("loadeddata",x),s=requestAnimationFrame(g),()=>{b=!0,cancelAnimationFrame(s),c.removeEventListener("play",E),c.removeEventListener("pause",l),c.removeEventListener("seeked",x),c.removeEventListener("loadeddata",x)}},[r,e]),r?t("canvas",{ref:n,width:de,height:ue,"aria-hidden":"true",className:o??Mn.theaterAmbient,style:{filter:`blur(${a.blur}px) saturate(${a.saturation}%) brightness(${a.brightness}%)`,opacity:a.opacity/100}}):null},Fn="_row_1fq55_1",Dn="_rowHeader_1fq55_9",On="_rowLabel_1fq55_17",qn="_rowValue_1fq55_28",Hn="_slider_1fq55_36",Wn="_swatches_1fq55_99",zn="_swatch_1fq55_99",Vn="_swatchPicked_1fq55_114",Kn="_colorInput_1fq55_120",Un="_segmented_1fq55_131",O={row:Fn,rowHeader:Dn,rowLabel:On,rowValue:qn,slider:Hn,swatches:Wn,swatch:zn,swatchPicked:Vn,colorInput:Kn,segmented:Un},Qn=({label:e,display:r,min:a,max:o,step:n,value:i,percent:c,onChange:p,onCommit:s})=>t("div",{className:O.row,children:[t("div",{className:O.rowHeader,children:[t("span",{className:O.rowLabel,children:e}),t("span",{className:O.rowValue,children:r})]}),t("input",{type:"range",className:O.slider,min:a,max:o,step:n,value:i,"aria-label":e,"data-speed-boost-ignore":"true",onInput:u=>p(Number(u.target.value)),onMouseDown:u=>u.stopPropagation(),onPointerDown:u=>u.stopPropagation(),onTouchStart:u=>u.stopPropagation(),onPointerUp:s,onPointerCancel:s,onTouchEnd:s,onKeyUp:s,onBlur:s,style:{"--slider-percent":`${c}%`}})]}),La=({label:e,colors:r,value:a,onChange:o})=>t("div",{className:O.row,children:[t("div",{className:O.rowHeader,children:t("span",{className:O.rowLabel,children:e})}),t("div",{className:O.swatches,children:[r.map(n=>t("button",{type:"button","aria-label":`${e} ${n}`,"aria-pressed":a.toLowerCase()===n.toLowerCase(),onClick:()=>o(n),className:`${O.swatch} ${a.toLowerCase()===n.toLowerCase()?O.swatchPicked:""}`,style:{backgroundColor:n}},n)),t("input",{type:"color","aria-label":`Custom ${e.toLowerCase()}`,className:O.colorInput,value:a,"data-speed-boost-ignore":"true",onInput:n=>o(n.target.value),onMouseDown:n=>n.stopPropagation(),onPointerDown:n=>n.stopPropagation(),onTouchStart:n=>n.stopPropagation()})]})]});function Pa({label:e,options:r,value:a,onChange:o}){return t("div",{className:O.row,children:[t("div",{className:O.rowHeader,children:t("span",{className:O.rowLabel,children:e})}),t("div",{className:O.segmented,role:"group","aria-label":e,children:r.map(n=>t("button",{type:"button","aria-pressed":a===n,onClick:()=>o(n),children:[t("span",{children:n}),a===n&&t(j,{name:"check",size:10})]},n))})]})}const oe=10,me=500,pe=e=>Math.max(0,Math.min(me,Math.round(e))),Ba=({isOpen:e,ms:r,onChange:a,onApply:o,onClose:n,testClipActive:i,onTestClip:c})=>e?t("div",{role:"dialog","aria-label":"Calibrate audio video sync","data-speed-boost-ignore":"true",onClick:p=>p.stopPropagation(),style:{position:"absolute",right:8,bottom:112,width:"min(260px, calc(100% - 16px))",maxHeight:"calc(100% - 124px)",overflowY:"auto",overflowX:"hidden",zIndex:60,display:"flex",flexDirection:"column",alignItems:"center",gap:8,padding:12,borderRadius:"var(--radius-lg)",border:"1px solid var(--glass-border)",background:"rgba(18, 18, 22, 0.95)",boxShadow:"var(--glass-shadow)",backdropFilter:"blur(14px)",WebkitBackdropFilter:"blur(14px)",boxSizing:"border-box"},children:[t("div",{style:{fontSize:"0.8rem",fontWeight:800,color:"var(--text-primary)"},children:"A/V sync"}),t("div",{children:t(X,{size:"sm",variant:"secondary",onClick:c,children:i?"Back to video":"Preview test clip"})}),t("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,flexWrap:"wrap"},children:[t(X,{size:"sm",onClick:()=>a(pe(r-oe)),"aria-label":"Decrease delay by 10 milliseconds",children:["− ",oe,"ms"]}),t("div",{style:{fontSize:"1.1rem",fontWeight:800,minWidth:64,textAlign:"center"},children:[r,"ms"]}),t(X,{size:"sm",onClick:()=>a(pe(r+oe)),"aria-label":"Increase delay by 10 milliseconds",children:["+ ",oe,"ms"]})]}),t(Qn,{label:"Video delay",display:`${r}ms`,min:0,max:me,step:5,value:r,percent:r/me*100,onChange:p=>a(pe(p))}),t("div",{style:{display:"flex",gap:8,justifyContent:"center",flexWrap:"wrap"},children:[t(X,{size:"sm",variant:"secondary",onClick:n,children:"Cancel"}),t(X,{size:"sm",onClick:o,children:["Apply ",r,"ms"]})]})]}):null;function Aa({videoRef:e,sourceType:r,resetKey:a,onEnd:o}){const n=C(!1),i=C(o);i.current=o,F(()=>{n.current=!1},[a]);const c=A(()=>{const s=e.current?.duration;!s||!Number.isFinite(s)||console.info(`[playback] duration ${s.toFixed(2)}s`)},[e]);return{checkEnd:A((s=!1)=>{const u=e.current;!u||r==="iframe"||n.current||!s&&!Ct(u.currentTime,u.duration)||(n.current=!0,console.info(`[playback] end reached at ${u.currentTime.toFixed(2)}s / ${u.duration.toFixed(2)}s`),i.current())},[r,e]),logDuration:c}}function Ea(e,r,a){const o=ft(),n=C({watch:o,selection:r,loading:a});n.current={watch:o,selection:r,loading:a};const[i,c]=P(!1),p=C(""),s=C(""),u=C(""),b=C(!1),x=!!o.session&&!o.session.host;F(()=>(!o.session&&b.current&&e.applyRemotePlayback(void 0,!1,1),b.current=!!o.session,e.setPlaybackLocked(!!o.session&&(x||!o.connected)),o.session&&!o.connected&&e.applyRemotePlayback(void 0,!1,1),()=>e.setPlaybackLocked(!1)),[e,x,o.connected,o.session]);const g=A((E=!1)=>{const{watch:l,selection:d,loading:k}=n.current,h=e.mediaRef.current;if(!l.session||!l.room||!h)return;if(l.session.host){l.connected&&l.selfId!==u.current&&!k&&d&&h.readyState>=1&&(u.current=l.selfId,Fe(d,l.room.selection)&&e.applyRemotePlayback(l.room.position,!1,l.room.rate));return}const m=l.room,y=d&&Fe(d,m.selection);if(!l.connected||k||!y||h.readyState<1){e.applyRemotePlayback(void 0,!1,m.rate);return}const B=Date.now()+l.clock.offset-m.updatedAt<15e3;if(m.playing&&!B){e.applyRemotePlayback(void 0,!1,m.rate);return}const f=m.playing&&m.hostOnline&&B,T=Math.min(h.duration||1/0,mt({...m,playing:f},Date.now()+l.clock.offset)),L=T-h.currentTime,_=Math.abs(L)>(f?1.25:.15),I=f&&!_&&Math.abs(L)>.15?Math.min(4,Math.max(.25,m.rate*(L>0?1.03:.97))):m.rate,q=e.getState().playBlocked;e.applyRemotePlayback(_?T:void 0,f&&(!q||E),I),c(q&&f)},[e]);return F(()=>{if(!o.session)return;const E=()=>{const{watch:f,selection:T,loading:L}=n.current,_=e.mediaRef.current;if(!f.connected||!f.session?.host||!f.room)return;if(!T||L||!_||_.readyState<1){f.room.playing&&f.send({type:"update",...f.room,playing:!1});return}g();const I=e.getState(),q=!_.paused&&!_.ended&&!I.isBuffering,K={type:"update",selection:T,position:_.currentTime+(q?f.clock.latency/1e3*_.playbackRate:0),playing:q,rate:_.playbackRate},$=JSON.stringify(K);!q&&s.current===$||(s.current=$,f.send(K))},l=()=>{const{watch:f,selection:T,loading:L}=n.current,_=e.getState(),I=e.mediaRef.current,q=_.error||!L&&!T?"error":_.playBlocked?"blocked":L||!I||I.readyState<1?"loading":_.isBuffering?"buffering":"ready";f.connected&&`${f.selfId}:${q}`!==p.current&&(p.current=`${f.selfId}:${q}`,f.send({type:"status",status:q})),g()};let d=null;const k=["play","pause","seeked","ratechange","playing","waiting","canplay","ended"];let h;const m=()=>{clearTimeout(h),h=setTimeout(E,100)},y=setInterval(()=>{const f=e.mediaRef.current;d!==f&&(k.forEach(T=>d?.removeEventListener(T,m)),d=f,k.forEach(T=>d?.addEventListener(T,m))),l()},500),B=setInterval(E,3e3);return()=>{clearInterval(y),clearInterval(B),clearTimeout(h),k.forEach(T=>d?.removeEventListener(T,m));const{watch:f}=n.current;f.session?.host&&f.room&&f.connected&&f.send({type:"update",...f.room,playing:!1,position:e.mediaRef.current?.currentTime??f.room.position})}},[e,o.session,g]),F(()=>{g()},[o.room,o.connected,r,a,g]),{needsPlayback:i,enablePlayback:()=>g(!0)}}export{Na as A,ia as B,fa as C,Pa as D,ga as E,Q as F,Y as G,Qn as M,ma as P,pa as R,La as S,oa as T,ha as a,va as b,ra as c,na as d,da as e,ca as f,sa as g,Ea as h,ka as i,Ca as j,xa as k,Aa as l,wa as m,Ta as n,ta as o,ya as p,ua as q,aa as r,Hr as s,hn as t,Sa as u,ea as v,Ba as w,_a as x,ba as y,la as z};
|