@serifpersia/dango 3.0.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.
Files changed (141) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -0
  3. package/client/dist/assets/AnimeInfo-CMxs0nRH.css +1 -0
  4. package/client/dist/assets/AnimeInfo-DVdaocCl.js +1 -0
  5. package/client/dist/assets/AnimeInfoPage-Bx5EvGt-.js +2 -0
  6. package/client/dist/assets/Asmr-C2i9GKD4.css +1 -0
  7. package/client/dist/assets/Asmr-CIjmFtRH.js +2 -0
  8. package/client/dist/assets/Asmr.module-DPG2JhDJ.js +1 -0
  9. package/client/dist/assets/AvSyncCalibrator-CIYcyon5.css +1 -0
  10. package/client/dist/assets/AvSyncCalibrator-vqErH7Cm.js +10 -0
  11. package/client/dist/assets/ErrorMessage-BwSjzblw.js +1 -0
  12. package/client/dist/assets/ErrorMessage-CXoRbrLN.css +1 -0
  13. package/client/dist/assets/Home-D7YfGBUk.js +1 -0
  14. package/client/dist/assets/Home-DKCfEiwl.css +1 -0
  15. package/client/dist/assets/Insights-BljI64Ua.css +1 -0
  16. package/client/dist/assets/Insights-CLQGrlpX.js +1 -0
  17. package/client/dist/assets/Manga-DQ9HYnpk.js +1 -0
  18. package/client/dist/assets/Manga-H8Wb04w3.css +1 -0
  19. package/client/dist/assets/Map-CXFqXmsZ.css +1 -0
  20. package/client/dist/assets/Map-L_ryVBTq.js +1 -0
  21. package/client/dist/assets/Mature-BeWzAJ7B.js +1 -0
  22. package/client/dist/assets/Mature-DJmUUtlF.css +1 -0
  23. package/client/dist/assets/Player-CYpd__FP.js +30 -0
  24. package/client/dist/assets/Player-DreAhybc.css +1 -0
  25. package/client/dist/assets/PlayerRedirect-fxUAp9JV.js +1 -0
  26. package/client/dist/assets/PlayerSettings-BcsotxP9.js +1 -0
  27. package/client/dist/assets/PlayerSettings-Cqua1CDD.css +1 -0
  28. package/client/dist/assets/QueueRail-B9Pgbqc3.js +1 -0
  29. package/client/dist/assets/QueueRail-BnaltOP8.css +1 -0
  30. package/client/dist/assets/Radio-BvdY5twD.js +1 -0
  31. package/client/dist/assets/Radio-CUuYy3DY.css +1 -0
  32. package/client/dist/assets/Search-BzO-aRP7.css +1 -0
  33. package/client/dist/assets/Search-R9YLAXS1.js +1 -0
  34. package/client/dist/assets/Search.module-D8ZbQAiK.js +1 -0
  35. package/client/dist/assets/Settings-9kYcXdTR.js +21 -0
  36. package/client/dist/assets/Settings-DF8JThUL.css +1 -0
  37. package/client/dist/assets/SkeletonGrid-D5vRvX5q.js +1 -0
  38. package/client/dist/assets/SkeletonGrid-DEbYtO4H.css +1 -0
  39. package/client/dist/assets/SynopsisText-BlFw0R-0.js +1 -0
  40. package/client/dist/assets/SynopsisText-CUgOjOxt.css +1 -0
  41. package/client/dist/assets/Trackers-DfZlnnVq.js +2 -0
  42. package/client/dist/assets/Trackers-Dt9lR_uP.css +1 -0
  43. package/client/dist/assets/Tv-CVKC2YBs.css +1 -0
  44. package/client/dist/assets/Tv-Db1Wx_b7.js +15 -0
  45. package/client/dist/assets/Watchlist-B2nkNZqM.css +1 -0
  46. package/client/dist/assets/Watchlist-a77CYtzu.js +1 -0
  47. package/client/dist/assets/hls-6Owgw2Aj.js +1 -0
  48. package/client/dist/assets/hls-BOLXTnjL.js +42 -0
  49. package/client/dist/assets/index-B6qdXFtl.css +1 -0
  50. package/client/dist/assets/index-B8TPVaIS.js +30354 -0
  51. package/client/dist/assets/index-CpjgU8ou.js +178 -0
  52. package/client/dist/assets/useAnimeInfoData-BOfyi9UJ.js +1 -0
  53. package/client/dist/assets/useIsMobile-CM15uQn8.css +1 -0
  54. package/client/dist/assets/useIsMobile-Cb8HcKRj.js +1 -0
  55. package/client/dist/assets/useMatureConsent-CZMYBVXd.js +1 -0
  56. package/client/dist/assets/vendor-rLNfZm7Y.js +1 -0
  57. package/client/dist/av-sync-test.mp4 +0 -0
  58. package/client/dist/favicon.ico +0 -0
  59. package/client/dist/index.html +31 -0
  60. package/client/dist/logo-mochi.png +0 -0
  61. package/client/dist/logo-sakura.png +0 -0
  62. package/client/dist/logo.png +0 -0
  63. package/client/dist/placeholder.svg +4 -0
  64. package/client/dist/robots.txt +3 -0
  65. package/orchestrator.js +416 -0
  66. package/package.json +89 -0
  67. package/server/dist/app-auth.js +231 -0
  68. package/server/dist/config.js +133 -0
  69. package/server/dist/controllers/auth.controller.js +247 -0
  70. package/server/dist/controllers/data.controller.js +785 -0
  71. package/server/dist/controllers/insights.controller.js +197 -0
  72. package/server/dist/controllers/proxy.controller.js +665 -0
  73. package/server/dist/controllers/settings.controller.js +267 -0
  74. package/server/dist/controllers/watchlist.controller.js +967 -0
  75. package/server/dist/db.js +152 -0
  76. package/server/dist/discord-gateway.js +381 -0
  77. package/server/dist/discord-rpc.js +424 -0
  78. package/server/dist/github-sync.js +403 -0
  79. package/server/dist/google.js +549 -0
  80. package/server/dist/lib/anilist.js +1519 -0
  81. package/server/dist/lib/anischedule.js +202 -0
  82. package/server/dist/lib/ipc.js +32 -0
  83. package/server/dist/lib/kitsu.js +552 -0
  84. package/server/dist/lib/mal.js +886 -0
  85. package/server/dist/lib/migration.js +335 -0
  86. package/server/dist/lib/temp-ids.js +11 -0
  87. package/server/dist/lib/tmdb.js +71 -0
  88. package/server/dist/lib/tracker/anilist-tracker.js +250 -0
  89. package/server/dist/lib/tracker/sync.service.js +312 -0
  90. package/server/dist/logger.js +19 -0
  91. package/server/dist/providers/123anime.provider.js +240 -0
  92. package/server/dist/providers/anilight.provider.js +366 -0
  93. package/server/dist/providers/animepahe.provider.js +531 -0
  94. package/server/dist/providers/animeya.provider.js +746 -0
  95. package/server/dist/providers/base-provider.js +45 -0
  96. package/server/dist/providers/hn.provider.js +473 -0
  97. package/server/dist/providers/ht.provider.js +439 -0
  98. package/server/dist/providers/jasmr.provider.js +504 -0
  99. package/server/dist/providers/kaa.provider.js +388 -0
  100. package/server/dist/providers/manga/manga.types.js +10 -0
  101. package/server/dist/providers/manga/mangadex.provider.js +227 -0
  102. package/server/dist/providers/manga/mangapill.provider.js +232 -0
  103. package/server/dist/providers/megaplay.provider.js +583 -0
  104. package/server/dist/providers/op.provider.js +440 -0
  105. package/server/dist/providers/provider.interface.js +2 -0
  106. package/server/dist/providers/title-matching.js +234 -0
  107. package/server/dist/providers/wh.provider.js +600 -0
  108. package/server/dist/rclone.js +126 -0
  109. package/server/dist/repositories/insights.repository.js +43 -0
  110. package/server/dist/repositories/mal-cache.repository.js +66 -0
  111. package/server/dist/repositories/notifications.repository.js +40 -0
  112. package/server/dist/repositories/queue.repository.js +64 -0
  113. package/server/dist/repositories/settings.repository.js +15 -0
  114. package/server/dist/repositories/shows-meta.repository.js +43 -0
  115. package/server/dist/repositories/temp-show-ids.repository.js +54 -0
  116. package/server/dist/repositories/watched-episodes.repository.js +54 -0
  117. package/server/dist/repositories/watchlist.repository.js +74 -0
  118. package/server/dist/routes/asmr.routes.js +72 -0
  119. package/server/dist/routes/auth.routes.js +28 -0
  120. package/server/dist/routes/data.routes.js +50 -0
  121. package/server/dist/routes/discord-gateway.routes.js +57 -0
  122. package/server/dist/routes/insights.routes.js +12 -0
  123. package/server/dist/routes/lan-auth.routes.js +49 -0
  124. package/server/dist/routes/manga.routes.js +115 -0
  125. package/server/dist/routes/proxy.routes.js +15 -0
  126. package/server/dist/routes/radio.routes.js +143 -0
  127. package/server/dist/routes/settings.routes.js +27 -0
  128. package/server/dist/routes/tracker.routes.js +143 -0
  129. package/server/dist/routes/translate.routes.js +90 -0
  130. package/server/dist/routes/tv.routes.js +843 -0
  131. package/server/dist/routes/watchlist.routes.js +312 -0
  132. package/server/dist/server.js +310 -0
  133. package/server/dist/shipped-defaults.js +8 -0
  134. package/server/dist/sync-config.js +32 -0
  135. package/server/dist/sync.js +506 -0
  136. package/server/dist/utils/cookie.utils.js +17 -0
  137. package/server/dist/utils/db-utils.js +15 -0
  138. package/server/dist/utils/env.utils.js +83 -0
  139. package/server/dist/utils/machine-id.js +46 -0
  140. package/server/dist/utils/request-context.js +5 -0
  141. package/server/dist/utils/security.utils.js +99 -0
