Files
jiang13-forum/embed_static/static/spa/assets/index-5C0q-ZMs.js
freefire b451703642 完善论坛配置与发帖体验:TipTap 富文本、图片上传、修订历史、Feed 排序与后台参数管理。
同步更新 README 与 ROADMAP,反映最新功能与开发状态。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 04:11:38 +08:00

3 lines
90 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomePage-12KM5s42.js","assets/react-vendor-CFzzFOsg.js","assets/virtual-vendor-DQlhmwRh.js","assets/badge-DB-zL5ml.js","assets/PinnedIcon-CTFlF79l.js","assets/ui-vendor-BtpOfToU.js","assets/content-BrFHUpp8.js","assets/feedCache-D2GnU_BI.js","assets/PostDetailPage-I3oWcKSD.js","assets/postContent-ClrHK1rL.js","assets/purify-vendor-Cx4rtWv4.js","assets/LoginPage-W-sW3B0Q.js","assets/form-OSLy-cSS.js","assets/input-CE0PJTgJ.js","assets/RegisterPage-s7NSU6sj.js","assets/ComposePage-DPJpUz3A.js","assets/BoardsManagePage-DQXzBsE1.js","assets/textarea-VyK9_GFn.js","assets/alert-dialog-BoQ7HSUR.js","assets/ProfilePage-ByQ-ocFr.js","assets/FavoritesPage-DTZ3aZlm.js","assets/AdminDashboardPage-DvIYRHwe.js","assets/AdminPostsPage-D7MOxCPU.js","assets/AdminCommentsPage-Z5_wmIqo.js","assets/AdminUsersPage-Ny3GZNbL.js","assets/AdminSettingsPage-BvAGktom.js"])))=>i.map(i=>d[i]);
var Rs=Object.defineProperty;var zs=(e,s,t)=>s in e?Rs(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t;var pt=(e,s,t)=>zs(e,typeof s!="symbol"?s+"":s,t);import{r as b,j as r,e as Ye,g as Ct,i as Pt,k as u,m as As,O as Rt,N as Is,B as Os,n as Ls,p as G,q as ft,t as Ds}from"./react-vendor-CFzzFOsg.js";import{S as zt,C as Ms,a as At,P as Bs,b as It,I as Ot,c as Lt,d as Dt,e as $s,R as Mt,f as Fs,L as Bt,g as $t,h as Vs,T as Us,i as Gs,M as Ws,F as Hs,H as Ys,j as qs,k as Ft,l as Ks,m as Js,n as Xs,o as Qs,p as Vt,A as Zs,q as eo,r as to,s as so,U as oo,t as ro,u as ao}from"./ui-vendor-BtpOfToU.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))o(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const n of l.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&o(n)}).observe(document,{childList:!0,subtree:!0});function t(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function o(i){if(i.ep)return;i.ep=!0;const l=t(i);fetch(i.href,l)}})();const Ut="j13-theme";function Gt(){return localStorage.getItem(Ut)==="dark"?"dark":"light"}function Wt(e){const s=document.documentElement;s.classList.toggle("dark",e==="dark"),s.style.colorScheme=e,localStorage.setItem(Ut,e)}const no="modulepreload",io=function(e){return"/"+e},ht={},re=function(s,t,o){let i=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const n=document.querySelector("meta[property=csp-nonce]"),d=(n==null?void 0:n.nonce)||(n==null?void 0:n.getAttribute("nonce"));i=Promise.allSettled(t.map(m=>{if(m=io(m),m in ht)return;ht[m]=!0;const c=m.endsWith(".css"),x=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${x}`))return;const a=document.createElement("link");if(a.rel=c?"stylesheet":no,c||(a.as="script"),a.crossOrigin="",a.href=m,d&&a.setAttribute("nonce",d),document.head.appendChild(a),c)return new Promise((E,T)=>{a.addEventListener("load",E),a.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${m}`)))})}))}function l(n){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=n,window.dispatchEvent(d),!d.defaultPrevented)throw n}return i.then(n=>{for(const d of n||[])d.status==="rejected"&&l(d.reason);return s().catch(l)})},lo="";async function y(e,s={}){const t=await fetch(lo+e,{credentials:"same-origin",...s,headers:{...s.body instanceof FormData?{}:{"Content-Type":"application/json"},...s.headers}});let o;try{o=await t.json()}catch{throw new Error("服务器响应异常")}if(!t.ok)throw new Error(o.error||"请求失败");return o}const he={me:()=>y("/api/me"),stats:()=>y("/api/stats"),forumLimits:()=>y("/api/forum-limits"),boards:()=>y("/api/boards"),posts:e=>{const s=new URLSearchParams(e).toString();return y(`/api/posts?${s}`)},hotPosts:()=>y("/api/posts/hot"),post:(e,s)=>{const t=s!=null&&s.skipView?"?skip_view=1":"";return y(`/api/posts/${e}${t}`)},comments:(e,s)=>{const t=s!=null&&s.length?`?my_ids=${s.join(",")}`:"";return y(`/api/posts/${e}/comments${t}`)},notifications:()=>y("/api/notifications"),online:()=>y("/api/online"),presence:()=>y("/api/presence",{method:"POST"}),favorites:()=>y("/api/favorites"),createBoard:e=>y("/api/admin/boards",{method:"POST",body:JSON.stringify(e)}),updateBoard:(e,s)=>y(`/api/admin/boards/${e}`,{method:"PUT",body:JSON.stringify(s)}),deleteBoard:e=>y(`/api/admin/boards/${e}`,{method:"DELETE"}),adminDashboard:()=>y("/api/admin/dashboard"),adminSettings:()=>y("/api/admin/settings"),adminPosts:e=>{const s=new URLSearchParams;e.page&&s.set("page",String(e.page)),e.keyword&&s.set("keyword",e.keyword);const t=s.toString();return y(`/api/admin/posts${t?`?${t}`:""}`)},adminPinPost:(e,s)=>y(`/api/admin/posts/${e}/pin`,{method:"POST",body:JSON.stringify({pinned:s})}),adminLockPost:(e,s)=>y(`/api/admin/posts/${e}/lock`,{method:"POST",body:JSON.stringify({locked:s})}),adminUpdateForumSettings:e=>y("/api/admin/settings/forum",{method:"PUT",body:JSON.stringify(e)}),adminUpdateFilterWords:e=>y("/api/admin/settings/filter-words",{method:"PUT",body:JSON.stringify({content:e})}),postRevisions:e=>y(`/api/posts/${e}/revisions`),postRevision:(e,s)=>y(`/api/posts/${e}/revisions/${s}`),adminDeletePost:e=>y(`/api/admin/posts/${e}`,{method:"DELETE"}),adminComments:(e=1)=>y(`/api/admin/comments?page=${e}`),adminDeleteComment:e=>y(`/api/admin/comments/${e}`,{method:"DELETE"}),adminUsers:(e=1)=>y(`/api/admin/users?page=${e}`),adminBanUser:(e,s)=>y(`/api/admin/users/${e}/ban`,{method:"POST",body:JSON.stringify({banned:s})}),adminBackup:()=>y("/api/admin/backup",{method:"POST"}),updateNickname:e=>{const s=new FormData;return s.append("nickname",e),y("/api/profile/nickname",{method:"POST",body:s,headers:{}})},updatePassword:(e,s)=>{const t=new FormData;return t.append("old_password",e),t.append("new_password",s),y("/api/profile/password",{method:"POST",body:t,headers:{}})},uploadAvatar:e=>{const s=new FormData;return s.append("avatar",e),y("/api/profile/avatar",{method:"POST",body:s,headers:{}})},uploadPostImage:e=>{const s=new FormData;return s.append("image",e),y("/api/uploads/image",{method:"POST",body:s,headers:{}})},createPost:e=>{const s=new FormData;return s.append("board_id",e.board_id),s.append("title",e.title),s.append("content",e.content),s.append("tags",e.tags||""),y("/api/posts",{method:"POST",body:s,headers:{}})},updatePost:(e,s)=>{const t=new FormData;return t.append("title",s.title),t.append("content",s.content),t.append("tags",s.tags||""),y(`/api/posts/${e}`,{method:"PUT",body:t,headers:{}})},login:(e,s)=>{const t=new FormData;return t.append("username",e),t.append("password",s),y("/api/login",{method:"POST",body:t,headers:{}})},register:(e,s,t)=>{const o=new FormData;return o.append("username",e),o.append("password",s),o.append("nickname",t),y("/api/register",{method:"POST",body:o,headers:{}})},logout:()=>y("/api/logout",{method:"POST"}),like:e=>y(`/api/posts/${e}/like`,{method:"POST"}),favorite:e=>y(`/api/posts/${e}/favorite`,{method:"POST"}),addComment:(e,s)=>{const t=new FormData;return t.append("content",s.content),s.replyTo&&t.append("reply_to",String(s.replyTo)),s.guestNick&&t.append("guest_nick",s.guestNick),s.guestEmail&&t.append("guest_email",s.guestEmail),s.guestUrl&&t.append("guest_url",s.guestUrl),s.isPrivate&&t.append("is_private","1"),y(`/api/posts/${e}/comments`,{method:"POST",body:t,headers:{}})},ping:()=>y("/api/ping",{method:"POST"})},Ht=b.createContext({user:null,loading:!0,refresh:async()=>{},logout:async()=>{}});function co({children:e}){const[s,t]=b.useState(null),[o,i]=b.useState(!0),l=b.useCallback(async()=>{try{const d=await he.me();t(d.user??null)}catch{t(null)}finally{i(!1)}},[]);b.useEffect(()=>{l()},[l]);const n=async()=>{await he.logout(),t(null)};return r.jsx(Ht.Provider,{value:{user:s,loading:o,refresh:l,logout:n},children:e})}const qe=()=>b.useContext(Ht),Yt=b.createContext({theme:"light",toggle:()=>{}});function uo({children:e}){const[s,t]=b.useState(Gt);b.useLayoutEffect(()=>{Wt(s)},[s]);const o=()=>t(i=>i==="light"?"dark":"light");return r.jsx(Yt.Provider,{value:{theme:s,toggle:o},children:e})}const qt=()=>b.useContext(Yt);function mo(e){const[s,t]=b.useState(()=>window.matchMedia(e).matches);return b.useLayoutEffect(()=>{const o=window.matchMedia(e),i=()=>t(o.matches);return o.addEventListener("change",i),()=>o.removeEventListener("change",i)},[e]),s}function ye(){return r.jsxs("div",{className:"page-loader",role:"status","aria-live":"polite",children:[r.jsx("span",{className:"page-loader__dot"}),"加载中…"]})}function Kt(e){var s,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(s=0;s<i;s++)e[s]&&(t=Kt(e[s]))&&(o&&(o+=" "),o+=t)}else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function Jt(){for(var e,s,t=0,o="",i=arguments.length;t<i;t++)(e=arguments[t])&&(s=Kt(e))&&(o&&(o+=" "),o+=s);return o}const po=(e,s)=>{const t=new Array(e.length+s.length);for(let o=0;o<e.length;o++)t[o]=e[o];for(let o=0;o<s.length;o++)t[e.length+o]=s[o];return t},fo=(e,s)=>({classGroupId:e,validator:s}),Xt=(e=new Map,s=null,t)=>({nextPart:e,validators:s,classGroupId:t}),Ge="-",gt=[],ho="arbitrary..",go=e=>{const s=xo(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:n=>{if(n.startsWith("[")&&n.endsWith("]"))return bo(n);const d=n.split(Ge),m=d[0]===""&&d.length>1?1:0;return Qt(d,m,s)},getConflictingClassGroupIds:(n,d)=>{if(d){const m=o[n],c=t[n];return m?c?po(c,m):m:c||gt}return t[n]||gt}}},Qt=(e,s,t)=>{if(e.length-s===0)return t.classGroupId;const i=e[s],l=t.nextPart.get(i);if(l){const c=Qt(e,s+1,l);if(c)return c}const n=t.validators;if(n===null)return;const d=s===0?e.join(Ge):e.slice(s).join(Ge),m=n.length;for(let c=0;c<m;c++){const x=n[c];if(x.validator(d))return x.classGroupId}},bo=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const s=e.slice(1,-1),t=s.indexOf(":"),o=s.slice(0,t);return o?ho+o:void 0})(),xo=e=>{const{theme:s,classGroups:t}=e;return yo(t,s)},yo=(e,s)=>{const t=Xt();for(const o in e){const i=e[o];st(i,t,o,s)}return t},st=(e,s,t,o)=>{const i=e.length;for(let l=0;l<i;l++){const n=e[l];vo(n,s,t,o)}},vo=(e,s,t,o)=>{if(typeof e=="string"){wo(e,s,t);return}if(typeof e=="function"){ko(e,s,t,o);return}jo(e,s,t,o)},wo=(e,s,t)=>{const o=e===""?s:Zt(s,e);o.classGroupId=t},ko=(e,s,t,o)=>{if(So(e)){st(e(o),s,t,o);return}s.validators===null&&(s.validators=[]),s.validators.push(fo(t,e))},jo=(e,s,t,o)=>{const i=Object.entries(e),l=i.length;for(let n=0;n<l;n++){const[d,m]=i[n];st(m,Zt(s,d),t,o)}},Zt=(e,s)=>{let t=e;const o=s.split(Ge),i=o.length;for(let l=0;l<i;l++){const n=o[l];let d=t.nextPart.get(n);d||(d=Xt(),t.nextPart.set(n,d)),t=d}return t},So=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,No=e=>{if(e<1)return{get:()=>{},set:()=>{}};let s=0,t=Object.create(null),o=Object.create(null);const i=(l,n)=>{t[l]=n,s++,s>e&&(s=0,o=t,t=Object.create(null))};return{get(l){let n=t[l];if(n!==void 0)return n;if((n=o[l])!==void 0)return i(l,n),n},set(l,n){l in t?t[l]=n:i(l,n)}}},Ze="!",bt=":",Eo=[],xt=(e,s,t,o,i)=>({modifiers:e,hasImportantModifier:s,baseClassName:t,maybePostfixModifierPosition:o,isExternal:i}),_o=e=>{const{prefix:s,experimentalParseClassName:t}=e;let o=i=>{const l=[];let n=0,d=0,m=0,c;const x=i.length;for(let L=0;L<x;L++){const O=i[L];if(n===0&&d===0){if(O===bt){l.push(i.slice(m,L)),m=L+1;continue}if(O==="/"){c=L;continue}}O==="["?n++:O==="]"?n--:O==="("?d++:O===")"&&d--}const a=l.length===0?i:i.slice(m);let E=a,T=!1;a.endsWith(Ze)?(E=a.slice(0,-1),T=!0):a.startsWith(Ze)&&(E=a.slice(1),T=!0);const R=c&&c>m?c-m:void 0;return xt(l,T,E,R)};if(s){const i=s+bt,l=o;o=n=>n.startsWith(i)?l(n.slice(i.length)):xt(Eo,!1,n,void 0,!0)}if(t){const i=o;o=l=>t({className:l,parseClassName:i})}return o},To=e=>{const s=new Map;return e.orderSensitiveModifiers.forEach((t,o)=>{s.set(t,1e6+o)}),t=>{const o=[];let i=[];for(let l=0;l<t.length;l++){const n=t[l],d=n[0]==="[",m=s.has(n);d||m?(i.length>0&&(i.sort(),o.push(...i),i=[]),o.push(n)):i.push(n)}return i.length>0&&(i.sort(),o.push(...i)),o}},Co=e=>({cache:No(e.cacheSize),parseClassName:_o(e),sortModifiers:To(e),postfixLookupClassGroupIds:Po(e),...go(e)}),Po=e=>{const s=Object.create(null),t=e.postfixLookupClassGroups;if(t)for(let o=0;o<t.length;o++)s[t[o]]=!0;return s},Ro=/\s+/,zo=(e,s)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:i,sortModifiers:l,postfixLookupClassGroupIds:n}=s,d=[],m=e.trim().split(Ro);let c="";for(let x=m.length-1;x>=0;x-=1){const a=m[x],{isExternal:E,modifiers:T,hasImportantModifier:R,baseClassName:L,maybePostfixModifierPosition:O}=t(a);if(E){c=a+(c.length>0?" "+c:c);continue}let N=!!O,B;if(N){const D=L.substring(0,O);B=o(D);const p=B&&n[B]?o(L):void 0;p&&p!==B&&(B=p,N=!1)}else B=o(L);if(!B){if(!N){c=a+(c.length>0?" "+c:c);continue}if(B=o(L),!B){c=a+(c.length>0?" "+c:c);continue}N=!1}const X=T.length===0?"":T.length===1?T[0]:l(T).join(":"),te=R?X+Ze:X,ae=te+B;if(d.indexOf(ae)>-1)continue;d.push(ae);const $=i(B,N);for(let D=0;D<$.length;++D){const p=$[D];d.push(te+p)}c=a+(c.length>0?" "+c:c)}return c},Ao=(...e)=>{let s=0,t,o,i="";for(;s<e.length;)(t=e[s++])&&(o=es(t))&&(i&&(i+=" "),i+=o);return i},es=e=>{if(typeof e=="string")return e;let s,t="";for(let o=0;o<e.length;o++)e[o]&&(s=es(e[o]))&&(t&&(t+=" "),t+=s);return t},Io=(e,...s)=>{let t,o,i,l;const n=m=>{const c=s.reduce((x,a)=>a(x),e());return t=Co(c),o=t.cache.get,i=t.cache.set,l=d,d(m)},d=m=>{const c=o(m);if(c)return c;const x=zo(m,t);return i(m,x),x};return l=n,(...m)=>l(Ao(...m))},Oo=[],V=e=>{const s=t=>t[e]||Oo;return s.isThemeGetter=!0,s},ts=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ss=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Lo=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Do=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Mo=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Bo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,$o=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Fo=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ke=e=>Lo.test(e),j=e=>!!e&&!Number.isNaN(Number(e)),pe=e=>!!e&&Number.isInteger(Number(e)),Xe=e=>e.endsWith("%")&&j(e.slice(0,-1)),xe=e=>Do.test(e),os=()=>!0,Vo=e=>Mo.test(e)&&!Bo.test(e),ot=()=>!1,Uo=e=>$o.test(e),Go=e=>Fo.test(e),Wo=e=>!f(e)&&!g(e),Ho=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Yo=e=>je(e,ns,ot),f=e=>ts.test(e),_e=e=>je(e,is,Vo),yt=e=>je(e,tr,j),qo=e=>je(e,cs,os),Ko=e=>je(e,ls,ot),vt=e=>je(e,rs,ot),Jo=e=>je(e,as,Go),Fe=e=>je(e,ds,Uo),g=e=>ss.test(e),Oe=e=>Te(e,is),Xo=e=>Te(e,ls),wt=e=>Te(e,rs),Qo=e=>Te(e,ns),Zo=e=>Te(e,as),Ve=e=>Te(e,ds,!0),er=e=>Te(e,cs,!0),je=(e,s,t)=>{const o=ts.exec(e);return o?o[1]?s(o[1]):t(o[2]):!1},Te=(e,s,t=!1)=>{const o=ss.exec(e);return o?o[1]?s(o[1]):t:!1},rs=e=>e==="position"||e==="percentage",as=e=>e==="image"||e==="url",ns=e=>e==="length"||e==="size"||e==="bg-size",is=e=>e==="length",tr=e=>e==="number",ls=e=>e==="family-name",cs=e=>e==="number"||e==="weight",ds=e=>e==="shadow",sr=()=>{const e=V("color"),s=V("font"),t=V("text"),o=V("font-weight"),i=V("tracking"),l=V("leading"),n=V("breakpoint"),d=V("container"),m=V("spacing"),c=V("radius"),x=V("shadow"),a=V("inset-shadow"),E=V("text-shadow"),T=V("drop-shadow"),R=V("blur"),L=V("perspective"),O=V("aspect"),N=V("ease"),B=V("animate"),X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],te=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],ae=()=>[...te(),g,f],$=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],p=()=>[g,f,m],M=()=>[ke,"full","auto",...p()],ue=()=>[pe,"none","subgrid",g,f],K=()=>["auto",{span:["full",pe,g,f]},pe,g,f],J=()=>[pe,"auto",g,f],W=()=>["auto","min","max","fr",g,f],me=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Q=()=>["start","end","center","stretch","center-safe","end-safe"],w=()=>["auto",...p()],C=()=>[ke,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...p()],v=()=>[ke,"screen","full","dvw","lvw","svw","min","max","fit",...p()],F=()=>[ke,"screen","full","lh","dvh","lvh","svh","min","max","fit",...p()],h=()=>[e,g,f],Y=()=>[...te(),wt,vt,{position:[g,f]}],Se=()=>["no-repeat",{repeat:["","x","y","space","round"]}],_=()=>["auto","cover","contain",Qo,Yo,{size:[g,f]}],A=()=>[Xe,Oe,_e],S=()=>["","none","full",c,g,f],P=()=>["",j,Oe,_e],ie=()=>["solid","dashed","dotted","double"],z=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],I=()=>[j,Xe,wt,vt],Ne=()=>["","none",R,g,f],ge=()=>["none",j,g,f],le=()=>["none",j,g,f],Ae=()=>[j,g,f],ve=()=>[ke,"full",...p()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[xe],breakpoint:[xe],color:[os],container:[xe],"drop-shadow":[xe],ease:["in","out","in-out"],font:[Wo],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[xe],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[xe],shadow:[xe],spacing:["px",j],text:[xe],"text-shadow":[xe],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ke,f,g,O]}],container:["container"],"container-type":[{"@container":["","normal","size",g,f]}],"container-named":[Ho],columns:[{columns:[j,f,g,d]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:ae()}],overflow:[{overflow:$()}],"overflow-x":[{"overflow-x":$()}],"overflow-y":[{"overflow-y":$()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:M()}],"inset-x":[{"inset-x":M()}],"inset-y":[{"inset-y":M()}],start:[{"inset-s":M(),start:M()}],end:[{"inset-e":M(),end:M()}],"inset-bs":[{"inset-bs":M()}],"inset-be":[{"inset-be":M()}],top:[{top:M()}],right:[{right:M()}],bottom:[{bottom:M()}],left:[{left:M()}],visibility:["visible","invisible","collapse"],z:[{z:[pe,"auto",g,f]}],basis:[{basis:[ke,"full","auto",d,...p()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[j,ke,"auto","initial","none",f]}],grow:[{grow:["",j,g,f]}],shrink:[{shrink:["",j,g,f]}],order:[{order:[pe,"first","last","none",g,f]}],"grid-cols":[{"grid-cols":ue()}],"col-start-end":[{col:K()}],"col-start":[{"col-start":J()}],"col-end":[{"col-end":J()}],"grid-rows":[{"grid-rows":ue()}],"row-start-end":[{row:K()}],"row-start":[{"row-start":J()}],"row-end":[{"row-end":J()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":W()}],"auto-rows":[{"auto-rows":W()}],gap:[{gap:p()}],"gap-x":[{"gap-x":p()}],"gap-y":[{"gap-y":p()}],"justify-content":[{justify:[...me(),"normal"]}],"justify-items":[{"justify-items":[...Q(),"normal"]}],"justify-self":[{"justify-self":["auto",...Q()]}],"align-content":[{content:["normal",...me()]}],"align-items":[{items:[...Q(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Q(),{baseline:["","last"]}]}],"place-content":[{"place-content":me()}],"place-items":[{"place-items":[...Q(),"baseline"]}],"place-self":[{"place-self":["auto",...Q()]}],p:[{p:p()}],px:[{px:p()}],py:[{py:p()}],ps:[{ps:p()}],pe:[{pe:p()}],pbs:[{pbs:p()}],pbe:[{pbe:p()}],pt:[{pt:p()}],pr:[{pr:p()}],pb:[{pb:p()}],pl:[{pl:p()}],m:[{m:w()}],mx:[{mx:w()}],my:[{my:w()}],ms:[{ms:w()}],me:[{me:w()}],mbs:[{mbs:w()}],mbe:[{mbe:w()}],mt:[{mt:w()}],mr:[{mr:w()}],mb:[{mb:w()}],ml:[{ml:w()}],"space-x":[{"space-x":p()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":p()}],"space-y-reverse":["space-y-reverse"],size:[{size:C()}],"inline-size":[{inline:["auto",...v()]}],"min-inline-size":[{"min-inline":["auto",...v()]}],"max-inline-size":[{"max-inline":["none",...v()]}],"block-size":[{block:["auto",...F()]}],"min-block-size":[{"min-block":["auto",...F()]}],"max-block-size":[{"max-block":["none",...F()]}],w:[{w:[d,"screen",...C()]}],"min-w":[{"min-w":[d,"screen","none",...C()]}],"max-w":[{"max-w":[d,"screen","none","prose",{screen:[n]},...C()]}],h:[{h:["screen","lh",...C()]}],"min-h":[{"min-h":["screen","lh","none",...C()]}],"max-h":[{"max-h":["screen","lh",...C()]}],"font-size":[{text:["base",t,Oe,_e]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,er,qo]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Xe,f]}],"font-family":[{font:[Xo,Ko,s]}],"font-features":[{"font-features":[f]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[i,g,f]}],"line-clamp":[{"line-clamp":[j,"none",g,yt]}],leading:[{leading:[l,...p()]}],"list-image":[{"list-image":["none",g,f]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",g,f]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:h()}],"text-color":[{text:h()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ie(),"wavy"]}],"text-decoration-thickness":[{decoration:[j,"from-font","auto",g,_e]}],"text-decoration-color":[{decoration:h()}],"underline-offset":[{"underline-offset":[j,"auto",g,f]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:p()}],"tab-size":[{tab:[pe,g,f]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",g,f]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",g,f]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Y()}],"bg-repeat":[{bg:Se()}],"bg-size":[{bg:_()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},pe,g,f],radial:["",g,f],conic:[pe,g,f]},Zo,Jo]}],"bg-color":[{bg:h()}],"gradient-from-pos":[{from:A()}],"gradient-via-pos":[{via:A()}],"gradient-to-pos":[{to:A()}],"gradient-from":[{from:h()}],"gradient-via":[{via:h()}],"gradient-to":[{to:h()}],rounded:[{rounded:S()}],"rounded-s":[{"rounded-s":S()}],"rounded-e":[{"rounded-e":S()}],"rounded-t":[{"rounded-t":S()}],"rounded-r":[{"rounded-r":S()}],"rounded-b":[{"rounded-b":S()}],"rounded-l":[{"rounded-l":S()}],"rounded-ss":[{"rounded-ss":S()}],"rounded-se":[{"rounded-se":S()}],"rounded-ee":[{"rounded-ee":S()}],"rounded-es":[{"rounded-es":S()}],"rounded-tl":[{"rounded-tl":S()}],"rounded-tr":[{"rounded-tr":S()}],"rounded-br":[{"rounded-br":S()}],"rounded-bl":[{"rounded-bl":S()}],"border-w":[{border:P()}],"border-w-x":[{"border-x":P()}],"border-w-y":[{"border-y":P()}],"border-w-s":[{"border-s":P()}],"border-w-e":[{"border-e":P()}],"border-w-bs":[{"border-bs":P()}],"border-w-be":[{"border-be":P()}],"border-w-t":[{"border-t":P()}],"border-w-r":[{"border-r":P()}],"border-w-b":[{"border-b":P()}],"border-w-l":[{"border-l":P()}],"divide-x":[{"divide-x":P()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":P()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ie(),"hidden","none"]}],"divide-style":[{divide:[...ie(),"hidden","none"]}],"border-color":[{border:h()}],"border-color-x":[{"border-x":h()}],"border-color-y":[{"border-y":h()}],"border-color-s":[{"border-s":h()}],"border-color-e":[{"border-e":h()}],"border-color-bs":[{"border-bs":h()}],"border-color-be":[{"border-be":h()}],"border-color-t":[{"border-t":h()}],"border-color-r":[{"border-r":h()}],"border-color-b":[{"border-b":h()}],"border-color-l":[{"border-l":h()}],"divide-color":[{divide:h()}],"outline-style":[{outline:[...ie(),"none","hidden"]}],"outline-offset":[{"outline-offset":[j,g,f]}],"outline-w":[{outline:["",j,Oe,_e]}],"outline-color":[{outline:h()}],shadow:[{shadow:["","none",x,Ve,Fe]}],"shadow-color":[{shadow:h()}],"inset-shadow":[{"inset-shadow":["none",a,Ve,Fe]}],"inset-shadow-color":[{"inset-shadow":h()}],"ring-w":[{ring:P()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:h()}],"ring-offset-w":[{"ring-offset":[j,_e]}],"ring-offset-color":[{"ring-offset":h()}],"inset-ring-w":[{"inset-ring":P()}],"inset-ring-color":[{"inset-ring":h()}],"text-shadow":[{"text-shadow":["none",E,Ve,Fe]}],"text-shadow-color":[{"text-shadow":h()}],opacity:[{opacity:[j,g,f]}],"mix-blend":[{"mix-blend":[...z(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":z()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[j]}],"mask-image-linear-from-pos":[{"mask-linear-from":I()}],"mask-image-linear-to-pos":[{"mask-linear-to":I()}],"mask-image-linear-from-color":[{"mask-linear-from":h()}],"mask-image-linear-to-color":[{"mask-linear-to":h()}],"mask-image-t-from-pos":[{"mask-t-from":I()}],"mask-image-t-to-pos":[{"mask-t-to":I()}],"mask-image-t-from-color":[{"mask-t-from":h()}],"mask-image-t-to-color":[{"mask-t-to":h()}],"mask-image-r-from-pos":[{"mask-r-from":I()}],"mask-image-r-to-pos":[{"mask-r-to":I()}],"mask-image-r-from-color":[{"mask-r-from":h()}],"mask-image-r-to-color":[{"mask-r-to":h()}],"mask-image-b-from-pos":[{"mask-b-from":I()}],"mask-image-b-to-pos":[{"mask-b-to":I()}],"mask-image-b-from-color":[{"mask-b-from":h()}],"mask-image-b-to-color":[{"mask-b-to":h()}],"mask-image-l-from-pos":[{"mask-l-from":I()}],"mask-image-l-to-pos":[{"mask-l-to":I()}],"mask-image-l-from-color":[{"mask-l-from":h()}],"mask-image-l-to-color":[{"mask-l-to":h()}],"mask-image-x-from-pos":[{"mask-x-from":I()}],"mask-image-x-to-pos":[{"mask-x-to":I()}],"mask-image-x-from-color":[{"mask-x-from":h()}],"mask-image-x-to-color":[{"mask-x-to":h()}],"mask-image-y-from-pos":[{"mask-y-from":I()}],"mask-image-y-to-pos":[{"mask-y-to":I()}],"mask-image-y-from-color":[{"mask-y-from":h()}],"mask-image-y-to-color":[{"mask-y-to":h()}],"mask-image-radial":[{"mask-radial":[g,f]}],"mask-image-radial-from-pos":[{"mask-radial-from":I()}],"mask-image-radial-to-pos":[{"mask-radial-to":I()}],"mask-image-radial-from-color":[{"mask-radial-from":h()}],"mask-image-radial-to-color":[{"mask-radial-to":h()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":te()}],"mask-image-conic-pos":[{"mask-conic":[j]}],"mask-image-conic-from-pos":[{"mask-conic-from":I()}],"mask-image-conic-to-pos":[{"mask-conic-to":I()}],"mask-image-conic-from-color":[{"mask-conic-from":h()}],"mask-image-conic-to-color":[{"mask-conic-to":h()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Y()}],"mask-repeat":[{mask:Se()}],"mask-size":[{mask:_()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",g,f]}],filter:[{filter:["","none",g,f]}],blur:[{blur:Ne()}],brightness:[{brightness:[j,g,f]}],contrast:[{contrast:[j,g,f]}],"drop-shadow":[{"drop-shadow":["","none",T,Ve,Fe]}],"drop-shadow-color":[{"drop-shadow":h()}],grayscale:[{grayscale:["",j,g,f]}],"hue-rotate":[{"hue-rotate":[j,g,f]}],invert:[{invert:["",j,g,f]}],saturate:[{saturate:[j,g,f]}],sepia:[{sepia:["",j,g,f]}],"backdrop-filter":[{"backdrop-filter":["","none",g,f]}],"backdrop-blur":[{"backdrop-blur":Ne()}],"backdrop-brightness":[{"backdrop-brightness":[j,g,f]}],"backdrop-contrast":[{"backdrop-contrast":[j,g,f]}],"backdrop-grayscale":[{"backdrop-grayscale":["",j,g,f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[j,g,f]}],"backdrop-invert":[{"backdrop-invert":["",j,g,f]}],"backdrop-opacity":[{"backdrop-opacity":[j,g,f]}],"backdrop-saturate":[{"backdrop-saturate":[j,g,f]}],"backdrop-sepia":[{"backdrop-sepia":["",j,g,f]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":p()}],"border-spacing-x":[{"border-spacing-x":p()}],"border-spacing-y":[{"border-spacing-y":p()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",g,f]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[j,"initial",g,f]}],ease:[{ease:["linear","initial",N,g,f]}],delay:[{delay:[j,g,f]}],animate:[{animate:["none",B,g,f]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[L,g,f]}],"perspective-origin":[{"perspective-origin":ae()}],rotate:[{rotate:ge()}],"rotate-x":[{"rotate-x":ge()}],"rotate-y":[{"rotate-y":ge()}],"rotate-z":[{"rotate-z":ge()}],scale:[{scale:le()}],"scale-x":[{"scale-x":le()}],"scale-y":[{"scale-y":le()}],"scale-z":[{"scale-z":le()}],"scale-3d":["scale-3d"],skew:[{skew:Ae()}],"skew-x":[{"skew-x":Ae()}],"skew-y":[{"skew-y":Ae()}],transform:[{transform:[g,f,"","none","gpu","cpu"]}],"transform-origin":[{origin:ae()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ve()}],"translate-x":[{"translate-x":ve()}],"translate-y":[{"translate-y":ve()}],"translate-z":[{"translate-z":ve()}],"translate-none":["translate-none"],zoom:[{zoom:[pe,g,f]}],accent:[{accent:h()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:h()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",g,f]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":h()}],"scrollbar-track-color":[{"scrollbar-track":h()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":p()}],"scroll-mx":[{"scroll-mx":p()}],"scroll-my":[{"scroll-my":p()}],"scroll-ms":[{"scroll-ms":p()}],"scroll-me":[{"scroll-me":p()}],"scroll-mbs":[{"scroll-mbs":p()}],"scroll-mbe":[{"scroll-mbe":p()}],"scroll-mt":[{"scroll-mt":p()}],"scroll-mr":[{"scroll-mr":p()}],"scroll-mb":[{"scroll-mb":p()}],"scroll-ml":[{"scroll-ml":p()}],"scroll-p":[{"scroll-p":p()}],"scroll-px":[{"scroll-px":p()}],"scroll-py":[{"scroll-py":p()}],"scroll-ps":[{"scroll-ps":p()}],"scroll-pe":[{"scroll-pe":p()}],"scroll-pbs":[{"scroll-pbs":p()}],"scroll-pbe":[{"scroll-pbe":p()}],"scroll-pt":[{"scroll-pt":p()}],"scroll-pr":[{"scroll-pr":p()}],"scroll-pb":[{"scroll-pb":p()}],"scroll-pl":[{"scroll-pl":p()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",g,f]}],fill:[{fill:["none",...h()]}],"stroke-w":[{stroke:[j,Oe,_e,yt]}],stroke:[{stroke:["none",...h()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},or=Io(sr);function ee(...e){return or(Jt(e))}const rr=Vs,ar=Us,nr=b.forwardRef(({className:e,inset:s,children:t,...o},i)=>r.jsxs(zt,{ref:i,className:ee("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",s&&"pl-8",e),...o,children:[t,r.jsx(Ms,{className:"ml-auto"})]}));nr.displayName=zt.displayName;const ir=b.forwardRef(({className:e,...s},t)=>r.jsx(At,{ref:t,className:ee("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...s}));ir.displayName=At.displayName;const us=b.forwardRef(({className:e,sideOffset:s=4,...t},o)=>r.jsx(Bs,{children:r.jsx(It,{ref:o,sideOffset:s,className:ee("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));us.displayName=It.displayName;const De=b.forwardRef(({className:e,inset:s,...t},o)=>r.jsx(Ot,{ref:o,className:ee("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",s&&"pl-8",e),...t}));De.displayName=Ot.displayName;const lr=b.forwardRef(({className:e,children:s,checked:t,...o},i)=>r.jsxs(Lt,{ref:i,className:ee("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:t,...o,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(Dt,{children:r.jsx($s,{className:"h-4 w-4"})})}),s]}));lr.displayName=Lt.displayName;const cr=b.forwardRef(({className:e,children:s,...t},o)=>r.jsxs(Mt,{ref:o,className:ee("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...t,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(Dt,{children:r.jsx(Fs,{className:"h-2 w-2 fill-current"})})}),s]}));cr.displayName=Mt.displayName;const dr=b.forwardRef(({className:e,inset:s,...t},o)=>r.jsx(Bt,{ref:o,className:ee("px-2 py-1.5 text-sm font-semibold",s&&"pl-8",e),...t}));dr.displayName=Bt.displayName;const et=b.forwardRef(({className:e,...s},t)=>r.jsx($t,{ref:t,className:ee("-mx-1 my-1 h-px bg-muted",e),...s}));et.displayName=$t.displayName;const ms="j13-cache-boards",ps="j13-cache-stats";function fs(e){try{const s=sessionStorage.getItem(e);return s?JSON.parse(s):null}catch{return null}}function hs(e,s){try{sessionStorage.setItem(e,JSON.stringify(s))}catch{}}function kt(){return fs(ms)??[]}function jt(){return fs(ps)}function ur(e){hs(ms,e)}function mr(e){hs(ps,e)}const pr=[{key:"latest",label:"最新发帖",hint:"按发布时间",icon:Gs},{key:"reply",label:"最新回复",hint:"最近有人回复",icon:Ws},{key:"hot",label:"热门讨论",hint:"按互动热度",icon:Hs}];function gs(e){return e==="reply"||e==="hot"?e:"latest"}function We(e,s="latest"){const t=new URLSearchParams;e&&t.set("board",String(e)),s!=="latest"&&t.set("sort",s);const o=t.toString();return o?`/?${o}`:"/"}function ya({value:e,onChange:s,postTotal:t}){return r.jsxs("div",{className:"feed-toolbar",children:[r.jsx("div",{className:"feed-sort-bar",role:"tablist","aria-label":"帖子排序",children:pr.map(({key:o,label:i,hint:l,icon:n})=>r.jsxs("button",{type:"button",role:"tab","aria-selected":e===o,title:`${i} · ${l}`,className:ee("feed-sort-tab",e===o&&"active"),onClick:()=>s(o),children:[r.jsx(n,{"aria-hidden":!0}),r.jsx("span",{className:"feed-sort-tab__label",children:i})]},o))}),t!=null&&r.jsxs("span",{className:"feed-toolbar__count",children:["共 ",t," 条"]})]})}const fr=["/post/","/profile"];function bs(e){return fr.some(s=>e.startsWith(s))}function hr(e,s){return bs(e)?null:e.startsWith("/favorites")?"favorites":e.startsWith("/admin")?"admin":s===0?"all":String(s)}function gr({boards:e,activeBoard:s,onSelectBoard:t}){const o=Ye(),i=Ct(),[l]=Pt(),n=gs(l.get("sort")),{user:d}=qe(),m=(d==null?void 0:d.role)==="admin",c=hr(i.pathname,s),x=(a,E,T,R)=>r.jsxs("button",{type:"button",className:ee("sidebar-nav-item",c!=null&&c===a&&"active"),onClick:R,children:[T,r.jsx("span",{className:"flex-1 truncate",children:E})]},a);return r.jsxs("aside",{className:"sidebar",children:[r.jsx("div",{className:"sidebar-section",children:"浏览"}),r.jsxs("nav",{className:"sidebar-nav",children:[x("all","全部帖子",r.jsx(Ys,{}),()=>{t(0),o(We(0,n))}),d&&x("favorites","我的收藏",r.jsx(qs,{}),()=>o("/favorites"))]}),e.length>0&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"sidebar-section",style:{marginTop:8},children:"板块"}),r.jsx("nav",{className:"sidebar-nav",children:e.map(a=>r.jsx("button",{type:"button",className:ee("sidebar-nav-item",c!=null&&c===String(a.id)&&"active"),onClick:()=>{t(a.id),o(We(a.id,n))},children:r.jsx("span",{className:"flex-1 truncate",children:a.name})},a.id))})]}),m&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"sidebar-section",style:{marginTop:8},children:"管理"}),r.jsx("nav",{className:"sidebar-nav",children:x("admin","管理后台",r.jsx(Ft,{}),()=>o("/admin/dashboard"))})]})]})}function br({hot:e,notifications:s,online:t,onPostClick:o}){const i=(e==null?void 0:e.slice(0,8))??[],l=(s==null?void 0:s.slice(0,6))??[],n=(t==null?void 0:t.users)??[];return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"widget-card",children:[r.jsx("div",{className:"widget-card-head",children:"🔥 热门帖子"}),r.jsx("div",{className:"widget-card-body",children:i.length===0?r.jsx("div",{style:{fontSize:13,color:"var(--color-text-3)",padding:"8px 0"},children:"暂无数据"}):i.map((d,m)=>r.jsxs("div",{className:"widget-item",onClick:()=>o(d.id),children:[r.jsx("span",{style:{color:m<3?"#e74c3c":"var(--color-text-3)",fontWeight:600,minWidth:18},children:m+1}),r.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d.title})]},d.id))})]}),r.jsxs("div",{className:"widget-card",children:[r.jsx("div",{className:"widget-card-head",children:"📢 最新动态"}),r.jsx("div",{className:"widget-card-body",children:l.length===0?r.jsx("div",{style:{fontSize:13,color:"var(--color-text-3)",padding:"8px 0"},children:"暂无动态"}):l.map(d=>r.jsxs("div",{className:"widget-item",onClick:()=>o(d.id),children:[r.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d.title}),r.jsx("span",{style:{fontSize:11,color:"var(--color-text-4)",flexShrink:0},children:d.created_at})]},d.id))})]}),r.jsxs("div",{className:"widget-card",children:[r.jsxs("div",{className:"widget-card-head",children:["👀 当前浏览 ",(t==null?void 0:t.count)??"—"," 人"]}),r.jsxs("div",{className:"widget-card-body",children:[r.jsxs("div",{style:{fontSize:12,color:"var(--color-text-3)",marginBottom:8},children:["会员 ",(t==null?void 0:t.members)??0," · 游客 ",(t==null?void 0:t.guests)??0]}),r.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:[n.map(d=>{var m;return r.jsx("span",{title:d.nickname,style:{width:28,height:28,borderRadius:"50%",background:"var(--j13-green)",color:"#fff",fontSize:12,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:((m=d.nickname)==null?void 0:m[0])||"?"},d.id)}),n.length===0&&r.jsx("span",{style:{fontSize:13,color:"var(--color-text-3)"},children:"暂无会员在线"})]})]})]}),r.jsx("div",{className:"widget-card widget-card--about",children:r.jsx("div",{className:"widget-card-body",children:r.jsxs("p",{className:"widget-about-text",children:[r.jsx("strong",{children:"姜十三论坛"}),"拾三一隅,自在交流。轻量社区,专为小圈子打造。"]})})})]})}const xs={post_title_max:128,post_tags_max:256,post_content_max:5e4,comment_max:5e3,search_keyword_min:1,search_keyword_max:50,password_min_len:6,avatar_max_mb:2};let ze=null,Le=null;function xr(){return ze?Promise.resolve(ze):Le||(Le=he.forumLimits().then(e=>(ze=e,e)).catch(()=>xs).finally(()=>{Le=null}),Le)}function yr(){const[e,s]=b.useState(ze??xs),[t,o]=b.useState(!ze);return b.useEffect(()=>{xr().then(s).finally(()=>o(!1))},[]),{limits:e,loading:t}}function va(){ze=null}function vr(e){if(typeof document>"u")return;let s=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css",s.appendChild(t),t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}const wr=e=>{switch(e){case"success":return Sr;case"info":return Er;case"warning":return Nr;case"error":return _r;default:return null}},kr=Array(12).fill(0),jr=({visible:e,className:s})=>u.createElement("div",{className:["sonner-loading-wrapper",s].filter(Boolean).join(" "),"data-visible":e},u.createElement("div",{className:"sonner-spinner"},kr.map((t,o)=>u.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${o}`})))),Sr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),Nr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Er=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),_r=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Tr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},u.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),u.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Cr=()=>{const[e,s]=u.useState(document.hidden);return u.useEffect(()=>{const t=()=>{s(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),e};let tt=1;class Pr{constructor(){this.subscribe=s=>(this.subscribers.push(s),()=>{const t=this.subscribers.indexOf(s);this.subscribers.splice(t,1)}),this.publish=s=>{this.subscribers.forEach(t=>t(s))},this.addToast=s=>{this.publish(s),this.toasts=[...this.toasts,s]},this.create=s=>{var t;const{message:o,...i}=s,l=typeof(s==null?void 0:s.id)=="number"||((t=s.id)==null?void 0:t.length)>0?s.id:tt++,n=this.toasts.find(m=>m.id===l),d=s.dismissible===void 0?!0:s.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),n?this.toasts=this.toasts.map(m=>m.id===l?(this.publish({...m,...s,id:l,title:o}),{...m,...s,id:l,dismissible:d,title:o}):m):this.addToast({title:o,...i,dismissible:d,id:l}),l},this.dismiss=s=>(s?(this.dismissedToasts.add(s),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:s,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(o=>o({id:t.id,dismiss:!0}))}),s),this.message=(s,t)=>this.create({...t,message:s}),this.error=(s,t)=>this.create({...t,message:s,type:"error"}),this.success=(s,t)=>this.create({...t,type:"success",message:s}),this.info=(s,t)=>this.create({...t,type:"info",message:s}),this.warning=(s,t)=>this.create({...t,type:"warning",message:s}),this.loading=(s,t)=>this.create({...t,type:"loading",message:s}),this.promise=(s,t)=>{if(!t)return;let o;t.loading!==void 0&&(o=this.create({...t,promise:s,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));const i=Promise.resolve(s instanceof Function?s():s);let l=o!==void 0,n;const d=i.then(async c=>{if(n=["resolve",c],u.isValidElement(c))l=!1,this.create({id:o,type:"default",message:c});else if(zr(c)&&!c.ok){l=!1;const a=typeof t.error=="function"?await t.error(`HTTP error! status: ${c.status}`):t.error,E=typeof t.description=="function"?await t.description(`HTTP error! status: ${c.status}`):t.description,R=typeof a=="object"&&!u.isValidElement(a)?a:{message:a};this.create({id:o,type:"error",description:E,...R})}else if(c instanceof Error){l=!1;const a=typeof t.error=="function"?await t.error(c):t.error,E=typeof t.description=="function"?await t.description(c):t.description,R=typeof a=="object"&&!u.isValidElement(a)?a:{message:a};this.create({id:o,type:"error",description:E,...R})}else if(t.success!==void 0){l=!1;const a=typeof t.success=="function"?await t.success(c):t.success,E=typeof t.description=="function"?await t.description(c):t.description,R=typeof a=="object"&&!u.isValidElement(a)?a:{message:a};this.create({id:o,type:"success",description:E,...R})}}).catch(async c=>{if(n=["reject",c],t.error!==void 0){l=!1;const x=typeof t.error=="function"?await t.error(c):t.error,a=typeof t.description=="function"?await t.description(c):t.description,T=typeof x=="object"&&!u.isValidElement(x)?x:{message:x};this.create({id:o,type:"error",description:a,...T})}}).finally(()=>{l&&(this.dismiss(o),o=void 0),t.finally==null||t.finally.call(t)}),m=()=>new Promise((c,x)=>d.then(()=>n[0]==="reject"?x(n[1]):c(n[1])).catch(x));return typeof o!="string"&&typeof o!="number"?{unwrap:m}:Object.assign(o,{unwrap:m})},this.custom=(s,t)=>{const o=(t==null?void 0:t.id)||tt++;return this.create({jsx:s(o),id:o,...t}),o},this.getActiveToasts=()=>this.toasts.filter(s=>!this.dismissedToasts.has(s.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Z=new Pr,Rr=(e,s)=>{const t=(s==null?void 0:s.id)||tt++;return Z.addToast({title:e,...s,id:t}),t},zr=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",Ar=Rr,Ir=()=>Z.toasts,Or=()=>Z.getActiveToasts(),Qe=Object.assign(Ar,{success:Z.success,info:Z.info,warning:Z.warning,error:Z.error,custom:Z.custom,message:Z.message,promise:Z.promise,dismiss:Z.dismiss,loading:Z.loading},{getHistory:Ir,getToasts:Or});vr("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Ue(e){return e.label!==void 0}const Lr=3,Dr="24px",Mr="16px",St=4e3,Br=356,$r=14,Fr=45,Vr=200;function fe(...e){return e.filter(Boolean).join(" ")}function Ur(e){const[s,t]=e.split("-"),o=[];return s&&o.push(s),t&&o.push(t),o}const Gr=e=>{var s,t,o,i,l,n,d,m,c;const{invert:x,toast:a,unstyled:E,interacting:T,setHeights:R,visibleToasts:L,heights:O,index:N,toasts:B,expanded:X,removeToast:te,defaultRichColors:ae,closeButton:$,style:D,cancelButtonStyle:p,actionButtonStyle:M,className:ue="",descriptionClassName:K="",duration:J,position:W,gap:me,expandByDefault:Q,classNames:w,icons:C,closeButtonAriaLabel:v="Close toast"}=e,[F,h]=u.useState(null),[Y,Se]=u.useState(null),[_,A]=u.useState(!1),[S,P]=u.useState(!1),[ie,z]=u.useState(!1),[I,Ne]=u.useState(!1),[ge,le]=u.useState(!1),[Ae,ve]=u.useState(0),[vs,rt]=u.useState(0),Ie=u.useRef(a.duration||J||St),at=u.useRef(null),be=u.useRef(null),ws=N===0,ks=N+1<=L,se=a.type,Ce=a.dismissible!==!1,js=a.className||"",Ss=a.descriptionClassName||"",Me=u.useMemo(()=>O.findIndex(k=>k.toastId===a.id)||0,[O,a.id]),Ns=u.useMemo(()=>{var k;return(k=a.closeButton)!=null?k:$},[a.closeButton,$]),nt=u.useMemo(()=>a.duration||J||St,[a.duration,J]),Ke=u.useRef(0),Pe=u.useRef(0),it=u.useRef(0),Re=u.useRef(null),[Es,_s]=W.split("-"),lt=u.useMemo(()=>O.reduce((k,U,q)=>q>=Me?k:k+U.height,0),[O,Me]),ct=Cr(),Ts=a.invert||x,Je=se==="loading";Pe.current=u.useMemo(()=>Me*me+lt,[Me,lt]),u.useEffect(()=>{Ie.current=nt},[nt]),u.useEffect(()=>{A(!0)},[]),u.useEffect(()=>{const k=be.current;if(k){const U=k.getBoundingClientRect().height;return rt(U),R(q=>[{toastId:a.id,height:U,position:a.position},...q]),()=>R(q=>q.filter(oe=>oe.toastId!==a.id))}},[R,a.id]),u.useLayoutEffect(()=>{if(!_)return;const k=be.current,U=k.style.height;k.style.height="auto";const q=k.getBoundingClientRect().height;k.style.height=U,rt(q),R(oe=>oe.find(H=>H.toastId===a.id)?oe.map(H=>H.toastId===a.id?{...H,height:q}:H):[{toastId:a.id,height:q,position:a.position},...oe])},[_,a.title,a.description,R,a.id,a.jsx,a.action,a.cancel]);const we=u.useCallback(()=>{P(!0),ve(Pe.current),R(k=>k.filter(U=>U.toastId!==a.id)),setTimeout(()=>{te(a)},Vr)},[a,te,R,Pe]);u.useEffect(()=>{if(a.promise&&se==="loading"||a.duration===1/0||a.type==="loading")return;let k;return X||T||ct?(()=>{if(it.current<Ke.current){const oe=new Date().getTime()-Ke.current;Ie.current=Ie.current-oe}it.current=new Date().getTime()})():(()=>{Ie.current!==1/0&&(Ke.current=new Date().getTime(),k=setTimeout(()=>{a.onAutoClose==null||a.onAutoClose.call(a,a),we()},Ie.current))})(),()=>clearTimeout(k)},[X,T,a,se,ct,we]),u.useEffect(()=>{a.delete&&(we(),a.onDismiss==null||a.onDismiss.call(a,a))},[we,a.delete]);function Cs(){var k;if(C!=null&&C.loading){var U;return u.createElement("div",{className:fe(w==null?void 0:w.loader,a==null||(U=a.classNames)==null?void 0:U.loader,"sonner-loader"),"data-visible":se==="loading"},C.loading)}return u.createElement(jr,{className:fe(w==null?void 0:w.loader,a==null||(k=a.classNames)==null?void 0:k.loader),visible:se==="loading"})}const Ps=a.icon||(C==null?void 0:C[se])||wr(se);var dt,ut;return u.createElement("li",{tabIndex:0,ref:be,className:fe(ue,js,w==null?void 0:w.toast,a==null||(s=a.classNames)==null?void 0:s.toast,w==null?void 0:w.default,w==null?void 0:w[se],a==null||(t=a.classNames)==null?void 0:t[se]),"data-sonner-toast":"","data-rich-colors":(dt=a.richColors)!=null?dt:ae,"data-styled":!(a.jsx||a.unstyled||E),"data-mounted":_,"data-promise":!!a.promise,"data-swiped":ge,"data-removed":S,"data-visible":ks,"data-y-position":Es,"data-x-position":_s,"data-index":N,"data-front":ws,"data-swiping":ie,"data-dismissible":Ce,"data-type":se,"data-invert":Ts,"data-swipe-out":I,"data-swipe-direction":Y,"data-expanded":!!(X||Q&&_),"data-testid":a.testId,style:{"--index":N,"--toasts-before":N,"--z-index":B.length-N,"--offset":`${S?Ae:Pe.current}px`,"--initial-height":Q?"auto":`${vs}px`,...D,...a.style},onDragEnd:()=>{z(!1),h(null),Re.current=null},onPointerDown:k=>{k.button!==2&&(Je||!Ce||(at.current=new Date,ve(Pe.current),k.target.setPointerCapture(k.pointerId),k.target.tagName!=="BUTTON"&&(z(!0),Re.current={x:k.clientX,y:k.clientY})))},onPointerUp:()=>{var k,U,q;if(I||!Ce)return;Re.current=null;const oe=Number(((k=be.current)==null?void 0:k.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Be=Number(((U=be.current)==null?void 0:U.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),H=new Date().getTime()-((q=at.current)==null?void 0:q.getTime()),ne=F==="x"?oe:Be,$e=Math.abs(ne)/H;if(Math.abs(ne)>=Fr||$e>.11){ve(Pe.current),a.onDismiss==null||a.onDismiss.call(a,a),Se(F==="x"?oe>0?"right":"left":Be>0?"down":"up"),we(),Ne(!0);return}else{var ce,de;(ce=be.current)==null||ce.style.setProperty("--swipe-amount-x","0px"),(de=be.current)==null||de.style.setProperty("--swipe-amount-y","0px")}le(!1),z(!1),h(null)},onPointerMove:k=>{var U,q,oe;if(!Re.current||!Ce||((U=window.getSelection())==null?void 0:U.toString().length)>0)return;const H=k.clientY-Re.current.y,ne=k.clientX-Re.current.x;var $e;const ce=($e=e.swipeDirections)!=null?$e:Ur(W);!F&&(Math.abs(ne)>1||Math.abs(H)>1)&&h(Math.abs(ne)>Math.abs(H)?"x":"y");let de={x:0,y:0};const mt=Ee=>1/(1.5+Math.abs(Ee)/20);if(F==="y"){if(ce.includes("top")||ce.includes("bottom"))if(ce.includes("top")&&H<0||ce.includes("bottom")&&H>0)de.y=H;else{const Ee=H*mt(H);de.y=Math.abs(Ee)<Math.abs(H)?Ee:H}}else if(F==="x"&&(ce.includes("left")||ce.includes("right")))if(ce.includes("left")&&ne<0||ce.includes("right")&&ne>0)de.x=ne;else{const Ee=ne*mt(ne);de.x=Math.abs(Ee)<Math.abs(ne)?Ee:ne}(Math.abs(de.x)>0||Math.abs(de.y)>0)&&le(!0),(q=be.current)==null||q.style.setProperty("--swipe-amount-x",`${de.x}px`),(oe=be.current)==null||oe.style.setProperty("--swipe-amount-y",`${de.y}px`)}},Ns&&!a.jsx&&se!=="loading"?u.createElement("button",{"aria-label":v,"data-disabled":Je,"data-close-button":!0,onClick:Je||!Ce?()=>{}:()=>{we(),a.onDismiss==null||a.onDismiss.call(a,a)},className:fe(w==null?void 0:w.closeButton,a==null||(o=a.classNames)==null?void 0:o.closeButton)},(ut=C==null?void 0:C.close)!=null?ut:Tr):null,(se||a.icon||a.promise)&&a.icon!==null&&((C==null?void 0:C[se])!==null||a.icon)?u.createElement("div",{"data-icon":"",className:fe(w==null?void 0:w.icon,a==null||(i=a.classNames)==null?void 0:i.icon)},a.promise||a.type==="loading"&&!a.icon?a.icon||Cs():null,a.type!=="loading"?Ps:null):null,u.createElement("div",{"data-content":"",className:fe(w==null?void 0:w.content,a==null||(l=a.classNames)==null?void 0:l.content)},u.createElement("div",{"data-title":"",className:fe(w==null?void 0:w.title,a==null||(n=a.classNames)==null?void 0:n.title)},a.jsx?a.jsx:typeof a.title=="function"?a.title():a.title),a.description?u.createElement("div",{"data-description":"",className:fe(K,Ss,w==null?void 0:w.description,a==null||(d=a.classNames)==null?void 0:d.description)},typeof a.description=="function"?a.description():a.description):null),u.isValidElement(a.cancel)?a.cancel:a.cancel&&Ue(a.cancel)?u.createElement("button",{"data-button":!0,"data-cancel":!0,style:a.cancelButtonStyle||p,onClick:k=>{Ue(a.cancel)&&Ce&&(a.cancel.onClick==null||a.cancel.onClick.call(a.cancel,k),we())},className:fe(w==null?void 0:w.cancelButton,a==null||(m=a.classNames)==null?void 0:m.cancelButton)},a.cancel.label):null,u.isValidElement(a.action)?a.action:a.action&&Ue(a.action)?u.createElement("button",{"data-button":!0,"data-action":!0,style:a.actionButtonStyle||M,onClick:k=>{Ue(a.action)&&(a.action.onClick==null||a.action.onClick.call(a.action,k),!k.defaultPrevented&&we())},className:fe(w==null?void 0:w.actionButton,a==null||(c=a.classNames)==null?void 0:c.actionButton)},a.action.label):null)};function Nt(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Wr(e,s){const t={};return[e,s].forEach((o,i)=>{const l=i===1,n=l?"--mobile-offset":"--offset",d=l?Mr:Dr;function m(c){["top","right","bottom","left"].forEach(x=>{t[`${n}-${x}`]=typeof c=="number"?`${c}px`:c})}typeof o=="number"||typeof o=="string"?m(o):typeof o=="object"?["top","right","bottom","left"].forEach(c=>{o[c]===void 0?t[`${n}-${c}`]=d:t[`${n}-${c}`]=typeof o[c]=="number"?`${o[c]}px`:o[c]}):m(d)}),t}const Hr=u.forwardRef(function(s,t){const{id:o,invert:i,position:l="bottom-right",hotkey:n=["altKey","KeyT"],expand:d,closeButton:m,className:c,offset:x,mobileOffset:a,theme:E="light",richColors:T,duration:R,style:L,visibleToasts:O=Lr,toastOptions:N,dir:B=Nt(),gap:X=$r,icons:te,containerAriaLabel:ae="Notifications"}=s,[$,D]=u.useState([]),p=u.useMemo(()=>o?$.filter(_=>_.toasterId===o):$.filter(_=>!_.toasterId),[$,o]),M=u.useMemo(()=>Array.from(new Set([l].concat(p.filter(_=>_.position).map(_=>_.position)))),[p,l]),[ue,K]=u.useState([]),[J,W]=u.useState(!1),[me,Q]=u.useState(!1),[w,C]=u.useState(E!=="system"?E:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),v=u.useRef(null),F=n.join("+").replace(/Key/g,"").replace(/Digit/g,""),h=u.useRef(null),Y=u.useRef(!1),Se=u.useCallback(_=>{D(A=>{var S;return(S=A.find(P=>P.id===_.id))!=null&&S.delete||Z.dismiss(_.id),A.filter(({id:P})=>P!==_.id)})},[]);return u.useEffect(()=>Z.subscribe(_=>{if(_.dismiss){requestAnimationFrame(()=>{D(A=>A.map(S=>S.id===_.id?{...S,delete:!0}:S))});return}setTimeout(()=>{As.flushSync(()=>{D(A=>{const S=A.findIndex(P=>P.id===_.id);return S!==-1?[...A.slice(0,S),{...A[S],..._},...A.slice(S+1)]:[_,...A]})})})}),[$]),u.useEffect(()=>{if(E!=="system"){C(E);return}if(E==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?C("dark"):C("light")),typeof window>"u")return;const _=window.matchMedia("(prefers-color-scheme: dark)");try{_.addEventListener("change",({matches:A})=>{C(A?"dark":"light")})}catch{_.addListener(({matches:S})=>{try{C(S?"dark":"light")}catch(P){console.error(P)}})}},[E]),u.useEffect(()=>{$.length<=1&&W(!1)},[$]),u.useEffect(()=>{const _=A=>{var S;if(n.every(z=>A[z]||A.code===z)){var ie;W(!0),(ie=v.current)==null||ie.focus()}A.code==="Escape"&&(document.activeElement===v.current||(S=v.current)!=null&&S.contains(document.activeElement))&&W(!1)};return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[n]),u.useEffect(()=>{if(v.current)return()=>{h.current&&(h.current.focus({preventScroll:!0}),h.current=null,Y.current=!1)}},[v.current]),u.createElement("section",{ref:t,"aria-label":`${ae} ${F}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},M.map((_,A)=>{var S;const[P,ie]=_.split("-");return p.length?u.createElement("ol",{key:_,dir:B==="auto"?Nt():B,tabIndex:-1,ref:v,className:c,"data-sonner-toaster":!0,"data-sonner-theme":w,"data-y-position":P,"data-x-position":ie,style:{"--front-toast-height":`${((S=ue[0])==null?void 0:S.height)||0}px`,"--width":`${Br}px`,"--gap":`${X}px`,...L,...Wr(x,a)},onBlur:z=>{Y.current&&!z.currentTarget.contains(z.relatedTarget)&&(Y.current=!1,h.current&&(h.current.focus({preventScroll:!0}),h.current=null))},onFocus:z=>{z.target instanceof HTMLElement&&z.target.dataset.dismissible==="false"||Y.current||(Y.current=!0,h.current=z.relatedTarget)},onMouseEnter:()=>W(!0),onMouseMove:()=>W(!0),onMouseLeave:()=>{me||W(!1)},onDragEnd:()=>W(!1),onPointerDown:z=>{z.target instanceof HTMLElement&&z.target.dataset.dismissible==="false"||Q(!0)},onPointerUp:()=>Q(!1)},p.filter(z=>!z.position&&A===0||z.position===_).map((z,I)=>{var Ne,ge;return u.createElement(Gr,{key:z.id,icons:te,index:I,toast:z,defaultRichColors:T,duration:(Ne=N==null?void 0:N.duration)!=null?Ne:R,className:N==null?void 0:N.className,descriptionClassName:N==null?void 0:N.descriptionClassName,invert:i,visibleToasts:O,closeButton:(ge=N==null?void 0:N.closeButton)!=null?ge:m,interacting:me,position:_,style:N==null?void 0:N.style,unstyled:N==null?void 0:N.unstyled,classNames:N==null?void 0:N.classNames,cancelButtonStyle:N==null?void 0:N.cancelButtonStyle,actionButtonStyle:N==null?void 0:N.actionButtonStyle,closeButtonAriaLabel:N==null?void 0:N.closeButtonAriaLabel,removeToast:Se,toasts:p.filter(le=>le.position==z.position),heights:ue.filter(le=>le.position==z.position),setHeights:K,expandByDefault:d,gap:X,expanded:J,swipeDirections:s.swipeDirections})})):null}))}),He={success:e=>Qe.success(e),error:e=>Qe.error(e),warning:e=>Qe.warning(e)};function Yr(){var C;const{user:e,loading:s,logout:t}=qe(),{theme:o,toggle:i}=qt(),l=mo("(max-width: 768px)"),n=Ye(),d=Ct(),[m]=Pt(),c=d.pathname.startsWith("/compose")||/\/post\/\d+\/edit$/.test(d.pathname),[x,a]=b.useState(()=>kt()),[E,T]=b.useState(()=>jt()),[R,L]=b.useState(()=>kt().length>0||!!jt()),[O,N]=b.useState([]),[B,X]=b.useState([]),[te,ae]=b.useState(null),[$,D]=b.useState(Number(m.get("board"))||0),[p,M]=b.useState(m.get("keyword")||""),ue=gs(m.get("sort")),{limits:K}=yr();b.useEffect(()=>{D(Number(m.get("board"))||0)},[m]),b.useEffect(()=>{M(m.get("keyword")||"")},[m]);const J=b.useCallback(()=>{Promise.all([he.boards().then(v=>{const F=v.boards??[];return a(F),ur(F),F}).catch(()=>[]),he.stats().then(v=>(T(v),mr(v),v)).catch(()=>null)]).finally(()=>L(!0))},[]),W=b.useCallback(()=>{he.online().then(v=>{ae({count:v.count??0,members:v.members??0,guests:v.guests??0,users:Array.isArray(v.users)?v.users:[]})}).catch(()=>{})},[]);b.useEffect(()=>{J(),he.hotPosts().then(Y=>N(Array.isArray(Y.posts)?Y.posts:[])).catch(()=>{}),he.notifications().then(Y=>X(Array.isArray(Y.notifications)?Y.notifications:[])).catch(()=>{}),W(),he.presence().catch(()=>{});const v=setInterval(W,3e4),F=setInterval(()=>he.presence().catch(()=>{}),6e4),h=()=>J();return window.addEventListener("boards-refresh",h),()=>{clearInterval(v),clearInterval(F),window.removeEventListener("boards-refresh",h)}},[J,W]);const me=()=>{const v=p.trim();if(!v){n("/");return}const F=[...v].length;if(K.search_keyword_min>0&&F<K.search_keyword_min){He.warning(`搜索关键词至少 ${K.search_keyword_min} 个字`);return}if(K.search_keyword_max>0&&F>K.search_keyword_max){He.warning(`搜索关键词最多 ${K.search_keyword_max} 个字`);return}n(`/?keyword=${encodeURIComponent(v)}`)},Q=((C=e==null?void 0:e.nickname)==null?void 0:C.charAt(0))||"?",w=bs(d.pathname)?-1:$;return r.jsx("div",{className:"app-shell",children:r.jsxs("div",{className:"app-frame",children:[r.jsx("header",{className:"app-header",children:r.jsxs("div",{className:"header-inner",children:[r.jsxs("button",{type:"button",className:"header-brand",onClick:()=>n("/"),children:[r.jsx("span",{className:"header-logo-mark",children:"姜"}),!l&&r.jsx("span",{className:"header-logo-text",children:"姜十三论坛"})]}),!c&&r.jsxs("div",{className:"header-search-wrap",children:[r.jsx(Ks,{className:"header-search-icon",size:16}),r.jsx("input",{className:"header-search-input",type:"search",placeholder:"搜索帖子...",value:p,onChange:v=>M(v.target.value),maxLength:K.search_keyword_max>0?K.search_keyword_max:void 0,onKeyDown:v=>v.key==="Enter"&&me()}),p&&r.jsx("button",{type:"button",className:"header-search-clear",onClick:()=>{M(""),n("/")},"aria-label":"清除搜索",children:"×"})]}),r.jsxs("div",{className:"header-actions",children:[!c&&r.jsxs("button",{type:"button",className:"header-compose-btn",onClick:()=>n(e?"/compose":"/login"),children:[r.jsx(Js,{size:16}),!l&&r.jsx("span",{children:"发帖"})]}),r.jsxs("div",{className:"header-action-group",children:[r.jsx("button",{type:"button",className:"header-icon-btn",onClick:i,title:o==="light"?"切换暗色模式":"切换亮色模式",children:o==="light"?r.jsx(Xs,{size:18}):r.jsx(Qs,{size:18})}),s?r.jsx("span",{className:"header-auth-slot header-auth-slot--loading","aria-hidden":!0}):e?r.jsxs(rr,{children:[r.jsx(ar,{asChild:!0,children:r.jsx("button",{type:"button",className:"header-user-btn",title:e.nickname,children:e.avatar?r.jsx("img",{src:e.avatar,alt:"",className:"header-user-avatar"}):r.jsx("span",{className:"header-user-initial",children:Q})})}),r.jsxs(us,{align:"end",className:"w-40",children:[r.jsx(De,{onClick:()=>n("/profile"),children:"个人中心"}),r.jsx(De,{onClick:()=>n("/favorites"),children:"我的收藏"}),e.role==="admin"&&r.jsxs(r.Fragment,{children:[r.jsx(et,{}),r.jsx(De,{onClick:()=>n("/admin/dashboard"),children:"管理后台"})]}),r.jsx(et,{}),r.jsx(De,{onClick:()=>t().then(()=>n("/login")),children:"退出登录"})]})]}):r.jsx("button",{type:"button",className:"header-login-btn",onClick:()=>n("/login"),children:"登录"})]})]})]})}),r.jsxs("div",{className:`app-body${c?" app-body--compose":""}`,children:[!c&&r.jsx(gr,{boards:x,activeBoard:$,onSelectBoard:D}),r.jsxs("div",{className:`content-workspace${c?" content-workspace--compose":""}`,children:[r.jsxs("main",{className:`main-content${c?" main-content--compose":""}`,children:[l&&!c&&r.jsxs("div",{className:"mobile-board-bar",children:[r.jsx("span",{className:`board-chip ${w===0?"active":""}`,onClick:()=>{D(0),n(We(0,ue))},children:"全部"}),x.map(v=>r.jsx("span",{className:`board-chip ${w===v.id?"active":""}`,onClick:()=>{D(v.id),n(We(v.id,ue))},children:v.name},v.id))]}),r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(Rt,{context:{boardId:$,keyword:m.get("keyword")||"",setBoardId:D,boards:x,stats:E,layoutReady:R,refreshBoards:J,isMobile:l}})})]}),!c&&r.jsx("aside",{className:"aside-panel",children:r.jsx(br,{hot:O,notifications:B,online:te,onPostClick:v=>n(`/post/${v}`)})})]})]})]})})}const qr={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-8 w-8"};function Kr({className:e,size:s="md"}){return r.jsx(Vt,{className:ee("animate-spin text-[var(--j13-green)]",qr[s],e),"aria-label":"加载中"})}const Jr=[{to:"/admin/dashboard",label:"仪表盘",icon:Ft},{to:"/admin/boards",label:"板块管理",icon:eo},{to:"/admin/posts",label:"帖子管理",icon:to},{to:"/admin/comments",label:"评论管理",icon:so},{to:"/admin/users",label:"用户管理",icon:oo},{to:"/admin/settings",label:"系统设置",icon:ro}];function Xr(){const{user:e,loading:s}=qe(),t=Ye();return b.useEffect(()=>{if(!s){if(!e){t("/login");return}e.role!=="admin"&&(He.warning("需要管理员权限"),t("/"))}},[e,s,t]),s?r.jsx("div",{className:"flex justify-center py-24",children:r.jsx(Kr,{size:"lg"})}):!e||e.role!=="admin"?null:r.jsxs("div",{className:"admin-shell",children:[r.jsxs("header",{className:"admin-topbar",children:[r.jsxs("div",{className:"admin-topbar-brand",children:[r.jsx("div",{className:"admin-topbar-mark",children:"姜"}),r.jsxs("div",{children:[r.jsx("div",{className:"admin-topbar-title",children:"姜十三论坛"}),r.jsx("div",{className:"admin-topbar-sub",children:"管理后台"})]})]}),r.jsxs("div",{className:"admin-topbar-actions",children:[r.jsxs("button",{type:"button",className:"admin-link-btn",onClick:()=>t("/"),children:[r.jsx(Zs,{size:16}),"返回论坛"]}),r.jsx("span",{className:"admin-topbar-user",children:e.nickname})]})]}),r.jsxs("div",{className:"admin-body",children:[r.jsx("aside",{className:"admin-sidebar",children:Jr.map(({to:o,label:i,icon:l})=>r.jsxs(Is,{to:o,className:({isActive:n})=>ee("admin-nav-item",n&&"active"),children:[r.jsx(l,{size:16}),i]},o))}),r.jsx("main",{className:"admin-main",children:r.jsx(Rt,{})})]})]})}function wa(){const{user:e,loading:s}=qe(),t=Ye();return b.useEffect(()=>{s||(e?e.role!=="admin"&&(He.warning("需要管理员权限"),t("/")):t("/login"))},[e,s,t]),{user:e,loading:s,ready:!s&&!!e&&e.role==="admin"}}const Et=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,_t=Jt,Qr=(e,s)=>t=>{var o;if((s==null?void 0:s.variants)==null)return _t(e,t==null?void 0:t.class,t==null?void 0:t.className);const{variants:i,defaultVariants:l}=s,n=Object.keys(i).map(c=>{const x=t==null?void 0:t[c],a=l==null?void 0:l[c];if(x===null)return null;const E=Et(x)||Et(a);return i[c][E]}),d=t&&Object.entries(t).reduce((c,x)=>{let[a,E]=x;return E===void 0||(c[a]=E),c},{}),m=s==null||(o=s.compoundVariants)===null||o===void 0?void 0:o.reduce((c,x)=>{let{class:a,className:E,...T}=x;return Object.entries(T).every(R=>{let[L,O]=R;return Array.isArray(O)?O.includes({...l,...d}[L]):{...l,...d}[L]===O})?[...c,a,E]:c},[]);return _t(e,n,m,t==null?void 0:t.class,t==null?void 0:t.className)},Zr=Qr("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),ys=b.forwardRef(({className:e,variant:s,size:t,asChild:o=!1,loading:i,children:l,disabled:n,...d},m)=>{const c=o?ao:"button";return r.jsxs(c,{className:ee(Zr({variant:s,size:t,className:e})),ref:m,disabled:n||i,...d,children:[i?r.jsx(Vt,{className:"animate-spin"}):null,l]})});ys.displayName="Button";class ea extends b.Component{constructor(){super(...arguments);pt(this,"state",{error:null})}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,o){console.error("[Jiang13Forum]",t,o.componentStack)}render(){return this.state.error?r.jsxs("div",{style:{padding:24,textAlign:"center"},children:[r.jsx("h3",{children:"页面渲染出错"}),r.jsx("p",{style:{color:"var(--color-text-3)",fontSize:13},children:this.state.error.message}),r.jsx(ys,{size:"sm",onClick:()=>{this.setState({error:null}),window.location.reload()},children:"刷新页面"})]}):this.props.children}}function ta(){const{theme:e}=qt();return r.jsx(Hr,{theme:e,position:"top-center",richColors:!0,closeButton:!0,toastOptions:{classNames:{toast:"font-sans"}}})}const sa=b.lazy(()=>re(()=>import("./HomePage-12KM5s42.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),oa=b.lazy(()=>re(()=>import("./PostDetailPage-I3oWcKSD.js"),__vite__mapDeps([8,1,4,5,3,6,9,10,7]))),ra=b.lazy(()=>re(()=>import("./LoginPage-W-sW3B0Q.js"),__vite__mapDeps([11,1,12,5,13]))),aa=b.lazy(()=>re(()=>import("./RegisterPage-s7NSU6sj.js"),__vite__mapDeps([14,1,12,5,13]))),Tt=b.lazy(()=>re(()=>import("./ComposePage-DPJpUz3A.js"),__vite__mapDeps([15,1,9,10,5]))),na=b.lazy(()=>re(()=>import("./BoardsManagePage-DQXzBsE1.js"),__vite__mapDeps([16,1,12,5,13,17,3,18]))),ia=b.lazy(()=>re(()=>import("./ProfilePage-ByQ-ocFr.js"),__vite__mapDeps([19,1,12,5,13,3]))),la=b.lazy(()=>re(()=>import("./FavoritesPage-DTZ3aZlm.js"),__vite__mapDeps([20,1,6,5]))),ca=b.lazy(()=>re(()=>import("./AdminDashboardPage-DvIYRHwe.js"),__vite__mapDeps([21,1,3,5]))),da=b.lazy(()=>re(()=>import("./AdminPostsPage-D7MOxCPU.js"),__vite__mapDeps([22,1,13,3,18,5,7,6]))),ua=b.lazy(()=>re(()=>import("./AdminCommentsPage-Z5_wmIqo.js"),__vite__mapDeps([23,1,3,18,5]))),ma=b.lazy(()=>re(()=>import("./AdminUsersPage-Ny3GZNbL.js"),__vite__mapDeps([24,1,3,5]))),pa=b.lazy(()=>re(()=>import("./AdminSettingsPage-BvAGktom.js"),__vite__mapDeps([25,1,13,17,5])));function fa(){return r.jsx(uo,{children:r.jsx(co,{children:r.jsxs(ea,{children:[r.jsx(Os,{children:r.jsxs(Ls,{children:[r.jsx(G,{path:"/login",element:r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(ra,{})})}),r.jsx(G,{path:"/register",element:r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(aa,{})})}),r.jsx(G,{path:"/boards",element:r.jsx(ft,{to:"/admin/boards",replace:!0})}),r.jsxs(G,{path:"/admin",element:r.jsx(Xr,{}),children:[r.jsx(G,{index:!0,element:r.jsx(ft,{to:"/admin/dashboard",replace:!0})}),r.jsx(G,{path:"dashboard",element:r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(ca,{})})}),r.jsx(G,{path:"boards",element:r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(na,{})})}),r.jsx(G,{path:"posts",element:r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(da,{})})}),r.jsx(G,{path:"comments",element:r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(ua,{})})}),r.jsx(G,{path:"users",element:r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(ma,{})})}),r.jsx(G,{path:"settings",element:r.jsx(b.Suspense,{fallback:r.jsx(ye,{}),children:r.jsx(pa,{})})})]}),r.jsxs(G,{element:r.jsx(Yr,{}),children:[r.jsx(G,{path:"/",element:r.jsx(sa,{})}),r.jsx(G,{path:"/post/:id",element:r.jsx(oa,{})}),r.jsx(G,{path:"/post/:id/edit",element:r.jsx(Tt,{})}),r.jsx(G,{path:"/compose",element:r.jsx(Tt,{})}),r.jsx(G,{path:"/profile",element:r.jsx(ia,{})}),r.jsx(G,{path:"/favorites",element:r.jsx(la,{})})]})]})}),r.jsx(ta,{})]})})})}Wt(Gt());Ds.createRoot(document.getElementById("root")).render(r.jsx(u.StrictMode,{children:r.jsx(fa,{})}));export{ys as B,ya as F,Kr as S,he as a,We as b,ee as c,yr as d,wa as e,Qr as f,Zr as g,va as i,He as n,gs as p,qe as u};