@serifpersia/dango 3.5.5 → 3.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +1 -1
  2. package/client/dist/assets/{AnimeCard-DL4pRPH6.js → AnimeCard-B5chgVe0.js} +1 -1
  3. package/client/dist/assets/{AnimeInfo-CLewxbSs.js → AnimeInfo-CAIAwly1.js} +1 -1
  4. package/client/dist/assets/{AnimeInfoPage-BikMjWpN.js → AnimeInfoPage-QYTo62vI.js} +2 -2
  5. package/client/dist/assets/{Asmr-BrmjfXIH.js → Asmr-BCfPv0s2.js} +1 -1
  6. package/client/dist/assets/{AsmrResetProgressModal-DpzeJ2Rr.js → AsmrResetProgressModal-yqEA3jOA.js} +1 -1
  7. package/client/dist/assets/{AvSyncCalibrator-DJAEqz-M.js → AvSyncCalibrator-DQb5AJBT.js} +1 -1
  8. package/client/dist/assets/{Home-CilHItyY.js → Home-CyAIcLBV.js} +1 -1
  9. package/client/dist/assets/{Insights-s8DVFPrC.js → Insights-CXAxHzhr.js} +1 -1
  10. package/client/dist/assets/{LibraryListPage-D_MD0Lhp.js → LibraryListPage-oQc9xuRt.js} +1 -1
  11. package/client/dist/assets/{ListeningList-C4a0Ol9h.js → ListeningList-By91F5vR.js} +1 -1
  12. package/client/dist/assets/{Manga-CQoL5WSO.js → Manga-D7DgIXOq.js} +1 -1
  13. package/client/dist/assets/{MangaInfoPage-DfeBy1k9.js → MangaInfoPage-Drk264JK.js} +1 -1
  14. package/client/dist/assets/{MangaReadPage-Dv_xXU-Z.js → MangaReadPage-CnmtQB51.js} +1 -1
  15. package/client/dist/assets/{MangaResetProgressModal-B5I9WY5s.js → MangaResetProgressModal-irhuP8Mq.js} +1 -1
  16. package/client/dist/assets/{Mature-Bq6ALnj_.js → Mature-oAatUU-G.js} +1 -1
  17. package/client/dist/assets/{MediaCard-C6sSx_z5.js → MediaCard-DhBnuRF8.js} +1 -1
  18. package/client/dist/assets/{Music-TZrbVAdg.js → Music-vX10ZW0N.js} +1 -1
  19. package/client/dist/assets/{OptionListMenu-DxXGdXOU.js → OptionListMenu-C9D50WHH.js} +1 -1
  20. package/client/dist/assets/{Player-D0mA2vaS.js → Player-C3glywqj.js} +2 -2
  21. package/client/dist/assets/{PlayerSettings-Ch7dW6WE.js → PlayerSettings-DnHFn6_a.js} +1 -1
  22. package/client/dist/assets/{QueueOptionsButton-BZ5BUytu.js → QueueOptionsButton-0GiAM-Bl.js} +1 -1
  23. package/client/dist/assets/{QueueRail-C6IHy4CH.js → QueueRail-CVLCaUMJ.js} +1 -1
  24. package/client/dist/assets/{Radio-CnEWiyV2.js → Radio-mP5TUQJn.js} +1 -1
  25. package/client/dist/assets/{ReadingList-Dz9vI26P.js → ReadingList-BCAszsYl.js} +1 -1
  26. package/client/dist/assets/{ResetProgressModal-C7FNcb2X.js → ResetProgressModal-DLZmxatw.js} +1 -1
  27. package/client/dist/assets/{Search-Cdw5UVEX.js → Search-DAMXgG2r.js} +1 -1
  28. package/client/dist/assets/{Settings-BCAkVsGp.js → Settings-DHC_FqKK.js} +1 -1
  29. package/client/dist/assets/{SkeletonGrid-B3Pkkwtb.js → SkeletonGrid-D-ed9Fo4.js} +1 -1
  30. package/client/dist/assets/{Trackers-ukVLEBtx.js → Trackers-DS90l3Q9.js} +1 -1
  31. package/client/dist/assets/Tv-C9pmI-95.js +4 -0
  32. package/client/dist/assets/{TvInfo-CSRGklYN.js → TvInfo-BFVLnDNN.js} +1 -1
  33. package/client/dist/assets/{TvPopup-DNQkT6qy.js → TvPopup-CHFaDWpi.js} +1 -1
  34. package/client/dist/assets/{TvSearch-ZG7Q3kMG.js → TvSearch-B9lZQqIk.js} +1 -1
  35. package/client/dist/assets/{TvWatchlist-DnJfwYv0.js → TvWatchlist-Do2SUmoL.js} +1 -1
  36. package/client/dist/assets/{Watchlist-DN8VKfef.js → Watchlist-C565Ujux.js} +1 -1
  37. package/client/dist/assets/{hls-BIOzsLUy.js → hls-B2witrNg.js} +1 -1
  38. package/client/dist/assets/{index-D46PzcOL.js → index-CFHNQtWr.js} +2 -2
  39. package/client/dist/assets/{useAnimeInfoData-BF4WF2s4.js → useAnimeInfoData-CUTE8CPy.js} +1 -1
  40. package/client/dist/assets/{useAsmr-C2ttSbxb.js → useAsmr-DRjNfYvY.js} +1 -1
  41. package/client/dist/assets/{useAsmrPopup-CZ6UNRJH.js → useAsmrPopup-Df06MY8X.js} +1 -1
  42. package/client/dist/assets/{useMangaLibrary-ChwDhlyo.js → useMangaLibrary-JyVVwSCn.js} +1 -1
  43. package/client/dist/assets/{useMangaPopup-Zxm1nSmS.js → useMangaPopup-BB1TZKW4.js} +1 -1
  44. package/client/dist/assets/{useProviders-CguDlK81.js → useProviders-Du7D_fOu.js} +1 -1
  45. package/client/dist/assets/{useTv-HLJmTVvH.js → useTv-C2YgiBMr.js} +1 -1
  46. package/client/dist/assets/{useTvLibrary-340c9BPM.js → useTvLibrary-DPO3DmuK.js} +1 -1
  47. package/client/dist/index.html +1 -1
  48. package/package.json +2 -2
  49. package/server/dist/trpc/routers/tv.js +1 -0
  50. package/server/package.json +1 -1
  51. package/client/dist/assets/Tv-CpWQUSuu.js +0 -4
