@serifpersia/dango 4.0.7 → 4.0.8

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 (113) hide show
  1. package/README.md +1 -1
  2. package/client/dist/assets/AmbientLightMenu-CO10UIKM.js +1 -0
  3. package/client/dist/assets/{AnimeCard-CcvD-9Bi.js → AnimeCard-fC2KO9iC.js} +1 -1
  4. package/client/dist/assets/{AnimeInfo-t3qfap0B.js → AnimeInfo-KjBye_qd.js} +1 -1
  5. package/client/dist/assets/{AnimeInfoPage-D3vtcWL7.js → AnimeInfoPage-C73_sIog.js} +2 -2
  6. package/client/dist/assets/{Asmr-GHxClLoM.js → Asmr-Bl73R_56.js} +1 -1
  7. package/client/dist/assets/{AsmrPopup-Bt7wZkV8.js → AsmrPopup-BbvhL78t.js} +1 -1
  8. package/client/dist/assets/{AsmrResetProgressModal-Di6VgAZx.js → AsmrResetProgressModal-DuuqDv23.js} +1 -1
  9. package/client/dist/assets/Home-CoBFY-dI.css +1 -0
  10. package/client/dist/assets/Home-DtBGTNur.js +1 -0
  11. package/client/dist/assets/{Insights-B-jf5_UY.js → Insights-DRgipISO.js} +1 -1
  12. package/client/dist/assets/{LibraryListPage-B5q00Vno.js → LibraryListPage-DJcL0lfR.js} +1 -1
  13. package/client/dist/assets/{ListeningList-BNUrMPyA.js → ListeningList-KC8x2JTx.js} +1 -1
  14. package/client/dist/assets/{Manga-SYhXSYV_.js → Manga-DRLYjZ32.js} +1 -1
  15. package/client/dist/assets/{MangaInfoPage-CsGcpQ4g.js → MangaInfoPage-Dg5FyjKC.js} +1 -1
  16. package/client/dist/assets/{MangaReadPage-B0BKdQeU.js → MangaReadPage-CHMXWOeU.js} +1 -1
  17. package/client/dist/assets/{MangaResetProgressModal-8Q_Jp8Tk.js → MangaResetProgressModal-6C_7cQ9-.js} +1 -1
  18. package/client/dist/assets/Mature-DintSvcm.js +1 -0
  19. package/client/dist/assets/{MatureConsentModal-DoPl5ONK.js → MatureConsentModal-D2QxzAd5.js} +1 -1
  20. package/client/dist/assets/{MediaCard-Ce90T0yC.js → MediaCard-B13pU_sD.js} +1 -1
  21. package/client/dist/assets/{Player-CYrY9dNs.js → Player-D7JxeeEa.js} +6 -6
  22. package/client/dist/assets/{PlayerProvider-CjctET1A.js → PlayerProvider-BPOUTsvo.js} +1 -1
  23. package/client/dist/assets/PlayerSettings-Bn9-36NI.js +1 -0
  24. package/client/dist/assets/{PlayerSurface-B_rgFBYD.js → PlayerSurface-DRZlkk9L.js} +1 -1
  25. package/client/dist/assets/{QueueOptionsButton-BHkP1DB_.js → QueueOptionsButton-NMKIXk8k.js} +1 -1
  26. package/client/dist/assets/{QueueRail-CxtCW4xn.js → QueueRail-BMqj7tA1.js} +1 -1
  27. package/client/dist/assets/{ReadingList-C0hu5BhB.js → ReadingList-D3YqOY3n.js} +1 -1
  28. package/client/dist/assets/{ResetProgressModal-CncQLVw1.js → ResetProgressModal-Dw-OK0wI.js} +1 -1
  29. package/client/dist/assets/{Search-J3jIU8gd.js → Search-BWa4iAdv.js} +1 -1
  30. package/client/dist/assets/{Settings-B8jClutS.js → Settings-DGNoqBtn.js} +2 -2
  31. package/client/dist/assets/{SkeletonGrid-zCAxRZIz.js → SkeletonGrid-xGtg97zD.js} +1 -1
  32. package/client/dist/assets/{Trackers-DTlCK6Gw.js → Trackers-DpD8kLrJ.js} +1 -1
  33. package/client/dist/assets/Tv-gfhcHTMv.js +4 -0
  34. package/client/dist/assets/{TvInfo-Co-CnIbQ.js → TvInfo-h4NE1IP0.js} +1 -1
  35. package/client/dist/assets/TvPopup-on4rxc10.js +1 -0
  36. package/client/dist/assets/{TvSearch-dkkP831q.js → TvSearch-BoWPuHhz.js} +1 -1
  37. package/client/dist/assets/{TvWatchlist-CTxHqUB9.js → TvWatchlist-CZsKdghE.js} +1 -1
  38. package/client/dist/assets/{VirtualKeyboard-ClY9H0vl.js → VirtualKeyboard-BWvLAbre.js} +1 -1
  39. package/client/dist/assets/{WatchAlong-RAJe62YS.js → WatchAlong-BQ1knfz0.js} +1 -1
  40. package/client/dist/assets/{WatchAlongPanel-G2j2eopw.js → WatchAlongPanel-D_ToyGjh.js} +1 -1
  41. package/client/dist/assets/{Watchlist-D8prt4l1.js → Watchlist-4P7nHRSB.js} +1 -1
  42. package/client/dist/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff +0 -0
  43. package/client/dist/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2 +0 -0
  44. package/client/dist/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff +0 -0
  45. package/client/dist/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2 +0 -0
  46. package/client/dist/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff +0 -0
  47. package/client/dist/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2 +0 -0
  48. package/client/dist/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2 +0 -0
  49. package/client/dist/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff +0 -0
  50. package/client/dist/assets/bangers-latin-400-normal-BAEm-Pv0.woff +0 -0
  51. package/client/dist/assets/bangers-latin-400-normal-DeHY8Ncq.woff2 +0 -0
  52. package/client/dist/assets/bangers-latin-ext-400-normal-7BLmjjiv.woff2 +0 -0
  53. package/client/dist/assets/bangers-latin-ext-400-normal-CzVt_Cgx.woff +0 -0
  54. package/client/dist/assets/bangers-vietnamese-400-normal-BbvBhFjQ.woff2 +0 -0
  55. package/client/dist/assets/bangers-vietnamese-400-normal-Ll9rymNv.woff +0 -0
  56. package/client/dist/assets/bree-serif-latin-400-normal-DFKDEHQE.woff2 +0 -0
  57. package/client/dist/assets/bree-serif-latin-400-normal-Dbaz2OwO.woff +0 -0
  58. package/client/dist/assets/bree-serif-latin-ext-400-normal-CnorAOA2.woff +0 -0
  59. package/client/dist/assets/bree-serif-latin-ext-400-normal-amfO-E0k.woff2 +0 -0
  60. package/client/dist/assets/chakra-petch-latin-400-normal-D7EtbySE.woff +0 -0
  61. package/client/dist/assets/chakra-petch-latin-400-normal-SafcrIr2.woff2 +0 -0
  62. package/client/dist/assets/chakra-petch-latin-700-normal-CnDBPjkL.woff2 +0 -0
  63. package/client/dist/assets/chakra-petch-latin-700-normal-D1s_c2du.woff +0 -0
  64. package/client/dist/assets/chakra-petch-latin-ext-400-normal-C8u6EFkq.woff2 +0 -0
  65. package/client/dist/assets/chakra-petch-latin-ext-400-normal-MNNNbyh_.woff +0 -0
  66. package/client/dist/assets/chakra-petch-latin-ext-700-normal-BeviJPUl.woff +0 -0
  67. package/client/dist/assets/chakra-petch-latin-ext-700-normal-DAkvJhej.woff2 +0 -0
  68. package/client/dist/assets/chakra-petch-thai-400-normal-Bw1Q-fVY.woff2 +0 -0
  69. package/client/dist/assets/chakra-petch-thai-400-normal-KdzBjiWs.woff +0 -0
  70. package/client/dist/assets/chakra-petch-thai-700-normal-B7WL5pBr.woff2 +0 -0
  71. package/client/dist/assets/chakra-petch-thai-700-normal-vZLZ_5L8.woff +0 -0
  72. package/client/dist/assets/chakra-petch-vietnamese-400-normal-Cn7ya5On.woff +0 -0
  73. package/client/dist/assets/chakra-petch-vietnamese-700-normal-gQuUA8Wu.woff +0 -0
  74. package/client/dist/assets/comic-neue-latin-400-normal-BdhG8RSD.woff2 +0 -0
  75. package/client/dist/assets/comic-neue-latin-400-normal-CU7kPFAv.woff +0 -0
  76. package/client/dist/assets/comic-neue-latin-700-normal-NE4Vcoll.woff2 +0 -0
  77. package/client/dist/assets/comic-neue-latin-700-normal-yR9qu__P.woff +0 -0
  78. package/client/dist/assets/{index-BOJFs4B4.js → index-CqcwUuWG.js} +2 -2
  79. package/client/dist/assets/{libraryInvalidation-1xwHWgGv.js → libraryInvalidation-CC9NocI9.js} +1 -1
  80. package/client/dist/assets/oswald-cyrillic-ext-wght-normal-DLWmRmaW.woff2 +0 -0
  81. package/client/dist/assets/oswald-cyrillic-wght-normal-C8sJyxwB.woff2 +0 -0
  82. package/client/dist/assets/oswald-latin-ext-wght-normal-Dj_1K-Kw.woff2 +0 -0
  83. package/client/dist/assets/oswald-latin-wght-normal-CzS3kehr.woff2 +0 -0
  84. package/client/dist/assets/oswald-vietnamese-wght-normal-Tdf5mmdl.woff2 +0 -0
  85. package/client/dist/assets/{playbackCompletion-BpEGpC-Z.js → playbackCompletion-DasRrCt1.js} +1 -1
  86. package/client/dist/assets/russo-one-cyrillic-400-normal-BXZIn0h3.woff2 +0 -0
  87. package/client/dist/assets/russo-one-cyrillic-400-normal-rRbrNFRA.woff +0 -0
  88. package/client/dist/assets/russo-one-latin-400-normal-BfOuQF9V.woff2 +0 -0
  89. package/client/dist/assets/russo-one-latin-400-normal-CosRecV9.woff +0 -0
  90. package/client/dist/assets/russo-one-latin-ext-400-normal-BssN3Pxm.woff +0 -0
  91. package/client/dist/assets/russo-one-latin-ext-400-normal-CezFp_e4.woff2 +0 -0
  92. package/client/dist/assets/useAnimeInfoData-BlTijixl.js +1 -0
  93. package/client/dist/assets/{useMangaLibrary-OgS0RRdO.js → useMangaLibrary-BMioQUxH.js} +1 -1
  94. package/client/dist/assets/{useMangaPopup-Eyed-Gg3.js → useMangaPopup-Dzqm7EW7.js} +1 -1
  95. package/client/dist/assets/{useTv-SLXsIWFQ.js → useTv-iD-DnP_2.js} +1 -1
  96. package/client/dist/assets/{useTvLibrary-F0S6WnwD.js → useTvLibrary-D9vDuZs7.js} +1 -1
  97. package/client/dist/assets/useWatchAlongPlayer-BksJHCzs.css +1 -0
  98. package/client/dist/assets/useWatchAlongPlayer-DC5cqK1c.js +11 -0
  99. package/client/dist/index.html +1 -1
  100. package/client/dist/subtitle-font-licenses.txt +113 -0
  101. package/package.json +2 -2
  102. package/server/dist/server.js +1 -1
  103. package/server/package.json +1 -1
  104. package/client/dist/assets/Home-Bmc4hGfd.css +0 -1
  105. package/client/dist/assets/Home-C9caLBqU.js +0 -1
  106. package/client/dist/assets/Mature-DtyWIW42.js +0 -1
  107. package/client/dist/assets/OptionListMenu-CHqo2pTO.js +0 -1
  108. package/client/dist/assets/PlayerSettings-uDMPYAlP.js +0 -1
  109. package/client/dist/assets/Tv-CnahgiVt.js +0 -4
  110. package/client/dist/assets/TvPopup-Ci4SXMWf.js +0 -1
  111. package/client/dist/assets/useAnimeInfoData-CvV6vRjn.js +0 -1
  112. package/client/dist/assets/useWatchAlongPlayer-BsaopdPw.css +0 -1
  113. package/client/dist/assets/useWatchAlongPlayer-D-fPdbp2.js +0 -10
