@serifpersia/dango 3.8.2 → 3.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/client/dist/assets/{AnimeCard-Dl21Mnwa.js → AnimeCard-arsIYutf.js} +1 -1
- package/client/dist/assets/{AnimeInfo-BZnCkkHq.js → AnimeInfo-BN0BBGoL.js} +1 -1
- package/client/dist/assets/{AnimeInfoPage-CPFvFKt0.js → AnimeInfoPage-BKWRJ_zM.js} +2 -2
- package/client/dist/assets/{Asmr--BgcQsb9.js → Asmr-D841iN7S.js} +2 -2
- package/client/dist/assets/AsmrPopup-bQNRqp8U.js +1 -0
- package/client/dist/assets/AsmrResetProgressModal-CJlLLxvJ.js +1 -0
- package/client/dist/assets/Home-DtWNcknh.js +1 -0
- package/client/dist/assets/Home-DtY1sufI.css +1 -0
- package/client/dist/assets/Insights-BFEOElox.js +1 -0
- package/client/dist/assets/Insights-DEicrokg.css +1 -0
- package/client/dist/assets/{LibraryListPage-BnJw-xnm.js → LibraryListPage-Cvu0K3yT.js} +1 -1
- package/client/dist/assets/ListeningList-BBCPOGtc.js +1 -0
- package/client/dist/assets/{Manga-mB3KYDUt.js → Manga-BzwrwVRY.js} +1 -1
- package/client/dist/assets/{MangaInfoPage-C2sxlrwM.js → MangaInfoPage-C9_jlomp.js} +1 -1
- package/client/dist/assets/{MangaReadPage-pDNIP1mf.js → MangaReadPage-dlV9ruge.js} +1 -1
- package/client/dist/assets/{MangaResetProgressModal-C_QbfWkA.js → MangaResetProgressModal-C2audSPT.js} +1 -1
- package/client/dist/assets/{Mature-CWEA-qdC.js → Mature-DCY32pCd.js} +1 -1
- package/client/dist/assets/{MatureConsentModal-Ixo33c5M.js → MatureConsentModal-zk8Ir04J.js} +1 -1
- package/client/dist/assets/{MediaCard-BhYZUPLl.js → MediaCard-ByXxG9l_.js} +1 -1
- package/client/dist/assets/{OptionListMenu-D-g4a-VC.js → OptionListMenu-BMdGIbak.js} +1 -1
- package/client/dist/assets/Player-B8NgcAaG.js +56 -0
- package/client/dist/assets/{PlayerProvider-Q25sRaQm.js → PlayerProvider-BplcfsxC.js} +1 -1
- package/client/dist/assets/{PlayerSettings-puzcbL0V.js → PlayerSettings-I5qwh2dG.js} +1 -1
- package/client/dist/assets/{QueueOptionsButton-C0U85ua3.js → QueueOptionsButton-CgPjlxhd.js} +1 -1
- package/client/dist/assets/{QueueRail-D2SeBzV5.js → QueueRail-56BRY_9J.js} +1 -1
- package/client/dist/assets/{ReadingList-Bp_5vTLj.js → ReadingList-C3S-oiZU.js} +1 -1
- package/client/dist/assets/{ResetProgressModal-By_82RcA.js → ResetProgressModal-CZN-19N0.js} +1 -1
- package/client/dist/assets/{Search-BpG4bAm2.js → Search-BK-3izwR.js} +1 -1
- package/client/dist/assets/Settings-C3A9xzAC.js +21 -0
- package/client/dist/assets/Settings-CXUYiXJY.css +1 -0
- package/client/dist/assets/{SkeletonGrid-CPc8hqla.js → SkeletonGrid-DWlQpD8M.js} +1 -1
- package/client/dist/assets/{Trackers-CYbGDEf-.js → Trackers-BTgn2ubb.js} +1 -1
- package/client/dist/assets/{Tv-FXbgyY_h.js → Tv-CtiQrS7_.js} +1 -1
- package/client/dist/assets/{TvInfo-Cu6BPMzl.js → TvInfo-Bx4weneQ.js} +1 -1
- package/client/dist/assets/{TvPopup-BnPKXA6c.js → TvPopup-Bo-3peif.js} +1 -1
- package/client/dist/assets/{TvSearch-BQNApkYS.js → TvSearch-Bzw_N9vB.js} +1 -1
- package/client/dist/assets/{TvWatchlist-DKbRFInR.js → TvWatchlist-DoMAHoqZ.js} +1 -1
- package/client/dist/assets/VirtualKeyboard-B3STwvzu.js +1 -0
- package/client/dist/assets/VirtualKeyboard-CejCi3pJ.css +1 -0
- package/client/dist/assets/{WatchAlong-CoZ0_fXQ.js → WatchAlong-I0zNTgQi.js} +1 -1
- package/client/dist/assets/{WatchAlongPanel-CerutuF6.js → WatchAlongPanel-DuGnVVja.js} +1 -1
- package/client/dist/assets/{Watchlist-5UqdPHPq.js → Watchlist-raSYd6jM.js} +1 -1
- package/client/dist/assets/index-BYIvl7ZE.css +1 -0
- package/client/dist/assets/index-CNEFXey-.js +178 -0
- package/client/dist/assets/{libraryInvalidation-DGzo-Q94.js → libraryInvalidation-FFJuBJjR.js} +1 -1
- package/client/dist/assets/{playbackCompletion-DCNDnWtX.js → playbackCompletion-UNMxJNR7.js} +1 -1
- package/client/dist/assets/{useAnimeInfoData-C-n9ZzJX.js → useAnimeInfoData-C0IMDPmT.js} +1 -1
- package/client/dist/assets/useAsmrPopup-BBmHrx9v.js +1 -0
- package/client/dist/assets/{useMangaLibrary-uCL2et8O.js → useMangaLibrary-CzC0997w.js} +1 -1
- package/client/dist/assets/{useMangaPopup-DV8-cCbz.js → useMangaPopup-D3j5_GPW.js} +1 -1
- package/client/dist/assets/{useProviders-Bzr6U-8b.js → useProviders-UrTAFdZ7.js} +1 -1
- package/client/dist/assets/{useTv-D2BZQllK.js → useTv-218EB7PR.js} +1 -1
- package/client/dist/assets/{useTvLibrary-BIs22-2H.js → useTvLibrary-Dw8dk1-X.js} +1 -1
- package/client/dist/assets/useWatchAlongPlayer-CTG8hA81.js +10 -0
- package/client/dist/index.html +2 -2
- package/package.json +2 -2
- package/server/dist/server.js +144 -144
- package/server/package.json +1 -1
- package/client/dist/assets/AsmrResetProgressModal-VXhNSZib.js +0 -1
- package/client/dist/assets/Home-CXsFL5QN.js +0 -1
- package/client/dist/assets/Home-DINyLUCh.css +0 -1
- package/client/dist/assets/Insights-4HjAFOov.js +0 -1
- package/client/dist/assets/Insights-D0qrep0K.css +0 -1
- package/client/dist/assets/ListeningList-DSc_Aqz9.js +0 -1
- package/client/dist/assets/Player-B2CmI6hn.js +0 -56
- package/client/dist/assets/Settings-C72mbc_2.js +0 -21
- package/client/dist/assets/Settings-D37LNfis.css +0 -1
- package/client/dist/assets/VirtualKeyboard-B0KbwdUi.js +0 -1
- package/client/dist/assets/VirtualKeyboard-BaUll8Yv.css +0 -1
- package/client/dist/assets/index-CoCvEAx6.css +0 -1
- package/client/dist/assets/index-hnIW0p5l.js +0 -178
- package/client/dist/assets/useAsmr-QthQGpYA.js +0 -1
- package/client/dist/assets/useAsmrPopup-BGI3k7sr.js +0 -1
- package/client/dist/assets/useWatchAlongPlayer-B79YboC3.js +0 -10
package/server/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as i}from"./vendor-core-DfaOB3Rn.js";import{R as n}from"./ResetProgressModal-By_82RcA.js";import{s as a,n as g}from"./useAsmr-QthQGpYA.js";const p=({workId:e,title:s,onClose:r})=>{const o=a(),m=g();return i(n,{isOpen:!!e,itemName:s,progressKind:"listening",listLabel:"my listening list",onClose:r,onConfirm:t=>{e&&(o.mutate({workId:e}),t&&m.mutate({id:e}))}})};export{p as A};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as B,A as z,h as P,q as x,g as Q,u as e,L as We,T as Y,S as oe,a as ee,_ as Je}from"./vendor-core-DfaOB3Rn.js";import{u as ke,a as ie,b as et,c as tt,q as Oe,t as at,d as Ve,s as nt,f as Ne,B as Fe,e as rt,p as ne,g as re,h as ot,i as st,j as lt,k as Ce,M as it,T as ct,l as dt,m as Me,n as ut,o as ht,r as pt,v as mt,w as gt,x as vt,y as _t,z as bt,A as ft}from"./index-hnIW0p5l.js";import{b as yt,u as Tt,a as Nt}from"./vendor-query-BBT5_sHx.js";import{M as ge,P as wt}from"./MediaCard-BhYZUPLl.js";import{A as ce}from"./AnimeCard-Dl21Mnwa.js";import{S as ze,A as Ge}from"./SkeletonGrid-CPc8hqla.js";import{I as O}from"./vendor-icons-DrybRNxP.js";import{u as St}from"./vendor-ui-3qrARCPr.js";import{E as Ie}from"./ErrorMessage-DAxegITP.js";import{R as Ue}from"./ResetProgressModal-By_82RcA.js";import{Q as kt}from"./QueueRail-D2SeBzV5.js";import{u as qe,M as Qe}from"./useMangaPopup-DV8-cCbz.js";import{M as Ct}from"./MangaResetProgressModal-C_QbfWkA.js";import{u as Ye,a as It,m as Se,i as He,b as Re,c as je,d as Rt,e as At}from"./useMangaLibrary-uCL2et8O.js";import{u as Lt}from"./useProviders-Bzr6U-8b.js";import{u as Xe,a as Be,T as $t}from"./useTv-D2BZQllK.js";import{T as Mt}from"./TvPopup-BnPKXA6c.js";import{u as Bt,a as Pt,b as xt}from"./useTvLibrary-BIs22-2H.js";import{A as Et}from"./AsmrResetProgressModal-VXhNSZib.js";import{u as Dt,a as Wt,b as Ot}from"./useAsmr-QthQGpYA.js";import"./useIsMobile-Dvx1uJ82.js";import"./MatureConsentModal-Ixo33c5M.js";import"./useAnimeInfoData-C-n9ZzJX.js";import"./QueueOptionsButton-C0U85ua3.js";import"./playbackCompletion-DCNDnWtX.js";import"./usePopup-DS9jMzp6.js";import"./libraryInvalidation-DGzo-Q94.js";const Vt="_sectionWrapper_10ckl_9",Ft="_sectionTitleNoMargin_10ckl_13",zt="_carousel_10ckl_189",M={"section-header":"_section-header_10ckl_1",sectionWrapper:Vt,sectionTitleNoMargin:Ft,"title-wrapper":"_title-wrapper_10ckl_17","header-controls":"_header-controls_10ckl_24","header-select":"_header-select_10ckl_31","collapse-button":"_collapse-button_10ckl_80","title-link":"_title-link_10ckl_100","continue-watching":"_continue-watching_10ckl_119","nav-arrows":"_nav-arrows_10ckl_141","nav-button":"_nav-button_10ckl_147","carousel-container":"_carousel-container_10ckl_189",carousel:zt,"carousel-inner":"_carousel-inner_10ckl_198","carousel-card":"_carousel-card_10ckl_203"};function ve({align:n="start",containScroll:l="trimSnaps",scrollFraction:u=.8,threshold:t=.6,onReachThreshold:s,slideCount:i=0}={}){const[m,o]=St({align:n,containScroll:l,dragFree:!0}),[w,b]=B(!1),[g,h]=B(!1),f=z({scrollFraction:u,threshold:t,onReachThreshold:s}),r=z(!1);P(()=>{f.current={scrollFraction:u,threshold:t,onReachThreshold:s}});const k=x(p=>{b(p.canScrollPrev()),h(p.canScrollNext())},[]);P(()=>{if(!o)return;const p=()=>{const d=o.scrollProgress();d>=f.current.threshold&&!r.current?(r.current=!0,f.current.onReachThreshold?.()):d<f.current.threshold&&(r.current=!1),k(o)};return o.on("init",p),o.on("reInit",p),o.on("scroll",p),o.on("resize",p),()=>{o.off("init",p),o.off("reInit",p),o.off("scroll",p),o.off("resize",p)}},[o,k]),P(()=>{o?.reInit()},[o,i]);const I=x(p=>{const d=p.containerNode().firstElementChild;if(!d)return 1;const y=p.rootNode().getBoundingClientRect().width,R=d.getBoundingClientRect().width;return R?Math.max(1,Math.round(y/R)):1},[]),S=x((p,d=!1)=>{if(!o)return;const y=Math.max(1,Math.round(I(o)*f.current.scrollFraction)),R=o.selectedScrollSnap()+(p==="left"?-y:y);o.scrollTo(R,d)},[o,I]),c=x((p=!1)=>{o?.scrollTo(0,p)},[o]);return{emblaRef:m,api:o,canScrollPrev:w,canScrollNext:g,stepBy:S,scrollToStart:c}}const Z=({title:n,eyebrow:l,titleLink:u,loading:t,emptyState:s,carousel:i,layout:m,collapsible:o,defaultExpanded:w=!0,onReachThreshold:b,scrollThreshold:g,isFetchingNextPage:h,resetScrollOnShrink:f,itemCount:r=0,highlight:k,headerActions:I,loadingSkeleton:S,skeletonCount:c=7,children:p})=>{const{lowEndMode:d}=ke(),{emblaRef:y,stepBy:R,scrollToStart:V,canScrollPrev:A,canScrollNext:E}=ve({onReachThreshold:b,threshold:g,slideCount:r}),[L,F]=Q.useState(w);Q.useEffect(()=>{F(w)},[w]);const G=Q.useRef(0);return Q.useEffect(()=>{f&&r>0&&L&&(r<=G.current||G.current===0)&&V(),r>0&&(G.current=r)},[r,f,L,V]),!t&&r===0&&!s&&!o?null:e("section",{className:`${M.sectionWrapper} ${k?M["continue-watching"]:""}`,children:[e("div",{className:M["section-header"],children:[e("div",{className:M["title-wrapper"],children:e("div",{className:"title-stack",children:[l&&e("div",{className:"section-eyebrow",children:l}),u?e(We,{to:u,className:M["title-link"],children:e("div",{className:`section-title ${M.sectionTitleNoMargin}`,children:n})}):e("div",{className:`section-title ${M.sectionTitleNoMargin}`,children:n})]})}),e("div",{className:M["header-controls"],children:[I,i&&r>0&&L&&(A||E)&&e("div",{className:M["nav-arrows"],children:[A&&e("button",{className:M["nav-button"],type:"button","aria-label":"Scroll left",onClick:C=>{C.preventDefault(),R("left",d)},children:e(O,{name:"chevron-left"})}),E&&e("button",{className:M["nav-button"],type:"button","aria-label":"Scroll right",onClick:C=>{C.preventDefault(),R("right",d)},children:e(O,{name:"chevron-right"})})]}),o&&e("button",{className:M["collapse-button"],type:"button",onClick:()=>F(C=>!C),"aria-expanded":L,"aria-label":L?`Collapse ${n}`:`Expand ${n}`,children:L?e(O,{name:"chevron-up"}):e(O,{name:"chevron-down"})})]})]}),L&&(i?!t&&r===0&&s?e("div",{children:s}):e("div",{className:M["carousel-container"],children:e("div",{className:M.carousel,ref:y,children:e("div",{className:M["carousel-inner"],children:[t&&r===0?Array.from({length:c}).map((C,q)=>e("div",{className:M["carousel-card"],children:S},q)):Q.Children.map(p,(C,q)=>e("div",{className:M["carousel-card"],children:C},Q.isValidElement(C)&&C.key!=null?C.key:`slide-${q}`)),h&&S&&e("div",{className:M["carousel-card"],children:S})]})})}):e("div",{className:"grid-container",children:t&&r===0?e(ze,{count:6,layout:m}):r>0?p:t?null:e("div",{style:{gridColumn:"1 / -1"},children:s})}))]})},Gt=({title:n,eyebrow:l,animeList:u,continueWatching:t,titleLink:s,onRemove:i,loading:m,emptyState:o,carousel:w,cardConfig:b,layout:g,onReachThreshold:h,scrollThreshold:f,isFetchingNextPage:r,collapsible:k,defaultExpanded:I=!0})=>{const S=g||"vertical";return e(Z,{title:n,eyebrow:l,titleLink:s,loading:m,emptyState:o,carousel:w,layout:S,collapsible:k,defaultExpanded:I,onReachThreshold:h,scrollThreshold:f,isFetchingNextPage:r,resetScrollOnShrink:t,highlight:t,itemCount:u.length,loadingSkeleton:e(Ge,{layout:S}),skeletonCount:7,children:u.map(c=>e(ce,{anime:c,continueWatching:t,onRemove:i,config:b,layout:S},c._id))})},Pe=Q.memo(Gt),Ut="_wrapper_1oi9i_1",qt="_arrow_1oi9i_6",Qt="_select_1oi9i_15",we={wrapper:Ut,arrow:qt,select:Qt},J=({value:n,options:l,onChange:u,ariaLabel:t,width:s})=>e("span",{className:we.wrapper,children:[e("select",{className:we.select,style:s!==void 0?{width:s}:void 0,value:n,"aria-label":t,onChange:i=>u(i.currentTarget.value),children:l.map(i=>e("option",{value:i.value,children:i.label},i.value))}),e(O,{name:"chevron-down",size:12,className:we.arrow})]}),Yt="_sectionWrapper_1dwd0_2",Ht="_sectionTitleNoMargin_1dwd0_6",jt="_carouselContainer_1dwd0_94",Xt="_carousel_1dwd0_94",Kt="_carouselInner_1dwd0_105",Zt="_carouselItem_1dwd0_110",Jt="_rankCard_1dwd0_147",ea="_rankPill_1dwd0_151",ta="_rankGold_1dwd0_162",aa="_rankSilver_1dwd0_166",na="_rankBronze_1dwd0_170",ra="_skeletonPoster_1dwd0_181",oa="_skeletonText_1dwd0_182",v={sectionWrapper:Yt,sectionTitleNoMargin:Ht,"section-header":"_section-header_1dwd0_11","title-wrapper":"_title-wrapper_1dwd0_19","header-actions":"_header-actions_1dwd0_39","nav-arrows":"_nav-arrows_1dwd0_45","nav-button":"_nav-button_1dwd0_51",carouselContainer:jt,carousel:Xt,carouselInner:Kt,carouselItem:Zt,rankCard:Jt,rankPill:ea,rankGold:ta,rankSilver:aa,rankBronze:na,skeletonPoster:ra,skeletonText:oa},xe="TRENDING_DESC",sa="POPULARITY_DESC",la=10;function ia({title:n,eyebrow:l}){const{lowEndMode:u}=ke(),[t,s]=ie("trending_sort",xe),i=[{value:xe,label:"Trending"},{value:sa,label:"All Time"}],{data:m,fetchNextPage:o,hasNextPage:w,isFetchingNextPage:b,isLoading:g,isError:h,error:f}=et(t,la),r=Y(()=>m?.pages.flatMap(d=>d)||[],[m]),k=x(()=>{w&&!b&&!g&&o()},[w,b,g,o]),{emblaRef:I,stepBy:S,canScrollPrev:c,canScrollNext:p}=ve({onReachThreshold:k,slideCount:r.length});return e("section",{className:v.sectionWrapper,children:[e("div",{className:v["section-header"],children:[e("div",{className:v["title-wrapper"],children:e("div",{className:"title-stack",children:[l&&e("div",{className:"section-eyebrow",children:l}),e("div",{className:`section-title ${v.sectionTitleNoMargin}`,children:n})]})}),e("div",{className:v["header-actions"],children:[e(J,{ariaLabel:"Trending sort",width:120,value:t,options:i,onChange:s}),(c||p)&&e("div",{className:v["nav-arrows"],children:[c&&e("button",{className:v["nav-button"],type:"button",onClick:d=>{d.preventDefault(),S("left",u)},"aria-label":"Scroll left",children:e(O,{name:"chevron-left"})}),p&&e("button",{className:v["nav-button"],type:"button",onClick:d=>{d.preventDefault(),S("right",u)},"aria-label":"Scroll right",children:e(O,{name:"chevron-right"})})]})]})]}),g?e("div",{className:v.carouselContainer,children:e("div",{className:v.carousel,children:e("div",{className:v.carouselInner,children:Array.from({length:7}).map((d,y)=>e("div",{className:v.carouselItem,children:[e("div",{className:v.skeletonPoster}),e("div",{className:v.skeletonText})]},y))})})}):h?e(Ie,{message:f instanceof Error?f.message:"An unknown error occurred"}):e("div",{className:v.carouselContainer,children:e("div",{className:v.carousel,ref:I,children:e("div",{className:v.carouselInner,children:[r.map((d,y)=>e("div",{className:v.carouselItem,children:[e("div",{className:v.rankCard,children:e(ce,{anime:d})}),e("div",{className:`${v.rankPill} ${y===0?v.rankGold:y===1?v.rankSilver:y===2?v.rankBronze:""}`,children:y+1})]},d._id)),b&&e("div",{className:v.carouselItem,style:{minWidth:"150px",display:"flex",alignItems:"center",justifyContent:"center"},children:e("div",{className:v.skeletonPoster})})]})})})]})}const ca=[{value:"TV",label:"TV"},{value:"ONA",label:"ONA"},{value:"OVA",label:"OVA"},{value:"MOVIE",label:"Movie"},{value:"ALL",label:"All"},{value:"ADULT",label:"Mature"}],da=10;function ua({eyebrow:n}){const{lowEndMode:l}=ke(),[u,t]=ie("latest_releases_format","TV"),{data:s,fetchNextPage:i,hasNextPage:m,isFetchingNextPage:o,isLoading:w,isError:b,error:g}=tt(u,da),h=Y(()=>s?.pages.flatMap(c=>c)||[],[s]),f=x(()=>{m&&!o&&!w&&i()},[m,o,w,i]),{emblaRef:r,stepBy:k,canScrollPrev:I,canScrollNext:S}=ve({onReachThreshold:f,slideCount:h.length});return e("section",{className:v.sectionWrapper,children:[e("div",{className:v["section-header"],children:[e("div",{className:v["title-wrapper"],children:e("div",{className:"title-stack",children:[n&&e("div",{className:"section-eyebrow",children:n}),e("div",{className:`section-title ${v.sectionTitleNoMargin}`,children:"Latest Releases"})]})}),e("div",{className:v["header-actions"],children:[e(J,{ariaLabel:"Latest releases format",width:120,value:u,options:ca,onChange:t}),(I||S)&&e("div",{className:v["nav-arrows"],children:[I&&e("button",{className:v["nav-button"],type:"button",onClick:c=>{c.preventDefault(),k("left",l)},"aria-label":"Scroll left",children:e(O,{name:"chevron-left"})}),S&&e("button",{className:v["nav-button"],type:"button",onClick:c=>{c.preventDefault(),k("right",l)},"aria-label":"Scroll right",children:e(O,{name:"chevron-right"})})]})]})]}),w?e("div",{className:v.carouselContainer,children:e("div",{className:v.carousel,children:e("div",{className:v.carouselInner,children:Array.from({length:7}).map((c,p)=>e("div",{className:v.carouselItem,children:[e("div",{className:v.skeletonPoster}),e("div",{className:v.skeletonText})]},p))})})}):b?e(Ie,{message:g instanceof Error?g.message:"An unknown error occurred"}):e("div",{className:v.carouselContainer,children:e("div",{className:v.carousel,ref:r,children:e("div",{className:v.carouselInner,children:[h.map(c=>e("div",{className:v.carouselItem,children:e(ce,{anime:c})},c._id)),o&&e("div",{className:v.carouselItem,style:{minWidth:"150px",display:"flex",alignItems:"center",justifyContent:"center"},children:e("div",{className:v.skeletonPoster})})]})})})]})}const ha="_scheduleSection_1o82r_1",pa="_sectionTitleRow_1o82r_5",ma="_sectionTitleNoMargin_1o82r_11",ga="_sectionHeader_1o82r_15",va="_headerActions_1o82r_25",_a="_daySelectorContainer_1o82r_33",ba="_daySelector_1o82r_33",fa="_daySelectorInner_1o82r_50",ya="_dayBtn_1o82r_61",Ta="_active_1o82r_84",Na="_dayMonth_1o82r_92",wa="_dayNum_1o82r_100",Sa="_dayName_1o82r_106",ka="_navArrows_1o82r_119",Ca="_navButton_1o82r_125",Ia="_carouselContainer_1o82r_168",Ra="_carousel_1o82r_168",Aa="_carouselInner_1o82r_180",La="_carouselCard_1o82r_185",$={scheduleSection:ha,sectionTitleRow:pa,sectionTitleNoMargin:ma,sectionHeader:ga,headerActions:va,daySelectorContainer:_a,daySelector:ba,daySelectorInner:fa,dayBtn:ya,active:Ta,dayMonth:Na,dayNum:wa,dayName:Sa,navArrows:ka,navButton:Ca,carouselContainer:Ia,carousel:Ra,carouselInner:Aa,carouselCard:La},de=n=>{const l=n.getFullYear(),u=String(n.getMonth()+1).padStart(2,"0"),t=String(n.getDate()).padStart(2,"0");return`${l}-${u}-${t}`},$a=async(n,l)=>await at.data.schedule.query({date:n,format:l}),Ma=({eyebrow:n})=>{const[l,u]=B(()=>de(new Date)),[t,s]=ie("schedule_format","TV"),i=z(null),m=z(!0),{data:o=[],isLoading:w,error:b}=yt({queryKey:[Oe.schedule,l,t],queryFn:()=>$a(l,t),staleTime:1e3*60*5}),{emblaRef:g,canScrollPrev:h,canScrollNext:f,stepBy:r,scrollToStart:k}=ve({slideCount:o.length}),I=Y(()=>{const c=[],p=new Date,d=de(p),y=new Date(p);y.setDate(p.getDate()-1);const R=de(y),V=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];for(let A=-6;A<=6;A++){const E=new Date(p);E.setDate(p.getDate()+A),c.push(E)}return c.map(A=>{const E=de(A),G=E===d?"Today":E===R?"Yest":V[A.getDay()],C=A.getDate(),q=new Intl.DateTimeFormat("en-US",{month:"short"}).format(A);return{dateString:E,dayLabel:G,dayNum:C,monthName:q}})},[]);P(()=>{const c=i.current,p=c?.querySelector(`[data-date="${l}"]`);if(!c||!p)return;const d=c.getBoundingClientRect(),y=p.getBoundingClientRect(),R=c.scrollLeft+(y.left-d.left)-(d.width-y.width)/2;c.scrollTo({left:Math.max(0,R),behavior:m.current?"auto":"smooth"}),m.current=!1},[l]),P(()=>{k(!0)},[l,k]);const S=[{value:"TV",label:"TV"},{value:"ONA",label:"ONA"},{value:"OVA",label:"OVA"},{value:"MOVIE",label:"Movie"},{value:"ALL",label:"All"},{value:"ADULT",label:"Mature"}];return e("div",{className:$.scheduleSection,children:[e("div",{className:$.sectionHeader,children:[e("div",{className:$.sectionTitleRow,children:e("div",{className:"title-stack",children:[n&&e("div",{className:"section-eyebrow",children:n}),e("h2",{className:`section-title ${$.sectionTitleNoMargin}`,children:"Episode Schedule"})]})}),e("div",{className:$.headerActions,children:[e(J,{ariaLabel:"Schedule format",width:120,value:t,options:S,onChange:s}),o.length>0&&(h||f)&&e("div",{className:$.navArrows,children:[h&&e("button",{className:$.navButton,onClick:()=>r("left"),"aria-label":"Scroll left",children:e(O,{name:"chevron-left"})}),f&&e("button",{className:$.navButton,onClick:()=>r("right"),"aria-label":"Scroll right",children:e(O,{name:"chevron-right"})})]})]})]}),e("div",{className:$.daySelectorContainer,children:e("div",{className:$.daySelector,ref:i,children:e("div",{className:$.daySelectorInner,children:I.map(c=>e("button",{type:"button","data-date":c.dateString,"aria-pressed":l===c.dateString,className:`${$.dayBtn} ${l===c.dateString?$.active:""}`,onClick:()=>u(c.dateString),children:[e("span",{className:$.dayMonth,children:c.monthName}),e("span",{className:$.dayNum,children:c.dayNum}),e("span",{className:$.dayName,children:c.dayLabel})]},c.dateString))})})}),e("div",{className:$.carouselContainer,children:e("div",{className:$.carousel,ref:g,children:e("div",{className:$.carouselInner,children:w?Array.from({length:7}).map((c,p)=>e("div",{className:$.carouselCard,children:e(Ge,{layout:"vertical"})},p)):b?e("div",{style:{width:"100%"},children:e(Ie,{message:b instanceof Error?b.message:"An unknown error occurred"})}):o.length===0?e("p",{style:{textAlign:"center",marginTop:"1rem",width:"100%"},children:"No episodes scheduled for this day."}):o.map(c=>e("div",{className:$.carouselCard,children:e(ce,{anime:c,continueWatching:!1,layout:"vertical"},c._id)},c._id))})})})]})},Ba="_bannerContainer_1l49p_1",Pa="_hero_1l49p_28",xa="_ambient_1l49p_37",Ea="_ambientShow_1l49p_49",Da="_scrim_1l49p_53",Wa="_progressLine_1l49p_69",Oa="_paused_1l49p_89",Va="_dots_1l49p_103",Fa="_dot_1l49p_103",za="_dotActive_1l49p_126",Ga="_viewport_1l49p_137",Ua="_track_1l49p_144",qa="_slide_1l49p_150",Qa="_slideInner_1l49p_158",Ya="_poster_1l49p_168",Ha="_posterLandscape_1l49p_179",ja="_info_1l49p_203",Xa="_kicker_1l49p_208",Ka="_featureLabel_1l49p_215",Za="_scoreChip_1l49p_227",Ja="_rise_1l49p_245",en="_active_1l49p_249",tn="_metaRow_1l49p_305",an="_metaItem_1l49p_316",nn="_metaDivider_1l49p_322",rn="_title_1l49p_329",on="_genres_1l49p_345",sn="_genreTag_1l49p_353",ln="_summary_1l49p_364",cn="_actions_1l49p_376",dn="_watchBtn_1l49p_383",un="_detailsBtn_1l49p_405",hn="_navArrow_1l49p_426",pn="_prevArrow_1l49p_459",mn="_nextArrow_1l49p_463",_={bannerContainer:Ba,hero:Pa,ambient:xa,ambientShow:Ea,scrim:Da,progressLine:Wa,paused:Oa,dots:Va,dot:Fa,dotActive:za,viewport:Ga,track:Ua,slide:qa,slideInner:Qa,poster:Ya,posterLandscape:Ha,info:ja,kicker:Xa,featureLabel:Ka,scoreChip:Za,rise:Ja,active:en,metaRow:tn,metaItem:an,metaDivider:nn,title:rn,genres:on,genreTag:sn,summary:ln,actions:cn,watchBtn:dn,detailsBtn:un,navArrow:hn,prevArrow:pn,nextArrow:mn},gn=8e3,ue=()=>e("div",{className:"skeleton",style:{width:"100vw",maxWidth:"100vw",position:"relative",left:"50%",right:"50%",marginLeft:"-50vw",marginRight:"-50vw",height:"clamp(480px, 72vh, 660px)",marginTop:"calc(-1 * var(--header-height))",marginBottom:"2.5rem"}}),_e=({slides:n,posterAspect:l="portrait",eyebrow:u="Spotlight"})=>{const[t,s]=B(0),[i,m]=B(0),[o,w]=B(!1),[b,g]=B(null),[h,f]=B(0),[r,k]=B({front:"",back:"",flip:!1}),I=z(0),S=z(0),c=z(new Set),p=z(null),d=z(0),y=x(a=>a.bannerSrc,[]),R=x(()=>{m(a=>a+1)},[]),V=x(a=>{p.current!==null&&(window.clearTimeout(p.current),p.current=null),g(null),R();const T=y(n[a]);k(N=>N.flip?{front:T,back:N.back,flip:!1}:{front:N.front,back:T,flip:!0}),s(a)},[R,n,y]),A=x(a=>{if(n.length===0)return;const T=(a%n.length+n.length)%n.length;c.current.has(y(n[T]))?V(T):g(T)},[n,y,V]);P(()=>{let a=!1;return n.forEach(T=>{const N=y(T);if(!N||c.current.has(N))return;const D=new Image;D.src=N;const X=()=>{a||c.current.has(N)||(c.current.add(N),f(U=>U+1))};D.onload=X,D.onerror=X}),()=>{a=!0}},[n,y]),P(()=>{if(n.length!==0&&!r.front){const a=y(n[0]);k({front:a,back:"",flip:!1})}},[n,r.front,y]),P(()=>{if(b!==null){if(b<0||b>=n.length){g(null);return}c.current.has(y(n[b]))&&V(b)}},[b,h,n,y,V]),P(()=>{if(b===null)return;p.current!==null&&window.clearTimeout(p.current);const a=b;return p.current=window.setTimeout(()=>{p.current=null,V(a)},2500),()=>{p.current!==null&&(window.clearTimeout(p.current),p.current=null)}},[b,V]);const E=x(a=>{A(a)},[A]),L=x(()=>{A(d.current+1)},[A]),F=x(()=>{A(d.current-1)},[A]),G=z(null);if(P(()=>{const a=G.current;if(!a)return;const T=N=>{if(Math.abs(N.deltaY)>Math.abs(N.deltaX)&&Math.abs(N.deltaY)>5){N.preventDefault(),N.stopPropagation();const D=Date.now();if(D-I.current<300)return;I.current=D,R(),N.deltaY>0?L():F()}};return a.addEventListener("wheel",T,{passive:!1}),()=>a.removeEventListener("wheel",T)},[n.length,L,F,R]),P(()=>{if(n.length===0||o)return;const a=setTimeout(L,gn);return()=>clearTimeout(a)},[t,L,n.length,i,o]),P(()=>{const a=T=>{const N=T.target;N&&(N.tagName==="INPUT"||N.tagName==="TEXTAREA"||N.tagName==="SELECT"||N.isContentEditable)||(T.key==="ArrowRight"?(T.preventDefault(),L()):T.key==="ArrowLeft"&&(T.preventDefault(),F()))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[L,F]),P(()=>{t>=n.length&&s(0)},[n.length,t]),n.length===0)return null;const C=t>=n.length?0:t;d.current=C;const q=a=>{S.current=a.touches[0].clientX},j=a=>{const N=a.changedTouches[0].clientX-S.current;Math.abs(N)>50&&(R(),N>0?F():L())};return e("div",{className:_.bannerContainer,onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),children:e("div",{className:`${_.hero} ${o?_.paused:""}`,onTouchStart:q,onTouchEnd:j,children:[r.front&&e("img",{src:r.front,alt:"","aria-hidden":"true",className:`${_.ambient} ${r.flip?"":_.ambientShow}`}),r.back&&e("img",{src:r.back,alt:"","aria-hidden":"true",className:`${_.ambient} ${r.flip?_.ambientShow:""}`}),e("div",{className:_.scrim,"aria-hidden":"true"}),n.length>1&&e("div",{className:_.progressLine,"aria-hidden":"true"},`progress-${i}-${C}`),n.length>1&&e("div",{className:_.dots,ref:G,role:"tablist","aria-label":"Spotlight slides",children:n.map((a,T)=>e("button",{role:"tab","aria-selected":T===C,"aria-label":`Go to slide ${T+1}: ${a.title}`,className:`${_.dot} ${T===C?_.dotActive:""}`,onClick:()=>E(T),tabIndex:T===C?0:-1},a.key))}),e("div",{className:_.viewport,children:e("div",{className:_.track,style:{transform:`translateX(-${C*100}%)`},children:n.map((a,T)=>e("div",{className:`${_.slide} ${T===C?_.active:""}`,"aria-hidden":T!==C,children:e("div",{className:_.slideInner,children:[e("img",{src:a.posterSrc,alt:a.posterAlt,className:l==="landscape"?_.posterLandscape:_.poster,decoding:"async"}),e("div",{className:_.info,children:[e("div",{className:`${_.kicker} ${_.rise}`,children:[e("span",{className:_.featureLabel,children:u}),a.score!==void 0&&a.score!==null&&a.score!==""&&e("span",{className:_.scoreChip,children:[e(O,{name:"star",size:12}),e("span",{children:a.score})]})]}),e(We,{to:a.detailTo,className:`${_.title} ${_.rise}`,"aria-label":`View details for ${a.title}`,tabIndex:T===C?0:-1,children:a.title}),a.metaItems.length>0&&e("div",{className:`${_.metaRow} ${_.rise}`,children:a.metaItems.map((N,D)=>e(Q.Fragment,{children:[e("span",{className:_.metaItem,children:N}),D<a.metaItems.length-1&&e("div",{className:_.metaDivider})]},D))}),a.tags.length>0&&e("div",{className:`${_.genres} ${_.rise}`,children:a.tags.slice(0,3).map(N=>e("span",{className:_.genreTag,children:N},N))}),a.synopsis&&e("p",{className:`${_.summary} ${_.rise}`,children:a.synopsis}),e("div",{className:`${_.actions} ${_.rise}`,children:[e("button",{className:_.watchBtn,onClick:a.onPrimary,tabIndex:T===C?0:-1,children:[e(O,{name:a.primaryIcon,size:14}),e("span",{children:a.primaryLabel})]}),e("button",{className:_.detailsBtn,onClick:a.onDetails,tabIndex:T===C?0:-1,children:[e(O,{name:"info-circle",size:15}),e("span",{children:"Details"})]})]})]})]})},a.key))})}),n.length>1&&e(oe,{children:[e("button",{className:`${_.navArrow} ${_.prevArrow}`,onClick:()=>{R(),F()},"aria-label":"Previous slide",children:e(O,{name:"chevron-left",size:20})}),e("button",{className:`${_.navArrow} ${_.nextArrow}`,onClick:()=>{R(),L()},"aria-label":"Next slide",children:e(O,{name:"chevron-right",size:20})})]})]})})},vn=({animeList:n})=>{const{titlePreference:l}=Ve(),u=ee(),t=Y(()=>n.slice(0,6).map(s=>{const i=l==="nativeName"?s.nativeName||s.name:l==="englishName"&&s.englishName||s.name;return{key:s._id,bannerSrc:s.bannerImage?Ne(s.bannerImage,1280,560):Ne(s.thumbnail,1280,450),posterSrc:Ne(s.thumbnail,460,650),posterAlt:i,title:i,detailTo:`/anime/${s._id}`,score:s.score,metaItems:[s.type||"Anime",s.status,s.episodeCount?`${s.episodeCount} Episodes`:void 0,s.rating].filter(m=>!!m),tags:(s.genres??[]).slice(0,3).map(m=>typeof m=="string"?m:m?.name).filter(m=>!!m),synopsis:nt(s.description??""),primaryLabel:"Watch Now",primaryIcon:"play",onPrimary:()=>u(`/watch/${s._id}`),onDetails:()=>u(`/anime/${s._id}`)}}),[n,l,u]);return e(_e,{slides:t})},_n="_emptyState_19tmt_1",bn="_emptyStateIcon_19tmt_16",fn="_emptyStateTitle_19tmt_23",yn="_emptyStateText_19tmt_30",he={emptyState:_n,emptyStateIcon:bn,emptyStateTitle:fn,emptyStateText:yn},be=({icon:n,text:l,actionLabel:u,onAction:t,title:s="Nothing is here..."})=>e("div",{className:he.emptyState,children:[e(O,{name:n,size:48,className:he.emptyStateIcon}),e("div",{children:[e("h3",{className:he.emptyStateTitle,children:s}),e("p",{className:he.emptyStateText,children:l})]}),e(Fe,{variant:"primary",size:"sm",onClick:t,style:{marginTop:"1rem"},children:u})]}),Tn="_tabBar_irwbm_1",Nn="_tabIndicator_irwbm_24",wn="_tabButton_irwbm_38",Sn="_tabActive_irwbm_64",pe={tabBar:Tn,tabIndicator:Nn,tabButton:wn,tabActive:Sn};function kn({options:n,value:l,onChange:u,ariaLabel:t},s){const i=z(null),m=z(new Map),o=z(null),[w,b]=B({left:0,width:0}),g=x((h,f)=>{const r=m.current.get(h),k=i.current;if(r&&k){const I=k.getBoundingClientRect(),S=r.getBoundingClientRect();b({left:S.left-I.left+k.scrollLeft,width:S.width}),f&&r.scrollIntoView({block:"nearest",inline:"nearest"})}},[]);return Je(()=>{const h=o.current!==null&&o.current!==l;o.current=l,g(l,h)},[l,n.length,g]),P(()=>{if(g(l,!1),typeof ResizeObserver>"u")return;let h=0;const f=i.current;if(!f)return;const r=new ResizeObserver(()=>{cancelAnimationFrame(h),h=requestAnimationFrame(()=>g(l,!1))});r.observe(f);let k=!1;return document.fonts?.ready&&document.fonts.ready.then(()=>{k||g(l,!1)}),()=>{k=!0,cancelAnimationFrame(h),r.disconnect()}},[l,n.length,g]),e("div",{className:pe.tabBar,ref:h=>{i.current=h,typeof s=="function"?s(h):s&&(s.current=h)},"aria-label":t,children:[e("div",{className:pe.tabIndicator,style:{left:w.left,width:w.width}}),n.map(h=>e(Fe,{ref:f=>{f&&m.current.set(h.value,f)},variant:"secondary",size:"sm",className:`${pe.tabButton} ${l===h.value?pe.tabActive:""}`,onClick:()=>u(h.value),children:h.label},h.value))]})}const me=Q.forwardRef(kn),Cn=[{value:"popular",label:"Popular"},{value:"followed",label:"Most Followed"},{value:"rating",label:"Top Rated"}],Ee=({title:n,eyebrow:l,sort:u,mature:t,headerActions:s})=>{const{toggle:i,bookmarkedIds:m}=Ye(),{popup:o,openPopup:w,scheduleClose:b,cancelClose:g,closePopup:h}=qe(),{data:f,isLoading:r,fetchNextPage:k,hasNextPage:I,isFetchingNextPage:S}=It({provider:"",query:"",sort:u,status:"",type:"",rating:t?"safe,suggestive,erotica,pornographic":"safe",mature:t}),c=Y(()=>f?.pages.flatMap(d=>d.items)??[],[f]),p=x(()=>{I&&!S&&!r&&k()},[I,S,r,k]);return e(oe,{children:[e(Z,{title:n,eyebrow:l,loading:r,carousel:!0,itemCount:c.length,headerActions:s,onReachThreshold:p,isFetchingNextPage:S,loadingSkeleton:e("div",{className:"skeleton",style:{aspectRatio:"3 / 4"}}),skeletonCount:7,children:c.map(d=>{const y=Se(d.provider,d.id);return e(ge,{item:{id:y,title:d.title,...je(d),thumbnail:Re(d.provider,d.cover),typeBadge:d.type||void 0,chapterBadge:d.latestChapter?`Ch. ${d.latestChapter}`:null,isAdult:He(d)},linkTo:`/manga/${d.provider}/${encodeURIComponent(d.id)}`,hoverIcon:"info",showInfoButton:!0,display:{elements:{poster:{typeBadge:!0,chapterBadge:!0,adultBadge:!0},info:{title:!0,mobileBadges:!0,progress:!1,meta:!1}}},onOpenDetails:R=>w(R,{provider:d.provider,mangaId:d.id,title:d.title,altTitle:d.altTitle,cover:d.cover,contentRating:d.contentRating,readTarget:`/manga/${d.provider}/${encodeURIComponent(d.id)}`,mature:t}),onPopupHoverIntent:R=>R?g():b(),rawThumbnail:!0},`${d.provider}-${d.id}`)})}),o&&e(Qe,{data:o.data,anchorRect:o.rect,bookmarked:m.has(Se(o.data.provider,o.data.mangaId)),onToggleBookmark:()=>i({id:o.data.mangaId,provider:o.data.provider,title:o.data.title,cover:o.data.cover,altTitle:o.data.altTitle??void 0,contentRating:o.data.contentRating}),onMouseEnter:g,onMouseLeave:b,onRequestClose:h})]})},In=()=>{const{options:n}=Lt(),l=Y(()=>n.some(o=>o.kind==="manga"),[n]),{hasConsent:u}=rt(),[t,s]=ie("manga_discover_tab","latest"),[i,m]=ie("manga_trending_sort","popular");return l?e(oe,{children:[e(me,{ariaLabel:"Discover manga",options:[{value:"latest",label:"Latest Releases"},{value:"trending",label:"Trending"}],value:t,onChange:s}),t==="latest"?e(Ee,{title:"Latest Releases",eyebrow:"Fresh chapters",sort:"latest",mature:u}):e(Ee,{title:"Trending",eyebrow:"Discover",sort:i,mature:u,headerActions:e("select",{className:M["header-select"],value:i,onChange:o=>m(o.currentTarget.value),"aria-label":"Trending sort",children:Cn.map(o=>e("option",{value:o.value,children:o.label},o.value))})})]}):null},Rn=()=>{const n=ee(),{data:l,isLoading:u}=Rt(24),[t,s]=B(null),{popup:i,openPopup:m,scheduleClose:o,cancelClose:w,closePopup:b}=qe(),{toggle:g,bookmarkedIds:h}=Ye(),f=l?.data??[];return e("div",{style:{paddingBottom:"2rem"},children:[e(Z,{title:"Continue Reading",eyebrow:"Pick up where you left off",titleLink:"/reading-list/Continue Reading",loading:u,carousel:!0,collapsible:!0,defaultExpanded:f.length>0,highlight:!0,itemCount:f.length,loadingSkeleton:e("div",{className:"skeleton",style:{aspectRatio:"3 / 4"}}),skeletonCount:7,emptyState:e(be,{icon:"book",text:"You haven't read anything yet. Browse manga and open a chapter to start tracking.",actionLabel:"Browse Manga",onAction:()=>n("/manga")}),children:f.map(r=>{const k=r.page??0,I=r.pageCount??0,S=r.chapterId&&r.provider?`/manga/${r.provider}/${encodeURIComponent(r.mangaId)}/read?chapter=${encodeURIComponent(r.chapterId)}`:r.provider?`/manga/${r.provider}/${encodeURIComponent(r.mangaId)}`:"#";return e(ge,{item:{id:r.id,title:r.title||"",...je({title:r.title||"",altTitle:r.altTitle}),thumbnail:r.provider?Re(r.provider,r.cover||""):r.cover||"",chapterBadge:r.chapterNumber?`Ch. ${r.chapterNumber}`:null,isAdult:He(r)},linkTo:S,hoverIcon:"book",progress:I>0?{percent:k/I*100,label:`Ch. ${r.chapterNumber} · p. ${k}/${I}`}:void 0,showProgress:!0,display:{elements:{poster:{typeBadge:!1,chapterBadge:!0,adultBadge:!0,removeButton:!0},info:{title:!0,mobileBadges:!0,progress:!0,meta:!1}}},onRemove:()=>s({libId:r.id,title:r.title||""}),onOpenDetails:c=>m(c,{provider:r.provider||"",mangaId:r.mangaId||"",title:r.title||"",altTitle:r.altTitle,cover:r.cover||"",contentRating:r.contentRating||void 0,readTarget:S}),onPopupHoverIntent:c=>c?w():o(),rawThumbnail:!0},r.id)})}),e(Ct,{mangaId:t?t.libId:null,title:t?.title,onClose:()=>s(null)}),i&&i.data.provider&&e(Qe,{data:i.data,anchorRect:i.rect,bookmarked:h.has(Se(i.data.provider,i.data.mangaId)),onToggleBookmark:()=>g({id:i.data.mangaId,provider:i.data.provider,title:i.data.title,cover:i.data.cover,altTitle:i.data.altTitle??void 0,contentRating:i.data.contentRating}),onMouseEnter:w,onMouseLeave:o,onRequestClose:b}),e(In,{})]})},An="_emptyState_bpz5x_1",De={emptyState:An},Ln=[{value:"latest",label:"Latest Releases"},{value:"trending",label:"Trending"}],$n=[{value:"trending_week",label:"Trending Now"},{value:"trending_day",label:"Trending Today"},{value:"popular",label:"Popular All Time"},{value:"top_rated",label:"Top Rated"}],Mn=()=>{const n=ee(),{data:l,isLoading:u}=Bt(24),t=Pt(),s=xt(),[i,m]=B(null),[o,w]=B(()=>ne.getItem("tv_home_activeTab")||"latest"),[b,g]=B("tv"),[h,f]=B("trending_week"),[r,k]=B("multi"),I=l?.data??[];Q.useEffect(()=>{ne.setItem("tv_home_activeTab",o)},[o]);const S=h.startsWith("trending_"),c=h==="trending_day"?"day":"week",p={popular:"popularity.desc",top_rated:"vote_average.desc"},{data:d,isLoading:y}=Xe(r==="multi"?"all":r,c,1,S&&o==="trending"),{data:R,isLoading:V}=Be({type:r,sort_by:p[h]||"popularity.desc",page:1}),A=S?d?.results||[]:R?.results||[],E=S?y:V,{data:L,isLoading:F}=Be({type:b,sort_by:"primary_release_date.desc",page:1}),G=L?.results||[],C=a=>{i&&(s.mutate({mediaId:i.libId}),a&&t.mutate(i.libId))},q=x(a=>e($t,{item:{id:a.id,title:a.title,year:a.year,type:a.type,image:a.image,vote_average:a.vote_average,adult:a.adult}},`${a.type}-${a.id}`),[]),j=()=>{switch(o){case"latest":return e(Z,{title:"Latest Releases",eyebrow:"Fresh picks",loading:F,carousel:!0,itemCount:G.length,headerActions:e(J,{ariaLabel:"Latest type",value:b,onChange:a=>g(a),options:[{value:"tv",label:"TV Shows"},{value:"movie",label:"Movies"}]}),loadingSkeleton:e("div",{className:"skeleton",style:{aspectRatio:"3 / 4",borderRadius:"var(--radius-lg)"}}),emptyState:e("div",{className:De.emptyState,children:e("p",{children:"No latest releases available right now."})}),children:G.map(q)});case"trending":return e(Z,{title:"Trending",eyebrow:"Discover",loading:E,carousel:!0,itemCount:A.length,headerActions:e(oe,{children:[e(J,{ariaLabel:"Trending sort",value:h,onChange:f,options:$n.map(a=>({value:a.value,label:a.label}))}),e(J,{ariaLabel:"Trending type",value:r,onChange:a=>k(a),options:[{value:"multi",label:"All"},{value:"tv",label:"TV Shows"},{value:"movie",label:"Movies"}]})]}),loadingSkeleton:e("div",{className:"skeleton",style:{aspectRatio:"3 / 4",borderRadius:"var(--radius-lg)"}}),emptyState:e("div",{className:De.emptyState,children:e("p",{children:"No trending content available right now."})}),children:A.map(q)})}};return e("div",{style:{paddingBottom:"2rem"},children:[e(Z,{title:"Continue Watching",eyebrow:"Pick up where you left off",titleLink:"/tv-watchlist/Continue Watching",loading:u,carousel:!0,collapsible:!0,defaultExpanded:I.length>0,highlight:!0,itemCount:I.length,loadingSkeleton:e("div",{className:"skeleton",style:{aspectRatio:"3 / 4"}}),skeletonCount:7,emptyState:e(be,{icon:"tv",text:"You haven't watched anything yet. Search TV & Movies and start watching to track progress.",actionLabel:"Browse TV & Movies",onAction:()=>n("/tv-search")}),children:I.map(a=>{const T=a.currentTime??0,N=a.duration??0,D=a.season??1,X=a.episode??1,U=a.mediaType==="movie",K=U?"Movie":`S${D} E${X}`,te=a.completed===1||N>0&&T>=N*.8,ae=te?100:N>0&&T>0?T/N*100:0,fe=te?"Watched":N>0?U?`${re(T)} / ${re(N)}`:`${K} · ${re(T)} / ${re(N)}`:K;return e(ge,{item:{id:a.id,title:a.title||"",thumbnail:a.poster||"",typeBadge:U?"Movie":"TV",chapterBadge:K,isAdult:st({adult:a.adult===1})},linkTo:ot(a.mediaType,a.tmdbId??0,U?void 0:D,U?void 0:X),hoverIcon:"play",progress:(N>0||te)&&ae>0?{percent:ae,label:fe}:void 0,showProgress:!0,metaRow:a.year?e("span",{style:{opacity:.75},children:a.year}):void 0,onRemove:()=>m({libId:a.id,title:a.title||""}),renderPopup:(ye,se)=>e(Mt,{item:{id:a.tmdbId??0,title:a.title||"",year:a.year||"",type:a.mediaType||"tv",image:a.poster||""},anchorRect:ye,onMouseEnter:se.onMouseEnter,onMouseLeave:se.onMouseLeave,onRequestClose:se.close})},a.id)})}),e(me,{ariaLabel:"Browse TV",options:Ln,value:o,onChange:w}),e("div",{children:j()}),e(Ue,{isOpen:!!i,itemName:i?.title,progressKind:"watch",listLabel:"my TV watchlist",onClose:()=>{m(null)},onConfirm:C})]})};function Bn(n){const l=n.currentTime??0,u=n.duration??0,t=(n.trackIndex??0)+1;return u>0?`Track ${t} · ${re(l)} / ${re(u)}`:n.trackLabel?`Track ${t} · ${n.trackLabel}`:`Track ${t}`}const Pn=({title:n="Continue Listening",limit:l=24,titleLink:u,showEmptyState:t=!0})=>{const s=ee(),{data:i,isLoading:m}=Dt(l),[o,w]=B(null),b=i?.data??[];return e(oe,{children:[e(Z,{title:n,eyebrow:"Pick up where you left off",titleLink:u??"/listening-list/Continue Listening",loading:m,carousel:!0,collapsible:!0,defaultExpanded:b.length>0,highlight:!0,itemCount:b.length,loadingSkeleton:e("div",{className:"skeleton",style:{aspectRatio:"16 / 9"}}),skeletonCount:7,emptyState:t?e(be,{icon:"headphones",text:"You haven't listened to anything yet. Browse ASMR and play a track to start tracking.",actionLabel:"Browse ASMR",onAction:()=>s("/asmr")}):void 0,children:b.map(g=>{const h=g.currentTime??0,f=g.duration??0,r=g.rjCode||g.id;return e(ge,{item:{id:g.id,title:g.title||"",thumbnail:g.thumbnail||"",chapterBadge:`Track ${(g.trackIndex??0)+1}`,isAdult:!!g.isAdult},linkTo:`/asmr/${encodeURIComponent(r)}`,hoverIcon:"play",layout:"horizontal",progress:f>0?{percent:Math.min(100,h/f*100),label:Bn(g)??""}:void 0,showProgress:!0,display:{elements:{poster:{typeBadge:!1,chapterBadge:!0,adultBadge:!0,removeButton:!0},info:{title:!0,mobileBadges:!0,progress:!0,meta:!1}}},onRemove:()=>w({workId:g.id,title:g.title||""}),rawThumbnail:!0},g.id)})}),e(Et,{workId:o?o.workId:null,title:o?.title,onClose:()=>w(null)})]})},xn=()=>e("div",{style:{paddingBottom:"2rem"},children:e(Pn,{})}),En=({items:n})=>{const l=ee(),u=Y(()=>n.slice(0,6).map(t=>{const s=lt(t.type,t.id);return{key:String(t.id),bannerSrc:t.backdrop?t.backdrop:t.image,posterSrc:t.image,posterAlt:t.title,title:t.title,detailTo:s,score:t.vote_average>0?Number(t.vote_average).toFixed(1):null,metaItems:[t.type==="tv"?"TV Show":"Movie",t.year].filter(Boolean),tags:t.genre_ids.slice(0,3).map(i=>it[i]??ct[i]).filter(Boolean),synopsis:Ce(t.overview,200),primaryLabel:"Watch Now",primaryIcon:"play",onPrimary:()=>l(s),onDetails:()=>l(s)}}),[n,l]);return e(_e,{slides:u,eyebrow:"TV Spotlight"})},Dn=({mangaList:n})=>{const l=ee(),u=Y(()=>n.slice(0,6).map(t=>{const s=`/manga/${t.provider||"mangadex"}/${t.id}`,i=Re(t.provider||"mangadex",t.cover||"");return{key:`${t.provider}-${t.id}`,bannerSrc:i,posterSrc:i,posterAlt:t.title,title:t.title,detailTo:s,metaItems:[t.year?String(t.year):void 0,t.status??void 0].filter(m=>!!m),tags:t.tags.slice(0,3),synopsis:Ce(t.description,200,""),primaryLabel:"Read Now",primaryIcon:"book",onPrimary:()=>l(s),onDetails:()=>l(s)}}),[n,l]);return e(_e,{slides:u,eyebrow:"Manga Spotlight"})};function Wn(n){const l=n.availableEpisodes?.sub;if(typeof l=="number"&&l>0)return l;const u=n.availableEpisodesDetail?.sub,t=n.availableEpisodesDetail?.dub,s=(Array.isArray(u)?u.length:0)+(Array.isArray(t)?t.length:0);return s>0?s:null}const On=({works:n})=>{const l=ee(),u=Y(()=>n.slice(0,6).map((t,s)=>{const i=Wt(t),m=`/asmr/${encodeURIComponent(i)}`,o=Wn(t);return{key:i||t._id||String(s),bannerSrc:t.thumbnail||"",posterSrc:t.thumbnail||"",posterAlt:t.name,title:t.name,detailTo:m,metaItems:[t.rating?t.rating.toUpperCase():void 0,o?`${o} track${o===1?"":"s"}`:void 0].filter(w=>!!w),tags:[],synopsis:Ce(t.description,160,""),primaryLabel:"Listen Now",primaryIcon:"play",onPrimary:()=>l(m),onDetails:()=>l(m)}}),[n,l]);return e(_e,{slides:u,eyebrow:"ASMR Spotlight",posterAspect:"landscape"})},Vn="_seasonGrid_168jc_34",le={"section-header":"_section-header_168jc_1","content-type-nav":"_content-type-nav_168jc_8","title-wrapper":"_title-wrapper_168jc_18","pagination-controls":"_pagination-controls_168jc_24",seasonGrid:Vn},Fn=[{value:"anime",label:"Anime"},{value:"manga",label:"Manga"},{value:"tv",label:"TV & Movies"},{value:"asmr",label:"ASMR"}],gr=()=>{const n=Tt(),l=dt(),[u,t]=Q.useState(1),[s,i]=B(()=>ne.getItem("home_activeTab")||"latest"),[m,o]=B(()=>ne.getItem("season_format")||"TV"),w=z(null),{data:b}=Me(u+1,m,s==="season"),{titlePreference:g}=Ve(),{contentType:h,setContentType:f}=ut(),[r,k]=Q.useState(null),I=ht(),{data:S=[]}=pt(),c=mt(),p=gt(),d=vt();P(()=>{document.title="Home - dango"},[]);const{data:y,isLoading:R}=_t();P(()=>{ne.setItem("home_activeTab",s)},[s]),P(()=>{ne.setItem("season_format",m),t(1)},[m]),P(()=>{y!==void 0&&y.length===0&&s==="week"&&i("latest")},[y,s]);const{data:V,isLoading:A,fetchNextPage:E,hasNextPage:L,isFetchingNextPage:F}=bt(),G=x(()=>{L&&!F&&!A&&E()},[L,F,A,E]),{data:C,isLoading:q}=ft(),{data:j,isLoading:a}=Xe("all","week",1,h==="tv"),{data:T,isLoading:N}=Ot(h==="asmr"),{data:D,isLoading:X}=At(),U=Y(()=>V?.pages||[],[V]),{data:K,isLoading:te}=Me(u,m,s==="season"),ae=14,fe=K&&K.length>=ae&&b&&b.length>0,ye=Nt(l.continueWatching.remove.mutationOptions({onSuccess:async()=>{n.invalidateQueries(l.continueWatching.pathFilter()),await n.invalidateQueries({queryKey:[Oe.continueWatching]}),L&&U.length-1<14&&E()}})),se=x(W=>{const H=U?.find(Te=>String(Te.id)===String(W));if(H){const Te=H[g]||H.name;k({id:W,name:Te})}},[U,g]),Ae=[{key:"latest",label:"Latest Releases"},{key:"season",label:"Current Season"},{key:"popular",label:"Trending"}],Le=y!==void 0&&y.length>0,Ke=Le?[{key:"week",label:"This Week"},...Ae]:Ae,$e=s==="week"&&!Le?"latest":s,Ze=()=>{switch($e){case"latest":return e(ua,{eyebrow:"Fresh episodes"});case"season":return e("section",{style:{marginBottom:"2.5rem"},children:[e("div",{className:le["section-header"],ref:w,children:[e("div",{className:le["title-wrapper"],children:e("div",{className:"title-stack",children:[e("div",{className:"section-eyebrow",children:"This season"}),e("div",{className:"section-title",style:{marginBottom:0},children:"Current Season"})]})}),e("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[e(J,{ariaLabel:"Season format",width:90,value:m,onChange:o,options:[{value:"TV",label:"TV"},{value:"ONA",label:"ONA"},{value:"OVA",label:"OVA"},{value:"MOVIE",label:"Movie"},{value:"ALL",label:"All"},{value:"ADULT",label:"Mature"}]}),e("div",{className:le["pagination-controls"],children:e(wt,{page:u,canGoNext:fe,onChange:W=>{if(t(W),w.current){const H=w.current.getBoundingClientRect().top+window.scrollY-120;window.scrollTo({top:H,behavior:"smooth"})}},isLoading:te})})]})]}),e("div",{className:`grid-container ${le.seasonGrid}`,style:{minHeight:"300px",alignContent:"start"},children:te?e(ze,{count:ae}):K?.slice(0,ae).map(W=>e(ce,{anime:W},W._id))})]});case"popular":return e(ia,{title:"Trending",eyebrow:"Discover"});case"week":return e(Pe,{title:"This Week",eyebrow:"Aired this week",animeList:y||[],continueWatching:!1,carousel:!0,loading:R});default:return null}};return e("div",{style:{paddingBottom:"2rem"},children:[h==="anime"&&(q&&!C?.length?e(ue,{}):C&&C.length>0&&e(vn,{animeList:C})),h==="tv"&&(a&&!j?.results?.length?e(ue,{}):j?.results&&j.results.length>0&&e(En,{items:j.results})),h==="manga"&&(X&&!D?.length?e(ue,{}):D&&D.length>0&&e(Dn,{mangaList:D})),h==="asmr"&&(N&&!T?.length?e(ue,{}):T&&T.length>0&&e(On,{works:T})),e("div",{className:le["content-type-nav"],children:e(me,{ariaLabel:"Content type",options:Fn,value:h,onChange:f})}),h==="manga"?e(Rn,{}):h==="tv"?e(Mn,{}):h==="asmr"?e(xn,{}):e(oe,{children:[e(Pe,{title:"Continue Watching",eyebrow:"Pick up where you left off",titleLink:"/watchlist/Continue Watching",animeList:U,continueWatching:!0,carousel:!0,collapsible:!0,defaultExpanded:U.length>0,onRemove:se,loading:A,onReachThreshold:G,scrollThreshold:.7,isFetchingNextPage:F,emptyState:e(be,{icon:"history",text:"You haven't watched anything yet. Start exploring and watch something first!",actionLabel:"Explore Trending",onAction:()=>i("popular")})}),e(kt,{title:"Queue",eyebrow:"Up next",items:S,onRemove:W=>c.mutate({showId:W.showId,episodeNumber:W.episodeNumber}),showClearAll:!0,onClear:()=>p.mutate(),onReorder:W=>d.mutate(W.map(H=>({id:H.id,showId:H.showId,episodeNumber:H.episodeNumber})))}),e(me,{ariaLabel:"Browse anime",options:Ke.map(W=>({value:W.key,label:W.label})),value:$e,onChange:i}),e("div",{children:Ze()}),e(Ma,{eyebrow:"Never miss an episode"}),e(Ue,{isOpen:!!r,itemName:r?.name,progressKind:"watch",listLabel:"my watchlist",onClose:()=>{k(null)},onConfirm:W=>{r&&(ye.mutate({showId:r.id}),W&&I.mutate({id:r.id}))}})]})]})};export{gr as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._section-header_10ckl_1{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8);gap:var(--space-4)}._sectionWrapper_10ckl_9{margin-bottom:2.5rem}._sectionTitleNoMargin_10ckl_13{margin-bottom:0}._title-wrapper_10ckl_17{display:flex;align-items:center;gap:var(--space-6);flex:1}._header-controls_10ckl_24{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}._header-select_10ckl_31{width:auto;min-width:120px;height:40px;padding:0 10px;padding-right:2rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--control-text);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23a1a1aa' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:all var(--transition-base)}._header-select_10ckl_31:hover{border-color:var(--control-border-hover);background-color:var(--bg-elevated)}._header-select_10ckl_31:focus{outline:none;border-color:var(--accent)}._view-all-link_10ckl_62{font-size:.85rem;font-weight:700;color:var(--text-secondary);text-decoration:none;white-space:nowrap;padding:8px 12px;border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition-base)}._view-all-link_10ckl_62:hover{color:var(--accent-light);background:var(--accent-subtle);border-color:var(--border-primary)}._collapse-button_10ckl_80{width:40px;height:40px;border:1px solid var(--border-primary);background:var(--bg-tertiary);color:var(--control-text);border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._collapse-button_10ckl_80:hover{background:var(--bg-elevated);border-color:var(--border-primary);color:var(--control-text)}._title-link_10ckl_100{color:inherit;text-decoration:none;display:inline-flex;align-items:center;transition:all var(--transition-base)}._title-link_10ckl_100 .section-title{position:relative;font-size:1.5rem;font-weight:800;letter-spacing:-.01em}._title-link_10ckl_100:hover,._continue-watching_10ckl_119 ._title-link_10ckl_100:hover .section-title{color:var(--accent)}@media(max-width:600px){._section-header_10ckl_1{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6)}._title-wrapper_10ckl_17{width:100%;justify-content:space-between}._title-link_10ckl_100 .section-title{font-size:1.25rem}}._nav-arrows_10ckl_141{display:flex;height:40px;gap:6px}._nav-button_10ckl_147{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--control-text);width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base)}._nav-button_10ckl_147:hover{background:var(--bg-elevated);border-color:var(--border-primary);color:var(--control-text)}._nav-button_10ckl_147:active{background:var(--bg-elevated)}._nav-button_10ckl_147:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(hover:none),(pointer:coarse){._nav-arrows_10ckl_141{height:36px}._nav-button_10ckl_147{width:36px;height:36px}}._carousel-container_10ckl_189{position:relative;width:100%}._carousel_10ckl_189{overflow:hidden}._carousel-inner_10ckl_198{display:flex;gap:20px}._carousel-card_10ckl_203{flex:0 0 calc((100% - (6 * 20px)) / 7);min-width:150px}@media(max-width:1400px){._carousel-card_10ckl_203{flex:0 0 calc((100% - (5 * 20px)) / 6)}}@media(max-width:1200px){._carousel-card_10ckl_203{flex:0 0 calc((100% - 80px)/5)}}@media(max-width:900px){._carousel-card_10ckl_203{flex:0 0 calc((100% - 60px)/4);max-width:160px}}@media(max-width:768px){._carousel-inner_10ckl_198{gap:12px}._carousel-card_10ckl_203{flex:0 0 calc((100% - (2 * 12px)) / 3);min-width:0;max-width:140px}}@media(max-width:480px){._carousel-card_10ckl_203{flex:0 0 calc((100% - (1 * 12px)) / 2.2);max-width:140px}}._wrapper_1oi9i_1{position:relative;display:inline-flex}._arrow_1oi9i_6{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);color:var(--control-text);pointer-events:none}._select_1oi9i_15{height:40px;padding:0 10px;padding-right:1.75rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--control-text);font-size:.9rem;font-weight:700;cursor:pointer;appearance:none;-webkit-appearance:none;transition:background-color var(--transition-base),border-color var(--transition-base)}._select_1oi9i_15:hover{background-color:var(--bg-elevated);border-color:var(--control-border-hover)}._select_1oi9i_15:focus-visible{outline:none;border-color:var(--accent)}._sectionWrapper_1dwd0_2{margin-bottom:2.5rem}._sectionTitleNoMargin_1dwd0_6{margin-bottom:0;white-space:nowrap}._section-header_1dwd0_11{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8);gap:var(--space-4)}._title-wrapper_1dwd0_19{display:flex;align-items:center;gap:var(--space-6);flex:1}@media(max-width:600px){._section-header_1dwd0_11{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6)}._title-wrapper_1dwd0_19{width:100%;justify-content:space-between}._header-actions_1dwd0_39{width:100%}}._nav-arrows_1dwd0_45{display:flex;height:40px;gap:6px}._nav-button_1dwd0_51{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--control-text);width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base)}._nav-button_1dwd0_51:hover{background:var(--bg-elevated);border-color:var(--border-primary);color:var(--control-text)}._nav-button_1dwd0_51:active{background:var(--bg-elevated)}._nav-button_1dwd0_51:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(hover:none),(pointer:coarse){._nav-arrows_1dwd0_45{height:36px}._nav-button_1dwd0_51{width:36px;height:36px}}._carouselContainer_1dwd0_94{position:relative;width:100%}._carousel_1dwd0_94{overflow:hidden;padding:10px 0;margin:-10px 0}._carouselInner_1dwd0_105{display:flex;gap:15px}._carouselItem_1dwd0_110{flex:0 0 calc((100% - (6 * 15px)) / 7);min-width:120px;position:relative}@media(max-width:1200px){._carouselItem_1dwd0_110{flex:0 0 calc((100% - (5 * 15px)) / 6)}}@media(max-width:1024px){._carouselItem_1dwd0_110{flex:0 0 calc((100% - 60px)/5)}}@media(max-width:768px){._carouselItem_1dwd0_110{flex:0 0 calc((100% - (2 * 15px)) / 3)}}@media(max-width:480px){._carouselItem_1dwd0_110{flex:0 0 calc((100% - (2 * 10px)) / 3);min-width:100px}._carouselInner_1dwd0_105{gap:10px;align-items:flex-start}}._rankCard_1dwd0_147{width:100%}._rankPill_1dwd0_151{text-align:center;margin-top:4px;font-size:1.6rem;font-weight:900;line-height:1;letter-spacing:-.04em;color:var(--text-tertiary);font-variant-numeric:tabular-nums}._rankPill_1dwd0_151._rankGold_1dwd0_162{color:var(--palette-gold)}._rankPill_1dwd0_151._rankSilver_1dwd0_166{color:var(--palette-silver)}._rankPill_1dwd0_151._rankBronze_1dwd0_170{color:var(--palette-bronze)}@media(max-width:768px){._rankPill_1dwd0_151{font-size:1.3rem}}._skeletonPoster_1dwd0_181,._skeletonText_1dwd0_182{position:relative;overflow:hidden;background-color:var(--bg-tertiary);border-radius:var(--radius-sm)}._skeletonPoster_1dwd0_181:after,._skeletonText_1dwd0_182:after{content:"";position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#ffffff0d 20%,#ffffff1f 60%,#fff0);animation:_skeleton-wave_1dwd0_1 1.8s infinite ease-in-out}._skeletonPoster_1dwd0_181{width:100%;aspect-ratio:3 / 4}._skeletonText_1dwd0_182{width:80%;height:12px;margin-top:var(--space-2)}._header-actions_1dwd0_39{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-shrink:0}._scheduleSection_1o82r_1{margin-bottom:2.5rem}._sectionTitleRow_1o82r_5{display:flex;align-items:center;gap:1rem}._sectionTitleNoMargin_1o82r_11{margin-bottom:0}._sectionHeader_1o82r_15{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);gap:var(--space-4);flex-wrap:wrap;row-gap:var(--space-3)}._headerActions_1o82r_25{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}._daySelectorContainer_1o82r_33{margin-bottom:var(--space-8);width:100%;position:relative}._daySelector_1o82r_33{display:flex;overflow-x:auto;padding:var(--space-2) var(--space-8);scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;scroll-behavior:smooth;overscroll-behavior-x:contain}._daySelectorInner_1o82r_50{display:flex;gap:var(--space-2);justify-content:flex-start;margin:0 auto}._daySelector_1o82r_33::-webkit-scrollbar{display:none}._dayBtn_1o82r_61{background:#ffffff08;border:1px solid var(--border-primary);color:var(--text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);min-width:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex-shrink:0}._dayBtn_1o82r_61:hover{background:var(--bg-hover);border-color:var(--border-secondary);transform:translateY(-2px)}._dayBtn_1o82r_61._active_1o82r_84{background:var(--accent);border-color:var(--accent);color:var(--accent-text);box-shadow:0 8px 20px var(--accent-glow);transform:translateY(-4px)}._dayMonth_1o82r_92{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.8}._dayNum_1o82r_100{font-size:1.25rem;font-weight:800;line-height:1}._dayName_1o82r_106{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}._dayBtn_1o82r_61._active_1o82r_84 ._dayMonth_1o82r_92,._dayBtn_1o82r_61._active_1o82r_84 ._dayName_1o82r_106{opacity:1}._navArrows_1o82r_119{display:flex;height:40px;gap:6px}._navButton_1o82r_125{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--control-text);width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base)}._navButton_1o82r_125:hover{background:var(--bg-elevated);border-color:var(--border-primary);color:var(--control-text)}._navButton_1o82r_125:active{background:var(--bg-elevated)}._navButton_1o82r_125:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(hover:none),(pointer:coarse){._navArrows_1o82r_119{height:36px}._navButton_1o82r_125{width:36px;height:36px}}._carouselContainer_1o82r_168{position:relative;width:100%;min-height:280px}._carousel_1o82r_168{overflow:hidden;padding-bottom:10px;min-height:260px}._carouselInner_1o82r_180{display:flex;gap:15px}._carouselCard_1o82r_185{flex:0 0 calc((100% - (6 * 15px)) / 7);min-width:150px}@media(max-width:1200px){._carouselCard_1o82r_185{flex:0 0 calc((100% - (5 * 15px)) / 6)}}@media(max-width:1024px){._carouselCard_1o82r_185{flex:0 0 calc((100% - 60px)/5)}}@media(max-width:768px){._carouselCard_1o82r_185{flex:0 0 calc((100% - (2 * 15px)) / 3);min-width:0}._daySelector_1o82r_33{justify-content:flex-start;padding-left:var(--space-4);padding-right:var(--space-4)}._dayBtn_1o82r_61{min-width:60px;padding:var(--space-2) var(--space-3)}}@media(max-width:480px){._carouselCard_1o82r_185{flex:0 0 calc((100% - (2 * 10px)) / 3);min-width:0}._carouselInner_1o82r_180{gap:10px;align-items:flex-start}}@media(max-width:600px){._daySelector_1o82r_33{display:flex;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:0;padding:var(--space-1) var(--space-4);scroll-behavior:smooth;overscroll-behavior-x:contain}._daySelectorInner_1o82r_50{gap:0;margin:0;justify-content:flex-start}._dayBtn_1o82r_61{flex:0 0 14.2857%;min-width:0!important;padding:var(--space-1) 0!important;border-radius:var(--radius-md)!important}._dayMonth_1o82r_92{font-size:10px!important}._dayNum_1o82r_100{font-size:1rem!important}._dayName_1o82r_106{font-size:10px!important}._dayBtn_1o82r_61._active_1o82r_84{transform:translateY(-2px)!important}}._bannerContainer_1l49p_1{width:100vw;max-width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;margin-top:calc(-1 * var(--header-height));margin-bottom:2.5rem;overflow:hidden;background-color:var(--bg-main);z-index:2}@media(max-width:1024px){._bannerContainer_1l49p_1{margin-top:calc(-1 * (var(--header-height) + 52px))}}@media(max-width:848px){._bannerContainer_1l49p_1{margin-top:-116px}}._hero_1l49p_28{position:relative;width:100%;height:clamp(480px,72svh,660px);overflow:hidden;background-color:var(--bg-main)}._ambient_1l49p_37{position:absolute;inset:-60px;width:calc(100% + 120px);height:calc(100% + 120px);object-fit:cover;object-position:center 22%;filter:blur(55px) brightness(.3) saturate(1.15);opacity:0;transition:opacity .6s ease}._ambientShow_1l49p_49{opacity:1}._scrim_1l49p_53{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#050508c7,#0505086b 42%,#0505080f 70%),linear-gradient(0deg,var(--bg-main) 0%,rgba(12,13,18,.82) 16%,transparent 46%),linear-gradient(180deg,transparent 0%,transparent 72px,rgba(5,5,8,.22) 100%)}._progressLine_1l49p_69{position:absolute;left:0;right:0;bottom:0;height:2px;z-index:6;background:#ffffff1a;overflow:hidden}._progressLine_1l49p_69:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),var(--accent-light));transform-origin:left;animation:_progressFill_1l49p_1 8s linear forwards}._paused_1l49p_89 ._progressLine_1l49p_69:after{animation-play-state:paused}@keyframes _progressFill_1l49p_1{0%{transform:scaleX(0)}to{transform:scaleX(1)}}._dots_1l49p_103{position:absolute;left:50%;transform:translate(-50%);bottom:.6rem;z-index:5;display:flex;align-items:center;gap:.5rem;padding:10px 16px}._dot_1l49p_103{width:10px;height:10px;padding:0;border-radius:var(--radius-full);border:none;background:#ffffff4d;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}._dot_1l49p_103:not(._dotActive_1l49p_126):hover{background:#ffffffa6}._dotActive_1l49p_126{width:32px;background:var(--accent);box-shadow:0 0 10px var(--accent-glow)}._viewport_1l49p_137{position:absolute;inset:0;z-index:2;overflow:hidden}._track_1l49p_144{display:flex;height:100%;transition:transform .45s cubic-bezier(.22,1,.36,1)}._slide_1l49p_150{flex:0 0 100%;height:100%;display:flex;align-items:center;justify-content:center}._slideInner_1l49p_158{width:100%;max-width:var(--max-width);margin:0 auto;padding:4rem var(--space-8) 3.5rem;display:flex;align-items:center;gap:3rem}._poster_1l49p_168{width:clamp(110px,18vw,230px);height:auto;aspect-ratio:2 / 3;object-fit:cover;border-radius:var(--radius-lg);flex-shrink:0;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px #0009}._posterLandscape_1l49p_179{width:min(400px,38vw);aspect-ratio:16 / 9;height:auto;object-fit:cover;border-radius:var(--radius-lg);flex-shrink:0;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px #0009}@media(max-width:1024px){._posterLandscape_1l49p_179{width:min(320px,36vw)}}@media(max-width:768px)and (pointer:coarse){._posterLandscape_1l49p_179{width:100%;max-width:420px}}._info_1l49p_203{min-width:0;max-width:620px}._kicker_1l49p_208{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}._featureLabel_1l49p_215{padding:.3rem .75rem;background:var(--accent-subtle);border:1px solid var(--border-accent);color:var(--accent-light);font-size:.75rem;font-weight:700;text-transform:uppercase;border-radius:var(--radius-full);letter-spacing:.08em}._scoreChip_1l49p_227{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;background:#00000073;border:1px solid var(--border-strong);border-radius:var(--radius-full);color:var(--accent-lighter);font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}._slide_1l49p_150 ._rise_1l49p_245{opacity:1}._slide_1l49p_150._active_1l49p_249 ._rise_1l49p_245{animation:_riseIn_1l49p_1 .45s cubic-bezier(.22,1,.36,1) both}._slide_1l49p_150._active_1l49p_249 ._rise_1l49p_245:nth-child(1){animation-delay:.03s}._slide_1l49p_150._active_1l49p_249 ._rise_1l49p_245:nth-child(2){animation-delay:.07s}._slide_1l49p_150._active_1l49p_249 ._rise_1l49p_245:nth-child(3){animation-delay:.11s}._slide_1l49p_150._active_1l49p_249 ._rise_1l49p_245:nth-child(4){animation-delay:.15s}._slide_1l49p_150._active_1l49p_249 ._rise_1l49p_245:nth-child(5){animation-delay:.19s}._slide_1l49p_150._active_1l49p_249 ._rise_1l49p_245:nth-child(6){animation-delay:.23s}@keyframes _riseIn_1l49p_1{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}._slide_1l49p_150._active_1l49p_249 ._poster_1l49p_168{animation:_posterIn_1l49p_1 .5s cubic-bezier(.22,1,.36,1)}@keyframes _posterIn_1l49p_1{0%{opacity:0;transform:translate(-30px) scale(.97)}to{opacity:1;transform:none}}._metaRow_1l49p_305{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;color:#ffffffb3;font-size:.9rem;font-weight:600;margin-bottom:.8rem}._metaItem_1l49p_316{display:flex;align-items:center;gap:4px}._metaDivider_1l49p_322{width:4px;height:4px;background:#ffffff4d;border-radius:50%}._title_1l49p_329{display:block;font-size:clamp(1.6rem,4.6vw,3rem);line-height:1.04;cursor:pointer;max-width:800px;margin-bottom:.9rem;text-shadow:0 2px 26px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.9)}._title_1l49p_329:hover{color:var(--accent-light)}._genres_1l49p_345{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.9rem}._genreTag_1l49p_353{color:#fffc;border:1px solid rgba(255,255,255,.28);padding:.32rem .75rem;border-radius:var(--radius-full);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}._summary_1l49p_364{font-size:.96rem;line-height:1.65;margin:0 0 1.6rem;color:#fffc;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:750px}._actions_1l49p_376{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}._watchBtn_1l49p_383{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 2.1rem;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:var(--accent-text);font-size:.94rem;font-weight:700;border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 6px 24px var(--accent-glow);transition:transform .2s cubic-bezier(.22,1,.36,1);letter-spacing:.02em}._watchBtn_1l49p_383:hover{transform:translateY(-2px)}._detailsBtn_1l49p_405{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1.8rem;background:#ffffff14;color:var(--text-primary);font-size:.94rem;font-weight:600;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease}._detailsBtn_1l49p_405:hover{background:#ffffff29;color:#fff}._navArrow_1l49p_426{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:46px;height:46px;border-radius:50%;background:#0006;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .3s ease,border-color .2s ease,color .2s ease}._hero_1l49p_28:hover ._navArrow_1l49p_426{opacity:.9}._navArrow_1l49p_426:hover{border-color:var(--accent);color:var(--accent-light)}._prevArrow_1l49p_459{left:1.2rem}._nextArrow_1l49p_463{right:1.2rem}@media(max-width:768px)and (pointer:coarse){._hero_1l49p_28{min-height:92svh}._scrim_1l49p_53{background:linear-gradient(0deg,#050508e6,#05050859 55%,#05050873)}._slideInner_1l49p_158{flex-direction:column;justify-content:center;text-align:center;gap:1.3rem;padding:4.2rem var(--space-4) 2.4rem}._poster_1l49p_168{width:min(46vw,172px)}._slide_1l49p_150._active_1l49p_249 ._poster_1l49p_168{animation-name:_posterUp_1l49p_1}@keyframes _posterUp_1l49p_1{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}._kicker_1l49p_208{justify-content:center}._title_1l49p_329{font-size:1.6rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}._metaRow_1l49p_305{justify-content:center;font-size:.8rem}._genres_1l49p_345{justify-content:center}._genreTag_1l49p_353{font-size:.66rem}._summary_1l49p_364{display:none}._actions_1l49p_376{width:100%}._watchBtn_1l49p_383,._detailsBtn_1l49p_405{flex:1;justify-content:center;padding:.85rem .5rem;font-size:.87rem}._navArrow_1l49p_426{display:none}}@media(max-width:1024px){._slideInner_1l49p_158{gap:2rem}}@media(max-height:500px)and (orientation:landscape){._hero_1l49p_28{min-height:360px}._slideInner_1l49p_158{gap:1.5rem;padding:3.5rem var(--space-8) 3rem}._poster_1l49p_168{width:140px}._title_1l49p_329{font-size:1.5rem}._summary_1l49p_364{display:none}}._emptyState_19tmt_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);background:linear-gradient(to bottom,var(--bg-tertiary),var(--bg-main));border-radius:var(--radius-lg);border:1px solid var(--border-primary);text-align:center;gap:var(--space-4);width:100%;min-height:320px}._emptyStateIcon_19tmt_16{color:var(--accent);opacity:.4;margin-bottom:var(--space-2);filter:drop-shadow(0 0 20px var(--accent-glow))}._emptyStateTitle_19tmt_23{font-size:1.5rem;font-weight:800;margin:0;color:var(--text-primary)}._emptyStateText_19tmt_30{font-size:1rem;color:var(--text-secondary);max-width:340px;line-height:1.6}._tabBar_irwbm_1{display:flex;align-items:center;gap:6px;margin-bottom:2.5rem;padding:6px;background:#ffffff0a;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-primary);border-radius:var(--radius-full);width:fit-content;max-width:100%;overflow-x:auto;scrollbar-width:none;box-shadow:0 4px 20px #0003;position:relative}._tabBar_irwbm_1::-webkit-scrollbar{display:none}._tabIndicator_irwbm_24{position:absolute;top:6px;bottom:6px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);box-shadow:0 4px 15px var(--accent-glow);transition:left .22s cubic-bezier(.2,1.2,.3,1),width .22s cubic-bezier(.2,1.2,.3,1);z-index:0;pointer-events:none}._tabButton_irwbm_38{border-radius:var(--radius-full)!important;font-weight:700!important;font-size:.85rem!important;padding:.65rem 1.4rem!important;letter-spacing:.02em;transition:color .25s ease!important;border:none!important;background:transparent!important;color:var(--text-muted)!important;position:relative;z-index:1;flex-shrink:0}._tabButton_irwbm_38:hover:not(:disabled){background:transparent!important;color:var(--text-muted)!important;box-shadow:none!important;transform:none!important}._tabButton_irwbm_38:active{transform:scale(.96)}._tabActive_irwbm_64{color:var(--accent-text)!important}._tabActive_irwbm_64:hover:not(:disabled){color:var(--accent-text)!important;transform:none!important}@media(max-width:600px){._tabBar_irwbm_1{width:100%;justify-content:flex-start}._tabButton_irwbm_38{flex:1;justify-content:center!important;padding:.65rem .5rem!important;text-align:center;font-size:.78rem!important}}._emptyState_bpz5x_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);background:linear-gradient(to bottom,var(--bg-tertiary),var(--bg-main));border-radius:var(--radius-lg);border:1px solid var(--border-primary);text-align:center;gap:var(--space-4);width:100%;min-height:320px}._section-header_168jc_1{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}._content-type-nav_168jc_8{display:flex;justify-content:center;margin-bottom:2.5rem}._content-type-nav_168jc_8 .tabBar{margin-bottom:0}._title-wrapper_168jc_18{display:flex;align-items:center;gap:var(--space-6)}._pagination-controls_168jc_24{display:flex;gap:8px;align-items:center;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._seasonGrid_168jc_34{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-4)}@media(max-width:1200px){._seasonGrid_168jc_34{grid-template-columns:repeat(6,1fr)}}@media(max-width:1024px){._seasonGrid_168jc_34{grid-template-columns:repeat(5,1fr)}}@media(max-width:768px){._seasonGrid_168jc_34{grid-template-columns:repeat(3,1fr);gap:var(--space-2)}}@media(max-width:480px){._seasonGrid_168jc_34{grid-template-columns:repeat(3,1fr);gap:8px}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as P,T as c,d as O,u as e,L as F}from"./vendor-core-DfaOB3Rn.js";import{b as S,u as A,a as q}from"./vendor-query-BBT5_sHx.js";import{q as _,t as g,ae as V,d as Y,F as L,f as B}from"./index-hnIW0p5l.js";import{I as l}from"./vendor-icons-DrybRNxP.js";const H="_header_1geik_1",E="_fadeIn_1geik_1",U="_personaBadge_1geik_9",z="_personaInfo_1geik_37",K="_personaLabel_1geik_42",Q="_personaValue_1geik_51",j="_statsGrid_1geik_57",J="_slideUpIn_1geik_1",X="_statCard_1geik_65",Z="_statIcon_1geik_82",ee="_statInfo_1geik_98",ae="_statValue_1geik_103",te="_statLabel_1geik_112",se="_wideSection_1geik_120",ne="_sectionHeader_1geik_132",re="_yearSelect_1geik_147",ie="_heatmapLayout_1geik_176",le="_dayLabels_1geik_183",oe="_heatmapWrapper_1geik_195",ce="_heatmapMonthLabels_1geik_201",de="_heatmapGrid_1geik_212",he="_heatBox_1geik_220",me="_hiddenBox_1geik_229",_e="_level0_1geik_240",ge="_level1_1geik_243",pe="_level2_1geik_247",ue="_level3_1geik_251",ke="_level4_1geik_255",Ne="_heatmapFooter_1geik_260",ve="_heatLegend_1geik_267",ye="_chartsContainer_1geik_277",be="_chartWrapper_1geik_285",fe="_hourlyChart_1geik_312",Ce="_hourlyBarContainer_1geik_320",Se="_hourlyBar_1geik_320",Le="_hourlyLabel_1geik_346",Be="_chartSubtext_1geik_353",we="_popScale_1geik_365",Ie="_popTrack_1geik_369",De="_popThumb_1geik_377",xe="_popLabels_1geik_389",Te="_popDescription_1geik_399",Me="_seasonalChart_1geik_414",$e="_seasonalBarContainer_1geik_422",Re="_seasonalBar_1geik_422",Ge="_seasonalLabel_1geik_444",We="_genreList_1geik_452",Pe="_genreRow_1geik_459",Oe="_genreInfo_1geik_465",Fe="_genreName_1geik_472",Ae="_genreCount_1geik_479",qe="_genreBarBg_1geik_486",Ve="_genreBar_1geik_486",Ye="_warningSection_1geik_499",He="_warningHeader_1geik_510",Ee="_droppedGrid_1geik_526",Ue="_droppedCard_1geik_532",ze="_droppedName_1geik_549",Ke="_droppedDate_1geik_556",Qe="_genreGrid_1geik_597",je="_genreCard_1geik_609",Je="_rankBadge_1geik_618",Xe="_rankNumber_1geik_631",Ze="_genreTitle_1geik_637",ea="_genreStats_1geik_645",aa="_posterRow_1geik_653",ta="_miniPoster_1geik_660",sa="_genreCardSkeleton_1geik_674",na="_pulse_1geik_1",ra="_skeletonRank_1geik_682",ia="_skeletonTitle_1geik_696",la="_skeletonStats_1geik_709",oa="_skeletonPosters_1geik_721",ca="_recSection_1geik_752",da="_recSubtext_1geik_763",ha="_recGrid_1geik_769",ma="_recCard_1geik_775",_a="_recCover_1geik_790",ga="_recInfo_1geik_798",pa="_recTitle_1geik_805",ua="_recMatch_1geik_816",ka="_recMeta_1geik_822",Na="_recWhy_1geik_827",va="_recNote_1geik_832",ya="_recAddBtn_1geik_838",ba="_loading_1geik_860",fa="_error_1geik_866",a={header:H,fadeIn:E,personaBadge:U,personaInfo:z,personaLabel:K,personaValue:Q,statsGrid:j,slideUpIn:J,statCard:X,statIcon:Z,statInfo:ee,statValue:ae,statLabel:te,wideSection:se,sectionHeader:ne,yearSelect:re,heatmapLayout:ie,dayLabels:le,heatmapWrapper:oe,heatmapMonthLabels:ce,heatmapGrid:de,heatBox:he,hiddenBox:me,level0:_e,level1:ge,level2:pe,level3:ue,level4:ke,heatmapFooter:Ne,heatLegend:ve,chartsContainer:ye,chartWrapper:be,hourlyChart:fe,hourlyBarContainer:Ce,hourlyBar:Se,hourlyLabel:Le,chartSubtext:Be,popScale:we,popTrack:Ie,popThumb:De,popLabels:xe,popDescription:Te,seasonalChart:Me,seasonalBarContainer:$e,seasonalBar:Re,seasonalLabel:Ge,genreList:We,genreRow:Pe,genreInfo:Oe,genreName:Fe,genreCount:Ae,genreBarBg:qe,genreBar:Ve,warningSection:Ye,warningHeader:He,droppedGrid:Ee,droppedCard:Ue,droppedName:ze,droppedDate:Ke,genreGrid:Qe,genreCard:je,rankBadge:Je,rankNumber:Xe,genreTitle:Ze,genreStats:ea,posterRow:aa,miniPoster:ta,genreCardSkeleton:sa,pulse:na,skeletonRank:ra,skeletonTitle:ia,skeletonStats:la,skeletonPosters:oa,recSection:ca,recSubtext:da,recGrid:ha,recCard:ma,recCover:_a,recInfo:ga,recTitle:pa,recMatch:ua,recMeta:ka,recWhy:Na,recNote:va,recAddBtn:ya,loading:ba,error:fa},wa=()=>{P(()=>{document.title="Insights - dango"},[]);const{data:n,isLoading:w,isError:I}=S({queryKey:[_.insights],queryFn:async()=>await g.insights.summary.query()}),{data:D,isLoading:p}=V(),{titlePreference:x}=Y(),u=A(),{data:k}=S({queryKey:[_.insightsRecommendations],queryFn:async()=>await g.insights.recommendations.query(),staleTime:300*1e3,retry:1}),N=q({mutationFn:async t=>{await g.watchlist.add.mutate({id:String(t.id),name:t.title,thumbnail:t.cover||"",status:"Plan to Watch",type:t.format})},onSuccess:()=>{u.invalidateQueries({queryKey:[_.watchlist]}),u.invalidateQueries({queryKey:[_.insightsRecommendations]}),L.success("Added to Plan to Watch")},onError:()=>L.error("Could not add to watchlist")}),v=c(()=>[...k?.candidates||[]].sort((t,s)=>s.matchPct-t.matchPct).slice(0,6),[k]),y=t=>{const s=t.name||t.englishName||t.nativeName||"";switch(x){case"nativeName":return t.nativeName||s;case"englishName":return t.englishName||s;default:return s}},[d,T]=O(new Date().getFullYear()),M=c(()=>{if(!n?.activityGrid)return[new Date().getFullYear()];const t=new Set(n.activityGrid.map(s=>parseInt(s.day.split("-")[0])));return t.add(new Date().getFullYear()),Array.from(t).sort((s,r)=>r-s)},[n]),b=c(()=>{if(!n?.activityGrid)return[];const t=new Map(n.activityGrid.map(m=>[m.day,m.count])),s=[],r=new Date(d,0,1),o=new Date(d,11,31),h=r.getDay(),i=new Date(r);for(i.setDate(i.getDate()-h);(i<=o||i.getDay()!==0)&&!(i>o&&i.getDay()===0);){const m=i.getFullYear(),G=String(i.getMonth()+1).padStart(2,"0"),W=String(i.getDate()).padStart(2,"0"),f=`${m}-${G}-${W}`,C=i<r||i>o;s.push({date:f,count:C?0:t.get(f)||0,month:i.getMonth(),isOutOfRange:C}),i.setDate(i.getDate()+1)}return s},[n,d]),$=c(()=>n?.seasonality?.length?Math.max(...n.seasonality.map(t=>t.seconds),1):0,[n]),R=c(()=>n?.hourlyDist?.length?Math.max(...n.hourlyDist.map(t=>t.count),1):0,[n]);return w||p?e("div",{className:a.loading,children:"Analyzing your anime lifestyle..."}):I?e("div",{className:a.error,children:"Could not load insights. Data might be syncing."}):n?e("div",{className:"page-container",children:[e("div",{className:a.header,children:[e("h2",{className:"section-title",children:"Watch Insights"}),e("div",{className:a.personaBadge,children:[e(l,{name:"user-astronaut"}),e("div",{className:a.personaInfo,children:[e("span",{className:a.personaLabel,children:"Your Persona"}),e("span",{className:a.personaValue,children:n.persona})]})]})]}),e("div",{className:a.statsGrid,children:[e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(138, 79, 255, 0.2)",color:"var(--accent)"},children:e(l,{name:"clock"})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:[n.totalHours,"h"]}),e("span",{className:a.statLabel,children:"Watch Time"})]})]}),e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(167, 139, 250, 0.2)",color:"#a78bfa"},children:e(l,{name:"bookmark"})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:n.totalAnime}),e("span",{className:a.statLabel,children:"Total Anime"})]})]}),e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(34, 197, 94, 0.2)",color:"#22c55e"},children:e(l,{name:"check-circle"})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:n.totalEpisodes}),e("span",{className:a.statLabel,children:"Episodes Watched"})]})]}),e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(34, 197, 94, 0.2)",color:"#22c55e"},children:e(l,{name:"check-circle"})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:[n.completionRate,"%"]}),e("span",{className:a.statLabel,children:"Completion Rate"})]})]}),e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(45, 212, 191, 0.2)",color:"#2dd4bf"},children:e(l,{name:"tv"})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:n.completedAnime}),e("span",{className:a.statLabel,children:"Completed Shows"})]})]}),e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(239, 68, 68, 0.2)",color:"#ef4444"},children:e(l,{name:"fire"})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:n.bingeFactor}),e("span",{className:a.statLabel,children:"Max Daily Binge"})]})]}),e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(59, 130, 246, 0.2)",color:"#3b82f6"},children:e(l,{name:"history"})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:[n.avgSessionMinutes,"m"]}),e("span",{className:a.statLabel,children:"Avg. Session"})]})]}),e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(251, 191, 36, 0.2)",color:"#fbbf24"},children:e(l,{name:"layer-group"})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:[n.avgCompletionDays,"d"]}),e("span",{className:a.statLabel,children:"Avg. Speed"})]})]})]}),e("div",{className:a.wideSection,children:[e("div",{className:a.sectionHeader,children:[e("h3",{children:"Activity"}),e("select",{className:a.yearSelect,value:d,onChange:t=>T(Number(t.currentTarget.value)),children:M.map(t=>e("option",{value:t,children:t},t))})]}),e("div",{className:a.heatmapLayout,children:[e("div",{className:a.dayLabels,children:[e("span",{style:{gridRow:2},children:"Mon"}),e("span",{style:{gridRow:4},children:"Wed"}),e("span",{style:{gridRow:6},children:"Fri"})]}),e("div",{className:a.heatmapWrapper,children:[e("div",{className:a.heatmapMonthLabels,children:(()=>{const t=[];let s=-1;return b.forEach((r,o)=>{if(r.month!==s&&!r.isOutOfRange){const h=Math.floor(o/7)+1;h>(t.length>0?t[t.length-1].props.style?.gridColumn+2:-1)&&(t.push(e("span",{style:{gridColumn:h,whiteSpace:"nowrap"},children:new Date(0,r.month).toLocaleString("default",{month:"short"})},o)),s=r.month)}}),t})()}),e("div",{className:a.heatmapGrid,children:b.map((t,s)=>{let r=0;return t.count>0&&!t.isOutOfRange&&(r=1),t.count>2&&!t.isOutOfRange&&(r=2),t.count>5&&!t.isOutOfRange&&(r=3),t.count>10&&!t.isOutOfRange&&(r=4),e("div",{className:`${a.heatBox} ${a[`level${r}`]} ${t.isOutOfRange?a.hiddenBox:""}`,title:t.isOutOfRange?"":`${t.count} episodes on ${t.date}`},s)})}),e("div",{className:a.heatmapFooter,children:e("div",{className:a.heatLegend,children:[e("span",{children:"Less"}),e("div",{className:`${a.heatBox} ${a.level0}`}),e("div",{className:`${a.heatBox} ${a.level1}`}),e("div",{className:`${a.heatBox} ${a.level2}`}),e("div",{className:`${a.heatBox} ${a.level3}`}),e("div",{className:`${a.heatBox} ${a.level4}`}),e("span",{children:"More"})]})})]})]})]}),e("div",{className:a.chartsContainer,children:[e("div",{className:a.chartWrapper,children:[e("h3",{children:"Time Distribution (24h)"}),e("div",{className:a.hourlyChart,children:n.hourlyDist?.map((t,s)=>e("div",{className:a.hourlyBarContainer,children:[e("div",{className:a.hourlyBar,style:{height:`${t.count/R*100||2}%`,width:"100%",maxWidth:"12px"},title:`${t.count} watches at ${t.hour}:00`}),e("span",{className:a.hourlyLabel,style:{visibility:s%4===0?"visible":"hidden"},children:t.hour})]},s))}),e("div",{className:a.chartSubtext,children:(()=>{if(!n.hourlyDist?.length)return"Watch more to see your peak hours!";const t=parseInt([...n.hourlyDist].sort((s,r)=>r.count-s.count)[0].hour);return t>=6&&t<19?"You prefer daytime watching ☀️":"You're a confirmed Night Owl 🦉"})()})]}),e("div",{className:a.chartWrapper,children:[e("h3",{children:"Popularity Bias"}),e("div",{className:a.popScale,children:[e("div",{className:a.popTrack,children:e("div",{className:a.popThumb,style:{left:`${Math.max(0,Math.min(100,100-n.popularityScore*10))}%`}})}),e("div",{className:a.popLabels,children:[e("span",{children:"Mainstream"}),e("span",{children:"Underground"})]})]}),e("p",{className:a.popDescription,children:["Your taste score is ",e("strong",{children:[n.popularityScore,"/10"]}),".",n.popularityScore>=5?" You follow the big hits!":" You're a connoisseur of the obscure!"]})]}),e("div",{className:a.chartWrapper,children:[e("h3",{children:"Monthly Activity"}),e("div",{className:a.seasonalChart,children:n.seasonality?.map((t,s)=>e("div",{className:a.seasonalBarContainer,children:[e("div",{className:a.seasonalBar,style:{height:`${t.seconds/$*100||5}%`,width:"100%",maxWidth:"24px"},title:`${Math.round(t.seconds/3600)}h in ${new Date(0,s).toLocaleString("default",{month:"long"})}`}),e("span",{className:a.seasonalLabel,children:new Date(0,s).toLocaleString("default",{month:"short"})})]},s))})]})]}),e("div",{className:a.genreGrid,children:p?Array.from({length:4}).map((t,s)=>e("div",{className:a.genreCardSkeleton,children:[e("div",{className:a.skeletonRank}),e("div",{className:a.skeletonTitle}),e("div",{className:a.skeletonStats}),e("div",{className:a.skeletonPosters})]},s)):D?.map(t=>e("div",{className:a.genreCard,children:[e("div",{className:a.rankBadge,children:e("span",{className:a.rankNumber,children:t.rank})}),e("h3",{className:a.genreTitle,children:t.name}),e("div",{className:a.genreStats,children:[e("span",{children:[t.count," episodes"]}),e("span",{children:t.meanScore>0?`${t.meanScore.toFixed(1)} avg score`:"-"}),e("span",{children:t.timeWatched})]}),e("div",{className:a.posterRow,children:t.topShows.map(s=>e("img",{src:B(s.thumbnail),alt:y(s),className:a.miniPoster,title:y(s),loading:"lazy",decoding:"async"},s.id))})]},t.name))}),v.length>0&&e("div",{className:a.recSection,children:[e("h3",{children:"Recommended For You"}),e("p",{className:a.recSubtext,children:"From your library taste - updates automatically as you watch"}),e("div",{className:a.recGrid,children:v.map(t=>e("div",{className:a.recCard,children:[t.cover&&e("img",{src:B(t.cover),alt:t.title,className:a.recCover,loading:"lazy",decoding:"async"}),e("div",{className:a.recInfo,children:[e(F,{to:`/anime/${t.id}`,className:a.recTitle,children:t.title}),e("span",{className:a.recMatch,children:[t.matchPct,"% match"]}),e("span",{className:a.recMeta,children:[t.year,t.format,t.episodes?`${t.episodes}ep`:null].filter(Boolean).join(" · ")}),e("span",{className:a.recWhy,children:["Shares ",t.sharedGenres.join(", "),t.exemplars.length>0&&` - like ${t.exemplars.join(", ")}`]}),t.kind==="continue"&&e("span",{className:a.recNote,children:"Continue - you watched the earlier part."}),t.kind==="sequel"&&t.prequelTitle&&e("span",{className:a.recNote,children:['Sequel - start with "',t.prequelTitle,'" first.']}),e("button",{className:a.recAddBtn,onClick:()=>N.mutate(t),disabled:N.isPending,children:"+ Plan to Watch"})]})]},t.id))})]}),n.droppedShows?.length>0&&e("div",{className:a.warningSection,children:[e("div",{className:a.warningHeader,children:[e(l,{name:"exclamation-triangle"}),e("h3",{children:"Dusty Watchlist (Inactive 90+ days)"})]}),e("div",{className:a.droppedGrid,children:n.droppedShows.map(t=>e("div",{className:a.droppedCard,children:[e("span",{className:a.droppedName,children:t.name}),e("span",{className:a.droppedDate,children:["Last watched: ",new Date(t.lastActivity).toLocaleDateString()]})]},t.id))})]})]}):null};export{wa as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._header_1geik_1{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);animation:_fadeIn_1geik_1 .8s var(--ease-smooth)}._personaBadge_1geik_9{display:flex;align-items:center;gap:var(--space-4);background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--accent-light);padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);font-weight:700;border:1px solid var(--border-accent);box-shadow:var(--glass-shadow);cursor:default;transition:all var(--transition-base)}._personaBadge_1geik_9:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}._personaBadge_1geik_9 svg{font-size:1.5rem;color:var(--accent)}._personaInfo_1geik_37{display:flex;flex-direction:column}._personaLabel_1geik_42{font-size:.72rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-tertiary);margin-bottom:2px;font-weight:800}._personaValue_1geik_51{font-size:1.1rem;color:var(--text-primary);letter-spacing:-.01em}._statsGrid_1geik_57{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-6);margin-bottom:var(--space-10);animation:_slideUpIn_1geik_1 .8s var(--ease-smooth)}._statCard_1geik_65{background:var(--glass-bg);border:1px solid var(--border-primary);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;align-items:center;gap:var(--space-5);transition:all var(--transition-base)}._statCard_1geik_65:hover{transform:translateY(-5px);border-color:var(--border-accent);background:var(--bg-tertiary)}._statIcon_1geik_82{width:54px;height:54px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;transition:transform var(--transition-base)}._statCard_1geik_65:hover ._statIcon_1geik_82{transform:scale(1.1) rotate(-5deg)}._statInfo_1geik_98{display:flex;flex-direction:column}._statValue_1geik_103{font-size:1.75rem;font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:4px;letter-spacing:-.02em}._statLabel_1geik_112{color:var(--text-tertiary);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px}._wideSection_1geik_120{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);margin-bottom:var(--space-10);box-shadow:var(--glass-shadow);animation:_slideUpIn_1geik_1 .8s var(--ease-smooth) .1s both}._sectionHeader_1geik_132{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);gap:var(--space-4)}._sectionHeader_1geik_132 h3{font-size:1.5rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}._yearSelect_1geik_147{width:130px;height:44px;padding:0 var(--space-4);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2371717a' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;transition:all var(--transition-fast)}._yearSelect_1geik_147:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._yearSelect_1geik_147:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}._heatmapLayout_1geik_176{display:flex;gap:var(--space-8);align-items:flex-start;justify-content:center}._dayLabels_1geik_183{display:grid;grid-template-rows:repeat(7,14px);gap:4px;font-size:.75rem;color:var(--text-tertiary);align-items:center;padding-right:6px;margin-top:24px;font-weight:700}._heatmapWrapper_1geik_195{overflow-x:auto;padding:var(--space-2) var(--space-3);max-width:100%}._heatmapMonthLabels_1geik_201{display:grid;grid-auto-flow:column;grid-auto-columns:18px;margin-bottom:8px;font-size:.7rem;color:var(--text-tertiary);font-weight:700;text-transform:uppercase}._heatmapGrid_1geik_212{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,14px);gap:4px;width:fit-content}._heatBox_1geik_220{width:14px;height:14px;border-radius:3px;background:var(--bg-tertiary);border:1px solid var(--border-primary);transition:all .15s ease}._heatBox_1geik_220._hiddenBox_1geik_229{opacity:0;pointer-events:none}._heatBox_1geik_220:hover{transform:scale(1.6);z-index:10;border-color:var(--accent)}._level0_1geik_240{background:var(--bg-tertiary)}._level1_1geik_243{background:color-mix(in srgb,var(--accent) 25%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}._level2_1geik_247{background:color-mix(in srgb,var(--accent) 50%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}._level3_1geik_251{background:color-mix(in srgb,var(--accent) 75%,transparent);border-color:color-mix(in srgb,var(--accent) 80%,transparent)}._level4_1geik_255{background:var(--accent);border-color:var(--accent-light)}._heatmapFooter_1geik_260{display:flex;justify-content:flex-end;margin-top:var(--space-6);padding-right:var(--space-2)}._heatLegend_1geik_267{display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--text-tertiary);font-weight:700;text-transform:uppercase}._chartsContainer_1geik_277{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--space-8);margin-bottom:var(--space-10);animation:_slideUpIn_1geik_1 .8s var(--ease-smooth) .2s both}._chartWrapper_1geik_285{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);display:flex;flex-direction:column;box-shadow:var(--glass-shadow);transition:transform var(--transition-base)}._chartWrapper_1geik_285:hover{transform:translateY(-4px)}._chartWrapper_1geik_285 h3{margin-bottom:var(--space-8);font-size:1.25rem;font-weight:800;color:var(--text-primary);border-left:4px solid var(--accent);padding-left:var(--space-4);letter-spacing:-.01em}._hourlyChart_1geik_312{display:flex;align-items:flex-end;height:160px;gap:2px;padding-top:var(--space-4)}._hourlyBarContainer_1geik_320{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}._hourlyBar_1geik_320{width:100%;max-width:12px;background:linear-gradient(to top,var(--accent),var(--accent-light));border-radius:4px 4px 2px 2px;opacity:.7;transition:all var(--transition-fast);min-height:4px}._hourlyBar_1geik_320:hover{opacity:1;transform:scaleY(1.05);filter:brightness(1.2);box-shadow:0 0 10px var(--accent-glow)}._hourlyLabel_1geik_346{font-size:.75rem;color:var(--text-tertiary);margin-top:8px;font-weight:700}._chartSubtext_1geik_353{margin-top:var(--space-8);padding:var(--space-4);background:var(--accent-subtle);border:1px solid var(--border-accent);border-radius:var(--radius-lg);font-size:.9rem;color:var(--accent-light);font-weight:600;text-align:center}._popScale_1geik_365{padding:var(--space-8) 0}._popTrack_1geik_369{height:14px;background:linear-gradient(to right,var(--accent-dark),var(--accent),var(--accent-light));border-radius:var(--radius-full);position:relative;margin-bottom:var(--space-6)}._popThumb_1geik_377{width:26px;height:26px;background:#fff;border:4px solid var(--bg-secondary);border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:left 1s var(--ease-spring)}._popLabels_1geik_389{display:flex;justify-content:space-between;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}._popDescription_1geik_399{font-size:.95rem;color:var(--text-secondary);line-height:1.6;background:var(--bg-secondary);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border-primary)}._popDescription_1geik_399 strong{color:var(--text-primary);font-weight:800}._seasonalChart_1geik_414{display:flex;align-items:flex-end;height:160px;gap:8px;padding-top:var(--space-4)}._seasonalBarContainer_1geik_422{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}._seasonalBar_1geik_422{width:100%;background:var(--accent);border-radius:6px 6px 2px 2px;opacity:.8;transition:all var(--transition-fast)}._seasonalBar_1geik_422:hover{opacity:1;transform:scaleY(1.03)}._seasonalLabel_1geik_444{font-size:.75rem;color:var(--text-tertiary);margin-top:10px;font-weight:700;text-transform:uppercase}._genreList_1geik_452{display:flex;flex-direction:column;gap:var(--space-6);padding-top:var(--space-2)}._genreRow_1geik_459{display:flex;flex-direction:column;gap:var(--space-2)}._genreInfo_1geik_465{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}._genreName_1geik_472{font-weight:800;font-size:1rem;color:var(--text-primary);letter-spacing:-.01em}._genreCount_1geik_479{font-size:.8rem;color:var(--text-tertiary);font-weight:700;text-transform:uppercase}._genreBarBg_1geik_486{height:12px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}._genreBar_1geik_486{height:100%;border-radius:var(--radius-full);transition:width 1.5s var(--ease-smooth)}._warningSection_1geik_499{background:color-mix(in srgb,var(--color-danger) 3%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid color-mix(in srgb,var(--color-danger) 20%,transparent);border-radius:var(--radius-xl);padding:var(--space-10);box-shadow:0 20px 50px -20px color-mix(in srgb,var(--color-danger) 15%,transparent);animation:_slideUpIn_1geik_1 .8s var(--ease-smooth) .3s both}._warningHeader_1geik_510{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);color:var(--color-danger)}._warningHeader_1geik_510 h3{font-size:1.5rem;font-weight:800;margin:0;letter-spacing:-.03em;text-transform:uppercase}._droppedGrid_1geik_526{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}._droppedCard_1geik_532{background:var(--bg-secondary);border:1px solid var(--border-primary);padding:var(--space-6);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:8px;transition:all var(--transition-base)}._droppedCard_1geik_532:hover{transform:translateY(-4px) scale(1.02);background:var(--bg-tertiary);border-color:var(--border-secondary)}._droppedName_1geik_549{font-weight:800;color:var(--text-primary);font-size:1.1rem;letter-spacing:-.01em}._droppedDate_1geik_556{font-size:.85rem;color:var(--text-tertiary);font-weight:600}@keyframes _fadeIn_1geik_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUpIn_1geik_1{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){._header_1geik_1{flex-direction:column;align-items:flex-start;gap:var(--space-6)}._statsGrid_1geik_57,._chartsContainer_1geik_277{grid-template-columns:1fr}._heatmapLayout_1geik_176{flex-direction:column-reverse}._genreGrid_1geik_597{grid-template-columns:1fr}}._genreGrid_1geik_597{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1.5rem;margin-bottom:var(--space-10)}._genreCard_1geik_609{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:1.5rem;position:relative;box-shadow:var(--glass-shadow)}._rankBadge_1geik_618{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center}._rankNumber_1geik_631{color:var(--accent-text);font-weight:700;font-size:1.1rem}._genreTitle_1geik_637{font-size:1.25rem;font-weight:800;color:var(--text-primary);margin-bottom:.75rem;letter-spacing:-.01em}._genreStats_1geik_645{display:flex;gap:1rem;margin-bottom:1rem;font-size:.85rem;color:var(--text-secondary)}._posterRow_1geik_653{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:.5rem}._miniPoster_1geik_660{aspect-ratio:2/3;width:100%;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-primary);transition:transform var(--transition-fast)}._miniPoster_1geik_660:hover{transform:scale(1.05);border-color:var(--accent)}._genreCardSkeleton_1geik_674{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:1.5rem;animation:_pulse_1geik_1 1.5s ease-in-out infinite}._skeletonRank_1geik_682{width:32px;height:32px;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);border-radius:50%;margin-bottom:.5rem}._skeletonTitle_1geik_696{height:1.25rem;width:60%;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);border-radius:4px;margin-bottom:.75rem}._skeletonStats_1geik_709{height:1rem;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);border-radius:4px;margin-bottom:1rem}._skeletonPosters_1geik_721{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}._skeletonPosters_1geik_721:before{content:"";display:block;height:100%;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);border-radius:4px}@keyframes _pulse_1geik_1{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}._recSection_1geik_752{margin-top:2rem}._recSection_1geik_752 h3{font-size:1.5rem;font-weight:800;margin:0 0 .25rem;letter-spacing:-.03em}._recSubtext_1geik_763{font-size:.85rem;color:var(--text-tertiary);margin-bottom:1rem}._recGrid_1geik_769{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-5)}._recCard_1geik_775{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;gap:var(--space-5);transition:all var(--transition-base)}._recCard_1geik_775:hover{transform:translateY(-4px);border-color:var(--border-secondary)}._recCover_1geik_790{width:72px;height:102px;object-fit:cover;border-radius:8px;flex-shrink:0}._recInfo_1geik_798{display:flex;flex-direction:column;gap:6px;min-width:0}._recTitle_1geik_805{font-weight:800;color:var(--text-primary);font-size:1rem;text-decoration:none}._recTitle_1geik_805:hover{text-decoration:underline}._recMatch_1geik_816{font-size:.8rem;font-weight:700;color:var(--accent)}._recMeta_1geik_822{font-size:.8rem;color:var(--text-tertiary)}._recWhy_1geik_827{font-size:.82rem;color:var(--text-secondary)}._recNote_1geik_832{font-size:.8rem;color:var(--text-tertiary);font-style:italic}._recAddBtn_1geik_838{margin-top:auto;align-self:flex-start;background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-primary);border-radius:8px;padding:6px 12px;font-size:.8rem;font-weight:700;cursor:pointer}._recAddBtn_1geik_838:hover:not(:disabled){border-color:var(--accent)}._recAddBtn_1geik_838:disabled{opacity:.6;cursor:default}._loading_1geik_860{padding:var(--space-16) var(--space-4);text-align:center;color:var(--text-muted)}._error_1geik_866{padding:var(--space-16) var(--space-4);text-align:center;color:var(--color-danger)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as U,d as k,h as L,T as E,u,S as y}from"./vendor-core-DfaOB3Rn.js";import{M as F}from"./MediaCard-BhYZUPLl.js";import{L as N}from"./LibraryListPage-BnJw-xnm.js";import{u as _,A as q}from"./useAsmrPopup-BGI3k7sr.js";import{A as z}from"./AsmrResetProgressModal-VXhNSZib.js";import{g as h}from"./index-hnIW0p5l.js";import{m as O,u as Q,n as Y,o as D,e as G,p as H,q as K,r as Z,A as T,k as J}from"./useAsmr-QthQGpYA.js";import"./vendor-icons-DrybRNxP.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";import"./MatureConsentModal-Ixo33c5M.js";import"./SkeletonGrid-CPc8hqla.js";import"./ErrorMessage-DAxegITP.js";import"./LibraryListPage.module-r6k9nyT9.js";import"./usePopup-DS9jMzp6.js";import"./ResetProgressModal-By_82RcA.js";import"./vendor-query-BBT5_sHx.js";import"./libraryInvalidation-DGzo-Q94.js";const V=["All","Continue Listening",...T],A=24;function W(a){const d=a.currentTime??0,i=a.duration??0,r=(a.trackIndex??0)+1;return i>0?`Track ${r} · ${h(d)} / ${h(i)}`:`Track ${r}`}function Lt(){const{filter:a="All"}=U(),[d,i]=k(1),[r,m]=k(null);L(()=>{document.title="Listening List - dango"},[]),L(()=>{i(1)},[a]);const o=a==="Continue Listening",n=O(o?"All":a,d,A),l=Q(100),f=Y(),C=D(),{toggle:v,bookmarkedIds:R}=G(),{popup:s,openPopup:I,scheduleClose:c,cancelClose:p,closePopup:B}=_(),P=H(),S=K(),j=Z(),M=E(()=>o?(l.data?.data??[]).map(t=>{const e=t.currentTime??0,g=t.duration??0,b=t.rjCode||t.id;return{key:t.id,libId:t.id,rjCode:b,title:t.title||"",thumbnail:t.thumbnail||"",status:t.watchlistStatus??"",isAdult:!!t.isAdult,trackLabel:`Track ${(t.trackIndex??0)+1}`,progressPercent:g>0?Math.min(100,e/g*100):0,progressLabel:W(t),detailTarget:`/asmr/${encodeURIComponent(b)}`}}):(n.data?.data??[]).map(t=>{const e=t.rjCode||t.id;return{key:t.id,libId:t.id,rjCode:e,title:t.title,thumbnail:t.thumbnail||"",status:t.status,isAdult:!!t.isAdult,trackLabel:t.lastTrackIndex!==null&&t.lastTrackIndex!==void 0?`Track ${t.lastTrackIndex+1}`:void 0,progressPercent:void 0,progressLabel:void 0,detailTarget:`/asmr/${encodeURIComponent(e)}`}}),[o,l.data,n.data]),w=o?l.data?.total??0:n.data?.total??0,x=o?l.isLoading:n.isLoading,$=o?l.error:n.error;return u(N,{headerTitle:"My Listening List",headerSubtitle:"Track and manage your ASMR collection",filters:V,filterBy:a,filterBasePath:"/listening-list",continueFilter:"Continue Listening",statusOptions:[...T],entries:M,total:w,isLoading:x,error:$,page:d,pageSize:A,onPageChange:i,emptyTitle:"Your listening list is looking a bit lonely",emptyFilteredText:"No works match this filter.",emptyAllText:"Let's find something to listen to!",browseLabel:"Browse ASMR",browseTarget:"/asmr",removeListLabel:"Remove from Listening List",listNoun:"listening list",skipConfirmKey:"asmrSkipRemoveConfirmation",onBulkStatus:(t,e)=>P.mutate({ids:t,status:e}),onBulkRemove:t=>{o?j.mutate({ids:t}):S.mutate({ids:t})},onStatusChange:(t,e)=>C.mutate({id:t,status:e}),onRemoveItem:t=>f.mutate({id:t}),renderCard:t=>u(F,{item:{id:t.libId,title:t.title,thumbnail:t.thumbnail,typeBadge:t.rjCode||void 0,chapterBadge:t.trackLabel??null,isAdult:t.isAdult},linkTo:t.detailTarget,hoverIcon:"info",layout:"horizontal",showInfoButton:!o,progress:t.progressPercent!==void 0&&t.progressLabel?{percent:t.progressPercent,label:t.progressLabel}:void 0,showProgress:o,display:{elements:{poster:{typeBadge:!0,chapterBadge:!0,adultBadge:!0},info:{title:!0,mobileBadges:!0,progress:!0,meta:!1}}},onRemove:o?()=>m(t):void 0,onOpenDetails:o?void 0:e=>I(e,{rjCode:t.rjCode,title:t.title,thumbnail:t.thumbnail,isAdult:t.isAdult,listenTarget:t.detailTarget,progressLabel:t.progressLabel}),onPopupHoverIntent:e=>e?p():c(),rawThumbnail:!0}),modals:u(y,{children:[u(z,{workId:r?r.libId:null,title:r?.title,onClose:()=>m(null)}),s&&u(q,{data:s.data,anchorRect:s.rect,bookmarked:R.has(J(s.data.rjCode)),onToggleBookmark:()=>v({rjCode:s.data.rjCode,title:s.data.title,thumbnail:s.data.thumbnail||"",isAdult:s.data.isAdult}),onMouseEnter:p,onMouseLeave:c,onRequestClose:B})]})})}export{Lt as default};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlayerSettings-puzcbL0V.js","assets/vendor-core-DfaOB3Rn.js","assets/index-hnIW0p5l.js","assets/vendor-query-BBT5_sHx.js","assets/vendor-icons-DrybRNxP.js","assets/index-CoCvEAx6.css","assets/OptionListMenu-D-g4a-VC.js","assets/useWatchAlongPlayer-B79YboC3.js","assets/PlayerProvider-Q25sRaQm.js","assets/PlayerProvider-ZeplRma-.css","assets/playbackCompletion-DCNDnWtX.js","assets/useWatchAlongPlayer-1fbftVwT.css","assets/PlayerSettings-BXGe3F5k.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{u as t,g as ct,h as U,P as er,z as tr,d as ae,A as R,q,y as rr,T as Ce,o as nr,a as sr,c as or,_ as ir,S as at}from"./vendor-core-DfaOB3Rn.js";import{p as J,_ as Bt,$ as Ze,l as ar,q as ie,t as me,F as Pe,a0 as lr,a1 as Ge,L as ut,a2 as cr,e as ur,r as dr,v as mr,w as fr,x as hr,d as pr,u as vr,B as lt,a3 as gr,f as yr}from"./index-hnIW0p5l.js";import{P as br,a as Sr,b as kr,F as Er,s as wr,c as Tr}from"./PlayerProvider-Q25sRaQm.js";import{u as Dt,b as _t,a as kt}from"./vendor-query-BBT5_sHx.js";import{p as wt,s as Cr,C as Mr,a as Rr,P as Nr,b as Fe,c as xt,f as $t,d as Pr,e as Ar,g as _r,r as xr,u as Lr,h as Br,i as Dr,j as $r,k as Ir,l as Fr,m as Or,n as Wr,o as Te,A as Ur,q as Vr,R as Qr,E as Kr,t as qr,v as k,w as Gr,x as zr,y as jr}from"./useWatchAlongPlayer-B79YboC3.js";import{I as ye}from"./vendor-icons-DrybRNxP.js";import{l as Hr,i as dt,s as Yr}from"./playbackCompletion-DCNDnWtX.js";import{M as Xr}from"./MatureConsentModal-Ixo33c5M.js";import{u as Jr}from"./useIsMobile-Dvx1uJ82.js";import{s as Ne,Q as Zr}from"./QueueRail-D2SeBzV5.js";import{u as en,Q as tn}from"./QueueOptionsButton-C0U85ua3.js";import{u as It}from"./useProviders-Bzr6U-8b.js";import{A as rn}from"./AnimeMetaDetails-B3-A7O5H.js";import{S as nn}from"./SynopsisText-B3Sa5pRv.js";import{W as sn}from"./WatchAlongPanel-CerutuF6.js";import"./vendor-ui-3qrARCPr.js";const on="_controlsOverlay_cejny_1",an="_hidden_cejny_21",ln="_topControls_cejny_27",cn="_backBtn_cejny_47",un="_videoTitleInfo_cejny_67",dn="_animeTitle_cejny_73",mn="_episodeNumber_cejny_83",fn="_bottomControls_cejny_91",hn="_progressBarContainer_cejny_110",pn="_progressBar_cejny_110",vn="_thumb_cejny_129",gn="_scrubbing_cejny_144",yn="_watchedBar_cejny_148",bn="_bufferedBar_cejny_149",Sn="_timeBubble_cejny_187",kn="_skipSegment_cejny_221",En="_bottomControlsRow_cejny_231",wn="_leftControls_cejny_239",Tn="_rightControls_cejny_240",Cn="_controlBtn_cejny_247",Mn="_theaterBtn_cejny_288",Rn="_nextEpisodeBtn_cejny_292",Nn="_active_cejny_313",Pn="_timeDisplay_cejny_317",An="_skipControls_cejny_325",L={controlsOverlay:on,hidden:an,topControls:ln,backBtn:cn,videoTitleInfo:un,animeTitle:dn,episodeNumber:mn,bottomControls:fn,progressBarContainer:hn,progressBar:pn,thumb:vn,scrubbing:gn,watchedBar:yn,bufferedBar:bn,timeBubble:Sn,skipSegment:kn,bottomControlsRow:En,leftControls:wn,rightControls:Tn,controlBtn:Cn,theaterBtn:Mn,nextEpisodeBtn:Rn,active:Nn,timeDisplay:Pn,skipControls:An},_n=({player:r,handlers:o,visible:c,skipIntervals:m,showNextEpisodeButton:b,onNextEpisode:a,isTheaterMode:s,onTheaterModeToggle:n,settingsBtnRef:i,timeDisplayRef:f})=>{const{state:S,actions:h}=r,{showSettings:w}=S;return t("div",{className:`${L.controlsOverlay} ${c?"":L.hidden} `,"data-speed-boost-ignore":"true",style:{pointerEvents:"none",background:"none",justifyContent:"flex-end"},children:t("div",{className:L.bottomControls,"data-speed-boost-ignore":"true",onClick:T=>T.stopPropagation(),children:[t(br,{classes:{container:L.progressBarContainer,scrubbing:L.scrubbing,timeBubble:L.timeBubble,bar:L.progressBar,buffered:L.bufferedBar,watched:L.watchedBar,thumb:L.thumb},timeLabelRef:f,children:[S.duration>0&&r.state.currentSkipInterval&&t("div",{className:`${L.skipSegment} ${L[r.state.currentSkipInterval.skip_type]} `,style:{left:`${r.state.currentSkipInterval.start_time/S.duration*100}% `,width:`${(r.state.currentSkipInterval.end_time-r.state.currentSkipInterval.start_time)/S.duration*100}% `}}),m.map(T=>{const e=T.start_time/S.duration*100,v=(T.end_time-T.start_time)/S.duration*100;return t("div",{className:`${L.skipSegment} ${L[T.skip_type]} `,style:{left:`${e}% `,width:`${v}% `},title:T.skip_type.toUpperCase()},T.skip_id)})]}),t("div",{className:L.bottomControlsRow,children:[t("div",{className:L.leftControls,children:[t(Sr,{className:L.controlBtn}),t(kr,{buttonClassName:L.controlBtn,onExpandedChange:h.setShowVolumeSlider}),t("span",{className:L.timeDisplay,ref:f,children:[h.formatTime(0)," / ",h.formatTime(S.duration)]}),S.currentSkipInterval&&!S.isAutoSkipEnabled&&!S.playbackLocked&&t("button",{className:L.controlBtn,onClick:()=>{S.currentSkipInterval&&(r.engine.seek(S.currentSkipInterval.end_time),h.setCurrentSkipInterval(null))},children:["Skip ",S.currentSkipInterval.skip_type==="op"?"Opening":"Ending"]})]}),t("div",{className:L.rightControls,children:[t("div",{className:L.skipControls,children:b&&t("button",{className:L.nextEpisodeBtn,onClick:a,title:"Play next episode",children:"Next EP"})}),t("button",{className:`${L.controlBtn} ${o.isSubtitleActive?L.active:""}`,onClick:o.handleCCToggle,title:o.isSubtitleActive?"Disable Subtitles":"Enable Subtitles","aria-label":"Toggle Subtitles",children:t(ye,{name:"closed-captioning",size:22})}),t("button",{ref:i,className:`${L.controlBtn} ${w?L.active:""} `,onClick:()=>h.setShowSettings(!w),"aria-label":"Settings",children:t(ye,{name:"cog"})}),t("button",{className:`${L.controlBtn} ${L.theaterBtn} ${s?L.active:""} `,onClick:T=>{T.stopPropagation(),n()},title:s?"Exit Theater Mode":"Theater Mode","aria-label":s?"Exit Theater Mode":"Theater Mode",children:t(ye,{name:"tv"})}),t(Er,{className:L.controlBtn})]})]})]})})};function xn(r){const{state:o,refs:c,actions:m}=r,b=n=>{if(!c.videoRef.current)return;m.setActiveSubtitleTrack(n);try{if(n===null||n==="off")J.setItem("playerSubtitlesEnabled","false");else{J.setItem("playerSubtitlesEnabled","true");const f=o.availableSubtitles.find(S=>S.label===n||S.lang===n);f?J.setItem("playerLastSubtitle",Cr(f)):J.setItem("playerLastSubtitle",n)}}catch{}let i=!1;Array.from(c.videoRef.current.textTracks).forEach(f=>{const h=n!==null&&n!=="off"&&(f.language===n||f.label===n)&&!i;f.mode=h?"showing":"hidden",h&&(i=!0)})},a=o.activeSubtitleTrack!==null&&o.activeSubtitleTrack!=="off";return{handleSubtitleSelection:b,isSubtitleActive:a,handleCCToggle:()=>{if(!c.videoRef.current)return;if(a){b("off");return}if(o.availableSubtitles.length===0)return;let n=null;try{n=J.getItem("playerLastSubtitle")}catch{}const i=wt(o.availableSubtitles,{lastKey:n,enabled:!0});if(i<0)return;const f=o.availableSubtitles[i];b(f.label||f.lang)}}}const Ln=tr(()=>Bt(()=>import("./PlayerSettings-puzcbL0V.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]))),Bn=({player:r,isAutoplayEnabled:o,onAutoplayChange:c,showNextEpisodeButton:m,onNextEpisode:b,videoSources:a,selectedSource:s,selectedLink:n,onSourceChange:i,loadingVideo:f,skipIntervals:S,animeTitle:h,episodeNumber:w,mode:T,isTheaterMode:e,onTheaterModeToggle:v,anime4kEnabled:N,onAnime4kToggle:A,anime4kSupported:x,anime4kProfile:g,onAnime4kProfileChange:d,anime4kInitializing:P,anime4kError:_,videoDelayEnabled:F,onVideoDelayToggle:V,videoDelayMs:y,onVideoDelayChange:p,onCalibrateAvSync:O,fallbackChoice:z,onFallbackChoiceChange:D,ambientSettings:B,onAmbientChange:j,children:H,overlays:fe,isInteractingExtra:$=!1,className:Q,hideChrome:ee=!1})=>{const{state:l,actions:M}=r,{showSettings:E}=l,{setShowSettings:C}=M,W=xn(r),Y=ct.useRef(null),Me=ct.useRef(null),Ae=ct.useRef(null);U(()=>{const le=xe=>{Y.current&&!Y.current.contains(xe.target)&&Me.current&&!Me.current.contains(xe.target)&&E&&C(!1)};return E&&document.addEventListener("mousedown",le),()=>{document.removeEventListener("mousedown",le)}},[E,C]);const ne=l.showControls||E||l.isScrubbing,X=l.activeSubtitleTrack!=="off"?l.availableSubtitles.find(le=>le.lang===l.activeSubtitleTrack||le.label===l.activeSubtitleTrack):void 0,_e=t(Mr,{visible:ne,title:h,episode:w?`Episode ${w}`:void 0,mode:T,server:f?void 0:s?.sourceName,subtitles:f?void 0:X?.label||X?.lang,onBack:()=>window.history.back(),classes:{overlay:L.controlsOverlay,hidden:L.hidden,top:L.topControls,backBtn:L.backBtn,titleInfo:L.videoTitleInfo,title:L.animeTitle,episode:L.episodeNumber}}),De=!f&&!l.isBuffering&&l.duration>0?t(Rr,{}):null,se=t(_n,{player:r,handlers:W,visible:ne,skipIntervals:S,showNextEpisodeButton:m,onNextEpisode:b,isTheaterMode:e,onTheaterModeToggle:v,settingsBtnRef:Me,timeDisplayRef:Ae}),K=t(er,{fallback:null,children:t(Ln,{ref:Y,isOpen:E,onClose:()=>C(!1),videoSources:a,currentSource:s,currentLink:n,onSourceChange:i,subtitles:l.availableSubtitles,activeSubtitleTrack:l.activeSubtitleTrack,onSubtitleChange:W.handleSubtitleSelection,subtitleSettings:{fontSize:l.subtitleFontSize,position:l.subtitlePosition,bgOpacity:l.subtitleBgOpacity,bgColor:l.subtitleBgColor,textColor:l.subtitleTextColor,edge:l.subtitleEdge,bold:l.subtitleBold},onSubtitleSettingsChange:M.setSubtitleStyle,useNativeControls:!l.playbackLocked&&l.useNativeControls,onNativeControlsToggle:M.setUseNativeControls,anime4kEnabled:N,onAnime4kToggle:A,anime4kSupported:x,anime4kProfile:g,onAnime4kProfileChange:d,anime4kInitializing:P,anime4kError:_,videoDelayEnabled:F,onVideoDelayToggle:V,videoDelayMs:y,onVideoDelayChange:p,onCalibrateAvSync:O,isAutoSkipEnabled:l.isAutoSkipEnabled,onAutoSkipChange:le=>{M.setIsAutoSkipEnabled(le);try{J.setItem("autoSkipEnabled",le.toString())}catch{}},isAutoplayEnabled:o,onAutoplayChange:c,fallbackChoice:z,onFallbackChoiceChange:D,isTheaterMode:e,ambientSettings:B,onAmbientChange:j})}),he=E?t("div",{"data-speed-boost-ignore":"true",onClick:le=>le.stopPropagation(),children:K}):null;return t(Nr,{engine:r.engine,topBar:_e,centerControls:De,bottomBar:!f&&l.duration>0?se:null,settingsPanel:he,overlays:fe,isInteracting:$||l.showSettings||l.showVolumeSlider,nativeControls:!l.playbackLocked&&l.useNativeControls,className:Q,chromeDisabled:ee,children:H})},Dn=({count:r=3})=>t("section",{className:Ne.section,children:[t("div",{className:Ne.header,children:t("button",{className:Ne.headerToggle,disabled:!0,children:[t("span",{className:Ne.title,children:t(Ze,{width:"60px",height:"1.2rem",variant:"text"})}),t(ye,{name:"chevron-down",style:{opacity:.3}})]})}),t("div",{className:Ne.list,children:Array.from({length:r}).map((o,c)=>t("div",{className:Ne.item,style:{pointerEvents:"none"},children:[t("div",{className:Ne.dragHandle,style:{opacity:.2},children:t(Ze,{width:"16px",height:"16px",variant:"rectangular"})}),t("div",{className:Ne.thumbnail,style:{overflow:"hidden",background:"transparent"},children:t(Ze,{width:"100%",height:"100%",variant:"rectangular"})}),t("div",{className:Ne.meta,children:[t(Ze,{width:"80%",height:"1.2rem",variant:"text",className:Ne.metaGap}),t(Ze,{width:"40%",height:"0.8rem",variant:"rectangular",style:{borderRadius:"var(--radius-sm)"}})]})]},c))})]}),$n={soft:"Softsub",hard:"Hardsub",mixed:"Mixed"},In={direct:"Direct",embed:"Embed",cookie:"Needs cookie"},Fn=["direct","cookie","embed"],On=({selectedProvider:r,onProviderChange:o,isAdult:c,options:m})=>{const a=(m&&m.length>0?m:[]).filter(s=>s.mature===(c===!0));return t("div",{className:Fe.providerSelectContainer,children:[t("h4",{children:"Provider"}),t("select",{className:Fe.providerSelect,value:r,onChange:s=>o(s.currentTarget.value),children:Fn.map(s=>{const n=a.filter(i=>(i.tier??"direct")===s);return n.length===0?null:t("optgroup",{label:In[s],children:n.map(i=>t("option",{value:i.id,children:i.sub?`${i.label} (${$n[i.sub]})`:i.label},i.id))},s)})})]})},Wn=({videoSources:r,selectedSource:o,selectedLink:c,onSourceChange:m,onLinkChange:b})=>{const a=Array.isArray(r)?r:[];if(a.length===0)return null;const s=o?.type==="iframe"&&(o.links?.length??0)>1;return t("div",{className:Fe.sourceSelectionContainer,children:[t("h4",{children:"Source"}),t("div",{className:Fe.sourceButtons,children:a.map((n,i)=>t("button",{className:`${Fe.sourceButton} ${o?.sourceName===n.sourceName?Fe.active:""} `,onClick:()=>m(n),children:n.sourceName},`${n.sourceName}-${i}`))}),s&&t("select",{className:Fe.sourceSelect,"aria-label":"Fallback embed quality",value:c?.link??o.links[0]?.link??"",onChange:n=>{const i=o.links.find(f=>f.link===n.currentTarget.value);i&&b(i)},children:o.links.map(n=>t("option",{value:n.link,children:n.resolutionStr},n.link))})]})},Un=ct.memo(Wn,(r,o)=>r.selectedSource?.sourceName===o.selectedSource?.sourceName&&r.selectedLink?.link===o.selectedLink?.link&&r.videoSources===o.videoSources),Vn={low:{sd:1.5,hd:1.3,fhd:1.25},balanced:{sd:2,hd:1.5,fhd:1.25},high:{sd:2.5,hd:2,fhd:1.5},denoise:{sd:1.5,hd:1.5,fhd:1.5}},Qn={low:"ModeB",balanced:"ModeA",high:"ModeAA",denoise:"ModeC"},Kn=5,qn=15e3,Gn=`
|
|
3
|
-
@group(0) @binding(0) var extTex: texture_external;
|
|
4
|
-
@group(0) @binding(1) var extSamp: sampler;
|
|
5
|
-
struct VSOut {
|
|
6
|
-
@builtin(position) pos: vec4f,
|
|
7
|
-
@location(0) uv: vec2f,
|
|
8
|
-
};
|
|
9
|
-
@vertex
|
|
10
|
-
fn vs(@builtin(vertex_index) idx: u32) -> VSOut {
|
|
11
|
-
var positions = array<vec2f, 6>(
|
|
12
|
-
vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(-1.0, 1.0),
|
|
13
|
-
vec2f(-1.0, 1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0)
|
|
14
|
-
);
|
|
15
|
-
var uvs = array<vec2f, 6>(
|
|
16
|
-
vec2f(0.0, 1.0), vec2f(1.0, 1.0), vec2f(0.0, 0.0),
|
|
17
|
-
vec2f(0.0, 0.0), vec2f(1.0, 1.0), vec2f(1.0, 0.0)
|
|
18
|
-
);
|
|
19
|
-
var out: VSOut;
|
|
20
|
-
out.pos = vec4f(positions[idx], 0.0, 1.0);
|
|
21
|
-
out.uv = uvs[idx];
|
|
22
|
-
return out;
|
|
23
|
-
}
|
|
24
|
-
@fragment
|
|
25
|
-
fn fs(@location(0) uv: vec2f) -> @location(0) vec4f {
|
|
26
|
-
return textureSampleBaseClampToEdge(extTex, extSamp, uv);
|
|
27
|
-
}
|
|
28
|
-
`;function zn({videoRef:r,canvasRef:o,profile:c="balanced",delayMs:m=0}){const[b,a]=ae(!1),[s,n]=ae(()=>{try{return J.getItem("anime4kEnabled")==="true"}catch{return!1}}),[i,f]=ae(!1),[S,h]=ae(null),[w,T]=ae(0),e=R(0),v=R(null),N=R(null),A=R(null),x=R(null),g=R(null),d=R(null),P=R(null),_=R(null),F=R(null),V=R(!1),y=R(-1),p=R(0),O=R(m);O.current=m;const z=R([]),D=R(!1),B=R(!1),j=R(!1),H=R(null),fe=R(-1),$=R(-1),Q=R(!1),ee=R(0);U(()=>{async function E(){if(typeof navigator>"u"||!navigator.gpu){a(!1);return}try{const C=await navigator.gpu.requestAdapter();a(!!C)}catch{a(!1)}}E()},[]),U(()=>{if(!s||!b)return;let E=!1;const C=++e.current,W=X=>{if(X)try{X.close()}catch{}},Y=()=>{for(const X of z.current)W(X.bitmap);z.current=[]},Me=X=>Math.max(8,Math.min(40,Math.ceil(X/16.7)+4));function Ae(){F.current!==null&&(cancelAnimationFrame(F.current),F.current=null)}async function ne(){let X=r.current;const _e=o.current;if(!X||!_e||e.current!==C)return;const De=performance.now()+qn;for(;(!X||X.videoWidth===0)&&performance.now()<De;){if(await new Promise(de=>requestAnimationFrame(de)),E||e.current!==C)return;X=r.current}if(!X||X.videoWidth===0){!E&&e.current===C&&(h("Timed out waiting for video metadata"),f(!1),n(!1));return}const se=X.videoWidth,K=X.videoHeight,he=Math.max(se,K),le=window.innerWidth,xe=window.innerHeight,ze=Math.max(le,xe),je=he<ze?ze/he:1,Oe=Vn[c],mt=he<=480?Oe.sd:he<=720?Oe.hd:he<=1080?Oe.fhd:1,Re=Math.min(mt,je);_e.width=Math.round(se*Re),_e.height=Math.round(K*Re),f(!0),h(null),p.current=0,y.current=-1,fe.current=-1,$.current=-1,Q.current=!1,ee.current=0,Y(),V.current=!1;try{let de=function(){E||e.current!==C||(Ae(),F.current=requestAnimationFrame(()=>{gt()}))};const{ModeA:tt,ModeB:ft,ModeC:ht,ModeAA:be}=await Bt(async()=>{const{ModeA:G,ModeB:te,ModeC:Se,ModeAA:ce}=await import("./index-BOKlZEHq.js").then(ue=>ue.i);return{ModeA:G,ModeB:te,ModeC:Se,ModeAA:ce}},[]);if(E||e.current!==C)return;if(!navigator.gpu)throw new Error("WebGPU not available");const He=await navigator.gpu.requestAdapter();if(E||e.current!==C)return;if(!He)throw new Error("No GPU adapter found");const I=await He.requestDevice();if(!I)throw new Error("Failed to get GPU device");if(E||e.current!==C){I.destroy();return}v.current=I;const pe=_e.getContext("webgpu");if(!pe)throw new Error("Failed to get WebGPU context");N.current=pe;const Ye=navigator.gpu.getPreferredCanvasFormat();pe.configure({device:I,format:Ye,alphaMode:"premultiplied"});const ve=I.createTexture({size:[se,K],format:"rgba16float",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),pt=Qn[c],We=Math.round(se*Re),$e=Math.round(K*Re),Ue=(()=>{switch(pt){case"ModeB":return new ft({device:I,inputTexture:ve,nativeDimensions:{width:se,height:K},targetDimensions:{width:We,height:$e}});case"ModeC":return new ht({device:I,inputTexture:ve,nativeDimensions:{width:se,height:K},targetDimensions:{width:We,height:$e}});case"ModeAA":return new be({device:I,inputTexture:ve,nativeDimensions:{width:se,height:K},targetDimensions:{width:We,height:$e}});default:return new tt({device:I,inputTexture:ve,nativeDimensions:{width:se,height:K},targetDimensions:{width:We,height:$e}})}})(),rt=Ue.getOutputTexture(),Ve=I.createSampler({magFilter:"linear",minFilter:"linear"}),nt=I.createShaderModule({code:`
|
|
29
|
-
@group(0) @binding(0) var tex: texture_2d<f32>;
|
|
30
|
-
@group(0) @binding(1) var samp: sampler;
|
|
31
|
-
struct VertexOutput {
|
|
32
|
-
@builtin(position) pos: vec4f,
|
|
33
|
-
@location(0) uv: vec2f,
|
|
34
|
-
}
|
|
35
|
-
@vertex
|
|
36
|
-
fn vs(@builtin(vertex_index) idx: u32) -> VertexOutput {
|
|
37
|
-
var positions = array<vec2f, 6>(
|
|
38
|
-
vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(-1.0, 1.0),
|
|
39
|
-
vec2f(-1.0, 1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0)
|
|
40
|
-
);
|
|
41
|
-
var uvs = array<vec2f, 6>(
|
|
42
|
-
vec2f(0.0, 1.0), vec2f(1.0, 1.0), vec2f(0.0, 0.0),
|
|
43
|
-
vec2f(0.0, 0.0), vec2f(1.0, 1.0), vec2f(1.0, 0.0)
|
|
44
|
-
);
|
|
45
|
-
var out: VertexOutput;
|
|
46
|
-
out.pos = vec4f(positions[idx], 0.0, 1.0);
|
|
47
|
-
out.uv = uvs[idx];
|
|
48
|
-
return out;
|
|
49
|
-
}
|
|
50
|
-
@fragment
|
|
51
|
-
fn fs(@location(0) uv: vec2f) -> @location(0) vec4f {
|
|
52
|
-
return textureSample(tex, samp, uv);
|
|
53
|
-
}
|
|
54
|
-
`}),Xe=I.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),st=I.createRenderPipeline({layout:I.createPipelineLayout({bindGroupLayouts:[Xe]}),vertex:{module:nt,entryPoint:"vs"},fragment:{module:nt,entryPoint:"fs",targets:[{format:Ye}]},primitive:{topology:"triangle-list"}}),Qe=I.createBindGroup({layout:Xe,entries:[{binding:0,resource:rt.createView()},{binding:1,resource:Ve}]});try{const G=I.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,externalTexture:{}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),te=I.createShaderModule({code:Gn}),Se=I.createRenderPipeline({layout:I.createPipelineLayout({bindGroupLayouts:[G]}),vertex:{module:te,entryPoint:"vs"},fragment:{module:te,entryPoint:"fs",targets:[{format:"rgba16float"}]},primitive:{topology:"triangle-list"}});H.current={pipeline:Se,layout:G,inputView:ve.createView()}}catch{H.current=null}A.current=Ue,x.current=ve,g.current=rt,d.current=st,P.current=Ve,_.current=Xe,B.current=!1,j.current=!1;async function vt(){const G=H.current;if(!G||B.current)return!1;const te=r.current;if(!te)return!1;const Se=!j.current;Se&&I.pushErrorScope("validation");try{const ce=I.importExternalTexture({source:te}),ue=I.createBindGroup({layout:G.layout,entries:[{binding:0,resource:ce},{binding:1,resource:Ve}]}),re=I.createCommandEncoder(),ke=re.beginRenderPass({colorAttachments:[{view:G.inputView,loadOp:"load",storeOp:"store"}]});ke.setPipeline(G.pipeline),ke.setBindGroup(0,ue),ke.draw(6),ke.end(),I.queue.submit([re.finish()])}catch{return B.current=!0,H.current=null,!1}if(Se){const ce=await I.popErrorScope().catch(()=>null);if(ce)return console.warn("[anime4k] blit probe failed:",ce.message),B.current=!0,H.current=null,!1;j.current=!0}return!0}f(!1);async function gt(){if(E||e.current!==C||!pe)return;const G=r.current;if(!G||G.videoWidth===0){de();return}if(G!==X||G.videoWidth!==se||G.videoHeight!==K){T(ue=>ue+1);return}if(G.paused||G.ended||document.hidden||G.readyState<HTMLMediaElement.HAVE_CURRENT_DATA){de();return}const te=G.getVideoPlaybackQuality().totalVideoFrames;if(te===$.current){de();return}if(V.current){de();return}const Se=G.currentTime;(G.seeking||fe.current>=0&&Math.abs(Se-fe.current)>.5)&&(Y(),Q.current=!1,ee.current=0,$.current=-1),fe.current=Se;const ce=Math.max(0,O.current||0);ce>ee.current&&(Q.current=!1),V.current=!0;try{const ue=performance.now();let re=null,ke=!1;if(ce<=0){z.current.length>0&&Y(),Q.current=!1,ee.current=0;let Ee=!1;if(!D.current)try{I.queue.copyExternalImageToTexture({source:G},{texture:ve},[se,K]),$.current=te,Ee=!0}catch(oe){if(oe instanceof TypeError)D.current=!0;else throw oe}if(!Ee&&!B.current&&H.current&&await vt()&&($.current=te,Ee=!0),!Ee){const oe=await createImageBitmap(G);$.current=te,I.queue.copyExternalImageToTexture({source:oe},{texture:ve},[se,K]),W(oe)}}else{const Ee=await createImageBitmap(G);$.current=te;const oe=z.current;oe.push({bitmap:Ee,capture:ue});const yt=Me(ce);for(;oe.length>yt;)W(oe.shift()?.bitmap);let Je=-1;for(let ge=oe.length-1;ge>=0;ge--)if(ue-oe[ge].capture>=ce){Je=ge;break}if(Je!==-1){for(let ot=0;ot<Je;ot++)W(oe.shift()?.bitmap);const ge=oe.shift();ge?(re=ge.bitmap,Q.current=!0,ee.current=ce):(re=Ee,ke=!0)}else if(!Q.current)re=Ee,ke=!0;else{const ge=oe.shift();re=ge?ge.bitmap:Ee,ge||(ke=!0)}if(!re){V.current=!1,de();return}I.queue.copyExternalImageToTexture({source:re},{texture:ve},[se,K]),ke||W(re)}const Ke=I.createCommandEncoder();await Ue.pass(Ke);const qe=Ke.beginRenderPass({colorAttachments:[{view:pe.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:1},loadOp:"clear",storeOp:"store"}]});qe.setPipeline(st),qe.setBindGroup(0,Qe),qe.draw(6),qe.end(),I.queue.submit([Ke.finish()]),y.current=te,p.current=0,I.queue.onSubmittedWorkDone().then(()=>{e.current===C&&(V.current=!1)})}catch(ue){if(V.current=!1,p.current+=1,p.current>=Kn&&!E&&e.current===C){console.error(ue),h(ue instanceof Error?ue.message:"Render error"),n(!1);return}}de()}de()}catch(de){!E&&e.current===C&&(N.current?.unconfigure(),v.current?.destroy(),v.current=null,N.current=null,h(de instanceof Error?de.message:"Failed to initialize upscaler"),f(!1),n(!1))}}return ne(),()=>{E=!0,e.current+=1,Ae(),Y(),N.current?.unconfigure(),x.current&&(x.current.destroy(),x.current=null),g.current&&(g.current.destroy(),g.current=null),v.current&&(v.current.destroy(),v.current=null),A.current=null,d.current=null,P.current=null,_.current=null,H.current=null,N.current=null,V.current=!1}},[s,b,r,o,c,w]);const l=q(E=>{n(E);try{J.setItem("anime4kEnabled",String(E))}catch{}},[]),M=q(()=>{n(E=>{const C=!E;try{J.setItem("anime4kEnabled",String(C))}catch{}return C})},[]);return{isWebGPUSupported:b,isEnabled:s,isInitializing:i,error:S,toggle:M,setEnabled:l}}function jn({videoRef:r,episodeKey:o,isEnabled:c,isSupported:m,mediaReady:b,isIframeSource:a,setEnabled:s}){const n=R(null),i=R(!1),f=R(!1),S=R(s);S.current=s,U(()=>{const h=n.current;n.current=o,!(h===null||h===o)&&(!c||!m||(i.current=!0,f.current=!1,S.current(!1)))},[o,c,m]),U(()=>{if(!i.current)return;if(c){f.current&&(i.current=!1);return}if(f.current=!0,!b)return;if(a){i.current=!1,S.current(!0);return}const h=r.current;if(!h)return;let w,T=!1;const e=()=>{T||(T=!0,i.current=!1,S.current(!0))};if(h.readyState>=2)return w=window.setTimeout(e,500),()=>window.clearTimeout(w);const v=()=>{window.setTimeout(e,500)};return h.addEventListener("canplay",v,{once:!0}),h.addEventListener("playing",v,{once:!0}),w=window.setTimeout(e,5e3),()=>{window.clearTimeout(w),h.removeEventListener("canplay",v),h.removeEventListener("playing",v)}},[c,b,a,r])}const Hn=()=>J.getItem("preferredMode")==="dub"?"dub":"sub",Yn=/^[a-z0-9-]+$/i,Ft=r=>r?"preferredProviderMature":"preferredProvider",Ot=r=>{const o=J.getItem(Ft(r));return o&&Yn.test(o)?o:null},Wt=(r,o)=>{J.setItem(Ft(o),r)},Xn=()=>Ot(!1)??"megaplay",Jn=()=>({showMeta:{},episodes:[],watchedEpisodes:[],watchlistStatus:null,showCombinedDetails:!1,currentMode:Hn(),inWatchlist:!1,videoSources:[],selectedSource:null,selectedLink:null,isAutoplayEnabled:Hr(),showResumeModal:!0,resumeProgressPending:!0,resumeTime:0,resumeDuration:0,skipIntervals:[],selectedProvider:Xn(),loadingShowData:!0,loadingVideo:!1,error:null,showCookieModal:!1,cookieProvider:null});function Zn(r,o){switch(o.type){case"SET_STATE":return{...r,...o.payload};case"SET_MODE":return{...r,currentMode:o.payload,videoSources:[],selectedSource:null,selectedLink:null};case"SET_PROVIDER":return{...r,selectedProvider:o.payload};default:return r}}async function Lt(r,o,c,m,b=!1){if(!r||!o)throw new Error("Missing params");try{const[a,s,n,i]=await Promise.all([me.data.video.query({showId:r,episodeNumber:o,mode:c.currentMode,provider:c.selectedProvider}).catch(g=>{const d=g.data?.cause;return g.message==="AUTH_REQUIRED"&&d?.provider==="mkissa"&&m({type:"SET_STATE",payload:{showCookieModal:!0,cookieProvider:"mkissa"}}),null}),me.progress.getEpisode.query({showId:r,episodeNumber:o}).catch(()=>null),me.settings.getByKey.query({key:"preferredSource"}).catch(()=>null),me.data.skipTimes.query({showId:r,episodeNumber:o}).catch(()=>[])]),f=n?.value,S=a?.filter(g=>{const d=g.sourceName.toLowerCase();return c.currentMode==="dub"?d.includes("eng")||d.includes("dub"):d.includes("jpn")||d.includes("sub")||!d.includes("eng")&&!d.includes("dub")})??[],h=S.length>0?S:a??[];let w=h.length>0?h[0]:null;if(f){const g=h.find(d=>d.sourceName===f);g&&(w=g)}const T=w&&w.links.length>0?w.links.sort((g,d)=>(parseInt(d.resolutionStr)||0)-(parseInt(g.resolutionStr)||0))[0]:null,e=s?.currentTime||0,v=s?.duration||0,N=e,x=(Array.isArray(i)?i:i?.results||[]).map(g=>({skip_id:g.skip_id||"",skip_type:g.skip_type||"",start_time:g.interval?.start_time??g.start_time??0,end_time:g.interval?.end_time??g.end_time??0})).filter(g=>g.end_time>0);return(!a||a.length===0)&&(b||Pe.error(`No video sources found for ${c.selectedProvider}`)),{videoSources:a,selectedSource:w,selectedLink:T,resumeTime:N,resumeDuration:v,showResumeModal:N>5&&!dt(N,v)&&w?.type!=="iframe",skipIntervals:x,fetchedEpisodeNumber:o}}catch(a){const s=a;if(s.message==="AUTH_REQUIRED")return m({type:"SET_STATE",payload:{showCookieModal:!0,cookieProvider:s.provider}}),{videoSources:[],selectedSource:null,selectedLink:null,resumeTime:0,resumeDuration:0,showResumeModal:!1,skipIntervals:[],fetchedEpisodeNumber:o};throw a}}const es=(r,o,c,m)=>{const[b,a]=rr(Zn,c,l=>({...Jn(),showMeta:l?.name?{name:l.name,thumbnail:l.thumbnail,nativeName:l.nativeName,englishName:l.englishName,names:{romaji:l.name||l.englishName,english:l.englishName||l.name,native:l.nativeName}}:{}})),s=m?.watchSelection,n=Ce(()=>s?{...b,selectedProvider:s.provider,currentMode:s.mode}:b,[b,s]),i=Dt(),f=ar(),S=R(null),h=R(null),{options:w}=It(),T=Ce(()=>w.filter(l=>(l.kind??"anime")==="anime"),[w]),e=o||n.initialEpisode,v=`${r}:${e}`,N=R(v);U(()=>{N.current!==v&&(N.current=v,a({type:"SET_STATE",payload:{selectedSource:null,selectedLink:null}}))},[v,a]),U(()=>{!s&&r&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r)&&n.selectedProvider!=="animepahe"&&S.current!==r&&(S.current=r,a({type:"SET_PROVIDER",payload:"animepahe"}))},[r,n.selectedProvider,s]);const{data:A,isLoading:x,error:g}=en(r),{data:d}=_t({queryKey:[ie.playerData,r,n.currentMode,n.selectedProvider],queryFn:async()=>{if(!r)throw new Error("No showId");const l=async()=>{try{const Y=await me.data.episodes.query({showId:r,mode:n.currentMode,provider:n.selectedProvider}).catch(()=>null);if(Y?.episodes?.length)return Y}catch{}return null},[M,E,C]=await Promise.all([l(),me.watchlist.check.query({showId:r}).catch(()=>({inWatchlist:!1,status:null})),me.progress.getWatchedEpisodes.query({showId:r}).catch(()=>[])]),W=M?.episodes?M.episodes.sort((Y,Me)=>parseFloat(Y)-parseFloat(Me)):[];return{description:M?.description||"",episodes:W,inWatchlist:E.inWatchlist,watchlistStatus:E.status??null,watchedEpisodes:C}},enabled:!!r});U(()=>{!o&&d?.episodes&&d.episodes.length>0&&!o&&a({type:"SET_STATE",payload:{initialEpisode:d.episodes[0]}})},[d,o]),U(()=>{if(s||A?.isAdult===void 0||h.current===r)return;const l=A.isAdult===!0,M=T.filter(C=>C.mature===l);if(M.length===0||T.find(C=>C.id===n.selectedProvider)?.mature===l)return;const E=Ot(l);h.current=r??null,a({type:"SET_PROVIDER",payload:M.find(C=>C.id===E)?.id??M[0].id})},[A?.isAdult,n.selectedProvider,r,T,s]),U(()=>{if(s||!r||!/^dango-mt-\d+$/.test(r)||h.current===`temp:${r}`)return;const l=A?.provider;l&&(h.current=`temp:${r}`,l!==n.selectedProvider&&a({type:"SET_PROVIDER",payload:l}))},[r,A,n.selectedProvider,s]);const{data:P,isLoading:_,isFetching:F,error:V}=_t({queryKey:[ie.videoSources,r,e,n.selectedProvider,n.currentMode],queryFn:()=>Lt(r,e,n,a),enabled:!!r&&!!e&&!(n.showMeta?.isAdult===!0&&!m?.hasMatureConsent)}),{mutateAsync:y}=kt({mutationFn:async({wasIn:l,showMeta:M})=>{if(!r)throw new Error("Missing showId");if(l)await me.watchlist.remove.mutate({id:r});else{const E=M.name||M.names?.romaji;if(!E)throw new Error("Missing show name");await me.watchlist.add.mutate({id:r,name:E,thumbnail:M.thumbnail,nativeName:M.names?.native,englishName:M.names?.english,type:M.type,isAdult:M.isAdult})}return!l},onSuccess:l=>{Pe.success(l?"Added to watchlist":"Removed from watchlist"),i.invalidateQueries({queryKey:[ie.playerData,r]}),i.invalidateQueries({queryKey:[ie.showData,r]}),i.invalidateQueries({queryKey:[ie.watchlist]})},onError:l=>Pe.error(l instanceof Error?l.message:"Failed to update watchlist")}),p=q(async()=>{!r||!A||await y({wasIn:!!d?.inWatchlist,showMeta:A})},[r,A,d?.inWatchlist,y]),O=q(async l=>{try{await me.settings.set.mutate({key:"preferredSource",value:l})}catch(M){console.error(M)}},[]),{mutateAsync:z,isPending:D}=kt({mutationFn:async({status:l})=>{if(!r)throw new Error("Missing showId");if(d?.inWatchlist)return await me.watchlist.setStatus.mutate({id:r,status:l}),l;const M=A,E=M?.name||M?.names?.romaji;if(!M||!E)throw new Error("Missing show name");return await me.watchlist.add.mutate({id:r,name:E,thumbnail:M.thumbnail,nativeName:M.names?.native,englishName:M.names?.english,type:M.type,isAdult:M.isAdult,status:l}),l},onSuccess:l=>{a({type:"SET_STATE",payload:{inWatchlist:!0,watchlistStatus:l}}),Pe.success(`Moved to ${l}`),i.invalidateQueries({queryKey:[ie.showData,r]}),i.invalidateQueries({queryKey:[ie.watchlist]}),i.invalidateQueries({queryKey:[ie.continueWatching]})},onError:()=>Pe.error("Failed to update watchlist status")}),B=q(async()=>{await z({status:"Completed"})},[z]),{mutateAsync:j,isPending:H}=kt({mutationFn:async({episodeNumber:l,duration:M,showMeta:E,episodes:C})=>{await me.progress.updateProgress.mutate({showId:r??"",episodeNumber:l,currentTime:M,duration:M,showName:E.name,showThumbnail:E.thumbnail,nativeName:E.names?.native,englishName:E.names?.english,genres:E.genres?.map(W=>W.name),popularityScore:lr(E.score)??void 0,type:E.type,status:E.status,episodeCount:C.length,isAdult:E.isAdult})},onSuccess:(l,M)=>{Pe.success(`Episode ${M.episodeNumber} marked as watched`),i.invalidateQueries({queryKey:[ie.playerData,r]}),i.invalidateQueries({queryKey:[ie.showMeta,r]}),i.invalidateQueries({queryKey:[ie.videoSources,r,M.episodeNumber]}),i.invalidateQueries({queryKey:[ie.continueWatching]}),i.invalidateQueries({queryKey:[ie.thisWeekSchedule]}),i.invalidateQueries(f.continueWatching.pathFilter())},onError:()=>Pe.error("Failed to mark episode as watched")}),fe=q(async(l,M)=>{!r||!A||await j({episodeNumber:l,duration:M,showMeta:A,episodes:d?.episodes||[]})},[r,A,d?.episodes,j]),$=q(async()=>{a({type:"SET_STATE",payload:{showCombinedDetails:!n.showCombinedDetails}})},[n.showCombinedDetails]),Q=Ce(()=>{const l=g||V,M=l?l.message:null,E=M==="AUTH_REQUIRED"?null:M,C=P&&P.fetchedEpisodeNumber===e?P:null,W=!!P&&!C,Y=s?C?.videoSources?.find(ne=>ne.sourceName===s.source&&ne.type!=="iframe"&&ne.links.some(X=>X.hls))??null:null,Ae=(n.selectedSource?.sourceName===Y?.sourceName?Y?.links.find(ne=>ne.hls&&ne.link===n.selectedLink?.link):null)??Y?.links.filter(ne=>ne.hls).slice().sort((ne,X)=>(parseInt(X.resolutionStr)||0)-(parseInt(ne.resolutionStr)||0))[0]??null;return{...n,currentEpisode:e,showMeta:{...n.showMeta||{},...A||{}},episodes:d?.episodes||[],watchedEpisodes:d?.watchedEpisodes||[],inWatchlist:!!d?.inWatchlist,watchlistStatus:d?.watchlistStatus??n.watchlistStatus??null,videoSources:C?.videoSources||[],selectedSource:s?Y:n.selectedSource||C?.selectedSource||null,selectedLink:s?Ae:n.selectedLink||C?.selectedLink||null,resumeTime:s?0:C?.resumeTime||0,resumeDuration:C?.resumeDuration||0,resumeProgressPending:F,showResumeModal:!s&&n.showResumeModal&&(C?.showResumeModal??!1),skipIntervals:C?.skipIntervals||[],loadingShowData:x,loadingVideo:_||W,error:E,fetchedEpisodeNumber:C?.fetchedEpisodeNumber}},[n,A,d,P,x,_,F,g,V,e,s]),ee=q((l,M)=>{const E=M||r;if(!E||!l||E===r&&l===e)return;const W=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(E)&&n.selectedProvider!=="animepahe"?"animepahe":n.selectedProvider,Y=["video-sources",E,l,W,n.currentMode];i.getQueryState(Y)?.status!=="success"&&i.prefetchQuery({queryKey:Y,queryFn:()=>Lt(E,l,{selectedProvider:W,currentMode:n.currentMode},a,!0),staleTime:300*1e3,gcTime:1800*1e3})},[r,e,i,n,a]);return{state:Q,dispatch:a,toggleWatchlist:p,moveToCompleted:B,setPreferredSource:O,handleToggleDetails:$,markEpisodeWatched:fe,prefetchEpisodeSources:ee,isMarkingWatched:H,isUpdatingWatchlistStatus:D}};function ts({onNext:r,onToggleTheater:o,flashControls:c}){U(()=>{const m=b=>{b.defaultPrevented||b.ctrlKey||b.metaKey||b.altKey||b.repeat||b.target.closest('input, textarea, button, select, a, [role="button"], [role="slider"], [contenteditable="true"]')||(["arrowup","arrowdown","arrowleft","arrowright"].includes(b.key.toLowerCase())&&c(),b.key.toLowerCase()==="n"&&r(),b.key.toLowerCase()==="t"&&o())};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[c,r,o])}const et=(r,o,c)=>r.showId===o||!!c&&r.showId===c;function rs({testClipActive:r,selectedSourceType:o,onEnded:c,queue:m,removeFromQueue:b,showId:a,showMetaId:s,currentEpisode:n,isAutoplayEnabled:i,nextEpisode:f,previousEpisode:S,navigate:h,invalidateContinueWatching:w,dispatch:T}){const[e,v]=ae(!1),[N,A]=ae(null),[x,g]=ae(null),d=R(b);d.current=b;const P=R(!1);U(()=>{P.current=!1,v(!1)},[a,n]);const _=q(()=>{if(r||P.current)return;P.current=!0,c();const D=m.find(B=>et(B,a,s)&&B.episodeNumber===n);if(m.length>0){const B=m.findIndex(H=>et(H,a,s)&&H.episodeNumber===n),j=B>=0?m[B+1]||null:m[0];g({nextItem:j,playedItem:D||null}),A(2);return}if(D&&d.current({showId:D.showId,episodeNumber:D.episodeNumber}),i&&f){w(),h(`/watch/${a}/${f}`);return}f||v(!0)},[c,h,m,a,s,n,f,i,w,r]),F=q(()=>{if(m.length===0)return;c();const D=m.find(H=>et(H,a,s)&&H.episodeNumber===n),B=m.findIndex(H=>et(H,a,s)&&H.episodeNumber===n),j=B>=0?m[B+1]||null:m[0];D&&b({showId:D.showId,episodeNumber:D.episodeNumber}),j?h(`/watch/${j.showId}/${j.episodeNumber}`):f||v(!0)},[c,h,m,b,a,s,n,f]),V=q(()=>{f&&(w(),h(`/watch/${a}/${f}`)),v(!1),T({type:"SET_STATE",payload:{showResumeModal:!1}})},[f,h,a,T,w]),y=q(()=>{m.length>0?F():f?V():Pe.error("No next episode available")},[m.length,F,V,f]),p=q(()=>v(!1),[]),O=q(()=>{g(null),A(null)},[]),z=q(()=>{S&&h(`/watch/${a}/${S}`)},[S,h,a]);return U(()=>{const D=B=>{B.origin===window.location.origin&&o==="iframe"&&B.data?.type==="ANI_WEB_MEDIA_ENDED"&&_()};return window.addEventListener("message",D),()=>window.removeEventListener("message",D)},[_,o]),U(()=>{if(!x||N===null)return;if(N<=0){const{nextItem:B,playedItem:j}=x;g(null),A(null),j&&d.current({showId:j.showId,episodeNumber:j.episodeNumber}),B?h(`/watch/${B.showId}/${B.episodeNumber}`):f||v(!0);return}const D=window.setTimeout(()=>{A(B=>B===null?null:B-1)},1e3);return()=>window.clearTimeout(D)},[x,N,h,f]),{showCompleteModal:e,queueCountdown:N,pendingQueueTransition:x,handleQueueTransition:F,handleNextEpisode:V,handleNShortcut:y,handlePreviousEpisode:z,handlePlaybackFinished:_,closeCompleteModal:p,cancelQueueTransition:O}}function ns({videoRef:r,queue:o,showId:c,showMetaId:m,currentEpisode:b,selectedSource:a,hasNextEpisode:s,nextEpisode:n,prefetchEpisodeSources:i,matchesQueueItem:f}){const[S,h]=ae(!1),w=R(i);w.current=i;const T=R("");U(()=>{h(!1)},[b]);const e=q(()=>{const v=r.current;if(!v||a?.type==="iframe")return;const N=v.duration,A=v.currentTime;if(!N||Number.isNaN(N)){h(!1);return}if(N-A<=60){const x=o.findIndex(P=>f(P,c,m)&&P.episodeNumber===b),g=o.length>0?x>=0?o[x+1]||null:o[0]:null,d=g?`${g.showId}:${g.episodeNumber}`:s?`${c}:${n}`:"";d&&T.current!==d&&(T.current=d,g?w.current(g.episodeNumber,g.showId):w.current(n??""))}h(s&&dt(A,N))},[r,a,o,c,m,b,s,n,f]);return{showNextEpisodePrompt:S,handleThresholds:e}}const Et="fallbackChoice";function ss(){try{const r=J.getItem(Et);return r==="iframe"||r==="retry"?r:null}catch{return null}}function os(r){try{r===null?J.removeItem(Et):J.setItem(Et,r)}catch{}}function is({showId:r,episodeNumber:o,currentMode:c,selectedProvider:m,selectedSourceType:b,videoSources:a,isAdult:s,providerOrder:n,matureProviders:i,setPreferredSource:f,dispatch:S,showControls:h}){const w=R(!1),T=R([]),e=R(!1),[v,N]=ae(null),[A,x]=ae(!1),[g,d]=ae(!1),[P,_]=ae(()=>ss()??"ask"),F=q($=>{_($),os($==="ask"?null:$)},[]),V=R(P);U(()=>{V.current=P},[P]);const y=R(a);y.current=a;const p=q(()=>{w.current=!1,T.current=[],e.current=!1,N(null),x(!1)},[]);U(()=>{p()},[p,r,o]);const O=q($=>{if(w.current)return;w.current=!0;const Q=$.links[0];f($.sourceName),S({type:"SET_STATE",payload:{selectedSource:$,selectedLink:Q}}),N(null)},[S,f]),z=q(()=>{const Q=y.current.find(ee=>ee.type==="iframe");return Q?.links?.length?Q:null},[]),D=q(async()=>{const $=n.filter(Q=>{if(T.current.includes(Q))return!1;const ee=i.has(Q);return s===void 0?!0:ee===s});x(!0);try{for(const Q of $){T.current.push(Q);let ee=null;try{ee=await me.data.video.query({showId:r,episodeNumber:o,mode:c,provider:Q})}catch{continue}const l=(ee??[]).filter(C=>{const W=C.sourceName.toLowerCase();return c==="dub"?W.includes("eng")||W.includes("dub"):W.includes("jpn")||W.includes("sub")||!W.includes("eng")&&!W.includes("dub")});if((l.length>0?l:ee??[]).find(C=>C.type!=="iframe"&&C.links?.length)){T.current=[m],e.current=!1,S({type:"SET_STATE",payload:{selectedProvider:Q,videoSources:[],selectedSource:null,selectedLink:null,loadingVideo:!0}}),Wt(Q,s===!0),N(null),Pe.success(`Switched to ${Q} (direct stream)`);return}}N({retryFailed:!0}),Pe.error("No working direct stream found on other providers")}finally{x(!1)}},[r,o,c,s,m,S,n,i]),B=q(()=>{if(w.current||e.current||b!=="player")return;const $=z();if(!$)return;T.current.includes(m)||T.current.push(m);const Q=V.current;if(Q==="iframe"){O($);return}if(Q==="retry"){D();return}h(!0),N({retryFailed:!1})},[b,m,z,O,D,h]),j=q(()=>{e.current=!0,N(null),d(!1)},[]),H=q(()=>{g&&F("iframe");const $=z();$?O($):N(null)},[g,F,z,O]),fe=q(()=>{g&&F("retry"),D()},[g,F,D]);return{fallbackPrompt:v,isRetryingProvider:A,rememberFallbackChoice:g,setRememberFallbackChoice:d,fallbackChoice:P,updateFallbackChoice:F,dismissFallbackPrompt:j,chooseIframeFallback:H,chooseProviderRetry:fe,handleVideoSourceError:B,resetFallback:p}}function as({engine:r,videoRef:o,selectedSource:c,selectedLink:m,loadingVideo:b,testClipActive:a,resumeTime:s,resumeDuration:n=0,showResumeModal:i,calibReturnRef:f,setAvailableSubtitles:S,setActiveSubtitleTrack:h,onFatalError:w}){const T=R(null),e=R(s),v=R(n),N=R(i),A=R(w);return A.current=w,U(()=>{e.current=s,v.current=n,N.current=i},[s,n,i]),U(()=>{const x=o.current;if(!x)return;for(;x.firstChild;)x.removeChild(x.firstChild);if(a)return r.loadSource({url:"/av-sync-test.mp4"},{autoPlay:!0});if(b||!c||!m||c.type==="iframe"){r.unload();return}f.current!=null?(T.current=f.current,f.current=null):T.current===null&&e.current>5&&!N.current&&!dt(e.current,v.current)?T.current=e.current:T.current===null&&N.current&&(T.current=0);let g=m.link;if(g.startsWith("/api/proxy")||(g=`/api/proxy?url=${encodeURIComponent(g)}`,m.headers?.Referer&&(g+=`&referer=${encodeURIComponent(m.headers.Referer)}`)),c.subtitles){const _=J.getItem("playerSubtitlesEnabled")!=="false";let F=null;try{F=J.getItem("playerLastSubtitle")}catch{}const V=wt(c.subtitles,{lastKey:F,enabled:_}),y=V>=0?c.subtitles[V]:null;c.subtitles.forEach(p=>{const O=document.createElement("track");O.kind="subtitles",O.label=p.label,O.srclang=p.lang;const z=p.src??p.url;if(z){let D=`/api/subtitle-proxy?url=${encodeURIComponent(z)}`;const B=m.headers?.Referer;B&&(D+=`&referer=${encodeURIComponent(B)}`),O.src=D}y&&p.label===y.label&&p.lang===y.lang&&(O.default=!0),x.appendChild(O)}),_||h("off"),S(c.subtitles)}const d=T.current??0;T.current=null;const P=document.body.classList.contains("low-end");return r.loadSource({url:g,hls:m.hls},{initialTime:d,autoPlay:!(N.current&&e.current>5)&&!dt(e.current,v.current),hlsConfig:{maxBufferLength:P?15:30,maxMaxBufferLength:P?30:60,maxBufferSize:(P?25:60)*1e3*1e3,startLevel:-1},onHls:(_,F)=>{if(!c.subtitles?.length)return;const V=()=>{_.subtitleTrack!==-1&&(_.subtitleTrack=-1)};_.on(F.Events.SUBTITLE_TRACK_SWITCH,V),V()},onError:()=>A.current()})},[r,c,m,o,f,b,a,h,S]),{seekToTimeRef:T}}function ls({videoRef:r,availableSubtitles:o,activeSubtitleTrack:c,setAvailableSubtitles:m,setActiveSubtitleTrack:b}){U(()=>{const a=r.current;if(!a)return;const s=()=>{const n=Array.from(a.textTracks).map(i=>({label:i.label,lang:i.language,src:void 0,mode:i.mode}));m(n)};return a.textTracks.addEventListener("addtrack",s),a.textTracks.addEventListener("removetrack",s),s(),()=>{a.textTracks.removeEventListener("addtrack",s),a.textTracks.removeEventListener("removetrack",s)}},[r,m]),U(()=>{if(c===null&&o.length>0&&J.getItem("playerSubtitlesEnabled")!=="false"){let a=null;try{a=J.getItem("playerLastSubtitle")}catch{}const s=wt(o,{lastKey:a,enabled:!0});if(s<0){b("off");return}const n=o[s];b(n.lang||n.label)}},[c,o,b]),U(()=>{const a=r.current;if(!a||o.length===0)return;const s=c;if(!(J.getItem("playerSubtitlesEnabled")!=="false")||s==="off"||s===null){Array.from(a.textTracks).forEach(f=>{f.mode="hidden"});return}let i=!1;if(Array.from(a.textTracks).forEach(f=>{const h=(f.language===s||f.label===s)&&!i;f.mode=h?"showing":"hidden",h&&(i=!0)}),!i&&a.textTracks.length>0){const f=Array.from(a.textTracks).find(S=>S.language==="en"||S.label==="English")||a.textTracks[0];f&&(f.mode="showing")}},[c,o,r])}function cs({videoRef:r,videoBoxH:o,style:c,sourceKey:m,activeSubtitleTrack:b,availableSubtitles:a}){U(()=>{const s="dynamic-subtitle-styles";let n=document.getElementById(s);n||(n=document.createElement("style"),n.id=s,document.head.appendChild(n)),n.textContent=xt(c);const i=r.current;if(!i)return;const f=$t(c.fontSize,o||i.clientHeight||720);n.textContent=xt({...c,fontSize:f});const S=()=>{const d=Number(c.position),P=isNaN(d)?0:Math.max(0,Math.min(100,d));return Math.max(0,Math.min(100,100-P))},h=(d,P)=>{try{const _=d;_.snapToLines=!1,_.line=P}catch{}},w=()=>{const d=f*16,P=i.videoHeight||i.clientHeight||720,_=i.videoWidth||i.clientWidth||1280;return{step:d*1.3/P*100,chars:Math.max(20,Math.floor(_/(d*.55)))}},T=d=>{const P=S(),_=Array.from(d.activeCues??[]);if(_.length<=1){_.forEach(p=>h(p,P));return}const{step:F,chars:V}=w();let y=P;for(let p=_.length-1;p>=0;p--){const z=String(_[p].text??"").replace(/<[^>]*>/g,"").split(`
|
|
55
|
-
`).reduce((B,j)=>B+Math.max(1,Math.ceil(j.length/V)),0),D=y-z*F;h(_[p],Math.max(0,D)),y=D-F*.4}},e=d=>{if(!d.cues)return;const P=S();Array.from(d.cues).forEach(_=>h(_,P)),d.mode==="showing"&&T(d)},v=()=>{Array.from(i.textTracks).forEach(e)};v();const N=d=>{const P=d.target;P.mode==="showing"&&T(P)};Array.from(i.textTracks).forEach(d=>{d.addEventListener("cuechange",N)});const A=()=>{Array.from(i.textTracks).forEach(d=>{d.removeEventListener("cuechange",N),d.addEventListener("cuechange",N)}),v()};i.textTracks.addEventListener("addtrack",A),i.textTracks.addEventListener("removetrack",A);const x=Array.from(i.querySelectorAll("track")),g=()=>{v()};return x.forEach(d=>{d.addEventListener("load",g)}),()=>{Array.from(i.textTracks).forEach(d=>{d.removeEventListener("cuechange",N)}),i.textTracks.removeEventListener("addtrack",A),i.textTracks.removeEventListener("removetrack",A),x.forEach(d=>{d.removeEventListener("load",g)})}},[c,o,r,m,b,a])}function us({videoRef:r,overlayRef:o,style:c,activeSubtitleTrack:m,delayMs:b,enabled:a}){U(()=>{if(!a)return;const s=r.current,n=o.current;if(!s||!n)return;const i=J.getItem("playerSubtitlesEnabled")!=="false",f=()=>{if(n.innerHTML="",!i||m==="off"||m===null)return;const w=Array.from(s.textTracks).find(g=>g.language===m||g.label===m);if(!w||w.mode!=="showing")return;const T=b/1e3;let e;if(T>0&&w.cues){const g=s.currentTime-T;e=Array.from(w.cues).filter(d=>d.startTime<=g&&g<=d.endTime)}else e=Array.from(w.activeCues??[]);if(e.length===0)return;const v={...c,fontSize:$t(c.fontSize,s.clientHeight||0)},N=Pr(v),A=Ar(s,v.position),x=Array.from(e);x.forEach((g,d)=>{const P=String(g.text??"");if(!_r(P).trim())return;const _=document.createElement("div"),F=(x.length-1-d)*1.7;_.style.cssText=`${N}
|
|
56
|
-
bottom: calc(${A}px + ${F}em);`,_.innerHTML=xr(P),n.appendChild(_)})},S=()=>f(),h=()=>f();return Array.from(s.textTracks).forEach(w=>{w.addEventListener("cuechange",S)}),s.addEventListener("timeupdate",h),f(),()=>{Array.from(s.textTracks).forEach(w=>{w.removeEventListener("cuechange",S)}),s.removeEventListener("timeupdate",h),n.innerHTML=""}},[m,b,a,o,c,r])}const ds=({isOpen:r,onClose:o,onSuccess:c})=>{const m=()=>{c?.(),o()};return t(ut,{isOpen:r,onClose:o,title:"MKissa Browser Verification",children:t("div",{className:Ge.container,children:[t("p",{children:"Open MKissa in this browser, play an anime episode, and complete any Cloudflare verification it shows. Once playback works there, return to Dango and click Refresh."}),t("div",{className:Ge.actions,children:t("a",{className:Ge.link,href:"https://mkissa.to/anime",target:"_blank",rel:"noreferrer",children:"Open MKissa anime"})}),t("div",{className:Ge.actions,children:[t("button",{className:Ge.secondaryButton,onClick:o,children:"Cancel"}),t("button",{className:Ge.button,onClick:m,children:"Refresh Dango"})]})]})})},Ps=()=>{const{id:r,episodeNumber:o}=nr(),c=sr(),m=Dt(),b=or(),a=cr(),s=!!a.session,n=s&&!a.session?.host,{hasConsent:i,grant:f}=ur(),{options:S}=It(),h=Ce(()=>S.filter(u=>(u.kind??"anime")==="anime"),[S]),w=Ce(()=>h.map(u=>u.id),[h]),T=Ce(()=>new Set(h.filter(u=>u.mature).map(u=>u.id)),[h]),{state:e,dispatch:v,toggleWatchlist:N,moveToCompleted:A,setPreferredSource:x,handleToggleDetails:g,markEpisodeWatched:d,prefetchEpisodeSources:P,isMarkingWatched:_,isUpdatingWatchlistStatus:F}=es(r,o,b.state||null,{hasMatureConsent:i,watchSelection:n?a.room?.selection:null});U(()=>{if(r&&e.showMeta?.id&&e.showMeta.id!==r){const u=o?`/watch/${e.showMeta.id}/${o}${window.location.search}`:`/watch/${e.showMeta.id}${window.location.search}`;c(u,{replace:!0})}},[r,e.showMeta?.id,o,c]);const V=Ce(()=>{if(e.showMeta.name)return{name:e.showMeta.name,thumbnail:e.showMeta.thumbnail,names:e.showMeta.names,genres:e.showMeta.genres,score:e.showMeta.score,isAdult:e.showMeta.isAdult}},[e.showMeta.name,e.showMeta.thumbnail,e.showMeta.names,e.showMeta.genres,e.showMeta.score,e.showMeta.isAdult]),y=Lr({skipIntervals:e.skipIntervals,showId:r,episodeNumber:e.currentEpisode?.toString(),episodeCount:e.episodes.length||void 0,sourceType:e.selectedSource?.type,showMeta:V}),{refs:p,actions:O}=y,z=Ce(()=>!r||r.startsWith("dango-mt-")||!e.currentEpisode||e.selectedSource?.type==="iframe"||!e.selectedLink?.hls||!e.selectedSource?null:{showId:r,episode:e.currentEpisode,provider:e.selectedProvider,mode:e.currentMode,source:e.selectedSource.sourceName,title:e.showMeta.name||r},[r,e.currentEpisode,e.selectedProvider,e.currentMode,e.selectedSource,e.selectedLink,e.showMeta.name]),D=Br(y.engine,z,e.loadingVideo||e.loadingShowData),B=Jr(),j=R(null),H=R(null),fe=R(null),[$,Q]=ae(()=>{try{const u=J.getItem("anime4kProfile");return["low","balanced","high","denoise"].includes(u)?u:"balanced"}catch{return"balanced"}}),{videoDelayMs:ee,videoDelayEnabled:l,setDelayEnabled:M,handleVideoDelayChange:E,isCalibrating:C,testClipActive:W,stopCalibration:Y,openAvSyncCalibrator:Me,cancelAvSyncCalibrator:Ae,applyAvSyncCalibrator:ne,toggleTestClip:X,calibReturnRef:_e,effectiveVideoDelayMs:De}=Dr(p.videoRef,()=>O.setShowSettings(!1)),se=R(null),K=zn({videoRef:p.videoRef,canvasRef:H,profile:$,delayMs:De}),he=K.isEnabled&&K.isWebGPUSupported;jn({videoRef:p.videoRef,episodeKey:`${r??""}:${e.currentEpisode??""}`,isEnabled:K.isEnabled,isSupported:K.isWebGPUSupported,mediaReady:!e.loadingVideo&&!!e.selectedLink,isIframeSource:e.selectedSource?.type==="iframe",setEnabled:K.setEnabled}),$r({videoRef:p.videoRef,canvasRef:se,delayMs:De,enabled:l&&!he});const le=l&&!he,xe=he||le,[ze,je]=ae(!1),Oe=R(o);U(()=>{Oe.current!==o&&(Oe.current=o,Y())},[o,Y]);const mt=q(()=>{m.invalidateQueries({queryKey:[ie.continueWatching]})},[m]),{data:Re=[],isLoading:de}=dr(),tt=mr(),ft=fr(),ht=hr(),{isTheaterMode:be,toggleTheaterMode:He,handleLayoutClick:I}=Ir();ir(()=>{if(y.state.isFullscreen||be)return;const u=p.playerContainerRef.current,Z=j.current;if(!u||!Z)return;const Ie=()=>{const St=u.getBoundingClientRect().height;Z.style.height=`${St}px`};Ie();const Be=new ResizeObserver(Ie);return Be.observe(u),()=>Be.disconnect()},[y.state.isFullscreen,be,p.playerContainerRef]);const pe=Ce(()=>e.episodes.findIndex(u=>u===e.currentEpisode),[e.episodes,e.currentEpisode]),Ye=pe>0?e.episodes[pe-1]:null,ve=pe>=0&&pe<e.episodes.length-1?e.episodes[pe+1]:null,pt=pe>-1&&pe<e.episodes.length-1,{showCompleteModal:We,queueCountdown:$e,pendingQueueTransition:Ue,handleQueueTransition:rt,handleNextEpisode:Ve,handleNShortcut:nt,handlePreviousEpisode:Xe,handlePlaybackFinished:st,closeCompleteModal:Qe,cancelQueueTransition:vt}=rs({testClipActive:W,selectedSourceType:e.selectedSource?.type,onEnded:O.onEnded,queue:Re,removeFromQueue:tt.mutate,showId:r,showMetaId:e.showMeta?.id,currentEpisode:e.currentEpisode,isAutoplayEnabled:!n&&e.isAutoplayEnabled,nextEpisode:ve,previousEpisode:Ye,navigate:c,invalidateContinueWatching:mt,dispatch:v}),{showNextEpisodePrompt:gt,handleThresholds:G}=ns({videoRef:p.videoRef,queue:Re,showId:r,showMetaId:e.showMeta?.id,currentEpisode:e.currentEpisode,selectedSource:e.selectedSource,hasNextEpisode:pt,nextEpisode:ve,prefetchEpisodeSources:P,matchesQueueItem:et}),{checkEnd:te,logDuration:Se}=Fr({videoRef:p.videoRef,sourceType:e.selectedSource?.type,resetKey:`${r}:${e.currentEpisode}`,onEnd:n?O.onEnded:st}),ce=!s&&e.showResumeModal&&!e.resumeProgressPending,ue=We,re=ce||ue;Or(y,!!e.selectedLink&&!be&&!re);const{fallbackPrompt:ke,isRetryingProvider:Ke,rememberFallbackChoice:qe,setRememberFallbackChoice:Ee,fallbackChoice:oe,updateFallbackChoice:yt,dismissFallbackPrompt:Je,chooseIframeFallback:ge,chooseProviderRetry:ot,handleVideoSourceError:Tt,resetFallback:Ct}=is({showId:r,episodeNumber:e.currentEpisode??void 0,currentMode:e.currentMode,selectedProvider:e.selectedProvider,selectedSourceType:e.selectedSource?.type,videoSources:e.videoSources,isAdult:e.showMeta?.isAdult,providerOrder:w,matureProviders:T,setPreferredSource:x,showControls:O.setShowControls,dispatch:v}),{seekToTimeRef:Mt}=as({engine:y.engine,videoRef:p.videoRef,selectedSource:e.selectedSource,selectedLink:e.selectedLink,loadingVideo:e.loadingVideo,testClipActive:!s&&W,resumeTime:s?0:e.resumeTime,resumeDuration:e.resumeDuration,showResumeModal:!s&&e.showResumeModal,calibReturnRef:_e,setAvailableSubtitles:O.setAvailableSubtitles,setActiveSubtitleTrack:O.setActiveSubtitleTrack,onFatalError:s?()=>{}:Tt});U(()=>{re&&y.state.isFullscreen&&y.actions.toggleFullscreen()},[re,y.state.isFullscreen,y.actions]),U(()=>{re&&p.videoRef.current&&p.videoRef.current.pause()},[re,p.videoRef]);const{titlePreference:it}=pr(),{lowEndMode:Rt}=vr(),{settings:bt,update:Ut}=Wr(),Vt=be&&bt.enabled&&!Rt&&e.selectedSource?.type!=="iframe"&&!!e.selectedLink,Le=Ce(()=>{if(!e.showMeta||e.loadingShowData)return"Loading...";const{name:u,names:Z}=e.showMeta;return it==="name"?u||"Loading...":it==="nativeName"?Z?.native||u||"Loading...":it==="englishName"?Z?.english||u||"Loading...":u||"Loading..."},[e.showMeta,it,e.loadingShowData]);U(()=>{Le&&Le!=="Loading..."&&e.currentEpisode&&(document.title=`► ${Le} Episode ${e.currentEpisode} - dango`)},[Le,e.currentEpisode]),ts({onNext:n?()=>{}:nt,onToggleTheater:He,flashControls:y.actions.flashControls});const{setAvailableSubtitles:Qt,setActiveSubtitleTrack:Kt}=O,Nt=Ce(()=>({fontSize:y.state.subtitleFontSize,position:y.state.subtitlePosition,bgOpacity:y.state.subtitleBgOpacity,bgColor:y.state.subtitleBgColor,textColor:y.state.subtitleTextColor,edge:y.state.subtitleEdge,bold:y.state.subtitleBold}),[y.state.subtitleFontSize,y.state.subtitlePosition,y.state.subtitleBgOpacity,y.state.subtitleBgColor,y.state.subtitleTextColor,y.state.subtitleEdge,y.state.subtitleBold]);ls({videoRef:p.videoRef,availableSubtitles:y.state.availableSubtitles,activeSubtitleTrack:y.state.activeSubtitleTrack,setAvailableSubtitles:Qt,setActiveSubtitleTrack:Kt});const[qt,Gt]=ae(0);U(()=>{const u=p.videoRef.current;if(!u)return;const Z=()=>Gt(u.clientHeight||0);Z();const Ie=new ResizeObserver(Z);return Ie.observe(u),()=>Ie.disconnect()},[p.videoRef,e.selectedSource,e.selectedLink]),cs({videoRef:p.videoRef,videoBoxH:qt,style:Nt,sourceKey:`${e.selectedSource?.sourceName??""}:${e.selectedLink?.link??""}`,activeSubtitleTrack:y.state.activeSubtitleTrack,availableSubtitles:y.state.availableSubtitles}),us({videoRef:p.videoRef,overlayRef:fe,style:Nt,activeSubtitleTrack:y.state.activeSubtitleTrack,delayMs:De,enabled:xe}),U(()=>{try{J.setItem("anime4kProfile",$)}catch{}},[$]);const zt=()=>{p.videoRef.current&&(p.videoRef.current.currentTime=e.resumeTime,p.videoRef.current.play()),v({type:"SET_STATE",payload:{showResumeModal:!1}})},jt=()=>{p.videoRef.current&&(p.videoRef.current.currentTime=0,p.videoRef.current.play()),v({type:"SET_STATE",payload:{showResumeModal:!1}})},Ht=q(()=>{v({type:"SET_STATE",payload:{showResumeModal:!1}})},[v]),Yt=q(async()=>{try{await A(),Qe(),v({type:"SET_STATE",payload:{showResumeModal:!1}}),c("/")}catch{}},[A,Qe,v,c]),Pt=(u,Z)=>t("div",{className:u,children:[t("button",{className:`${k.episodeNavBtn} ${k.secondary}`,onClick:Xe,disabled:n||!Ye,type:"button",children:[t(ye,{name:"chevron-left",size:12}),"Prev EP"]}),t("button",{className:`${k.episodeNavBtn} ${k.primary}`,onClick:Ve,disabled:n||!ve,type:"button",children:["Next EP",t(ye,{name:"chevron-right",size:12})]}),Z==="mobile"&&B&&t("button",{className:`${k.episodeNavBtn} ${k.episodePickerBtn}`,onClick:()=>je(!0),type:"button",children:[t(ye,{name:"list-ul",size:12}),"Episodes"]})]}),Xt=u=>{v({type:"SET_STATE",payload:{isAutoplayEnabled:u}}),Yr(u)},At=!!(e.currentEpisode&&e.watchedEpisodes.includes(e.currentEpisode)),Jt=e.selectedProvider!=="megaplay"||e.selectedSource?.type==="iframe",Zt=q(async()=>{if(!r||!e.currentEpisode||!e.showMeta.name||_)return;const u=p.videoRef.current?.duration,Z=Math.max(u||0,e.resumeDuration||0,Number(e.showMeta.episodeDuration||0)*60,1);await d(e.currentEpisode,Z)},[r,e.currentEpisode,e.showMeta,e.resumeDuration,d,_,p.videoRef]);if(e.error&&!e.showMeta.name&&e.videoSources.length===0&&e.episodes.length===0)return t("p",{className:"error-message",children:["Error: ",e.error]});const we=e.loadingShowData||e.loadingVideo;return e.showMeta?.isAdult===!0&&!i?t("div",{className:Te.playerPageLayout,children:t(Xr,{isOpen:!0,onClose:()=>c("/home"),onGrant:f})}):t("div",{className:`${Te.playerPageLayout} ${be?Te.theaterMode:""}`,onClick:I,children:[be&&t(Ur,{videoRef:p.videoRef,active:Vt,settings:bt}),t(Vr,{isOpen:ue,onClose:Qe,title:"Show Completed!",heading:Le,message:"Congratulations! You finished all available episodes.",children:[t(lt,{variant:"secondary",onClick:Qe,children:"Close"}),t(lt,{onClick:Yt,disabled:F,children:F?"Saving...":"Move to Completed"})]}),t(Qr,{isOpen:ce,onClose:Ht,title:"Resume Playback?",message:t(at,{children:["You were watching at ",t("strong",{children:y.actions.formatTime(e.resumeTime)}),". Would you like to continue?"]}),onResume:zt,onRestart:jt}),t(ut,{isOpen:!!ke,onClose:Je,title:"Direct stream failed",width:"sm",children:[t(ut.Body,{children:[t("p",{children:[t("strong",{children:e.selectedProvider}),"'s direct stream failed for this episode."]}),ke?.retryFailed&&t("p",{children:"No working direct stream was found on the other providers either."}),t("p",{children:["You can continue with the embedded (iframe) player, but embedded players may show"," ",t("strong",{children:"ads and pop-ups"}),"."]}),t("label",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:"0.75rem",cursor:"pointer"},children:[t("input",{type:"checkbox",checked:qe,onChange:u=>Ee(u.currentTarget.checked)}),"Remember my choice"]})]}),t(ut.Actions,{children:[t(lt,{variant:"secondary",onClick:ge,children:"Continue with iframe"}),t(lt,{onClick:ot,disabled:Ke,children:Ke?"Searching…":"Try another provider"})]})]}),t(gr,{isOpen:!!e.showCookieModal&&e.cookieProvider!=="mkissa",onClose:()=>v({type:"SET_STATE",payload:{showCookieModal:!1}}),onSuccess:()=>{m.invalidateQueries({queryKey:[ie.videoSources,r,e.currentEpisode,e.selectedProvider,e.currentMode]})}}),t(ds,{isOpen:!!e.showCookieModal&&e.cookieProvider==="mkissa",onClose:()=>v({type:"SET_STATE",payload:{showCookieModal:!1}}),onSuccess:()=>{m.invalidateQueries({queryKey:[ie.videoSources,r,e.currentEpisode,e.selectedProvider,e.currentMode]})}}),!be&&t("aside",{ref:j,className:Te.episodeSidebar,children:e.loadingShowData?t(Kr,{variant:"sidebar"}):t(qr,{episodes:e.episodes,currentEpisode:e.currentEpisode??void 0,watchedEpisodes:e.watchedEpisodes,onEpisodeClick:u=>{n||c(`/watch/${r}/${u}`)}})}),t("div",{className:Te.playerMain,children:[t("div",{className:`${k.videoContainer} ${y.state.isFullscreen?"":Te.videoPlayerWrapper} ${y.state.isFullscreen?k.fullscreenActive:""}`,style:{...re?{visibility:"hidden"}:{}},onContextMenu:u=>u.preventDefault(),children:t(Bn,{player:y,isAutoplayEnabled:e.isAutoplayEnabled,onAutoplayChange:Xt,fallbackChoice:oe,onFallbackChoiceChange:yt,ambientSettings:bt,onAmbientChange:Ut,showNextEpisodeButton:!n&&!re&>&&Re.length===0,onNextEpisode:Ve,videoSources:n?[]:s?e.videoSources.filter(u=>u.type!=="iframe"&&u.links.some(Z=>Z.hls)):e.videoSources,selectedSource:e.selectedSource,selectedLink:e.selectedLink,onSourceChange:(u,Z)=>{n&&u.sourceName!==a.room?.selection.source||s&&(u.type==="iframe"||!Z.hls)||(p.videoRef.current&&!isNaN(p.videoRef.current.currentTime)&&(Mt.current=p.videoRef.current.currentTime),x(u.sourceName),v({type:"SET_STATE",payload:{selectedSource:u,selectedLink:Z,showResumeModal:e.showResumeModal&&u.type!=="iframe"}}))},loadingVideo:we,skipIntervals:e.skipIntervals,animeTitle:Le,episodeNumber:e.currentEpisode??void 0,mode:e.currentMode,isTheaterMode:be,onTheaterModeToggle:He,anime4kEnabled:K.isEnabled,onAnime4kToggle:K.toggle,anime4kSupported:K.isWebGPUSupported,anime4kProfile:$,onAnime4kProfileChange:Q,anime4kInitializing:K.isInitializing,anime4kError:K.error,videoDelayEnabled:l,onVideoDelayToggle:M,videoDelayMs:ee,onVideoDelayChange:E,onCalibrateAvSync:s?()=>{}:Me,isInteractingExtra:ze||C,className:wr.shellFill,hideChrome:e.selectedSource?.type==="iframe",overlays:t(at,{children:[y.state.isSpeedBoostActive&&t("div",{className:k.speedBoostBadge,"aria-hidden":"true",children:[t("span",{children:"2x"}),t(ye,{name:"forward",size:12})]}),$e!==null&&Ue?.nextItem&&t("div",{className:k.queueCountdown,children:["Queue next in ",$e,"s"]})]}),children:[we&&t("div",{className:k.loadingOverlay,children:t("div",{className:k.loadingDots,children:[t("div",{className:k.dot}),t("div",{className:k.dot}),t("div",{className:k.dot})]})}),y.state.isBuffering&&!we&&e.selectedSource?.type!=="iframe"&&t("div",{className:k.bufferingOverlay,children:t("div",{className:k.bufferingSpinner})}),e.selectedSource?.type==="iframe"&&!s?!we&&t("iframe",{src:e.selectedLink?.link,className:k.videoIframe,allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0,sandbox:e.selectedSource.sandbox?`${e.selectedSource.sandbox} allow-fullscreen allow-popups allow-popups-to-escape-sandbox`:void 0}):t(at,{children:[!we&&e.videoSources.length===0&&t("div",{className:k.errorOverlay,children:[t("p",{children:["No sources found for this episode with ",e.selectedProvider,"."]}),t("p",{className:k.errorSubtext,children:"Please try selecting a different provider below."}),t("button",{className:k.retryButton,onClick:()=>window.location.reload(),"data-speed-boost-ignore":"true",style:{marginTop:8},children:"Retry"})]}),!we&&e.videoSources.length>0&&t(Tr,{controls:!y.state.playbackLocked&&y.state.useNativeControls,playsInline:!0,"webkit-playsinline":"true",disablePictureInPicture:!0,disableRemotePlayback:!0,onPlay:O.onPlay,onPause:O.onPause,onEnded:()=>{W||te(!0)},onDurationChange:()=>{Se()},onSeeked:()=>{W||(G(),te())},onLoadedMetadata:()=>{G(),Se(),W||te()},onTimeUpdate:()=>{W||(O.onTimeUpdate(),G(),te(),Ue&&p.videoRef.current&&p.videoRef.current.currentTime<p.videoRef.current.duration-1&&vt())},onError:s?void 0:Tt,onContextMenu:u=>u.preventDefault(),className:xe?k.videoElementHidden:""}),K.isWebGPUSupported&&!we&&e.videoSources.length>0&&t("canvas",{ref:H,className:`${k.upscalerCanvas} ${he?k.upscalerActive:""}`}),!he&&!we&&e.videoSources.length>0&&t("canvas",{ref:se,className:`${k.upscalerCanvas} ${le?k.upscalerActive:""}`}),K.isEnabled&&K.isWebGPUSupported&&K.isInitializing&&t("div",{className:k.upscalerStatusBadge,children:"Preparing upscaler…"}),xe&&t("div",{ref:fe,className:k.subtitleOverlay}),t(Gr,{isOpen:C,ms:ee,onChange:E,onApply:ne,onClose:Ae,testClipActive:W,onTestClip:X})]})]})}),t(sn,{playback:z&&!we?{selection:z,position:p.videoRef.current?.currentTime||0,playing:!1,rate:y.engine.getState().playbackRate}:null,onCreate:()=>{Y(),y.engine.pause()},needsPlayback:D.needsPlayback,onEnablePlayback:D.enablePlayback}),s&&!we&&!z&&t("p",{role:"alert",children:"This room requires the host's direct HLS source. It is unavailable here. Retry the episode or leave the room to use another source."}),!be&&t(zr,{}),!be&&t(at,{children:[de&&Re.length===0?t(Dn,{count:3}):t(Zr,{title:"Queue",items:Re,currentShowId:r,currentEpisode:e.currentEpisode??void 0,onNextQueue:n?()=>{}:rt,onRemove:u=>tt.mutate({showId:u.showId,episodeNumber:u.episodeNumber}),onClear:()=>ft.mutate(),showClearAll:!0,onReorder:u=>ht.mutate(u.map(Z=>({id:Z.id,showId:Z.showId,episodeNumber:Z.episodeNumber})))}),t("div",{className:k.streamPanel,children:[!n&&t(On,{selectedProvider:e.selectedProvider,isAdult:e.showMeta?.isAdult,options:h,onProviderChange:u=>{Ct(),v({type:"SET_STATE",payload:{selectedProvider:u,videoSources:[],selectedSource:null,selectedLink:null,loadingVideo:!0}}),Wt(u,e.showMeta?.isAdult===!0)}}),Pt(`${k.episodeActions} ${k.desktopEpisodeActions}`,"desktop"),we?t("div",{className:k.sourceLoader,children:t("div",{className:k.spinner})}):n?t("p",{children:["Provider: ",e.selectedProvider," · Source: ",a.room?.selection.source," ·"," ",e.currentMode]}):t(Un,{videoSources:s?e.videoSources.filter(u=>u.type!=="iframe"&&u.links.some(Z=>Z.hls)):e.videoSources,selectedSource:e.selectedSource,selectedLink:e.selectedLink,onSourceChange:u=>{if(s&&(u.type==="iframe"||!u.links.some(Be=>Be.hls)))return;p.videoRef.current&&!isNaN(p.videoRef.current.currentTime)&&(Mt.current=p.videoRef.current.currentTime);const Ie=(s?u.links.filter(Be=>Be.hls):u.links||[]).sort((Be,St)=>(parseInt(St.resolutionStr)||0)-(parseInt(Be.resolutionStr)||0))[0]||null;x(u.sourceName),v({type:"SET_STATE",payload:{selectedSource:u,selectedLink:Ie,showResumeModal:e.showResumeModal&&u.type!=="iframe"}})},onLinkChange:u=>{e.selectedSource&&(x(e.selectedSource.sourceName),v({type:"SET_STATE",payload:{selectedLink:u}}))}})]}),t("div",{className:Te.playerInfoContainer,children:[t("div",{className:Te.playerInfoHeader,children:[t("div",{className:Te.playerAnimeCard,children:t("img",{src:yr(e.showMeta.thumbnail||""),alt:Le,loading:"lazy",decoding:"async",onError:u=>{u.target.src="/placeholder.svg"}})}),t("div",{className:Te.videoTitleSection,children:[t("div",{className:k.titleContainer,children:[t("h1",{children:Le}),t("div",{className:k.scheduleInfo,children:[e.showMeta.status&&t("span",{className:k.status,children:e.showMeta.status}),e.showMeta.nextEpisodeAirDate&&t("span",{className:k.nextEpisode,children:["Next episode: ",e.showMeta.nextEpisodeAirDate]})]})]}),t("div",{className:k.controls,children:[t("button",{className:`${k.watchlistBtn} ${e.inWatchlist?k.inList:""}`,onClick:N,children:[e.inWatchlist?t(ye,{name:"check",size:14}):t(ye,{name:"plus",size:14}),e.inWatchlist?"In Watchlist":"Add to Watchlist"]}),t(tn,{showId:r,showName:e.showMeta.name||e.showMeta.names?.romaji,showThumbnail:e.showMeta.thumbnail,nativeName:e.showMeta.names?.native,englishName:e.showMeta.names?.english,showType:e.showMeta.type,className:`${k.watchlistBtn} ${k.queueBtn}`,activeClassName:k.queueActive}),Jt&&t("button",{className:`${k.watchlistBtn} ${k.markWatchedBtn} ${At?k.markWatchedDone:""}`,onClick:Zt,disabled:_||!e.currentEpisode,children:[t(ye,{name:"check",size:14}),_?"Saving...":At?"Watched":"Mark Watched"]}),t("button",{className:`${k.watchlistBtn} ${k.modeToggleBtn} ${e.currentMode==="dub"?k.modeToggleActive:""}`,disabled:n,onClick:()=>{const u=e.currentMode==="dub"?"sub":"dub";Ct(),v({type:"SET_MODE",payload:u}),J.setItem("preferredMode",u)},type:"button","aria-pressed":e.currentMode==="dub",children:e.currentMode==="dub"?"DUB":"SUB"}),Rt&&t("button",{disabled:n,className:`${k.watchlistBtn} ${k.modeToggleBtn} ${y.state.useNativeControls?k.modeToggleActive:""}`,onClick:()=>{const u=!y.state.useNativeControls;y.actions.setUseNativeControls(u),J.setItem("playerUseNativeControls",u.toString())},type:"button",children:y.state.useNativeControls?"NATIVE: ON":"NATIVE: OFF"})]})]})]}),Pt(`${k.episodeActions} ${k.mobileEpisodeActions}`,"mobile"),t("div",{className:Te.infoColumns,children:[t("div",{className:`${k.descriptionSection} ${k.synopsisFlat}`,children:[t("h3",{children:"Synopsis"}),t(nn,{text:e.showMeta.description?e.showMeta.description.replace(/<[^>]*>?/gm,""):"",emptyText:"No description available."}),t("button",{className:k.detailsToggleBtn,onClick:g,children:[e.showCombinedDetails?t(ye,{name:"chevron-up"}):t(ye,{name:"chevron-down"}),e.showCombinedDetails?"Hide Details":"Show Details"]})]}),e.showCombinedDetails&&t(rn,{showMeta:e.showMeta,styles:k})]})]})]})]}),t(jr,{isOpen:ze,onClose:()=>je(!1),episodes:e.episodes,currentEpisode:e.currentEpisode??void 0,watchedEpisodes:e.watchedEpisodes,onEpisodeClick:u=>{je(!1),c(`/watch/${r}/${u}`)}})]})};export{Ps as default};
|