@@ -1 +1 @@
1
- import{b as u,c as b,u as g,a as c}from"./vendor-query-BBT5_sHx.js";import{t as p,h as i,z as s}from"./index-D46PzcOL.js";import{T as Q}from"./vendor-core-DfaOB3Rn.js";const v=300*1e3,M={mangadex:"https://mangadex.org/",mangapill:"https://www.mangapill.com/"},f=(e,a)=>`/api/proxy?url=${encodeURIComponent(a)}&referer=${encodeURIComponent(M[e])}`,T=(e,a)=>a&&(e==="mangapill"?f(e,a):a),k=(e,a=!0)=>{const{provider:r,query:n,page:o,sort:t,status:m,type:d,rating:y,mature:l}=e;return u({queryKey:["mangaBrowse",r,n,o,t,m,d,y,l],queryFn:()=>p.manga.search.query({provider:r,q:n.trim()||void 0,page:o,sort:t||void 0,status:m||void 0,type:d||void 0,rating:y||void 0,mature:l?"1":void 0}),staleTime:v,enabled:a&&!!r})},E=(e,a=14)=>{const{provider:r,query:n,sort:o,status:t,type:m,rating:d,mature:y}=e;return b({queryKey:["mangaBrowseInfinite",r,n,o,t,m,d,y,a],queryFn:({pageParam:l=1})=>p.manga.search.query({provider:r,q:n.trim()||void 0,page:l,limit:a,sort:o||void 0,status:t||void 0,type:m||void 0,rating:d||void 0,mature:y?"1":void 0}),initialPageParam:1,getNextPageParam:(l,q)=>l.hasNext?q.length+1:void 0,staleTime:v,enabled:!!r})},O=(e,a,r="safe",n=!1)=>u({queryKey:["mangaDetail",e,a,r,n],queryFn:()=>p.manga.info.query({provider:e||"",id:a||"",rating:r,mature:n?"1":void 0}),enabled:!!e&&!!a,staleTime:v}),$=(e,a,r)=>u({queryKey:["mangaPages",e,a],queryFn:()=>p.manga.pages.query({provider:e||"",id:a||""}),enabled:!!e&&!!a,staleTime:1800*1e3}),B=()=>{const e=i();return u({...e.manga.trending.queryOptions(),staleTime:600*1e3,retry:1})},I=e=>e.contentRating==="erotica"||e.contentRating==="pornographic"||e.type==="doujinshi";function N(e,a){const r=e.titles??{};return a==="englishName"?r.en||e.title:a==="nativeName"&&(r.native||r.romaji||e.altTitle)||e.title}function A(e){return{englishName:e.titles?.en??e.title,nativeName:e.titles?.native??e.titles?.romaji??e.altTitle??void 0}}const h=/^anilist:ch:(\d+)$/;function w(e){if(!e)return null;const a=h.exec(e.trim());if(!a)return null;const r=Number.parseInt(a[1],10);return Number.isFinite(r)?r:null}function x(e,a){const r=String(a),n=e.find(o=>(o.number??"").trim()===r);return n||(e.find(o=>{const t=Number.parseFloat((o.number??"").trim());return Number.isFinite(t)&&t===a})??null)}const _=["Reading","Completed","On-Hold","Dropped","Planned"],L=(e,a)=>`${e.toLowerCase()}:${a}`,D=(e="All",a=1,r=24)=>{const n=i();return u(n.mangaLibrary.list.queryOptions({status:e,page:a,limit:r}))},P=()=>{const e=i();return u({...e.mangaLibrary.ids.queryOptions(),staleTime:1e3*60})},U=e=>{const a=i();return u({...a.mangaLibrary.check.queryOptions({id:e??""}),enabled:!!e,staleTime:1e3*60})},j=e=>{const a=i();return u({...a.mangaLibrary.entry.queryOptions({id:e??""}),enabled:!!e,staleTime:1e3*60})},H=()=>{const e=i(),a=g();return c(e.mangaLibrary.link.mutationOptions({onSuccess:r=>{s.success(r?.progressMigrated?"Linked — chapter progress carried over":"Linked to AniList entry"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to link: ${r.message}`)}}))},z=(e=24)=>{const a=i();return u(a.mangaProgress.continueReading.queryOptions({limit:e}))},V=e=>{const a=i();return u({...a.mangaProgress.byManga.queryOptions({mangaId:e??""}),enabled:!!e})},S=()=>{const e=i(),a=g();return c(e.mangaLibrary.add.mutationOptions({onSuccess:(r,n)=>{n.silent||s.success("Bookmarked"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]})},onError:r=>{s.error(`Failed to bookmark: ${r.message}`)}}))},F=()=>{const e=i(),a=g();return c(e.mangaLibrary.remove.mutationOptions({onSuccess:()=>{s.success("Bookmark removed"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to remove: ${r.message}`)}}))},Y=()=>{const e=i(),a=g();return c(e.mangaLibrary.setStatus.mutationOptions({onSuccess:()=>{s.success("Status updated"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to update status: ${r.message}`)}}))},G=()=>{const e=i(),a=g();return c(e.mangaProgress.save.mutationOptions({onSuccess:(r,n)=>{a.invalidateQueries({queryKey:["manga-progress",n.mangaId]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())}}))},J=()=>{const e=i(),a=g();return c(e.mangaProgress.remove.mutationOptions({onSuccess:()=>{s.success("Progress reset"),a.invalidateQueries({queryKey:["manga-progress"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())},onError:r=>{s.error(`Failed to reset progress: ${r.message}`)}}))},W=()=>{const e=i(),a=g();return c(e.mangaLibrary.batchStatus.mutationOptions({onSuccess:r=>{s.success(`Status updated for ${r.updated??0} items`),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to update statuses: ${r.message}`)}}))},X=()=>{const e=i(),a=g();return c(e.mangaLibrary.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;s.success(`Removed ${n} ${n===1?"item":"items"} from reading list`),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to remove: ${r.message}`)}}))},Z=()=>{const e=i(),a=g();return c(e.mangaProgress.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;s.success(`Reset progress for ${n} ${n===1?"item":"items"}`),a.invalidateQueries({queryKey:["manga-progress"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())},onError:r=>{s.error(`Failed to reset progress: ${r.message}`)}}))},ee=()=>{const e=S(),a=F(),{data:r}=P(),n=Q(()=>new Set(r?.ids||[]),[r]);return{toggle:t=>{const m=L(t.provider,t.id);n.has(m)?a.mutate(m):e.mutate({provider:t.provider,mangaId:t.id,title:t.title,cover:t.cover,altTitle:t.altTitle,contentRating:t.contentRating})},bookmarkedIds:n,pending:e.isPending||a.isPending}};export{Z as A,J as B,_ as M,E as a,T as b,A as c,z as d,B as e,k as f,j as g,S as h,I as i,H as j,O as k,U as l,L as m,V as n,F as o,Y as p,w as q,N as r,x as s,$ as t,ee as u,f as v,G as w,D as x,W as y,X as z};
1
+ import{b as u,c as b,u as g,a as c}from"./vendor-query-BBT5_sHx.js";import{t as p,h as i,z as s}from"./index-CFHNQtWr.js";import{T as Q}from"./vendor-core-DfaOB3Rn.js";const v=300*1e3,M={mangadex:"https://mangadex.org/",mangapill:"https://www.mangapill.com/"},f=(e,a)=>`/api/proxy?url=${encodeURIComponent(a)}&referer=${encodeURIComponent(M[e])}`,T=(e,a)=>a&&(e==="mangapill"?f(e,a):a),k=(e,a=!0)=>{const{provider:r,query:n,page:o,sort:t,status:m,type:d,rating:y,mature:l}=e;return u({queryKey:["mangaBrowse",r,n,o,t,m,d,y,l],queryFn:()=>p.manga.search.query({provider:r,q:n.trim()||void 0,page:o,sort:t||void 0,status:m||void 0,type:d||void 0,rating:y||void 0,mature:l?"1":void 0}),staleTime:v,enabled:a&&!!r})},E=(e,a=14)=>{const{provider:r,query:n,sort:o,status:t,type:m,rating:d,mature:y}=e;return b({queryKey:["mangaBrowseInfinite",r,n,o,t,m,d,y,a],queryFn:({pageParam:l=1})=>p.manga.search.query({provider:r,q:n.trim()||void 0,page:l,limit:a,sort:o||void 0,status:t||void 0,type:m||void 0,rating:d||void 0,mature:y?"1":void 0}),initialPageParam:1,getNextPageParam:(l,q)=>l.hasNext?q.length+1:void 0,staleTime:v,enabled:!!r})},O=(e,a,r="safe",n=!1)=>u({queryKey:["mangaDetail",e,a,r,n],queryFn:()=>p.manga.info.query({provider:e||"",id:a||"",rating:r,mature:n?"1":void 0}),enabled:!!e&&!!a,staleTime:v}),$=(e,a,r)=>u({queryKey:["mangaPages",e,a],queryFn:()=>p.manga.pages.query({provider:e||"",id:a||""}),enabled:!!e&&!!a,staleTime:1800*1e3}),B=()=>{const e=i();return u({...e.manga.trending.queryOptions(),staleTime:600*1e3,retry:1})},I=e=>e.contentRating==="erotica"||e.contentRating==="pornographic"||e.type==="doujinshi";function N(e,a){const r=e.titles??{};return a==="englishName"?r.en||e.title:a==="nativeName"&&(r.native||r.romaji||e.altTitle)||e.title}function A(e){return{englishName:e.titles?.en??e.title,nativeName:e.titles?.native??e.titles?.romaji??e.altTitle??void 0}}const h=/^anilist:ch:(\d+)$/;function w(e){if(!e)return null;const a=h.exec(e.trim());if(!a)return null;const r=Number.parseInt(a[1],10);return Number.isFinite(r)?r:null}function x(e,a){const r=String(a),n=e.find(o=>(o.number??"").trim()===r);return n||(e.find(o=>{const t=Number.parseFloat((o.number??"").trim());return Number.isFinite(t)&&t===a})??null)}const _=["Reading","Completed","On-Hold","Dropped","Planned"],L=(e,a)=>`${e.toLowerCase()}:${a}`,D=(e="All",a=1,r=24)=>{const n=i();return u(n.mangaLibrary.list.queryOptions({status:e,page:a,limit:r}))},P=()=>{const e=i();return u({...e.mangaLibrary.ids.queryOptions(),staleTime:1e3*60})},U=e=>{const a=i();return u({...a.mangaLibrary.check.queryOptions({id:e??""}),enabled:!!e,staleTime:1e3*60})},j=e=>{const a=i();return u({...a.mangaLibrary.entry.queryOptions({id:e??""}),enabled:!!e,staleTime:1e3*60})},H=()=>{const e=i(),a=g();return c(e.mangaLibrary.link.mutationOptions({onSuccess:r=>{s.success(r?.progressMigrated?"Linked — chapter progress carried over":"Linked to AniList entry"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to link: ${r.message}`)}}))},z=(e=24)=>{const a=i();return u(a.mangaProgress.continueReading.queryOptions({limit:e}))},V=e=>{const a=i();return u({...a.mangaProgress.byManga.queryOptions({mangaId:e??""}),enabled:!!e})},S=()=>{const e=i(),a=g();return c(e.mangaLibrary.add.mutationOptions({onSuccess:(r,n)=>{n.silent||s.success("Bookmarked"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]})},onError:r=>{s.error(`Failed to bookmark: ${r.message}`)}}))},F=()=>{const e=i(),a=g();return c(e.mangaLibrary.remove.mutationOptions({onSuccess:()=>{s.success("Bookmark removed"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to remove: ${r.message}`)}}))},Y=()=>{const e=i(),a=g();return c(e.mangaLibrary.setStatus.mutationOptions({onSuccess:()=>{s.success("Status updated"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to update status: ${r.message}`)}}))},G=()=>{const e=i(),a=g();return c(e.mangaProgress.save.mutationOptions({onSuccess:(r,n)=>{a.invalidateQueries({queryKey:["manga-progress",n.mangaId]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())}}))},J=()=>{const e=i(),a=g();return c(e.mangaProgress.remove.mutationOptions({onSuccess:()=>{s.success("Progress reset"),a.invalidateQueries({queryKey:["manga-progress"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())},onError:r=>{s.error(`Failed to reset progress: ${r.message}`)}}))},W=()=>{const e=i(),a=g();return c(e.mangaLibrary.batchStatus.mutationOptions({onSuccess:r=>{s.success(`Status updated for ${r.updated??0} items`),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to update statuses: ${r.message}`)}}))},X=()=>{const e=i(),a=g();return c(e.mangaLibrary.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;s.success(`Removed ${n} ${n===1?"item":"items"} from reading list`),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to remove: ${r.message}`)}}))},Z=()=>{const e=i(),a=g();return c(e.mangaProgress.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;s.success(`Reset progress for ${n} ${n===1?"item":"items"}`),a.invalidateQueries({queryKey:["manga-progress"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())},onError:r=>{s.error(`Failed to reset progress: ${r.message}`)}}))},ee=()=>{const e=S(),a=F(),{data:r}=P(),n=Q(()=>new Set(r?.ids||[]),[r]);return{toggle:t=>{const m=L(t.provider,t.id);n.has(m)?a.mutate(m):e.mutate({provider:t.provider,mangaId:t.id,title:t.title,cover:t.cover,altTitle:t.altTitle,contentRating:t.contentRating})},bookmarkedIds:n,pending:e.isPending||a.isPending}};export{Z as A,J as B,_ as M,E as a,T as b,A as c,z as d,B as e,k as f,j as g,S as h,I as i,H as j,O as k,U as l,L as m,V as n,F as o,Y as p,w as q,N as r,x as s,$ as t,ee as u,f as v,G as w,D as x,W as y,X as z};
@@ -1 +1 @@
1
- import{u as e,S as f,L as m}from"./vendor-core-DfaOB3Rn.js";import{I as l}from"./vendor-icons-DrybRNxP.js";import{k as y,r as T}from"./useMangaLibrary-ChwDhlyo.js";import{d as I}from"./index-D46PzcOL.js";import{p as s,a as k}from"./MediaCard-C6sSx_z5.js";import{u as P}from"./usePopup-DS9jMzp6.js";const R=({data:i,anchorRect:d,bookmarked:r,onToggleBookmark:p,onMouseEnter:h,onMouseLeave:v,onRequestClose:g})=>{const{data:a,isLoading:N}=y(i.provider,i.mangaId,i.rating||"safe",i.mature||!1),{titlePreference:u}=I(),t=a?.chapters.length??0,c=[a?.status,a?.type].filter(Boolean).join(" · "),o=T({title:i.title,altTitle:a?.altTitle??i.altTitle},u);return e(k,{anchorRect:d,onMouseEnter:h,onMouseLeave:v,onRequestClose:g,children:N?e("div",{className:s.loading,children:[e("div",{className:s.spinner}),e("span",{children:"Fetching details..."})]}):e(f,{children:[e("div",{className:s.header,children:[e("div",{className:s.title,children:o}),a?.altTitle&&a.altTitle!==o&&e("div",{className:s.synopsis,children:["Also known as: ",a.altTitle]})]}),e("div",{className:s.body,children:[e("div",{className:s.metaRow,children:[c&&e("div",{className:s.metaItem,children:[e(l,{name:"book",size:14}),e("span",{children:c})]}),t>0&&e("div",{className:s.metaItem,children:e("span",{children:[t," chapter",t===1?"":"s"]})}),i.progressLabel&&e("div",{className:s.metaItem,children:[e(l,{name:"bookmark",size:12}),e("span",{children:i.progressLabel})]})]}),e("div",{className:s.synopsis,children:a?.description?a.description:"No synopsis available."}),Array.isArray(a?.genres)&&(a?.genres?.length??0)>0&&e("div",{className:s.details,children:e("div",{className:s.genres,children:a.genres.filter(Boolean).slice(0,4).map(n=>e("span",{className:s.genre,children:n},n))})})]}),e("div",{className:s.footer,children:[e("div",{className:s.primaryAction,children:e(m,{to:i.readTarget,className:s.watchBtn,children:[e(l,{name:"book",size:14}),"Read now"]})}),e("div",{className:s.secondaryActions,children:[e("button",{className:`${s.watchlistBtn} ${r?s.active:""}`,onClick:n=>{n.preventDefault(),n.stopPropagation(),p()},children:[r?e(l,{name:"check",size:12}):e(l,{name:"plus",size:12}),e("span",{children:r?"Remove":"Bookmark"})]}),e(m,{to:`/manga/${i.provider}/${encodeURIComponent(i.mangaId)}`,className:s.detailsBtn,children:"Read more"})]})]})]})})},$=()=>P();export{R as M,$ as u};
1
+ import{u as e,S as f,L as m}from"./vendor-core-DfaOB3Rn.js";import{I as l}from"./vendor-icons-DrybRNxP.js";import{k as y,r as T}from"./useMangaLibrary-JyVVwSCn.js";import{d as I}from"./index-CFHNQtWr.js";import{p as s,a as k}from"./MediaCard-DhBnuRF8.js";import{u as P}from"./usePopup-DS9jMzp6.js";const R=({data:i,anchorRect:d,bookmarked:r,onToggleBookmark:p,onMouseEnter:h,onMouseLeave:v,onRequestClose:g})=>{const{data:a,isLoading:N}=y(i.provider,i.mangaId,i.rating||"safe",i.mature||!1),{titlePreference:u}=I(),t=a?.chapters.length??0,c=[a?.status,a?.type].filter(Boolean).join(" · "),o=T({title:i.title,altTitle:a?.altTitle??i.altTitle},u);return e(k,{anchorRect:d,onMouseEnter:h,onMouseLeave:v,onRequestClose:g,children:N?e("div",{className:s.loading,children:[e("div",{className:s.spinner}),e("span",{children:"Fetching details..."})]}):e(f,{children:[e("div",{className:s.header,children:[e("div",{className:s.title,children:o}),a?.altTitle&&a.altTitle!==o&&e("div",{className:s.synopsis,children:["Also known as: ",a.altTitle]})]}),e("div",{className:s.body,children:[e("div",{className:s.metaRow,children:[c&&e("div",{className:s.metaItem,children:[e(l,{name:"book",size:14}),e("span",{children:c})]}),t>0&&e("div",{className:s.metaItem,children:e("span",{children:[t," chapter",t===1?"":"s"]})}),i.progressLabel&&e("div",{className:s.metaItem,children:[e(l,{name:"bookmark",size:12}),e("span",{children:i.progressLabel})]})]}),e("div",{className:s.synopsis,children:a?.description?a.description:"No synopsis available."}),Array.isArray(a?.genres)&&(a?.genres?.length??0)>0&&e("div",{className:s.details,children:e("div",{className:s.genres,children:a.genres.filter(Boolean).slice(0,4).map(n=>e("span",{className:s.genre,children:n},n))})})]}),e("div",{className:s.footer,children:[e("div",{className:s.primaryAction,children:e(m,{to:i.readTarget,className:s.watchBtn,children:[e(l,{name:"book",size:14}),"Read now"]})}),e("div",{className:s.secondaryActions,children:[e("button",{className:`${s.watchlistBtn} ${r?s.active:""}`,onClick:n=>{n.preventDefault(),n.stopPropagation(),p()},children:[r?e(l,{name:"check",size:12}):e(l,{name:"plus",size:12}),e("span",{children:r?"Remove":"Bookmark"})]}),e(m,{to:`/manga/${i.provider}/${encodeURIComponent(i.mangaId)}`,className:s.detailsBtn,children:"Read more"})]})]})]})})},$=()=>P();export{R as M,$ as u};
@@ -1 +1 @@
1
- import{T as o}from"./vendor-core-DfaOB3Rn.js";import{b as a}from"./vendor-query-BBT5_sHx.js";import{U as i}from"./index-D46PzcOL.js";const n=300*1e3;function u(r){return{value:r.id,label:r.label,mature:r.mature,kind:r.kind,sub:r.sub,tier:r.tier,browse:r.browse,facets:r.facets,servers:r.servers}}const d=()=>{const r=a({queryKey:["providers"],queryFn:()=>i("/api/providers"),staleTime:n,retry:1}),e=Array.isArray(r.data)?r.data:null,t=o(()=>e&&e.length>0?e.filter(s=>s.loaded).map(u):[],[e]);return{...r,options:t,isFallback:!e||e.length===0}};export{d as u};
1
+ import{T as o}from"./vendor-core-DfaOB3Rn.js";import{b as a}from"./vendor-query-BBT5_sHx.js";import{U as i}from"./index-CFHNQtWr.js";const n=300*1e3;function u(r){return{value:r.id,label:r.label,mature:r.mature,kind:r.kind,sub:r.sub,tier:r.tier,browse:r.browse,facets:r.facets,servers:r.servers}}const d=()=>{const r=a({queryKey:["providers"],queryFn:()=>i("/api/providers"),staleTime:n,retry:1}),e=Array.isArray(r.data)?r.data:null,t=o(()=>e&&e.length>0?e.filter(s=>s.loaded).map(u):[],[e]);return{...r,options:t,isFallback:!e||e.length===0}};export{d as u};
@@ -1 +1 @@
1
- import{N as c,u as r,S as d}from"./vendor-core-DfaOB3Rn.js";import{I as v}from"./vendor-icons-DrybRNxP.js";import{M as T}from"./MediaCard-C6sSx_z5.js";import{T as g}from"./TvPopup-DNQkT6qy.js";import{c as m,i as f}from"./useTvLibrary-340c9BPM.js";import{b as i}from"./vendor-query-BBT5_sHx.js";import{h as p}from"./index-D46PzcOL.js";const _=c(({item:e})=>{const o=e.type==="tv"||e.type==="tvSeries"||e.type==="tvMiniSeries",s=m(e.type,e.id);return r(T,{item:{id:String(e.id),title:e.title,thumbnail:e.image,typeBadge:o?"TV":"Movie",isAdult:f(e)},linkTo:s,hoverIcon:"info",showInfoButton:!0,metaRow:r(d,{children:[e.year&&r("span",{style:{opacity:.75},children:e.year}),e.vote_average!=null&&r("span",{style:{display:"inline-flex",alignItems:"center",gap:3},children:[r(v,{name:"star",size:10}),Number(e.vote_average).toFixed(1)]})]}),renderPopup:(a,t)=>r(g,{item:e,anchorRect:a,onMouseEnter:t.onMouseEnter,onMouseLeave:t.onMouseLeave,onRequestClose:t.close})})}),u=1e3*60*5,b=e=>{const o=p(),{query:s,type:a,genre:t,year:n,sort_by:l,page:y}=e;return i({...o.tv.search.queryOptions({q:s?.trim()||"",type:a||"multi",genre:t||"",year:n&&n!=="ALL"?n:"",sortBy:l||"popularity.desc",page:y||1}),staleTime:u,retry:1})},A=(e="all",o="week",s=1,a=!0)=>{const t=p();return i({...t.tv.trending.queryOptions({mediaType:e,timeWindow:o,page:s}),enabled:a,staleTime:u,retry:1})};export{_ as T,b as a,A as u};
1
+ import{N as c,u as r,S as d}from"./vendor-core-DfaOB3Rn.js";import{I as v}from"./vendor-icons-DrybRNxP.js";import{M as T}from"./MediaCard-DhBnuRF8.js";import{T as g}from"./TvPopup-CHFaDWpi.js";import{c as m,i as f}from"./useTvLibrary-DPO3DmuK.js";import{b as i}from"./vendor-query-BBT5_sHx.js";import{h as p}from"./index-CFHNQtWr.js";const _=c(({item:e})=>{const o=e.type==="tv"||e.type==="tvSeries"||e.type==="tvMiniSeries",s=m(e.type,e.id);return r(T,{item:{id:String(e.id),title:e.title,thumbnail:e.image,typeBadge:o?"TV":"Movie",isAdult:f(e)},linkTo:s,hoverIcon:"info",showInfoButton:!0,metaRow:r(d,{children:[e.year&&r("span",{style:{opacity:.75},children:e.year}),e.vote_average!=null&&r("span",{style:{display:"inline-flex",alignItems:"center",gap:3},children:[r(v,{name:"star",size:10}),Number(e.vote_average).toFixed(1)]})]}),renderPopup:(a,t)=>r(g,{item:e,anchorRect:a,onMouseEnter:t.onMouseEnter,onMouseLeave:t.onMouseLeave,onRequestClose:t.close})})}),u=1e3*60*5,b=e=>{const o=p(),{query:s,type:a,genre:t,year:n,sort_by:l,page:y}=e;return i({...o.tv.search.queryOptions({q:s?.trim()||"",type:a||"multi",genre:t||"",year:n&&n!=="ALL"?n:"",sortBy:l||"popularity.desc",page:y||1}),staleTime:u,retry:1})},A=(e="all",o="week",s=1,a=!0)=>{const t=p();return i({...t.tv.trending.queryOptions({mediaType:e,timeWindow:o,page:s}),enabled:a,staleTime:u,retry:1})};export{_ as T,b as a,A as u};
@@ -1 +1 @@
1
- import{T as y}from"./vendor-core-DfaOB3Rn.js";import{b as v,u as o,a as n}from"./vendor-query-BBT5_sHx.js";import{h as a,z as i,t as p}from"./index-D46PzcOL.js";const d=t=>String(t).toLowerCase()==="movie"?"movie":"tv",m=(t,e)=>`${d(t)}:${e}`,L=(t,e)=>{const r=d(t);return`/tv/${e}?type=${r}`},S=(t,e,r,s)=>{const u=new URLSearchParams;return u.set("type",d(t)),r!==void 0&&u.set("s",String(r)),s!==void 0&&u.set("e",String(s)),`/tv/${e}/watch?${u.toString()}`},F=t=>t.adult===!0||t.adult===1,K=["Watching","Completed","On-Hold","Dropped","Planned"],g=(t,e)=>m(t,e),$=(t="All",e=1,r=24)=>{const s=a();return v(s.tvLibrary.list.queryOptions({status:t,page:e,limit:r}))},h=()=>{const t=a();return v({...t.tvLibrary.ids.queryOptions(),staleTime:1e3*60})},C=t=>{const e=a();return v({...e.tvLibrary.check.queryOptions({id:t||""}),enabled:!!t,staleTime:1e3*60})},w=(t=24)=>{const e=a();return v(e.tvProgress.continueWatching.queryOptions({limit:t}))},O=t=>{const e=a();return v({...e.tvProgress.getByMedia.queryOptions({mediaId:t||""}),enabled:!!t})},f=(t,e,r)=>{const s=a();return v({...s.tvProgress.latest.queryOptions({mediaId:t||"",season:e,episode:r}),enabled:!!t,staleTime:0})},b=()=>{const t=a(),e=o();return n({mutationFn:async r=>{const{silent:s,...u}=r;return p.tvLibrary.add.mutate(u)},onSuccess:(r,s)=>{s.silent||i.success("Added to TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter())},onError:r=>{i.error(`Failed to add: ${r.message}`)}})},Q=()=>{const t=a(),e=o();return n(t.tvLibrary.remove.mutationOptions({onSuccess:()=>{i.success("Removed from TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},k=()=>{const t=a(),e=o();return n(t.tvLibrary.setStatus.mutationOptions({onSuccess:()=>{i.success("Status updated"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update status: ${r.message}`)}}))},R=()=>{const t=a(),e=o();return n(t.tvProgress.save.mutationOptions({onSuccess:(r,s)=>{e.invalidateQueries({queryKey:["tv-progress",s.mediaId]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())}}))},B=()=>{const t=a(),e=o();return n(t.tvProgress.remove.mutationOptions({onSuccess:()=>{i.success("Progress reset"),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},E=()=>{const t=a(),e=o();return n(t.tvLibrary.batchStatus.mutationOptions({onSuccess:r=>{i.success(`Status updated for ${r.updated??0} items`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update statuses: ${r.message}`)}}))},I=()=>{const t=a(),e=o();return n(t.tvLibrary.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Removed ${s} ${s===1?"item":"items"} from TV watchlist`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},A=()=>{const t=a(),e=o();return n(t.tvProgress.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Reset progress for ${s} ${s===1?"item":"items"}`),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},M=()=>{const t=b(),e=Q(),{data:r}=h(),s=y(()=>new Set(r?.ids||[]),[r]);return{toggle:c=>{const l=g(c.mediaType,c.tmdbId);s.has(l)?e.mutate(l):t.mutate({...c,poster:c.poster||""})},bookmarkedIds:s,pending:t.isPending||e.isPending}};export{K as T,Q as a,B as b,L as c,m as d,C as e,M as f,R as g,k as h,F as i,f as j,O as k,$ as l,E as m,d as n,I as o,A as p,S as t,w as u};
1
+ import{T as y}from"./vendor-core-DfaOB3Rn.js";import{b as v,u as o,a as n}from"./vendor-query-BBT5_sHx.js";import{h as a,z as i,t as p}from"./index-CFHNQtWr.js";const d=t=>String(t).toLowerCase()==="movie"?"movie":"tv",m=(t,e)=>`${d(t)}:${e}`,L=(t,e)=>{const r=d(t);return`/tv/${e}?type=${r}`},S=(t,e,r,s)=>{const u=new URLSearchParams;return u.set("type",d(t)),r!==void 0&&u.set("s",String(r)),s!==void 0&&u.set("e",String(s)),`/tv/${e}/watch?${u.toString()}`},F=t=>t.adult===!0||t.adult===1,K=["Watching","Completed","On-Hold","Dropped","Planned"],g=(t,e)=>m(t,e),$=(t="All",e=1,r=24)=>{const s=a();return v(s.tvLibrary.list.queryOptions({status:t,page:e,limit:r}))},h=()=>{const t=a();return v({...t.tvLibrary.ids.queryOptions(),staleTime:1e3*60})},C=t=>{const e=a();return v({...e.tvLibrary.check.queryOptions({id:t||""}),enabled:!!t,staleTime:1e3*60})},w=(t=24)=>{const e=a();return v(e.tvProgress.continueWatching.queryOptions({limit:t}))},O=t=>{const e=a();return v({...e.tvProgress.getByMedia.queryOptions({mediaId:t||""}),enabled:!!t})},f=(t,e,r)=>{const s=a();return v({...s.tvProgress.latest.queryOptions({mediaId:t||"",season:e,episode:r}),enabled:!!t,staleTime:0})},b=()=>{const t=a(),e=o();return n({mutationFn:async r=>{const{silent:s,...u}=r;return p.tvLibrary.add.mutate(u)},onSuccess:(r,s)=>{s.silent||i.success("Added to TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter())},onError:r=>{i.error(`Failed to add: ${r.message}`)}})},Q=()=>{const t=a(),e=o();return n(t.tvLibrary.remove.mutationOptions({onSuccess:()=>{i.success("Removed from TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},k=()=>{const t=a(),e=o();return n(t.tvLibrary.setStatus.mutationOptions({onSuccess:()=>{i.success("Status updated"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update status: ${r.message}`)}}))},R=()=>{const t=a(),e=o();return n(t.tvProgress.save.mutationOptions({onSuccess:(r,s)=>{e.invalidateQueries({queryKey:["tv-progress",s.mediaId]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())}}))},B=()=>{const t=a(),e=o();return n(t.tvProgress.remove.mutationOptions({onSuccess:()=>{i.success("Progress reset"),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},E=()=>{const t=a(),e=o();return n(t.tvLibrary.batchStatus.mutationOptions({onSuccess:r=>{i.success(`Status updated for ${r.updated??0} items`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update statuses: ${r.message}`)}}))},I=()=>{const t=a(),e=o();return n(t.tvLibrary.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Removed ${s} ${s===1?"item":"items"} from TV watchlist`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},A=()=>{const t=a(),e=o();return n(t.tvProgress.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Reset progress for ${s} ${s===1?"item":"items"}`),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},M=()=>{const t=b(),e=Q(),{data:r}=h(),s=y(()=>new Set(r?.ids||[]),[r]);return{toggle:c=>{const l=g(c.mediaType,c.tmdbId);s.has(l)?e.mutate(l):t.mutate({...c,poster:c.poster||""})},bookmarkedIds:s,pending:t.isPending||e.isPending}};export{K as T,Q as a,B as b,L as c,m as d,C as e,M as f,R as g,k as h,F as i,f as j,O as k,$ as l,E as m,d as n,I as o,A as p,S as t,w as u};
@@ -33,7 +33,7 @@
33
33
  background-color: #0c0d12;
34
34
  }
35
35
  </style>
36
- <script type="module" crossorigin src="/assets/index-D46PzcOL.js"></script>
36
+ <script type="module" crossorigin src="/assets/index-CFHNQtWr.js"></script>
37
37
  <link rel="modulepreload" crossorigin href="/assets/vendor-core-DfaOB3Rn.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/vendor-query-BBT5_sHx.js">
39
39
  <link rel="modulepreload" crossorigin href="/assets/vendor-icons-DrybRNxP.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serifpersia/dango",
3
- "version": "3.5.5",
3
+ "version": "3.5.6",
4
4
  "description": "A web application for watching anime.",
5
5
  "main": "orchestrator.js",
6
6
  "repository": {
@@ -83,5 +83,5 @@
83
83
  "allowScripts": {
84
84
  "esbuild@0.28.2": true
85
85
  },
86
- "versionDate": "2026-10-11T15:58:41.003Z"
86
+ "versionDate": "2026-10-11T16:04:28.902Z"
87
87
  }
@@ -530,6 +530,7 @@ export const tvRouter = router({
530
530
  provider: mod.name,
531
531
  server: result.server || server,
532
532
  servers: result.servers,
533
+ embedUrl: result.embedUrl,
533
534
  sources: result.sources,
534
535
  audioTracks: result.audioTracks || [],
535
536
  subtitles: result.subtitles || [],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dango-server",
3
3
  "private": true,
4
- "version": "3.5.5",
4
+ "version": "3.5.6",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": ">=22.12.0"
@@ -1,4 +0,0 @@
1
- import{u as t,d as _,A as w,h as v,S as Le,g as jr,o as Wr,p as zr,a as Hr,T as Me,q as y}from"./vendor-core-DfaOB3Rn.js";import{u as Ur}from"./vendor-query-BBT5_sHx.js";import{g as cn,e as Kr,t as _t,z as qr,O as Yr,M as Nn,B as je}from"./index-D46PzcOL.js";import{I as V}from"./vendor-icons-DrybRNxP.js";import{S as Gr,U as Qr,p as Mn,M as Xr,D as cr,m as Ln,k as Zr,C as Jr,a as es,b as ts,c as an,u as ns,d as rs,e as ss,j as os,f as as,h as is,l as ls,B as cs,i as In,F as ds,G as us,H as ar,s as Bn,n as ms,o as hs,q as gs,r as fs,t as Qe,A as ps,v as bs,E as vs,y as ys,P as _s,w as Te,z as Ss,R as Ts}from"./AvSyncCalibrator-DJAEqz-M.js";import{S as Cs,O as wn,a as ks,A as xs,b as Es}from"./OptionListMenu-DxXGdXOU.js";import{u as Ns}from"./useProviders-CguDlK81.js";import{d as Is,g as Bs,h as ws,f as As,e as Ms,j as Ls,k as Ps}from"./useTvLibrary-340c9BPM.js";import{l as Rs,c as $s}from"./hls-BIOzsLUy.js";import{u as Ds}from"./useIsMobile-Dvx1uJ82.js";import{S as Os}from"./SynopsisText-B3Sa5pRv.js";const Fs="_fullscreenFlat_1xij1_1",Vs="_timeDisplay_1xij1_15",js="_bottomControls_1xij1_19",Ws="_leftControls_1xij1_23",zs="_rightControls_1xij1_24",Hs="_controlBtn_1xij1_28",Us="_controlsOverlay_1xij1_47",Ks="_hidden_1xij1_67",qs="_topControls_1xij1_73",Ys="_backBtn_1xij1_93",Gs="_videoTitleInfo_1xij1_113",Qs="_animeTitle_1xij1_119",Xs="_episodeLabel_1xij1_127",Zs="_speedBoostBadge_1xij1_134",Js="_progressBarContainer_1xij1_180",eo="_progressBar_1xij1_180",to="_thumb_1xij1_199",no="_bufferedBar_1xij1_217",ro="_watchedBar_1xij1_227",so="_scrubbing_1xij1_252",oo="_timeBubble_1xij1_256",ao="_bottomControlsRow_1xij1_270",io="_nextEpisodeBtn_1xij1_293",lo="_active_1xij1_346",co="_settingsPanel_1xij1_421",uo="_settingsHeader_1xij1_440",mo="_settingsBackBtn_1xij1_448",ho="_settingsTitle_1xij1_466",go="_settingsContent_1xij1_477",fo="_currentValue_1xij1_486",po="_menuItem_1xij1_501",bo="_menuNote_1xij1_534",vo="_loadingOverlay_1xij1_547",yo="_loadingDots_1xij1_558",_o="_dot_1xij1_563",So="_bufferingOverlay_1xij1_592",To="_bufferingSpinner_1xij1_601",a={fullscreenFlat:Fs,timeDisplay:Vs,bottomControls:js,leftControls:Ws,rightControls:zs,controlBtn:Hs,controlsOverlay:Us,hidden:Ks,topControls:qs,backBtn:Ys,videoTitleInfo:Gs,animeTitle:Qs,episodeLabel:Xs,speedBoostBadge:Zs,progressBarContainer:Js,progressBar:eo,thumb:to,bufferedBar:no,watchedBar:ro,scrubbing:so,timeBubble:oo,bottomControlsRow:ao,nextEpisodeBtn:io,active:lo,settingsPanel:co,settingsHeader:uo,settingsBackBtn:mo,settingsTitle:ho,settingsContent:go,currentValue:fo,menuItem:po,menuNote:bo,loadingOverlay:vo,loadingDots:yo,dot:_o,bufferingOverlay:So,bufferingSpinner:To},Co=({player:o,visible:b,settingsOpen:z,onOpenSettings:F,onCloseSettings:G,hasSubtitles:R,isSubtitleActive:r,subtitles:I,onSubtitleChange:i,showNextEpisodeButton:J,onNextEpisode:Q,isTheaterMode:$,onTheaterModeToggle:g,timeLabelRef:K})=>{const{state:h,refs:We,actions:B}=o,X=We.videoRef,Pe=S=>{const ee=X.current;!ee||isNaN(h.duration)||h.duration===0||(ee.currentTime=S*h.duration)},Re=()=>{X.current&&(B.setIsScrubbing(!0),B.wasPlayingBeforeScrub.current=!X.current.paused,X.current.pause())},ze=S=>{const ee=X.current;ee&&h.duration&&(ee.currentTime=S*h.duration)},He=()=>{B.setIsScrubbing(!1),B.wasPlayingBeforeScrub.current&&X.current?.play().catch(()=>{})},Xe=S=>{const ee=X.current;ee&&(ee.volume=S,ee.muted=S===0)},se=()=>{if(r){i(-1);return}let S=null;try{S=localStorage.getItem("tvLastSubtitle")}catch{}i(Mn(I,{lastKey:S,enabled:!0}))},q=h.isMuted?t(V,{name:"volume-mute"}):h.volume<.5?t(V,{name:"volume-down"}):t(V,{name:"volume-up"});return t("div",{className:`${a.controlsOverlay} ${b?"":a.hidden}`,"data-speed-boost-ignore":"true",style:{pointerEvents:"none",background:"none",justifyContent:"flex-end"},children:t("div",{className:a.bottomControls,onClick:S=>S.stopPropagation(),children:[t(Gr,{classes:{container:a.progressBarContainer,scrubbing:a.scrubbing,timeBubble:a.timeBubble,bar:a.progressBar,buffered:a.bufferedBar,watched:a.watchedBar,thumb:a.thumb},videoRef:X,duration:h.duration,formatTime:cn,isScrubbing:h.isScrubbing,buffered:"full",onSeek:Pe,onScrubStart:Re,onScrubMove:ze,onScrubEnd:He,timeLabelRef:K}),t("div",{className:a.bottomControlsRow,children:[t("div",{className:a.leftControls,children:[t("button",{className:a.controlBtn,onClick:B.togglePlay,"aria-label":h.isPlaying?"Pause":"Play",children:h.isPlaying?t(V,{name:"pause"}):t(V,{name:"play"})}),t(Qr,{muted:h.isMuted,volume:h.volume,volumeIcon:q,buttonClassName:a.controlBtn,onToggleMute:B.toggleMute,onVolumeChange:Xe,onExpandedChange:S=>B.setShowVolumeSlider(S)}),t("span",{className:a.timeDisplay,ref:K,children:[cn(0)," / ",cn(h.duration)]})]}),t("div",{className:a.rightControls,children:[J&&t("button",{className:a.nextEpisodeBtn,onClick:Q,title:"Play next episode",children:"Next EP"}),R&&t("button",{className:`${a.controlBtn} ${r?a.active:""}`,onClick:se,"aria-label":r?"Turn subtitles off":"Turn subtitles on",children:t(V,{name:"closed-captioning"})}),t("button",{className:`${a.controlBtn} ${z?a.active:""}`,onClick:()=>z?G():F(),"aria-label":"Settings",children:t(V,{name:"cog"})}),t("button",{className:`${a.controlBtn} ${$?a.active:""}`,onClick:S=>{S.stopPropagation(),g()},title:$?"Exit Theater Mode":"Theater Mode","aria-label":$?"Exit Theater Mode":"Theater Mode",children:t(V,{name:"tv"})}),t("button",{className:a.controlBtn,onClick:B.toggleFullscreen,"aria-label":h.isFullscreen?"Exit Fullscreen":"Fullscreen",children:h.isFullscreen?t(V,{name:"compress"}):t(V,{name:"expand"})})]})]})]})})},ln=-6e4,An=6e4,ir=500,ko=({classes:o,delayMs:b,onDelayChange:z})=>{const[F,G]=_(null),R=F??b,r=w(z);r.current=z;const I=w(b);I.current=b;const i=w(null);i.current=F,v(()=>{G(null)},[b]),v(()=>()=>{const $=i.current;$!==null&&$!==I.current&&r.current($)},[]);const J=$=>{I.current=$,i.current=null,r.current($),G(null)},Q=$=>{const g=i.current??I.current,K=Math.max(ln,Math.min(An,g+$));J(K)};return t(Le,{children:[t("div",{style:{display:"flex",gap:6,padding:"0.5rem 0.75rem 0.25rem"},children:[t("button",{type:"button",className:o.item,onClick:()=>Q(-ir),"aria-label":"Show subtitles 0.5 seconds earlier",style:{flex:1,justifyContent:"center"},children:t("span",{children:"-0.5s"})}),t("button",{type:"button",className:o.item,onClick:()=>Q(ir),"aria-label":"Show subtitles 0.5 seconds later",style:{flex:1,justifyContent:"center"},children:t("span",{children:"+0.5s"})}),t("button",{type:"button",className:o.item,onClick:()=>J(0),disabled:R===0,"aria-label":"Reset subtitle timing",style:{flex:1,justifyContent:"center"},children:t("span",{children:"Reset"})})]}),t(Xr,{label:"Subtitle timing",display:cr(R),min:ln,max:An,step:100,value:R,percent:(R-ln)/(An-ln)*100,onChange:$=>{const g=Math.round($);i.current=g,G(g)},onCommit:()=>{const $=i.current;$!==null&&J($)}}),t("div",{className:o.note,children:"Positive delays subtitles (show later). Negative shows them earlier. 0.0s is default."})]})},xo=({view:o,onSelectView:b,onClose:z,player:F,onSubtitleStyleChange:G,streams:R,resolutionIdx:r,onResolutionChange:I,hasSubtitles:i,subtitles:J,selectedSubtitle:Q,isSubtitleActive:$,onSubtitleChange:g,audioTracks:K,selectedAudioTrack:h,onAudioTrackChange:We,videoDelayEnabled:B,onVideoDelayToggle:X,videoDelayMs:Pe,onVideoDelayChange:Re,onCalibrate:ze,subtitleDelayMs:He,onSubtitleDelayChange:Xe,ambientSettings:se,onAmbientChange:q})=>{const{state:S}=F,ee=()=>t(Le,{children:[R.length>1&&t("button",{className:a.menuItem,onClick:()=>b("resolution"),children:[t("span",{children:"Resolution"}),t("span",{className:a.currentValue,children:R[r]?.quality||"Auto"})]}),i&&t("button",{className:a.menuItem,onClick:()=>b("subtitles"),children:[t("span",{children:"Subtitles"}),t("span",{className:a.currentValue,children:$?J[Q]?.label||J[Q]?.language:"Off"})]}),i&&t("button",{className:a.menuItem,onClick:()=>b("subtitle-style"),children:[t("span",{children:"Subtitle Style"}),t("span",{className:a.currentValue,children:[S.subtitleFontSize.toFixed(1),"x · ",S.subtitlePosition]})]}),i&&t("button",{className:a.menuItem,onClick:()=>b("subtitle-timing"),children:[t("span",{children:"Subtitle Timing"}),t("span",{className:a.currentValue,children:cr(He)})]}),K.length>0&&t("button",{className:a.menuItem,onClick:()=>b("audio"),children:[t("span",{children:"Audio Track"}),t("span",{className:a.currentValue,children:K[h]?.label||K[h]?.language})]}),t("button",{className:a.menuItem,onClick:()=>b("av-sync"),children:[t("span",{children:"A/V Sync"}),t("span",{className:a.currentValue,children:B?`${Pe}ms`:"Off"})]}),se&&q&&t("button",{className:a.menuItem,onClick:()=>b("ambient"),children:[t("span",{children:"Ambient Light"}),t("span",{className:a.currentValue,children:se.enabled?"On":"Off"})]})]}),Ce=()=>t(wn,{classes:{item:a.menuItem,active:a.active},options:R.map((T,H)=>({key:String(H),label:T.quality,selected:H===r})),onSelect:T=>I(Number(T))}),Y=()=>t(wn,{classes:{item:a.menuItem,active:a.active},options:[{key:"off",label:"Off",selected:!$},...J.map((T,H)=>({key:String(H),label:T.label||T.language,selected:H===Q}))],onSelect:T=>g(T==="off"?-1:Number(T))}),ke=()=>t(ks,{classes:{item:a.menuItem,active:a.active},values:{fontSize:S.subtitleFontSize,position:S.subtitlePosition,bgOpacity:S.subtitleBgOpacity,bgColor:S.subtitleBgColor,textColor:S.subtitleTextColor,edge:S.subtitleEdge,bold:S.subtitleBold},onChange:G}),A=()=>t(ko,{classes:{item:a.menuItem,active:a.active,note:a.menuNote},delayMs:He,onDelayChange:T=>Xe?.(T)}),$e=()=>t(wn,{classes:{item:a.menuItem,active:a.active},options:K.map((T,H)=>({key:String(H),label:T.label||T.language,selected:H===h})),onSelect:T=>We(Number(T))}),Ue=()=>t(xs,{classes:{item:a.menuItem,active:a.active,note:a.menuNote},enabled:B,delayMs:Pe,onToggle:T=>X?.(T),onDelayChange:T=>Re?.(T),onCalibrate:ze}),pe=()=>se&&q?t(Es,{classes:{item:a.menuItem,active:a.active,note:a.menuNote},values:se,onChange:q}):null;return t("div",{"data-speed-boost-ignore":"true",onClick:T=>T.stopPropagation(),children:t(Cs,{classes:{panel:a.settingsPanel,header:a.settingsHeader,backBtn:a.settingsBackBtn,title:a.settingsTitle,content:a.settingsContent},title:o==="main"?"Settings":o==="subtitle-style"?"Subtitle Style":o==="subtitle-timing"?"Subtitle Timing":o==="audio"?"Audio Track":o==="resolution"?"Resolution":o==="av-sync"?"A/V Sync":o==="ambient"?"Ambient Light":o.charAt(0).toUpperCase()+o.slice(1),onBack:()=>o==="main"?z():b("main"),children:[o==="main"&&ee(),o==="resolution"&&Ce(),o==="subtitles"&&Y(),o==="subtitle-style"&&ke(),o==="subtitle-timing"&&A(),o==="audio"&&$e(),o==="av-sync"&&Ue(),o==="ambient"&&pe()]})})},Eo=({player:o,title:b,episodeLabel:z,audioTracks:F,selectedAudioTrack:G,onAudioTrackChange:R,subtitles:r,selectedSubtitle:I,onSubtitleChange:i,streams:J,resolutionIdx:Q,onResolutionChange:$,onBack:g,children:K,videoDelayEnabled:h=!1,onVideoDelayToggle:We,videoDelayMs:B=0,onVideoDelayChange:X,onCalibrateAvSync:Pe,subtitleDelayMs:Re=0,onSubtitleDelayChange:ze,showNextEpisodeButton:He=!1,onNextEpisode:Xe,isLoading:se=!1,isTheaterMode:q,onTheaterModeToggle:S,ambientSettings:ee,onAmbientChange:Ce})=>{const{state:Y,refs:ke,actions:A}=o,$e=ke.videoRef,{subtitleFontSize:Ue,subtitlePosition:pe,subtitleBgOpacity:T,subtitleBgColor:H,subtitleTextColor:at,subtitleEdge:oe,subtitleBold:De}=Y,[be,Oe]=_(null),it=w(null),[Ot,St]=_(0);v(()=>{const ae=$e.current;if(!ae)return;const l=()=>St(ae.clientHeight||0);l();const d=new ResizeObserver(l);return d.observe(ae),()=>d.disconnect()},[$e]);const de=(ae,l)=>{try{localStorage.setItem(ae,String(l))}catch{}},ve=(ae,l)=>{switch(ae){case"fontSize":typeof l=="number"&&(A.setSubtitleFontSize(l),de("subtitleFontSize",l));break;case"position":typeof l=="number"&&(A.setSubtitlePosition(l),de("subtitlePosition",l));break;case"bgOpacity":typeof l=="number"&&(A.setSubtitleBgOpacity(l),de("subtitleBgOpacity",l));break;case"bgColor":typeof l=="string"&&(A.setSubtitleBgColor(l),de("subtitleBgColor",l));break;case"textColor":typeof l=="string"&&(A.setSubtitleTextColor(l),de("subtitleTextColor",l));break;case"edge":(l==="shadow"||l==="outline"||l==="none")&&(A.setSubtitleEdge(l),de("subtitleEdge",l));break;case"bold":typeof l=="boolean"&&(A.setSubtitleBold(l),de("subtitleBold",l));break}};v(()=>{const ae="tv-player-subtitle-style";let l=document.getElementById(ae);l||(l=document.createElement("style"),l.id=ae,document.head.appendChild(l));const d={fontSize:Ue,position:pe,bgOpacity:T,bgColor:H,textColor:at,edge:oe,bold:De},D=$e.current,ie=Ln(Ue,Ot||D?.clientHeight||720);if(l.textContent=Zr({...d,fontSize:ie}),D){const kt=()=>{const L=Number(pe);return isNaN(L)?0:Math.max(0,Math.min(100,L))},ut=(L,te)=>{try{const le=L;le.snapToLines=!1,le.line=te}catch{}},Wt=()=>{const L=ie*16,te=D.videoHeight||D.clientHeight||720,le=D.videoWidth||D.clientWidth||1280;return{step:L*1.3/te*100,chars:Math.max(20,Math.floor(le/(L*.55)))}},mt=L=>{const te=Math.max(0,Math.min(100,100-kt())),le=Array.from(L.activeCues??[]);if(le.length<=1){le.forEach(ue=>ut(ue,te));return}const{step:Ht,chars:_e}=Wt();let ht=te;for(let ue=le.length-1;ue>=0;ue--){const Nt=String(le[ue].text??"").replace(/<[^>]*>/g,"").split(`
2
- `).reduce((It,ce)=>It+Math.max(1,Math.ceil(ce.length/_e)),0),Ut=ht-Nt*Ht;ut(le[ue],Math.max(0,Ut)),ht=Ut-Ht*.4}},xt=()=>{const L=Math.max(0,Math.min(100,100-kt()));Array.from(D.textTracks).forEach(te=>{te.cues&&(Array.from(te.cues).forEach(le=>ut(le,L)),te.mode==="showing"&&mt(te))})};xt();const Ze=L=>{const te=L.target;te.mode==="showing"&&mt(te)},zt=()=>{Array.from(D.textTracks).forEach(L=>{L.removeEventListener("cuechange",Ze),L.addEventListener("cuechange",Ze)}),xt()};Array.from(D.textTracks).forEach(L=>{L.addEventListener("cuechange",Ze)}),D.textTracks.addEventListener("addtrack",zt);const xe=Array.from(D.querySelectorAll("track")),Et=()=>xt();return xe.forEach(L=>L.addEventListener("load",Et)),()=>{Array.from(D.textTracks).forEach(L=>{L.removeEventListener("cuechange",Ze)}),D.textTracks.removeEventListener("addtrack",zt),xe.forEach(L=>L.removeEventListener("load",Et))}}},[Ue,pe,T,H,at,oe,De,I,r,$e,Ot]);const Tt=r.length>0,lt=I>=0,M=()=>{Oe("main"),A.setShowControls(!0)},ct=()=>{Oe(null)},Ct=Y.showControls||!!be,ye=t(ts,{visible:Ct,title:b,episode:z,onBack:g,classes:{overlay:a.controlsOverlay,hidden:a.hidden,top:a.topControls,backBtn:a.backBtn,titleInfo:a.videoTitleInfo,title:a.animeTitle,episode:a.episodeLabel}}),dt=!se&&!Y.isBuffering&&Y.duration>0?t(Jr,{isPlaying:Y.isPlaying,onTogglePlay:A.togglePlay,onSkipBack:()=>A.seek(-10),onSkipForward:()=>A.seek(10)}):null,Ft=t(Co,{player:o,visible:Ct,settingsOpen:!!be,onOpenSettings:M,onCloseSettings:ct,hasSubtitles:Tt,isSubtitleActive:lt,subtitles:r,onSubtitleChange:i,showNextEpisodeButton:He,onNextEpisode:Xe,isTheaterMode:q,onTheaterModeToggle:S,timeLabelRef:it}),Vt=be?t(xo,{view:be,onSelectView:Oe,onClose:ct,player:o,onSubtitleStyleChange:ve,streams:J,resolutionIdx:Q,onResolutionChange:$,hasSubtitles:Tt,subtitles:r,selectedSubtitle:I,isSubtitleActive:lt,onSubtitleChange:i,audioTracks:F,selectedAudioTrack:G,onAudioTrackChange:R,videoDelayEnabled:h,onVideoDelayToggle:We,videoDelayMs:B,onVideoDelayChange:X,onCalibrate:()=>{Oe(null),Pe?.()},subtitleDelayMs:Re,onSubtitleDelayChange:ze,ambientSettings:ee,onAmbientChange:Ce}):null,jt=t(Le,{children:[se&&t("div",{className:a.loadingOverlay,"aria-hidden":"true",children:t("div",{className:a.loadingDots,children:[t("div",{className:a.dot}),t("div",{className:a.dot}),t("div",{className:a.dot})]})}),Y.isBuffering&&!se&&t("div",{className:a.bufferingOverlay,"aria-hidden":"true",children:t("div",{className:a.bufferingSpinner})}),Y.isSpeedBoostActive&&t("div",{className:a.speedBoostBadge,"aria-hidden":"true",children:[t("span",{children:"2x"}),t(V,{name:"forward",size:12})]})]});return t(es,{player:o,topBar:ye,centerControls:dt,bottomBar:!se&&Y.duration>0?Ft:null,settingsPanel:Vt,overlays:jt,isInteracting:!!be,className:Y.isFullscreen?a.fullscreenFlat:"",children:K})},No=({servers:o,selectedServer:b,onServerSelect:z})=>o.length===0?null:t("div",{className:an.sourceSelectionContainer,children:[t("h4",{children:"Source"}),t("div",{className:an.sourceButtons,children:o.map(F=>t("button",{className:`${an.sourceButton} ${b===F?an.active:""}`,onClick:()=>z(F),children:F},F))})]}),Io=jr.memo(No);function Bo(o,b,z){const F=()=>{const R=Array.isArray(o.audioTracks)?o.audioTracks.length:0,r=z.getWant(),I=R>0?Math.min(Math.max(0,r),R-1):r;o.audioTrack=I,I!==r&&z.onResolve(I)},G=(R,r)=>{const I=z.getWant(),i=Array.isArray(o.audioTracks)?o.audioTracks.length:0;if(r.id!==I&&I>=0&&I<i){o.audioTrack!==I&&(o.audioTrack=I);return}z.onResolve(r.id)};return o.on(b.MANIFEST_PARSED,F),o.on(b.AUDIO_TRACK_SWITCHED,G),()=>{o.off(b.MANIFEST_PARSED,F),o.off(b.AUDIO_TRACK_SWITCHED,G)}}const wo=/\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 Ao(){try{if(wo.test(navigator.userAgent||""))return!0;const o=navigator.deviceMemory;if(typeof o=="number"&&o>0&&o<2)return!0}catch{}return!1}const Mo="_page_y9mr4_1",Lo="_header_y9mr4_7",Po="_pageTitle_y9mr4_11",Ro="_searchForm_y9mr4_21",$o="_searchInput_y9mr4_27",Do="_searchBtn_y9mr4_42",Oo="_suggestions_y9mr4_58",Fo="_suggestionPill_y9mr4_65",Vo="_statusMsg_y9mr4_81",jo="_error_y9mr4_87",Wo="_textOnly_y9mr4_91",zo="_spinner_y9mr4_96",Ho="_spin_y9mr4_96",Uo="_sourceLoader_y9mr4_101",Ko="_ringSpinner_y9mr4_107",qo="_grid_y9mr4_125",Yo="_skeletonCard_y9mr4_131",Go="_skeletonThumb_y9mr4_136",Qo="_skeletonLine_y9mr4_142",Xo="_shimmer_y9mr4_149",Zo="_backBtn_y9mr4_169",Jo="_meta_y9mr4_187",ea="_headerActions_y9mr4_195",ta="_watchlistBtn_y9mr4_202",na="_active_y9mr4_220",ra="_year_y9mr4_230",sa="_rating_y9mr4_235",oa="_typeBadge_y9mr4_244",aa="_tv_y9mr4_252",ia="_movie_y9mr4_257",la="_tvSeries_y9mr4_262",ca="_tvMiniSeries_y9mr4_267",da="_overview_y9mr4_272",ua="_controls_y9mr4_279",ma="_controlLabel_y9mr4_287",ha="_select_y9mr4_297",ga="_playerSection_y9mr4_308",fa="_video_y9mr4_312",pa="_videoHidden_y9mr4_334",ba="_delayCanvas_y9mr4_339",va="_delayCanvasActive_y9mr4_352",ya="_subtitleOverlay_y9mr4_356",_a="_videoIframe_y9mr4_375",Sa="_retryButton_y9mr4_383",Ta="_sidebarSeason_y9mr4_398",Ca="_mobileSeasonRow_y9mr4_414",ka="_sidebarPosterCard_y9mr4_428",xa="_sidebarPosterMeta_y9mr4_443",Ea="_providerSelectWrap_y9mr4_460",Na="_genreRow_y9mr4_472",Ia="_genreChip_y9mr4_479",Ba="_metaRow_y9mr4_489",wa="_detailGrid_y9mr4_498",Aa="_detailItem_y9mr4_505",Ma="_imdbLink_y9mr4_527",p={page:Mo,header:Lo,pageTitle:Po,searchForm:Ro,searchInput:$o,searchBtn:Do,suggestions:Oo,suggestionPill:Fo,statusMsg:Vo,error:jo,textOnly:Wo,spinner:zo,spin:Ho,sourceLoader:Uo,ringSpinner:Ko,grid:qo,skeletonCard:Yo,skeletonThumb:Go,skeletonLine:Qo,shimmer:Xo,backBtn:Zo,meta:Jo,headerActions:ea,watchlistBtn:ta,active:na,year:ra,rating:sa,typeBadge:oa,tv:aa,movie:ia,tvSeries:la,tvMiniSeries:ca,overview:da,controls:ua,controlLabel:ma,select:ha,playerSection:ga,video:fa,videoHidden:pa,delayCanvas:ba,delayCanvasActive:va,subtitleOverlay:ya,videoIframe:_a,retryButton:Sa,sidebarSeason:Ta,mobileSeasonRow:Ca,sidebarPosterCard:ka,sidebarPosterMeta:xa,providerSelectWrap:Ea,genreRow:Na,genreChip:Ia,metaRow:Ba,detailGrid:wa,detailItem:Aa,imdbLink:Ma},La=[],Pa=[];function lr({error:o,onRetry:b}){return t("div",{className:`${p.statusMsg} ${p.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:o}),t("button",{className:p.retryButton,onClick:b,children:"Retry"})]})})}const qa=()=>{const{id:o}=Wr(),[b]=zr(),z=w(b);z.current=b;const F=Hr(),G=Ur(),R=b.get("type"),[r,I]=_(null),[i,J]=_(()=>parseInt(b.get("s")||"1",10)||1),[Q,$]=_([]),[g,K]=_(()=>parseInt(b.get("e")||"1",10)||1),[h,We]=_(()=>{try{return localStorage.getItem("tvProvider")||""}catch{return""}}),[B,X]=_([]),[Pe,Re]=_(""),{options:ze,isFallback:He,isLoading:Xe}=Ns(),se=Me(()=>ze.filter(e=>(e.kind??"tv")==="tv").map(e=>({id:e.value,label:e.label,tier:e.tier==="embed"?"embed":"direct",servers:e.servers})),[ze]),q=He||se.length===0?La:se,S=q.filter(e=>e.tier==="direct"),ee=q.filter(e=>e.tier==="embed"),[Ce,Y]=_(!1),[ke,A]=_(""),[$e,Ue]=_([]),[pe,T]=_(0),[H,at]=_([]),[oe,De]=_(-1),[be,Oe]=_(0),[it,Ot]=_(""),[St,de]=_(""),[ve,Tt]=_(()=>{try{return localStorage.getItem("tvServer")||""}catch{return""}}),lt=Me(()=>q.find(e=>e.id===h),[q,h]),M=lt?.tier==="embed",[ct,Ct]=_([]),ye=Me(()=>ct.length>0?ct:lt?.servers??[],[ct,lt]),dt=B[be]?.type==="iframe",Ft=dt&&B[be]?.url||"",Vt=w([]);v(()=>{Vt.current=B},[B]);const jt=w(pe);v(()=>{jt.current=pe},[pe]);const ae=w(oe);v(()=>{ae.current=oe},[oe]);const l=ns({skipIntervals:Pa}),d=l.refs.videoRef,D=w(null),ie=w([]),kt=w(null),ut=w(null),{videoDelayMs:Wt,videoDelayEnabled:mt,setDelayEnabled:xt,handleVideoDelayChange:Ze,isCalibrating:zt,testClipActive:xe,stopCalibration:Et,openAvSyncCalibrator:L,cancelAvSyncCalibrator:te,applyAvSyncCalibrator:le,toggleTestClip:Ht,calibReturnRef:_e,effectiveVideoDelayMs:ht}=rs(d),[ue,Pn]=_(()=>{try{const e=Number(localStorage.getItem("tvSubtitleDelayMs"));if(Number.isFinite(e)&&e>=-6e4&&e<=6e4)return Math.round(e)}catch{}return 0}),Nt=w(ue);Nt.current=ue;const Ut=y(e=>{const n=Math.max(-6e4,Math.min(6e4,Math.round(e)));if(Nt.current!==n){Nt.current=n,Pn(n);try{localStorage.setItem("tvSubtitleDelayMs",String(n))}catch{}}},[]);ss({videoRef:d,canvasRef:kt,delayMs:ht,enabled:mt});const It=mt,ce=It||ue!==0,{settings:dn,update:dr}=os(),un=w(ce);un.current=ce;const mn=y(()=>{if(!un.current)return;const e=d.current;e&&Array.from(e.textTracks).forEach(n=>{n.mode!=="hidden"&&(n.mode="hidden")})},[d]),{hasConsent:Bt,grant:ur}=Kr(),wt=w("");wt.current||(wt.current=`tv-${Date.now()}-${Math.random().toString(36).slice(2)}`);const f=R==="movie",Kt=o?Is(R||"tv",o):"",j=Kt,Rn=Bs(),qt=ws(),{toggle:$n,bookmarkedIds:mr,pending:hr}=As(),{data:Dn}=Ms(r?Kt:void 0),Yt=Dn?!!Dn.inLibrary:Kt?mr.has(Kt):!1,gr=y(()=>{!r||!o||$n({tmdbId:Number(o),mediaType:R||"tv",title:r.title,poster:r.poster,year:r.year,adult:r.adult})},[r,o,R,$n]),{data:Je,isFetched:On,isPending:Fn}=Ls(j||void 0,i,g),Gt=Me(()=>Q.map(e=>e.episode_number).sort((e,n)=>e-n),[Q]),et=Gt.indexOf(g),hn=et>0?Gt[et-1]:null,x=et>=0&&et<Gt.length-1?Gt[et+1]:null,Qt=Me(()=>(r?.seasons??[]).map(e=>e.season_number).filter(e=>Number.isFinite(e)).sort((e,n)=>e-n),[r]),Se=Me(()=>{if(f||x!=null)return null;const e=Qt.indexOf(i);return e>=0&&e<Qt.length-1?Qt[e+1]:(r?.number_of_seasons??0)>i?i+1:null},[f,x,Qt,i,r?.number_of_seasons]),Vn=Je?.currentTime??0,jn=Je?.duration??0,gn=Je?.completed===!0||Je?.completed===1||In(Vn,jn),[Ee,Fe]=_(!1),Ne=w(!1),fn=w(null),At=w(null);v(()=>{Ne.current=!1,At.current=null,Fe(!1)},[j,i,g]);const[Ie,Xt]=_(!1),[gt,Wn]=_(0),[tt,zn]=_(!1),[Ke,nt]=_(!1),[fr,pn]=_(!1),[pr,Hn]=_(""),[Zt,br]=_(!1),[vr,bn]=_(!1),{isTheaterMode:Be,toggleTheaterMode:vn,handleLayoutClick:yr}=as();v(()=>{const e=n=>{n.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')||n.key.toLowerCase()==="t"&&vn()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[vn]),is(l,(B.length>0||St!=="")&&!Be&&!Ie&&!Ee&&!Ke);const _r=Ds(),[ft,Sr]=_(ls),Tr=y(e=>{Sr(e),cs(e)},[]),me=w(!1),rt=w(null),yn=w(0),Un=w(!1),Kn=w(0),ne=w(null),Mt=w(""),Cr=ar(Vn,jn),Lt=!me.current&&!Ne.current&&(Ie||Ee||Ke||gn||Cr),pt=w(Lt);pt.current=Lt;const bt=w(!1);v(()=>{bt.current=tt},[tt]);const qe=y((e,n)=>{if(!j||!n||n<30)return;const s=In(e,n),c=s?n:e;Math.abs(c-yn.current)<10&&!s||(yn.current=c,Rn.mutate({mediaId:j,season:i,episode:g,currentTime:Math.floor(c),duration:Math.floor(n),completed:s,title:r?.title??null,poster:r?.poster??null,backdrop:r?.backdrop??null,year:r?.year??null,overview:r?.overview??null,tmdbId:r?.id??null,mediaType:R||"tv",adult:r?.adult?1:0}))},[j,i,g,Rn,r,R]),we=y((e,n)=>{Et();const s=new URLSearchParams(b);s.set("type",b.get("type")||"tv"),s.set("s",String(e)),s.set("e",String(n)),F(`${window.location.pathname}?${s.toString()}`)},[b,F,Et]),Pt=y(()=>{const e=d.current;if(!e||f||x==null){pn(!1);return}const n=e.duration||0,s=e.currentTime||0;pn(n>0&&s/n>=.8)},[f,x,d]),Jt=y((e,n)=>["tv-sources",h,f?"movie":"tv",o,e,n,ve],[h,f,o,ve]),en=y(async(e,n)=>{if(!r||!o||!h)return{valid:!1,sources:[]};const s=f?"movie":"tv",c=await _t.tv.sources.query({provider:h,type:s,tmdbId:String(o),season:e,episode:n,title:r.title||"",year:r.year||"",totalSeasons:String(r.number_of_seasons||1),imdbId:r.imdb_id||"",...ye.length>0&&ve?{server:ve}:{}});return{valid:"valid"in c?c.valid:!1,error:"error"in c?c.error:void 0,sources:c.sources,referer:"referer"in c?c.referer:void 0,audioTracks:c.audioTracks,subtitles:"subtitles"in c?c.subtitles:void 0,servers:"servers"in c?c.servers:void 0}},[r,o,h,f,ye,ve]),qn=y(()=>{if(f||!r||!o||!h||M||x==null)return;const e=Jt(i,x);G.getQueryState(e)?.status!=="success"&&G.prefetchQuery({queryKey:e,queryFn:()=>en(i,x),staleTime:300*1e3,gcTime:1800*1e3})},[f,r,o,h,M,x,i,G,Jt,en]),kr=y(()=>{if(xe)return;Pt();const e=d.current;!e||e.paused||e.ended||(e.duration>0&&e.duration-e.currentTime<=60&&qn(),rt.current&&clearTimeout(rt.current),rt.current=setTimeout(()=>{qe(e.currentTime,e.duration||0)},5e3))},[qe,d,xe,Pt,qn]),xr=y(()=>{const e=d.current;if(!e||!r)return;rt.current&&clearTimeout(rt.current),qe(e.currentTime,e.duration||0),Un.current=!0;const n=ds({seekInduced:Date.now()-Kn.current<us,autoplayEnabled:ft,hasNext:!f&&x!=null,isFinal:f||x==null});n==="advance"&&x!=null?(K(x),we(i,x)):n==="prompt-next"?(Ne.current=!1,me.current=!0,Fe(!0)):n==="prompt-complete"&&(Hn(f?r.title:`${r.title} — Season ${i}`),nt(!0),Ne.current=!0,me.current=!0)},[f,r,i,x,ft,qe,we,d]),Er=y(()=>{Un.current=!1,l.actions.onPlay()},[l.actions]),Nr=y(()=>{l.actions.onPause();const e=d.current;e&&!e.ended&&qe(e.currentTime,e.duration||0)},[l.actions,qe,d]),Ir=y(()=>{l.actions.onLoadedMetadata();const e=d.current;if(e){try{const n=parseFloat(localStorage.getItem("playerVolume")||"");isNaN(n)||(e.volume=Math.max(0,Math.min(1,n))),e.muted=localStorage.getItem("playerMuted")==="true"}catch{}if(ne.current!=null&&ne.current>0){try{e.currentTime=ne.current}catch{}ne.current=null}Pt()}},[l.actions,d,Pt]),vt=y(()=>{const e=d.current;if(e&&ne.current!=null&&ne.current>0){try{e.currentTime=ne.current}catch{}ne.current=null}},[d]),Br=y(()=>{gt>0&&(ne.current=gt);const e=d.current;if(e&&gt>0){try{e.currentTime=gt,ne.current=null}catch{}e.play().catch(()=>{})}Xt(!1),me.current=!0},[gt,d]),Yn=y(()=>{ne.current=null;const e=d.current;e&&(e.currentTime=0,e.play().catch(()=>{})),Xt(!1),me.current=!0},[d]),wr=y(()=>{Ne.current=!0,Fe(!1),me.current=!0},[]),Ar=y(()=>{Ne.current=!0,Fe(!1),me.current=!0,ne.current=null;const e=d.current;if(e){try{e.currentTime=0}catch{}e.play().catch(()=>{})}},[d]),Gn=y(()=>{x!=null&&(Ne.current=!0,Fe(!1),me.current=!0,K(x),we(i,x))},[x,i,we]),Qn=y(()=>{Se!=null&&(Ne.current=!0,Fe(!1),nt(!1),me.current=!0,J(Se),K(1),we(Se,1))},[Se,we]),Mr=y(async()=>{if(j)try{await qt.mutateAsync({id:j,status:"Completed"}),nt(!1),Fe(!1),F("/")}catch{}},[j,qt,F]);v(()=>{me.current=!1,fn.current=null,Xt(!1),pn(!1),Wn(0),zn(!1),bt.current=!1,ne.current=null,Mt.current=`${j}:${i}:${g}`,yn.current=0},[j,i,g]),v(()=>{On&&(zn(!0),bt.current=!0)},[On,j,i,g]),v(()=>{if(!Je||me.current)return;const e=`${j}:${i}:${g}`;if(fn.current===e)return;fn.current=e;const n=Je,s=n.currentTime??0,c=n.duration??0;ar(s,c)&&(Wn(s),Xt(!0))},[Je,j,i,g]),v(()=>{if(!tt||me.current||Ne.current||Ie||Ke||Ee)return;const e=`${j}:${i}:${g}`;if(At.current!==e){if(!gn){Fn||(At.current=e);return}if(f){At.current=e,Fe(!0);return}if(!(!r||et<0||Q.length===0)){if(At.current=e,x==null&&Se==null){r&&Q.length>0&&(Hn(`${r.title} — Season ${i}`),nt(!0),Ne.current=!0,me.current=!0);return}Fe(!0)}}},[tt,gn,Fn,Ie,Ke,Ee,f,x,Se,r,et,Q.length,j,i,g]),v(()=>{(Ie||Ee)&&d.current&&d.current.pause()},[Ie,Ee,d]),v(()=>{const e=d.current;return()=>{rt.current&&clearTimeout(rt.current),e&&!e.ended&&qe(e.currentTime,e.duration||0)}},[qe,d]);const _n=y(e=>{let n=null,s=!0;try{n=localStorage.getItem("tvLastSubtitle"),s=localStorage.getItem("tvSubtitlesEnabled")!=="false"}catch{}return Mn(e,{lastKey:n,enabled:s})},[]),Sn=y(e=>{if(!(e<0))try{localStorage.setItem("tvSubtitlesEnabled","true"),localStorage.setItem("tvSelectedSubtitle",String(e))}catch{}},[]),Xn=y(e=>{if(e.length===0)return 0;let n=null;try{n=localStorage.getItem("tvLastAudio")}catch{}if(n){const s=e.findIndex(U=>Bn(U)===n);if(s>=0)return s;const c=n.indexOf("|||"),m=c>=0?n.slice(0,c):n,E=c>=0?n.slice(c+3):n,u=e.findIndex(U=>U.language===m||U.label===E);if(u>=0)return u}return Mn(e,{lastKey:null,enabled:!0})},[]),{data:Zn}=Ps(j||void 0),Jn=Me(()=>(Zn?.progress??[]).filter(n=>n.season===i&&(n.completed===!0||n.completed===1||In(n.currentTime,n.duration))).map(n=>String(n.episode)),[Zn,i]),er=Me(()=>Q.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})),[Q]),tr=Me(()=>(r?.genres??[]).map(e=>e.name).slice(0,5),[r]),Tn=Me(()=>[r?.year,r?.status,r?.number_of_seasons?`${r.number_of_seasons} Season${r.number_of_seasons>1?"s":""}`:null,r?.number_of_episodes?`${r.number_of_episodes} Episodes`:null].filter(Boolean),[r]);v(()=>{if(q.length!==0&&!q.some(e=>e.id===h)){const e=q.find(n=>n.tier==="direct")?.id??q[0].id;We(e);try{localStorage.setItem("tvProvider",e)}catch{}}},[q,h]),v(()=>{Ct([])},[h]),v(()=>{if(ye.length!==0&&!ye.includes(ve)){Tt(ye[0]);try{localStorage.setItem("tvServer",ye[0])}catch{}}},[ye,ve]),v(()=>{if(!o){I(null),X([]),Re(""),A(""),de("");return}const e=Number(o),n=R||"tv";I(null),X([]),Re(""),A(""),de("");const s=parseInt(z.current.get("s")||"",10),c=parseInt(z.current.get("e")||"",10);J(isNaN(s)?1:s),K(isNaN(c)?1:c),Oe(0),_t.tv.details.query({type:n,id:String(e)}).then(m=>{const E={id:m.id,title:m.title||"",overview:m.overview||"",vote_average:m.vote_average,year:m.year,poster:m.poster,backdrop:m.backdrop,imdb_id:m.imdb_id||void 0,adult:m.adult,seasons:m.seasons,number_of_seasons:m.number_of_seasons};I(E),E.seasons&&E.seasons.length>0&&isNaN(s)&&J(E.seasons[0].season_number)}).catch(()=>{})},[o,R]),v(()=>{if(!r||!o)return;if(!(r.seasons!==void 0||r.number_of_seasons!==void 0)){$([]);return}const n=parseInt(b.get("e")||"",10);_t.tv.episodes.query({id:String(o),season:String(i)}).then(s=>{const c=(s.episodes||[]).map(m=>({episode_number:m.episode_number,name:m.name||"",vote_average:m.vote_average,overview:m.overview||"",still_path:m.still_path||""}));$(c),c.length!==0&&K(m=>!isNaN(n)&&c.some(E=>E.episode_number===n)?n:c.some(E=>E.episode_number===m)?m:c[0].episode_number)}).catch(()=>{})},[r,o,i,b]),v(()=>{if(!M||!r||!o)return;fetch(`/api/tv/embed/${h}/${f?"movie":"tv"}/${o}?season=${i}&episode=${g}`).then(n=>n.json()).then(n=>{if(n.url)return de(n.url),fetch(`/api/resolve?url=${encodeURIComponent(n.url)}`).then(s=>s.json()).then(s=>{s.finalUrl&&de(s.finalUrl)})}).catch(()=>{})},[h,r,o,i,g,f,M]);const tn=y(async()=>{if(!r||!o||!h||M||r.adult&&!Bt)return;const e=`${j}:${i}:${g}`;Y(!0),A(""),Vt.current.length===0&&(X([]),Oe(0),Ue([]),at([]));try{const n=await G.fetchQuery({queryKey:Jt(i,g),queryFn:()=>en(i,g),staleTime:3e5,gcTime:18e5});if(Mt.current!==e){Y(!1);return}if(Y(!1),!n.valid||!n.sources?.length){A(n.error?`${n.error}`:ye.length>0?`No streams from ${ve}. Try another server.`:"No streams available.");return}X(n.sources),Re(e),n.servers?.length&&Ct(n.servers),Oe(0),n.referer&&Ot(n.referer);const s=n.audioTracks||[];Ue(s),T(s.length>0?Xn(s):0);const c=n.subtitles||[];if(at(c),c.length>0){const u=_n(c);De(u),Sn(u)}else De(-1);const m=f?"movie":"tv",E=o;_t.tv.subtitles.query({type:m,tmdbId:String(E),season:String(i),episode:String(g)}).then(u=>{if(Mt.current!==e)return;const U=Array.isArray(u.subtitles)?u.subtitles:[];U.length!==0&&at(re=>{const C=[...re,...U.filter(Z=>!re.some(he=>he.url===Z.url))];if(re.length===0){const Z=_n(C);De(Z),Sn(Z)}return C})}).catch(()=>{}),A("")}catch{if(Mt.current!==e)return;Y(!1),A("Failed to load streams.")}},[r,o,h,i,g,f,M,Bt,ye,ve,_n,Sn,Xn,j,G,Jt,en]),Lr=y(e=>{Tt(e);try{localStorage.setItem("tvServer",e)}catch{}A("")},[]),Pr=y(e=>{We(e);try{localStorage.setItem("tvProvider",e)}catch{}},[]);v(()=>{h&&r&&!M&&tn()},[h,r,tn,M]),v(()=>{if(!d.current)return;if(D.current&&(D.current.destroy(),D.current=null),M||dt){const u=d.current;u&&(u.pause(),u.removeAttribute("src"),u.load());return}let e=!1;if(xe){const u=d.current;return u&&(u.pause(),u.removeAttribute("src"),u.load(),u.src="/av-sync-test.mp4",pt.current||u.play().catch(()=>{})),()=>{e=!0}}if(Mt.current===`${j}:${i}:${g}`&&ne.current==null&&!pt.current)try{const u=d.current;u&&!u.ended&&u.currentTime>1&&(ne.current=u.currentTime)}catch{}const s=!Ce&&Pe===`${j}:${i}:${g}`?dt?"":B[be]?.url||"":"";if(!s){try{d.current?.pause(),d.current?.removeAttribute("src"),d.current?.load()}catch{}return}const c=d.current;c.pause(),c.removeAttribute("src"),c.load(),l.actions.resetMediaState();const m=`/api/tv/stream-proxy?url=${encodeURIComponent(s)}&referer=${encodeURIComponent(it)}`;B[be]?.type==="hls"?(async()=>{const u=await Rs();if(!e)if(u&&u.isSupported()){const U=Ao()||document.body.classList.contains("low-end"),re=U?60:180,C=new u({enableWorker:!0,lowLatencyMode:!1,maxBufferLength:re,maxMaxBufferLength:re+(U?30:60),backBufferLength:U?30:60,maxBufferSize:(U?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}}}});D.current=C,C.on(u.Events.ERROR,(N,k)=>{k.fatal&&(A(`Stream failed (${k.details}). Try another source or reload.`),Y(!1),C.destroy(),D.current=null)}),C.loadSource(m),C.attachMedia(c);const Z=()=>{let N=!1,k=0;try{N=localStorage.getItem("tvSubtitlesEnabled")==="true";const P=parseInt(localStorage.getItem("tvSelectedSubtitle")||"0",10);!isNaN(P)&&P>=0&&(k=P)}catch{}return{enabled:N,index:k}},he=()=>{if(typeof C.subtitleTrack!="number")return;if(ie.current.length>0){C.subtitleTrack=-1;return}const N=Array.isArray(C.subtitleTracks)?C.subtitleTracks:[];if(N.length===0){C.subtitleTrack=-1;return}const k=Z();if(k.enabled){const P=k.index<N.length?k.index:0;C.subtitleTrack=P,De(P),mn()}else C.subtitleTrack=-1};Bo(C,u.Events,{getWant:()=>jt.current,onResolve:N=>T(N)}),C.on(u.Events.MANIFEST_PARSED,()=>{he(),_e.current!=null&&(c.currentTime=_e.current,_e.current=null),vt(),!pt.current&&bt.current&&c.play().catch(()=>{})}),C.on(u.Events.SUBTITLE_TRACKS_UPDATED,()=>{he()}),C.on(u.Events.SUBTITLE_TRACK_SWITCH,(N,k)=>{if(ie.current.length>0){if(k.id!==-1)try{C.subtitleTrack=-1}catch{}return}const P=Array.isArray(C.subtitleTracks)?C.subtitleTracks:[];if(P.length!==0){if(k.id===-1){const O=Z();if(O.enabled){const Ve=O.index<P.length?O.index:0;C.subtitleTrack=Ve;return}}De(k.id),mn()}})}else $s(c)&&(c.src=m,_e.current!=null&&(c.currentTime=_e.current,_e.current=null),vt(),!pt.current&&bt.current&&c.play().catch(()=>{A("Failed to play stream. Try another source.")}))})():(c.src=m,_e.current!=null&&(c.currentTime=_e.current,_e.current=null),vt(),!pt.current&&bt.current&&c.play().catch(()=>{A("Failed to play stream. Try another source.")}));const E=()=>{const re=c.error?.code===4?"Video source not supported or not found":"Failed to load video stream";A(`${re}. The source may be invalid or expired. Try switching source or reloading.`),Y(!1)};return c.addEventListener("error",E),()=>{e=!0,c.removeEventListener("error",E)}},[B,Pe,Ce,be,h,it,M,dt,d,_e,xe,j,i,g,vt,mn,l.actions]),v(()=>{if(!tt||Ie||Ee||Ke||Lt||M||xe)return;const e=d.current;!e||!e.paused||e.ended||e.readyState<1||(vt(),e.play().catch(()=>{}))},[tt,Ie,Ee,Ke,Lt,M,xe,vt,d]),v(()=>{const e=D.current;!e||typeof e.audioTrack!="number"||(e.audioTrack=pe)},[pe]),v(()=>{const e=D.current;!e||typeof e.subtitleTrack!="number"||!Array.isArray(e.subtitleTracks)||e.subtitleTracks.length===0||ie.current.length>0||(oe>=0?e.subtitleTrack=oe:e.subtitleTrack=-1)},[oe]),v(()=>{const e=d.current;if(!(!e||M)&&(e.querySelectorAll("track").forEach(n=>n.remove()),ie.current=[],H.length!==0&&(H.forEach(n=>{const s=document.createElement("track");s.kind="subtitles",s.label=n.label||n.language||"Unknown",s.srclang=n.language||n.label||"en";const c=`/api/subtitle-proxy?url=${encodeURIComponent(n.url)}&referer=${encodeURIComponent(it)}`;s.src=c,s.addEventListener("load",()=>{const m=ie.current.indexOf(s),E=s.track;if(E&&m>=0){const u=m===ae.current;E.mode=u&&!un.current?"showing":"hidden"}}),e.appendChild(s),ie.current.push(s)}),H.length>0)))try{const n=D.current;n&&typeof n.subtitleTrack=="number"&&n.subtitleTrack!==-1&&(n.subtitleTrack=-1)}catch{}},[H,it,M,h,d]),v(()=>{const e=d.current;if(!e||M)return;const n=D.current;ie.current.length>0&&n&&typeof n.subtitleTrack=="number"&&Array.isArray(n.subtitleTracks)&&n.subtitleTracks.length>0&&(n.subtitleTrack=-1);const s=()=>{const E=Ln(l.state.subtitleFontSize,e.clientHeight||720),u=Math.max(0,Math.min(100,100-l.state.subtitlePosition)),U=()=>{const N=E*16,k=e.videoHeight||e.clientHeight||720,P=e.videoWidth||e.clientWidth||1280;return{step:N*1.3/k*100,chars:Math.max(20,Math.floor(P/(N*.55)))}},re=(N,k)=>{const P=N;P.snapToLines=!1,P.line=k},C=N=>{if(!N.cues)return;Array.from(N.cues).forEach(ge=>re(ge,u));const k=Array.from(N.activeCues??[]);if(k.length<=1){k.forEach(ge=>re(ge,u));return}const{step:P,chars:O}=U();let Ve=u;for(let ge=k.length-1;ge>=0;ge--){const Ye=String(k[ge].text??"").replace(/<[^>]*>/g,"").split(`
3
- `).reduce((sn,$t)=>sn+Math.max(1,Math.ceil($t.length/O)),0);Ve=Math.max(0,Ve-Ye*P),re(k[ge],Ve),Ve-=P*.4}},Z=ie.current;if(Z.length>0){Z.forEach((N,k)=>{const P=N.track;if(!P)return;const O=k===oe;P.mode=O&&!ce?"showing":"hidden",O&&!ce&&C(P)});return}const he=Array.from(e.textTracks);he.length!==0&&he.forEach((N,k)=>{const P=k===oe;N.mode=P&&!ce?"showing":"hidden",P&&!ce&&C(N)})};s();const c=()=>s();e.textTracks.addEventListener("addtrack",c),e.addEventListener("loadedmetadata",s,{once:!0});const m=window.setTimeout(s,600);return()=>{e.textTracks.removeEventListener("addtrack",c),e.removeEventListener("loadedmetadata",s),window.clearTimeout(m)}},[oe,H,M,h,d,ce,l.state.subtitleFontSize,l.state.subtitlePosition]),v(()=>{if(!ce)return;const e=d.current,n=ut.current;if(!e||!n)return;const s=ue/1e3,c=ht/1e3,m=new Set;let E=[],u=-1,U=-1,re=-1,C=-1,Z=0,he=0,N=!1;const k=()=>{const W=ae.current;if(W<0)return null;const Ge=ie.current;return Ge.length>0?Ge[W]?.track??null:Array.from(e.textTracks)[W]??null},P=(W,Ge)=>{const fe=W.cues;if(!fe||fe.length===0)return Array.from(W.activeCues??[]);let st=0,ot=fe.length;for(;st<ot;){const Ae=st+ot>>>1;fe[Ae].endTime+s<Ge?st=Ae+1:ot=Ae}const Dt=[];for(let Ae=st;Ae<fe.length;Ae++){const on=fe[Ae];if(on.startTime+s>Ge)break;on.endTime+s>=Ge&&Dt.push(on)}return Dt},O=()=>{const W=k(),Ge=e.currentTime-c,fe=W?P(W,Ge):[],st=e.clientWidth,ot=e.clientHeight,Dt=e.videoWidth,Ae=e.videoHeight;if(fe.length===E.length&&fe.every((kn,xn)=>kn===E[xn])&&st===u&&ot===U&&Dt===re&&Ae===C||(E=fe,u=st,U=ot,re=Dt,C=Ae,n.textContent="",fe.length===0))return;const sr={fontSize:Ln(l.state.subtitleFontSize,ot),position:l.state.subtitlePosition,bgOpacity:l.state.subtitleBgOpacity,bgColor:l.state.subtitleBgColor,textColor:l.state.subtitleTextColor,edge:l.state.subtitleEdge,bold:l.state.subtitleBold},Or=ms(sr),Fr=hs(e,sr.position);fe.forEach((kn,xn)=>{const or=String(kn.text??"");if(!gs(or).trim())return;const En=document.createElement("div"),Vr=(fe.length-1-xn)*1.7;En.style.cssText=`${Or}
4
- bottom: calc(${Fr}px + ${Vr}em);`,En.innerHTML=fs(or),n.appendChild(En)})},Ve=()=>{Array.from(e.textTracks).forEach(W=>{m.has(W)||(m.add(W),W.addEventListener("cuechange",O))})},ge=()=>{Ve(),O()},Cn=()=>{if(N||he)return;const W=()=>{he=0,!(N||e.paused||e.ended)&&(O(),Cn())};he=window.requestAnimationFrame(W)},Ye=e,sn=()=>{Z=0,O(),!N&&Ye.requestVideoFrameCallback&&(Z=Ye.requestVideoFrameCallback(sn))},$t=()=>{O(),Ye.requestVideoFrameCallback?Z||(Z=Ye.requestVideoFrameCallback(sn)):Cn()};Ve(),e.textTracks.addEventListener("addtrack",ge),e.textTracks.addEventListener("removetrack",ge),e.addEventListener("timeupdate",O),e.addEventListener("seeked",O),e.addEventListener("loadedmetadata",O),e.addEventListener("play",$t);const nr=Array.from(e.querySelectorAll("track"));nr.forEach(W=>W.addEventListener("load",O));const rr=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>O());return rr?.observe(e),O(),$t(),()=>{N=!0,m.forEach(W=>W.removeEventListener("cuechange",O)),e.textTracks.removeEventListener("addtrack",ge),e.textTracks.removeEventListener("removetrack",ge),e.removeEventListener("timeupdate",O),e.removeEventListener("seeked",O),e.removeEventListener("loadedmetadata",O),e.removeEventListener("play",$t),nr.forEach(W=>W.removeEventListener("load",O)),rr?.disconnect(),he&&window.cancelAnimationFrame(he),Z&&Ye.cancelVideoFrameCallback&&Ye.cancelVideoFrameCallback(Z),n.textContent=""}},[ce,ue,oe,H,ht,d,l.state.subtitleFontSize,l.state.subtitlePosition,l.state.subtitleBgOpacity,l.state.subtitleBgColor,l.state.subtitleTextColor,l.state.subtitleEdge,l.state.subtitleBold]);const nn=()=>{I(null),X([]),de(""),F(-1)},Rr=y(e=>{J(e),K(1),we(e,1)},[we]),rn=!f&&r?.seasons&&r.seasons.length>1?t("label",{className:p.sidebarSeason,children:[t("span",{children:"Season"}),t("select",{value:i,onChange:e=>Rr(parseInt(e.target.value,10)||1),className:p.select,children:r.seasons.map(e=>t("option",{value:e.season_number,children:["Season ",e.season_number," (",e.episode_count," ep)"]},e.season_number))})]}):null,yt=y(e=>{const n=parseInt(e,10);if(!isNaN(n)){try{d.current?.pause()}catch{}K(n),we(i,n)}bn(!1)},[i,we,d]);v(()=>{if(f)return;const e=n=>{n.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')||n.key.toLowerCase()==="n"&&(x!=null?yt(String(x)):qr.error("No next episode available"))};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[f,x,yt]);const $r=e=>{T(e);try{const s=$e[e];s&&localStorage.setItem("tvLastAudio",Bn(s))}catch{}const n=D.current;n&&n.audioTrack!==void 0&&(n.audioTrack=e)},Dr=e=>{De(e);try{if(e===-1)localStorage.setItem("tvSubtitlesEnabled","false");else{localStorage.setItem("tvSubtitlesEnabled","true"),localStorage.setItem("tvSelectedSubtitle",String(e));const m=H[e];m&&localStorage.setItem("tvLastSubtitle",Bn(m))}}catch{}const n=d.current,s=D.current;if(s&&typeof s.subtitleTrack=="number"&&Array.isArray(s.subtitleTracks)&&s.subtitleTracks.length>0&&(s.subtitleTrack=ie.current.length>0||e<0?-1:e),!n)return;const c=ie.current;if(c.length>0){c.forEach((m,E)=>{const u=m.track;if(!u)return;const U=E===e;u.mode=U&&!ce?"showing":"hidden"});return}Array.from(n.textTracks).forEach((m,E)=>{const u=E===e;m.mode=u&&!ce?"showing":"hidden"})},Rt=y(()=>{if(!r)return;const e=d.current,n=f?"":`S${String(i).padStart(2,"0")}E${String(g).padStart(2,"0")}`;_t.discord.tvPresence.mutate({title:r.title,episodeLabel:n,isPlaying:e?!e.paused&&!e.ended:!0,thumbnail:r.poster,currentTime:e?e.currentTime:0,duration:e&&e.duration||0,isAdult:r.adult===!0,sessionId:wt.current}).catch(()=>{}),_t.discord.heartbeat.mutate({sessionId:wt.current}).catch(()=>{})},[r,f,i,g,d]);return v(()=>{if(!r)return;Rt();const e=window.setInterval(()=>{const n=d.current;(!n||!n.paused)&&Rt()},15e3);return()=>window.clearInterval(e)},[Rt,r,d]),v(()=>{if(!r||M||Ce||ke||B.length===0)return;const e=d.current;if(!e)return;const n=()=>Rt();return e.addEventListener("play",n),e.addEventListener("pause",n),e.addEventListener("seeked",n),()=>{e.removeEventListener("play",n),e.removeEventListener("pause",n),e.removeEventListener("seeked",n)}},[r,M,Ce,ke,B,Rt,d]),v(()=>{const e=wt.current,n=()=>Yr(e),s=()=>n();return window.addEventListener("pagehide",s),window.addEventListener("beforeunload",s),()=>{window.removeEventListener("pagehide",s),window.removeEventListener("beforeunload",s),n()}},[]),v(()=>{if(!r){document.title="TV & Movies - dango";return}document.title=f?`${r.title} - dango`:`${r.title} - Season ${i} Episode ${g} - dango`},[r,f,i,g]),v(()=>{if(!r||f)return;const e=new URLSearchParams(b),n=e.get("s"),s=e.get("e"),c=String(i),m=String(g);n===c&&s===m||(e.set("type",b.get("type")||"tv"),e.set("s",c),e.set("e",m),F(`${window.location.pathname}?${e.toString()}`,{replace:!0}))},[r,f,i,g,b,F]),t("div",{className:`${Qe.playerPageLayout} ${Be?Qe.theaterMode:""}`,onClick:yr,children:[Be&&t(ps,{videoRef:d,active:dn.enabled&&!M&&B.length>0&&!ke&&!(r?.adult&&!Bt),settings:dn}),!Be&&t("aside",{className:Qe.episodeSidebar,children:r?f?t("div",{className:p.sidebarPosterCard,children:[r.poster&&t("img",{src:`https://image.tmdb.org/t/p/w342${r.poster}`,alt:r.title,loading:"lazy",decoding:"async"}),t("div",{className:p.sidebarPosterMeta,children:[t("strong",{children:r.title}),t("span",{children:r.year})]})]}):t(bs,{episodes:er,currentEpisode:String(g),watchedEpisodes:Jn,onEpisodeClick:yt,header:rn}):f?t("div",{className:p.statusMsg,children:[t(V,{name:"spinner",className:p.spinner})," Loading..."]}):t(vs,{variant:"sidebar"})}),t("div",{className:Qe.playerMain,children:[r&&t("div",{className:p.playerSection,onContextMenu:e=>e.preventDefault(),style:r.adult&&!Bt?{filter:"blur(14px)",pointerEvents:"none",userSelect:"none"}:void 0,children:M&&St?t("iframe",{src:St,className:p.videoIframe,allow:"autoplay; fullscreen",allowFullScreen:!0}):!M&&Ft?t("iframe",{src:Ft,className:p.videoIframe,allow:"autoplay; fullscreen",allowFullScreen:!0}):!M&&(B.length>0||Ce)?t(Le,{children:[ke&&t(lr,{error:ke,onRetry:tn}),t(Eo,{player:l,title:r.title,episodeLabel:f?void 0:`S${i} E${g}`,audioTracks:$e,selectedAudioTrack:pe,onAudioTrackChange:$r,subtitles:H,selectedSubtitle:oe,onSubtitleChange:Dr,streams:B,resolutionIdx:be,onResolutionChange:Oe,onBack:nn,videoDelayEnabled:mt,onVideoDelayToggle:xt,videoDelayMs:Wt,onVideoDelayChange:Ze,onCalibrateAvSync:L,subtitleDelayMs:ue,onSubtitleDelayChange:Ut,showNextEpisodeButton:fr&&!Ie&&!Ee&&!Ke,onNextEpisode:Gn,isLoading:Ce,isTheaterMode:Be,onTheaterModeToggle:vn,ambientSettings:dn,onAmbientChange:dr,children:[t("video",{ref:d,autoPlay:tt&&!Lt,playsInline:!0,disablePictureInPicture:!0,className:`${p.video} ${It?p.videoHidden:""}`,onTimeUpdate:kr,onEnded:()=>{xe||xr()},onPlay:Er,onPause:Nr,onSeeked:()=>{Kn.current=Date.now(),Pt()},onLoadedMetadata:Ir,onVolumeChange:l.actions.onVolumeChange,onWaiting:l.actions.onWaiting,onPlaying:l.actions.onPlaying,onCanPlay:l.actions.onCanPlay,onContextMenu:e=>e.preventDefault(),onError:()=>{A("Video failed to load. Try another server or reload."),Y(!1)}}),t("canvas",{ref:kt,className:`${p.delayCanvas} ${It?p.delayCanvasActive:""}`}),ce&&t("div",{ref:ut,className:p.subtitleOverlay}),t(ys,{isOpen:zt,ms:Wt,onChange:Ze,onApply:le,onClose:te,testClipActive:xe,onTestClip:Ht})]})]}):ke&&!M?t(lr,{error:ke,onRetry:tn}):null}),!Be&&r&&t(_s,{}),!Be&&rn&&t("div",{className:p.mobileSeasonRow,children:rn}),!Be&&r&&t("div",{className:p.providerSelectWrap,children:t("label",{className:p.controlLabel,children:["Source",t("select",{value:h,onChange:e=>Pr(e.target.value),className:p.select,disabled:q.length===0,children:Xe?t("option",{value:"",children:"Loading..."}):q.length===0?t("option",{value:"",children:"No providers available"}):t(Le,{children:[S.length>0&&t("optgroup",{label:"Direct HLS",children:S.map(e=>t("option",{value:e.id,children:e.label},e.id))}),ee.length>0&&t("optgroup",{label:"Embeds",children:ee.map(e=>t("option",{value:e.id,children:e.label},e.id))})]})})]})}),!Be&&r&&!M&&(Ce?t("div",{className:p.sourceLoader,children:t("div",{className:p.ringSpinner})}):t(Io,{servers:ye,selectedServer:ve,onServerSelect:Lr})),!Be&&r&&t("div",{className:Qe.playerInfoContainer,children:[t("div",{className:Qe.playerInfoHeader,children:[t("div",{className:Qe.playerAnimeCard,children:r.poster&&t("img",{src:`https://image.tmdb.org/t/p/w342${r.poster}`,alt:r.title,loading:"lazy",decoding:"async"})}),t("div",{className:Qe.videoTitleSection,children:[t("div",{className:Te.titleContainer,children:[t("h1",{children:r.title}),t("div",{className:p.meta,children:[t("span",{className:p.year,children:r.year}),r.vote_average!=null&&r.vote_average>0&&t("span",{className:p.rating,children:[t(V,{name:"star",size:12}),Number(r.vote_average).toFixed(1)]}),t("span",{className:`${p.typeBadge} ${p[f?"movie":"tv"]}`,children:f?"Movie":"TV Show"})]}),tr.length>0&&t("div",{className:p.genreRow,children:tr.map(e=>t("span",{className:p.genreChip,children:e},e))}),Tn.length>0&&t("div",{className:p.metaRow,children:Tn.map((e,n)=>t("span",{children:[e,n<Tn.length-1?" · ":""]},`${e}-${n}`))})]}),t("div",{className:Te.controls,children:[t("button",{className:`${Te.watchlistBtn} ${Yt?Te.inList:""}`,onClick:gr,disabled:hr,type:"button",children:[Yt?t(V,{name:"check",size:14}):t(V,{name:"plus",size:14}),Yt?"In Watchlist":"Add to Watchlist"]}),!f&&t(Le,{children:[t("button",{className:`${Te.watchlistBtn}`,onClick:()=>hn!=null&&yt(String(hn)),disabled:hn==null,type:"button",children:[t(V,{name:"chevron-left",size:14}),"Prev EP"]}),t("button",{className:`${Te.watchlistBtn}`,onClick:()=>x!=null&&yt(String(x)),disabled:x==null,type:"button",children:["Next EP",t(V,{name:"chevron-right",size:14})]}),!f&&t("button",{className:`${Te.watchlistBtn} ${Te.modeToggleBtn} ${ft?Te.modeToggleActive:""}`,onClick:()=>Tr(!ft),type:"button","aria-pressed":ft,children:ft?"AUTOPLAY: ON":"AUTOPLAY: OFF"}),_r&&t("button",{className:`${Te.watchlistBtn}`,onClick:()=>bn(!0),type:"button",children:[t(V,{name:"list-ul",size:14}),"Episodes"]})]})]})]})]}),t("div",{className:Te.descriptionSection,children:[t("h3",{children:"Synopsis"}),t(Os,{text:r.overview,emptyText:"No description available."})]}),t("button",{className:Te.detailsToggleBtn,onClick:()=>br(!Zt),type:"button",children:[Zt?t(V,{name:"chevron-up"}):t(V,{name:"chevron-down"}),Zt?"Hide Details":"Show Details"]}),Zt&&t("div",{className:p.detailGrid,children:[r.first_air_date&&t("div",{className:p.detailItem,children:[t("strong",{children:f?"Release Date":"First Air Date"}),t("span",{children:r.first_air_date})]}),r.last_air_date&&t("div",{className:p.detailItem,children:[t("strong",{children:"Last Air Date"}),t("span",{children:r.last_air_date})]}),r.networks&&r.networks.length>0&&t("div",{className:p.detailItem,children:[t("strong",{children:"Networks"}),t("span",{children:r.networks.map(e=>e.name).join(", ")})]}),r.created_by&&r.created_by.length>0&&t("div",{className:p.detailItem,children:[t("strong",{children:"Created By"}),t("span",{children:r.created_by.map(e=>e.name).join(", ")})]}),r.episode_run_time&&r.episode_run_time.length>0&&t("div",{className:p.detailItem,children:[t("strong",{children:"Episode Runtime"}),t("span",{children:[r.episode_run_time[0]," min"]})]}),r.imdb_id&&t("div",{className:p.detailItem,children:[t("strong",{children:"IMDb"}),t("a",{href:`https://www.imdb.com/title/${r.imdb_id}`,target:"_blank",rel:"noopener noreferrer",className:p.imdbLink,children:"View on IMDb"})]})]})]}),!f&&t(Ss,{isOpen:vr,onClose:()=>bn(!1),episodes:er,currentEpisode:String(g),watchedEpisodes:Jn,onEpisodeClick:yt,header:rn}),r?.adult&&!Bt&&t(Nn,{isOpen:!0,title:"Content Warning",onClose:nn,children:t("div",{style:{padding:"1rem",textAlign:"center"},children:[t("p",{children:"This title contains mature content intended for adult audiences."}),t("p",{children:["By proceeding, you confirm that you are ",t("strong",{children:"18 years of age or older"})," ","(or the age of majority in your jurisdiction) and wish to view this content."]}),t("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[t(je,{variant:"secondary",onClick:nn,children:"Go Back"}),t(je,{onClick:ur,children:"I'm 18+, Continue"})]})]})}),t(Ts,{isOpen:Ie,onClose:Yn,title:"Resume Watching",message:t(Le,{children:["You were at ",t("strong",{children:cn(gt)})]}),restartLabel:"Start from Beginning",onResume:Br,onRestart:Yn}),t(Nn,{isOpen:Ee,onClose:wr,title:f?"Movie Completed":"Episode Completed",children:t("div",{style:{padding:"1rem",textAlign:"center"},children:[t("p",{children:f?t(Le,{children:"You've already watched this movie."}):t(Le,{children:["You've already watched"," ",t("strong",{children:["Season ",i," Episode ",g]}),". Would you like to continue?"]})}),t("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center",flexWrap:"wrap"},children:[t(je,{variant:"secondary",onClick:Ar,children:"Replay"}),x!=null?t(je,{onClick:Gn,children:["Watch EP ",x]}):Se!=null?t(je,{onClick:Qn,children:["Start Season ",Se]}):null]})]})}),t(Nn,{isOpen:Ke,onClose:()=>nt(!1),title:f?"Movie Completed!":Se!=null?"Season Complete!":"Show Completed!",children:t("div",{style:{padding:"1rem",textAlign:"center"},children:[t(V,{name:"check-circle",size:48,style:{color:"var(--accent-lighter)",marginBottom:"0.5rem"}}),t("p",{style:{fontSize:"1.1rem",fontWeight:600},children:pr}),t("p",{style:{color:"var(--text-secondary)"},children:f?"You finished this movie!":Se!=null?`You finished Season ${i}.`:"Congratulations! You finished all available episodes."}),t("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center",flexWrap:"wrap"},children:[t(je,{variant:"secondary",onClick:()=>nt(!1),children:"Close"}),Se!=null?t(je,{onClick:Qn,children:["Start Season ",Se]}):t(Le,{children:[t(je,{onClick:()=>{nt(!1),nn()},children:"Back to Details"}),Yt&&t(je,{onClick:Mr,disabled:qt.isPending,children:qt.isPending?"Saving...":"Move to Completed"})]})]})]})}),!r&&t("div",{className:p.statusMsg,children:[t(V,{name:"spinner",className:p.spinner})," Loading..."]})]})]})};export{qa as default};