@serifpersia/dango 3.8.1 → 3.8.3
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 +4 -2
- package/client/dist/assets/{AnimeCard-D9nRVw2O.js → AnimeCard-Dc6uPr1B.js} +1 -1
- package/client/dist/assets/{AnimeInfo-DFaWXccH.js → AnimeInfo-BkT4v_EB.js} +1 -1
- package/client/dist/assets/{AnimeInfoPage-DdAmDngx.js → AnimeInfoPage-CvGOUt7G.js} +2 -2
- package/client/dist/assets/{Asmr-CR7tgg-i.js → Asmr-CaO_2wxo.js} +1 -1
- package/client/dist/assets/{AsmrResetProgressModal-DKg0JAtz.js → AsmrResetProgressModal-h35ZX9OW.js} +1 -1
- package/client/dist/assets/Home-CHKpLQLZ.js +1 -0
- package/client/dist/assets/Home-DINyLUCh.css +1 -0
- package/client/dist/assets/{Insights-DRwVoCbK.js → Insights-CA_1302g.js} +1 -1
- package/client/dist/assets/{LibraryListPage-o39P5Z1e.js → LibraryListPage-0IybQgPU.js} +1 -1
- package/client/dist/assets/{ListeningList-BOHUSWrP.js → ListeningList-Cn1z8o3k.js} +1 -1
- package/client/dist/assets/{Manga-B1wUUjnX.js → Manga-B4p5dXe8.js} +1 -1
- package/client/dist/assets/{MangaInfoPage-CjhOeVB7.js → MangaInfoPage-DR2_2eve.js} +1 -1
- package/client/dist/assets/{MangaReadPage-CNIBLt4y.js → MangaReadPage-CC72GY9L.js} +1 -1
- package/client/dist/assets/{MangaResetProgressModal-BcZuwZGV.js → MangaResetProgressModal-ojbIsaI7.js} +1 -1
- package/client/dist/assets/{Mature-riRXX3b6.js → Mature-C1PCMe3g.js} +1 -1
- package/client/dist/assets/{MatureConsentModal-UaIQxjyb.js → MatureConsentModal-BTJloHUV.js} +1 -1
- package/client/dist/assets/{MediaCard-gCn0mrX1.js → MediaCard-wcV5T3yJ.js} +1 -1
- package/client/dist/assets/{OptionListMenu-lx42ItXH.js → OptionListMenu-CFBJv5e-.js} +1 -1
- package/client/dist/assets/{Player-wMuWckmw.js → Player-MJJ6fHc4.js} +2 -2
- package/client/dist/assets/{PlayerProvider-HU614Yx3.js → PlayerProvider-DjIXyFBk.js} +1 -1
- package/client/dist/assets/{PlayerSettings-CI1aLmPu.js → PlayerSettings-B37kxh6A.js} +1 -1
- package/client/dist/assets/{QueueOptionsButton-DhLD1z9e.js → QueueOptionsButton-D0LpFAJe.js} +1 -1
- package/client/dist/assets/{QueueRail-Be6pVYWN.js → QueueRail-D4qxAKBU.js} +1 -1
- package/client/dist/assets/{ReadingList-qMAlWX2e.js → ReadingList-B6pULeSS.js} +1 -1
- package/client/dist/assets/{ResetProgressModal-B_bS4cVJ.js → ResetProgressModal-Dq6yudb6.js} +1 -1
- package/client/dist/assets/{Search-BSX7Q3Ra.js → Search-B2C2_KM4.js} +1 -1
- package/client/dist/assets/{Settings-B-LE4vM3.js → Settings-DQHfH5Ba.js} +1 -1
- package/client/dist/assets/{SkeletonGrid-BH33GvAW.js → SkeletonGrid-TIfa7-R8.js} +1 -1
- package/client/dist/assets/{Trackers-lFax8dy0.js → Trackers-ChrW-D2i.js} +1 -1
- package/client/dist/assets/{Tv-DXPnMGb7.js → Tv-BNc7ujCX.js} +1 -1
- package/client/dist/assets/{TvInfo-BI8xiFWp.js → TvInfo-k9u9Pxa3.js} +1 -1
- package/client/dist/assets/{TvPopup-By5JenW3.js → TvPopup-e7OkKs6q.js} +1 -1
- package/client/dist/assets/{TvSearch-BebgoNua.js → TvSearch-BP-0VIrE.js} +1 -1
- package/client/dist/assets/{TvWatchlist-BN8HI1-Y.js → TvWatchlist-Yv8Qc4lj.js} +1 -1
- package/client/dist/assets/{VirtualKeyboard-CZt4P_VM.js → VirtualKeyboard-Cqj3Id2l.js} +1 -1
- package/client/dist/assets/{WatchAlong-CZpH1Z5f.js → WatchAlong-Dt5_kNJg.js} +1 -1
- package/client/dist/assets/{WatchAlongPanel-BMq7R_pe.js → WatchAlongPanel-DTjl8tog.js} +1 -1
- package/client/dist/assets/{Watchlist-BRscj0qq.js → Watchlist-BvbY9oBd.js} +1 -1
- package/client/dist/assets/{index-Nyp_7HqY.js → index-BR99iwWT.js} +18 -18
- package/client/dist/assets/index-CoCvEAx6.css +1 -0
- package/client/dist/assets/{libraryInvalidation-rvuk3e2Z.js → libraryInvalidation-BirscVrS.js} +1 -1
- package/client/dist/assets/{playbackCompletion-CxUTa1RU.js → playbackCompletion-C8izYMOL.js} +1 -1
- package/client/dist/assets/{useAnimeInfoData-Bj-9VSAf.js → useAnimeInfoData-C60IXLN5.js} +1 -1
- package/client/dist/assets/{useAsmr-gsAVhvqA.js → useAsmr-yVlXiVJj.js} +1 -1
- package/client/dist/assets/{useAsmrPopup-BNd3V-Rs.js → useAsmrPopup-Do0bqxew.js} +1 -1
- package/client/dist/assets/{useMangaLibrary-BRvcl5UH.js → useMangaLibrary-ClgxldD8.js} +1 -1
- package/client/dist/assets/{useMangaPopup-DeuuZC7a.js → useMangaPopup-D4ItPSfW.js} +1 -1
- package/client/dist/assets/{useProviders-BsyTv0Tl.js → useProviders-DVv7j4AK.js} +1 -1
- package/client/dist/assets/{useTv-IgkCy7kA.js → useTv-BUu6RG6F.js} +1 -1
- package/client/dist/assets/{useTvLibrary-BlxUofsj.js → useTvLibrary-DnKiDhxZ.js} +1 -1
- package/client/dist/assets/{useWatchAlongPlayer-Bt9U4MaM.js → useWatchAlongPlayer-hjLY2hHu.js} +1 -1
- package/client/dist/index.html +2 -2
- package/package.json +2 -2
- package/server/dist/server.js +101 -101
- package/server/package.json +1 -1
- package/client/dist/assets/Home-CA8njtnj.js +0 -1
- package/client/dist/assets/Home-DHAkZuDf.css +0 -1
- package/client/dist/assets/index-DP9TtvZX.css +0 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ _A local-first anime web app focused on performance, privacy, and personal libra
|
|
|
6
6
|
|
|
7
7
|
[](https://opensource.org/licenses/MIT)
|
|
8
8
|

|
|
9
|
-
[](https://github.com/serifpersia/dango)
|
|
10
10
|
|
|
11
11
|
[](https://dango-users-badge.ramiserifpersia.workers.dev/?view=status)
|
|
12
12
|
|
|
@@ -119,10 +119,12 @@ Run standard dango via Termux:
|
|
|
119
119
|
|
|
120
120
|
A standalone bundle packaging Node.js, dango, and a local WebView container.
|
|
121
121
|
|
|
122
|
-
1.
|
|
122
|
+
1. From [Releases](https://github.com/serifpersia/dango/releases), download the APK matching your device: `-arm64-v8a.apk` for almost all modern phones, or `-armeabi-v7a.apk` for older 32-bit devices.
|
|
123
123
|
2. Install the APK (allow _Install from Unknown Sources_ when prompted).
|
|
124
124
|
3. Open the app. Core runtimes auto-provision on first launch.
|
|
125
125
|
|
|
126
|
+
> Updating from the old universal APK requires one manual install of the matching per-ABI APK. In-app updates work normally after that.
|
|
127
|
+
|
|
126
128
|
**Compiling from Source:**
|
|
127
129
|
|
|
128
130
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{T as A,u as o,N as M,S as $}from"./vendor-core-DfaOB3Rn.js";import{I as b}from"./vendor-icons-DrybRNxP.js";import{u as B}from"./useAnimeInfoData-
|
|
1
|
+
import{T as A,u as o,N as M,S as $}from"./vendor-core-DfaOB3Rn.js";import{I as b}from"./vendor-icons-DrybRNxP.js";import{u as B}from"./useAnimeInfoData-C60IXLN5.js";import{d as C,s as P,g as v}from"./index-BR99iwWT.js";import{Q as D}from"./QueueOptionsButton-D0LpFAJe.js";import{p as y,a as I,m as N,M as _}from"./MediaCard-wcV5T3yJ.js";import{C as w}from"./playbackCompletion-C8izYMOL.js";const k=({showId:e,anchorRect:r,onMouseEnter:d,onMouseLeave:c,onRequestClose:u})=>{const{showMeta:t,loadingMeta:i,inWatchlist:h,toggleWatchlist:m}=B(e),{titlePreference:s}=C(),n=A(()=>t?.name?s==="name"?t.name:s==="nativeName"?t.names?.native||t.name:s==="englishName"&&t.names?.english||t.name:"",[t,s]),l=[];t?.score&&l.push({icon:"star",label:String(t.score),accent:!0}),t?.status&&l.push({icon:"tv",label:t.status});const f=Array.isArray(t?.genres)&&t.genres.length>0?t.genres.filter(Boolean).slice(0,4).map(a=>typeof a=="string"?a:a?.name).filter(a=>!!a):[];return o(I,{anchorRect:r,title:n,loading:i,error:t?void 0:"Failed to load info.",meta:l,genres:f,synopsis:t?.description?P(t.description):"No synopsis available.",primaryAction:{to:`/watch/${t?.id||e}`,label:"Watch now",icon:"play"},secondaryAction:{to:`/anime/${t?.id||e}`,label:"Read more"},bookmarked:h,onToggleBookmark:m,extraActions:a=>t?o(D,{showId:e,showName:t.name||t.names?.romaji,showThumbnail:t.thumbnail,nativeName:t.names?.native,englishName:t.names?.english,showType:t.type,className:y.watchlistBtn,activeClassName:y.active,align:"left",onMenuOpenChange:a}):null,onMouseEnter:d,onMouseLeave:c,onRequestClose:u})},j=M(({anime:e,continueWatching:r=!1,onRemove:d,config:c,layout:u="vertical"})=>{const t=e.currentTime||0,i=e.duration||0,h=t>5&&i>5&&t<i*w,m=t>0&&(i<=5||t>=i*w),s=e.episodeNumber,n=r?{pathname:s?`/watch/${e._id}/${s}`:`/watch/${e._id}`,state:{name:e.name,thumbnail:e.thumbnail||"",nativeName:e.nativeName,englishName:e.englishName,type:e.type}}:s?`/watch/${e._id}/${s}`:`/anime/${e._id}`,l=(()=>{if(typeof n=="string")return n.startsWith("/watch/");const p=n.pathname;return typeof p=="string"&&p.startsWith("/watch/")})(),f=r&&s?`EP ${s}`:e.watchedCount!==void 0&&e.watchedCount>0?`EP ${e.watchedCount}`:null,a=[e.airTime,e.aired===!1&&e.nextEpisodeAirDate?`· ${e.nextEpisodeAirDate.split(",")[0]}`:""].filter(Boolean).join(" "),E=e.isAdult||e.rating==="R+"||e.rating==="Rx"||e.rating?.includes("17+"),T=o($,{children:[(e.availableEpisodesDetail?.sub||e.availableEpisodes?.sub)&&o("div",{className:N.metaItem,children:[o(b,{name:"closed-captioning",size:10}),e.availableEpisodesDetail?.sub?.length??e.availableEpisodes?.sub]}),(e.availableEpisodesDetail?.dub||e.availableEpisodes?.dub)&&o("div",{className:N.metaItem,children:[o(b,{name:"microphone",size:10}),e.availableEpisodesDetail?.dub?.length??e.availableEpisodes?.dub]})]});return o(_,{item:{id:e.id||e.showId||e._id,title:e.name,nativeName:e.nativeName,englishName:e.englishName,thumbnail:e.thumbnail,typeBadge:e.type||"TV",chapterBadge:f,airMeta:a||void 0,isAdult:E,notAired:e.aired===!1},linkTo:n,hoverIcon:l?"play":"info",progress:h?{percent:t/i*100,label:`${v(t)} / ${v(i)}`}:m?{percent:100,label:"Watched"}:void 0,showProgress:r,metaRow:T,display:c,layout:u,onRemove:d,showRemoveButton:c?.elements?.poster?.removeButton??(r&&!!d),showInfoButton:!r,enrichedId:e._id,renderPopup:(p,g)=>o(k,{showId:e._id,anchorRect:p,onMouseEnter:g.onMouseEnter,onMouseLeave:g.onMouseLeave,onRequestClose:g.close})})});export{j as A};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as y,a as I,d as T,h as b,T as S,u as e}from"./vendor-core-DfaOB3Rn.js";import{I as o}from"./vendor-icons-DrybRNxP.js";import{u as B}from"./useAnimeInfoData-
|
|
1
|
+
import{o as y,a as I,d as T,h as b,T as S,u as e}from"./vendor-core-DfaOB3Rn.js";import{I as o}from"./vendor-icons-DrybRNxP.js";import{u as B}from"./useAnimeInfoData-C60IXLN5.js";import{d as w,e as M,f as m,s as x,L as A,B as p}from"./index-BR99iwWT.js";import{A as D}from"./AnimeMetaDetails-B3-A7O5H.js";import{S as G}from"./SynopsisText-B3Sa5pRv.js";import{Q as P}from"./QueueOptionsButton-D0LpFAJe.js";import"./vendor-query-BBT5_sHx.js";import"./useIsMobile-Dvx1uJ82.js";import"./vendor-ui-3qrARCPr.js";const W="_container_1obln_1",O="_heroSection_1obln_11",$="_bannerContainer_1obln_17",U="_banner_1obln_17",j="_bannerOverlay_1obln_37",q="_heroContent_1obln_49",z="_posterContainer_1obln_62",V="_floatIn_1obln_1",Q="_poster_1obln_62",E="_infoGlass_1obln_86",H="_slideUpIn_1obln_1",L="_title_1obln_100",F="_quickMeta_1obln_109",J="_metaItem_1obln_117",K="_iconStar_1obln_126",R="_iconTv_1obln_129",X="_iconType_1obln_132",Y="_iconClock_1obln_135",Z="_genres_1obln_139",ee="_genre_1obln_139",ne="_infoColumns_1obln_165",te="_synopsisSection_1obln_180",oe="_sectionTitleSmall_1obln_188",se="_actions_1obln_210",ae="_watchBtn_1obln_216",ie="_watchlistBtn_1obln_238",le="_active_1obln_258",ce="_detailsToggleBtn_1obln_265",re="_expandedContent_1obln_288",me="_fadeIn_1obln_1",_e="_detailsGridContainer_1obln_293",de="_detailItem_1obln_301",he="_airingValue_1obln_320",be="_loadingDetails_1obln_325",pe="_spinner_1obln_334",ue="_spin_1obln_334",ve="_heroSkeleton_1obln_349",ge="_skeletonBanner_1obln_353",ke="_skeletonPoster_1obln_354",fe="_skeletonTitle_1obln_355",Ne="_skeletonMeta_1obln_356",Ce="_skeletonDesc_1obln_357",ye="_skeletonActions_1obln_358",Ie="_skeletonContent_1obln_391",Te="_skeletonInfo_1obln_405",t={container:W,heroSection:O,bannerContainer:$,banner:U,bannerOverlay:j,heroContent:q,posterContainer:z,floatIn:V,poster:Q,infoGlass:E,slideUpIn:H,title:L,quickMeta:F,metaItem:J,iconStar:K,iconTv:R,iconType:X,iconClock:Y,genres:Z,genre:ee,infoColumns:ne,synopsisSection:te,sectionTitleSmall:oe,actions:se,watchBtn:ae,watchlistBtn:ie,active:le,detailsToggleBtn:ce,expandedContent:re,fadeIn:me,detailsGridContainer:_e,detailItem:de,airingValue:he,loadingDetails:be,spinner:pe,spin:ue,heroSkeleton:ve,skeletonBanner:ge,skeletonPoster:ke,skeletonTitle:fe,skeletonMeta:Ne,skeletonDesc:Ce,skeletonActions:ye,"skeleton-wave":"_skeleton-wave_1obln_1",skeletonContent:Ie,skeletonInfo:Te};function Oe(){const{id:s}=y(),a=I(),{titlePreference:l}=w(),[i,u]=T(!1),{showMeta:n,loadingMeta:v,toggleWatchlist:g,inWatchlist:c}=B(s),{hasConsent:k,grant:f}=M();b(()=>{s&&n?.id&&n.id!==s&&a(`/anime/${n.id}`,{replace:!0})},[s,n,a]),b(()=>{document.title=n?.name?`${n.name} - dango`:"Anime - dango"},[n?.name]);const N=()=>n?.name?l==="name"?n.name:l==="nativeName"?n.names?.native||n.name:l==="englishName"&&n.names?.english||n.name:"",C=()=>{s&&a(`/watch/${s}`)},_=S(()=>n?.bannerImage?m(n.bannerImage):n?.thumbnail?m(n.thumbnail,1200,450):"",[n?.bannerImage,n?.thumbnail]);if(v||!n?.name)return e("div",{className:t.container,children:e("div",{className:t.heroSkeleton,children:[e("div",{className:t.skeletonBanner}),e("div",{className:t.skeletonContent,children:[e("div",{className:t.skeletonPoster}),e("div",{className:t.skeletonInfo,children:[e("div",{className:t.skeletonTitle}),e("div",{className:t.skeletonMeta}),e("div",{className:t.skeletonDesc}),e("div",{className:t.skeletonActions})]})]})]})});const d=n.isAdult===!0&&!k;return e("div",{className:t.container,style:d?{filter:"blur(14px)",pointerEvents:"none",userSelect:"none"}:void 0,children:[e("div",{className:t.heroSection,children:[e("div",{className:t.bannerContainer,children:[e("div",{className:t.banner,style:_?{backgroundImage:`url(${_})`}:void 0}),e("div",{className:t.bannerOverlay})]}),e("div",{className:t.heroContent,children:[e("div",{className:t.posterContainer,children:e("img",{src:m(n.thumbnail||"",320,480),alt:n.name,className:t.poster,decoding:"async"})}),e("div",{className:t.infoGlass,children:[e("div",{children:[e("h1",{className:t.title,children:N()}),e("div",{className:t.quickMeta,children:[n.score&&e("div",{className:t.metaItem,children:[e(o,{name:"star",className:t.iconStar}),e("span",{children:n.score})]}),n.status&&e("div",{className:t.metaItem,children:[e(o,{name:"tv",className:t.iconTv}),e("span",{children:n.status})]}),n.type&&e("div",{className:t.metaItem,children:[e(o,{name:"layer-group",className:t.iconType}),e("span",{children:n.type})]})]}),Array.isArray(n.genres)&&n.genres.length>0&&e("div",{className:t.genres,children:n.genres.filter(Boolean).slice(0,5).map(r=>{const h=typeof r=="string"?r:r?.name;return e("span",{className:t.genre,children:h},h)})})]}),e("div",{className:t.infoColumns,children:[e("div",{className:t.synopsisSection,children:[e("h2",{className:t.sectionTitleSmall,children:"Synopsis"}),e(G,{text:x(n.description),emptyText:"No description available."}),e("button",{className:t.detailsToggleBtn,onClick:()=>{u(!i)},children:[i?e(o,{name:"chevron-up"}):e(o,{name:"chevron-down"}),i?"Hide Details":"Show Details"]})]}),i&&e("div",{className:t.expandedContent,children:e(D,{showMeta:n,styles:t})})]}),e("div",{className:t.actions,children:[e("button",{className:t.watchBtn,onClick:C,children:[e(o,{name:"play",size:14}),"Start Watching"]}),e("button",{className:`${t.watchlistBtn} ${c?t.active:""}`,onClick:g,children:[c?e(o,{name:"check",size:14}):e(o,{name:"plus",size:14}),c?"In Watchlist":"Add to Watchlist"]}),e(P,{showId:s,showName:n.name||n.names?.romaji,showThumbnail:n.thumbnail,nativeName:n.names?.native,englishName:n.names?.english,showType:n.type,className:t.watchlistBtn,activeClassName:t.active})]})]})]})]}),d&&e(A,{isOpen:!0,title:"Content Warning",onClose:()=>a("/"),children:e("div",{style:{padding:"1rem",textAlign:"center"},children:[e("p",{children:"This title contains mature content intended for adult audiences."}),e("p",{children:["By proceeding, you confirm that you are ",e("strong",{children:"18 years of age or older"})," (or the age of majority in your jurisdiction) and wish to view this content."]}),e("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[e(p,{variant:"secondary",onClick:()=>a("/"),children:"Go Back"}),e(p,{onClick:f,children:"I'm 18+, Continue"})]})]})})]})}export{Oe as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AnimeInfo-
|
|
2
|
-
import{af as r,_ as t}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AnimeInfo-BkT4v_EB.js","assets/vendor-core-DfaOB3Rn.js","assets/vendor-icons-DrybRNxP.js","assets/useAnimeInfoData-C60IXLN5.js","assets/vendor-query-BBT5_sHx.js","assets/index-BR99iwWT.js","assets/index-CoCvEAx6.css","assets/QueueOptionsButton-D0LpFAJe.js","assets/vendor-ui-3qrARCPr.js","assets/QueueOptionsButton-CM15uQn8.css","assets/AnimeMetaDetails-B3-A7O5H.js","assets/AnimeMetaDetails-BwNQnRCd.css","assets/SynopsisText-B3Sa5pRv.js","assets/useIsMobile-Dvx1uJ82.js","assets/SynopsisText-CYv2W3yR.css","assets/AnimeInfo-BivVqWcB.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{af as r,_ as t}from"./index-BR99iwWT.js";import{u as o,P as e,z as i}from"./vendor-core-DfaOB3Rn.js";import"./vendor-query-BBT5_sHx.js";import"./vendor-icons-DrybRNxP.js";const a=i(()=>t(()=>import("./AnimeInfo-BkT4v_EB.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])));function p(){return o(e,{fallback:o(r,{}),children:o(a,{})})}export{p as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{T as Ee,u as e,d as b,A as H,a as Ve,g as Re,q as Y,h as T,S as E,$ as je,o as rt,p as st}from"./vendor-core-DfaOB3Rn.js";import{g as Le,t as Me,a6 as ot,B as Oe,L as Je,a1 as M,p as ue,F as ae,e as lt,a7 as it,q as He}from"./index-
|
|
1
|
+
import{T as Ee,u as e,d as b,A as H,a as Ve,g as Re,q as Y,h as T,S as E,$ as je,o as rt,p as st}from"./vendor-core-DfaOB3Rn.js";import{g as Le,t as Me,a6 as ot,B as Oe,L as Je,a1 as M,p as ue,F as ae,e as lt,a7 as it,q as He}from"./index-BR99iwWT.js";import{I as w}from"./vendor-icons-DrybRNxP.js";import{u as ct}from"./vendor-query-BBT5_sHx.js";import{T as De}from"./ToggleSwitch-CN_ppEc9.js";import{M as dt}from"./MatureConsentModal-BTJloHUV.js";import{M as ut,P as mt}from"./MediaCard-wcV5T3yJ.js";import{c as Ke,a as ze,d as ht,e as Ge,f as Ye,g as pt,h as gt,i as ft,j as yt,k as Fe,l as Be}from"./useAsmr-yVlXiVJj.js";import{u as _t,A as bt}from"./useAsmrPopup-Do0bqxew.js";import{u as kt,d as vt,e as wt,f as Ct,g as Nt,h as Tt,S as We,a as St,i as qe,j as At,k as Bt,V as Rt,l as Lt}from"./PlayerProvider-DjIXyFBk.js";import{p as ne}from"./page.module-C1MlZzf3.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";import"./libraryInvalidation-BirscVrS.js";import"./usePopup-DS9jMzp6.js";const Mt="_sortSelect_1f2gy_1",Pt="_grid_1f2gy_11",It="_fetching_1f2gy_25",xt="_thumbPlaceholder_1f2gy_64",$t="_asmrCardWrap_1f2gy_100",Et="_bookmarkBtn_1f2gy_105",jt="_bookmarked_1f2gy_129",Ot="_statusMsg_1f2gy_152",Ht="_skeletonCard_1f2gy_160",Dt="_skeletonThumb_1f2gy_165",Ft="_skeletonLine_1f2gy_171",Wt="_shimmer_1f2gy_178",qt="_matureToggleWrap_1f2gy_219",Ut="_matureLabel_1f2gy_226",Vt="_translateToggleWrap_1f2gy_232",Jt="_filterTogglesGroup_1f2gy_239",Kt="_filterBar_1f2gy_251",zt="_filterLabel_1f2gy_258",Gt="_detailOverlay_1f2gy_263",Yt="_detailModal_1f2gy_275",Qt="_detailClose_1f2gy_287",Zt="_detailHeader_1f2gy_303",Xt="_detailCover_1f2gy_309",ea="_detailInfo_1f2gy_318",ta="_detailTitle_1f2gy_322",aa="_detailRj_1f2gy_329",na="_metaRow_1f2gy_335",ra="_metaLabel_1f2gy_341",sa="_tagChips_1f2gy_347",oa="_tagChip_1f2gy_347",la="_npOverlay_1f2gy_363",ia="_playerBarDocked_1f2gy_378",ca="_playerBarDockedHidden_1f2gy_392",da="_npOverlayControlsHidden_1f2gy_403",ua="_npArrow_1f2gy_403",ma="_npImageCount_1f2gy_404",ha="_npStage_1f2gy_413",pa="_sliderViewport_1f2gy_429",ga="_slide_1f2gy_429",fa="_slideImg_1f2gy_431",ya="_npStageBlank_1f2gy_450",_a="_sliderTrack_1f2gy_469",ba="_slideImgLoaded_1f2gy_502",ka="_slideSpinner_1f2gy_507",va="_npArrowLeft_1f2gy_557",wa="_npArrowRight_1f2gy_561",Ca="_chapterPanel_1f2gy_578",Na="_chapterRow_1f2gy_593",Ta="_chapterRowActive_1f2gy_612",Sa="_chapterRowTime_1f2gy_616",Aa="_chapterRowLabel_1f2gy_627",Ba="_npBackdrop_1f2gy_633",Ra="_playerBtn_1f2gy_639",La="_playerBtnActive_1f2gy_639",Ma="_tracksSection_1f2gy_645",Pa="_tracksHeading_1f2gy_649",Ia="_trackList_1f2gy_655",xa="_trackRow_1f2gy_664",$a="_trackIcon_1f2gy_682",Ea="_trackLabel_1f2gy_687",ja="_trackType_1f2gy_692",Oa="_noTracks_1f2gy_697",Ha="_playAllBtn_1f2gy_702",Da="_detailActions_1f2gy_715",Fa="_playerBar_1f2gy_378",Wa="_playerActions_1f2gy_738",qa="_playerInfo_1f2gy_744",Ua="_playerTitle_1f2gy_749",Va="_playerTrack_1f2gy_758",Ja="_playerControls_1f2gy_764",Ka="_seekRow_1f2gy_771",za="_playerButtons_1f2gy_779",Ga="_seekBtn_1f2gy_814",Ya="_playBtn_1f2gy_824",Qa="_seekBar_1f2gy_871",Za="_volumeBar_1f2gy_872",Xa="_timeLabel_1f2gy_964",en="_playerRight_1f2gy_970",tn="_volumeIcon_1f2gy_976",an="_playerToggle_1f2gy_1020",t={sortSelect:Mt,grid:Pt,fetching:It,thumbPlaceholder:xt,asmrCardWrap:$t,bookmarkBtn:Et,bookmarked:jt,statusMsg:Ot,skeletonCard:Ht,skeletonThumb:Dt,skeletonLine:Ft,shimmer:Wt,matureToggleWrap:qt,matureLabel:Ut,translateToggleWrap:Vt,filterTogglesGroup:Jt,filterBar:Kt,filterLabel:zt,detailOverlay:Gt,detailModal:Yt,detailClose:Qt,detailHeader:Zt,detailCover:Xt,detailInfo:ea,detailTitle:ta,detailRj:aa,metaRow:na,metaLabel:ra,tagChips:sa,tagChip:oa,npOverlay:la,playerBarDocked:ia,playerBarDockedHidden:ca,npOverlayControlsHidden:da,npArrow:ua,npImageCount:ma,npStage:ha,sliderViewport:pa,slide:ga,slideImg:fa,npStageBlank:ya,sliderTrack:_a,slideImgLoaded:ba,slideSpinner:ka,npArrowLeft:va,npArrowRight:wa,chapterPanel:Ca,chapterRow:Na,chapterRowActive:Ta,chapterRowTime:Sa,chapterRowLabel:Aa,npBackdrop:Ba,playerBtn:Ra,playerBtnActive:La,tracksSection:Ma,tracksHeading:Pa,trackList:Ia,trackRow:xa,trackIcon:$a,trackLabel:Ea,trackType:ja,noTracks:Oa,playAllBtn:Ha,detailActions:Da,playerBar:Fa,playerActions:Wa,playerInfo:qa,playerTitle:Ua,playerTrack:Va,playerControls:Ja,seekRow:Ka,playerButtons:za,seekBtn:Ga,playBtn:Ya,seekBar:Qa,volumeBar:Za,timeLabel:Xa,playerRight:en,volumeIcon:tn,playerToggle:an},nn=({work:r,onClose:o,onPlay:k,t:g})=>{const{data:i,isLoading:u}=Ke(r.id||null),y=ze(r),{data:S}=ht(y||void 0),{toggle:_,bookmarkedIds:C}=Ge(),{data:P}=Ye(y||void 0),R=y?C.has(y):!!S?.inLibrary,f=Ee(()=>(i?.description||r.description||"").split(`
|
|
2
2
|
`).map(c=>{const l=c.indexOf(":");return l===-1?null:{label:c.slice(0,l),value:c.slice(l+1).trim()}}).filter(c=>!!c&&!!c.value),[i?.description,r.description]),m=i?.tracks||[],L=r.thumbnail||i?.images?.[0],A=Ee(()=>{const c=P?.progress??[];return c.length>0?c.reduce((l,B)=>l.updatedAt>=B.updatedAt?l:B):null},[P]),h=A&&A.trackIndex<m.length?A.trackIndex:null;return e("div",{className:t.detailOverlay,onClick:o,children:e("div",{className:t.detailModal,onClick:c=>c.stopPropagation(),children:[e("button",{className:t.detailClose,onClick:o,"aria-label":"Close",children:e(w,{name:"times"})}),e("div",{className:t.detailHeader,children:[L?e("img",{className:t.detailCover,src:L,alt:r.name,decoding:"async"}):e("div",{className:`${t.detailCover} ${t.thumbPlaceholder}`}),e("div",{className:t.detailInfo,children:[e("h2",{className:t.detailTitle,children:g?g(r.name):r.name}),e("p",{className:t.detailRj,children:r.id}),f.map(c=>c.label==="Tags"?e("p",{className:t.metaRow,children:[e("span",{className:t.metaLabel,children:"Tags"}),e("span",{className:t.tagChips,children:c.value.split(", ").map(l=>e("span",{className:t.tagChip,children:l},l))})]},c.label):e("p",{className:t.metaRow,children:[e("span",{className:t.metaLabel,children:c.label}),c.value]},c.label))]})]}),e("div",{className:t.tracksSection,children:[e("h3",{className:t.tracksHeading,children:u?"Loading tracks…":`Tracks (${m.length})`}),!u&&(m.length>0?e("ul",{className:t.trackList,children:m.map((c,l)=>e("li",{children:e("button",{className:t.trackRow,onClick:()=>k(r,m,l),children:[e(w,{name:"play",className:t.trackIcon}),e("span",{className:t.trackLabel,children:c.resolutionStr}),e("span",{className:t.trackType,children:c.hls?"HLS":"MP3"})]})},c.link))}):e("p",{className:t.noTracks,children:"No audio streams available for this work."}))]}),e("div",{className:t.detailActions,children:[!u&&m.length>0&&e("button",{className:t.playAllBtn,onClick:()=>k(r,m,0),children:[e(w,{name:"play"})," Play from start"]}),!u&&h!==null&&A&&e("button",{className:t.playAllBtn,onClick:()=>k(r,m,h),children:[e(w,{name:"history"})," Resume track ",h+1," ·"," ",Le(A.currentTime),A.duration>0?` / ${Le(A.duration)}`:""]}),y&&e("button",{className:t.playAllBtn,onClick:()=>_({rjCode:y,title:r.name,thumbnail:r.thumbnail||"",isAdult:!!r.isAdult}),"aria-pressed":R,children:[e(w,{name:R?"check":"plus"})," ",R?"In listening list":"Add to listening list"]})]})]})})},rn=r=>{const{engine:o}=kt({volumeKey:"asmrVolume",mutedKey:"asmrMuted"});return e(vt,{engine:o,children:e(sn,{...r})})},sn=({title:r,images:o,chapters:k,tracks:g,trackIndex:i,expanded:u,isAdult:y,rjCode:S,t:_,onTrackChange:C,onExpandedChange:P,onClose:R})=>{const f=wt(),m=f.mediaRef,{duration:L,volume:A,isPlaying:h}=Ct(f),{currentTime:c}=Nt(f),[l,B]=b(!0),[p,x]=b(0),[j,Q]=b(new Set),[N,K]=b(!1),[$,D]=b(!0),U=H("");U.current||(U.current=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`asmr-${Date.now()}-${Math.random().toString(36).slice(2)}`);const me=Ve(),F=Re.useMemo(()=>S?pt(S):"",[S]),W=gt(),be=ft(),{data:Z}=Ye(F||void 0),[ke,re]=b(!1),he=H(""),q=H(null),pe=H(0),V=H(0),se=H(0),oe=g[i],ge=oe?.link,J=oe?.hls,fe=oe?.resolutionStr||"",le=o.length>0,X=`${F}:${i}`,ie=Re.useMemo(()=>(Z?.progress??[]).find(s=>s.trackIndex===i)??null,[Z,i]),ve=H({workId:"",trackIndex:0,trackLabel:""}),z=H(Z);z.current=Z,ve.current={workId:F,trackIndex:i,trackLabel:fe};const ce=Y((a,s,v,O=!1)=>{!a.workId||!v||v<10||!O&&Math.abs(s-pe.current)<5||(pe.current=s,W.mutate({workId:a.workId,trackIndex:a.trackIndex,trackLabel:a.trackLabel,currentTime:Math.floor(s),duration:Math.floor(v),title:r,thumbnail:o[0]||"",rjCode:a.workId,isAdult:y?1:0}))},[W,r,o,y]),ye=Y((a=!1)=>{q.current&&(clearTimeout(q.current),q.current=null),ce(ve.current,V.current,se.current,a)},[ce]),ee=H(ye);ee.current=ye;const we=H(ce);we.current=ce,T(()=>{if(!m.current||!ge)return;const s={workId:F,trackIndex:i,trackLabel:fe},v=()=>{q.current&&(clearTimeout(q.current),q.current=null),we.current(s,f.getTimeline().currentTime,f.getState().duration||se.current,!0)};V.current=0,se.current=0,pe.current=0;const O=z.current?.progress?.find(nt=>nt.trackIndex===i),Te=O?.currentTime||0,Se=O?.duration||0,Ae=Te>=10&&Se-Te>=15,at=f.loadSource({url:ge,hls:J},{autoPlay:!Ae});return()=>{v(),at()}},[f,ge,J,F,i,fe,m]),T(()=>{const a=()=>{document.visibilityState==="hidden"&&ee.current()},s=()=>ee.current();return document.addEventListener("visibilitychange",a),window.addEventListener("pagehide",s),()=>{document.removeEventListener("visibilitychange",a),window.removeEventListener("pagehide",s)}},[]),T(()=>{if(!ie||he.current===X||!(L>0))return;const a=ie.currentTime||0,s=ie.duration||L;he.current=X,!(!(a>=10&&s-a>=15&&V.current<a)||!m.current)&&(f.seek(a),V.current=a,f.play())},[f,m,ie,L,X]),T(()=>{if(u)return document.body.classList.add("asmr-player-open"),()=>document.body.classList.remove("asmr-player-open")},[u]),T(()=>{x(0)},[o]),T(()=>{u&&D(!0)},[u]),T(()=>{N&&D(!0)},[N]);const de=Y(a=>{if(!r||g.length===0)return;const s=g[i],v=s?`${s.resolutionStr} (${i+1}/${g.length})`:"",O=m.current,Te=O?O.currentTime:0,Se=O&&O.duration||0,Ae=o[0]||"";Me.discord.asmrPresence.mutate({title:r,trackLabel:v,isPlaying:a,thumbnail:Ae,thumbnails:o,currentTime:Te,duration:Se,isAdult:!!y,rjCode:S||"",sessionId:U.current}).catch(()=>{}),Me.discord.heartbeat.mutate({sessionId:U.current}).catch(()=>{})},[m,r,g,i,o,y,S]);T(()=>{de(h)},[de,h,i,r,u]),T(()=>{if(!h)return;const a=window.setInterval(()=>de(!0),15e3);return()=>window.clearInterval(a)},[h,de]),T(()=>{const a=U.current,s=()=>ot(a),v=()=>s(),O=()=>{document.visibilityState==="hidden"&&s()};return window.addEventListener("pagehide",v),window.addEventListener("beforeunload",v),document.addEventListener("visibilitychange",O),()=>{window.removeEventListener("pagehide",v),window.removeEventListener("beforeunload",v),document.removeEventListener("visibilitychange",O),s()}},[]);const n=Y(a=>{Q(s=>{if(s.has(a))return s;const v=new Set(s);return v.add(a),v})},[]),d=Y((a,s)=>{a&&a.complete&&a.naturalWidth>0&&n(s)},[n]);T(()=>{if(!u)return;const a=s=>{if(!(s.defaultPrevented||s.ctrlKey||s.metaKey||s.altKey||s.target instanceof Element&&s.target.closest('input, textarea, select, button, [role="slider"], [contenteditable="true"]'))){if(s.key==="Escape"){N?K(!1):P(!1);return}!l||o.length<2||(s.key==="ArrowLeft"&&x(v=>Math.max(0,v-1)),s.key==="ArrowRight"&&x(v=>Math.min(o.length-1,v+1)))}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[u,l,o.length,N,P]);const I=()=>{ye(!0),i<g.length-1?C(i+1):re(!0)},Ce=a=>{const s=a.currentTarget.currentTime;V.current=s,q.current&&clearTimeout(q.current),q.current=setTimeout(()=>ee.current(),5e3)},te=()=>{ee.current()},Ne=a=>{const s=a.currentTarget.duration;se.current=Number.isFinite(s)?s:0},G=Y(()=>{F&&be.mutate({rjCode:F,title:r,thumbnail:o[0]||"",status:"Completed",isAdult:!!y,silent:!0}),re(!1),R(),me("/")},[F,be,r,o,y,R,me]),Ze=k.reduce((a,s,v)=>c>=s.time?v:a,-1),Xe=a=>f.seek(a);Tt(f,()=>D(!0),!u||!l&&!N);const et=e(E,{children:[e("div",{className:t.playerButtons,children:[e("button",{className:t.playerBtn,onClick:()=>C(Math.max(0,i-1)),disabled:i===0,"aria-label":"Previous track",children:e(w,{name:"step-backward"})}),e(We,{seconds:-10,className:`${t.playerBtn} ${t.seekBtn}`}),e(St,{className:`${t.playerBtn} ${t.playBtn}`}),e(We,{seconds:10,className:`${t.playerBtn} ${t.seekBtn}`}),e("button",{className:t.playerBtn,onClick:()=>C(Math.min(g.length-1,i+1)),disabled:i>=g.length-1,"aria-label":"Next track",children:e(w,{name:"step-forward"})})]}),e("div",{className:t.seekRow,children:[e(qe,{className:t.timeLabel}),e(At,{className:t.seekBar}),e(qe,{className:t.timeLabel,durationOnly:!0})]})]}),Pe=e(E,{children:[e("button",{className:`${t.playerBtn} ${t.playerToggle}`,onClick:()=>P(!u),"aria-label":u?"Minimize player":"Expand player",title:u?"Minimize to browse":"Expand",children:u?e(w,{name:"chevron-down"}):e(w,{name:"chevron-up"})}),e("div",{className:t.playerInfo,children:[e(Bt,{}),e("p",{className:t.playerTitle,title:r,children:_?_(r):r}),e("p",{className:t.playerTrack,children:[oe?.resolutionStr||"",g.length>1?` (${i+1}/${g.length})`:""]})]}),e("div",{className:t.playerControls,children:et}),e("div",{className:t.playerRight,children:[A===0?e(w,{name:"volume-mute",className:t.volumeIcon}):A<.5?e(w,{name:"volume-down",className:t.volumeIcon}):e(w,{name:"volume-up",className:t.volumeIcon}),e(Rt,{className:t.volumeBar})]}),e("div",{className:t.playerActions,children:[u&&le&&e("button",{className:t.playerBtn,onClick:()=>B(a=>!a),"aria-label":l?"Hide images":"Show images",title:l?"Hide images":"Show images",children:l?e(w,{name:"eye-slash"}):e(w,{name:"image"})}),u&&k.length>0&&e("button",{className:`${t.playerBtn} ${N?t.playerBtnActive:""}`,onClick:()=>K(a=>!a),"aria-label":N?"Hide bookmarks":"Show bookmarks",title:"Timestamps",children:e(w,{name:"list-ol"})}),e("button",{className:t.playerBtn,onClick:R,"aria-label":"Close player",children:e(w,{name:"times"})})]})]}),Ie=e(Lt,{preload:"metadata",onPause:te,onTimeUpdate:Ce,onLoadedMetadata:Ne,onEnded:I}),xe=e(Je,{isOpen:ke,onClose:()=>re(!1),title:"Finished!",children:e("div",{style:{padding:"1rem",textAlign:"center"},children:[e(w,{name:"check-circle",size:48,style:{color:"var(--accent-lighter)",marginBottom:"0.5rem"}}),e("p",{style:{fontSize:"1.1rem",fontWeight:600},children:_?_(r):r}),e("p",{style:{color:"var(--text-secondary)"},children:"You finished this work!"}),e("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[e(Oe,{variant:"secondary",onClick:()=>re(!1),children:"Close"}),e(Oe,{onClick:G,children:"Mark Completed & Back to Home"})]})]})});if(!u)return je(e(E,{children:[Ie,e("div",{ref:f.containerRef,"data-player-root":"true",className:t.playerBar,children:Pe}),xe]}),document.body);const _e=Math.min(p,Math.max(0,o.length-1)),$e=o[_e],tt=l&&le&&!!$e&&!j.has($e);return je(e(E,{children:[Ie,xe,e("div",{ref:f.containerRef,"data-player-root":"true",className:`${t.npOverlay} ${$?"":t.npOverlayControlsHidden}`,children:[e("div",{className:`${t.npStage} ${!l||!le?t.npStageBlank:""}`,onClick:()=>D(a=>!a),children:l&&le&&e(E,{children:[e("div",{className:t.sliderViewport,children:[e("div",{className:t.sliderTrack,style:{transform:`translateX(-${_e*100}%)`},children:o.map(a=>e("div",{className:t.slide,children:e("img",{ref:s=>d(s,a),src:a,alt:`${_?_(r):r} - work image`,loading:"lazy",decoding:"async",draggable:!1,onLoad:()=>n(a),onError:()=>n(a),className:`${t.slideImg} ${j.has(a)?t.slideImgLoaded:""}`})},a))}),tt&&e("span",{className:t.slideSpinner,"aria-label":"Loading image"})]}),o.length>1&&e(E,{children:[e("button",{className:`${t.npArrow} ${t.npArrowLeft}`,onClick:a=>{a.stopPropagation(),x(s=>Math.max(0,s-1)),D(!0)},disabled:_e===0,"aria-label":"Previous image",children:e(w,{name:"chevron-left"})}),e("button",{className:`${t.npArrow} ${t.npArrowRight}`,onClick:a=>{a.stopPropagation(),x(s=>Math.min(o.length-1,s+1)),D(!0)},disabled:_e===o.length-1,"aria-label":"Next image",children:e(w,{name:"chevron-right"})}),e("span",{className:t.npImageCount,onClick:a=>a.stopPropagation(),children:[_e+1," / ",o.length]})]})]})}),e("div",{className:`${t.playerBar} ${t.playerBarDocked} ${$?"":t.playerBarDockedHidden}`,onClick:a=>a.stopPropagation(),children:[Pe,N&&e(E,{children:[e("div",{className:t.npBackdrop,onClick:()=>K(!1)}),e("div",{className:t.chapterPanel,children:k.map((a,s)=>e("button",{className:`${t.chapterRow} ${s===Ze?t.chapterRowActive:""}`,title:_?_(a.label):a.label,onClick:()=>{Xe(a.time),K(!1)},children:[e("span",{className:t.chapterRowTime,children:Le(a.time)}),e("span",{className:t.chapterRowLabel,title:_?_(a.label):a.label,children:_?_(a.label):a.label})]},`${a.time}-${s}`))})]})]})]})]}),document.body)},on="https://github.com/serifpersia/dango/releases/latest/download/dango-extension.zip",ln=r=>{try{return JSON.parse(r.detail)}catch{return null}},cn=({isOpen:r,onClose:o,onSuccess:k})=>{const[g,i]=b(1),[u,y]=b(typeof navigator<"u"?navigator.userAgent:""),[S,_]=b(""),[C,P]=b(!1),[R,f]=b(!1),m=H(null),L=typeof navigator<"u"?navigator.userAgent:"",A=/android/i.test(L),h=/firefox|fxios/i.test(L)&&!A,c=!h&&!A&&/chrome|chromium|edg|brave/i.test(L),l=h||c;T(()=>{r&&(i(1),y(typeof navigator<"u"?navigator.userAgent:""),_(""),P(!1),f(!1))},[r]),T(()=>()=>{m.current&&(window.removeEventListener("dango:jasmr-cookie",m.current),m.current=null)},[]);const B=async()=>{ue.setItem("jasmr_ua",u),window.open("https://japaneseasmr.com","_blank","noopener,noreferrer"),i(2)},p=()=>{if(R)return;f(!0);const j=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,Q=window.setTimeout(()=>{f(!1),m.current&&(window.removeEventListener("dango:jasmr-cookie",m.current),m.current=null),ae.error("Helper not detected - install it via about:debugging first.")},3e3),N=K=>{const $=ln(K);if(!(!$||$.requestId!==j))if(window.clearTimeout(Q),window.removeEventListener("dango:jasmr-cookie",N),m.current=null,f(!1),$?.ok&&$.cookie)_($.cookie),ae.success("Cookie extracted from helper!");else if($?.error==="NO_COOKIE"){const D=$.debug?.stores?.length??0,U=$.debug?.names??[];ae.error(`Helper found no cf_clearance (checked ${D} stores, saw: ${U.join(", ")||"none"}) - solve the challenge on the JapaneseASMR tab first.`)}else ae.error("Helper request failed - try again.")};m.current=N,window.addEventListener("dango:jasmr-cookie",N),window.dispatchEvent(new CustomEvent("dango:get-jasmr-cookie",{detail:{requestId:j}}))},x=async()=>{if(!S.trim()){ae.error("Please enter the cf_clearance cookie");return}P(!0);try{ue.setItem("jasmr_cookie",S.trim()),ae.success("Cookie updated successfully!"),k?.(),o()}catch{ae.error("Failed to save cookie")}finally{P(!1)}};return e(Je,{isOpen:r,onClose:o,title:"JapaneseASMR Verification Required",children:e("div",{className:M.container,children:g===1?e(E,{children:[e("p",{children:["JapaneseASMR is protected by a Cloudflare challenge. Solve it once in your browser and paste the ",e("strong",{children:"cf_clearance"})," cookie so the app can load the site for you."]}),e("div",{className:M.field,children:[e("label",{children:"Your User-Agent (must match the browser you solve the challenge with):"}),e("textarea",{value:u,onChange:j=>y(j.currentTarget.value),rows:3,className:M.textarea})]}),e("div",{className:M.actions,children:[e("button",{className:M.secondaryButton,onClick:o,children:"Cancel"}),e("button",{className:M.button,onClick:B,children:"Start Verification (Opens JapaneseASMR)"})]})]}):e(E,{children:[e("p",{children:["1. Solve the challenge on the ",e("strong",{children:"JapaneseASMR tab"})," (keep that tab open).",e("br",{}),"2. Copy the ",e("strong",{children:"cf_clearance"})," cookie value using one of these:",e("br",{}),e("br",{}),e("strong",{children:"Chrome / Edge — DevTools:"})," press ",e("code",{children:"F12"})," →"," ",e("strong",{children:"Application"})," → ",e("strong",{children:"Cookies"})," →"," ",e("code",{children:"https://japaneseasmr.com"}),". Find ",e("strong",{children:"cf_clearance"}),", double-click its ",e("strong",{children:"Value"})," to select it, then copy.",e("br",{}),e("br",{}),e("strong",{children:"Firefox — Storage Inspector:"})," press ",e("code",{children:"F12"})," →"," ",e("strong",{children:"Storage"})," → ",e("strong",{children:"Cookies"})," →"," ",e("code",{children:"https://japaneseasmr.com"}),". Find ",e("strong",{children:"cf_clearance"}),", right-click the value → ",e("strong",{children:"Copy Value"}),".",e("br",{}),e("br",{}),e("strong",{children:"Either browser — extension:"})," open"," ",e("strong",{children:"Cookie Manager"})," while on the JapaneseASMR tab, find"," ",e("strong",{children:"cf_clearance"}),", and copy its value (or use the extension's export).",e("br",{}),e("br",{}),"3. Paste it below. Copy ",e("strong",{children:"only the value"})," — remove any"," ",e("code",{children:"cf_clearance="})," prefix or quotes if they were included."]}),l&&e("div",{className:M.hint,children:[e("strong",{children:"Dango helper (one-time setup):"})," ",h?e(E,{children:["type ",e("code",{children:"about:debugging"})," in the address bar →"," ",e("strong",{children:"This Firefox"})," → ",e("strong",{children:"Load Temporary Add-on"})," ","→ open the ",e("code",{children:"dango-extension/firefox"})," folder and pick"," ",e("code",{children:"manifest.json"}),". (Temporary helpers unload when Firefox closes - repeat after a restart.)"]}):e(E,{children:["type ",e("code",{children:"chrome://extensions"})," in the address bar → enable"," ",e("strong",{children:"Developer mode"})," → ",e("strong",{children:"Load unpacked"})," → open the ",e("code",{children:"dango-extension/chrome"})," folder. (Unpacked helpers show a developer-mode notice - expected.)"]})," ","Use this link to download the extension and extract it:"," ",e("a",{href:on,target:"_blank",rel:"noreferrer",className:M.link,children:"dango-extension.zip"}),". Then click Extract below and the field fills itself.",e("div",{className:M.actions,children:e("button",{className:M.button,onClick:p,disabled:R,type:"button",children:R?"Extracting…":"Extract cookie from helper"})})]}),e("div",{className:M.field,children:[e("label",{children:"cf_clearance cookie value:"}),e("input",{type:"text",value:S,onChange:j=>_(j.currentTarget.value),placeholder:"e.g. xxxxxxxx.xxxxxxxx.xxxxxxx-xxxxxxx",className:M.input})]}),e("div",{className:M.actions,children:[e("button",{className:M.secondaryButton,onClick:o,children:"Cancel"}),e("button",{className:M.secondaryButton,onClick:()=>i(1),children:"Back"}),e("button",{className:M.button,onClick:x,disabled:C,children:C?"Saving...":"Submit"})]})]})})})},Qe="asmrTranslateCache",dn=10080*60*1e3;function un(){try{const r=ue.getItem(Qe);if(!r)return new Map;const o=JSON.parse(r);return new Map(Object.entries(o))}catch{return new Map}}function mn(r){try{const o={};for(const[k,g]of r)o[k]=g;ue.setItem(Qe,JSON.stringify(o))}catch{}}function Ue(r){return/[\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FAF]/.test(r)}async function hn(r){const o=r.map(i=>i.trim()).filter(Boolean);if(o.length===0)return new Map;const k=await Me.settings.translate.mutate({texts:o,source:"ja",target:"en"}),g=new Map;for(const[i,u]of Object.entries(k.translations||{}))g.set(i,u);for(const i of o)g.has(i)||g.set(i,i);return g}function pn(r,o){const[k,g]=b(new Map),[i,u]=b(!1),y=H(null),S=r.join("");return T(()=>{const C=S?S.split(""):[];if(!o||C.length===0){g(new Map),u(!1);return}const P=Array.from(new Set(C.map(h=>h.trim()).filter(Boolean).filter(Ue)));if(P.length===0){g(new Map);return}y.current||(y.current=un());const R=Date.now(),f=new Map,m=[];for(const h of P){const c=y.current.get(h);c&&R-c.ts<dn?f.set(h,c.t):m.push(h)}if(m.length===0){g(f);return}let L=!1;u(!0);const A=[];for(let h=0;h<m.length;h+=15)A.push(m.slice(h,h+15));return(async()=>{const h=new Map;for(const l of A){try{const B=await hn(l);for(const[p,x]of B)h.set(p,x)}catch{}await new Promise(B=>setTimeout(B,120))}if(L)return;if(y.current){for(const[l,B]of h)y.current.set(l,{t:B,ts:Date.now()});mn(y.current)}const c=new Map([...f,...h]);g(c),u(!1)})(),()=>{L=!0}},[o,S]),{t:C=>!o||!C||!Ue(C)?C:k.get(C.trim())||C,map:k,isTranslating:i}}const gn=[{label:"Date",options:[{value:"latest",label:"Latest"},{value:"oldest",label:"Oldest"}]},{label:"Title",options:[{value:"title_asc",label:"A → Z"},{value:"title_desc",label:"Z → A"}]},{label:"Popular (Views)",options:[{value:"popular_recent",label:"Recent"},{value:"popular_week",label:"Week"},{value:"popular_month",label:"Month"},{value:"popular_6_months",label:"6 Months"},{value:"popular_year",label:"Year"},{value:"popular",label:"All Time"}]},{label:"Most Commented",options:[{value:"comments_week",label:"Week"},{value:"comments_month",label:"Month"},{value:"comments_year",label:"Year"},{value:"comments",label:"All Time"}]},{label:"Other",options:[{value:"random",label:"Random"}]}],fn=[{value:"",label:"All"},{value:"sfw",label:"SFW / 全年齢"},{value:"r-15",label:"R-15"},{value:"r-18",label:"NSFW / R18"},{value:"yuri",label:"Yuri / Girls love / 百合"},{value:"otokonoko",label:"Otoko no ko / 男の娘"},{value:"futanari",label:"Futanari / フタナリ"},{value:"r-18g",label:"R-18G / グロ"}],yn=[{value:"sfw",label:"SFW / 全年齢"}],In=()=>{const{rj:r}=rt(),o=Ve(),[k,g]=st(),{hasConsent:i,grant:u}=lt(),[y,S]=b(!1),[_,C]=b(()=>k.get("q")||""),[P,R]=b(()=>k.get("q")||""),[f,m]=b("latest"),[L,A]=b("sfw"),[h,c]=b(1),[l,B]=b(null),[p,x]=b(null),[j,Q]=b(!0),[N,K]=b(()=>ue.getItem("asmrTranslateEN")==="true"),[$,D]=b(!1),U=ct(),{toggle:me,bookmarkedIds:F}=Ge(),{popup:W,openPopup:be,scheduleClose:Z,cancelClose:ke,closePopup:re}=_t();T(()=>it("jasmr",()=>D(!0)),[]),T(()=>{ue.setItem("asmrTranslateEN",String(N))},[N]);const he=i,q=he?L:"sfw",pe=he?fn:yn,{data:V,isLoading:se,isError:oe,isFetching:ge}=yt(P,h,f,q),J=Re.useMemo(()=>V?.shows??[],[V?.shows]),fe=V?.hasNext??!1;T(()=>{if(!r){l&&!p&&B(null);return}const n=r.toUpperCase();if(p&&(p.work.id?.toUpperCase()===n||p.work._id?.toUpperCase()===n)){l&&B(null);return}const d=J.find(I=>(I.id||I._id)?.toUpperCase()===n);d?(!l||(l.id||l._id)!==(d.id||d._id))&&B(d):(!l||(l.id||l._id)?.toUpperCase()!==n)&&B({_id:n,id:n,name:n})},[r,J,p,l]);const le=Y(()=>{o("/asmr")},[o]);T(()=>{!r&&p&&x(null)},[r,p]);const{data:X}=Ke(p&&p.work.id||null),ie=p?[p.work.thumbnail,...X?.images||[]].filter(Boolean):[],ve=[...J.map(n=>n.name),l?.name||"",p?.work.name||"",...X?.chapters?.map(n=>n.label)||[]].filter(Boolean),{t:z}=pn(ve,N);T(()=>{const n=p?p.work.name:l?l.name:r?r.toUpperCase():"",d=n?N?z(n):n:"",I=d?`${d} - dango`:"dango";document.title=I;try{window.history.replaceState(window.history.state,I,window.location.href)}catch{}},[l,p,r,N,z]);const ce=n=>{n.preventDefault(),R(_),c(1);const d=new URLSearchParams(k);_.trim()?d.set("q",_.trim()):d.delete("q"),d.delete("page"),g(d,{replace:!0})};T(()=>{const n=k.get("q")||"";C(d=>d===n?d:n),R(d=>d===n?d:n),c(1)},[k]);const ye=n=>{n.currentTarget.checked&&!i&&S(!0)},ee=()=>{u(),S(!1),c(1)},we=()=>{S(!1)},de=Y((n,d,I)=>{B(null),Q(!0),x({work:n,tracks:d,index:I})},[]);return e("div",{className:`${ne.page} ${p?ne.pageWithPlayer:""}`,children:[!(p&&j)&&e(E,{children:[e("header",{className:ne.header,children:[e("h1",{className:ne.pageTitle,children:[e(w,{name:"headphones"})," ASMR"]}),e("form",{className:ne.searchForm,onSubmit:ce,children:[e("input",{className:ne.searchInput,type:"text",value:_,onChange:n=>C(n.currentTarget.value),placeholder:"Search works, circles, CV… (-word excludes)","aria-label":"Search ASMR works"}),e("button",{className:ne.searchBtn,type:"submit","aria-label":"Search",children:e(w,{name:"search"})})]})]}),e("div",{className:t.filterBar,children:[e("label",{className:t.filterLabel,htmlFor:"asmr-sort",children:"Sort"}),e("select",{id:"asmr-sort",className:t.sortSelect,value:f,onChange:n=>{m(n.currentTarget.value),c(1)},children:gn.map(n=>e("optgroup",{label:n.label,children:n.options.map(d=>e("option",{value:d.value,children:d.label},d.value))},n.label))}),e("label",{className:t.filterLabel,htmlFor:"asmr-rating",children:"Type"}),e("select",{id:"asmr-rating",className:t.sortSelect,value:L,onChange:n=>{A(n.currentTarget.value),c(1)},children:pe.map(n=>e("option",{value:n.value,children:n.label},n.value))}),e("div",{className:t.filterTogglesGroup,children:[e("div",{className:t.translateToggleWrap,children:[e("span",{className:t.filterLabel,children:"JP"}),e(De,{id:"asmr-translate-toggle",isChecked:N,onChange:n=>K(n.currentTarget.checked)}),e("span",{className:t.filterLabel,children:"EN"})]}),!i&&e("div",{className:t.matureToggleWrap,children:[e("label",{className:t.matureLabel,htmlFor:"asmr-mature-toggle",children:"Mature"}),e(De,{id:"asmr-mature-toggle",isChecked:!1,onChange:ye})]})]})]}),oe?e("p",{className:t.statusMsg,children:"Failed to load works. Please try again."}):se&&J.length===0?e("div",{className:t.grid,"aria-hidden":!0,children:Array.from({length:12}).map((n,d)=>e("div",{className:t.skeletonCard,children:[e("div",{className:`${t.skeletonThumb} ${t.shimmer}`}),e("div",{className:`${t.skeletonLine} ${t.shimmer}`,style:{width:"88%"}}),e("div",{className:`${t.skeletonLine} ${t.shimmer}`,style:{width:"55%"}})]},d))}):J.length===0?e("p",{className:t.statusMsg,children:"No works found."}):e(E,{children:[e("div",{className:`${t.grid} ${ge?t.fetching:""}`,children:J.map(n=>{const d=N?{...n,name:z(n.name)}:n,I=ze(n),Ce=Fe(I),te=F.has(Ce),Ne=`/asmr/${encodeURIComponent(I)}`;return e("div",{className:t.asmrCardWrap,children:[e(ut,{item:{id:Ce,title:d.name,thumbnail:n.thumbnail||"",typeBadge:I||void 0,isAdult:Be(n)},linkTo:Ne,hoverIcon:"info",layout:"horizontal",showInfoButton:!0,display:{elements:{poster:{typeBadge:!0,chapterBadge:!1,adultBadge:!0},info:{title:!0,mobileBadges:!0,progress:!1,meta:!1}}},onOpenDetails:G=>be(G,{rjCode:I,title:d.name,thumbnail:n.thumbnail||"",isAdult:Be(n),rating:n.rating,listenTarget:Ne}),onPopupHoverIntent:G=>G?ke():Z(),rawThumbnail:!0}),e("button",{className:`${t.bookmarkBtn} ${te?t.bookmarked:""}`,onClick:G=>{G.preventDefault(),G.stopPropagation(),me({rjCode:I,title:n.name,thumbnail:n.thumbnail||"",isAdult:Be(n)})},title:te?"Remove from listening list":"Add to listening list","aria-label":te?"Remove from listening list":"Add to listening list","aria-pressed":te,children:e(w,{name:te?"check":"plus",size:12})})]},n._id||n.id)})}),e(mt,{page:h,canGoNext:fe,onChange:n=>c(n),variant:"labeled"})]})]}),l&&e(nn,{work:l,onClose:le,onPlay:de,t:z}),W&&e(bt,{data:W.data,anchorRect:W.rect,bookmarked:F.has(Fe(W.data.rjCode)),onToggleBookmark:()=>me({rjCode:W.data.rjCode,title:W.data.title,thumbnail:W.data.thumbnail||"",isAdult:W.data.isAdult}),onMouseEnter:ke,onMouseLeave:Z,onRequestClose:re}),$&&e(cn,{isOpen:$,onClose:()=>D(!1),onSuccess:()=>{U.invalidateQueries({queryKey:[He.asmrBrowse]}),U.invalidateQueries({queryKey:[He.asmrWork]})}}),y&&e(dt,{isOpen:!0,scope:"section",showResetHint:!0,onClose:we,onGrant:ee}),p&&e(rn,{title:p.work.name,images:ie,chapters:X?.chapters||[],tracks:p.tracks,trackIndex:p.index,expanded:j,isAdult:!!p.work.isAdult,rjCode:p.work.id||p.work._id,t:z,onTrackChange:n=>x(d=>d&&{...d,index:n}),onExpandedChange:Q,onClose:()=>{x(null),Q(!0),r&&o("/asmr")}})]})};export{In as default};
|
package/client/dist/assets/{AsmrResetProgressModal-DKg0JAtz.js → AsmrResetProgressModal-h35ZX9OW.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as i}from"./vendor-core-DfaOB3Rn.js";import{R as n}from"./ResetProgressModal-
|
|
1
|
+
import{u as i}from"./vendor-core-DfaOB3Rn.js";import{R as n}from"./ResetProgressModal-Dq6yudb6.js";import{s as a,n as g}from"./useAsmr-yVlXiVJj.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};
|
|
@@ -0,0 +1 @@
|
|
|
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-BR99iwWT.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-wcV5T3yJ.js";import{A as ce}from"./AnimeCard-Dc6uPr1B.js";import{S as ze,A as Ge}from"./SkeletonGrid-TIfa7-R8.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-Dq6yudb6.js";import{Q as kt}from"./QueueRail-D4qxAKBU.js";import{u as qe,M as Qe}from"./useMangaPopup-D4ItPSfW.js";import{M as Ct}from"./MangaResetProgressModal-ojbIsaI7.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-ClgxldD8.js";import{u as Lt}from"./useProviders-DVv7j4AK.js";import{u as Xe,a as Be,T as $t}from"./useTv-BUu6RG6F.js";import{T as Mt}from"./TvPopup-e7OkKs6q.js";import{u as Bt,a as Pt,b as xt}from"./useTvLibrary-DnKiDhxZ.js";import{A as Et}from"./AsmrResetProgressModal-h35ZX9OW.js";import{u as Dt,a as Wt,b as Ot}from"./useAsmr-yVlXiVJj.js";import"./useIsMobile-Dvx1uJ82.js";import"./MatureConsentModal-BTJloHUV.js";import"./useAnimeInfoData-C60IXLN5.js";import"./QueueOptionsButton-D0LpFAJe.js";import"./playbackCompletion-C8izYMOL.js";import"./usePopup-DS9jMzp6.js";import"./libraryInvalidation-BirscVrS.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};
|
|
@@ -0,0 +1 @@
|
|
|
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 +1 @@
|
|
|
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-Nyp_7HqY.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
|
+
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-BR99iwWT.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 +1 @@
|
|
|
1
|
-
import{a as ie,d as N,h as re,u as e}from"./vendor-core-DfaOB3Rn.js";import{I as h}from"./vendor-icons-DrybRNxP.js";import{P as E}from"./MediaCard-
|
|
1
|
+
import{a as ie,d as N,h as re,u as e}from"./vendor-core-DfaOB3Rn.js";import{I as h}from"./vendor-icons-DrybRNxP.js";import{P as E}from"./MediaCard-wcV5T3yJ.js";import{S as de}from"./SkeletonGrid-TIfa7-R8.js";import{E as oe}from"./ErrorMessage-DAxegITP.js";import{G as me,H as he,L as C,B as H}from"./index-BR99iwWT.js";import{s as l}from"./LibraryListPage.module-r6k9nyT9.js";function be({headerTitle:q,headerSubtitle:O,filters:U,filterBy:r,filterBasePath:V,continueFilter:W,statusOptions:$,entries:d,total:o,isLoading:f,error:A,page:I,pageSize:u,onPageChange:M,emptyTitle:Y,emptyFilteredText:j,emptyAllText:F,browseLabel:J,browseTarget:L,removeListLabel:w,listNoun:S,skipConfirmKey:x,onBulkStatus:Q,onBulkRemove:B,onStatusChange:X,onRemoveItem:R,renderCard:Z,modals:_}){const z=ie(),[g,T]=N(!1),[t,i]=N(new Set),[n,p]=N(null),[P,b]=N(!1),{data:y}=me(x),K=he();re(()=>{i(new Set),T(!1)},[r]);const m=r===W,G=String(y)==="true"||String(y)==="1",ee=()=>{T(a=>(a&&i(new Set),!a))},ae=a=>{i(s=>{const c=new Set(s);return c.has(a)?c.delete(a):c.add(a),c})},v=d.map(a=>a.libId),k=v.length>0&&v.every(a=>t.has(a)),le=()=>{i(a=>{const s=new Set(a);if(k)for(const c of v)s.delete(c);else for(const c of v)s.add(c);return s})},te=a=>{t.size!==0&&(Q([...t],a),i(new Set))},se=()=>{t.size!==0&&(m||G?(B([...t]),i(new Set)):p({ids:[...t]}))},ne=a=>{m||G?R(a.libId):p({ids:[a.libId],title:a.title})},ce=()=>{n&&(P&&K.mutate({key:x,value:!0}),n.ids.length===1?R(n.ids[0]):B(n.ids),i(new Set),p(null),b(!1))},D=()=>{p(null),b(!1)};return e("div",{className:"page-container",children:[e("header",{className:l.header,children:[e("h2",{className:l.title,children:q}),e("p",{className:l.subtitle,children:O})]}),e("div",{className:l.controls,children:e("div",{className:l.filters,children:U.map(a=>e("button",{className:`${l.filterBtn} ${r===a?l.active:""}`,onClick:()=>z(`${V}/${a==="All"?"":a}`),children:a},a))})}),e("div",{className:l.resultsHeader,children:[e("h3",{className:l.resultsTitle,children:[r,e("span",{className:l.itemCount,children:["(",o," items)"]})]}),e("div",{className:l.headerActions,children:[e("button",{className:`${l.manageBtn} ${g?l.active:""}`,onClick:ee,children:[e(h,{name:"pencil-alt",size:13}),e("span",{children:"Bulk Manage"})]}),o>0&&e(E,{page:I,totalPages:Math.max(1,Math.ceil(o/u)),canGoNext:d.length>=u,onChange:M,isLoading:f})]})]}),g&&e("div",{className:l.manageBar,children:[e("button",{className:l.selectAllBtn,onClick:le,children:[e("span",{className:`${l.selectAllBox} ${k?l.selectAllBoxChecked:""}`,"aria-hidden":"true"}),e("span",{children:k?"Clear Page":"Select All"})]}),e("span",{className:l.manageCount,children:[t.size," selected"]}),e("div",{className:l.manageSpacer}),!m&&e("select",{className:l.manageStatusSelect,value:"",onChange:a=>{a.currentTarget.value&&te(a.currentTarget.value)},disabled:t.size===0,title:"Set status for selected items",children:[e("option",{value:"",children:"Set status…"}),$.map(a=>e("option",{value:a,children:a},a))]}),e("button",{className:l.manageRemoveBtn,onClick:se,disabled:t.size===0,children:[e(h,{name:"trash",size:13}),e("span",{children:m?"Reset Selected":"Remove Selected"})]})]}),f?e(de,{}):A?e(oe,{message:A.message}):d.length===0?e("div",{className:l.emptyState,children:[e("h3",{className:l.emptyTitle,children:Y}),e("p",{className:l.emptyText,children:r!=="All"?j:F}),e("button",{className:l.emptyBtn,onClick:()=>z(L),children:[e(h,{name:"search",size:14}),e("span",{children:J})]})]}):e("div",{className:l.grid,children:d.map(a=>e("div",{className:`${l.itemWrapper} ${t.has(a.libId)?l.selected:""}`,children:[g&&e("div",{className:l.selectOverlay,onClick:()=>ae(a.libId),title:t.has(a.libId)?"Deselect":"Select",children:e("span",{className:l.selectBadge,children:t.has(a.libId)?e(h,{name:"check",size:12}):null})}),Z(a),!m&&!g&&e("div",{className:l.cardActions,children:[e("select",{className:l.statusSelect,value:a.status,onChange:s=>X(a.libId,s.currentTarget.value),children:$.map(s=>e("option",{value:s,children:s},s))}),e("button",{className:l.removeBtn,onClick:()=>ne(a),title:w,"aria-label":w,children:e(h,{name:"trash",size:12})})]})]},a.key))}),o>0&&e("div",{className:l.bottomPagination,children:e(E,{page:I,totalPages:Math.max(1,Math.ceil(o/u)),canGoNext:d.length>=u,onChange:M,isLoading:f,variant:"labeled"})}),_,e(C,{isOpen:!!n,onClose:D,title:`Remove from ${S}`,children:[e(C.Body,{children:[e("p",{children:n&&n.ids.length===1?`Are you sure you want to remove "${n.title}" from your ${S}?`:`Are you sure you want to remove ${n?.ids.length??0} selected items from your ${S}?`}),e("label",{children:[e("input",{type:"checkbox",checked:P,onChange:a=>b(a.currentTarget.checked)}),"Don't ask again"]})]}),e(C.Actions,{children:[e(H,{variant:"secondary",onClick:D,children:"No"}),e(H,{variant:"danger",onClick:ce,children:"Yes"})]})]})]})}export{be as L};
|
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-wcV5T3yJ.js";import{L as N}from"./LibraryListPage-0IybQgPU.js";import{u as _,A as q}from"./useAsmrPopup-Do0bqxew.js";import{A as z}from"./AsmrResetProgressModal-h35ZX9OW.js";import{g as h}from"./index-BR99iwWT.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-yVlXiVJj.js";import"./vendor-icons-DrybRNxP.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";import"./MatureConsentModal-BTJloHUV.js";import"./SkeletonGrid-TIfa7-R8.js";import"./ErrorMessage-DAxegITP.js";import"./LibraryListPage.module-r6k9nyT9.js";import"./usePopup-DS9jMzp6.js";import"./ResetProgressModal-Dq6yudb6.js";import"./vendor-query-BBT5_sHx.js";import"./libraryInvalidation-BirscVrS.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 +1 @@
|
|
|
1
|
-
import{p as le,d as O,T as re,h as U,u as a,m as ne,S as q}from"./vendor-core-DfaOB3Rn.js";import{I as M}from"./vendor-icons-DrybRNxP.js";import{T as se}from"./ToggleSwitch-CN_ppEc9.js";import{M as oe}from"./MatureConsentModal-
|
|
1
|
+
import{p as le,d as O,T as re,h as U,u as a,m as ne,S as q}from"./vendor-core-DfaOB3Rn.js";import{I as M}from"./vendor-icons-DrybRNxP.js";import{T as se}from"./ToggleSwitch-CN_ppEc9.js";import{M as oe}from"./MatureConsentModal-BTJloHUV.js";import{E as ie}from"./ErrorMessage-DAxegITP.js";import{M as ce,P as de}from"./MediaCard-wcV5T3yJ.js";import{u as ue,M as ge}from"./useMangaPopup-D4ItPSfW.js";import{e as pe,a5 as he}from"./index-BR99iwWT.js";import{f as me,u as ve,m as D,i as be,b as fe,c as Se}from"./useMangaLibrary-ClgxldD8.js";import{u as Te}from"./useProviders-DVv7j4AK.js";import{s as l}from"./Manga.module-depGEacJ.js";import{p as c}from"./page.module-C1MlZzf3.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";import"./usePopup-DS9jMzp6.js";import"./vendor-query-BBT5_sHx.js";import"./libraryInvalidation-BirscVrS.js";const ye=[{value:"popular",label:"Popular"},{value:"latest",label:"Latest"},{value:"rating",label:"Top Rated"},{value:"followed",label:"Most Followed"}],Me=[{value:"",label:"Any Status"},{value:"ongoing",label:"Ongoing"},{value:"completed",label:"Completed"},{value:"hiatus",label:"Hiatus"},{value:"cancelled",label:"Cancelled"}],Ne=[{value:"",label:"Any Status"},{value:"publishing",label:"Publishing"},{value:"finished",label:"Finished"},{value:"on hiatus",label:"On Hiatus"},{value:"discontinued",label:"Discontinued"}],Ce=[{value:"",label:"All Types"},{value:"manga",label:"Manga"},{value:"novel",label:"Novel"},{value:"one-shot",label:"One-Shot"},{value:"doujinshi",label:"Doujinshi"}],Pe=[{value:"safe",label:"Safe"}],Ie=[{value:"safe",label:"Safe"},{value:"suggestive",label:"Suggestive"},{value:"erotica",label:"Erotica"},{value:"pornographic",label:"Pornographic"}];function He(){const[n,N]=le(),{hasConsent:v,grant:_}=pe(),[j,b]=O(!1),[C,P]=O(n.get("q")||""),{options:I,isLoading:R,refetch:G}=Te(),d=re(()=>I.filter(e=>e.kind==="manga").map(e=>({value:e.id,label:e.label})),[I]),f=n.get("provider")||"",S=f&&d.some(e=>e.value===f)?f:"",T=n.get("q")||"",L=parseInt(n.get("page")||"1"),$=n.get("sort")||"popular",k=n.get("status")||"",w=n.get("type")||"",u=n.get("rating")||"safe",A=n.get("id")||"";U(()=>{document.title="Manga - dango"},[]);const o=v,y=o?u:"safe",H=o?Ie:Pe,i=(e,t=!1)=>{const r=new URLSearchParams(n);for(const[m,E]of Object.entries(e))E?r.set(m,E):r.delete(m);t&&r.delete("page"),N(r)},g=me({provider:S,query:T,page:L,sort:$,status:k,type:w,rating:y,mature:o}),h=g.data?.items??[],z=g.data?.hasNext??!1,p=S||h[0]?.provider||"",{toggle:V,bookmarkedIds:X}=ve(),{popup:s,openPopup:K,scheduleClose:x,cancelClose:B,closePopup:Q}=ue();if(U(()=>{P(T)},[T]),A){const e=new URLSearchParams;o&&u!=="safe"&&e.set("rating",u);const t=n.get("chapter")||"";t&&e.set("chapter",t);const r=e.toString()?`?${e.toString()}`:"",m=`/manga/${p||"mangadex"}/${encodeURIComponent(A)}${t?`/read${r}`:r}`;return a(ne,{to:m,replace:!0})}const W=e=>{e.preventDefault(),he(),i({q:C},!0)},Y=e=>{e.currentTarget.checked&&!v&&b(!0)},J=()=>{_(),b(!1),i({},!0)},Z=()=>{b(!1)},F=e=>{const t=new URLSearchParams;o&&u!=="safe"&&t.set("rating",u);const r=t.toString()?`?${t.toString()}`:"";return`/manga/${e.provider}/${encodeURIComponent(e.id)}${r}`},ee=p==="mangapill"?Ne:Me,ae=p==="mangapill",te=p==="mangadex";return a("div",{className:c.page,children:[a("div",{className:c.header,children:[a("h1",{className:c.pageTitle,children:[a(M,{name:"book"})," Manga"]}),a("form",{className:c.searchForm,onSubmit:W,children:[a("input",{className:c.searchInput,value:C,onChange:e=>P(e.currentTarget.value),placeholder:"Search manga titles...","aria-label":"Search manga"}),a("button",{className:c.searchBtn,type:"submit","aria-label":"Search",children:a(M,{name:"search",size:14})})]}),a("select",{className:l.select,value:S,disabled:d.length===0,onChange:e=>{const t=new URLSearchParams(n);t.set("provider",e.currentTarget.value),t.delete("page"),t.delete("id"),t.delete("chapter"),t.delete("status"),t.delete("type"),N(t)},"aria-label":"Manga provider",children:d.length===0?a("option",{value:"",children:R?"Loading providers…":"No providers available"}):a(q,{children:[a("option",{value:"",children:"Auto"}),d.map(e=>a("option",{value:e.value,children:e.label},e.value))]})}),d.length===0&&!R&&a("button",{className:c.searchBtn,type:"button",onClick:()=>G(),"aria-label":"Retry loading providers",children:a(M,{name:"redo",size:14})})]}),a("div",{className:l.filterRow,children:[p==="mangadex"&&a("select",{className:l.select,value:$,onChange:e=>i({sort:e.currentTarget.value},!0),"aria-label":"Sort manga",children:ye.map(e=>a("option",{value:e.value,children:e.label},e.value))}),a("select",{className:l.select,value:k,onChange:e=>i({status:e.currentTarget.value},!0),"aria-label":"Filter by status",children:ee.map(e=>a("option",{value:e.value,children:e.label},e.label))}),ae&&a("select",{className:l.select,value:w,onChange:e=>i({type:e.currentTarget.value},!0),"aria-label":"Filter by type",children:Ce.filter(e=>e.value!=="doujinshi"||o).map(e=>a("option",{value:e.value,children:e.label},e.value))}),te&&a("select",{className:l.select,value:y,onChange:e=>i({rating:e.currentTarget.value},!0),"aria-label":"Content rating",children:H.map(e=>a("option",{value:e.value,children:e.label},e.value))}),!v&&a("div",{className:l.matureToggleWrap,children:[a("label",{className:l.matureLabel,htmlFor:"manga-mature-toggle",children:"Mature"}),a(se,{id:"manga-mature-toggle",isChecked:!1,onChange:Y})]})]}),g.isError?a(ie,{message:"Failed to load manga. Please try again."}):g.isLoading&&h.length===0?a("div",{className:l.grid,"aria-hidden":!0,children:Array.from({length:12}).map((e,t)=>a("div",{className:l.skeletonCard,children:[a("div",{className:`${l.skeletonThumb} ${l.shimmer}`}),a("div",{className:`${l.skeletonLine} ${l.shimmer}`,style:{width:"88%"}}),a("div",{className:`${l.skeletonLine} ${l.shimmer}`,style:{width:"55%"}})]},t))}):h.length===0?a("p",{className:l.statusMsg,children:"No titles found. Try another search or provider."}):a(q,{children:[a("div",{className:`${l.grid} ${g.isFetching?l.fetching:""}`,children:h.map(e=>{const t=D(e.provider,e.id);return a(ce,{item:{id:t,title:e.title,...Se(e),thumbnail:fe(e.provider,e.cover),typeBadge:e.type||void 0,chapterBadge:e.latestChapter?`Ch. ${e.latestChapter}`:null,isAdult:be(e)},linkTo:F(e),hoverIcon:"info",display:{elements:{poster:{typeBadge:!0,chapterBadge:!0,adultBadge:!0},info:{title:!0,mobileBadges:!0,progress:!1,meta:!1}}},onOpenDetails:r=>K(r,{provider:e.provider,mangaId:e.id,title:e.title,altTitle:e.altTitle,cover:e.cover,contentRating:e.contentRating,readTarget:F(e),rating:y,mature:o}),onPopupHoverIntent:r=>r?B():x(),rawThumbnail:!0},`${e.provider}-${e.id}`)})}),a(de,{page:L,canGoNext:z,onChange:e=>i({page:String(e)}),variant:"labeled"})]}),s&&a(ge,{data:s.data,anchorRect:s.rect,bookmarked:X.has(D(s.data.provider,s.data.mangaId)),onToggleBookmark:()=>V({id:s.data.mangaId,provider:s.data.provider,title:s.data.title,cover:s.data.cover,altTitle:s.data.altTitle??void 0,contentRating:s.data.contentRating}),onMouseEnter:B,onMouseLeave:x,onRequestClose:Q}),j&&a(oe,{isOpen:!0,scope:"section",showResetHint:!0,onClose:Z,onGrant:J})]})}export{He as default};
|