@@ -0,0 +1 @@
1
+ import{A as ee,d as se,q as Q,h as U,g as ue,e,L as pt,T as Ie,b as Lt,f as Mt,S as Dt,u as Pt,a as Rt,_ as Bt}from"./vendor-rLNfZm7Y.js";import{u as He,F as ye,a as be,b as Ot,c as Ft,d as qe,e as $t,f as jt,g as gt,h as Ee,s as Vt,i as Wt,j as zt,k as Gt,l as it,m as Ht,n as qt,o as Qt,p as Ut,q as Yt,r as Kt,t as Xt,v as Jt,w as Zt,x as en,B as Le,M as Ve}from"./index-CpjgU8ou.js";import{A as We,a as _e,S as vt}from"./SkeletonGrid-D5vRvX5q.js";import{E as Qe}from"./ErrorMessage-BwSjzblw.js";import{Q as tn}from"./QueueRail-B9Pgbqc3.js";import"./useIsMobile-Cb8HcKRj.js";import"./useAnimeInfoData-BOfyi9UJ.js";const nn="_sectionWrapper_1e9oc_9",rn="_sectionTitleNoMargin_1e9oc_13",on="_carousel_1e9oc_147",G={"section-header":"_section-header_1e9oc_1",sectionWrapper:nn,sectionTitleNoMargin:rn,"title-wrapper":"_title-wrapper_1e9oc_17","header-controls":"_header-controls_1e9oc_24","collapse-button":"_collapse-button_1e9oc_48","title-link":"_title-link_1e9oc_67","continue-watching":"_continue-watching_1e9oc_86","nav-arrows":"_nav-arrows_1e9oc_108","nav-button":"_nav-button_1e9oc_117","carousel-container":"_carousel-container_1e9oc_147",carousel:on,"carousel-inner":"_carousel-inner_1e9oc_156","carousel-card":"_carousel-card_1e9oc_161"};function sn(t){return Object.prototype.toString.call(t)==="[object Object]"}function lt(t){return sn(t)||Array.isArray(t)}function an(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function Ue(t,n){const o=Object.keys(t),s=Object.keys(n);if(o.length!==s.length)return!1;const l=JSON.stringify(Object.keys(t.breakpoints||{})),a=JSON.stringify(Object.keys(n.breakpoints||{}));return l!==a?!1:o.every(r=>{const i=t[r],c=n[r];return typeof i=="function"?`${i}`==`${c}`:!lt(i)||!lt(c)?i===c:Ue(i,c)})}function ut(t){return t.concat().sort((n,o)=>n.name>o.name?1:-1).map(n=>n.options)}function cn(t,n){if(t.length!==n.length)return!1;const o=ut(t),s=ut(n);return o.every((l,a)=>{const r=s[a];return Ue(l,r)})}function Ye(t){return typeof t=="number"}function ze(t){return typeof t=="string"}function Pe(t){return typeof t=="boolean"}function dt(t){return Object.prototype.toString.call(t)==="[object Object]"}function j(t){return Math.abs(t)}function Ke(t){return Math.sign(t)}function we(t,n){return j(t-n)}function ln(t,n){if(t===0||n===0||j(t)<=j(n))return 0;const o=we(j(t),j(n));return j(o/t)}function un(t){return Math.round(t*100)/100}function Te(t){return ke(t).map(Number)}function ie(t){return t[xe(t)]}function xe(t){return Math.max(0,t.length-1)}function Xe(t,n){return n===xe(t)}function ft(t,n=0){return Array.from(Array(t),(o,s)=>n+s)}function ke(t){return Object.keys(t)}function _t(t,n){return[t,n].reduce((o,s)=>(ke(s).forEach(l=>{const a=o[l],r=s[l],i=dt(a)&&dt(r);o[l]=i?_t(a,r):r}),o),{})}function Ge(t,n){return typeof n.MouseEvent<"u"&&t instanceof n.MouseEvent}function dn(t,n){const o={start:s,center:l,end:a};function s(){return 0}function l(c){return a(c)/2}function a(c){return n-c}function r(c,d){return ze(t)?o[t](c):t(n,c,d)}return{measure:r}}function Ce(){let t=[];function n(l,a,r,i={passive:!0}){let c;if("addEventListener"in l)l.addEventListener(a,r,i),c=()=>l.removeEventListener(a,r,i);else{const d=l;d.addListener(r),c=()=>d.removeListener(r)}return t.push(c),s}function o(){t=t.filter(l=>l())}const s={add:n,clear:o};return s}function fn(t,n,o,s){const l=Ce(),a=1e3/60;let r=null,i=0,c=0;function d(){l.add(t,"visibilitychange",()=>{t.hidden&&h()})}function _(){y(),l.clear()}function g(m){if(!c)return;r||(r=m,o(),o());const u=m-r;for(r=m,i+=u;i>=a;)o(),i-=a;const p=i/a;s(p),c&&(c=n.requestAnimationFrame(g))}function v(){c||(c=n.requestAnimationFrame(g))}function y(){n.cancelAnimationFrame(c),r=null,i=0,c=0}function h(){r=null,i=0}return{init:d,destroy:_,start:v,stop:y,update:o,render:s}}function mn(t,n){const o=n==="rtl",s=t==="y",l=s?"y":"x",a=s?"x":"y",r=!s&&o?-1:1,i=_(),c=g();function d(h){const{height:f,width:m}=h;return s?f:m}function _(){return s?"top":o?"right":"left"}function g(){return s?"bottom":o?"left":"right"}function v(h){return h*r}return{scroll:l,cross:a,startEdge:i,endEdge:c,measureSize:d,direction:v}}function ge(t=0,n=0){const o=j(t-n);function s(d){return d<t}function l(d){return d>n}function a(d){return s(d)||l(d)}function r(d){return a(d)?s(d)?t:n:d}function i(d){return o?d-o*Math.ceil((d-n)/o):d}return{length:o,max:n,min:t,constrain:r,reachedAny:a,reachedMax:l,reachedMin:s,removeOffset:i}}function yt(t,n,o){const{constrain:s}=ge(0,t),l=t+1;let a=r(n);function r(v){return o?j((l+v)%l):s(v)}function i(){return a}function c(v){return a=r(v),g}function d(v){return _().set(i()+v)}function _(){return yt(t,i(),o)}const g={get:i,set:c,add:d,clone:_};return g}function hn(t,n,o,s,l,a,r,i,c,d,_,g,v,y,h,f,m,u,p){const{cross:b,direction:x}=t,E=["INPUT","SELECT","TEXTAREA"],k={passive:!1},N=Ce(),I=Ce(),w=ge(50,225).constrain(y.measure(20)),R={mouse:300,touch:400},D={mouse:500,touch:600},M=h?43:25;let W=!1,H=0,Y=0,te=!1,ne=!1,X=!1,re=!1;function de(S){if(!p)return;function O(Z){(Pe(p)||p(S,Z))&&ae(Z)}const $=n;N.add($,"dragstart",Z=>Z.preventDefault(),k).add($,"touchmove",()=>{},k).add($,"touchend",()=>{}).add($,"touchstart",O).add($,"mousedown",O).add($,"touchcancel",q).add($,"contextmenu",q).add($,"click",ce,!0)}function J(){N.clear(),I.clear()}function T(){const S=re?o:n;I.add(S,"touchmove",z,k).add(S,"touchend",q).add(S,"mousemove",z,k).add(S,"mouseup",q)}function P(S){const O=S.nodeName||"";return E.includes(O)}function B(){return(h?D:R)[re?"mouse":"touch"]}function oe(S,O){const $=g.add(Ke(S)*-1),Z=_.byDistance(S,!h).distance;return h||j(S)<w?Z:m&&O?Z*.5:_.byIndex($.get(),0).distance}function ae(S){const O=Ge(S,s);re=O,X=h&&O&&!S.buttons&&W,W=we(l.get(),r.get())>=2,!(O&&S.button!==0)&&(P(S.target)||(te=!0,a.pointerDown(S),d.useFriction(0).useDuration(0),l.set(r),T(),H=a.readPoint(S),Y=a.readPoint(S,b),v.emit("pointerDown")))}function z(S){if(!Ge(S,s)&&S.touches.length>=2)return q(S);const $=a.readPoint(S),Z=a.readPoint(S,b),le=we($,H),fe=we(Z,Y);if(!ne&&!re&&(!S.cancelable||(ne=le>fe,!ne)))return q(S);const he=a.pointerMove(S);le>f&&(X=!0),d.useFriction(.3).useDuration(.75),i.start(),l.add(x(he)),S.preventDefault()}function q(S){const $=_.byDistance(0,!1).index!==g.get(),Z=a.pointerUp(S)*B(),le=oe(x(Z),$),fe=ln(Z,le),he=M-10*fe,me=u+fe/50;ne=!1,te=!1,I.clear(),d.useDuration(he).useFriction(me),c.distance(le,!h),re=!1,v.emit("pointerUp")}function ce(S){X&&(S.stopPropagation(),S.preventDefault(),X=!1)}function A(){return te}return{init:de,destroy:J,pointerDown:A}}function pn(t,n){let s,l;function a(g){return g.timeStamp}function r(g,v){const h=`client${(v||t.scroll)==="x"?"X":"Y"}`;return(Ge(g,n)?g:g.touches[0])[h]}function i(g){return s=g,l=g,r(g)}function c(g){const v=r(g)-r(l),y=a(g)-a(s)>170;return l=g,y&&(s=g),v}function d(g){if(!s||!l)return 0;const v=r(l)-r(s),y=a(g)-a(s),h=a(g)-a(l)>170,f=v/y;return y&&!h&&j(f)>.1?f:0}return{pointerDown:i,pointerMove:c,pointerUp:d,readPoint:r}}function gn(){function t(o){const{offsetTop:s,offsetLeft:l,offsetWidth:a,offsetHeight:r}=o;return{top:s,right:l+a,bottom:s+r,left:l,width:a,height:r}}return{measure:t}}function vn(t){function n(s){return t*(s/100)}return{measure:n}}function _n(t,n,o,s,l,a,r){const i=[t].concat(s);let c,d,_=[],g=!1;function v(m){return l.measureSize(r.measure(m))}function y(m){if(!a)return;d=v(t),_=s.map(v);function u(p){for(const b of p){if(g)return;const x=b.target===t,E=s.indexOf(b.target),k=x?d:_[E],N=v(x?t:s[E]);if(j(N-k)>=.5){m.reInit(),n.emit("resize");break}}}c=new ResizeObserver(p=>{(Pe(a)||a(m,p))&&u(p)}),o.requestAnimationFrame(()=>{i.forEach(p=>c.observe(p))})}function h(){g=!0,c&&c.disconnect()}return{init:y,destroy:h}}function yn(t,n,o,s,l,a){let r=0,i=0,c=l,d=a,_=t.get(),g=0;function v(){const k=s.get()-t.get(),N=!c;let I=0;return N?(r=0,o.set(s),t.set(s),I=k):(o.set(t),r+=k/c,r*=d,_+=r,t.add(r),I=_-g),i=Ke(I),g=_,E}function y(){const k=s.get()-n.get();return j(k)<.001}function h(){return c}function f(){return i}function m(){return r}function u(){return b(l)}function p(){return x(a)}function b(k){return c=k,E}function x(k){return d=k,E}const E={direction:f,duration:h,velocity:m,seek:v,settled:y,useBaseFriction:p,useBaseDuration:u,useFriction:x,useDuration:b};return E}function bn(t,n,o,s,l){const a=l.measure(10),r=l.measure(50),i=ge(.1,.99);let c=!1;function d(){return!(c||!t.reachedAny(o.get())||!t.reachedAny(n.get()))}function _(y){if(!d())return;const h=t.reachedMin(n.get())?"min":"max",f=j(t[h]-n.get()),m=o.get()-n.get(),u=i.constrain(f/r);o.subtract(m*u),!y&&j(m)<a&&(o.set(t.constrain(o.get())),s.useDuration(25).useBaseFriction())}function g(y){c=!y}return{shouldConstrain:d,constrain:_,toggleActive:g}}function Sn(t,n,o,s,l){const a=ge(-n+t,0),r=g(),i=_(),c=v();function d(h,f){return we(h,f)<=1}function _(){const h=r[0],f=ie(r),m=r.lastIndexOf(h),u=r.indexOf(f)+1;return ge(m,u)}function g(){return o.map((h,f)=>{const{min:m,max:u}=a,p=a.constrain(h),b=!f,x=Xe(o,f);return b?u:x||d(m,p)?m:d(u,p)?u:p}).map(h=>parseFloat(h.toFixed(3)))}function v(){if(n<=t+l)return[a.max];if(s==="keepSnaps")return r;const{min:h,max:f}=i;return r.slice(h,f)}return{snapsContained:c,scrollContainLimit:i}}function Nn(t,n,o){const s=n[0],l=o?s-t:ie(n);return{limit:ge(l,s)}}function wn(t,n,o,s){const a=n.min+.1,r=n.max+.1,{reachedMin:i,reachedMax:c}=ge(a,r);function d(v){return v===1?c(o.get()):v===-1?i(o.get()):!1}function _(v){if(!d(v))return;const y=t*(v*-1);s.forEach(h=>h.add(y))}return{loop:_}}function Tn(t){const{max:n,length:o}=t;function s(a){const r=a-n;return o?r/-o:0}return{get:s}}function kn(t,n,o,s,l){const{startEdge:a,endEdge:r}=t,{groupSlides:i}=l,c=g().map(n.measure),d=v(),_=y();function g(){return i(s).map(f=>ie(f)[r]-f[0][a]).map(j)}function v(){return s.map(f=>o[a]-f[a]).map(f=>-j(f))}function y(){return i(d).map(f=>f[0]).map((f,m)=>f+c[m])}return{snaps:d,snapsAligned:_}}function Cn(t,n,o,s,l,a){const{groupSlides:r}=l,{min:i,max:c}=s,d=_();function _(){const v=r(a),y=!t||n==="keepSnaps";return o.length===1?[a]:y?v:v.slice(i,c).map((h,f,m)=>{const u=!f,p=Xe(m,f);if(u){const b=ie(m[0])+1;return ft(b)}if(p){const b=xe(a)-ie(m)[0]+1;return ft(b,ie(m)[0])}return h})}return{slideRegistry:d}}function In(t,n,o,s,l){const{reachedAny:a,removeOffset:r,constrain:i}=s;function c(h){return h.concat().sort((f,m)=>j(f)-j(m))[0]}function d(h){const f=t?r(h):i(h),m=n.map((p,b)=>({diff:_(p-f,0),index:b})).sort((p,b)=>j(p.diff)-j(b.diff)),{index:u}=m[0];return{index:u,distance:f}}function _(h,f){const m=[h,h+o,h-o];if(!t)return h;if(!f)return c(m);const u=m.filter(p=>Ke(p)===f);return u.length?c(u):ie(m)-o}function g(h,f){const m=n[h]-l.get(),u=_(m,f);return{index:h,distance:u}}function v(h,f){const m=l.get()+h,{index:u,distance:p}=d(m),b=!t&&a(m);if(!f||b)return{index:u,distance:h};const x=n[u]-p,E=h+_(x,0);return{index:u,distance:E}}return{byDistance:v,byIndex:g,shortcut:_}}function xn(t,n,o,s,l,a,r){function i(g){const v=g.distance,y=g.index!==n.get();a.add(v),v&&(s.duration()?t.start():(t.update(),t.render(1),t.update())),y&&(o.set(n.get()),n.set(g.index),r.emit("select"))}function c(g,v){const y=l.byDistance(g,v);i(y)}function d(g,v){const y=n.clone().set(g),h=l.byIndex(y.get(),v);i(h)}return{distance:c,index:d}}function An(t,n,o,s,l,a,r,i){const c={passive:!0,capture:!0};let d=0;function _(y){if(!i)return;function h(f){if(new Date().getTime()-d>10)return;r.emit("slideFocusStart"),t.scrollLeft=0;const p=o.findIndex(b=>b.includes(f));Ye(p)&&(l.useDuration(0),s.index(p,0),r.emit("slideFocus"))}a.add(document,"keydown",g,!1),n.forEach((f,m)=>{a.add(f,"focus",u=>{(Pe(i)||i(y,u))&&h(m)},c)})}function g(y){y.code==="Tab"&&(d=new Date().getTime())}return{init:_}}function Ne(t){let n=t;function o(){return n}function s(c){n=r(c)}function l(c){n+=r(c)}function a(c){n-=r(c)}function r(c){return Ye(c)?c:c.get()}return{get:o,set:s,add:l,subtract:a}}function bt(t,n){const o=t.scroll==="x"?r:i,s=n.style;let l=null,a=!1;function r(v){return`translate3d(${v}px,0px,0px)`}function i(v){return`translate3d(0px,${v}px,0px)`}function c(v){if(a)return;const y=un(t.direction(v));y!==l&&(s.transform=o(y),l=y)}function d(v){a=!v}function _(){a||(s.transform="",n.getAttribute("style")||n.removeAttribute("style"))}return{clear:_,to:c,toggleActive:d}}function En(t,n,o,s,l,a,r,i,c){const _=Te(l),g=Te(l).reverse(),v=u().concat(p());function y(N,I){return N.reduce((w,R)=>w-l[R],I)}function h(N,I){return N.reduce((w,R)=>y(w,I)>0?w.concat([R]):w,[])}function f(N){return a.map((I,w)=>({start:I-s[w]+.5+N,end:I+n-.5+N}))}function m(N,I,w){const R=f(I);return N.map(D=>{const M=w?0:-o,W=w?o:0,H=w?"end":"start",Y=R[D][H];return{index:D,loopPoint:Y,slideLocation:Ne(-1),translate:bt(t,c[D]),target:()=>i.get()>Y?M:W}})}function u(){const N=r[0],I=h(g,N);return m(I,o,!1)}function p(){const N=n-r[0]-1,I=h(_,N);return m(I,-o,!0)}function b(){return v.every(({index:N})=>{const I=_.filter(w=>w!==N);return y(I,n)<=.1})}function x(){v.forEach(N=>{const{target:I,translate:w,slideLocation:R}=N,D=I();D!==R.get()&&(w.to(D),R.set(D))})}function E(){v.forEach(N=>N.translate.clear())}return{canLoop:b,clear:E,loop:x,loopPoints:v}}function Ln(t,n,o){let s,l=!1;function a(c){if(!o)return;function d(_){for(const g of _)if(g.type==="childList"){c.reInit(),n.emit("slidesChanged");break}}s=new MutationObserver(_=>{l||(Pe(o)||o(c,_))&&d(_)}),s.observe(t,{childList:!0})}function r(){s&&s.disconnect(),l=!0}return{init:a,destroy:r}}function Mn(t,n,o,s){const l={};let a=null,r=null,i,c=!1;function d(){i=new IntersectionObserver(h=>{c||(h.forEach(f=>{const m=n.indexOf(f.target);l[m]=f}),a=null,r=null,o.emit("slidesInView"))},{root:t.parentElement,threshold:s}),n.forEach(h=>i.observe(h))}function _(){i&&i.disconnect(),c=!0}function g(h){return ke(l).reduce((f,m)=>{const u=parseInt(m),{isIntersecting:p}=l[u];return(h&&p||!h&&!p)&&f.push(u),f},[])}function v(h=!0){if(h&&a)return a;if(!h&&r)return r;const f=g(h);return h&&(a=f),h||(r=f),f}return{init:d,destroy:_,get:v}}function Dn(t,n,o,s,l,a){const{measureSize:r,startEdge:i,endEdge:c}=t,d=o[0]&&l,_=h(),g=f(),v=o.map(r),y=m();function h(){if(!d)return 0;const p=o[0];return j(n[i]-p[i])}function f(){if(!d)return 0;const p=a.getComputedStyle(ie(s));return parseFloat(p.getPropertyValue(`margin-${c}`))}function m(){return o.map((p,b,x)=>{const E=!b,k=Xe(x,b);return E?v[b]+_:k?v[b]+g:x[b+1][i]-p[i]}).map(j)}return{slideSizes:v,slideSizesWithGaps:y,startGap:_,endGap:g}}function Pn(t,n,o,s,l,a,r,i,c){const{startEdge:d,endEdge:_,direction:g}=t,v=Ye(o);function y(u,p){return Te(u).filter(b=>b%p===0).map(b=>u.slice(b,b+p))}function h(u){return u.length?Te(u).reduce((p,b,x)=>{const E=ie(p)||0,k=E===0,N=b===xe(u),I=l[d]-a[E][d],w=l[d]-a[b][_],R=!s&&k?g(r):0,D=!s&&N?g(i):0,M=j(w-D-(I+R));return x&&M>n+c&&p.push(b),N&&p.push(u.length),p},[]).map((p,b,x)=>{const E=Math.max(x[b-1]||0);return u.slice(E,p)}):[]}function f(u){return v?y(u,o):h(u)}return{groupSlides:f}}function Rn(t,n,o,s,l,a,r){const{align:i,axis:c,direction:d,startIndex:_,loop:g,duration:v,dragFree:y,dragThreshold:h,inViewThreshold:f,slidesToScroll:m,skipSnaps:u,containScroll:p,watchResize:b,watchSlides:x,watchDrag:E,watchFocus:k}=a,N=2,I=gn(),w=I.measure(n),R=o.map(I.measure),D=mn(c,d),M=D.measureSize(w),W=vn(M),H=dn(i,M),Y=!g&&!!p,te=g||!!p,{slideSizes:ne,slideSizesWithGaps:X,startGap:re,endGap:de}=Dn(D,w,R,o,te,l),J=Pn(D,M,m,g,w,R,re,de,N),{snaps:T,snapsAligned:P}=kn(D,H,w,R,J),B=-ie(T)+ie(X),{snapsContained:oe,scrollContainLimit:ae}=Sn(M,B,P,p,N),z=Y?oe:P,{limit:q}=Nn(B,z,g),ce=yt(xe(z),_,g),A=ce.clone(),L=Te(o),S=({dragHandler:ve,scrollBody:$e,scrollBounds:je,options:{loop:Ae}})=>{Ae||je.constrain(ve.pointerDown()),$e.seek()},O=({scrollBody:ve,translate:$e,location:je,offsetLocation:Ae,previousLocation:wt,scrollLooper:Tt,slideLooper:kt,dragHandler:Ct,animation:It,eventHandler:nt,scrollBounds:xt,options:{loop:rt}},ot)=>{const st=ve.settled(),At=!xt.shouldConstrain(),at=rt?st:st&&At,ct=at&&!Ct.pointerDown();ct&&It.stop();const Et=je.get()*ot+wt.get()*(1-ot);Ae.set(Et),rt&&(Tt.loop(ve.direction()),kt.loop()),$e.to(Ae.get()),ct&&nt.emit("settle"),at||nt.emit("scroll")},$=fn(s,l,()=>S(Fe),ve=>O(Fe,ve)),Z=.68,le=z[ce.get()],fe=Ne(le),he=Ne(le),me=Ne(le),pe=Ne(le),Se=yn(fe,me,he,pe,v,Z),Be=In(g,z,B,q,pe),Oe=xn($,ce,A,Se,Be,pe,r),Ze=Tn(q),et=Ce(),St=Mn(n,o,r,f),{slideRegistry:tt}=Cn(Y,p,z,ae,J,L),Nt=An(t,o,tt,Oe,Se,et,r,k),Fe={ownerDocument:s,ownerWindow:l,eventHandler:r,containerRect:w,slideRects:R,animation:$,axis:D,dragHandler:hn(D,t,s,l,pe,pn(D,l),fe,$,Oe,Se,Be,ce,r,W,y,h,u,Z,E),eventStore:et,percentOfView:W,index:ce,indexPrevious:A,limit:q,location:fe,offsetLocation:me,previousLocation:he,options:a,resizeHandler:_n(n,r,l,o,D,b,I),scrollBody:Se,scrollBounds:bn(q,me,pe,Se,W),scrollLooper:wn(B,q,me,[fe,me,he,pe]),scrollProgress:Ze,scrollSnapList:z.map(Ze.get),scrollSnaps:z,scrollTarget:Be,scrollTo:Oe,slideLooper:En(D,M,B,ne,X,T,z,me,o),slideFocus:Nt,slidesHandler:Ln(n,r,x),slidesInView:St,slideIndexes:L,slideRegistry:tt,slidesToScroll:J,target:pe,translate:bt(D,n)};return Fe}function Bn(){let t={},n;function o(d){n=d}function s(d){return t[d]||[]}function l(d){return s(d).forEach(_=>_(n,d)),c}function a(d,_){return t[d]=s(d).concat([_]),c}function r(d,_){return t[d]=s(d).filter(g=>g!==_),c}function i(){t={}}const c={init:o,emit:l,off:r,on:a,clear:i};return c}const On={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function Fn(t){function n(a,r){return _t(a,r||{})}function o(a){const r=a.breakpoints||{},i=ke(r).filter(c=>t.matchMedia(c).matches).map(c=>r[c]).reduce((c,d)=>n(c,d),{});return n(a,i)}function s(a){return a.map(r=>ke(r.breakpoints||{})).reduce((r,i)=>r.concat(i),[]).map(t.matchMedia)}return{mergeOptions:n,optionsAtMedia:o,optionsMediaQueries:s}}function $n(t){let n=[];function o(a,r){return n=r.filter(({options:i})=>t.optionsAtMedia(i).active!==!1),n.forEach(i=>i.init(a,t)),r.reduce((i,c)=>Object.assign(i,{[c.name]:c}),{})}function s(){n=n.filter(a=>a.destroy())}return{init:o,destroy:s}}function De(t,n,o){const s=t.ownerDocument,l=s.defaultView,a=Fn(l),r=$n(a),i=Ce(),c=Bn(),{mergeOptions:d,optionsAtMedia:_,optionsMediaQueries:g}=a,{on:v,off:y,emit:h}=c,f=D;let m=!1,u,p=d(On,De.globalOptions),b=d(p),x=[],E,k,N;function I(){const{container:L,slides:S}=b;k=(ze(L)?t.querySelector(L):L)||t.children[0];const $=ze(S)?k.querySelectorAll(S):S;N=[].slice.call($||k.children)}function w(L){const S=Rn(t,k,N,s,l,L,c);if(L.loop&&!S.slideLooper.canLoop()){const O=Object.assign({},L,{loop:!1});return w(O)}return S}function R(L,S){m||(p=d(p,L),b=_(p),x=S||x,I(),u=w(b),g([p,...x.map(({options:O})=>O)]).forEach(O=>i.add(O,"change",D)),b.active&&(u.translate.to(u.location.get()),u.animation.init(),u.slidesInView.init(),u.slideFocus.init(A),u.eventHandler.init(A),u.resizeHandler.init(A),u.slidesHandler.init(A),u.options.loop&&u.slideLooper.loop(),k.offsetParent&&N.length&&u.dragHandler.init(A),E=r.init(A,x)))}function D(L,S){const O=J();M(),R(d({startIndex:O},L),S),c.emit("reInit")}function M(){u.dragHandler.destroy(),u.eventStore.clear(),u.translate.clear(),u.slideLooper.clear(),u.resizeHandler.destroy(),u.slidesHandler.destroy(),u.slidesInView.destroy(),u.animation.destroy(),r.destroy(),i.clear()}function W(){m||(m=!0,i.clear(),M(),c.emit("destroy"),c.clear())}function H(L,S,O){!b.active||m||(u.scrollBody.useBaseFriction().useDuration(S===!0?0:b.duration),u.scrollTo.index(L,O||0))}function Y(L){const S=u.index.add(1).get();H(S,L,-1)}function te(L){const S=u.index.add(-1).get();H(S,L,1)}function ne(){return u.index.add(1).get()!==J()}function X(){return u.index.add(-1).get()!==J()}function re(){return u.scrollSnapList}function de(){return u.scrollProgress.get(u.offsetLocation.get())}function J(){return u.index.get()}function T(){return u.indexPrevious.get()}function P(){return u.slidesInView.get()}function B(){return u.slidesInView.get(!1)}function oe(){return E}function ae(){return u}function z(){return t}function q(){return k}function ce(){return N}const A={canScrollNext:ne,canScrollPrev:X,containerNode:q,internalEngine:ae,destroy:W,off:y,on:v,emit:h,plugins:oe,previousScrollSnap:T,reInit:f,rootNode:z,scrollNext:Y,scrollPrev:te,scrollProgress:de,scrollSnapList:re,scrollTo:H,selectedScrollSnap:J,slideNodes:ce,slidesInView:P,slidesNotInView:B};return R(n,o),setTimeout(()=>c.emit("init"),0),A}De.globalOptions=void 0;function Je(t={},n=[]){const o=ee(t),s=ee(n),[l,a]=se(),[r,i]=se(),c=Q(()=>{l&&l.reInit(o.current,s.current)},[l]);return U(()=>{Ue(o.current,t)||(o.current=t,c())},[t,c]),U(()=>{cn(s.current,n)||(s.current=n,c())},[n,c]),U(()=>{if(an()&&r){De.globalOptions=Je.globalOptions;const d=De(r,o.current,s.current);return a(d),()=>d.destroy()}else a(void 0)},[r,a]),[i,l]}Je.globalOptions=void 0;function Re({align:t="start",containScroll:n="trimSnaps",scrollFraction:o=.8,threshold:s=.6,onReachThreshold:l}={}){const[a,r]=Je({align:t,containScroll:n,dragFree:!0}),[i,c]=se(!1),d=ee({scrollFraction:o,threshold:s,onReachThreshold:l}),_=ee(!1);U(()=>{d.current={scrollFraction:o,threshold:s,onReachThreshold:l}});const g=Q(f=>{c(f.canScrollPrev()||f.canScrollNext())},[]);U(()=>{if(!r)return;const f=()=>{const m=r.scrollProgress();m>=d.current.threshold&&!_.current?(_.current=!0,d.current.onReachThreshold?.()):m<d.current.threshold&&(_.current=!1),g(r)};return r.on("init",f),r.on("reInit",f),r.on("scroll",f),r.on("resize",f),()=>{r.off("init",f),r.off("reInit",f),r.off("scroll",f),r.off("resize",f)}},[r,g]);const v=Q(f=>{const m=f.containerNode().firstElementChild;if(!m)return 1;const u=f.rootNode().getBoundingClientRect().width,p=m.getBoundingClientRect().width;return p?Math.max(1,Math.round(u/p)):1},[]),y=Q((f,m=!1)=>{if(!r)return;const u=Math.max(1,Math.round(v(r)*d.current.scrollFraction)),p=r.selectedScrollSnap()+(f==="left"?-u:u);r.scrollTo(p,m)},[r,v]),h=Q((f=!1)=>{r?.scrollTo(0,f)},[r]);return{emblaRef:a,api:r,canScroll:i,stepBy:y,scrollToStart:h}}const jn=({title:t,eyebrow:n,animeList:o,continueWatching:s,titleLink:l,onRemove:a,loading:r,emptyState:i,carousel:c,cardConfig:d,layout:_,onReachThreshold:g,scrollThreshold:v,isFetchingNextPage:y,collapsible:h,defaultExpanded:f=!0})=>{const{lowEndMode:m}=He(),{emblaRef:u,stepBy:p,scrollToStart:b}=Re({onReachThreshold:g,threshold:v}),[x,E]=ue.useState(f);ue.useEffect(()=>{E(f)},[f]);const k=ue.useRef(0);if(ue.useEffect(()=>{s&&o.length>0&&x&&(o.length<=k.current||k.current===0)&&b(),o.length>0&&(k.current=o.length)},[o.length,s,x,b]),!r&&o.length===0&&!i&&!h)return null;const I=_||"vertical";return e("section",{className:`${G.sectionWrapper} ${s?G["continue-watching"]:""}`,children:[e("div",{className:G["section-header"],children:[e("div",{className:G["title-wrapper"],children:[e("div",{className:"title-stack",children:[n&&e("div",{className:"section-eyebrow",children:n}),l?e(pt,{to:l,className:G["title-link"],children:e("div",{className:`section-title ${G.sectionTitleNoMargin}`,children:t})}):e("div",{className:`section-title ${G.sectionTitleNoMargin}`,children:t})]}),c&&o.length>0&&x&&e("div",{className:G["nav-arrows"],children:[e("button",{className:G["nav-button"],type:"button","aria-label":"Scroll left",onClick:w=>{w.preventDefault(),p("left",m)},children:e(ye,{})}),e("button",{className:G["nav-button"],type:"button","aria-label":"Scroll right",onClick:w=>{w.preventDefault(),p("right",m)},children:e(be,{})})]})]}),e("div",{className:G["header-controls"],children:h&&e("button",{className:G["collapse-button"],type:"button",onClick:()=>E(w=>!w),"aria-expanded":x,"aria-label":x?`Collapse ${t}`:`Expand ${t}`,children:x?e(Ot,{}):e(Ft,{})})})]}),x&&(c?!r&&o.length===0&&i?e("div",{children:i}):e("div",{className:G["carousel-container"],children:e("div",{className:G.carousel,ref:u,children:e("div",{className:G["carousel-inner"],children:[r&&o.length===0?Array.from({length:7}).map((w,R)=>e("div",{className:G["carousel-card"],children:e(We,{layout:I})},R)):o.map(w=>e("div",{className:G["carousel-card"],children:e(_e,{anime:w,continueWatching:s,onRemove:a,config:d,layout:I})},w._id)),y&&e("div",{className:G["carousel-card"],children:e(We,{layout:I})})]})})}):e("div",{className:"grid-container",children:r&&o.length===0?e(vt,{count:6,layout:I}):o.length>0?o.map(w=>e(_e,{anime:w,continueWatching:s,onRemove:a,config:d,layout:I},w._id)):r?null:e("div",{style:{gridColumn:"1 / -1"},children:i})}))]})},mt=ue.memo(jn),Vn="_sectionWrapper_c8uv6_2",Wn="_sectionTitleNoMargin_c8uv6_6",zn="_timeSelect_c8uv6_80",Gn="_carouselContainer_c8uv6_111",Hn="_carousel_c8uv6_111",qn="_carouselInner_c8uv6_122",Qn="_carouselItem_c8uv6_127",Un="_rankCard_c8uv6_164",Yn="_rankPill_c8uv6_168",Kn="_rankGold_c8uv6_179",Xn="_rankSilver_c8uv6_183",Jn="_rankBronze_c8uv6_187",Zn="_skeletonPoster_c8uv6_198",er="_skeletonText_c8uv6_199",C={sectionWrapper:Vn,sectionTitleNoMargin:Wn,"section-header":"_section-header_c8uv6_10","title-wrapper":"_title-wrapper_c8uv6_18","nav-arrows":"_nav-arrows_c8uv6_40","nav-button":"_nav-button_c8uv6_49",timeSelect:zn,carouselContainer:Gn,carousel:Hn,carouselInner:qn,carouselItem:Qn,rankCard:Un,rankPill:Yn,rankGold:Kn,rankSilver:Xn,rankBronze:Jn,skeletonPoster:Zn,skeletonText:er},ht="TRENDING_DESC",tr="POPULARITY_DESC",nr=10;function rr({title:t,eyebrow:n}){const{lowEndMode:o}=He(),[s,l]=qe("trending_sort",ht),a=[{value:ht,label:"Trending"},{value:tr,label:"All Time"}],{data:r,fetchNextPage:i,hasNextPage:c,isFetchingNextPage:d,isLoading:_,isError:g,error:v}=$t(s,nr),y=Ie(()=>r?.pages.flatMap(u=>u)||[],[r]),h=Q(()=>{c&&!d&&!_&&i()},[c,d,_,i]),{emblaRef:f,stepBy:m}=Re({onReachThreshold:h});return e("section",{className:C.sectionWrapper,children:[e("div",{className:C["section-header"],children:[e("div",{className:C["title-wrapper"],children:[e("div",{className:"title-stack",children:[n&&e("div",{className:"section-eyebrow",children:n}),e("div",{className:`section-title ${C.sectionTitleNoMargin}`,children:t})]}),e("div",{className:C["nav-arrows"],children:[e("button",{className:C["nav-button"],type:"button",onClick:u=>{u.preventDefault(),m("left",o)},"aria-label":"Scroll left",children:e(ye,{})}),e("button",{className:C["nav-button"],type:"button",onClick:u=>{u.preventDefault(),m("right",o)},"aria-label":"Scroll right",children:e(be,{})})]})]}),e("div",{className:C["header-actions"],children:e("select",{className:C.timeSelect,value:s,onChange:u=>l(u.currentTarget.value),children:a.map(u=>e("option",{value:u.value,children:u.label},u.value))})})]}),_?e("div",{className:C.carouselContainer,children:e("div",{className:C.carousel,children:e("div",{className:C.carouselInner,children:Array.from({length:7}).map((u,p)=>e("div",{className:C.carouselItem,children:[e("div",{className:C.skeletonPoster}),e("div",{className:C.skeletonText})]},p))})})}):g?e(Qe,{message:v instanceof Error?v.message:"An unknown error occurred"}):e("div",{className:C.carouselContainer,children:e("div",{className:C.carousel,ref:f,children:e("div",{className:C.carouselInner,children:[y.map((u,p)=>e("div",{className:C.carouselItem,children:[e("div",{className:C.rankCard,children:e(_e,{anime:u})}),e("div",{className:`${C.rankPill} ${p===0?C.rankGold:p===1?C.rankSilver:p===2?C.rankBronze:""}`,children:p+1})]},u._id)),d&&e("div",{className:C.carouselItem,style:{minWidth:"150px",display:"flex",alignItems:"center",justifyContent:"center"},children:e("div",{className:C.skeletonPoster})})]})})})]})}const or=[{value:"TV",label:"TV"},{value:"ONA",label:"ONA"},{value:"OVA",label:"OVA"},{value:"MOVIE",label:"Movie"},{value:"ALL",label:"All"},{value:"ADULT",label:"Mature"}],sr=10;function ar({eyebrow:t}){const{lowEndMode:n}=He(),[o,s]=qe("latest_releases_format","TV"),{data:l,fetchNextPage:a,hasNextPage:r,isFetchingNextPage:i,isLoading:c,isError:d,error:_}=jt(o,sr),g=Ie(()=>l?.pages.flatMap(f=>f)||[],[l]),v=Q(()=>{r&&!i&&!c&&a()},[r,i,c,a]),{emblaRef:y,stepBy:h}=Re({onReachThreshold:v});return e("section",{className:C.sectionWrapper,children:[e("div",{className:C["section-header"],children:[e("div",{className:C["title-wrapper"],children:[e("div",{className:"title-stack",children:[t&&e("div",{className:"section-eyebrow",children:t}),e("div",{className:`section-title ${C.sectionTitleNoMargin}`,children:"Latest Releases"})]}),e("div",{className:C["nav-arrows"],children:[e("button",{className:C["nav-button"],type:"button",onClick:f=>{f.preventDefault(),h("left",n)},"aria-label":"Scroll left",children:e(ye,{})}),e("button",{className:C["nav-button"],type:"button",onClick:f=>{f.preventDefault(),h("right",n)},"aria-label":"Scroll right",children:e(be,{})})]})]}),e("div",{className:C["header-actions"],children:e("select",{className:C.timeSelect,value:o,onChange:f=>s(f.currentTarget.value),children:or.map(f=>e("option",{value:f.value,children:f.label},f.value))})})]}),c?e("div",{className:C.carouselContainer,children:e("div",{className:C.carousel,children:e("div",{className:C.carouselInner,children:Array.from({length:7}).map((f,m)=>e("div",{className:C.carouselItem,children:[e("div",{className:C.skeletonPoster}),e("div",{className:C.skeletonText})]},m))})})}):d?e(Qe,{message:_ instanceof Error?_.message:"An unknown error occurred"}):e("div",{className:C.carouselContainer,children:e("div",{className:C.carousel,ref:y,children:e("div",{className:C.carouselInner,children:[g.map(f=>e("div",{className:C.carouselItem,children:e(_e,{anime:f})},f._id)),i&&e("div",{className:C.carouselItem,style:{minWidth:"150px",display:"flex",alignItems:"center",justifyContent:"center"},children:e("div",{className:C.skeletonPoster})})]})})})]})}const cr="_scheduleSection_jkpan_1",ir="_sectionTitleRow_jkpan_5",lr="_sectionTitleNoMargin_jkpan_11",ur="_sectionHeader_jkpan_15",dr="_headerActions_jkpan_25",fr="_timeSelect_jkpan_31",mr="_daySelectorContainer_jkpan_62",hr="_daySelector_jkpan_62",pr="_daySelectorInner_jkpan_79",gr="_dayBtn_jkpan_90",vr="_active_jkpan_113",_r="_dayMonth_jkpan_121",yr="_dayNum_jkpan_129",br="_dayName_jkpan_135",Sr="_navArrows_jkpan_148",Nr="_navButton_jkpan_157",wr="_carouselContainer_jkpan_181",Tr="_carousel_jkpan_181",kr="_carouselInner_jkpan_193",Cr="_carouselCard_jkpan_198",V={scheduleSection:cr,sectionTitleRow:ir,sectionTitleNoMargin:lr,sectionHeader:ur,headerActions:dr,timeSelect:fr,daySelectorContainer:mr,daySelector:hr,daySelectorInner:pr,dayBtn:gr,active:vr,dayMonth:_r,dayNum:yr,dayName:br,navArrows:Sr,navButton:Nr,carouselContainer:wr,carousel:Tr,carouselInner:kr,carouselCard:Cr},Me=t=>{const n=t.getFullYear(),o=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0");return`${n}-${o}-${s}`},Ir=async(t,n)=>{const o=`/api/schedule/${t}?format=${n}`,s=await fetch(o);if(!s.ok)throw new Error("Failed to fetch episode schedule");return s.json()},xr=({eyebrow:t})=>{const[n,o]=se(()=>Me(new Date)),[s,l]=qe("schedule_format","TV"),{emblaRef:a,canScroll:r,stepBy:i,scrollToStart:c}=Re(),d=ee(null),_=ee(!0),{data:g=[],isLoading:v,error:y}=Lt({queryKey:["schedule",n,s],queryFn:()=>Ir(n,s),staleTime:1e3*60*5}),h=Ie(()=>{const m=[],u=new Date,p=Me(u),b=new Date(u);b.setDate(u.getDate()-1);const x=Me(b),E=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];for(let k=-6;k<=6;k++){const N=new Date;N.setDate(u.getDate()+k),m.push(N)}return m.map(k=>{const N=Me(k),R=N===p?"Today":N===x?"Yest":E[k.getDay()],D=k.getDate(),M=new Intl.DateTimeFormat("en-US",{month:"short"}).format(k);return{dateString:N,dayLabel:R,dayNum:D,monthName:M}})},[]);U(()=>{if(_.current){_.current=!1;return}if(d.current){const m=d.current.querySelector(`[data-date="${n}"]`);m&&m.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"})}},[n]),U(()=>{c(!0)},[n,c]);const f=[{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:V.scheduleSection,children:[e("div",{className:V.sectionHeader,children:[e("div",{className:V.sectionTitleRow,children:[e("div",{className:"title-stack",children:[t&&e("div",{className:"section-eyebrow",children:t}),e("h2",{className:`section-title ${V.sectionTitleNoMargin}`,children:"Episode Schedule"})]}),g.length>0&&r&&e("div",{className:V.navArrows,children:[e("button",{className:V.navButton,onClick:()=>i("left"),"aria-label":"Scroll left",children:e(ye,{})}),e("button",{className:V.navButton,onClick:()=>i("right"),"aria-label":"Scroll right",children:e(be,{})})]})]}),e("div",{className:V.headerActions,children:e("select",{className:V.timeSelect,value:s,onChange:m=>l(m.target.value),children:f.map(m=>e("option",{value:m.value,children:m.label},m.value))})})]}),e("div",{className:V.daySelectorContainer,children:e("div",{className:V.daySelector,ref:d,children:e("div",{className:V.daySelectorInner,children:h.map(m=>e("button",{type:"button","data-date":m.dateString,className:`${V.dayBtn} ${n===m.dateString?V.active:""}`,onClick:()=>o(m.dateString),children:[e("span",{className:V.dayMonth,children:m.monthName}),e("span",{className:V.dayNum,children:m.dayNum}),e("span",{className:V.dayName,children:m.dayLabel})]},m.dateString))})})}),e("div",{className:V.carouselContainer,children:e("div",{className:V.carousel,ref:a,children:e("div",{className:V.carouselInner,children:v?Array.from({length:7}).map((m,u)=>e("div",{className:V.carouselCard,children:e(We,{layout:"vertical"})},u)):y?e("div",{style:{width:"100%"},children:e(Qe,{message:y instanceof Error?y.message:"An unknown error occurred"})}):g.length===0?e("p",{style:{textAlign:"center",marginTop:"1rem",width:"100%"},children:"No episodes scheduled for this day."}):g.map(m=>e("div",{className:V.carouselCard,children:e(_e,{anime:m,continueWatching:!1,layout:"vertical"},m._id)},m._id))})})})]})},Ar="_bannerContainer_1eut7_1",Er="_posterWrapper_1eut7_15",Lr="_posterImage_1eut7_23",Mr="_overlay_1eut7_53",Dr="_content_1eut7_72",Pr="_badgeRow_1eut7_86",Rr="_featureLabel_1eut7_92",Br="_index_1eut7_104",Or="_scoreChip_1eut7_112",Fr="_metaRow_1eut7_127",$r="_metaItem_1eut7_137",jr="_metaDivider_1eut7_143",Vr="_title_1eut7_150",Wr="_genres_1eut7_174",zr="_genreTag_1eut7_181",Gr="_summary_1eut7_189",Hr="_actions_1eut7_201",qr="_watchBtn_1eut7_209",Qr="_detailsBtn_1eut7_237",Ur="_dotRow_1eut7_278",Yr="_activeDot_1eut7_300",Kr="_navArrow_1eut7_305",Xr="_prevArrow_1eut7_338",Jr="_nextArrow_1eut7_342",Zr="_progressBar_1eut7_346",eo="_progressBarPaused_1eut7_358",F={bannerContainer:Ar,posterWrapper:Er,posterImage:Lr,overlay:Mr,content:Dr,badgeRow:Pr,featureLabel:Rr,index:Br,scoreChip:Or,metaRow:Fr,metaItem:$r,metaDivider:jr,title:Vr,genres:Wr,genreTag:zr,summary:Gr,actions:Hr,watchBtn:qr,detailsBtn:Qr,dotRow:Ur,activeDot:Yr,navArrow:Kr,prevArrow:Xr,nextArrow:Jr,progressBar:Zr,progressBarPaused:eo},to=({animeList:t})=>{const[n,o]=se(0),[s,l]=se(0),[a,r]=se(!1),[i,c]=se(null),[d,_]=se(0),g=ee(0),v=ee(0),y=ee(new Set),h=ee(null),f=ee(0),{titlePreference:m}=gt(),u=Mt(),p=Ie(()=>t.slice(0,6),[t]),b=Q(T=>T.bannerImage?Ee(T.bannerImage,1920,840):Ee(T.thumbnail,1280,450),[]),x=T=>{switch(m){case"nativeName":return T.nativeName||T.name;case"englishName":return T.englishName||T.name;default:return T.name}},E=Q(()=>{l(T=>T+1)},[]),k=Q(T=>{h.current!==null&&(window.clearTimeout(h.current),h.current=null),c(null),E(),o(T)},[E]),N=Q(T=>{if(p.length===0)return;const P=(T%p.length+p.length)%p.length;y.current.has(b(p[P]))?k(P):c(P)},[p,b,k]);U(()=>{let T=!1;return p.forEach(P=>{const B=b(P);if(y.current.has(B))return;const oe=new Image;oe.src=B;const ae=()=>{T||y.current.has(B)||(y.current.add(B),_(z=>z+1))};oe.onload=ae,oe.onerror=ae}),()=>{T=!0}},[p,b]),U(()=>{if(i!==null){if(i<0||i>=p.length){c(null);return}y.current.has(b(p[i]))&&k(i)}},[i,d,p,b,k]),U(()=>{if(i===null)return;h.current!==null&&window.clearTimeout(h.current);const T=i;return h.current=window.setTimeout(()=>{h.current=null,k(T)},2500),()=>{h.current!==null&&(window.clearTimeout(h.current),h.current=null)}},[i,k]);const I=Q(T=>{N(T)},[N]),w=Q(()=>{N(f.current+1)},[N]),R=Q(()=>{N(f.current-1)},[N]);if(U(()=>{if(p.length===0||a)return;const T=setTimeout(w,1e4);return()=>clearTimeout(T)},[n,w,p.length,s,a]),U(()=>{const T=P=>{const B=P.target;B&&(B.tagName==="INPUT"||B.tagName==="TEXTAREA"||B.tagName==="SELECT"||B.isContentEditable)||(P.key==="ArrowRight"?(P.preventDefault(),w()):P.key==="ArrowLeft"&&(P.preventDefault(),R()))};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[w,R]),U(()=>{n>=p.length&&o(0)},[p.length,n]),p.length===0)return null;const D=n>=p.length?0:n;f.current=D;const M=p[D],W=M.description??"",H=Vt(W),Y=M.genres??[],te=M.bannerImage?Ee(M.bannerImage,1920,840):Ee(M.thumbnail,1280,450),ne=()=>{u(`/watch/${M._id}`)},X=[M.type||"Anime",M.status,M.episodeCount?`${M.episodeCount} Episodes`:void 0,M.rating].filter(Boolean),re=T=>{if(Math.abs(T.deltaY)>Math.abs(T.deltaX)&&Math.abs(T.deltaY)>5){T.stopPropagation();const P=Date.now();if(P-g.current<300)return;g.current=P,E(),T.deltaY>0?w():R()}},de=T=>{v.current=T.touches[0].clientX},J=T=>{const B=T.changedTouches[0].clientX-v.current;Math.abs(B)>50&&(E(),B>0?R():w())};return e("div",{className:F.bannerContainer,onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:e("div",{className:F.posterWrapper,onTouchStart:de,onTouchEnd:J,children:[e("img",{src:te,alt:x(M),className:F.posterImage},D),p.length>1&&e(Dt,{children:[e("button",{className:`${F.navArrow} ${F.prevArrow}`,onClick:()=>{E(),R()},"aria-label":"Previous slide",children:e(ye,{size:20})}),e("button",{className:`${F.navArrow} ${F.nextArrow}`,onClick:()=>{E(),w()},"aria-label":"Next slide",children:e(be,{size:20})})]}),p.length>1&&e("div",{className:`${F.progressBar} ${a?F.progressBarPaused:""}`},`progress-${n}-${s}`),e("div",{className:F.overlay,children:[e("div",{className:F.content,children:[e("div",{className:F.badgeRow,children:[e("span",{className:F.featureLabel,children:"Spotlight"}),p.length>1&&e("span",{className:F.index,children:[String(D+1).padStart(2,"0")," / ",String(p.length).padStart(2,"0")]}),M.score&&e("div",{className:F.scoreChip,children:[e(Wt,{size:12}),e("span",{children:M.score})]})]}),e(pt,{to:`/anime/${M._id}`,className:F.title,"aria-label":`View details for ${x(M)}`,children:x(M)},n),e("div",{className:F.metaRow,children:X.map((T,P)=>e(ue.Fragment,{children:[e("span",{className:F.metaItem,children:T}),P<X.length-1&&e("div",{className:F.metaDivider})]},P))}),Y.length>0&&e("div",{className:F.genres,children:Y.map((T,P)=>{const B=typeof T=="string"?T:T?.name;return e(ue.Fragment,{children:[e("span",{className:F.genreTag,children:B}),P<Y.length-1&&e("div",{className:F.metaDivider})]},B)})}),H&&e("p",{className:F.summary,children:H}),e("div",{className:F.actions,children:[e("button",{className:F.watchBtn,onClick:ne,children:[e(zt,{size:14}),e("span",{children:"Watch Now"})]}),e("button",{className:F.detailsBtn,onClick:()=>u(`/anime/${M._id}`),children:[e(Gt,{size:15}),e("span",{children:"Details"})]})]})]}),p.length>1&&e("div",{className:F.dotRow,onWheel:re,children:p.map((T,P)=>e("button",{className:P===n?F.activeDot:"",onClick:()=>I(P),"aria-label":`Go to slide ${P+1}`},P))})]})]})})},no="_seasonGrid_2dbio_76",ro="_tabBar_2dbio_108",oo="_tabIndicator_2dbio_124",so="_tabButton_2dbio_138",ao="_tabActive_2dbio_163",co="_emptyState_2dbio_187",io="_emptyStateIcon_2dbio_202",lo="_emptyStateTitle_2dbio_209",uo="_emptyStateText_2dbio_216",K={"section-header":"_section-header_2dbio_1","title-wrapper":"_title-wrapper_2dbio_8","pagination-controls":"_pagination-controls_2dbio_14","nav-button":"_nav-button_2dbio_24","page-info":"_page-info_2dbio_55",seasonGrid:no,tabBar:ro,tabIndicator:oo,tabButton:so,tabActive:ao,emptyState:co,emptyStateIcon:io,emptyStateTitle:lo,emptyStateText:uo},yo=()=>{const t=Pt(),[n,o]=ue.useState(1),[s,l]=se(()=>localStorage.getItem("home_activeTab")||"latest"),[a,r]=se(()=>localStorage.getItem("season_format")||"TV"),i=ee(null),{data:c}=it(n+1,a),{titlePreference:d}=gt(),[_,g]=ue.useState(null),[v,y]=ue.useState(!1),h=Ht(),{data:f=[]}=qt(),m=Qt(),u=Ut(),p=Yt();U(()=>{document.title="Home - dango"},[]);const{data:b,isLoading:x}=Kt();U(()=>{localStorage.setItem("home_activeTab",s)},[s]),U(()=>{localStorage.setItem("season_format",a),o(1)},[a]),U(()=>{b!==void 0&&b.length===0&&s==="week"&&l("latest")},[b,s]);const{data:E,isLoading:k,fetchNextPage:N,hasNextPage:I,isFetchingNextPage:w}=Xt(),R=Q(()=>{I&&!w&&!k&&N()},[I,w,k,N]),{data:D}=Jt(),{data:M}=Zt(a),W=Ie(()=>E?.pages||[],[E]),{data:H,isLoading:Y}=it(n,a),te=14,ne=H&&H.length>=te&&c&&c.length>0,X=Rt({mutationFn:async A=>{await fetch("/api/continue-watching/remove",{method:"POST",body:JSON.stringify({showId:A}),headers:{"Content-Type":"application/json"}})},onSuccess:async()=>{await t.invalidateQueries({queryKey:["allContinueWatching"]}),I&&W.length-1<14&&N()}}),re=Q(A=>{const L=W?.find(S=>String(S.id)===String(A));if(L){const S=L[d]||L.name;g({id:A,name:S})}},[W,d]),de=Q(()=>{_&&(X.mutate(_.id),v&&h.mutate(_.id),g(null),y(!1))},[_,X,h,v]),J=[{key:"latest",label:"Latest Releases"},{key:"season",label:"Current Season"},{key:"popular",label:"Trending"}],T=b!==void 0&&b.length>0,P=T?[{key:"week",label:"This Week"},...J]:J,B=s==="week"&&!T?"latest":s,oe=ee(null),ae=ee(new Map),[z,q]=se({left:0,width:0});Bt(()=>{const A=B,L=ae.current.get(A),S=oe.current;if(L&&S){const O=S.getBoundingClientRect(),$=L.getBoundingClientRect();q({left:$.left-O.left,width:$.width})}},[B,P.length]);const ce=()=>{switch(B){case"latest":return e(ar,{eyebrow:"Fresh episodes"});case"season":return e("section",{style:{marginBottom:"2.5rem"},children:[e("div",{className:K["section-header"],ref:i,children:[e("div",{className:K["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("select",{style:{width:"90px",height:"34px",padding:"0 8px",paddingRight:"1.5rem",backgroundColor:"var(--bg-tertiary)",border:"1px solid var(--border-primary)",borderRadius:"var(--radius-sm)",color:"var(--text-primary)",fontSize:"var(--font-size-sm)",fontWeight:700,cursor:"pointer",appearance:"none",WebkitAppearance:"none",backgroundImage:`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")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 0.5rem center"},value:a,onChange:A=>r(A.currentTarget.value),children:[e("option",{value:"TV",children:"TV"}),e("option",{value:"ONA",children:"ONA"}),e("option",{value:"OVA",children:"OVA"}),e("option",{value:"MOVIE",children:"Movie"}),e("option",{value:"ALL",children:"All"}),e("option",{value:"ADULT",children:"Mature"})]}),e("div",{className:K["pagination-controls"],children:[e("button",{className:K["nav-button"],onClick:()=>{if(n>1&&(o(A=>A-1),i.current)){const A=i.current.getBoundingClientRect().top+window.scrollY-120;window.scrollTo({top:A,behavior:"smooth"})}},disabled:n===1,style:{opacity:n===1?.3:1},"aria-label":"Previous page",children:e(ye,{size:14})}),e("span",{className:K["page-info"],children:n}),e("button",{className:K["nav-button"],onClick:()=>{if(o(A=>A+1),i.current){const A=i.current.getBoundingClientRect().top+window.scrollY-120;window.scrollTo({top:A,behavior:"smooth"})}},disabled:!ne,style:{opacity:ne?1:.3},"aria-label":"Next page",children:e(be,{size:14})})]})]})]}),e("div",{className:`grid-container ${K.seasonGrid}`,style:{minHeight:"300px",alignContent:"start"},children:Y?e(vt,{count:te}):H?.slice(0,te).map(A=>e(_e,{anime:A},A._id))})]});case"popular":return e(rr,{title:"Trending",eyebrow:"Discover"});case"week":return e(mt,{title:"This Week",eyebrow:"Aired this week",animeList:b||[],continueWatching:!1,carousel:!0,loading:x});default:return null}};return e("div",{style:{paddingBottom:"2rem"},children:[e(to,{animeList:D||[]}),e(mt,{title:"Continue Watching",eyebrow:"Pick up where you left off",titleLink:"/watchlist/Continue Watching",animeList:W,continueWatching:!0,carousel:!0,collapsible:!0,defaultExpanded:W.length>0,onRemove:re,loading:k,onReachThreshold:R,scrollThreshold:.7,isFetchingNextPage:w,emptyState:e("div",{className:K.emptyState,children:[e(en,{size:48,className:K.emptyStateIcon}),e("div",{children:[e("h3",{className:K.emptyStateTitle,children:"Nothing is here..."}),e("p",{className:K.emptyStateText,children:"You haven't watched anything yet. Start exploring and watch something first!"})]}),e(Le,{variant:"primary",size:"sm",onClick:()=>l("popular"),style:{marginTop:"1rem"},children:"Explore Trending"})]})}),e(tn,{title:"Queue",eyebrow:"Up next",items:f,onRemove:A=>m.mutate({showId:A.showId,episodeNumber:A.episodeNumber}),showClearAll:!0,onClear:()=>u.mutate(),onReorder:A=>p.mutate(A.map(L=>({id:L.id,showId:L.showId,episodeNumber:L.episodeNumber})))}),e("div",{className:K.tabBar,ref:oe,children:[e("div",{className:K.tabIndicator,style:{left:z.left,width:z.width}}),P.map(A=>e(Le,{ref:L=>{L&&ae.current.set(A.key,L)},variant:"secondary",size:"sm",className:`${K.tabButton} ${B===A.key?K.tabActive:""}`,onClick:()=>l(A.key),children:A.label},A.key))]}),e("div",{className:K.tabContent,children:ce()}),e(xr,{eyebrow:"Never miss an episode"}),e(Ve,{isOpen:!!_,onClose:()=>{g(null),y(!1)},title:"Reset Progress",children:[e(Ve.Body,{children:[e("p",{children:['Are you sure you want to remove your watch progress for "',_?.name,'"?']}),e("label",{children:[e("input",{type:"checkbox",checked:v,onChange:A=>y(A.target.checked)}),"Also remove from my watchlist"]})]}),e(Ve.Actions,{children:[e(Le,{variant:"secondary",onClick:()=>{g(null),y(!1)},children:"No"}),e(Le,{variant:"danger",onClick:de,children:"Yes"})]})]})]})};export{yo as default};
@@ -0,0 +1 @@
1
+ ._section-header_1e9oc_1{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8);gap:var(--space-4)}._sectionWrapper_1e9oc_9{margin-bottom:2.5rem}._sectionTitleNoMargin_1e9oc_13{margin-bottom:0}._title-wrapper_1e9oc_17{display:flex;align-items:center;gap:var(--space-6);flex:1}._header-controls_1e9oc_24{display:flex;align-items:center;gap:var(--space-2)}._view-all-link_1e9oc_30{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_1e9oc_30:hover{color:var(--accent-light);background:var(--accent-subtle);border-color:var(--border-primary)}._collapse-button_1e9oc_48{width:40px;height:40px;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._collapse-button_1e9oc_48:hover{background:var(--bg-elevated);color:var(--text-primary)}._title-link_1e9oc_67{color:inherit;text-decoration:none;display:inline-flex;align-items:center;transition:all var(--transition-base)}._title-link_1e9oc_67 .section-title{position:relative;font-size:1.5rem;font-weight:800;letter-spacing:-.01em}._title-link_1e9oc_67:hover,._continue-watching_1e9oc_86 ._title-link_1e9oc_67:hover .section-title{color:var(--accent)}@media(max-width:600px){._section-header_1e9oc_1{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6)}._title-wrapper_1e9oc_17{width:100%;justify-content:space-between}._title-link_1e9oc_67 .section-title{font-size:1.25rem}}._nav-arrows_1e9oc_108{display:flex;gap:8px;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._nav-button_1e9oc_117{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._nav-button_1e9oc_117:hover{background:var(--bg-elevated);color:var(--accent)}._nav-button_1e9oc_117:active{transform:scale(.9)}@media(hover:none),(pointer:coarse){._nav-button_1e9oc_117{width:44px;height:44px}}._carousel-container_1e9oc_147{position:relative;width:100%}._carousel_1e9oc_147{overflow:hidden}._carousel-inner_1e9oc_156{display:flex;gap:20px}._carousel-card_1e9oc_161{flex:0 0 calc((100% - (6 * 20px)) / 7);min-width:150px}@media(max-width:1400px){._carousel-card_1e9oc_161{flex:0 0 calc((100% - (5 * 20px)) / 6)}}@media(max-width:1200px){._carousel-card_1e9oc_161{flex:0 0 calc((100% - 80px)/5)}}@media(max-width:900px){._carousel-card_1e9oc_161{flex:0 0 calc((100% - 60px)/4);max-width:160px}}@media(max-width:768px){._carousel-inner_1e9oc_156{gap:12px}._carousel-card_1e9oc_161{flex:0 0 calc((100% - (2 * 12px)) / 3);min-width:0;max-width:140px}}@media(max-width:480px){._carousel-card_1e9oc_161{flex:0 0 calc((100% - (1 * 12px)) / 2.2);max-width:140px}}._sectionWrapper_c8uv6_2{margin-bottom:2.5rem}._sectionTitleNoMargin_c8uv6_6{margin-bottom:0}._section-header_c8uv6_10{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8);gap:var(--space-4)}._title-wrapper_c8uv6_18{display:flex;align-items:center;gap:var(--space-6);flex:1}@media(max-width:600px){._section-header_c8uv6_10{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6)}._title-wrapper_c8uv6_18{width:100%;justify-content:space-between}}._nav-arrows_c8uv6_40{display:flex;gap:8px;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._nav-button_c8uv6_49{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._nav-button_c8uv6_49:hover{background:var(--bg-elevated);color:var(--accent)}._nav-button_c8uv6_49:active{transform:scale(.9)}@media(hover:none),(pointer:coarse){._nav-button_c8uv6_49{width:44px;height:44px}}._timeSelect_c8uv6_80{width:120px;height:34px;padding:0 var(--space-3);padding-right:2rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);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)}._timeSelect_c8uv6_80:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._timeSelect_c8uv6_80:focus{outline:none;border-color:var(--accent)}._carouselContainer_c8uv6_111{position:relative;width:100%}._carousel_c8uv6_111{overflow:hidden;padding:10px 0;margin:-10px 0}._carouselInner_c8uv6_122{display:flex;gap:15px}._carouselItem_c8uv6_127{flex:0 0 calc((100% - (6 * 15px)) / 7);min-width:120px;position:relative}@media(max-width:1200px){._carouselItem_c8uv6_127{flex:0 0 calc((100% - (5 * 15px)) / 6)}}@media(max-width:1024px){._carouselItem_c8uv6_127{flex:0 0 calc((100% - 60px)/5)}}@media(max-width:768px){._carouselItem_c8uv6_127{flex:0 0 calc((100% - (2 * 15px)) / 3)}}@media(max-width:480px){._carouselItem_c8uv6_127{flex:0 0 calc((100% - (2 * 10px)) / 3);min-width:100px}._carouselInner_c8uv6_122{gap:10px;align-items:flex-start}}._rankCard_c8uv6_164{width:100%}._rankPill_c8uv6_168{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_c8uv6_168._rankGold_c8uv6_179{color:#d8b56b}._rankPill_c8uv6_168._rankSilver_c8uv6_183{color:#c3c9d1}._rankPill_c8uv6_168._rankBronze_c8uv6_187{color:#c08d5f}@media(max-width:768px){._rankPill_c8uv6_168{font-size:1.3rem}}._skeletonPoster_c8uv6_198,._skeletonText_c8uv6_199{position:relative;overflow:hidden;background-color:var(--bg-tertiary);border-radius:var(--radius-sm)}._skeletonPoster_c8uv6_198:after,._skeletonText_c8uv6_199:after{content:"";position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#ffffff0d 20%,#ffffff1f 60%,#fff0);animation:_skeleton-wave_c8uv6_1 1.8s infinite ease-in-out}._skeletonPoster_c8uv6_198{width:100%;aspect-ratio:3 / 4}._skeletonText_c8uv6_199{width:80%;height:12px;margin-top:var(--space-2)}._scheduleSection_jkpan_1{margin-bottom:2.5rem}._sectionTitleRow_jkpan_5{display:flex;align-items:center;gap:1rem}._sectionTitleNoMargin_jkpan_11{margin-bottom:0}._sectionHeader_jkpan_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_jkpan_25{display:flex;align-items:center;gap:var(--space-3)}._timeSelect_jkpan_31{width:120px;height:34px;padding:0 var(--space-3);padding-right:2rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);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)}._timeSelect_jkpan_31:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._timeSelect_jkpan_31:focus{outline:none;border-color:var(--accent)}._daySelectorContainer_jkpan_62{margin-bottom:var(--space-8);width:100%;position:relative}._daySelector_jkpan_62{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_jkpan_79{display:flex;gap:var(--space-2);justify-content:flex-start;margin:0 auto}._daySelector_jkpan_62::-webkit-scrollbar{display:none}._dayBtn_jkpan_90{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_jkpan_90:hover{background:#ffffff14;border-color:var(--border-secondary);transform:translateY(-2px)}._dayBtn_jkpan_90._active_jkpan_113{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 8px 20px var(--accent-glow);transform:translateY(-4px)}._dayMonth_jkpan_121{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.8}._dayNum_jkpan_129{font-size:1.25rem;font-weight:800;line-height:1}._dayName_jkpan_135{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}._dayBtn_jkpan_90._active_jkpan_113 ._dayMonth_jkpan_121,._dayBtn_jkpan_90._active_jkpan_113 ._dayName_jkpan_135{opacity:1}._navArrows_jkpan_148{display:flex;gap:8px;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._navButton_jkpan_157{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._navButton_jkpan_157:hover{background:var(--bg-elevated);color:var(--accent)}._navButton_jkpan_157:active{transform:scale(.9)}._carouselContainer_jkpan_181{position:relative;width:100%;min-height:280px}._carousel_jkpan_181{overflow:hidden;padding-bottom:10px;min-height:260px}._carouselInner_jkpan_193{display:flex;gap:15px}._carouselCard_jkpan_198{flex:0 0 calc((100% - (6 * 15px)) / 7);min-width:150px}@media(max-width:1200px){._carouselCard_jkpan_198{flex:0 0 calc((100% - (5 * 15px)) / 6)}}@media(max-width:1024px){._carouselCard_jkpan_198{flex:0 0 calc((100% - 60px)/5)}}@media(max-width:768px){._carouselCard_jkpan_198{flex:0 0 calc((100% - (2 * 15px)) / 3);min-width:0}._daySelector_jkpan_62{justify-content:flex-start;padding-left:var(--space-4);padding-right:var(--space-4)}._dayBtn_jkpan_90{min-width:60px;padding:var(--space-2) var(--space-3)}}@media(max-width:480px){._carouselCard_jkpan_198{flex:0 0 calc((100% - (2 * 10px)) / 3);min-width:0}._carouselInner_jkpan_193{gap:10px;align-items:flex-start}}@media(max-width:600px){._daySelector_jkpan_62{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_jkpan_79{gap:0;margin:0;justify-content:flex-start}._dayBtn_jkpan_90{flex:0 0 14.2857%;min-width:0!important;padding:var(--space-1) 0!important;border-radius:var(--radius-md)!important}._dayMonth_jkpan_121{font-size:10px!important}._dayNum_jkpan_129{font-size:1rem!important}._dayName_jkpan_135{font-size:10px!important}._dayBtn_jkpan_90._active_jkpan_113{transform:translateY(-2px)!important}}._bannerContainer_1eut7_1{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}._posterWrapper_1eut7_15{position:relative;width:100%;height:clamp(440px,56vh,620px);overflow:hidden;background-color:var(--bg-main)}._posterImage_1eut7_23{width:100%;height:100%;object-fit:cover;object-position:center;display:block;animation:_bannerFade_1eut7_1 .6s ease}@keyframes _bannerFade_1eut7_1{0%{opacity:0}to{opacity:1}}@media(max-width:600px){._posterWrapper_1eut7_15{height:clamp(420px,60vh,560px)}}@media(max-width:900px)and (orientation:landscape){._posterWrapper_1eut7_15{height:clamp(420px,62vh,560px)}}._overlay_1eut7_53{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,5,.85) 0%,rgba(5,5,5,.3) 25%,transparent 40%),linear-gradient(90deg,rgba(5,5,5,.98) 0%,rgba(5,5,5,.88) 38%,rgba(5,5,5,.45) 65%,transparent 85%),linear-gradient(0deg,var(--bg-main) 0%,rgba(5,5,5,.4) 20%,transparent 50%);display:flex;flex-direction:column;justify-content:center;z-index:3}._content_1eut7_72{width:100%;max-width:var(--max-width);margin:0 auto;padding:calc(var(--header-height) + 1rem) var(--space-8) var(--space-8);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:100%;gap:1rem;z-index:4}._badgeRow_1eut7_86{display:flex;align-items:center;gap:.75rem}._featureLabel_1eut7_92{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}._index_1eut7_104{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:#ffffff80;font-variant-numeric:tabular-nums}._scoreChip_1eut7_112{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)}._metaRow_1eut7_127{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;color:#ffffffb3;font-size:.9rem;font-weight:600}._metaItem_1eut7_137{display:flex;align-items:center;gap:4px}._metaDivider_1eut7_143{width:4px;height:4px;background:#ffffff4d;border-radius:50%}._title_1eut7_150{font-size:2.25rem;line-height:1.1;cursor:pointer;max-width:800px;text-shadow:0 2px 24px rgba(0,0,0,.8),0 1px 3px rgba(0,0,0,.9)}@media(max-width:600px){._title_1eut7_150{font-size:1.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}._title_1eut7_150:hover{color:var(--accent-light)}._genres_1eut7_174{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}._genreTag_1eut7_181{color:#ffffffa6;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}._summary_1eut7_189{font-size:1rem;line-height:1.6;margin:0;opacity:.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:750px}._actions_1eut7_201{display:flex;align-items:center;gap:1rem;margin-top:.75rem;z-index:5}._watchBtn_1eut7_209{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.8rem 2rem;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:var(--accent-text);font-size:.95rem;font-weight:700;border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 4px 20px var(--accent-glow);transition:all .25s cubic-bezier(.16,1,.3,1);letter-spacing:.02em}._watchBtn_1eut7_209:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 28px var(--accent-glow);background:linear-gradient(135deg,var(--accent-light) 0%,var(--accent) 100%)}._watchBtn_1eut7_209:active{transform:translateY(0) scale(.98)}._detailsBtn_1eut7_237{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.8rem 1.75rem;background:#ffffff0f;color:var(--text-primary);font-size:.95rem;font-weight:600;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-md);cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1)}._detailsBtn_1eut7_237:hover{background:#ffffff29;border-color:#ffffff59;transform:translateY(-2px);color:#fff}._detailsBtn_1eut7_237:active{transform:translateY(0)}@media(max-width:600px){._actions_1eut7_201{width:100%;gap:.75rem}._watchBtn_1eut7_209,._detailsBtn_1eut7_237{flex:1;padding:.75rem 1rem;font-size:.85rem}}._dotRow_1eut7_278{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);display:flex;gap:.5rem;z-index:10;padding:10px}._dotRow_1eut7_278 button{width:10px;height:10px;border-radius:var(--radius-full);background:#ffffff4d;border:none;cursor:pointer;padding:0;transition:all .3s cubic-bezier(.4,0,.2,1)}._dotRow_1eut7_278 ._activeDot_1eut7_300{width:32px;background:var(--accent)}._navArrow_1eut7_305{position:absolute;top:50%;transform:translateY(-50%);z-index:12;width:48px;height:48px;border-radius:50%;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .3s ease}._bannerContainer_1eut7_1:hover ._navArrow_1eut7_305{opacity:.85}._navArrow_1eut7_305:hover{opacity:1!important;background:#000000b3;border-color:var(--accent);color:var(--accent);transform:translateY(-50%) scale(1.08)}._prevArrow_1eut7_338{left:1.5rem}._nextArrow_1eut7_342{right:1.5rem}._progressBar_1eut7_346{position:absolute;bottom:0;left:0;height:3px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-light, #3b82f6) 100%);box-shadow:0 0 10px var(--accent-glow);z-index:11;animation:_progressTimer_1eut7_1 10s linear forwards;transition:opacity .3s ease}._progressBarPaused_1eut7_358{animation-play-state:paused;opacity:0}@keyframes _progressTimer_1eut7_1{0%{width:0%}to{width:100%}}@media(max-width:768px){._navArrow_1eut7_305{display:none}}._section-header_2dbio_1{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}._title-wrapper_2dbio_8{display:flex;align-items:center;gap:var(--space-6)}._pagination-controls_2dbio_14{display:flex;gap:8px;align-items:center;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._nav-button_2dbio_24{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._nav-button_2dbio_24:hover:not(:disabled){background:var(--bg-elevated);color:var(--accent)}._nav-button_2dbio_24:disabled{opacity:.2;cursor:not-allowed}@media(hover:none),(pointer:coarse){._nav-button_2dbio_24{width:44px;height:44px}}._page-info_2dbio_55{font-size:.9rem;font-weight:800;min-width:32px;text-align:center;color:var(--text-primary)}@media(max-width:600px){._section-header_2dbio_1{flex-direction:column;align-items:flex-start;gap:var(--space-4)}._title-wrapper_2dbio_8{width:100%;justify-content:space-between}}._seasonGrid_2dbio_76{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-4)}@media(max-width:1200px){._seasonGrid_2dbio_76{grid-template-columns:repeat(6,1fr)}}@media(max-width:1024px){._seasonGrid_2dbio_76{grid-template-columns:repeat(5,1fr)}}@media(max-width:768px){._seasonGrid_2dbio_76{grid-template-columns:repeat(3,1fr);gap:var(--space-2)}}@media(max-width:480px){._seasonGrid_2dbio_76{grid-template-columns:repeat(3,1fr);gap:8px}}._tabBar_2dbio_108{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;box-shadow:0 4px 20px #0003;position:relative}._tabIndicator_2dbio_124{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_2dbio_138{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}._tabButton_2dbio_138:hover:not(:disabled){background:transparent!important;color:var(--text-muted)!important;box-shadow:none!important;transform:none!important}._tabButton_2dbio_138:active{transform:scale(.96)}._tabActive_2dbio_163{color:var(--accent-text)!important}._tabActive_2dbio_163:hover:not(:disabled){color:var(--accent-text)!important;transform:none!important}@media(max-width:600px){._tabBar_2dbio_108{width:100%;justify-content:space-between}._tabButton_2dbio_138{flex:1;justify-content:center!important;padding:.65rem .5rem!important;text-align:center;font-size:.78rem!important}}._emptyState_2dbio_187{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_2dbio_202{color:var(--accent);opacity:.4;margin-bottom:var(--space-2);filter:drop-shadow(0 0 20px var(--accent-glow))}._emptyStateTitle_2dbio_209{font-size:1.5rem;font-weight:800;margin:0;color:var(--text-primary)}._emptyStateText_2dbio_216{font-size:1rem;color:var(--text-secondary);max-width:340px;line-height:1.6}._quickQueue_2dbio_223{margin:0 0 2.5rem;border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-secondary);overflow:hidden}._quickQueueHeader_2dbio_231{width:100%;border:none;background:transparent;color:var(--text-primary);padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between;cursor:pointer}._quickQueueTitle_2dbio_243{display:flex;align-items:center;gap:var(--space-3);font-weight:800}._queueBadge_2dbio_250{min-width:24px;height:24px;padding:0 8px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:.78rem;font-weight:800}._quickQueueList_2dbio_264{display:flex;gap:var(--space-3);overflow-x:auto;padding:0 var(--space-5) var(--space-5);-webkit-user-select:none;user-select:none}._quickQueueItem_2dbio_272._dragging_2dbio_272{opacity:.5;background:var(--bg-secondary);border-style:dashed}._quickQueueItem_2dbio_272{width:240px;flex:0 0 240px;display:grid;grid-template-columns:24px 54px minmax(0,1fr) 32px;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-primary)}._quickQueueDrag_2dbio_291{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:grab;border:none;background:transparent}._quickQueueThumb_2dbio_301{width:54px;height:72px;object-fit:cover;border-radius:var(--radius-sm);background:var(--bg-tertiary)}._quickQueueMeta_2dbio_309{min-width:0}._quickQueueName_2dbio_313{display:block;width:100%;border:none;background:transparent;padding:0;text-align:left;color:var(--text-primary);font-weight:700;font-size:.85rem;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}._quickQueueEpisode_2dbio_330{margin-top:.25rem;color:var(--text-secondary);font-size:.75rem}._quickQueueRemove_2dbio_336{width:30px;height:30px;border:1px solid var(--border-secondary);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}._quickQueueRemove_2dbio_336:hover{color:var(--color-danger);border-color:var(--color-danger)}
@@ -0,0 +1 @@
1
+ ._header_1eyj7_1{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);animation:_fadeIn_1eyj7_1 .8s var(--ease-smooth)}._personaBadge_1eyj7_9{display:flex;align-items:center;gap:var(--space-4);background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--accent-light);padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);font-weight:700;border:1px solid var(--border-accent);box-shadow:var(--glass-shadow);cursor:default;transition:all var(--transition-base)}._personaBadge_1eyj7_9:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}._personaBadge_1eyj7_9 svg{font-size:1.5rem;color:var(--accent)}._personaInfo_1eyj7_37{display:flex;flex-direction:column}._personaLabel_1eyj7_42{font-size:.72rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-tertiary);margin-bottom:2px;font-weight:800}._personaValue_1eyj7_51{font-size:1.1rem;color:var(--text-primary);letter-spacing:-.01em}._statsGrid_1eyj7_57{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-6);margin-bottom:var(--space-10);animation:_slideUpIn_1eyj7_1 .8s var(--ease-smooth)}._statCard_1eyj7_65{background:var(--glass-bg);border:1px solid var(--border-primary);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;align-items:center;gap:var(--space-5);transition:all var(--transition-base)}._statCard_1eyj7_65:hover{transform:translateY(-5px);border-color:var(--border-accent);background:var(--bg-tertiary)}._statIcon_1eyj7_82{width:54px;height:54px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;transition:transform var(--transition-base)}._statCard_1eyj7_65:hover ._statIcon_1eyj7_82{transform:scale(1.1) rotate(-5deg)}._statInfo_1eyj7_98{display:flex;flex-direction:column}._statValue_1eyj7_103{font-size:1.75rem;font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:4px;letter-spacing:-.02em}._statLabel_1eyj7_112{color:var(--text-tertiary);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px}._wideSection_1eyj7_120{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);margin-bottom:var(--space-10);box-shadow:var(--glass-shadow);animation:_slideUpIn_1eyj7_1 .8s var(--ease-smooth) .1s both}._sectionHeader_1eyj7_132{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);gap:var(--space-4)}._sectionHeader_1eyj7_132 h3{font-size:1.5rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}._yearSelect_1eyj7_147{width:130px;height:44px;padding:0 var(--space-4);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2371717a' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;transition:all var(--transition-fast)}._yearSelect_1eyj7_147:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._yearSelect_1eyj7_147:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}._heatmapLayout_1eyj7_176{display:flex;gap:var(--space-8);align-items:flex-start;justify-content:center}._dayLabels_1eyj7_183{display:grid;grid-template-rows:repeat(7,14px);gap:4px;font-size:.75rem;color:var(--text-tertiary);align-items:center;padding-right:6px;margin-top:24px;font-weight:700}._heatmapWrapper_1eyj7_195{overflow-x:auto;padding:var(--space-2) var(--space-3);max-width:100%}._heatmapMonthLabels_1eyj7_201{display:grid;grid-auto-flow:column;grid-auto-columns:18px;margin-bottom:8px;font-size:.7rem;color:var(--text-tertiary);font-weight:700;text-transform:uppercase}._heatmapGrid_1eyj7_212{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,14px);gap:4px;width:fit-content}._heatBox_1eyj7_220{width:14px;height:14px;border-radius:3px;background:var(--bg-tertiary);border:1px solid var(--border-primary);transition:all .15s ease}._heatBox_1eyj7_220._hiddenBox_1eyj7_229{opacity:0;pointer-events:none}._heatBox_1eyj7_220:hover{transform:scale(1.6);z-index:10;border-color:var(--accent)}._level0_1eyj7_240{background:var(--bg-tertiary)}._level1_1eyj7_243{background:color-mix(in srgb,var(--accent) 25%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}._level2_1eyj7_247{background:color-mix(in srgb,var(--accent) 50%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}._level3_1eyj7_251{background:color-mix(in srgb,var(--accent) 75%,transparent);border-color:color-mix(in srgb,var(--accent) 80%,transparent)}._level4_1eyj7_255{background:var(--accent);border-color:var(--accent-light)}._heatmapFooter_1eyj7_260{display:flex;justify-content:flex-end;margin-top:var(--space-6);padding-right:var(--space-2)}._heatLegend_1eyj7_267{display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--text-tertiary);font-weight:700;text-transform:uppercase}._chartsContainer_1eyj7_277{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--space-8);margin-bottom:var(--space-10);animation:_slideUpIn_1eyj7_1 .8s var(--ease-smooth) .2s both}._chartWrapper_1eyj7_285{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);display:flex;flex-direction:column;box-shadow:var(--glass-shadow);transition:transform var(--transition-base)}._chartWrapper_1eyj7_285:hover{transform:translateY(-4px)}._chartWrapper_1eyj7_285 h3{margin-bottom:var(--space-8);font-size:1.25rem;font-weight:800;color:var(--text-primary);border-left:4px solid var(--accent);padding-left:var(--space-4);letter-spacing:-.01em}._hourlyChart_1eyj7_312{display:flex;align-items:flex-end;height:160px;gap:2px;padding-top:var(--space-4)}._hourlyBarContainer_1eyj7_320{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}._hourlyBar_1eyj7_320{width:100%;max-width:12px;background:linear-gradient(to top,var(--accent),var(--accent-light));border-radius:4px 4px 2px 2px;opacity:.7;transition:all var(--transition-fast);min-height:4px}._hourlyBar_1eyj7_320:hover{opacity:1;transform:scaleY(1.05);filter:brightness(1.2);box-shadow:0 0 10px var(--accent-glow)}._hourlyLabel_1eyj7_346{font-size:.75rem;color:var(--text-tertiary);margin-top:8px;font-weight:700}._chartSubtext_1eyj7_353{margin-top:var(--space-8);padding:var(--space-4);background:var(--accent-subtle);border:1px solid var(--border-accent);border-radius:var(--radius-lg);font-size:.9rem;color:var(--accent-light);font-weight:600;text-align:center}._popScale_1eyj7_365{padding:var(--space-8) 0}._popTrack_1eyj7_369{height:14px;background:linear-gradient(to right,var(--accent-dark),var(--accent),var(--accent-light));border-radius:var(--radius-full);position:relative;margin-bottom:var(--space-6)}._popThumb_1eyj7_377{width:26px;height:26px;background:#fff;border:4px solid var(--bg-secondary);border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:left 1s var(--ease-spring)}._popDescription_1eyj7_389{font-size:.95rem;color:var(--text-secondary);line-height:1.6;background:var(--bg-secondary);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border-primary)}._popDescription_1eyj7_389 strong{color:var(--text-primary);font-weight:800}._seasonalChart_1eyj7_404{display:flex;align-items:flex-end;height:160px;gap:8px;padding-top:var(--space-4)}._seasonalBarContainer_1eyj7_412{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}._seasonalBar_1eyj7_412{width:100%;background:var(--accent);border-radius:6px 6px 2px 2px;opacity:.8;transition:all var(--transition-fast)}._seasonalBar_1eyj7_412:hover{opacity:1;transform:scaleY(1.03)}._seasonalLabel_1eyj7_434{font-size:.75rem;color:var(--text-tertiary);margin-top:10px;font-weight:700;text-transform:uppercase}._genreList_1eyj7_442{display:flex;flex-direction:column;gap:var(--space-6);padding-top:var(--space-2)}._genreRow_1eyj7_449{display:flex;flex-direction:column;gap:var(--space-2)}._genreInfo_1eyj7_455{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}._genreName_1eyj7_462{font-weight:800;font-size:1rem;color:var(--text-primary);letter-spacing:-.01em}._genreCount_1eyj7_469{font-size:.8rem;color:var(--text-tertiary);font-weight:700;text-transform:uppercase}._genreBarBg_1eyj7_476{height:12px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}._genreBar_1eyj7_476{height:100%;border-radius:var(--radius-full);transition:width 1.5s var(--ease-smooth)}._warningSection_1eyj7_489{background:#ef444408;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-xl);padding:var(--space-10);box-shadow:0 20px 50px -20px #ef444426;animation:_slideUpIn_1eyj7_1 .8s var(--ease-smooth) .3s both}._warningHeader_1eyj7_500{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);color:#ef4444}._warningHeader_1eyj7_500 h3{font-size:1.5rem;font-weight:800;margin:0;letter-spacing:-.03em;text-transform:uppercase}._droppedGrid_1eyj7_516{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}._droppedCard_1eyj7_522{background:var(--bg-secondary);border:1px solid var(--border-primary);padding:var(--space-6);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:8px;transition:all var(--transition-base)}._droppedCard_1eyj7_522:hover{transform:translateY(-4px) scale(1.02);background:var(--bg-tertiary);border-color:var(--border-secondary)}._droppedName_1eyj7_539{font-weight:800;color:var(--text-primary);font-size:1.1rem;letter-spacing:-.01em}._droppedDate_1eyj7_546{font-size:.85rem;color:var(--text-tertiary);font-weight:600}@keyframes _fadeIn_1eyj7_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUpIn_1eyj7_1{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){._header_1eyj7_1{flex-direction:column;align-items:flex-start;gap:var(--space-6)}._statsGrid_1eyj7_57,._chartsContainer_1eyj7_277{grid-template-columns:1fr}._heatmapLayout_1eyj7_176{flex-direction:column-reverse}._genreGrid_1eyj7_587{grid-template-columns:1fr}}._genreGrid_1eyj7_587{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1.5rem;margin-bottom:var(--space-10)}._genreCard_1eyj7_599{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:1.5rem;position:relative;box-shadow:var(--glass-shadow)}._rankBadge_1eyj7_608{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center}._rankNumber_1eyj7_621{color:var(--accent-text);font-weight:700;font-size:1.1rem}._genreTitle_1eyj7_627{font-size:1.25rem;font-weight:800;color:var(--text-primary);margin-bottom:.75rem;letter-spacing:-.01em}._genreStats_1eyj7_635{display:flex;gap:1rem;margin-bottom:1rem;font-size:.85rem;color:var(--text-secondary)}._posterRow_1eyj7_643{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:.5rem}._miniPoster_1eyj7_650{aspect-ratio:2/3;width:100%;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-primary);transition:transform var(--transition-fast)}._miniPoster_1eyj7_650:hover{transform:scale(1.05);border-color:var(--accent)}._genreCardSkeleton_1eyj7_664{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:1.5rem;animation:_pulse_1eyj7_1 1.5s ease-in-out infinite}._skeletonRank_1eyj7_672{width:32px;height:32px;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);border-radius:50%;margin-bottom:.5rem}._skeletonTitle_1eyj7_686{height:1.25rem;width:60%;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);border-radius:4px;margin-bottom:.75rem}._skeletonStats_1eyj7_699{height:1rem;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);border-radius:4px;margin-bottom:1rem}._skeletonPosters_1eyj7_711{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}._skeletonPosters_1eyj7_711:before{content:"";display:block;height:100%;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);border-radius:4px}@keyframes _pulse_1eyj7_1{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}
@@ -0,0 +1 @@
1
+ import{h as w,b as D,d as I,T as h,e}from"./vendor-rLNfZm7Y.js";import{aW as x,g as $,aX as T,aY as R,S as G,N as g,aZ as F,x as M,a_ as W,h as O,aL as V}from"./index-CpjgU8ou.js";const Y="_header_1eyj7_1",H="_fadeIn_1eyj7_1",P="_personaBadge_1eyj7_9",A="_personaInfo_1eyj7_37",E="_personaLabel_1eyj7_42",U="_personaValue_1eyj7_51",q="_statsGrid_1eyj7_57",z="_slideUpIn_1eyj7_1",K="_statCard_1eyj7_65",Q="_statIcon_1eyj7_82",X="_statInfo_1eyj7_98",Z="_statValue_1eyj7_103",J="_statLabel_1eyj7_112",ee="_wideSection_1eyj7_120",ae="_sectionHeader_1eyj7_132",te="_yearSelect_1eyj7_147",se="_heatmapLayout_1eyj7_176",ne="_dayLabels_1eyj7_183",re="_heatmapWrapper_1eyj7_195",le="_heatmapMonthLabels_1eyj7_201",oe="_heatmapGrid_1eyj7_212",ce="_heatBox_1eyj7_220",ie="_hiddenBox_1eyj7_229",de="_level0_1eyj7_240",he="_level1_1eyj7_243",pe="_level2_1eyj7_247",_e="_level3_1eyj7_251",me="_level4_1eyj7_255",ue="_heatmapFooter_1eyj7_260",ye="_heatLegend_1eyj7_267",ge="_chartsContainer_1eyj7_277",ve="_chartWrapper_1eyj7_285",Ne="_hourlyChart_1eyj7_312",be="_hourlyBarContainer_1eyj7_320",fe="_hourlyBar_1eyj7_320",je="_hourlyLabel_1eyj7_346",Ce="_chartSubtext_1eyj7_353",Se="_popScale_1eyj7_365",ke="_popTrack_1eyj7_369",Le="_popThumb_1eyj7_377",Be="_popDescription_1eyj7_389",we="_seasonalChart_1eyj7_404",De="_seasonalBarContainer_1eyj7_412",Ie="_seasonalBar_1eyj7_412",xe="_seasonalLabel_1eyj7_434",$e="_genreList_1eyj7_442",Te="_genreRow_1eyj7_449",Re="_genreInfo_1eyj7_455",Ge="_genreName_1eyj7_462",Fe="_genreCount_1eyj7_469",Me="_genreBarBg_1eyj7_476",We="_genreBar_1eyj7_476",Oe="_warningSection_1eyj7_489",Ve="_warningHeader_1eyj7_500",Ye="_droppedGrid_1eyj7_516",He="_droppedCard_1eyj7_522",Pe="_droppedName_1eyj7_539",Ae="_droppedDate_1eyj7_546",Ee="_genreGrid_1eyj7_587",Ue="_genreCard_1eyj7_599",qe="_rankBadge_1eyj7_608",ze="_rankNumber_1eyj7_621",Ke="_genreTitle_1eyj7_627",Qe="_genreStats_1eyj7_635",Xe="_posterRow_1eyj7_643",Ze="_miniPoster_1eyj7_650",Je="_genreCardSkeleton_1eyj7_664",ea="_pulse_1eyj7_1",aa="_skeletonRank_1eyj7_672",ta="_skeletonTitle_1eyj7_686",sa="_skeletonStats_1eyj7_699",na="_skeletonPosters_1eyj7_711",a={header:Y,fadeIn:H,personaBadge:P,personaInfo:A,personaLabel:E,personaValue:U,statsGrid:q,slideUpIn:z,statCard:K,statIcon:Q,statInfo:X,statValue:Z,statLabel:J,wideSection:ee,sectionHeader:ae,yearSelect:te,heatmapLayout:se,dayLabels:ne,heatmapWrapper:re,heatmapMonthLabels:le,heatmapGrid:oe,heatBox:ce,hiddenBox:ie,level0:de,level1:he,level2:pe,level3:_e,level4:me,heatmapFooter:ue,heatLegend:ye,chartsContainer:ge,chartWrapper:ve,hourlyChart:Ne,hourlyBarContainer:be,hourlyBar:fe,hourlyLabel:je,chartSubtext:Ce,popScale:Se,popTrack:ke,popThumb:Le,popDescription:Be,seasonalChart:we,seasonalBarContainer:De,seasonalBar:Ie,seasonalLabel:xe,genreList:$e,genreRow:Te,genreInfo:Re,genreName:Ge,genreCount:Fe,genreBarBg:Me,genreBar:We,warningSection:Oe,warningHeader:Ve,droppedGrid:Ye,droppedCard:He,droppedName:Pe,droppedDate:Ae,genreGrid:Ee,genreCard:Ue,rankBadge:qe,rankNumber:ze,genreTitle:Ke,genreStats:Qe,posterRow:Xe,miniPoster:Ze,genreCardSkeleton:Je,pulse:ea,skeletonRank:aa,skeletonTitle:ta,skeletonStats:sa,skeletonPosters:na},oa=()=>{w(()=>{document.title="Insights - dango"},[]);const{data:s,isLoading:v,isError:N}=D({queryKey:["insights"],queryFn:async()=>{const t=await fetch("/api/insights");if(!t.ok)throw new Error("Failed to fetch insights");return t.json()}}),{data:b,isLoading:p}=x(),{titlePreference:f}=$(),_=t=>{switch(f){case"nativeName":return t.nativeName||t.name;case"englishName":return t.englishName||t.name;default:return t.name}},[c,j]=I(new Date().getFullYear()),C=h(()=>{if(!s?.activityGrid)return[new Date().getFullYear()];const t=new Set(s.activityGrid.map(n=>parseInt(n.day.split("-")[0])));return t.add(new Date().getFullYear()),Array.from(t).sort((n,r)=>r-n)},[s]),m=h(()=>{if(!s?.activityGrid)return[];const t=new Map(s.activityGrid.map(d=>[d.day,d.count])),n=[],r=new Date(c,0,1),o=new Date(c,11,31),i=r.getDay(),l=new Date(r);for(l.setDate(l.getDate()-i);(l<=o||l.getDay()!==0)&&!(l>o&&l.getDay()===0);){const d=l.getFullYear(),L=String(l.getMonth()+1).padStart(2,"0"),B=String(l.getDate()).padStart(2,"0"),u=`${d}-${L}-${B}`,y=l<r||l>o;n.push({date:u,count:y?0:t.get(u)||0,month:l.getMonth(),isOutOfRange:y}),l.setDate(l.getDate()+1)}return n},[s,c]),S=h(()=>s?.seasonality?.length?Math.max(...s.seasonality.map(t=>t.seconds),1):0,[s]),k=h(()=>s?.hourlyDist?.length?Math.max(...s.hourlyDist.map(t=>t.count),1):0,[s]);return v||p?e("div",{className:a.loading,children:"Analyzing your anime lifestyle..."}):N?e("div",{className:a.error,children:"Could not load insights. Data might be syncing."}):s?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(T,{}),e("div",{className:a.personaInfo,children:[e("span",{className:a.personaLabel,children:"Your Persona"}),e("span",{className:a.personaValue,children:s.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(R,{})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:[s.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(G,{})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:s.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(g,{})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:s.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(g,{})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:[s.completionRate,"%"]}),e("span",{className:a.statLabel,children:"Completion Rate"})]})]}),e("div",{className:a.statCard,children:[e("div",{className:a.statIcon,style:{background:"rgba(239, 68, 68, 0.2)",color:"#ef4444"},children:e(F,{})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:s.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(M,{})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:[s.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(W,{})}),e("div",{className:a.statInfo,children:[e("span",{className:a.statValue,children:[s.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:c,onChange:t=>j(Number(t.currentTarget.value)),children:C.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 n=-1;return m.forEach((r,o)=>{if(r.month!==n&&!r.isOutOfRange){const i=Math.floor(o/7)+1;i>(t.length>0?t[t.length-1].props.style.gridColumn+2:-1)&&(t.push(e("span",{style:{gridColumn:i,whiteSpace:"nowrap"},children:new Date(0,r.month).toLocaleString("default",{month:"short"})},o)),n=r.month)}}),t})()}),e("div",{className:a.heatmapGrid,children:m.map((t,n)=>{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}`},n)})}),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:s.hourlyDist?.map((t,n)=>e("div",{className:a.hourlyBarContainer,children:[e("div",{className:a.hourlyBar,style:{height:`${t.count/k*100||2}%`,width:"100%",maxWidth:"12px"},title:`${t.count} watches at ${t.hour}:00`}),e("span",{className:a.hourlyLabel,style:{visibility:n%4===0?"visible":"hidden"},children:t.hour})]},n))}),e("div",{className:a.chartSubtext,children:(()=>{if(!s.hourlyDist?.length)return"Watch more to see your peak hours!";const t=parseInt([...s.hourlyDist].sort((n,r)=>r.count-n.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-s.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:[s.popularityScore,"/10"]}),".",s.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:s.seasonality?.map((t,n)=>e("div",{className:a.seasonalBarContainer,children:[e("div",{className:a.seasonalBar,style:{height:`${t.seconds/S*100||5}%`,width:"100%",maxWidth:"24px"},title:`${Math.round(t.seconds/3600)}h in ${new Date(0,n).toLocaleString("default",{month:"long"})}`}),e("span",{className:a.seasonalLabel,children:new Date(0,n).toLocaleString("default",{month:"short"})})]},n))})]})]}),e("div",{className:a.genreGrid,children:p?Array.from({length:4}).map((t,n)=>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})]},n)):b?.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.toFixed(1)," avg score"]}),e("span",{children:t.timeWatched})]}),e("div",{className:a.posterRow,children:t.topShows.map(n=>e("img",{src:O(n.thumbnail),alt:_(n),className:a.miniPoster,title:_(n)},n.id))})]},t.name))}),s.droppedShows?.length>0&&e("div",{className:a.warningSection,children:[e("div",{className:a.warningHeader,children:[e(V,{}),e("h3",{children:"Dusty Watchlist (Inactive 90+ days)"})]}),e("div",{className:a.droppedGrid,children:s.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{oa as default};
@@ -0,0 +1 @@
1
+ import{b as Q,e,d as k,A as J,u as ce,q as de,h as f,S as ne,r as ge}from"./vendor-rLNfZm7Y.js";import{am as X,F as O,a as H,aJ as ee,aK as he,J as ue,T as pe,an as me,B as ae,av as _e}from"./index-CpjgU8ou.js";import{E as te}from"./ErrorMessage-BwSjzblw.js";const re=300*1e3,ve={mangadex:"https://mangadex.org/",mangapill:"https://www.mangapill.com/"},se=(n,l)=>`/api/proxy?url=${encodeURIComponent(l)}&referer=${encodeURIComponent(ve[n])}`,le=(n,l)=>l&&(n==="mangapill"?se(n,l):l),be=n=>{const{provider:l,query:o,page:h,sort:i,status:b,type:g,rating:N,mature:m}=n;return Q({queryKey:["mangaBrowse",l,o,h,i,b,g,N,m],queryFn:()=>{const u=new URLSearchParams;return u.set("provider",l),o.trim()&&u.set("q",o.trim()),u.set("page",String(h)),i&&u.set("sort",i),b&&u.set("status",b),g&&u.set("type",g),N&&u.set("rating",N),m&&u.set("mature","1"),X(`/api/manga/search?${u.toString()}`)},staleTime:re})},fe=(n,l,o="safe",h=!1)=>Q({queryKey:["mangaDetail",n,l,o,h],queryFn:()=>{const i=new URLSearchParams;return i.set("provider",n||""),i.set("id",l||""),o&&i.set("rating",o),h&&i.set("mature","1"),X(`/api/manga/info?${i.toString()}`)},enabled:!!n&&!!l,staleTime:re}),je=(n,l,o)=>Q({queryKey:["mangaPages",n,l],queryFn:()=>X(`/api/manga/pages?provider=${n}&id=${encodeURIComponent(l||"")}`),enabled:!!n&&!!l,staleTime:1800*1e3}),Ne="_page_1ijj0_1",ye="_header_1ijj0_8",Se="_pageTitle_1ijj0_16",we="_searchForm_1ijj0_25",Ce="_searchInput_1ijj0_40",Pe="_searchBtn_1ijj0_51",Te="_select_1ijj0_64",ke="_filterRow_1ijj0_75",Me="_matureToggleWrap_1ijj0_83",Ie="_matureLabel_1ijj0_90",Be="_grid_1ijj0_96",xe="_fetching_1ijj0_103",Re="_card_1ijj0_108",$e="_thumbWrap_1ijj0_120",Le="_thumb_1ijj0_120",Ee="_thumbPlaceholder_1ijj0_143",Fe="_adultBadge_1ijj0_151",Ae="_cardTitle_1ijj0_163",De="_cardMeta_1ijj0_174",Ue="_statusMsg_1ijj0_183",Oe="_pagination_1ijj0_189",qe="_pageBtn_1ijj0_197",We="_pageIndicator_1ijj0_212",ze="_skeletonCard_1ijj0_217",Ze="_skeletonThumb_1ijj0_222",Ve="_skeletonLine_1ijj0_228",Ke="_shimmer_1ijj0_235",Je="_detail_1ijj0_257",Qe="_detailCover_1ijj0_264",Xe="_detailInfo_1ijj0_273",Ye="_detailTitle_1ijj0_278",Ge="_detailMeta_1ijj0_284",He="_badge_1ijj0_293",ea="_detailDesc_1ijj0_300",aa="_backBtn_1ijj0_307",ta="_chapterList_1ijj0_326",na="_chapterRow_1ijj0_333",ra="_chapterMeta_1ijj0_358",sa="_readerShell_1ijj0_364",la="_readerBar_1ijj0_368",ia="_readerIconBtn_1ijj0_382",oa="_readerTitle_1ijj0_401",ca="_readerCounter_1ijj0_412",da="_readerSegment_1ijj0_423",ga="_readerSegmentActive_1ijj0_443",ha="_readerPages_1ijj0_448",ua="_readerPageWrap_1ijj0_457",pa="_readerPage_1ijj0_448",ma="_readerPagesTall_1ijj0_470",_a="_pageView_1ijj0_477",va="_pageImage_1ijj0_489",ba="_pageViewTall_1ijj0_499",fa="_tapZone_1ijj0_505",ja="_tapZoneLeft_1ijj0_517",Na="_tapZoneRight_1ijj0_522",ya="_tapChevron_1ijj0_527",Sa="_deadPage_1ijj0_564",wa="_failedBox_1ijj0_580",t={page:Ne,header:ye,pageTitle:Se,searchForm:we,searchInput:Ce,searchBtn:Pe,select:Te,filterRow:ke,matureToggleWrap:Me,matureLabel:Ie,grid:Be,fetching:xe,card:Re,thumbWrap:$e,thumb:Le,thumbPlaceholder:Ee,adultBadge:Fe,cardTitle:Ae,cardMeta:De,statusMsg:Ue,pagination:Oe,pageBtn:qe,pageIndicator:We,skeletonCard:ze,skeletonThumb:Ze,skeletonLine:Ve,shimmer:Ke,detail:Je,detailCover:Qe,detailInfo:Xe,detailTitle:Ye,detailMeta:Ge,badge:He,detailDesc:ea,backBtn:aa,chapterList:ta,chapterRow:na,chapterMeta:ra,readerShell:sa,readerBar:la,readerIconBtn:ia,readerTitle:oa,readerCounter:ca,readerSegment:da,readerSegmentActive:ga,readerPages:ha,readerPageWrap:ua,readerPage:pa,readerPagesTall:ma,pageView:_a,pageImage:va,pageViewTall:ba,tapZone:fa,tapZoneLeft:ja,tapZoneRight:Na,tapChevron:ya,deadPage:Sa,failedBox:wa},Ca=({item:n,onSelect:l})=>{const o=[n.type,n.status,n.year?String(n.year):""].filter(Boolean).join(" · "),h=n.contentRating==="erotica"||n.contentRating==="pornographic"||n.type==="doujinshi";return e("button",{className:t.card,onClick:()=>l(n),title:n.title,children:[e("div",{className:t.thumbWrap,children:[n.cover?e("img",{className:t.thumb,src:le(n.provider,n.cover),alt:n.title,loading:"lazy",draggable:!1}):e("div",{className:`${t.thumb} ${t.thumbPlaceholder}`,children:e("span",{children:"No Image"})}),h&&e("span",{className:t.adultBadge,children:"18+"})]}),e("p",{className:t.cardTitle,children:n.title}),o&&e("p",{className:t.cardMeta,children:o})]})},Pa=({detail:n,onBack:l,onOpenChapter:o})=>{const h=[n.type,n.status,n.year?String(n.year):"",n.author?`by ${n.author}`:""].filter(Boolean);return e("div",{children:[e("button",{className:t.backBtn,onClick:l,children:[e(O,{size:12})," Back to browse"]}),e("div",{className:t.detail,children:[n.cover&&e("img",{className:t.detailCover,src:le(n.provider,n.cover),alt:n.title,draggable:!1}),e("div",{className:t.detailInfo,children:[e("h2",{className:t.detailTitle,children:n.title}),h.length>0&&e("div",{className:t.detailMeta,children:h.map(i=>e("span",{className:t.badge,children:i},i))}),n.genres&&n.genres.length>0&&e("div",{className:t.detailMeta,children:n.genres.map(i=>e("span",{className:t.badge,children:i},i))}),n.description&&e("p",{className:t.detailDesc,children:n.description})]})]}),e("h3",{className:t.detailTitle,style:{fontSize:"1rem"},children:["Chapters (",n.chapters.length,")"]}),n.chapters.length===0?e("p",{className:t.statusMsg,children:"No chapters found for this title on this provider."}):e("div",{className:t.chapterList,children:n.chapters.map(i=>e("button",{className:t.chapterRow,onClick:()=>o(i),title:i.externalUrl?"External only — opens on source site":void 0,children:[e("span",{children:["Ch. ",i.number,i.title?` — ${i.title}`:""]}),e("span",{className:t.chapterMeta,children:[i.group,i.externalUrl?"external":""].filter(Boolean).join(" · ")})]},i.id))})]})},ie="mangaReadMode",oe="mangaFitMode";function Ta(){try{return localStorage.getItem(ie)==="page"?"page":"strip"}catch{return"strip"}}function ka(){try{return localStorage.getItem(oe)==="height"?"height":"width"}catch{return"width"}}const Ma=({provider:n,mangaTitle:l,chapter:o,chapters:h,onBack:i,onOpenChapter:b})=>{const[g,N]=k(Ta),[m,u]=k(ka),[p,B]=k(0),[x,M]=k(new Set),[F,w]=k(0),C=J(null),y=J([]),$=ce(),{data:A,isLoading:j,isError:I}=je(n,o.id),d=A?.pages??[],D=d.map(r=>se(n,r)),P=h.findIndex(r=>r.id===o.id),c=P>0?[...h.slice(0,P)].reverse().find(r=>!r.externalUrl)??null:null,_=P>=0?h.slice(P+1).find(r=>!r.externalUrl)??null:null,v=de(r=>{B(a=>{const s=a+r;return s<0?(c&&b(c),0):s>=d.length?(_&&b(_),a):s})},[d.length,c,_,b]);f(()=>{B(0),M(new Set),y.current=[],window.scrollTo(0,0)},[o.id]),f(()=>{document.title=`${l} Ch. ${o.number} - dango`},[l,o.number]),f(()=>{try{localStorage.setItem(ie,g)}catch{}},[g]),f(()=>{try{localStorage.setItem(oe,m)}catch{}},[m]),f(()=>{g==="page"&&window.scrollTo(0,0)},[g]),f(()=>{if(g!=="page"||d.length===0)return;const r=a=>{a.key==="ArrowRight"||a.key===" "?(a.preventDefault(),v(1)):a.key==="ArrowLeft"&&(a.preventDefault(),v(-1))};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[g,d.length,v]),f(()=>{if(g!=="strip"||d.length===0)return;const r=new IntersectionObserver(a=>{for(const s of a)if(s.isIntersecting){const S=Number(s.target.dataset.pageIndex);Number.isNaN(S)||B(S)}},{rootMargin:"-45% 0px -45% 0px",threshold:0});return y.current.forEach(a=>a&&r.observe(a)),()=>r.disconnect()},[g,d.length,A]);const q=r=>{C.current=r.touches[0].clientX},W=r=>{if(C.current===null)return;const a=r.changedTouches[0].clientX-C.current;C.current=null,!(Math.abs(a)<50)&&v(a<0?1:-1)},R=r=>{r&&b(r)},L=r=>M(a=>{if(a.has(r))return a;const s=new Set(a);return s.add(r),s}),z=r=>{M(a=>{const s=new Set(a);return s.delete(r),s}),w(a=>a+1)},Z=()=>{M(new Set),w(r=>r+1),$.invalidateQueries({queryKey:["mangaPages",n,o.id]})},V=d.length>0&&x.size>=d.length,E=r=>F>0?`${r}&n=${F}`:r,U=r=>e("div",{className:t.deadPage,role:"alert",children:[e("span",{children:["Page ",r+1," failed to load"]}),e("button",{className:t.pageBtn,onClick:()=>z(r),children:[e(ee,{size:12})," Retry"]})]}),T=m==="height";return e("div",{className:t.readerShell,children:[e("div",{className:t.readerBar,children:[e("button",{className:t.readerIconBtn,onClick:i,"aria-label":"Back to chapters",children:e(O,{size:14})}),e("span",{className:t.readerTitle,children:[l," — Ch. ",o.number,o.title?` ${o.title}`:""]}),d.length>0&&e("span",{className:t.readerCounter,children:[Math.min(p+1,d.length)," / ",d.length]}),e("div",{className:t.readerSegment,role:"group","aria-label":"Reading mode",children:[e("button",{type:"button","aria-pressed":g==="strip",className:g==="strip"?t.readerSegmentActive:"",onClick:()=>N("strip"),children:"Strip"}),e("button",{type:"button","aria-pressed":g==="page",className:g==="page"?t.readerSegmentActive:"",onClick:()=>N("page"),children:"Page"})]}),e("div",{className:t.readerSegment,role:"group","aria-label":"Fit mode",children:[e("button",{type:"button","aria-pressed":!T,className:T?"":t.readerSegmentActive,onClick:()=>u("width"),title:"Fit width — best for portrait / phones",children:"Wide"}),e("button",{type:"button","aria-pressed":T,className:T?t.readerSegmentActive:"",onClick:()=>u("height"),title:"Fit height — best for landscape / desktop",children:"Tall"})]}),e("button",{className:t.readerIconBtn,disabled:!c,onClick:()=>R(c),"aria-label":"Previous chapter",children:e(O,{size:14})}),e("button",{className:t.readerIconBtn,disabled:!_,onClick:()=>R(_),"aria-label":"Next chapter",children:e(H,{size:14})})]}),I?e("p",{className:t.statusMsg,children:"Failed to load pages. Please try again."}):j?e("div",{className:t.readerPages,"aria-hidden":!0,children:Array.from({length:3}).map((r,a)=>e("div",{className:`${t.skeletonThumb} ${t.shimmer}`,style:{width:"100%",maxWidth:"56rem",aspectRatio:"3 / 4"}},a))}):d.length===0?e("p",{className:t.statusMsg,children:"No pages found for this chapter."}):V?e("div",{className:t.failedBox,children:[e("p",{className:t.statusMsg,children:"Page images failed to load (expired or blocked links)."}),e("button",{className:t.pageBtn,onClick:Z,children:[e(ee,{size:12})," Reload pages"]})]}):g==="strip"?e("div",{className:`${t.readerPages} ${T?t.readerPagesTall:""}`,children:D.map((r,a)=>e("div",{ref:s=>{y.current[a]=s},"data-page-index":a,className:t.readerPageWrap,children:x.has(a)?U(a):e("img",{className:t.readerPage,src:E(r),alt:`Page ${a+1}`,loading:a<3?"eager":"lazy",draggable:!1,onError:()=>L(a)})},`${a}-${d[a].slice(-32)}`))}):e(ne,{children:[e("div",{className:`${t.pageView} ${T?t.pageViewTall:""}`,onTouchStart:q,onTouchEnd:W,children:[e("button",{className:`${t.tapZone} ${t.tapZoneLeft}`,onClick:()=>v(-1),"aria-label":"Previous page",children:e("span",{className:t.tapChevron,children:e(O,{size:16})})}),x.has(p)?U(p):e("img",{className:t.pageImage,src:E(D[p]),alt:`Page ${p+1} of ${d.length}`,draggable:!1,onError:()=>L(p)},`${p}-${d[p].slice(-32)}`),e("button",{className:`${t.tapZone} ${t.tapZoneRight}`,onClick:()=>v(1),"aria-label":"Next page",children:e("span",{className:t.tapChevron,children:e(H,{size:16})})})]}),e("nav",{className:t.pagination,"aria-label":"Page navigation",children:[e("button",{className:t.pageBtn,disabled:p<=0,onClick:()=>v(-1),children:"Previous page"}),e("span",{className:t.pageIndicator,children:[p+1," / ",d.length]}),e("button",{className:t.pageBtn,disabled:p>=d.length-1,onClick:()=>v(1),children:"Next page"})]})]}),(c||_)&&e("nav",{className:t.pagination,children:[e("button",{className:t.pageBtn,disabled:!c,onClick:()=>R(c),children:"Previous chapter"}),e("button",{className:t.pageBtn,disabled:!_,onClick:()=>R(_),children:"Next chapter"})]})]})},Ia=[{value:"mangadex",label:"MangaDex"},{value:"mangapill",label:"MangaPill"}],Ba=[{value:"popular",label:"Popular"},{value:"latest",label:"Latest"},{value:"rating",label:"Top Rated"},{value:"followed",label:"Most Followed"}],xa=[{value:"",label:"Any Status"},{value:"ongoing",label:"Ongoing"},{value:"completed",label:"Completed"},{value:"hiatus",label:"Hiatus"},{value:"cancelled",label:"Cancelled"}],Ra=[{value:"",label:"Any Status"},{value:"publishing",label:"Publishing"},{value:"finished",label:"Finished"},{value:"on hiatus",label:"On Hiatus"},{value:"discontinued",label:"Discontinued"}],$a=[{value:"",label:"All Types"},{value:"manga",label:"Manga"},{value:"novel",label:"Novel"},{value:"one-shot",label:"One-Shot"},{value:"doujinshi",label:"Doujinshi"}],La=[{value:"safe",label:"Safe"}],Ea=[{value:"safe",label:"Safe"},{value:"suggestive",label:"Suggestive"},{value:"erotica",label:"Erotica"},{value:"pornographic",label:"Pornographic"}],K="agreedToViewMature";function Ua(){const[n,l]=ge(),[o,h]=k(()=>localStorage.getItem(K)==="true"),[i,b]=k(!1),[g,N]=k(n.get("q")||""),m=n.get("provider")||"mangadex",u=n.get("q")||"",p=parseInt(n.get("page")||"1"),B=n.get("sort")||"popular",x=n.get("status")||"",M=n.get("type")||"",F=n.get("rating")||"safe",w=n.get("id")||"",C=n.get("chapter")||"";f(()=>{document.title="Manga - dango"},[]),f(()=>{const a=()=>h(localStorage.getItem(K)==="true");return window.addEventListener("focus",a),window.addEventListener("storage",a),()=>{window.removeEventListener("focus",a),window.removeEventListener("storage",a)}},[]);const y=o,$=y?F:"safe",A=y?Ea:La,j=(a,s=!1)=>{const S=new URLSearchParams(n);for(const[Y,G]of Object.entries(a))G?S.set(Y,G):S.delete(Y);s&&S.delete("page"),l(S)},I=be({provider:m,query:u,page:p,sort:B,status:x,type:M,rating:$,mature:y}),d=I.data?.items??[],D=I.data?.hasNext??!1,P=fe(w?m:null,w||null,$,y),c=P.data,_=c&&C?c.chapters.find(a=>a.id===C)??null:null,v=J("");v.current||(v.current=`manga-${Date.now()}-${Math.random().toString(36).slice(2)}`),f(()=>{if(!c||!_){fetch("/api/discord/status",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page:"manga"})}).catch(()=>{});return}const a=c.contentRating==="erotica"||c.contentRating==="pornographic"||c.type==="doujinshi",s=()=>{fetch("/api/discord/manga",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:c.title,chapterLabel:`Chapter ${_.number}`,isPlaying:!0,thumbnail:c.cover||"",thumbnails:[c.cover].filter(Boolean),isAdult:a,sessionId:v.current})}).catch(()=>{}),fetch("/api/discord/heartbeat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:v.current})}).catch(()=>{})};s();const S=window.setInterval(s,6e4);return()=>window.clearInterval(S)},[c,_]),f(()=>{g!==u&&N(u)},[u]);const q=a=>{a.preventDefault(),_e(),j({q:g},!0)},W=a=>{a.target.checked&&!o&&b(!0)},R=()=>{localStorage.setItem(K,"true"),h(!0),b(!1),j({},!0)},L=()=>{b(!1)},z=a=>{const s=new URLSearchParams(n);a.provider!==m&&s.set("provider",a.provider),s.set("id",a.id),s.delete("chapter"),l(s)},Z=()=>{const a=new URLSearchParams(n);a.delete("id"),a.delete("chapter"),l(a)},V=()=>{const a=new URLSearchParams(n);a.delete("chapter"),l(a)},E=a=>{if(a.externalUrl){window.open(a.externalUrl,"_blank","noopener,noreferrer");return}const s=new URLSearchParams(n);s.set("chapter",a.id),l(s)},U=m==="mangapill"?Ra:xa,T=m==="mangapill",r=m==="mangadex";return e("div",{className:t.page,children:[e("div",{className:t.header,children:[e("h1",{className:t.pageTitle,children:[e(he,{})," Manga"]}),e("form",{className:t.searchForm,onSubmit:q,children:[e("input",{className:t.searchInput,value:g,onChange:a=>N(a.target.value),placeholder:"Search manga titles...","aria-label":"Search manga"}),e("button",{className:t.searchBtn,type:"submit","aria-label":"Search",children:e(ue,{size:14})})]}),e("select",{className:t.select,value:m,onChange:a=>{const s=new URLSearchParams(n);s.set("provider",a.target.value),s.delete("page"),s.delete("id"),s.delete("chapter"),s.delete("status"),s.delete("type"),l(s)},"aria-label":"Manga provider",children:Ia.map(a=>e("option",{value:a.value,children:a.label},a.value))})]}),!w&&e("div",{className:t.filterRow,children:[m==="mangadex"&&e("select",{className:t.select,value:B,onChange:a=>j({sort:a.target.value},!0),"aria-label":"Sort manga",children:Ba.map(a=>e("option",{value:a.value,children:a.label},a.value))}),e("select",{className:t.select,value:x,onChange:a=>j({status:a.target.value},!0),"aria-label":"Filter by status",children:U.map(a=>e("option",{value:a.value,children:a.label},a.label))}),T&&e("select",{className:t.select,value:M,onChange:a=>j({type:a.target.value},!0),"aria-label":"Filter by type",children:$a.filter(a=>a.value!=="doujinshi"||y).map(a=>e("option",{value:a.value,children:a.label},a.value))}),r&&e("select",{className:t.select,value:$,onChange:a=>j({rating:a.target.value},!0),"aria-label":"Content rating",children:A.map(a=>e("option",{value:a.value,children:a.label},a.value))}),!o&&e("div",{className:t.matureToggleWrap,children:[e("label",{className:t.matureLabel,htmlFor:"manga-mature-toggle",children:"Mature"}),e(pe,{id:"manga-mature-toggle",isChecked:!1,onChange:W})]})]}),w&&C&&c&&_?e(Ma,{provider:m,mangaTitle:c.title,chapter:_,chapters:c.chapters,onBack:V,onOpenChapter:E}):w?P.isLoading?e("div",{"aria-hidden":!0,children:[e("div",{className:`${t.skeletonThumb} ${t.shimmer}`,style:{maxWidth:"12rem"}}),e("div",{className:`${t.skeletonLine} ${t.shimmer}`,style:{width:"40%"}}),e("div",{className:`${t.skeletonLine} ${t.shimmer}`,style:{width:"70%"}})]}):P.isError||!c?e(te,{message:"Failed to load this title. Please try again."}):e(Pa,{detail:c,onBack:Z,onOpenChapter:E}):I.isError?e(te,{message:"Failed to load manga. Please try again."}):I.isLoading&&d.length===0?e("div",{className:t.grid,"aria-hidden":!0,children:Array.from({length:12}).map((a,s)=>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%"}})]},s))}):d.length===0?e("p",{className:t.statusMsg,children:"No titles found. Try another search or provider."}):e(ne,{children:[e("div",{className:`${t.grid} ${I.isFetching?t.fetching:""}`,children:d.map(a=>e(Ca,{item:a,onSelect:z},`${a.provider}-${a.id}`))}),e("nav",{className:t.pagination,children:[e("button",{className:t.pageBtn,disabled:p<=1,onClick:()=>j({page:String(p-1)}),children:"Previous"}),e("span",{className:t.pageIndicator,children:["Page ",p]}),e("button",{className:t.pageBtn,disabled:!D,onClick:()=>j({page:String(p+1)}),children:"Next"})]})]}),i&&e(me,{isOpen:i,title:"Content Warning",onClose:L,children:e("div",{style:{padding:"var(--space-4)",textAlign:"center"},children:[e("p",{children:"This section 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("p",{style:{fontSize:"var(--font-size-xs)",color:"var(--text-secondary)",marginTop:"var(--space-4)"},children:["You can reset this preference at any time in the ",e("strong",{children:"Settings"})," page."]}),e("div",{style:{marginTop:"var(--space-4)",display:"flex",gap:"var(--space-2-5)",justifyContent:"center"},children:[e(ae,{variant:"secondary",onClick:L,children:"Go Back"}),e(ae,{onClick:R,children:"I'm 18+, Continue"})]})]})})]})}export{Ua as default};
@@ -0,0 +1 @@
1
+ ._page_1ijj0_1{max-width:var(--layout-asmr-max-width);margin:0 auto;padding:var(--space-6) var(--space-4);min-height:calc(100vh - var(--layout-page-offset))}._header_1ijj0_8{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}._pageTitle_1ijj0_16{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xl);margin:0;color:var(--text-primary)}._searchForm_1ijj0_25{display:flex;flex:1;min-width:var(--size-220);max-width:var(--size-480);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);overflow:hidden}._searchForm_1ijj0_25:focus-within{border-color:var(--accent)}._searchInput_1ijj0_40{flex:1;min-width:0;padding:var(--space-2-5) var(--space-3);border:none;background:transparent;color:var(--text-primary);font-size:var(--font-size-sm);outline:none}._searchBtn_1ijj0_51{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--size-44);border:none;border-left:var(--space-px) solid var(--border-primary);background:var(--accent);color:var(--text-primary);cursor:pointer}._select_1ijj0_64{padding:var(--space-2-5) var(--space-3);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;max-width:11rem}._filterRow_1ijj0_75{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-5)}._matureToggleWrap_1ijj0_83{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}._matureLabel_1ijj0_90{font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer}._grid_1ijj0_96{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:var(--space-4);transition:opacity var(--transition-fast)}._fetching_1ijj0_103{opacity:.45;pointer-events:none}._card_1ijj0_108{display:flex;flex-direction:column;text-align:left;padding:0;border:none;background:none;cursor:pointer;color:inherit;min-width:0}._thumbWrap_1ijj0_120{position:relative;aspect-ratio:3 / 4;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-tertiary);transition:transform var(--transition-fast) var(--ease-smooth),box-shadow var(--transition-fast) var(--ease-smooth)}._card_1ijj0_108:hover ._thumbWrap_1ijj0_120{transform:translateY(calc(var(--space-1) * -1));box-shadow:var(--shadow-lg)}._thumb_1ijj0_120{width:100%;height:100%;object-fit:cover;display:block}._thumbPlaceholder_1ijj0_143{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--font-size-sm)}._adultBadge_1ijj0_151{position:absolute;top:var(--space-2);right:var(--space-2);padding:var(--space-2px) var(--space-2);border-radius:var(--radius-full);background:var(--color-danger-bg);color:var(--text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}._cardTitle_1ijj0_163{margin:var(--space-2) 0 var(--space-2px);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}._cardMeta_1ijj0_174{margin:0;font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._statusMsg_1ijj0_183{color:var(--text-secondary);text-align:center;padding:var(--space-8) 0}._pagination_1ijj0_189{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-6)}._pageBtn_1ijj0_197{padding:var(--space-2-5) var(--space-4);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer}._pageBtn_1ijj0_197:disabled{opacity:.4;cursor:default}._pageIndicator_1ijj0_212{font-size:var(--font-size-sm);color:var(--text-secondary)}._skeletonCard_1ijj0_217{display:flex;flex-direction:column}._skeletonThumb_1ijj0_222{aspect-ratio:3 / 4;border-radius:var(--radius-lg);background:var(--bg-tertiary)}._skeletonLine_1ijj0_228{height:.8rem;border-radius:var(--radius-sm);background:var(--bg-tertiary);margin-top:var(--space-2)}._shimmer_1ijj0_235{position:relative;overflow:hidden}._shimmer_1ijj0_235:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:_shimmer_1ijj0_235 1.4s infinite}@keyframes _shimmer_1ijj0_235{0%{transform:translate(-100%)}to{transform:translate(100%)}}._detail_1ijj0_257{display:flex;gap:var(--space-6);flex-wrap:wrap;margin-bottom:var(--space-6)}._detailCover_1ijj0_264{width:12rem;flex-shrink:0;aspect-ratio:3 / 4;border-radius:var(--radius-lg);object-fit:cover;background:var(--bg-tertiary)}._detailInfo_1ijj0_273{flex:1;min-width:16rem}._detailTitle_1ijj0_278{margin:0 0 var(--space-2);font-size:var(--font-size-xl);color:var(--text-primary)}._detailMeta_1ijj0_284{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3);font-size:var(--font-size-xs);color:var(--text-secondary)}._badge_1ijj0_293{padding:var(--space-2px) var(--space-2);border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary)}._detailDesc_1ijj0_300{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;max-width:60rem}._backBtn_1ijj0_307{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:none;color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer}._backBtn_1ijj0_307:hover{color:var(--text-primary);border-color:var(--accent)}._chapterList_1ijj0_326{display:flex;flex-direction:column;gap:var(--space-2px);margin-top:var(--space-4)}._chapterRow_1ijj0_333{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2-5) var(--space-3);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;text-align:left;width:100%}._chapterRow_1ijj0_333:hover{border-color:var(--accent)}._chapterRow_1ijj0_333:disabled{opacity:.45;cursor:default}._chapterMeta_1ijj0_358{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap}._readerShell_1ijj0_364{min-height:60vh}._readerBar_1ijj0_368{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) 0;margin-bottom:var(--space-3);background:color-mix(in srgb,var(--bg-primary) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}._readerIconBtn_1ijj0_382{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.25rem;height:2.25rem;border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}._readerIconBtn_1ijj0_382:disabled{opacity:.35;cursor:default}._readerTitle_1ijj0_401{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-semibold);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._readerCounter_1ijj0_412{flex-shrink:0;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--text-secondary);background:var(--bg-secondary);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-full);padding:var(--space-2px) var(--space-2-5)}._readerSegment_1ijj0_423{display:flex;flex-shrink:0;border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}._readerSegment_1ijj0_423 button{border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:.45rem .65rem;cursor:pointer;white-space:nowrap}._readerSegmentActive_1ijj0_443{background:var(--accent)!important;color:var(--accent-text)!important}._readerPages_1ijj0_448{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);max-width:56rem;margin:0 auto}._readerPageWrap_1ijj0_457{width:100%;display:flex;justify-content:center}._readerPage_1ijj0_448{width:100%;display:block;border-radius:var(--radius-sm);background:var(--bg-tertiary)}._readerPagesTall_1ijj0_470 ._readerPage_1ijj0_448{width:auto;max-width:100%;max-height:calc(100dvh - 5rem);margin:0 auto}._pageView_1ijj0_477{position:relative;display:flex;align-items:center;justify-content:center;min-height:calc(100dvh - 12rem);margin:0 auto;user-select:none;-webkit-user-select:none;touch-action:pan-y}._pageImage_1ijj0_489{display:block;width:100%;max-width:56rem;max-height:calc(100dvh - 12rem);object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-tertiary)}._pageViewTall_1ijj0_499 ._pageImage_1ijj0_489{width:auto;max-width:100%;height:calc(100dvh - 12rem)}._tapZone_1ijj0_505{position:absolute;top:0;bottom:0;width:28%;border:none;background:transparent;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent}._tapZoneLeft_1ijj0_517{left:0;cursor:w-resize}._tapZoneRight_1ijj0_522{right:0;cursor:e-resize}._tapChevron_1ijj0_527{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;background:color-mix(in srgb,var(--bg-primary) 65%,transparent);border:var(--space-px) solid var(--border-primary);color:var(--text-secondary);opacity:0;transition:opacity var(--transition-fast);pointer-events:none}._tapZoneLeft_1ijj0_517 ._tapChevron_1ijj0_527{left:.75rem}._tapZoneRight_1ijj0_522 ._tapChevron_1ijj0_527{right:.75rem}._tapZone_1ijj0_505:hover ._tapChevron_1ijj0_527,._tapZone_1ijj0_505:focus-visible ._tapChevron_1ijj0_527{opacity:1}@media(hover:none){._tapChevron_1ijj0_527{opacity:.85}}._deadPage_1ijj0_564{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:100%;max-width:28rem;margin:0 auto;padding:var(--space-8) var(--space-4);border:var(--space-px) dashed var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);background:var(--bg-secondary)}._failedBox_1ijj0_580{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-4)}@media(max-width:640px){._readerShell_1ijj0_364{margin-left:calc(var(--space-4) * -1);margin-right:calc(var(--space-4) * -1)}._readerBar_1ijj0_368{padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1-5)}._readerTitle_1ijj0_401{flex:1 1 100%;order:-1;font-size:var(--font-size-xs)}._readerSegment_1ijj0_423 button{padding:.4rem .5rem}._readerPages_1ijj0_448{gap:0;max-width:none}._readerPage_1ijj0_448{border-radius:0}._pageView_1ijj0_477{min-height:calc(100dvh - 10rem)}._pageImage_1ijj0_489{max-width:100%;border-radius:0}}@media(max-height:500px)and (orientation:landscape){._readerPagesTall_1ijj0_470 ._readerPage_1ijj0_448{max-height:calc(100dvh - 4rem)}._pageView_1ijj0_477,._pageViewTall_1ijj0_499 ._pageImage_1ijj0_489,._pageImage_1ijj0_489{min-height:0}._pageView_1ijj0_477{min-height:calc(100dvh - 8rem)}._pageImage_1ijj0_489{max-height:calc(100dvh - 8rem)}._pageViewTall_1ijj0_499 ._pageImage_1ijj0_489{height:calc(100dvh - 8rem)}}
@@ -0,0 +1 @@
1
+ ._header_lm0yk_1{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-8);animation:_fadeIn_lm0yk_1 .8s var(--ease-smooth)}._subtitle_lm0yk_10{color:var(--text-tertiary);font-size:var(--font-size-sm);margin:var(--space-2) 0 0;max-width:560px}._mapCard_lm0yk_17{background:var(--glass-bg);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);padding:var(--space-2);overflow:hidden;margin-bottom:var(--space-16);animation:_slideUpIn_lm0yk_1 .8s var(--ease-smooth)}._canvasWrap_lm0yk_28{position:relative;width:100%}._mapSvg_lm0yk_33{width:100%;height:auto;display:block}._tooltip_lm0yk_39{pointer-events:none;background:#0a0a0eeb;border:1px solid var(--border-accent);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:var(--glass-shadow);display:flex;flex-direction:column;gap:2px;z-index:10}._tooltip_lm0yk_39 strong{color:var(--accent-light);font-size:var(--font-size-xs);letter-spacing:.3px}._tooltip_lm0yk_39 span{color:var(--text-secondary);font-size:var(--font-size-xs)}._statsGrid_lm0yk_63{display:flex;flex-direction:column;gap:var(--space-2);position:absolute;right:var(--space-3);bottom:var(--space-3);z-index:10}._statCard_lm0yk_73{display:flex;align-items:center;gap:var(--space-3);background:var(--glass-bg);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--glass-shadow);padding:var(--space-3) var(--space-4);transition:all var(--transition-base);white-space:nowrap}._statCard_lm0yk_73:hover{border-color:var(--border-accent);transform:translateY(-2px)}._statCard_lm0yk_73>svg{font-size:1.1rem;color:var(--accent)}._statValue_lm0yk_96{display:block;font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary);line-height:1.1}._statLabel_lm0yk_104{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--text-tertiary)}._loading_lm0yk_111{padding:var(--space-16);text-align:center;color:var(--text-tertiary);animation:_fadeIn_lm0yk_1 .6s var(--ease-smooth)}._error_lm0yk_118{padding:var(--space-16);text-align:center;color:var(--color-danger);animation:_fadeIn_lm0yk_1 .6s var(--ease-smooth)}@media(max-width:600px){._statsGrid_lm0yk_63{flex-direction:row;right:var(--space-2);bottom:var(--space-2);gap:var(--space-1)}._statCard_lm0yk_73{padding:var(--space-2) var(--space-3);gap:var(--space-2)}._statCard_lm0yk_73>svg{font-size:.9rem}._statValue_lm0yk_96{font-size:var(--font-size-sm)}._statLabel_lm0yk_104{font-size:.6rem}}@keyframes _glowPulse_lm0yk_1{0%,to{opacity:.15}50%{opacity:.5}}._glow_lm0yk_161{animation:_glowPulse_lm0yk_1 3s ease-in-out infinite;filter:blur(2px)}