@@ -1,10 +0,0 @@
1
- import{u as t,d as T,A as x,T as ee,h as O,$ as at,q as P}from"./vendor-core-DfaOB3Rn.js";import{p as I,aj as ot,S as Oe,B as Y,F as it,a5 as re,r as ct,ak as Re,q as U,ab as lt,t as dt,i as ut,a7 as pt,al as Me,am as ft}from"./index-BOJFs4B4.js";import{I as j}from"./vendor-icons-C1Pj_eSX.js";import{s as ae,u as ht,d as mt,m as oe}from"./PlayerProvider-CjctET1A.js";import{u as gt}from"./vendor-query-BBT5_sHx.js";import{i as ie,d as yt}from"./playbackCompletion-BpEGpC-Z.js";const _t="_controls_1ne4g_1",bt="_titleContainer_1ne4g_9",vt="_scheduleInfo_1ne4g_15",wt="_status_1ne4g_23",St="_nextEpisode_1ne4g_35",Ct="_watchlistBtn_1ne4g_45",xt="_inList_1ne4g_73",kt="_queueBtn_1ne4g_84",Lt="_queueActive_1ne4g_96",Tt="_modeToggleBtn_1ne4g_102",Nt="_modeToggleActive_1ne4g_109",At="_markWatchedBtn_1ne4g_130",Et="_markWatchedDone_1ne4g_144",Bt="_streamPanel_1ne4g_155",Pt="_desktopEpisodeActions_1ne4g_169",It="_sourceLoader_1ne4g_175",$t="_episodeActions_1ne4g_188",Rt="_mobileEpisodeActions_1ne4g_202",Mt="_episodeNavBtn_1ne4g_206",Dt="_primary_1ne4g_235",Ft="_secondary_1ne4g_245",Ot="_episodePickerBtn_1ne4g_249",qt="_queueCountdown_1ne4g_253",zt="_speedBoostBadge_1ne4g_268",Wt="_videoContainer_1ne4g_299",Ht="_loadingOverlay_1ne4g_312",Vt="_loadingDots_1ne4g_326",Kt="_dot_1ne4g_331",Ut="_bounce_1ne4g_1",Qt="_bufferingOverlay_1ne4g_348",jt="_bufferingSpinner_1ne4g_357",Gt="_spin_1ne4g_459",Yt="_videoIframe_1ne4g_381",Xt="_videoElementHidden_1ne4g_404",Jt="_upscalerCanvas_1ne4g_409",Zt="_upscalerActive_1ne4g_422",en="_upscalerStatusBadge_1ne4g_426",tn="_subtitleOverlay_1ne4g_441",nn="_spinner_1ne4g_459",rn="_errorOverlay_1ne4g_526",sn="_retryButton_1ne4g_536",an="_detailsToggleBtn_1ne4g_549",on="_descriptionSection_1ne4g_572",cn="_synopsisFlat_1ne4g_580",ln="_fullscreenActive_1ne4g_614",dn="_errorSubtext_1ne4g_657",un="_watchedOverlay_1ne4g_680",pn="_watchedTitle_1ne4g_702",fn="_watchedSubtext_1ne4g_708",hn="_watchedActions_1ne4g_714",mn="_watchedActionsCentered_1ne4g_732",Vr={controls:_t,titleContainer:bt,scheduleInfo:vt,status:wt,nextEpisode:St,watchlistBtn:Ct,inList:xt,queueBtn:kt,queueActive:Lt,modeToggleBtn:Tt,modeToggleActive:Nt,markWatchedBtn:At,markWatchedDone:Et,streamPanel:Bt,desktopEpisodeActions:Pt,sourceLoader:It,episodeActions:$t,mobileEpisodeActions:Rt,episodeNavBtn:Mt,primary:Dt,secondary:Ft,episodePickerBtn:Ot,queueCountdown:qt,speedBoostBadge:zt,videoContainer:Wt,loadingOverlay:Ht,loadingDots:Vt,dot:Kt,bounce:Ut,bufferingOverlay:Qt,bufferingSpinner:jt,spin:Gt,videoIframe:Yt,videoElementHidden:Xt,upscalerCanvas:Jt,upscalerActive:Zt,upscalerStatusBadge:en,subtitleOverlay:tn,spinner:nn,errorOverlay:rn,retryButton:sn,detailsToggleBtn:an,descriptionSection:on,synopsisFlat:cn,fullscreenActive:ln,errorSubtext:dn,watchedOverlay:un,watchedTitle:pn,watchedSubtext:fn,watchedActions:hn,watchedActionsCentered:mn},gn="_playerPageLayout_1rxx0_1",yn="_noSidebar_1rxx0_15",_n="_episodeSidebar_1rxx0_19",bn="_playerMain_1rxx0_32",vn="_videoPlayerWrapper_1rxx0_40",wn="_playerInfoHeader_1rxx0_56",Sn="_playerAnimeCard_1rxx0_62",Cn="_playerInfoContainer_1rxx0_74",xn="_infoColumns_1rxx0_104",kn="_videoTitleSection_1rxx0_134",Ln="_theaterMode_1rxx0_308",Kr={playerPageLayout:gn,noSidebar:yn,episodeSidebar:_n,playerMain:bn,videoPlayerWrapper:vn,playerInfoHeader:wn,playerAnimeCard:Sn,playerInfoContainer:Cn,infoColumns:xn,videoTitleSection:kn,theaterMode:Ln},Tn={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},pe=(e,n,s)=>Math.max(n,Math.min(s,e)),fe=e=>typeof e=="string"&&/^#[0-9a-fA-F]{6}$/.test(e),ce=(e,n,s,o)=>{try{const r=I.getItem(e);if(r===null)return n;const i=parseFloat(r);return Number.isFinite(i)?pe(i,s,o):n}catch{return n}};function Nn(){let e=Q.edge,n=Q.bgColor,s=Q.textColor,o=Q.bold;try{const r=I.getItem("subtitleEdge");(r==="shadow"||r==="outline"||r==="none")&&(e=r);const i=I.getItem("subtitleBgColor");fe(i)&&(n=i);const c=I.getItem("subtitleTextColor");fe(c)&&(s=c);const u=I.getItem("subtitleBold");u!==null&&(o=u==="true")}catch{}return{fontSize:ce("subtitleFontSize",Q.fontSize,.5,10),position:ce("subtitlePosition",Q.position,0,100),bgOpacity:ce("subtitleBgOpacity",Q.bgOpacity,0,1),bgColor:n,textColor:s,edge:e,bold:o}}function qe(e,n){const s=`rgba(0, 0, 0, ${pe(n,0,1)})`;if(!fe(e))return s;const o=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16);return`rgba(${o}, ${r}, ${i}, ${pe(n,0,1)})`}function ze(e,n){return e==="none"?n<=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 Ur(e){return`
2
- video::cue {
3
- font-size: ${e.fontSize}rem !important;
4
- color: ${e.textColor} !important;
5
- background-color: ${qe(e.bgColor,e.bgOpacity)} !important;
6
- font-weight: ${e.bold?"bold":"normal"} !important;
7
- text-shadow: ${ze(e.edge,e.bgOpacity)} !important;
8
- }
9
- `}function Qr(e){return[`font-size: ${e.fontSize}rem`,`color: ${e.textColor}`,`background-color: ${qe(e.bgColor,e.bgOpacity)}`,`font-weight: ${e.bold?"700":"400"}`,`text-shadow: ${ze(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 An=new Set(["b","i","u","strong","em"]);function jr(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/&lt;(\/?)([a-zA-Z]+)&gt;/g,(s,o,r)=>An.has(r.toLowerCase())?`<${o}${r.toLowerCase()}>`:s)}function Gr(e){return e.replace(/<[^>]*>/g,"")}const Yr=["#ffffff","#ffff00","#7CFC00","#00e5ff","#ff9ff3","#ffa502"],Xr=["#000000","#1e272e","#2f3542","#3d0c02","#0c3d2e","#ffffff"];function Jr(e,n){const s=Number.isFinite(e)?e*16:Q.fontSize*16;return!Number.isFinite(n)||n<=0?s/16:Math.min(s,Math.max(13,n*.07))/16}function Zr(e){const n=Math.abs(e/1e3).toFixed(1);return e>0?`+${n}s`:e<0?`-${n}s`:"0.0s"}function es(e,n){const s=e.clientWidth||0,o=e.clientHeight||0,r=e.videoWidth>0&&e.videoHeight>0?e.videoWidth/e.videoHeight:0;let i=o;r>0&&s>0&&o>0&&(i=s/o>r?o:s/r);const c=Math.max(0,(o-i)/2),u=Math.max(0,Math.min(100,Number(n)||0))/100*i;return c+u}const ts=({isOpen:e,onClose:n,title:s,heading:o,message:r,children:i})=>t(Oe,{isOpen:e,onClose:n,title:s,width:"sm",children:t("div",{style:{padding:"1rem",textAlign:"center"},children:[t("button",{type:"button",className:ot.closeButton,onClick:n,"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:r}),i&&t("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center",flexWrap:"wrap"},children:i})]})}),ns=({isOpen:e,onClose:n,title:s,message:o,resumeLabel:r="Resume",restartLabel:i="Start Over",onResume:c,onRestart:u})=>t(Oe,{isOpen:e,onClose:n,title:s,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(Y,{variant:"secondary",onClick:u,children:i}),t(Y,{onClick:c,children:r})]})]})}),rs=({visible:e,title:n,episode:s,server:o,mode:r,audio:i,subtitles:c,onBack:u,classes:a})=>t("div",{className:`${a.overlay} ${e?"":a.hidden} `,"data-speed-boost-ignore":"true",style:{pointerEvents:"none",background:"none"},children:t("div",{className:a.top,onClick:l=>l.stopPropagation(),children:[t("button",{className:a.backBtn,onClick:l=>{l.stopPropagation(),u()},title:"Back","aria-label":"Back",children:t(j,{name:"chevron-left"})}),t("div",{className:`${a.titleInfo} ${ae.topBarTitleInfo}`,children:[t("span",{className:a.title,children:n}),s&&t("span",{className:a.episode,children:s}),(r||o||i||c)&&t("div",{className:ae.streamDetails,children:[r&&t("span",{className:ae.modeTag,children:r.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]})]})]})]})}),En=e=>(e.language??e.lang??"").toLowerCase(),Bn=e=>(e.label??"").toLowerCase(),Pn=e=>`${e.language??e.lang??""}|||${e.label??""}`,In=e=>En(e).startsWith("en")||Bn(e).includes("english");function ss(e,n){if(e.length===0||n?.enabled===!1)return-1;const s=n?.lastKey??null;if(s){const r=e.findIndex(c=>Pn(c)===s);if(r>=0)return r;const i=s.indexOf("|||");if(i>=0){const c=s.slice(0,i),u=s.slice(i+3),a=e.findIndex(l=>{const m=l.language??l.lang??"",S=l.label??"";return u!==""&&S===u||c!==""&&c!=="undefined"&&(m===c||S===c)});if(a>=0)return a}else{const c=e.findIndex(u=>u.label===s||u.language===s||u.lang===s);if(c>=0)return c}}const o=e.findIndex(In);return o>=0?o:0}const $n="_statusArea_1xccu_1",Rn="_toggleBtn_1xccu_20",Mn="_shortcuts_1xccu_46",Dn="_shortcutGroup_1xccu_56",Fn="_shortcut_1xccu_46",On="_key_1xccu_70",qn="_label_1xccu_91",v={statusArea:$n,toggleBtn:Rn,shortcuts:Mn,shortcutGroup:Dn,shortcut:Fn,key:On,label:qn},as=({showTheater:e=!0})=>{const[n,s]=T(!1);return t("div",{className:v.statusArea,children:[t("button",{type:"button",className:v.toggleBtn,onClick:()=>s(o=>!o),"aria-expanded":n,"aria-controls":"player-shortcuts",children:[t(j,{name:"keyboard",size:14}),t("span",{children:"Keyboard Shortcuts"}),n?t(j,{name:"chevron-up",size:12}):t(j,{name:"chevron-down",size:12})]}),n&&t("div",{id:"player-shortcuts",className:v.shortcuts,children:[t("div",{className:v.shortcutGroup,children:[t("div",{className:v.shortcut,children:[t("span",{className:v.key,children:"↑"}),t("span",{className:v.key,children:"↓"}),t("span",{className:v.label,children:"Volume"})]}),t("div",{className:v.shortcut,children:[t("span",{className:v.key,children:"←"}),t("span",{className:v.key,children:"→"}),t("span",{className:v.label,children:"Seek"})]})]}),t("div",{className:v.shortcutGroup,children:[t("div",{className:v.shortcut,children:[t("span",{className:v.key,children:"Space"}),t("span",{className:v.label,children:"Play/Pause"})]}),t("div",{className:v.shortcut,children:[t("span",{className:v.key,children:"F"}),t("span",{className:v.label,children:"Fullscreen"})]}),t("div",{className:v.shortcut,children:[t("span",{className:v.key,children:"M"}),t("span",{className:v.label,children:"Mute"})]}),e&&t("div",{className:v.shortcut,children:[t("span",{className:v.key,children:"T"}),t("span",{className:v.label,children:"Theater"})]}),t("div",{className:v.shortcut,children:[t("span",{className:v.key,children:"P"}),t("span",{className:v.label,children:"Previous"})]}),t("div",{className:v.shortcut,children:[t("span",{className:v.key,children:"N"}),t("span",{className:v.label,children:"Next"})]})]})]})]})},zn="_episodeListContainer_11isr_1",Wn="_drawerContainer_11isr_9",Hn="_episodeListHeader_11isr_14",Vn="_drawerHeader_11isr_20",Kn="_episodeListTitle_11isr_29",Un="_rangeSelector_11isr_41",Qn="_rangeButton_11isr_47",jn="_active_11isr_70",Gn="_episodeList_11isr_1",Yn="_drawerList_11isr_90",Xn="_episodeItem_11isr_119",Jn="_watched_11isr_147",Zn="_episodeThumb_11isr_175",er="_episodeText_11isr_185",tr="_episodeLabel_11isr_193",nr="_episodeSub_11isr_198",C={episodeListContainer:zn,drawerContainer:Wn,episodeListHeader:Hn,drawerHeader:Vn,episodeListTitle:Kn,rangeSelector:Un,rangeButton:Qn,active:jn,episodeList:Gn,drawerList:Yn,episodeItem:Xn,watched:Jn,episodeThumb:Zn,episodeText:er,episodeLabel:tr,episodeSub:nr},rr=({episodes:e,currentEpisode:n,watchedEpisodes:s=[],onEpisodeClick:o,variant:r="sidebar",title:i="Episodes",header:c})=>{const[u,a]=T(0),l=x(null),m=ee(()=>e.map(d=>typeof d=="string"?{id:d,label:`Episode ${d}`}:d),[e]),S=ee(()=>new Set(s),[s]);O(()=>{const d=l.current;if(!d)return;let p=d.parentElement;for(;p;){const g=window.getComputedStyle(p);if((g.overflowY==="auto"||g.overflowY==="scroll")&&p.scrollHeight>p.clientHeight)break;p=p.parentElement}if(!p)return;const L=p.getBoundingClientRect(),f=d.getBoundingClientRect();p.scrollTop+=f.top+f.height/2-(L.top+p.clientHeight/2)},[n,u]);const k=ee(()=>{if(m.length<=100)return[];const d=[];for(let p=0;p<m.length;p+=100){const L=p+1,f=Math.min(p+100,m.length);d.push(`${L}-${f}`)}return d},[m]),$=ee(()=>{if(k.length===0)return m;const d=k[u];if(!d)return m;const[p,L]=d.split("-"),f=parseInt(p,10),g=parseInt(L,10);return m.slice(f-1,g)},[m,k,u]);return t("div",{className:`${C.episodeListContainer} ${r==="drawer"?C.drawerContainer:""}`,children:[t("div",{className:`${C.episodeListHeader} ${r==="drawer"?C.drawerHeader:""}`,children:[c,t("h3",{className:C.episodeListTitle,children:i}),k.length>0&&t("div",{className:C.rangeSelector,children:k.map((d,p)=>t("button",{className:`${C.rangeButton} ${u===p?C.active:""}`,onClick:()=>a(p),children:d},d))})]}),t("div",{className:`${C.episodeList} ${r==="drawer"?C.drawerList:""}`,children:$.map(d=>{const p=d.id===n,L=S.has(d.id)||d.watched===!0;return t("div",{ref:p?l:void 0,className:`${C.episodeItem} ${L?C.watched:""} ${p?C.active:""}`,onClick:()=>o(d.id),children:[d.thumbnail&&t(it,{src:d.thumbnail,alt:"",loading:"lazy",decoding:"async",className:C.episodeThumb}),t("span",{className:C.episodeText,children:[t("span",{className:C.episodeLabel,children:d.label??`Episode ${d.id}`}),d.sublabel&&t("span",{className:C.episodeSub,children:d.sublabel})]})]},d.id)})})]})},os=({variant:e="sidebar",count:n=12})=>t("div",{className:`${C.episodeListContainer} ${e==="drawer"?C.drawerContainer:""}`,children:[t("div",{className:`${C.episodeListHeader} ${e==="drawer"?C.drawerHeader:""}`,children:[t("h3",{className:C.episodeListTitle,children:"Episodes"}),t("div",{className:C.rangeSelector,children:[t(re,{width:"60px",height:"28px",variant:"rectangular"}),t(re,{width:"60px",height:"28px",variant:"rectangular"}),t(re,{width:"60px",height:"28px",variant:"rectangular"})]})]}),t("div",{className:`${C.episodeList} ${e==="drawer"?C.drawerList:""}`,children:Array.from({length:n}).map((s,o)=>t("div",{className:C.episodeItem,style:{border:"none",background:"transparent"},children:t(re,{width:"120px",height:"1.2rem",variant:"text"})},o))})]}),sr="_shell_cys6s_1",ar="_overlay_cys6s_10",or="_drawer_cys6s_21",ir="_handle_cys6s_56",cr="_header_cys6s_64",lr="_headerCopy_cys6s_73",dr="_kicker_cys6s_79",ur="_title_cys6s_87",pr="_closeBtn_cys6s_94",fr="_body_cys6s_116",V={shell:sr,overlay:ar,drawer:or,handle:ir,header:cr,headerCopy:lr,kicker:dr,title:ur,closeBtn:pr,body:fr};function is({isOpen:e,onClose:n,episodes:s,currentEpisode:o,watchedEpisodes:r=[],onEpisodeClick:i,title:c,header:u}){return O(()=>{if(!e)return;const a=m=>{m.key==="Escape"&&n()},l=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",a),()=>{document.body.style.overflow=l,document.removeEventListener("keydown",a)}},[e,n]),e?at(t("div",{className:V.shell,role:"dialog","aria-modal":"true","aria-label":"Episode picker",children:[t("button",{className:V.overlay,type:"button",onClick:n,"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:n,"aria-label":"Close",children:t(j,{name:"times"})})]}),t("div",{className:V.body,children:t(rr,{episodes:s,currentEpisode:o,watchedEpisodes:r,onEpisodeClick:i,variant:"drawer",title:c,header:u})})]})]}),document.body):null}const hr="_sourceSelectionContainer_g7xev_1",mr="_providerSelectContainer_g7xev_14",gr="_providerSelect_g7xev_14",yr="_sourceSelect_g7xev_1",_r="_sourceButtons_g7xev_70",br="_sourceButton_g7xev_70",vr="_active_g7xev_95",cs={sourceSelectionContainer:hr,providerSelectContainer:mr,providerSelect:gr,sourceSelect:yr,sourceButtons:_r,sourceButton:br,active:vr},ls=({skipIntervals:e,showId:n,episodeNumber:s,episodeCount:o,sourceType:r,showMeta:i})=>{const c=gt(),u=ct(),{engine:a,mediaRef:l}=ht({volumeKey:"playerVolume",mutedKey:"playerMuted"}),{isPlaying:m,isMuted:S,volume:k,duration:$,isScrubbing:d,isBuffering:p,isFullscreen:L,isSpeedBoostActive:f,showControls:g,playbackLocked:y}=mt(a),E=a.containerRef,h=x(null),N=x(0),F=x(Math.random().toString(36).substring(2)),_=a.setShowControls,[B,q]=T(I.getItem("autoSkipEnabled")==="true"),[K,A]=T(null),[W]=T(Nn),[We,me]=T(W.fontSize),[He,ge]=T(W.position),[Ve,ye]=T(W.bgOpacity),[Ke,_e]=T(W.bgColor),[Ue,be]=T(W.textColor),[Qe,ve]=T(W.edge),[je,we]=T(W.bold),Se=P((b,R)=>{if({fontSize:w=>typeof w!="number"?!1:(me(w),!0),position:w=>typeof w!="number"?!1:(ge(w),!0),bgOpacity:w=>typeof w!="number"?!1:(ye(w),!0),bgColor:w=>typeof w!="string"?!1:(_e(w),!0),textColor:w=>typeof w!="string"?!1:(be(w),!0),edge:w=>w!=="shadow"&&w!=="outline"&&w!=="none"?!1:(ve(w),!0),bold:w=>typeof w!="boolean"?!1:(we(w),!0)}[b](R))try{I.setItem(Tn[b],String(R))}catch{}},[]),[Ge,Ye]=T([]),[Xe,Je]=T(null),[Ze,et]=T(!1),[tt,nt]=T(!1),[rt,Ce]=T(()=>{try{return I.getItem("playerUseNativeControls")==="true"}catch{return!1}}),X=x(!1),te=x(-1),ne=P(()=>{const b=l.current;return!n||!s||!i?.name?null:{showId:n,episodeNumber:s,episodeCount:o,currentTime:a.getTimeline().currentTime,duration:a.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:b?!b.paused:r==="iframe",sessionId:F.current,isAdult:i.isAdult}},[a,l,n,s,o,i,r]),M=P((b=!1,R=!1)=>{if(X.current)return!1;const z=ne();if(!z)return!1;const w=l.current;if(!w&&!b&&r!=="iframe"||r!=="iframe"&&z.duration<=0)return!1;const H=a.getTimeline().currentTime;if(!R){if(H===0)return!1;const Z=w?Math.abs(H-te.current):0;if(!b&&w&&H!==w.duration&&Z<5)return!1}return z.currentTime=H,te.current=H,b?(async()=>{try{await Re("progress.updateProgress",z),c.invalidateQueries({queryKey:[U.playerData,n]}),c.invalidateQueries({queryKey:[U.videoSources,n,s]}),c.invalidateQueries({queryKey:[U.continueWatching]}),c.invalidateQueries({queryKey:[U.thisWeekSchedule]}),c.invalidateQueries(u.continueWatching.pathFilter())}catch(Z){console.error("Failed to update progress:",Z)}})():Re("progress.updateProgress",z).then(()=>{ie(z.currentTime,z.duration)&&c.invalidateQueries({queryKey:[U.playerData,n]})}).catch(Z=>console.error("Failed to update progress:",Z)),!0},[a,ne,r,c,n,s,u.continueWatching,l]);O(()=>{const b=()=>{X.current||M(!0)};window.addEventListener("beforeunload",b),window.addEventListener("pagehide",b);const R=()=>{document.visibilityState==="hidden"&&b()};document.addEventListener("visibilitychange",R);const z=h;return()=>{window.removeEventListener("beforeunload",b),window.removeEventListener("pagehide",b),document.removeEventListener("visibilitychange",R),X.current||M(!0),z.current&&clearTimeout(z.current)}},[M]);const xe=P(()=>a.setShowControls(!0),[a]),ke=a.toggleFullscreen,Le=P(()=>{a.togglePlay(),_(!0)},[a,_]),Te=P(()=>{a.toggleMute(),_(!0)},[a,_]),Ne=P(b=>{a.seekRelative(b),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>M(!1,!0),1500),_(!0)},[a,M,_]),Ae=P(()=>{X.current=!1,M(!1,!0)},[M]),Ee=P(()=>{_(!0),M(!1,!0)},[M,_]);O(()=>{X.current=!1,te.current=-1,N.current=0,F.current=Math.random().toString(36).substring(2),a.reset()},[a,n,s]);const Be=a.reset;O(()=>{const b=F.current;return()=>{lt(b)}},[a,n,s]),O(()=>{if(r!=="iframe")return;M(!1,!0);const b=setInterval(()=>{M(!1,!0)},6e4);return()=>clearInterval(b)},[r,M]);const Pe=P(()=>{const b=l.current;if(!b)return;const R=b.currentTime||0,z=Date.now(),w=ie(R,b.duration)&&!ie(te.current,b.duration);(w||z-N.current>6e4)&&M(!1,w)&&(N.current=z);const H=e.find(J=>R>=J.start_time&&R<J.end_time)||null;A(J=>J?.skip_id!==H?.skip_id?H:J),B&&H&&!b.paused&&!a.getState().playbackLocked&&(a.seek(H.end_time),A(null))},[l,e,B,M,a]),Ie=P(()=>{const b=ne();b&&(b.currentTime=b.duration,dt.progress.updateProgress.mutate(b).then(()=>{c.invalidateQueries({queryKey:[U.playerData,n]}),c.invalidateQueries({queryKey:[U.videoSources,n,s]}),c.invalidateQueries({queryKey:[U.continueWatching]})}).catch(R=>console.error("Failed to send final progress:",R)))},[ne,c,n,s]),$e=P(()=>{X.current=!0,Ie()},[Ie]),st=ee(()=>({togglePlay:Le,seek:Ne,toggleMute:Te,toggleFullscreen:ke,onPlay:Ae,onPause:Ee,formatTime:ut,onTimeUpdate:Pe,onEnded:$e,setShowControls:_,setIsAutoSkipEnabled:q,setCurrentSkipInterval:A,setSubtitleFontSize:me,setSubtitlePosition:ge,setSubtitleBgOpacity:ye,setSubtitleBgColor:_e,setSubtitleTextColor:be,setSubtitleEdge:ve,setSubtitleBold:we,setSubtitleStyle:Se,setAvailableSubtitles:Ye,setActiveSubtitleTrack:Je,setShowSettings:et,setShowVolumeSlider:nt,flashControls:xe,sendProgressUpdate:M,setUseNativeControls:Ce,resetMediaState:Be}),[Le,Ne,Te,ke,Ae,Ee,Pe,$e,M,Ce,Be,xe,Se,_]);return{engine:a,refs:{videoRef:l,playerContainerRef:E},state:{playbackLocked:y,isPlaying:m,isMuted:S,volume:k,isFullscreen:L,duration:$,showControls:g,isScrubbing:d,isAutoSkipEnabled:B,currentSkipInterval:K,subtitleFontSize:We,subtitlePosition:He,subtitleBgOpacity:Ve,subtitleBgColor:Ke,subtitleTextColor:Ue,subtitleEdge:Qe,subtitleBold:je,availableSubtitles:Ge,activeSubtitleTrack:Xe,showSettings:Ze,showVolumeSlider:tt,isBuffering:p,isSpeedBoostActive:f,useNativeControls:rt},actions:st}};function wr(){try{return typeof navigator<"u"&&/android/i.test(navigator.userAgent)}catch{return!1}}function ds(e,n){const{refs:s,actions:o}=e,r=x(n);r.current=n;const i=x(!1),c=x(!1),u=a=>{try{if(a)return a.matches}catch{}try{return window.innerWidth>window.innerHeight}catch{return!1}};O(()=>{if(!wr())return;let a=null;const l=()=>{const m=s.playerContainerRef.current;if(u(a)){if(!r.current||!m||oe(s.videoRef.current)||c.current)return;i.current=!0,o.toggleFullscreen()}else c.current=!1,i.current&&(i.current=!1,oe(s.videoRef.current)&&o.toggleFullscreen())};try{a=window.matchMedia("(orientation: landscape)"),a.addEventListener?a.addEventListener("change",l):a.addListener(l)}catch{}return l(),()=>{try{a&&(a.removeEventListener?a.removeEventListener("change",l):a.removeListener(l))}catch{}}},[o,s.playerContainerRef,s.videoRef,n]),O(()=>{const a=()=>{if(!oe(s.videoRef.current)){i.current=!1;try{window.matchMedia("(orientation: landscape)").matches&&(c.current=!0)}catch{c.current=!0}}};return document.addEventListener("fullscreenchange",a),document.addEventListener("webkitfullscreenchange",a),()=>{document.removeEventListener("fullscreenchange",a),document.removeEventListener("webkitfullscreenchange",a)}},[s.videoRef])}const Sr=e=>Math.max(8,Math.min(40,Math.ceil(e/16.7)+4));function us({videoRef:e,canvasRef:n,delayMs:s,enabled:o}){const r=x(s);r.current=s;const i=x([]),c=x(-1),u=x(-1),a=x(!1),l=x(0),m=x(null);O(()=>{const S=f=>{if(f)try{f.close()}catch{}},k=()=>{for(const f of i.current)S(f.bitmap);i.current=[]};if(!o){k(),c.current=-1,u.current=-1,a.current=!1,l.current=0;return}let $=!1;const d=()=>{m.current!==null&&(cancelAnimationFrame(m.current),m.current=null)},p=()=>{$||(d(),m.current=requestAnimationFrame(()=>{L()}))};async function L(){if($)return;const f=e.current,g=n.current;if(!f||!g||f.videoWidth===0){p();return}if(f.paused||f.ended||document.hidden||f.readyState<HTMLMediaElement.HAVE_CURRENT_DATA){p();return}const y=f.getVideoPlaybackQuality().totalVideoFrames;if(y===c.current){p();return}(f.seeking||u.current>=0&&Math.abs(f.currentTime-u.current)>.5)&&(k(),a.current=!1,l.current=0,c.current=-1),u.current=f.currentTime,(g.width!==f.videoWidth||g.height!==f.videoHeight)&&(g.width=f.videoWidth,g.height=f.videoHeight);const E=Math.max(0,r.current||0);E>l.current&&(a.current=!1);try{const h=await createImageBitmap(f);if($){S(h);return}c.current=y;const N=performance.now(),F=g.getContext("2d"),_=A=>{F&&F.drawImage(A,0,0,g.width,g.height)};if(E<=0){k(),a.current=!1,l.current=0,_(h),S(h),p();return}const B=i.current;B.push({bitmap:h,capture:N});const q=Sr(E);for(;B.length>q;)S(B.shift()?.bitmap);let K=-1;for(let A=B.length-1;A>=0;A--)if(N-B[A].capture>=E){K=A;break}if(K!==-1){for(let W=0;W<K;W++)S(B.shift()?.bitmap);const A=B.shift();A?(_(A.bitmap),S(A.bitmap),a.current=!0,l.current=E):_(h)}else if(!a.current)_(h);else{const A=B.shift();A?(_(A.bitmap),S(A.bitmap)):_(h)}}catch{}p()}return p(),()=>{$=!0,d();for(const f of i.current)try{f.bitmap.close()}catch{}i.current=[]}},[o,e,n])}const De=(e,n)=>{try{I.setItem("playerVideoDelayMs",String(e)),I.setItem("playerVideoDelayEnabled",String(n))}catch{}},Fe=e=>{try{I.setItem("playerVideoDelayEnabled",String(e))}catch{}};function ps(e,n){const[s,o]=T(()=>{try{const y=Number(I.getItem("playerVideoDelayMs"));if(Number.isFinite(y)&&y>=0&&y<=500)return Math.round(y)}catch{}return 180}),[r,i]=T(()=>{try{return I.getItem("playerVideoDelayEnabled")==="true"}catch{return!1}}),[c,u]=T(!1),[a,l]=T(!1),m=x(null),S=x(null),k=y=>{const E=Math.max(0,Math.min(500,Math.round(y)));o(E);try{I.setItem("playerVideoDelayMs",String(E))}catch{}},$=y=>{i(y),Fe(y)},d=P(()=>{l(!1),u(!1)},[]);return{videoDelayMs:s,videoDelayEnabled:r,setDelayEnabled:$,handleVideoDelayChange:k,isCalibrating:c,testClipActive:a,stopCalibration:d,openAvSyncCalibrator:()=>{m.current={enabled:r,ms:s},i(!0),Fe(!0),n?.(),u(!0)},cancelAvSyncCalibrator:()=>{const y=m.current;m.current=null,y&&(o(y.ms),i(y.enabled),De(y.ms,y.enabled)),l(!1),u(!1)},applyAvSyncCalibrator:()=>{m.current=null,i(!0),De(s,!0),l(!1),u(!1)},toggleTestClip:()=>{if(a){l(!1);return}const y=e.current;y&&!isNaN(y.currentTime)&&(S.current=y.currentTime),l(!0)},calibReturnRef:S,effectiveVideoDelayMs:r?s:0}}function fs(){const[e,n]=T(()=>{try{return I.getItem("playerTheaterMode")==="true"}catch{return!1}});O(()=>{try{e?document.body.classList.add("theater-mode"):document.body.classList.remove("theater-mode")}catch(r){console.error(r)}return()=>{try{document.body.classList.remove("theater-mode")}catch(r){console.error(r)}}},[e]);const s=P(()=>{n(r=>{const i=!r;try{I.setItem("playerTheaterMode",i.toString())}catch{}return i})},[]),o=P(r=>{if(e&&r.target===r.currentTarget){n(!1);try{I.setItem("playerTheaterMode","false")}catch{}}},[e]);return{isTheaterMode:e,toggleTheaterMode:s,handleLayoutClick:o}}const G={enabled:!0,blur:60,saturation:150,brightness:70,opacity:60};function Cr(){try{const e=I.getItem("playerAmbientLight");if(!e)return G;const n=JSON.parse(e),s=(o,r,i,c)=>{const u=Number(o);return Number.isFinite(u)?Math.max(i,Math.min(c,u)):r};return{enabled:n.enabled??G.enabled,blur:s(n.blur,G.blur,0,120),saturation:s(n.saturation,G.saturation,0,200),brightness:s(n.brightness,G.brightness,20,120),opacity:s(n.opacity,G.opacity,10,100)}}catch{return G}}function hs(){const[e,n]=T(Cr),s=P(o=>{n(r=>{const i={...r,...o};try{I.setItem("playerAmbientLight",JSON.stringify(i))}catch{}return i})},[]);return{settings:e,update:s}}const xr="_theaterAmbient_x9t0o_1",kr={theaterAmbient:xr},le=160,de=90,Lr=120,ms=({videoRef:e,active:n,settings:s,className:o})=>{const r=x(null);return O(()=>{if(!n)return;const i=r.current,c=e.current;if(!i||!c)return;const u=i.getContext("2d",{alpha:!1});if(!u)return;let a=0,l=0,m=!1;const S=()=>{if(!(c.readyState<2||!c.videoWidth))try{const p=c.videoWidth,L=c.videoHeight,f=le/de,g=p/L;let y=p,E=L,h=0,N=0;g>f?(y=L*f,h=(p-y)/2):(E=p/f,N=(L-E)/2),u.drawImage(c,h,N,y,E,0,0,le,de)}catch{}},k=p=>{m||c.paused||(a=requestAnimationFrame(k),!(p-l<Lr)&&(l=p,S()))},$=()=>{m||(cancelAnimationFrame(a),l=0,a=requestAnimationFrame(k))},d=()=>cancelAnimationFrame(a);return c.addEventListener("play",$),c.addEventListener("pause",d),c.addEventListener("seeked",S),c.addEventListener("loadeddata",S),a=requestAnimationFrame(k),()=>{m=!0,cancelAnimationFrame(a),c.removeEventListener("play",$),c.removeEventListener("pause",d),c.removeEventListener("seeked",S),c.removeEventListener("loadeddata",S)}},[n,e]),n?t("canvas",{ref:r,width:le,height:de,"aria-hidden":"true",className:o??kr.theaterAmbient,style:{filter:`blur(${s.blur}px) saturate(${s.saturation}%) brightness(${s.brightness}%)`,opacity:s.opacity/100}}):null},Tr="_row_1fq55_1",Nr="_rowHeader_1fq55_9",Ar="_rowLabel_1fq55_17",Er="_rowValue_1fq55_28",Br="_slider_1fq55_36",Pr="_swatches_1fq55_99",Ir="_swatch_1fq55_99",$r="_swatchPicked_1fq55_114",Rr="_colorInput_1fq55_120",Mr="_segmented_1fq55_131",D={row:Tr,rowHeader:Nr,rowLabel:Ar,rowValue:Er,slider:Br,swatches:Pr,swatch:Ir,swatchPicked:$r,colorInput:Rr,segmented:Mr},Dr=({label:e,display:n,min:s,max:o,step:r,value:i,percent:c,onChange:u,onCommit:a})=>t("div",{className:D.row,children:[t("div",{className:D.rowHeader,children:[t("span",{className:D.rowLabel,children:e}),t("span",{className:D.rowValue,children:n})]}),t("input",{type:"range",className:D.slider,min:s,max:o,step:r,value:i,"aria-label":e,"data-speed-boost-ignore":"true",onInput:l=>u(Number(l.target.value)),onMouseDown:l=>l.stopPropagation(),onPointerDown:l=>l.stopPropagation(),onTouchStart:l=>l.stopPropagation(),onPointerUp:a,onPointerCancel:a,onTouchEnd:a,onKeyUp:a,onBlur:a,style:{"--slider-percent":`${c}%`}})]}),gs=({label:e,colors:n,value:s,onChange:o})=>t("div",{className:D.row,children:[t("div",{className:D.rowHeader,children:t("span",{className:D.rowLabel,children:e})}),t("div",{className:D.swatches,children:[n.map(r=>t("button",{type:"button","aria-label":`${e} ${r}`,"aria-pressed":s.toLowerCase()===r.toLowerCase(),onClick:()=>o(r),className:`${D.swatch} ${s.toLowerCase()===r.toLowerCase()?D.swatchPicked:""}`,style:{backgroundColor:r}},r)),t("input",{type:"color","aria-label":`Custom ${e.toLowerCase()}`,className:D.colorInput,value:s,"data-speed-boost-ignore":"true",onInput:r=>o(r.target.value),onMouseDown:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),onTouchStart:r=>r.stopPropagation()})]})]});function ys({label:e,options:n,value:s,onChange:o}){return t("div",{className:D.row,children:[t("div",{className:D.rowHeader,children:t("span",{className:D.rowLabel,children:e})}),t("div",{className:D.segmented,role:"group","aria-label":e,children:n.map(r=>t("button",{type:"button","aria-pressed":s===r,onClick:()=>o(r),children:[t("span",{children:r}),s===r&&t(j,{name:"check",size:10})]},r))})]})}const se=10,he=500,ue=e=>Math.max(0,Math.min(he,Math.round(e))),_s=({isOpen:e,ms:n,onChange:s,onApply:o,onClose:r,testClipActive:i,onTestClip:c})=>e?t("div",{role:"dialog","aria-label":"Calibrate audio video sync","data-speed-boost-ignore":"true",onClick:u=>u.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(Y,{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(Y,{size:"sm",onClick:()=>s(ue(n-se)),"aria-label":"Decrease delay by 10 milliseconds",children:["− ",se,"ms"]}),t("div",{style:{fontSize:"1.1rem",fontWeight:800,minWidth:64,textAlign:"center"},children:[n,"ms"]}),t(Y,{size:"sm",onClick:()=>s(ue(n+se)),"aria-label":"Increase delay by 10 milliseconds",children:["+ ",se,"ms"]})]}),t(Dr,{label:"Video delay",display:`${n}ms`,min:0,max:he,step:5,value:n,percent:n/he*100,onChange:u=>s(ue(u))}),t("div",{style:{display:"flex",gap:8,justifyContent:"center",flexWrap:"wrap"},children:[t(Y,{size:"sm",variant:"secondary",onClick:r,children:"Cancel"}),t(Y,{size:"sm",onClick:o,children:["Apply ",n,"ms"]})]})]}):null;function bs({videoRef:e,sourceType:n,resetKey:s,onEnd:o}){const r=x(!1),i=x(o);i.current=o,O(()=>{r.current=!1},[s]);const c=P(()=>{const a=e.current?.duration;!a||!Number.isFinite(a)||console.info(`[playback] duration ${a.toFixed(2)}s`)},[e]);return{checkEnd:P((a=!1)=>{const l=e.current;!l||n==="iframe"||r.current||!a&&!yt(l.currentTime,l.duration)||(r.current=!0,console.info(`[playback] end reached at ${l.currentTime.toFixed(2)}s / ${l.duration.toFixed(2)}s`),i.current())},[n,e]),logDuration:c}}function vs(e,n,s){const o=pt(),r=x({watch:o,selection:n,loading:s});r.current={watch:o,selection:n,loading:s};const[i,c]=T(!1),u=x(""),a=x(""),l=x(""),m=x(!1),S=!!o.session&&!o.session.host;O(()=>(!o.session&&m.current&&e.applyRemotePlayback(void 0,!1,1),m.current=!!o.session,e.setPlaybackLocked(!!o.session&&(S||!o.connected)),o.session&&!o.connected&&e.applyRemotePlayback(void 0,!1,1),()=>e.setPlaybackLocked(!1)),[e,S,o.connected,o.session]);const k=P(($=!1)=>{const{watch:d,selection:p,loading:L}=r.current,f=e.mediaRef.current;if(!d.session||!d.room||!f)return;if(d.session.host){d.connected&&d.selfId!==l.current&&!L&&p&&f.readyState>=1&&(l.current=d.selfId,Me(p,d.room.selection)&&e.applyRemotePlayback(d.room.position,!1,d.room.rate));return}const g=d.room,y=p&&Me(p,g.selection);if(!d.connected||L||!y||f.readyState<1){e.applyRemotePlayback(void 0,!1,g.rate);return}const E=Date.now()+d.clock.offset-g.updatedAt<15e3;if(g.playing&&!E){e.applyRemotePlayback(void 0,!1,g.rate);return}const h=g.playing&&g.hostOnline&&E,N=Math.min(f.duration||1/0,ft({...g,playing:h},Date.now()+d.clock.offset)),F=N-f.currentTime,_=Math.abs(F)>(h?1.25:.15),B=h&&!_&&Math.abs(F)>.15?Math.min(4,Math.max(.25,g.rate*(F>0?1.03:.97))):g.rate,q=e.getState().playBlocked;e.applyRemotePlayback(_?N:void 0,h&&(!q||$),B),c(q&&h)},[e]);return O(()=>{if(!o.session)return;const $=()=>{const{watch:h,selection:N,loading:F}=r.current,_=e.mediaRef.current;if(!h.connected||!h.session?.host||!h.room)return;if(!N||F||!_||_.readyState<1){h.room.playing&&h.send({type:"update",...h.room,playing:!1});return}k();const B=e.getState(),q=!_.paused&&!_.ended&&!B.isBuffering,K={type:"update",selection:N,position:_.currentTime+(q?h.clock.latency/1e3*_.playbackRate:0),playing:q,rate:_.playbackRate},A=JSON.stringify(K);!q&&a.current===A||(a.current=A,h.send(K))},d=()=>{const{watch:h,selection:N,loading:F}=r.current,_=e.getState(),B=e.mediaRef.current,q=_.error||!F&&!N?"error":_.playBlocked?"blocked":F||!B||B.readyState<1?"loading":_.isBuffering?"buffering":"ready";h.connected&&`${h.selfId}:${q}`!==u.current&&(u.current=`${h.selfId}:${q}`,h.send({type:"status",status:q})),k()};let p=null;const L=["play","pause","seeked","ratechange","playing","waiting","canplay","ended"];let f;const g=()=>{clearTimeout(f),f=setTimeout($,100)},y=setInterval(()=>{const h=e.mediaRef.current;p!==h&&(L.forEach(N=>p?.removeEventListener(N,g)),p=h,L.forEach(N=>p?.addEventListener(N,g))),d()},500),E=setInterval($,3e3);return()=>{clearInterval(y),clearInterval(E),clearTimeout(f),L.forEach(N=>p?.removeEventListener(N,g));const{watch:h}=r.current;h.session?.host&&h.room&&h.connected&&h.send({type:"update",...h.room,playing:!1,position:e.mediaRef.current?.currentTime??h.room.position})}},[e,o.session,k]),O(()=>{k()},[o.room,o.connected,n,s,k]),{needsPlayback:i,enablePlayback:()=>k(!0)}}export{ms as A,Xr as B,rs as C,Q as D,os as E,Dr as M,as as P,ns as R,gs as S,Yr as T,cs as a,Ur as b,Qr as c,es as d,Gr as e,Jr as f,vs as g,ps as h,us as i,fs as j,bs as k,ds as l,hs as m,Kr as n,ts as o,ss as p,rr as q,jr as r,Pn as s,Vr as t,ls as u,_s as v,is as w,Zr as x,ys as y,G as z};