most-box 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/out/404/index.html +2 -2
  2. package/out/404.html +2 -2
  3. package/out/__next.__PAGE__.txt +4 -4
  4. package/out/__next._full.txt +13 -13
  5. package/out/__next._head.txt +3 -3
  6. package/out/__next._index.txt +7 -7
  7. package/out/__next._tree.txt +2 -2
  8. package/out/_next/static/chunks/00t5ddkkjek9v.js +1 -0
  9. package/out/_next/static/chunks/0hodisxqbtmye.js +1 -0
  10. package/out/_next/static/chunks/0jinrmgt26crz.js +1 -0
  11. package/out/_next/static/chunks/0mslhkdi-msxv.js +1 -0
  12. package/out/_next/static/chunks/1x76jmdus29em.js +1 -0
  13. package/out/_next/static/chunks/22vt64m0krmev.js +1 -0
  14. package/out/_next/static/chunks/266xuv6ts5889.js +5 -0
  15. package/out/_next/static/chunks/{0nwdp-n94owg0.css → 2jnstwjg45vfp.css} +1 -1
  16. package/out/_next/static/chunks/2o-0n-9r5u1oh.js +1 -0
  17. package/out/_next/static/chunks/2pkm-6u9yq_cq.js +1 -0
  18. package/out/_next/static/chunks/31zdi2pl6em6-.css +1 -0
  19. package/out/_next/static/chunks/393isf5crmqic.js +1 -0
  20. package/out/_next/static/chunks/3ej6im7cbakx3.js +1 -0
  21. package/out/_next/static/chunks/{0s7i7nfr9j3b1.js → 3m7_o1ihz8ay_.js} +1 -1
  22. package/out/_next/static/chunks/3qm2vbylm324o.css +1 -0
  23. package/out/_next/static/chunks/{43l72x-2z3zxb.js → 3uxltn4677hjy.js} +1 -1
  24. package/out/_next/static/chunks/3w2qk10_udrd9.js +1 -0
  25. package/out/_next/static/chunks/3xl0fq2d3dle6.js +1 -0
  26. package/out/_next/static/chunks/{418_591yp64lx.css → 440es_b4nw-7c.css} +2 -2
  27. package/out/_next/static/chunks/{turbopack-026p0g9v9_pva.js → turbopack-3vvza9m6839dy.js} +1 -1
  28. package/out/_not-found/__next._full.txt +12 -12
  29. package/out/_not-found/__next._head.txt +3 -3
  30. package/out/_not-found/__next._index.txt +7 -7
  31. package/out/_not-found/__next._not-found.__PAGE__.txt +4 -4
  32. package/out/_not-found/__next._not-found.txt +3 -3
  33. package/out/_not-found/__next._tree.txt +2 -2
  34. package/out/_not-found/index.html +2 -2
  35. package/out/_not-found/index.txt +12 -12
  36. package/out/admin/__next._full.txt +13 -13
  37. package/out/admin/__next._head.txt +3 -3
  38. package/out/admin/__next._index.txt +7 -7
  39. package/out/admin/__next._tree.txt +2 -2
  40. package/out/admin/__next.admin.__PAGE__.txt +4 -4
  41. package/out/admin/__next.admin.txt +3 -3
  42. package/out/admin/index.html +2 -2
  43. package/out/admin/index.txt +13 -13
  44. package/out/app/__next._full.txt +13 -13
  45. package/out/app/__next._head.txt +3 -3
  46. package/out/app/__next._index.txt +7 -7
  47. package/out/app/__next._tree.txt +2 -2
  48. package/out/app/__next.app.__PAGE__.txt +4 -4
  49. package/out/app/__next.app.txt +3 -3
  50. package/out/app/index.html +2 -2
  51. package/out/app/index.txt +13 -13
  52. package/out/chat/__next._full.txt +14 -14
  53. package/out/chat/__next._head.txt +3 -3
  54. package/out/chat/__next._index.txt +7 -7
  55. package/out/chat/__next._tree.txt +3 -3
  56. package/out/chat/__next.chat.__PAGE__.txt +4 -4
  57. package/out/chat/__next.chat.txt +4 -4
  58. package/out/chat/index.html +2 -2
  59. package/out/chat/index.txt +14 -14
  60. package/out/chat/join/__next._full.txt +14 -14
  61. package/out/chat/join/__next._head.txt +3 -3
  62. package/out/chat/join/__next._index.txt +7 -7
  63. package/out/chat/join/__next._tree.txt +3 -3
  64. package/out/chat/join/__next.chat.join.__PAGE__.txt +4 -4
  65. package/out/chat/join/__next.chat.join.txt +3 -3
  66. package/out/chat/join/__next.chat.txt +4 -4
  67. package/out/chat/join/index.html +2 -2
  68. package/out/chat/join/index.txt +14 -14
  69. package/out/demo/__next._full.txt +15 -14
  70. package/out/demo/__next._head.txt +3 -3
  71. package/out/demo/__next._index.txt +7 -7
  72. package/out/demo/__next._tree.txt +4 -3
  73. package/out/demo/__next.demo.__PAGE__.txt +6 -5
  74. package/out/demo/__next.demo.txt +3 -3
  75. package/out/demo/index.html +3 -3
  76. package/out/demo/index.txt +15 -14
  77. package/out/download/__next._full.txt +36 -34
  78. package/out/download/__next._head.txt +3 -3
  79. package/out/download/__next._index.txt +7 -7
  80. package/out/download/__next._tree.txt +2 -2
  81. package/out/download/__next.download.__PAGE__.txt +5 -5
  82. package/out/download/__next.download.txt +3 -3
  83. package/out/download/index.html +2 -2
  84. package/out/download/index.txt +36 -34
  85. package/out/game/__next._full.txt +11 -11
  86. package/out/game/__next._head.txt +3 -3
  87. package/out/game/__next._index.txt +7 -7
  88. package/out/game/__next._tree.txt +2 -2
  89. package/out/game/__next.game.__PAGE__.txt +2 -2
  90. package/out/game/__next.game.txt +3 -3
  91. package/out/game/gandengyan/__next._full.txt +13 -13
  92. package/out/game/gandengyan/__next._head.txt +3 -3
  93. package/out/game/gandengyan/__next._index.txt +7 -7
  94. package/out/game/gandengyan/__next._tree.txt +2 -2
  95. package/out/game/gandengyan/__next.game.gandengyan.__PAGE__.txt +4 -4
  96. package/out/game/gandengyan/__next.game.gandengyan.txt +3 -3
  97. package/out/game/gandengyan/__next.game.txt +3 -3
  98. package/out/game/gandengyan/index.html +2 -2
  99. package/out/game/gandengyan/index.txt +13 -13
  100. package/out/game/index.html +1 -1
  101. package/out/game/index.txt +11 -11
  102. package/out/game/zhajinhua/__next._full.txt +13 -13
  103. package/out/game/zhajinhua/__next._head.txt +3 -3
  104. package/out/game/zhajinhua/__next._index.txt +7 -7
  105. package/out/game/zhajinhua/__next._tree.txt +2 -2
  106. package/out/game/zhajinhua/__next.game.txt +3 -3
  107. package/out/game/zhajinhua/__next.game.zhajinhua.__PAGE__.txt +4 -4
  108. package/out/game/zhajinhua/__next.game.zhajinhua.txt +3 -3
  109. package/out/game/zhajinhua/index.html +2 -2
  110. package/out/game/zhajinhua/index.txt +13 -13
  111. package/out/index.html +2 -2
  112. package/out/index.txt +13 -13
  113. package/out/note/__next._full.txt +13 -13
  114. package/out/note/__next._head.txt +3 -3
  115. package/out/note/__next._index.txt +7 -7
  116. package/out/note/__next._tree.txt +2 -2
  117. package/out/note/__next.note.__PAGE__.txt +4 -4
  118. package/out/note/__next.note.txt +3 -3
  119. package/out/note/index.html +2 -2
  120. package/out/note/index.txt +13 -13
  121. package/out/ping/__next._full.txt +13 -13
  122. package/out/ping/__next._head.txt +3 -3
  123. package/out/ping/__next._index.txt +7 -7
  124. package/out/ping/__next._tree.txt +2 -2
  125. package/out/ping/__next.ping.__PAGE__.txt +4 -4
  126. package/out/ping/__next.ping.txt +3 -3
  127. package/out/ping/index.html +2 -2
  128. package/out/ping/index.txt +13 -13
  129. package/out/web3/__next._full.txt +14 -14
  130. package/out/web3/__next._head.txt +3 -3
  131. package/out/web3/__next._index.txt +7 -7
  132. package/out/web3/__next._tree.txt +3 -3
  133. package/out/web3/__next.web3.__PAGE__.txt +4 -4
  134. package/out/web3/__next.web3.txt +4 -4
  135. package/out/web3/ed25519/__next._full.txt +12 -12
  136. package/out/web3/ed25519/__next._head.txt +3 -3
  137. package/out/web3/ed25519/__next._index.txt +7 -7
  138. package/out/web3/ed25519/__next._tree.txt +3 -3
  139. package/out/web3/ed25519/__next.web3.ed25519.__PAGE__.txt +2 -2
  140. package/out/web3/ed25519/__next.web3.ed25519.txt +3 -3
  141. package/out/web3/ed25519/__next.web3.txt +4 -4
  142. package/out/web3/ed25519/index.html +1 -1
  143. package/out/web3/ed25519/index.txt +12 -12
  144. package/out/web3/index.html +2 -2
  145. package/out/web3/index.txt +14 -14
  146. package/out/web3/tools/__next._full.txt +12 -12
  147. package/out/web3/tools/__next._head.txt +3 -3
  148. package/out/web3/tools/__next._index.txt +7 -7
  149. package/out/web3/tools/__next._tree.txt +3 -3
  150. package/out/web3/tools/__next.web3.tools.__PAGE__.txt +2 -2
  151. package/out/web3/tools/__next.web3.tools.txt +3 -3
  152. package/out/web3/tools/__next.web3.txt +4 -4
  153. package/out/web3/tools/index.html +1 -1
  154. package/out/web3/tools/index.txt +12 -12
  155. package/package.json +1 -1
  156. package/server/src/http/app.js +66 -1
  157. package/server/src/http/nodeStatus.js +18 -0
  158. package/server/src/index.js +659 -164
  159. package/out/_next/static/chunks/0-c8h4u1i2f78.js +0 -1
  160. package/out/_next/static/chunks/02j6ojja7vzp8.js +0 -1
  161. package/out/_next/static/chunks/06im3as4nwfil.js +0 -1
  162. package/out/_next/static/chunks/0sq_0pwxnhby2.js +0 -1
  163. package/out/_next/static/chunks/1ei8b9nw-ea8p.css +0 -1
  164. package/out/_next/static/chunks/22h69_zwmttt4.js +0 -1
  165. package/out/_next/static/chunks/23zlmarf-go2x.js +0 -1
  166. package/out/_next/static/chunks/24k_4-y4ym0df.js +0 -1
  167. package/out/_next/static/chunks/2693fczty5yr8.js +0 -1
  168. package/out/_next/static/chunks/2_i1b78h0yiu_.js +0 -1
  169. package/out/_next/static/chunks/2fmkcw8ui5xp3.js +0 -5
  170. package/out/_next/static/chunks/2nbju8t9-ux58.css +0 -1
  171. package/out/_next/static/chunks/3fea100s764m-.js +0 -1
  172. package/out/_next/static/chunks/3mccxoa60ley8.js +0 -1
  173. /package/out/_next/static/{eXddCOt9eyz0j78b1m4Ex → TXy93SnAZQ7OQ-aVUkmHa}/_buildManifest.js +0 -0
  174. /package/out/_next/static/{eXddCOt9eyz0j78b1m4Ex → TXy93SnAZQ7OQ-aVUkmHa}/_clientMiddlewareManifest.js +0 -0
  175. /package/out/_next/static/{eXddCOt9eyz0j78b1m4Ex → TXy93SnAZQ7OQ-aVUkmHa}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87884,e=>{"use strict";var t=e.i(26913);e.s(["channelApi",0,{getChannels(e={}){let a=new URLSearchParams;e.type&&a.set("type",e.type),e.excludeType&&a.set("excludeType",e.excludeType);let n=a.toString();return t.api.get(n?`/api/channels?${n}`:"/api/channels").json()},createChannel:(e,a="personal",n={})=>t.api.post("/api/channels",{json:{name:e,type:a,...n}}).json(),leaveChannel:e=>t.api.delete(`/api/channels/${encodeURIComponent(e)}`).json(),getChannelMessages:(e,a=100,n=0)=>t.api.get(`/api/channels/${encodeURIComponent(e)}/messages?limit=${a}&offset=${n}`).json(),sendChannelMessage:({channelName:e,content:a,author:n,authorName:s,avatar:i,attachment:r})=>t.api.post(`/api/channels/${encodeURIComponent(e)}/messages`,{json:r?{content:a,author:n,authorName:s,avatar:i,attachment:r}:{content:a,author:n,authorName:s,avatar:i}}).json(),getChannelMembers:e=>t.api.get(`/api/channels/${encodeURIComponent(e)}/members`).json(),getChannelPeers:e=>t.api.get(`/api/channels/${encodeURIComponent(e)}/peers`).json(),setChannelRemark:(e,a)=>t.api.put(`/api/channels/${encodeURIComponent(e)}/remark`,{json:{remark:a}}).json(),setChannelPinned:(e,a)=>t.api.put(`/api/channels/${encodeURIComponent(e)}/pin`,{json:{pinned:a}}).json(),getFileDownloadUrl:e=>(0,t.getApiUrl)(`/api/files/${e}/download`)}])},23952,e=>{"use strict";var t=e.i(71645),a=e.i(87884),n=e.i(26913);function s(e="",t=[]){return[...new Set([e,...t].filter(Boolean))]}function i(e){return String(e.id||`${e.author||""}-${e.timestamp||""}-${e.content||""}`)}e.s(["useChannelMessages",0,function({isReady:e,enabled:r=!0,channelName:l="",extraSubscribedChannelNames:c=[],peerId:o="",waitForPeerId:d=!1,limit:u=100,reconnectBaseDelay:h=2500,acceptMessage:m,getMessageKey:p=i,onSyncError:f,onSocketEvent:y,onReconnect:x}){let[g,v]=(0,t.useState)([]),[j,b]=(0,t.useState)(!1),w=(0,t.useMemo)(()=>(function(e=[]){return s("",e).join("\n")})(c),[c]),k=(0,t.useRef)(null),N=(0,t.useRef)(l),C=(0,t.useRef)(c),M=(0,t.useRef)(null),S=(0,t.useRef)(0),A=(0,t.useRef)(m),E=(0,t.useRef)(p),z=(0,t.useRef)(y),I=(0,t.useRef)(f),R=(0,t.useRef)(x),L=(0,t.useRef)(o),D=(0,t.useRef)(new Set);(0,t.useEffect)(()=>{C.current=w?w.split("\n"):[]},[w]),(0,t.useEffect)(()=>{A.current=m},[m]),(0,t.useEffect)(()=>{E.current=p},[p]),(0,t.useEffect)(()=>{z.current=y},[y]),(0,t.useEffect)(()=>{I.current=f},[f]),(0,t.useEffect)(()=>{R.current=x},[x]);let T=(0,t.useCallback)(e=>{let t=A.current;return t?e.filter(t):e},[]),$=(0,t.useCallback)((e,t,a=!0)=>{let n=[...e];for(let e of T(t)){let t=E.current(e);if(a){let a=n.findIndex(t=>t.pending&&t.author?.toLowerCase()===e.author?.toLowerCase()&&t.content===e.content);if(-1!==a){n[a]={...e,id:e.id||t};continue}}n.some(e=>E.current(e)===t)||n.push({...e,id:e.id||t})}return n},[T]),F=(0,t.useCallback)((e,t)=>{k.current?.readyState===WebSocket.OPEN&&k.current.send(JSON.stringify({event:e,data:t}))},[]),U=(0,t.useCallback)(e=>{var t;let a,n,s=new Set(e.filter(Boolean)),i=(t=D.current,a=new Set(t),{subscribe:[...n=new Set(s)].filter(e=>!a.has(e)),unsubscribe:[...a].filter(e=>!n.has(e))});for(let e of i.unsubscribe)F("channel:unsubscribe",{channel:e});for(let e of i.subscribe)F("channel:subscribe",{channel:e});D.current=s},[F]),P=(0,t.useCallback)(()=>s(N.current,C.current),[]),O=(0,t.useCallback)(async(t=N.current,n={})=>{if(!t||!e)return[];try{let e=T(await a.channelApi.getChannelMessages(t,u));return v(t=>n.replace?e:$(t,e,!1)),e}catch(e){return n.replace&&v([]),await I.current?.(e),[]}},[T,e,u,$]);(0,t.useEffect)(()=>{L.current=o,o&&(F("register",{peerId:o}),d&&(U(P()),N.current&&O(N.current,{replace:!0})))},[P,o,U,O,d,F]);let B=(0,t.useCallback)(()=>{v([])},[]),q=(0,t.useCallback)(async({channelName:e=N.current,content:t,author:n,authorName:s,avatar:i,attachment:r,optimisticId:l})=>{let c=t.trim();if(!e||!c)return null;let o={id:l||`${n}-${Date.now()}-${Math.random().toString(36).slice(2)}`,author:n,authorName:s,content:c,timestamp:Date.now(),pending:!0,attachment:r};v(e=>[...e,o]);try{let t=await a.channelApi.sendChannelMessage({channelName:e,content:c,author:n,authorName:s,avatar:i,attachment:r});return v(e=>e.map(e=>e.id===o.id?{...t.message,id:t.message.id||E.current(t.message)}:e)),t.message}catch(e){throw v(e=>e.filter(e=>e.id!==o.id)),e}},[]);return(0,t.useEffect)(()=>{N.current=l,e&&r&&(l&&O(l,{replace:!0}),(!d||L.current)&&U(P()))},[l,r,w,P,e,U,O,d]),(0,t.useEffect)(()=>{e&&r&&(!d||L.current)&&U(P())},[r,P,e,U,d]),(0,t.useEffect)(()=>{if(!e||!r)return void b(!1);let t=!1;async function a(){let e=new WebSocket(await (0,n.getAuthenticatedWebSocketUrl)("/ws"));t?e.close():(e.onopen=()=>{b(!0),S.current=0,L.current&&e.send(JSON.stringify({event:"register",data:{peerId:L.current}})),(!d||L.current)&&(D.current.clear(),U(P()),N.current&&O(N.current,{replace:!0}),R.current?.())},e.onmessage=e=>{try{let t=JSON.parse(e.data);z.current?.(t.event,t.data),"channel:message"===t.event&&t.data?.channel===N.current&&t.data?.message&&v(e=>$(e,[t.data.message]))}catch{}},e.onclose=()=>{if(b(!1),t)return;let e=S.current;if(e>=20)return;let n=Math.min(h*Math.pow(2,e),3e4);S.current=e+1,M.current=setTimeout(a,n)},e.onerror=()=>e.close(),k.current=e)}return S.current=0,a(),()=>{t=!0,M.current&&clearTimeout(M.current),k.current?.close(),k.current=null,D.current.clear()}},[r,P,e,$,h,U,O,d]),{clearMessages:B,connected:j,messages:g,sendMessage:q,setMessages:v,syncMessages:O}}],23952)},68590,58501,e=>{"use strict";let t=(0,e.i(56420).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],68590);var a=e.i(18050);e.s(["LogoIcon",0,function({size:e=24}){return(0,a.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,a.jsx)("rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.4"}),(0,a.jsx)("rect",{x:"14",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,a.jsx)("rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,a.jsx)("rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)"})]})}],58501)},68877,e=>{"use strict";let t=(0,e.i(56420).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",0,t],68877)},26091,e=>{"use strict";let t=(0,e.i(56420).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",0,t],26091)},73474,e=>{"use strict";let t=(0,e.i(56420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],73474)},77071,e=>{"use strict";let t=(0,e.i(56420).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],77071)},99847,e=>{"use strict";let t=(0,e.i(56420).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],99847)},77685,14351,e=>{"use strict";var t=e.i(18050),a=e.i(99847),n=e.i(62368),s=e.i(72382),i=e.i(26091),r=e.i(80796),l=e.i(15170),c=e.i(12796),o=e.i(51921);function d(e){let t=String(e||"").split("/");return t[t.length-1]||e}e.s(["ChatAttachmentCard",0,function({attachment:e,status:u="idle",pending:h=!1,onOpen:m}){var p,f;let y="checking"===u,x=["ui-file-action","chat-attachment-action","error"===u?"error":"","available"===u?"available":""].filter(Boolean).join(" "),g=((p=e.size)&&!(p<=0)?p<1024?`${p} B`:p<1048576?`${(p/1024).toFixed(1)} KB`:p<0x40000000?`${(p/1048576).toFixed(1)} MB`:`${(p/0x40000000).toFixed(2)} GB`:"")||"MostBox 文件";return(0,t.jsxs)("button",{type:"button",className:"ui-file-card chat-attachment-card",onClick:()=>m?.(e),disabled:h||y,title:e.link,children:[(0,t.jsx)("span",{className:`ui-file-icon chat-attachment-icon ${e.kind}`,children:y?(0,t.jsx)(c.Loader,{size:20,className:"ui-spinner chat-attachment-spinner"}):"image"===(f=e.kind)?(0,t.jsx)(l.Image,{size:20}):"video"===f?(0,t.jsx)(r.Film,{size:20}):"audio"===f?(0,t.jsx)(o.Music,{size:20}):(0,t.jsx)(i.FileText,{size:20})}),(0,t.jsxs)("span",{className:"ui-file-info chat-attachment-info",children:[(0,t.jsx)("span",{className:"ui-file-name chat-attachment-name",children:d(e.fileName)}),(0,t.jsx)("span",{className:"ui-file-meta chat-attachment-meta",children:h?"发送中...":g})]}),(0,t.jsx)("span",{className:x,children:y?"检测中":"available"===u?(0,t.jsx)(s.Eye,{size:16}):"error"===u?(0,t.jsx)(a.AlertCircle,{size:17}):(0,t.jsx)(n.Download,{size:16})})]})},"getAttachmentBaseFileName",0,d],77685);var u=e.i(68877),h=e.i(79490),m=e.i(68590),p=e.i(48119),f=e.i(56420);let y=(0,f.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),x=(0,f.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var g=e.i(77071),v=e.i(73474);e.i(4121);var j=e.i(20885);let b=[{key:"image",label:"图片",accept:"image/*",icon:l.Image},{key:"video",label:"视频",accept:"video/*",icon:r.Film},{key:"file",label:"文件",accept:"",icon:i.FileText}],w=b.map(e=>e.accept).join(",");e.s(["ChannelMemberGrid",0,function({members:e,isLoading:a=!1}){return a&&0===e.length?(0,t.jsx)("div",{className:"ui-empty-inline channel-members-empty",children:"正在读取成员..."}):0===e.length?(0,t.jsx)("div",{className:"ui-empty-inline channel-members-empty",children:"暂无成员"}):(0,t.jsx)("div",{className:"channel-members-grid",children:e.map(e=>(0,t.jsxs)("div",{className:"channel-member",children:[(0,t.jsx)("img",{className:"channel-member-avatar",src:e.avatarSrc,alt:"avatar"}),(0,t.jsx)("span",{className:"channel-member-name",children:e.name})]},e.id))})},"ChatAttachmentBubble",0,function({children:e}){return(0,t.jsx)("div",{className:"message-bubble has-attachment",children:e})},"ChatChannelNavItem",0,function({active:e=!1,pinned:a=!1,unread:n=!1,title:s,onSelect:i,onTogglePin:r,onRename:l,onLeave:c}){let o=["sidebar-nav-btn",e?"active":"",a?"pinned":"",n?"unread":""].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:o,onClick:i,role:"button",tabIndex:0,onKeyDown:e=>{e.target!==e.currentTarget||"Enter"===e.key&&i?.()},children:[(0,t.jsxs)("span",{className:"chat-channel-icon-wrap",children:[(0,t.jsx)(m.MessageSquare,{size:16}),n&&(0,t.jsx)("span",{className:"chat-channel-unread-dot",title:"有新消息","aria-hidden":"true"})]}),(0,t.jsx)("span",{className:"chat-channel-title",children:(0,t.jsx)("span",{className:"chat-channel-title-text",children:s})}),!!(r||l||c)&&(0,t.jsx)(j.ActionMenu,{ariaLabel:"频道操作",className:"channel-actions-anchor",placement:"bottom-end",items:[{key:"pin",label:a?"取消置顶":"置顶",icon:a?(0,t.jsx)(x,{size:16}):(0,t.jsx)(y,{size:16}),onSelect:()=>r?.()},{key:"rename",label:"重命名",icon:(0,t.jsx)(h.Edit2,{size:16}),onSelect:()=>l?.()},{key:"delete",label:"删除",icon:(0,t.jsx)(v.Trash2,{size:16}),onSelect:()=>c?.()}],renderTrigger:e=>(0,t.jsx)("button",{...e,className:"leave-channel-btn channel-actions-trigger",title:"更多操作","aria-label":"更多操作",children:(0,t.jsx)(p.MoreHorizontal,{size:16})})})]})},"ChatComposer",0,function({message:e,placeholder:a,disabled:n=!1,isPublishingAttachment:s=!1,attachmentButtonTitle:i="添加附件",attachmentInputRef:r,onMessageChange:l,onSend:o,onSelectAttachmentFiles:d}){let h=n||s,m=n||!e.trim();return(0,t.jsxs)("div",{className:"chat-input-area",children:[(0,t.jsx)("input",{ref:r,type:"file",accept:w,className:"chat-file-input",onChange:e=>{d?.(e.currentTarget.files),e.currentTarget.value=""}}),(0,t.jsx)(j.ActionMenu,{ariaLabel:"附件类型",placement:"top-start",disabled:h,items:b.map(e=>{let a=e.icon;return{key:e.key,label:e.label,icon:(0,t.jsx)(a,{size:16}),onSelect:()=>(function(e){if(h)return;let t=r?.current;t&&(t.accept=e,t.click())})(e.accept)}}),renderTrigger:e=>(0,t.jsx)("button",{...e,className:"btn btn-circle chat-tool-btn","aria-label":i,children:s?(0,t.jsx)(c.Loader,{size:18,className:"ui-spinner chat-attachment-spinner"}):(0,t.jsx)(g.Plus,{size:18})})}),(0,t.jsx)("input",{type:"text",className:"input input-pill",placeholder:a,value:e,disabled:n,onChange:e=>l(e.target.value),onKeyDown:function(t){"Enter"===t.key&&e.trim()&&o()}}),(0,t.jsx)("button",{type:"button",className:"btn btn-circle btn-primary send-btn",onClick:o,disabled:m,title:"发送消息",children:(0,t.jsx)(u.ArrowRight,{size:18})})]})},"ChatMessageItem",0,function({variant:e,pending:a=!1,avatarSrc:n,author:s,time:i,children:r}){let l=["chat-message",e,a?"pending":""].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:l,children:[(0,t.jsx)("img",{className:"msg-avatar",src:n,alt:"avatar"}),(0,t.jsxs)("div",{className:"msg-content",children:[(0,t.jsx)("span",{className:"message-author",children:s}),r,(0,t.jsx)("span",{className:"message-time",children:i})]})]})},"ChatTextBubble",0,function({children:e}){return(0,t.jsx)("div",{className:"message-bubble",children:e})}],14351)},11241,e=>{"use strict";let t=(0,e.i(56420).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],11241)},35965,e=>{"use strict";let t=(0,e.i(56420).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);e.s(["Sun",0,t],35965)},96699,e=>{"use strict";let t=(0,e.i(56420).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);e.s(["Moon",0,t],96699)},59665,5142,e=>{"use strict";var t=e.i(18050),a=e.i(71645);let n=(0,e.i(56420).default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);function s(e=!1,t={}){let[n,i]=(0,a.useState)(e),r=(0,a.useCallback)(()=>{i(e=>e||(t.onOpen?.(),!0))},[t.onOpen]),l=(0,a.useCallback)(()=>{i(e=>e?(t.onClose?.(),!1):e)},[t.onClose]);return[n,{open:r,close:l,toggle:(0,a.useCallback)(()=>{n?l():r()},[l,r,n]),set:i}]}e.s(["useDisclosure",0,s],5142);let i=(0,a.createContext)(null);e.s(["default",0,function({sidebar:e,className:r="",headerTitle:l,headerRight:c,sidebarToggleReplacement:o,defaultHide:d=!1,children:u}){let[h,m]=s(!1),[p,f]=(0,a.useState)(d),y=(0,a.useRef)(d),x=function(e,{getInitialValueInEffect:t}={getInitialValueInEffect:!0}){let[n,s]=(0,a.useState)(t?void 0:!!("u">typeof window&&"matchMedia"in window)&&window.matchMedia(e).matches);return(0,a.useEffect)(()=>{try{if("matchMedia"in window){let t=window.matchMedia(e);s(t.matches);let a=e=>s(e.matches);return t.addEventListener("change",a),()=>{t.removeEventListener("change",a)}}}catch(e){return}},[e]),n||!1}("(max-width: 768px)"),g=(0,a.useCallback)((e={})=>{m.close(),e.collapse&&f(!0)},[m]);(0,a.useEffect)(()=>{d!==y.current&&(d?g({collapse:!0}):f(!1),y.current=d)},[d,g]);let v=()=>{x?m.open():f(!1)};return(0,t.jsx)(i.Provider,{value:{closeSidebar:g,openSidebar:v,isSidebarVisible:x?h:!p},children:(0,t.jsxs)("div",{className:["app-layout",r].filter(Boolean).join(" "),children:[(0,t.jsx)("div",{className:`sidebar-overlay ${h?"visible":""}`,onClick:()=>g()}),(0,t.jsx)("div",{className:`sidebar ${h?"open":""} ${p?"collapsed":""}`,children:e({closeSidebar:g,openSidebar:v})}),(0,t.jsxs)("div",{className:"main-content",children:[(0,t.jsxs)("header",{className:"app-header",children:[(0,t.jsxs)("div",{className:"header-left",children:[o??(0,t.jsx)("button",{onClick:()=>{x?m.toggle():f(!p)},className:"btn btn-icon sidebar-toggle-btn","aria-label":x?"打开菜单":p?"展开侧边栏":"收起侧边栏",children:(0,t.jsx)(n,{size:16})}),l]}),(0,t.jsx)("div",{className:"header-right",children:c})]}),u]})]})})},"useAppShell",0,function(){let e=(0,a.useContext)(i);if(!e)throw Error("useAppShell must be used within AppShell");return e}],59665)},48119,e=>{"use strict";let t=(0,e.i(56420).default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);e.s(["MoreHorizontal",0,t],48119)},67784,e=>{"use strict";let t=(0,e.i(56420).default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]);e.s(["LogOut",0,t],67784)},27648,e=>{"use strict";var t=e.i(18050),a=e.i(71645),n=e.i(67784),s=e.i(48119);e.i(4121);var i=e.i(20885),r=e.i(88361),l=e.i(93957),c=e.i(71192);e.s(["default",0,function({className:e=""}){let o=(0,c.useUserStore)(e=>e.identity),d=(0,c.useUserStore)(e=>e.openLoginModal),u=(0,c.useUserStore)(e=>e.logoutUser),[h,m]=(0,a.useState)(!1);return(0,t.jsxs)("div",{className:`chat-sidebar-footer sidebar-account ${e}`,children:[(0,t.jsxs)("div",{className:"user-info",children:[(0,t.jsx)("img",{className:"user-avatar-img",src:(0,l.generateAvatar)(o?.address,o?.avatar),alt:"avatar"}),(0,t.jsx)("span",{className:"user-name",title:o?.address,children:o?.displayName||"未登录"})]}),o?(0,t.jsx)(i.ActionMenu,{ariaLabel:"账号操作",placement:"top-end",items:[{key:"logout",label:"退出",icon:(0,t.jsx)(n.LogOut,{size:16}),onSelect:()=>m(!0)}],renderTrigger:e=>(0,t.jsx)("button",{...e,className:"btn btn-icon account-menu-trigger","aria-label":"更多操作",title:"更多操作",children:(0,t.jsx)(s.MoreHorizontal,{size:16})})}):(0,t.jsx)("button",{className:"btn btn-primary login-btn",onClick:d,children:"登录"}),h&&(0,t.jsx)(r.ConfirmModal,{title:"退出登录",message:"确定要退出当前账号吗?",confirmText:"退出",danger:!0,onConfirm:()=>{u(),m(!1)},onClose:()=>m(!1)})]})}])},39626,e=>{"use strict";var t=e.i(18050);let a=(0,e.i(56420).default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);var n=e.i(59665);e.s(["default",0,function({label:e="打开侧边栏",className:s="",variant:i="primary"}){let{isSidebarVisible:r,openSidebar:l}=(0,n.useAppShell)();return r?null:(0,t.jsxs)("button",{type:"button",className:`btn ${"primary"===i?"btn-primary":""} sidebar-open-hint ${s}`.trim(),onClick:l,children:[(0,t.jsx)(a,{size:16}),e]})}],39626)},62368,e=>{"use strict";let t=(0,e.i(56420).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",0,t],62368)},66595,e=>{"use strict";let t=(0,e.i(56420).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,t],66595)},51921,e=>{"use strict";let t=(0,e.i(56420).default)("music",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]);e.s(["Music",0,t],51921)},79490,e=>{"use strict";let t=(0,e.i(56420).default)("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);e.s(["Edit2",0,t],79490)},12796,e=>{"use strict";let t=(0,e.i(56420).default)("loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]);e.s(["Loader",0,t],12796)},80796,15170,e=>{"use strict";var t=e.i(56420);let a=(0,t.default)("film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]);e.s(["Film",0,a],80796);let n=(0,t.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);e.s(["Image",0,n],15170)},6933,e=>{"use strict";e.s(["getFileSubtype",0,function(e){let t=String(e||"").split(".").pop()?.toLowerCase()||"";return["jpg","jpeg","png","gif","webp","svg","bmp","ico","tiff","heic","heif"].includes(t)?"image":["mp4","webm","mov","avi","mkv","flv","wmv","m4v","mpeg","3gp"].includes(t)?"video":["mp3","wav","ogg","flac","aac","m4a","wma","opus"].includes(t)?"audio":["txt","md","js","ts","jsx","tsx","css","scss","less","json","xml","html","htm","yaml","yml","toml","ini","cfg","conf","log","sh","bash","py","rb","go","rs","java","c","cpp","h","hpp","cs","php","sql","graphql","env","gitignore","dockerfile","readme"].includes(t)?"text":"file"}])},11028,27668,e=>{"use strict";var t=e.i(18050),a=e.i(71645),n=e.i(26091),s=e.i(12796),i=e.i(51921),r=e.i(63676),l=e.i(26913);e.s(["default",0,function({item:e,isBackendReady:c,getFileDownloadUrl:o,onClose:d}){let[u,h]=(0,a.useState)(""),[m,p]=(0,a.useState)(!1),[f,y]=(0,a.useState)(""),[x,g]=(0,a.useState)("");return(0,a.useEffect)(()=>{if("text"!==e.subtype)return;let t=!1;return(h(""),g(""),c)?(p(!0),(async()=>{try{let a=await fetch(o(e.cid),{headers:{...await (0,l.getApiRequestHeaders)("GET",`/api/files/${e.cid}/download`),Range:"bytes=0-9999"}});if(!a.ok)throw Error("加载失败");let n=await a.text();t||h(n||"(文件为空)")}catch{t||h("加载失败")}finally{t||p(!1)}})(),()=>{t=!0}):void h("加载失败")},[o,c,e.cid,e.subtype]),(0,a.useEffect)(()=>{var t;if("image"!==(t=e.subtype)&&"video"!==t&&"audio"!==t)return void y("");if(y(""),g(""),!c)return void g("加载失败");let a="",n=!1;return(async()=>{try{let t=await fetch(o(e.cid),{headers:await (0,l.getApiRequestHeaders)("GET",`/api/files/${e.cid}/download`)});if(!t.ok)throw Error("加载失败");let s=URL.createObjectURL(await t.blob());a=s,n||y(s)}catch{n||g("加载失败")}})(),()=>{n=!0,a&&URL.revokeObjectURL(a)}},[o,c,e.cid,e.subtype]),(0,t.jsxs)("div",{className:"preview-overlay",onClick:d,children:[(0,t.jsx)("button",{type:"button",className:"preview-close",onClick:d,"aria-label":"关闭预览",children:(0,t.jsx)(r.X,{size:20})}),(0,t.jsxs)("div",{onClick:e=>e.stopPropagation(),children:["image"===e.subtype&&(0,t.jsx)("div",{className:"preview-media-wrapper",children:f?(0,t.jsx)("img",{src:f,alt:e.fileName}):x?(0,t.jsxs)("div",{className:"preview-unsupported",children:[(0,t.jsx)(n.FileText,{size:48,className:"preview-file-icon"}),(0,t.jsx)("p",{children:e.fileName}),(0,t.jsx)("p",{className:"preview-unsupported-hint",children:x})]}):(0,t.jsx)("div",{className:"preview-loading",children:(0,t.jsx)("div",{className:"preview-loading-spinner"})})}),"video"===e.subtype&&(0,t.jsx)("div",{className:"preview-media-wrapper",children:f?(0,t.jsx)("video",{src:f,controls:!0}):x?(0,t.jsxs)("div",{className:"preview-unsupported",children:[(0,t.jsx)(n.FileText,{size:48,className:"preview-file-icon"}),(0,t.jsx)("p",{children:e.fileName}),(0,t.jsx)("p",{className:"preview-unsupported-hint",children:x})]}):(0,t.jsx)("div",{className:"preview-loading",children:(0,t.jsx)("div",{className:"preview-loading-spinner"})})}),"audio"===e.subtype&&(0,t.jsxs)("div",{className:"preview-audio",children:[(0,t.jsx)("div",{className:"preview-audio-icon",children:(0,t.jsx)(i.Music,{size:36,color:"var(--accent)"})}),(0,t.jsx)("p",{className:"preview-audio-filename",children:e.fileName}),f?(0,t.jsx)("audio",{className:"preview-audio-player",src:f,controls:!0}):(0,t.jsx)("div",{className:"preview-text-loading",children:x?(0,t.jsx)("p",{children:x}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.Loader,{size:24,className:"preview-text-spinner"}),(0,t.jsx)("p",{children:"正在加载音频预览..."})]})})]}),"file"===e.subtype&&(0,t.jsxs)("div",{className:"preview-unsupported",children:[(0,t.jsx)(n.FileText,{size:48,className:"preview-file-icon"}),(0,t.jsx)("p",{children:e.fileName}),(0,t.jsx)("p",{className:"preview-unsupported-hint",children:"无法预览"})]}),"text"===e.subtype&&(0,t.jsxs)("div",{className:"preview-text-container",children:[(0,t.jsx)("div",{className:"preview-text-header",children:(0,t.jsx)("span",{children:e.fileName})}),m?(0,t.jsxs)("div",{className:"preview-text-loading",children:[(0,t.jsx)(s.Loader,{size:24,className:"preview-text-spinner"}),(0,t.jsx)("p",{children:"正在加载文本预览..."}),(0,t.jsx)("p",{className:"preview-text-loading-hint",children:"如果是初次预览,可能需要等待 P2P 网络同步"})]}):(0,t.jsx)("pre",{className:"preview-text",children:u||"(文件为空)"})]})]})]})}],11028);var c=e.i(64621);let o="链接格式不正确,请粘贴完整的 most://<cid>?filename=... 分享链接。",d="暂时没有发现在线种子。请确认分享者或其他下载者仍在线做种,稍后再检测。",u={"Link must be a valid most:// URL":"链接无法解析,请粘贴完整的 most://<cid>?filename=... 分享链接。","Link must use most:// protocol":"链接协议不正确,应以 most:// 开头。","Link path is not supported":"链接里不应包含路径,请使用 most://<cid>?filename=... 格式。","Invalid CID format":"CID 无效,请确认 most:// 后面的内容没有缺失或被截断。","Invalid CID format: CID v1 required":"CID 格式不符合 MostBox 要求,请确认分享链接完整。","CID digest must be 32 bytes":"CID 格式不符合 MostBox 要求,请确认分享链接完整。","filename is required":"链接缺少 filename 参数,请复制完整分享链接后再检测。"};e.s(["getDownloadCheckErrorMessageFromPayload",0,function(e={},t=""){if("TimeoutError"===t)return"检测等待超时,暂时没有等到在线种子响应。请确认分享者或其他下载者仍在线做种,稍后再检测。";if(!e.status)return"无法连接本地节点,请确认 MostBox 后端正在运行后再检测。";if(404===e.status)return"当前后端还没有检测接口,请重启 MostBox 后端后再试。";switch(e.code){case"VALIDATION_ERROR":return o;case"CONFLICT":return e.error?`${e.error},请先处理同名文件后再下载。`:"下载目录已有同名文件,请先重命名或移走后再检测。";case"PEER_NOT_FOUND":return d;case"PERMISSION_ERROR":return e.error?`下载目录不可写:${e.error}`:"下载目录不可写,请检查目录权限后再检测。";case"ENGINE_NOT_INITIALIZED":return"本地节点还没有启动完成,请稍等几秒后重新检测。"}return 503===e.status?d:e.status>=500?"本地节点检测时出错,请稍后重试或查看节点日志。":e.error?`检测未通过:${e.error}`:"检测未通过,请确认链接完整、发布者在线且本机网络正常。"},"getDownloadLinkValidationMessage",0,function(e=""){let t=String(e||"").trim();if(!t)return"请先粘贴 most:// 分享链接。";let a=function(e){let t;if(!e||"string"!=typeof e)return{cid:"",error:"Link must be a non-empty string"};try{t=new URL(e)}catch{return{cid:"",error:"Link must be a valid most:// URL"}}if("most:"!==t.protocol)return{cid:"",error:"Link must use most:// protocol"};if(t.pathname&&"/"!==t.pathname)return{cid:"",error:"Link path is not supported"};let a=t.hostname,n=t.searchParams.get("filename"),s=[...t.searchParams.keys()].find(e=>"filename"!==e),i=function(e){let t;if(!e||"string"!=typeof e)return{valid:!1,error:"CID must be a non-empty string"};try{t=c.CID.parse(e)}catch{return{valid:!1,error:"Invalid CID format"}}return 1!==t.version?{valid:!1,error:"Invalid CID format: CID v1 required"}:32!==t.multihash.digest.length?{valid:!1,error:"CID digest must be 32 bytes"}:{valid:!0}}(a);return i.valid?n&&n.trim()?s?{cid:"",error:`Unsupported query parameter: ${s}`}:{cid:a,fileName:n}:{cid:"",error:"filename is required"}:{cid:"",error:i.error}}(t);if(!a.error)return a.fileName?.trim()?null:u["filename is required"];if(a.error.startsWith("Unsupported query parameter: ")){let e=a.error.slice(29);return`链接包含暂不支持的参数 ${e},请只保留 filename。`}return u[a.error]||o}],27668)},41222,e=>{"use strict";var t=e.i(18050),a=e.i(71645),n=e.i(68590),s=e.i(77071),i=e.i(35965),r=e.i(96699),l=e.i(63676),c=e.i(11241),o=e.i(79490),d=e.i(56420);let u=(0,d.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),h=(0,d.default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]),m=(0,d.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var p=e.i(12796),f=e.i(66595),y=e.i(59665),x=e.i(77685),g=e.i(14351),v=e.i(11028);e.i(4121);var j=e.i(47910),b=e.i(88361),w=e.i(57667),k=e.i(39626),N=e.i(58501),C=e.i(26913),M=e.i(27668),S=e.i(93957),A=e.i(3593),E=e.i(71192),z=e.i(5142),I=e.i(23952),R=e.i(27648),L=e.i(87884),D=e.i(6933);function T(e){return Date.parse(e?.lastMessageAt||"")||Date.parse(e?.createdAt||"")||0}function $(e,t=Date.now()){let a=Number(e);return Math.max(0,Math.floor(Number.isFinite(a)&&a>0?a:t))}function F(e,t,a=P()){if(e&&a)try{a.setItem(e,JSON.stringify(t))}catch{}}function U(e,t,a=Date.now(),n=Date.now()){if(!t)return{changed:!1,value:e};let s=$(a,n);return(e[t]||0)>=s?{changed:!1,value:e}:{changed:!0,value:{...e,[t]:s}}}function P(){return window.localStorage}let O=/^[a-zA-Z0-9_-]+$/,B={async publishFile(e,t){let a=new FormData;a.append("file",e,t);let n=await C.api.post("/api/publish",{body:a});if(!n.ok)throw Error((await n.json().catch(()=>({error:n.statusText}))).error||"Request failed");return n.json()},downloadFile:e=>C.api.post("/api/download",{json:{link:e}}).json(),checkDownload:e=>C.api.post("/api/download/check",{json:{link:e,timeout:1e4},timeout:12e3}).json(),getFileDownloadUrl:e=>(0,C.getApiUrl)(`/api/files/${e}/download`)};function q(){let e=window;return e.AudioContext||e.webkitAudioContext}async function V(e){let t=await (0,C.getApiErrorPayload)(e),a=e&&"object"==typeof e&&"name"in e?String(e.name):"";return(0,M.getDownloadCheckErrorMessageFromPayload)(t,a)}e.s(["default",0,function(){let e=(0,A.useAppStore)(e=>e.isDarkMode),d=(0,A.useAppStore)(e=>e.setIsDarkMode),H=(0,A.useAppStore)(e=>e.hasBackend),K=(0,A.useAppStore)(e=>e.addToast),W=(0,A.useAppStore)(e=>e.openConnectModal),_=(0,E.useUserStore)(e=>e.identity),G=(0,E.useUserStore)(e=>e.openLoginModal),[J,X]=(0,a.useState)([]),[Z,Q]=(0,a.useState)(null),[Y,ee]=(0,a.useState)(""),[et,ea]=(0,a.useState)(""),[en,es]=(0,a.useState)(""),[ei,er]=(0,z.useDisclosure)(!1),[el,ec]=(0,a.useState)(""),[eo,ed]=(0,a.useState)(!1),[eu,eh]=(0,a.useState)(!1),[em,ep]=(0,z.useDisclosure)(!1),[ef,ey]=(0,a.useState)(null),[ex,eg]=(0,a.useState)(null),[ev,ej]=(0,a.useState)(!1),[eb,ew]=(0,a.useState)(""),[ek,eN]=(0,a.useState)(!1),[eC,eM]=(0,a.useState)(null),[eS,eA]=(0,a.useState)(!1),[eE,ez]=(0,a.useState)({}),[eI,eR]=(0,a.useState)(null),[eL,eD]=(0,a.useState)([]),[eT,e$]=(0,a.useState)(!1),[eF,eU]=(0,a.useState)(!1),[eP,eO]=(0,a.useState)(!1),[eB,eq]=(0,a.useState)({}),eV=_?.identity==="user",eH=eV&&!eP?_.logo:"",eK=(0,a.useRef)(null),eW=(0,a.useRef)(null),e_=(0,a.useRef)(""),eG=(0,a.useRef)(null),eJ=(0,a.useRef)(!1),eX=(0,a.useRef)(0),eZ=(0,a.useRef)(new Map),eQ=(0,a.useRef)(new Set),eY=!0===H,e0=(0,a.useCallback)(async(e,t)=>{K(await (0,C.getApiErrorMessage)(e,t),"error")},[K]),e1=(0,a.useMemo)(()=>{let e;return(e=String(_?.address||"").trim().toLowerCase())?`mostbox.chat.lastReadAt:${e}`:""},[_?.address]),e2=(0,a.useCallback)((e,t=Date.now())=>{e&&eq(a=>{let n=U(a,e,t);return n.changed?(F(e1,n.value),n.value):a})},[e1]),e4=(0,a.useCallback)(()=>{if(eJ.current)return;let e=q();if(e)try{let t=eG.current||new e;eG.current=t,"suspended"===t.state&&t.resume().catch(()=>{}),eJ.current=!0}catch{}},[]),e6=(0,a.useCallback)(()=>{if(!eJ.current)return;let e=Date.now();if(e-eX.current<1200)return;eX.current=e;let t=q();if(t)try{let e=eG.current||new t;if(eG.current=e,"suspended"===e.state)return void e.resume().catch(()=>{});let a=e.createGain();a.gain.setValueAtTime(1e-4,e.currentTime),a.gain.exponentialRampToValueAtTime(.08,e.currentTime+.015),a.gain.exponentialRampToValueAtTime(1e-4,e.currentTime+.18),a.connect(e.destination),[740,980].forEach((t,n)=>{let s=e.createOscillator();s.type="sine",s.frequency.setValueAtTime(t,e.currentTime),s.connect(a),s.start(e.currentTime+.035*n),s.stop(e.currentTime+.16+.035*n)})}catch{}},[]),e8=(0,a.useCallback)(()=>({displayName:_?.displayName||_?.username||"",avatar:_?.avatar}),[_?.avatar,_?.displayName,_?.username]),e3=(0,a.useCallback)(async(e=Z?.name)=>{if(!e||!eY||!_)return void eD([]);e$(!0);try{eD(await L.channelApi.getChannelMembers(e))}catch(e){eD([]),await e0(e,"无法读取频道成员")}finally{e$(!1)}},[Z?.name,eY,e0,_]),e5=(0,a.useMemo)(()=>J.map(e=>e.name),[J]),{clearMessages:e9,messages:e7,sendMessage:te,syncMessages:tt}=(0,I.useChannelMessages)({isReady:eY,enabled:!!_,channelName:Z?.name||"",extraSubscribedChannelNames:e5,peerId:el,waitForPeerId:!0,onSyncError:e=>e0(e,"无法读取频道消息"),onSocketEvent:function(e,t){switch(e){case"channel:message":{let e=t?.channel,a=t?.message,n=Number(a?.timestamp)||Date.now();if(e){X(t=>t.map(t=>t.name===e?{...t,lastMessageAt:new Date(n).toISOString()}:t));let t=e===e_.current;eq(s=>{let i=function(e,{channelName:t,messageTime:a,activeChannelName:n="",messageAuthor:s="",userAddress:i="",now:r=Date.now()}){if(!t)return{changed:!1,notify:!1,value:e};let l=$(a,r),c=t===n,o=String(s||"").toLowerCase()===String(i||"").toLowerCase();if(c||o)return{...U(e,t,l,r),notify:!1};let d=e[t]||0;if(d<l)return{changed:!1,notify:!0,value:e};let u=Math.max(0,l-1);return d===u?{changed:!1,notify:!0,value:e}:{changed:!0,notify:!0,value:{...e,[t]:u}}}(s,{channelName:e,messageTime:n,activeChannelName:t?e:"",messageAuthor:a?.author,userAddress:_?.address});return i.changed&&F(e1,i.value),i.notify&&e6(),i.changed?i.value:s})}break}case"channel:peer:online":case"channel:peer:offline":Z&&L.channelApi.getChannelPeers(Z.name).catch(e=>{console.warn("[Chat] Failed to fetch peers on event:",e.message)});break;case"channel:joined":case"channel:left":ti(),e3();break;case"download:success":{let e=eZ.current.get(t.taskId);e&&(eZ.current.delete(t.taskId),eQ.current.delete(e.cid),ez(t=>({...t,[e.cid]:{status:"available"}})),K(`${t.fileName||(0,x.getAttachmentBaseFileName)(e.fileName)} 下载完成`,"success"),tr(e,t.fileName||e.fileName));break}case"download:error":case"download:cancelled":{let a=eZ.current.get(t.taskId);a&&(eZ.current.delete(t.taskId),eQ.current.delete(a.cid),ez(n=>({...n,[a.cid]:{status:"error",message:"download:cancelled"===e?"附件下载已取消":t.error||"附件下载失败"}})),K("download:cancelled"===e?"附件下载已取消":t.error||"附件下载失败","error"))}}},onReconnect:ti});function ta(){return!!eY||(W(),!1)}function tn(){return!!_||(G(),!1)}function ts(e){return e.length<3?"频道名至少 3 个字符":e.length>30?"频道名最多 30 个字符":O.test(e)?"":"频道名只能包含字母、数字、下划线和连字符"}async function ti(){if(eY)try{let e=await L.channelApi.getChannels({excludeType:"game"});X(e)}catch(e){X([]),await e0(e,"无法读取频道列表")}}function tr(e,t=e.fileName){let a=(0,D.getFileSubtype)(t);eM({cid:e.cid,fileName:t,subtype:"file"===a?e.kind:a})}async function tl(e){let t=(0,M.getDownloadLinkValidationMessage)(e.link);if(t)return ez(a=>({...a,[e.cid]:{status:"error",message:t}})),!1;try{ez(t=>({...t,[e.cid]:{status:"checking"}}));let t=await B.checkDownload(e.link);return ez(a=>({...a,[e.cid]:{status:"available",message:t.alreadyExists?"本机已有":"可预览"}})),!0}catch(a){let t=await V(a);return ez(a=>({...a,[e.cid]:{status:"error",message:t}})),!1}}async function tc(e){eR(null),await tl(e)&&await to(e)}async function to(e){if(!eQ.current.has(e.cid)){eQ.current.add(e.cid),ez(t=>({...t,[e.cid]:{status:"available"}}));try{let t=await B.downloadFile(e.link);if(t.alreadyExists||t.fileName){eQ.current.delete(e.cid),ez(t=>({...t,[e.cid]:{status:"available"}})),tr({...e,fileName:t.fileName||e.fileName},t.fileName||e.fileName);return}t.taskId&&(eZ.current.set(t.taskId,e),K("开始下载附件","success"))}catch(a){let t=await V(a);eQ.current.delete(e.cid),ez(a=>({...a,[e.cid]:{status:"error",message:t}}))}}}async function td(e){!tn()||ta()&&(e2(e.name,Math.max(T(e),Date.now())),Q(e),ee(e.name),window.history.pushState({},"",`?channel=${encodeURIComponent(e.name)}`))}async function tu(e,t){if((t&&t.stopPropagation(),tn()&&ta())&&!eu){eh(!0);try{if(await L.channelApi.leaveChannel(e),Z?.name===e){Q(null),ee(""),e9();let e=new URL(window.location.href);e.searchParams.delete("channel"),window.history.pushState({},"",e.pathname)}ti(),ep.close(),ey(null)}catch(e){await e0(e,"退出频道失败")}finally{eh(!1)}}}async function th(e){if(!tn()||!ta())return;let t=!e.pinned;try{let a=await L.channelApi.setChannelPinned(e.name,t);X(t=>t.map(t=>t.name===e.name?{...t,pinned:a.pinned}:t)),Q(t=>t&&t.name===e.name?{...t,pinned:a.pinned}:t)}catch(e){await e0(e,t?"置顶失败":"取消置顶失败")}}async function tm(e){let t=e.trim();if(!t||eo)return;let a=ts(t);if(a)return void K(a,"error");if(tn()&&ta()){ed(!0);try{let e=await L.channelApi.createChannel(t,"public",e8()),a=J.find(e=>e.name===t),n={...a,name:e.name||t,type:e.type||a?.type||"public",createdAt:e.createdAt||a?.createdAt,coreKey:e.coreKey||e.key||a?.coreKey,remark:a?.remark};X(e=>e.some(e=>e.name===t)?e.map(e=>e.name===t?{...e,...n}:e):[...e,n]),er.close(),await td(n),e3(t),ti()}catch(e){await e0(e,"加入频道失败")}finally{ed(!1)}}}async function tp(e,t){if(!e.trim()||!Z||!tn()||!ta())return!1;let a=e.trim();try{let e=await te({channelName:Z.name,content:a,author:_.address,authorName:_.displayName||_.username,avatar:_.avatar,attachment:t});return X(t=>t.map(t=>t.name===Z.name?{...t,lastMessageAt:new Date(Number(e?.timestamp)||Date.now()).toISOString()}:t)),e&&e2(Z.name,Number(e.timestamp)||Date.now()),e3(Z.name),!0}catch(e){return await e0(e,"发送失败"),!1}}async function tf(){if(!en.trim())return;let e=en.trim();es(""),await tp(e)}async function ty(e){if(e&&0!==e.length&&Z&&tn()&&ta()&&!eS){eA(!0);try{for(let n of Array.from(e)){var t,a;let e=(t=Z.name,a=n.name,`chat-file/${t}/${a}`),s=await B.publishFile(n,e),i=s.fileName||e,r=s.link||`most://${s.cid}?filename=${encodeURIComponent(i)}`,l={kind:n.type.startsWith("image/")?"image":n.type.startsWith("video/")?"video":n.type.startsWith("audio/")?"audio":n.type.startsWith("text/")?"text":(0,D.getFileSubtype)(i),cid:s.cid,fileName:i,link:r,mimeType:n.type||void 0,size:n.size};await tp(r,l)&&K(`${(0,x.getAttachmentBaseFileName)(i)} 已发布`,"success")}}catch(e){await e0(e,"附件发送失败")}finally{eA(!1)}}}async function tx(e){if(!tn()||!ta())return;let t=eE[e.cid];if(t?.status!=="checking"){if(t?.status==="error")return void eR(e);if(t?.status!=="available"){await tl(e)&&await to(e);return}await to(e)}}async function tg(e,t){if(!tn()||!ta())return;let a=await L.channelApi.setChannelRemark(e.name,t);return X(t=>t.map(t=>t.name===e.name?{...t,remark:a.remark}:t)),Q(t=>t&&t.name===e.name?{...t,remark:a.remark}:t),a.remark}async function tv(){if(Z)try{await tg(Z,eb)}catch(e){await e0(e,"设置备注失败")}}async function tj(e){if(ex&&!ek){eN(!0);try{await tg(ex,e),eg(null)}catch(e){await e0(e,"重命名失败")}finally{eN(!1)}}}function tb(e,t){let a=String(e||"").trim();return a?eF?/#[a-fA-F0-9]{4}$/.test(String(a||"").trim())?a:t?`${a}#${t.slice(-4).toUpperCase()}`:a:a.replace(/#[a-fA-F0-9]{4}$/,""):t?`${t.slice(0,6)}...${t.slice(-4)}`:"Unknown"}(0,a.useEffect)(()=>{let e=()=>{ee(new URLSearchParams(window.location.search).get("channel")||"")};return e(),window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]),(0,a.useEffect)(()=>{_&&ee(new URLSearchParams(window.location.search).get("channel")||"")},[_?.address]),(0,a.useEffect)(()=>{eO(!1)},[_?.logo]),(0,a.useEffect)(()=>{e_.current=Z?.name||""},[Z?.name]),(0,a.useEffect)(()=>{eq(function(e,t=P()){if(!e||!t)return{};try{let a=t.getItem(e);if(!a)return{};let n=JSON.parse(a);if(!n||"object"!=typeof n)return{};return Object.entries(n).reduce((e,[t,a])=>{let n=Number(a);return t&&Number.isFinite(n)&&n>=0&&(e[t]=n),e},{})}catch{return{}}}(e1))},[e1]),(0,a.useEffect)(()=>{e1&&0!==J.length&&eq(e=>{let t=function(e,t,a=Date.now()){let n=!1,s={...e};for(let e of t)e?.name&&void 0===s[e.name]&&(s[e.name]=$(T(e),a),n=!0);return{changed:n,value:n?s:e}}(e,J);return t.changed&&F(e1,t.value),t.changed?t.value:e})},[e1,J]),(0,a.useEffect)(()=>(window.addEventListener("pointerdown",e4,{passive:!0}),window.addEventListener("keydown",e4),()=>{window.removeEventListener("pointerdown",e4),window.removeEventListener("keydown",e4)}),[e4]),(0,a.useEffect)(()=>()=>{eG.current?.close().catch(()=>{}),eG.current=null,eJ.current=!1},[]),(0,a.useEffect)(()=>{eK.current?.scrollIntoView({behavior:"smooth"})},[e7]),(0,a.useEffect)(()=>{eY?C.api.get("/api/node-id").json().then(e=>ec(e.id)).catch(e=>{console.warn("[Chat] Failed to fetch node ID:",e.message),e0(e,"无法读取节点 ID")}):ec("")},[eY,e0]),(0,a.useEffect)(()=>{eY&&_&&ti()},[H,eY,_?.address]),(0,a.useEffect)(()=>{Z&&eY&&(tt(Z.name,{replace:!0}),L.channelApi.getChannelPeers(Z.name).catch(()=>{}),e3(Z.name))},[Z,H,eY,e3,tt]),(0,a.useEffect)(()=>{ev&&Z&&e3(Z.name)},[Z,e3,ev]),(0,a.useEffect)(()=>{if(Y&&J.length>0){let e=J.find(e=>e.name===Y);e&&(!Z||Z.name!==e.name)?td(e):e&&Z&&Z.name===e.name&&(Z.createdAt!==e.createdAt||Z.coreKey!==e.coreKey||Z.lastMessageAt!==e.lastMessageAt||Z.pinned!==e.pinned||Z.remark!==e.remark||Z.type!==e.type)&&Q(e)}},[J,Z,Y]),(0,a.useEffect)(()=>{_||(X([]),Q(null),ee(""),eg(null),e9(),es(""),ec(""),ej(!1),eM(null),eD([]),ez({}),eq({}),eQ.current.clear(),eZ.current.clear())},[e9,_?.address]);let tw=eV&&!!Y&&!Z,tk=Z?(0,t.jsx)("h2",{className:"header-title",children:Z.remark||Z.name}):(0,t.jsx)("h2",{className:"header-title",children:"聊天"}),tN=et.trim().toLowerCase(),tC=(0,a.useMemo)(()=>[...J].sort((e,t)=>{let a=Number(!!t.pinned)-Number(!!e.pinned);if(0!==a)return a;let n=T(t)-T(e);return 0!==n?n:(e.remark||e.name).localeCompare(t.remark||t.name,"zh-CN")}),[J]),tM=tN?tC.filter(e=>[e.remark||e.name,e.name].some(e=>e.toLowerCase().includes(tN))):tC;return(0,t.jsxs)(y.default,{className:"chat-app-layout",defaultHide:eV,sidebar:({closeSidebar:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"sidebar-header sidebar-header-link",onClick:()=>window.location.href="/",children:[(0,t.jsx)(c.ArrowLeft,{size:18}),(0,t.jsx)("h1",{children:"MOST PEOPLE"})]}),(0,t.jsx)("div",{className:"chat-channel-search",children:(0,t.jsxs)("div",{className:"ui-input-control",children:[(0,t.jsx)(f.Search,{className:"ui-input-icon",size:15}),(0,t.jsx)("input",{type:"search",className:"input input-compact",placeholder:"搜索频道",value:et,onChange:e=>ea(e.target.value),"aria-label":"搜索频道"})]})}),(0,t.jsx)("nav",{className:"sidebar-nav",children:0===J.length?(0,t.jsx)("div",{className:"sidebar-empty-state",children:(0,t.jsx)("p",{children:"暂无频道"})}):0===tM.length?(0,t.jsx)("div",{className:"sidebar-empty-state",children:(0,t.jsx)("p",{children:"未找到频道"})}):tM.map(a=>(0,t.jsx)(g.ChatChannelNavItem,{active:Z?.name===a.name,pinned:!!a.pinned,unread:T(a)>(eB[a?.name]||0),title:a.remark||a.name,onSelect:()=>{td(a),e()},onTogglePin:()=>void th(a),onRename:()=>eg(a),onLeave:()=>{ey(a),ep.open()}},a.name))}),(0,t.jsxs)("button",{className:"ui-action-dashed create-channel-btn",onClick:()=>{tn()&&ta()&&er.open()},children:[(0,t.jsx)(s.Plus,{size:16}),"加入频道"]}),(0,t.jsx)(R.default,{})]}),headerTitle:tk,sidebarToggleReplacement:eV?(0,t.jsx)("span",{className:"sidebar-toggle-static-logo","aria-hidden":"true",children:eH?(0,t.jsx)("img",{className:"sidebar-toggle-static-logo-img",src:eH,alt:"",onError:()=>eO(!0)}):(0,t.jsx)(N.LogoIcon,{size:18})}):void 0,headerRight:(0,t.jsxs)("div",{className:"header-right-actions",children:[(0,t.jsx)("button",{className:"btn btn-icon",onClick:()=>d(!e),title:"切换主题",children:e?(0,t.jsx)(i.Sun,{size:16}):(0,t.jsx)(r.Moon,{size:16})}),Z&&(0,t.jsx)("button",{className:"btn btn-icon",onClick:()=>ej(!0),title:"频道设置",children:(0,t.jsx)(m,{size:16})})]}),children:[Z?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"chat-messages",children:[0===e7.length?(0,t.jsxs)("div",{className:"ui-empty-state chat-messages-empty",children:[(0,t.jsx)("div",{className:"ui-empty-icon empty-icon",children:(0,t.jsx)(n.MessageSquare,{size:28})}),(0,t.jsx)("p",{children:"暂无消息,开始聊天吧!"})]}):e7.map(e=>{let a=e.author===_?.address;return(0,t.jsx)(g.ChatMessageItem,{variant:a?"self":"other",pending:e.pending,avatarSrc:(0,S.generateAvatar)(e.author,a?_.avatar:void 0),author:tb(e.authorName,e.author),time:new Date(e.timestamp).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"}),children:function(e){if(!e.attachment)return(0,t.jsx)(g.ChatTextBubble,{children:e.content});let a=e.attachment,n=eE[a.cid],s=n?.status;return(0,t.jsx)(g.ChatAttachmentBubble,{children:(0,t.jsx)(x.ChatAttachmentCard,{attachment:a,status:s,pending:e.pending,onOpen:tx})})}(e)},e.id||`${e.author}-${e.timestamp}`)}),(0,t.jsx)("div",{ref:eK})]}),(0,t.jsx)(g.ChatComposer,{message:en,placeholder:_?"输入消息...":"请先登录后发言",disabled:!_,isPublishingAttachment:eS,attachmentInputRef:eW,onMessageChange:es,onSend:tf,onSelectAttachmentFiles:e=>{ty(e)}})]}):tw?(0,t.jsxs)("div",{className:"ui-empty-state chat-welcome",children:[(0,t.jsx)("div",{className:"ui-empty-icon ui-empty-icon-lg welcome-icon",children:(0,t.jsx)(p.Loader,{size:36,className:"ui-spinner"})}),(0,t.jsx)("h2",{className:"ui-empty-title",children:"正在打开频道"}),(0,t.jsx)("p",{className:"ui-empty-desc",children:"正在恢复聊天内容..."})]}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{className:"ui-empty-state chat-welcome",children:[(0,t.jsx)("div",{className:"ui-empty-icon ui-empty-icon-lg welcome-icon",children:(0,t.jsx)(n.MessageSquare,{size:36})}),(0,t.jsx)("h2",{className:"ui-empty-title",children:"选择频道"}),(0,t.jsx)("p",{className:"ui-empty-desc",children:"从左侧边栏选择一个频道开始聊天,或创建一个新频道"}),(0,t.jsx)(k.default,{label:"打开频道列表"})]})}),ei&&(0,t.jsx)(j.InputModal,{title:"加入频道",placeholder:"频道ID:3-20 位字母、数字、_ 或 -",confirmText:"加入",validate:ts,onConfirm:tm,onClose:()=>er.close(),isLoading:eo,loadingText:"加入中..."}),ex&&(0,t.jsx)(j.InputModal,{title:"重命名频道",placeholder:"输入备注名称",defaultValue:ex.remark||"",confirmText:"保存",onConfirm:tj,onClose:()=>{ek||eg(null)},isLoading:ek,loadingText:"保存中...",allowEmpty:!0,validate:e=>e.length>50?"备注名称最多 50 个字符":""}),em&&ef&&(0,t.jsx)(b.ConfirmModal,{title:"退出频道",message:`确定要退出频道 "${ef.name}" 吗?`,confirmText:eu?"退出中...":"退出",onConfirm:()=>tu(ef.name,void 0),danger:!0,onClose:()=>{ep.close(),ey(null)}}),eI&&(0,t.jsx)(w.ModalOverlay,{onClose:()=>eR(null),children:(0,t.jsxs)("div",{className:"confirm-modal",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"modal-header",children:[(0,t.jsx)("h3",{children:"暂时没有在线种子"}),(0,t.jsx)("button",{type:"button",className:"btn btn-icon",onClick:()=>eR(null),"aria-label":"关闭",children:(0,t.jsx)(l.X,{size:18})})]}),(0,t.jsx)("p",{children:eE[eI.cid]?.message||"暂时没有发现在线种子。请确认分享者或其他下载者仍在线做种。"}),(0,t.jsxs)("div",{className:"modal-actions",children:[(0,t.jsx)("button",{type:"button",className:"btn btn-secondary",onClick:()=>eR(null),children:"取消"}),(0,t.jsx)("button",{type:"button",className:"btn btn-primary",onClick:()=>tc(eI),disabled:eE[eI.cid]?.status==="checking",children:eE[eI.cid]?.status==="checking"?"检测中...":"再次检测"})]})]})}),eC&&(0,t.jsx)(v.default,{item:eC,isBackendReady:eY,getFileDownloadUrl:B.getFileDownloadUrl,onClose:()=>eM(null)}),ev&&Z&&(0,t.jsx)("div",{className:"channel-detail-overlay",onClick:()=>ej(!1),children:(0,t.jsxs)("div",{className:"channel-detail-drawer",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"channel-detail-header",children:[(0,t.jsx)("h3",{children:"频道详情"}),(0,t.jsx)("button",{className:"btn btn-icon",onClick:()=>ej(!1),children:(0,t.jsx)(l.X,{size:18})})]}),(0,t.jsxs)("div",{className:"channel-detail-body",children:[(0,t.jsxs)("div",{className:"channel-detail-section channel-members-section",children:[(0,t.jsx)("div",{className:"channel-detail-label",children:(0,t.jsxs)("span",{children:["群成员 (",eL.length,")"]})}),(0,t.jsx)(g.ChannelMemberGrid,{isLoading:eT,members:eL.map(e=>({id:e.address,name:tb(e.displayName,e.address),avatarSrc:(0,S.generateAvatar)(e.address,e.avatar)}))})]}),!eV&&(0,t.jsx)("div",{className:"channel-detail-section",children:(0,t.jsxs)("label",{className:"setting-switch",children:[(0,t.jsx)("span",{children:"显示 #地址后四位"}),(0,t.jsx)("input",{type:"checkbox",checked:eF,onChange:e=>eU(e.target.checked)})]})}),!eV&&(0,t.jsxs)("div",{className:"channel-detail-section",children:[(0,t.jsxs)("div",{className:"channel-detail-label",children:[(0,t.jsx)(h,{size:14}),(0,t.jsx)("span",{children:"频道 ID"})]}),(0,t.jsx)("div",{className:"ui-meta-box channel-detail-value channel-detail-mono",children:Z.name})]}),(0,t.jsxs)("div",{className:"channel-detail-section",children:[(0,t.jsxs)("div",{className:"channel-detail-label",children:[(0,t.jsx)(o.Edit2,{size:14}),(0,t.jsx)("span",{children:"备注名称"})]}),(0,t.jsx)("input",{type:"text",className:"input input-compact",placeholder:"输入备注名称",value:eb,onChange:e=>ew(e.target.value),onFocus:()=>ew(Z.remark||""),onBlur:()=>tv(),onKeyDown:e=>{"Enter"===e.key&&e.currentTarget.blur()},maxLength:50})]}),(0,t.jsxs)("div",{className:"channel-detail-section",children:[(0,t.jsxs)("div",{className:"channel-detail-label",children:[(0,t.jsx)(u,{size:14}),(0,t.jsx)("span",{children:"创建时间"})]}),(0,t.jsx)("div",{className:"ui-meta-box channel-detail-value",children:Z.createdAt?new Date(Z.createdAt).toLocaleDateString("zh-CN"):"-"})]})]}),!eV&&(0,t.jsx)("div",{className:"channel-detail-footer",children:(0,t.jsx)("button",{className:"btn btn-secondary btn-block",onClick:()=>{ej(!1),ey(Z),ep.open()},children:"退出频道"})})]})})]})}],41222)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89664,e=>{"use strict";let t=(0,e.i(56420).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],89664)},11241,e=>{"use strict";let t=(0,e.i(56420).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],11241)},96699,e=>{"use strict";let t=(0,e.i(56420).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);e.s(["Moon",0,t],96699)},35965,e=>{"use strict";let t=(0,e.i(56420).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);e.s(["Sun",0,t],35965)},59665,5142,e=>{"use strict";var t=e.i(18050),r=e.i(71645);let n=(0,e.i(56420).default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);function a(e=!1,t={}){let[n,s]=(0,r.useState)(e),i=(0,r.useCallback)(()=>{s(e=>e||(t.onOpen?.(),!0))},[t.onOpen]),u=(0,r.useCallback)(()=>{s(e=>e?(t.onClose?.(),!1):e)},[t.onClose]);return[n,{open:i,close:u,toggle:(0,r.useCallback)(()=>{n?u():i()},[u,i,n]),set:s}]}e.s(["useDisclosure",0,a],5142);let s=(0,r.createContext)(null);e.s(["default",0,function({sidebar:e,className:i="",headerTitle:u,headerRight:c,sidebarToggleReplacement:l,defaultHide:o=!1,children:d}){let[h,f]=a(!1),[y,p]=(0,r.useState)(o),m=(0,r.useRef)(o),v=function(e,{getInitialValueInEffect:t}={getInitialValueInEffect:!0}){let[n,a]=(0,r.useState)(t?void 0:!!("u">typeof window&&"matchMedia"in window)&&window.matchMedia(e).matches);return(0,r.useEffect)(()=>{try{if("matchMedia"in window){let t=window.matchMedia(e);a(t.matches);let r=e=>a(e.matches);return t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}}}catch(e){return}},[e]),n||!1}("(max-width: 768px)"),k=(0,r.useCallback)((e={})=>{f.close(),e.collapse&&p(!0)},[f]);(0,r.useEffect)(()=>{o!==m.current&&(o?k({collapse:!0}):p(!1),m.current=o)},[o,k]);let $=()=>{v?f.open():p(!1)};return(0,t.jsx)(s.Provider,{value:{closeSidebar:k,openSidebar:$,isSidebarVisible:v?h:!y},children:(0,t.jsxs)("div",{className:["app-layout",i].filter(Boolean).join(" "),children:[(0,t.jsx)("div",{className:`sidebar-overlay ${h?"visible":""}`,onClick:()=>k()}),(0,t.jsx)("div",{className:`sidebar ${h?"open":""} ${y?"collapsed":""}`,children:e({closeSidebar:k,openSidebar:$})}),(0,t.jsxs)("div",{className:"main-content",children:[(0,t.jsxs)("header",{className:"app-header",children:[(0,t.jsxs)("div",{className:"header-left",children:[l??(0,t.jsx)("button",{onClick:()=>{v?f.toggle():p(!y)},className:"btn btn-icon sidebar-toggle-btn","aria-label":v?"打开菜单":y?"展开侧边栏":"收起侧边栏",children:(0,t.jsx)(n,{size:16})}),u]}),(0,t.jsx)("div",{className:"header-right",children:c})]}),d]})]})})},"useAppShell",0,function(){let e=(0,r.useContext)(s);if(!e)throw Error("useAppShell must be used within AppShell");return e}],59665)},8734,e=>{"use strict";let t=(0,e.i(56420).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],8734)},58925,e=>{"use strict";let t=(0,e.i(56420).default)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);e.s(["KeyRound",0,t],58925)},70904,82022,e=>{"use strict";var t=e.i(56420);let r=(0,t.default)("wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);e.s(["Wallet",0,r],70904);let n=(0,t.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",0,n],82022)},62368,e=>{"use strict";let t=(0,e.i(56420).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",0,t],62368)},53138,e=>{"use strict";let t=(0,e.i(56420).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",0,t],53138)},25981,e=>{"use strict";let t=(0,e.i(56420).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);e.s(["Upload",0,t],25981)},16327,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],16327)},6537,77816,e=>{"use strict";let t=(0,e.i(56420).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);e.s(["Lock",0,t],6537);var r=e.i(22315);function n(e){let t;if(!e)return"";let n=(0,r.default)(Number(e)),a=n.hour();return t=a>=0&&a<3?"凌晨":a>=3&&a<6?"拂晓":a>=6&&a<9?"早晨":a>=9&&a<12?"上午":a>=12&&a<15?"下午":a>=15&&a<18?"傍晚":a>=18&&a<21?"晚上":"深夜",n.format(`YYYY年M月D日 ${t}h:m`)}e.s(["formatDate",0,n,"formatTime",0,n],77816)},23165,24851,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(89664),a=e.i(8734);e.s(["CopyButton",0,function({text:e,label:s,copiedLabel:i="已复制",className:u="btn btn-icon",iconSize:c=14}){let[l,o]=(0,r.useState)(!1);async function d(){try{await navigator.clipboard.writeText(e),o(!0),setTimeout(()=>o(!1),1500)}catch{}}return(0,t.jsxs)("button",{type:"button",className:u,onClick:d,title:l?i:s||"复制",children:[l?(0,t.jsx)(n.Check,{size:c}):(0,t.jsx)(a.Copy,{size:c}),s?l?i:s:null]})}],23165),e.s(["EmptyState",0,function({icon:e,message:r,className:n="empty-state glass"}){return(0,t.jsxs)("div",{className:n,children:[(0,t.jsx)("div",{className:"empty-state-icon",children:e}),(0,t.jsx)("p",{children:r})]})}],24851)},16546,e=>{"use strict";var t=e.i(18050),r=e.i(62368),n=e.i(23165);e.s(["PemBlock",0,function({label:e,pem:a,filename:s}){return(0,t.jsxs)("div",{className:"web3-pem-block",children:[(0,t.jsxs)("div",{className:"web3-pem-header",children:[(0,t.jsx)("span",{className:"web3-pem-label",children:e}),(0,t.jsxs)("div",{className:"web3-pem-actions",children:[(0,t.jsx)(n.CopyButton,{text:a,label:"复制",className:"btn btn-sm",iconSize:14}),(0,t.jsxs)("button",{type:"button",className:"btn btn-sm btn-primary",onClick:function(){let e=new Blob([a],{type:"text/plain"}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=s,r.click(),URL.revokeObjectURL(t)},title:"下载",children:[(0,t.jsx)(r.Download,{size:14}),"下载"]})]})]}),(0,t.jsx)("textarea",{className:"textarea mono",value:a,readOnly:!0,rows:6})]})}])},16306,e=>{"use strict";let t=(0,e.i(56420).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["ShieldAlert",0,t],16306)},64830,e=>{"use strict";var t=e.i(18050);e.s(["KeyCard",0,function({title:e,icon:r,children:n,accent:a=!1}){return(0,t.jsxs)("div",{className:`web3-key-card ${a?"accent":""}`,children:[(0,t.jsxs)("div",{className:"web3-key-card-header",children:[(0,t.jsx)("span",{className:"web3-key-card-icon",children:r}),(0,t.jsx)("span",{className:"web3-key-card-title",children:e})]}),(0,t.jsx)("div",{className:"web3-key-card-body",children:n})]})}])},22315,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",a="week",s="month",i="quarter",u="year",c="date",l="Invalid Date",o=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},f="en",y={};y[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var p="$isDayjsObject",m=function(e){return e instanceof b||!(!e||!e[p])},v=function e(t,r,n){var a;if(!t)return f;if("string"==typeof t){var s=t.toLowerCase();y[s]&&(a=s),r&&(y[s]=r,a=s);var i=t.split("-");if(!a&&i.length>1)return e(i[0])}else{var u=t.name;y[u]=t,a=u}return!n&&a&&(f=a),a||!n&&f},k=function(e,t){if(m(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new b(r)},$={s:h,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+h(Math.floor(r/60),2,"0")+":"+h(r%60,2,"0")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),a=t.clone().add(n,s),i=r-a<0,u=t.clone().add(n+(i?-1:1),s);return+(-(n+(r-a)/(i?a-u:u-a))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(l){return({M:s,y:u,w:a,d:"day",D:c,h:n,m:r,s:t,ms:e,Q:i})[l]||String(l||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};$.l=v,$.i=m,$.w=function(e,t){return k(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var b=function(){function h(e){this.$L=v(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[p]=!0}var f=h.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if($.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(o);if(n){var a=n[2]-1||0,s=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],a,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)):new Date(n[1],a,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)}}return new Date(t)}(e),this.init()},f.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},f.$utils=function(){return $},f.isValid=function(){return this.$d.toString()!==l},f.isSame=function(e,t){var r=k(e);return this.startOf(t)<=r&&r<=this.endOf(t)},f.isAfter=function(e,t){return k(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<k(e)},f.$g=function(e,t,r){return $.u(e)?this[t]:this.set(r,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,i){var l=this,o=!!$.u(i)||i,d=$.p(e),h=function(e,t){var r=$.w(l.$u?Date.UTC(l.$y,t,e):new Date(l.$y,t,e),l);return o?r:r.endOf("day")},f=function(e,t){return $.w(l.toDate()[e].apply(l.toDate("s"),(o?[0,0,0,0]:[23,59,59,999]).slice(t)),l)},y=this.$W,p=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(d){case u:return o?h(1,0):h(31,11);case s:return o?h(1,p):h(0,p+1);case a:var k=this.$locale().weekStart||0,b=(y<k?y+7:y)-k;return h(o?m-b:m+(6-b),p);case"day":case c:return f(v+"Hours",0);case n:return f(v+"Minutes",1);case r:return f(v+"Seconds",2);case t:return f(v+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(a,i){var l,o=$.p(a),d="set"+(this.$u?"UTC":""),h=((l={}).day=d+"Date",l[c]=d+"Date",l[s]=d+"Month",l[u]=d+"FullYear",l[n]=d+"Hours",l[r]=d+"Minutes",l[t]=d+"Seconds",l[e]=d+"Milliseconds",l)[o],f="day"===o?this.$D+(i-this.$W):i;if(o===s||o===u){var y=this.clone().set(c,1);y.$d[h](f),y.init(),this.$d=y.set(c,Math.min(this.$D,y.daysInMonth())).$d}else h&&this.$d[h](f);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[$.p(e)]()},f.add=function(e,i){var c,l=this;e=Number(e);var o=$.p(i),d=function(t){var r=k(l);return $.w(r.date(r.date()+Math.round(t*e)),l)};if(o===s)return this.set(s,this.$M+e);if(o===u)return this.set(u,this.$y+e);if("day"===o)return d(1);if(o===a)return d(7);var h=((c={})[r]=6e4,c[n]=36e5,c[t]=1e3,c)[o]||1,f=this.$d.getTime()+e*h;return $.w(f,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return r.invalidDate||l;var n=e||"YYYY-MM-DDTHH:mm:ssZ",a=$.z(this),s=this.$H,i=this.$m,u=this.$M,c=r.weekdays,o=r.months,h=r.meridiem,f=function(e,r,a,s){return e&&(e[r]||e(t,n))||a[r].slice(0,s)},y=function(e){return $.s(s%12||12,e,"0")},p=h||function(e,t,r){var n=e<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(d,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return $.s(t.$y,4,"0");case"M":return u+1;case"MM":return $.s(u+1,2,"0");case"MMM":return f(r.monthsShort,u,o,3);case"MMMM":return f(o,u);case"D":return t.$D;case"DD":return $.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return f(r.weekdaysMin,t.$W,c,2);case"ddd":return f(r.weekdaysShort,t.$W,c,3);case"dddd":return c[t.$W];case"H":return String(s);case"HH":return $.s(s,2,"0");case"h":return y(1);case"hh":return y(2);case"a":return p(s,i,!0);case"A":return p(s,i,!1);case"m":return String(i);case"mm":return $.s(i,2,"0");case"s":return String(t.$s);case"ss":return $.s(t.$s,2,"0");case"SSS":return $.s(t.$ms,3,"0");case"Z":return a}return null}(e)||a.replace(":","")})},f.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},f.diff=function(e,c,l){var o,d=this,h=$.p(c),f=k(e),y=(f.utcOffset()-this.utcOffset())*6e4,p=this-f,m=function(){return $.m(d,f)};switch(h){case u:o=m()/12;break;case s:o=m();break;case i:o=m()/3;break;case a:o=(p-y)/6048e5;break;case"day":o=(p-y)/864e5;break;case n:o=p/36e5;break;case r:o=p/6e4;break;case t:o=p/1e3;break;default:o=p}return l?o:$.a(o)},f.daysInMonth=function(){return this.endOf(s).$D},f.$locale=function(){return y[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var r=this.clone(),n=v(e,t,!0);return n&&(r.$L=n),r},f.clone=function(){return $.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},h}(),M=b.prototype;return k.prototype=M,[["$ms",e],["$s",t],["$m",r],["$H",n],["$W","day"],["$M",s],["$y",u],["$D",c]].forEach(function(e){M[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),k.extend=function(e,t){return e.$i||(e(t,b,k),e.$i=!0),k},k.locale=v,k.isDayjs=m,k.unix=function(e){return k(1e3*e)},k.en=y[f],k.Ls=y,k.p={},k}()},9584,e=>{"use strict";let t=(0,e.i(56420).default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);e.s(["Database",0,t],9584)}]);
@@ -0,0 +1 @@
1
+ [data-theme=dark]{--chat-bg-secondary:#1c1c1e99;--chat-bg-tertiary:#2c2c2e66;--chat-border:#ffffff14}.chat-messages{background:0 0;flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.chat-messages-empty{flex:1}.chat-messages-empty p{font-size:14px}.chat-message{align-items:flex-start;gap:10px;max-width:70%;animation:.25s fadeIn;display:flex}.chat-message.self{flex-direction:row-reverse;align-self:flex-end}.chat-message.self .msg-content{align-items:flex-end}.chat-message.self .message-bubble{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 75%, var(--info)));color:#fff;border:1px solid #ffffff1a;border-radius:18px 4px 18px 18px;box-shadow:0 4px 16px #5e6ad240}.chat-message.self .message-author{color:var(--accent)}.chat-message.self .message-time{color:var(--text-muted)}.chat-message.other{align-self:flex-start}.chat-message.other .msg-content{align-items:flex-start}.chat-message.other .message-bubble{background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow), var(--glass-shadow-inset);border-radius:4px 18px 18px}.chat-message .msg-avatar{flex-shrink:0}.chat-message .msg-content{flex-direction:column;gap:4px;max-width:100%;display:flex}.chat-message .message-author{color:var(--text-muted);font-size:11px;font-weight:500}.chat-message .message-bubble{word-break:break-word;padding:10px 14px;font-size:14px;line-height:1.5}.chat-message .message-bubble.has-attachment{box-shadow:none;color:var(--text-primary);background:0 0;border:none;padding:0}.chat-message .message-time{color:var(--text-muted);opacity:.7;font-size:10px}.chat-message.pending .message-bubble{opacity:.6}.chat-input-area{border-top:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-xl);gap:12px;padding:16px 24px;display:flex}.chat-input-area .chat-file-input{display:none}.chat-input-area .chat-tool-btn{color:var(--text-secondary);flex-shrink:0}.chat-input-area .chat-tool-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent);transform:scale(1.05)}.chat-input-area .input-pill{flex:1;min-width:0}.chat-input-area .send-btn{flex-shrink:0}.chat-input-area .send-btn:hover:not(:disabled){transform:scale(1.05)}.chat-welcome{background:0 0;flex:1;padding:40px}.chat-welcome .welcome-icon{margin-bottom:20px}.chat-welcome h2{margin-bottom:8px}.chat-channel-search{padding:10px 8px 0}.create-channel-btn{margin:8px}.chat-app-layout .sidebar-nav{flex-direction:column;gap:4px;padding:10px 8px;display:flex}.chat-app-layout .sidebar-nav-btn{border-radius:var(--radius-sm);min-height:48px;color:var(--text-secondary);transition:background-color var(--transition-fast), color var(--transition-fast);margin:0;padding:0 12px}.chat-app-layout .sidebar-nav-btn:hover{background:var(--glass-bg-subtle);color:var(--text-primary)}.chat-app-layout .sidebar-nav-btn.active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.chat-app-layout .sidebar-nav-btn.unread:not(.active){color:var(--text-primary)}.chat-app-layout .sidebar-nav-btn.pinned:not(.active){background:color-mix(in srgb, var(--accent) 4%, transparent);color:var(--text-primary)}.chat-app-layout .sidebar-nav-btn.pinned:hover:not(.active){background:color-mix(in srgb, var(--accent) 8%, transparent)}.chat-channel-icon-wrap{flex:0 0 16px;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex;position:relative}.chat-channel-title{flex:1;min-width:0}.chat-channel-title-text{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}.chat-channel-unread-dot{background:#ff3b30;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-3px;box-shadow:0 0 0 2px #ff3b3029}.channel-actions-anchor{flex:0 0 28px;margin-left:auto}.leave-channel-btn.channel-actions-trigger{opacity:0;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);width:28px;height:28px;transition:background-color var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.sidebar-nav-btn:hover .leave-channel-btn.channel-actions-trigger,.channel-actions-anchor:focus-within .leave-channel-btn.channel-actions-trigger,.leave-channel-btn.channel-actions-trigger[aria-expanded=true]{opacity:1}.leave-channel-btn.channel-actions-trigger:hover{color:var(--text-primary);background:var(--glass-bg-subtle)}.chat-sidebar-overlay{display:none}@media (max-width:768px){.chat-sidebar{z-index:50;transition:left var(--transition);position:fixed;top:0;bottom:0;left:-240px}.chat-sidebar.open{left:0}.chat-sidebar-overlay{z-index:40;opacity:0;pointer-events:none;transition:opacity var(--transition);background:#0006;display:block;position:fixed;inset:0}.chat-sidebar-overlay.visible{opacity:1;pointer-events:auto}.chat-messages{padding:16px}.chat-message{max-width:85%}.chat-input-area{padding:12px 16px}.sidebar-nav-btn .leave-channel-btn.channel-actions-trigger{opacity:1}}.channel-detail-overlay{z-index:100;background:#0000004d;justify-content:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.channel-detail-drawer{background:var(--glass-bg-heavy);width:320px;max-width:90vw;height:100%;-webkit-backdrop-filter:var(--blur-2xl);border-left:1px solid var(--glass-border);flex-direction:column;animation:.25s slideInRight;display:flex}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.channel-detail-header{border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;padding:20px;display:flex}.channel-detail-header h3{margin:0;font-size:16px;font-weight:600}.channel-detail-body{flex-direction:column;flex:1;gap:20px;padding:20px;display:flex;overflow-y:auto}.channel-detail-section{flex-direction:column;gap:8px;display:flex}.channel-detail-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.channel-members-section{gap:12px}.channel-members-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px;display:grid}.channel-member{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.channel-member-avatar{border-radius:var(--radius-md);object-fit:cover;background:var(--glass-bg-subtle);border:1px solid var(--glass-border);width:48px;height:48px}.channel-member-name{width:100%;min-width:0;color:var(--text-secondary);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3;overflow:hidden}.channel-detail-mono{font-family:var(--font-mono);word-break:break-all;font-size:13px}.channel-detail-footer{border-top:1px solid var(--glass-border);padding:20px}.header-right-actions{align-items:center;gap:4px;display:flex}.chat-join-container{flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:24px;display:flex;overflow-y:auto}.chat-join-panel{flex-direction:column;gap:16px;width:100%;max-width:560px;display:flex}.chat-join-helper{border-radius:var(--radius-lg);background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);flex-direction:column;gap:14px;padding:24px;display:flex}.chat-join-helper-title{color:var(--accent);align-items:center;gap:8px;display:flex}.chat-join-helper-title h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.chat-join-spec{border-radius:var(--radius-lg);background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);flex-direction:column;gap:14px;padding:24px;display:flex}.chat-join-field-list{flex-direction:column;gap:10px;display:flex}.chat-join-field{border-radius:var(--radius-md);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);flex-direction:column;gap:6px;padding:12px;display:flex}.chat-join-field p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.chat-join-field-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.chat-join-field-name{color:var(--text-primary);font-family:var(--font-mono);overflow-wrap:anywhere;font-size:13px}.chat-join-loading,.chat-join-error,.chat-join-success{border-radius:var(--radius-lg);background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);text-align:center;flex-direction:column;align-items:center;gap:16px;width:100%;padding:48px;display:flex}:is(.chat-join-loading,.chat-join-error,.chat-join-success) p{color:var(--text-secondary);margin:0;font-size:16px}.chat-join-loading{color:var(--accent)}.chat-join-error{color:var(--danger)}.chat-join-success{color:var(--success)}.chat-join-status{color:var(--text-muted);font-size:13px}.chat-join-result{border-radius:var(--radius-md);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);font-family:var(--font-mono);color:var(--text-primary);white-space:pre-wrap;word-break:break-all;text-align:left;width:100%;max-height:240px;margin-top:16px;padding:16px;font-size:13px;overflow-y:auto}
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95057,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s={formatUrl:function(){return r},formatWithValidation:function(){return o},urlObjectKeys:function(){return c}};for(var i in s)Object.defineProperty(a,i,{enumerable:!0,get:s[i]});let n=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function r(e){let{auth:t,hostname:a}=e,s=e.protocol||"",i=e.pathname||"",r=e.hash||"",c=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:a&&(o=t+(~a.indexOf(":")?`[${a}]`:a),e.port&&(o+=":"+e.port)),c&&"object"==typeof c&&(c=String(n.urlQueryToSearchParams(c)));let d=e.search||c&&`?${c}`||"";return s&&!s.endsWith(":")&&(s+=":"),e.slashes||(!s||l.test(s))&&!1!==o?(o="//"+(o||""),i&&"/"!==i[0]&&(i="/"+i)):o||(o=""),r&&"#"!==r[0]&&(r="#"+r),d&&"?"!==d[0]&&(d="?"+d),i=i.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${s}${o}${i}${d}${r}`}let c=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function o(e){return r(e)}},18581,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"useMergedRef",{enumerable:!0,get:function(){return i}});let s=e.r(71645);function i(e,t){let a=(0,s.useRef)(null),i=(0,s.useRef)(null);return(0,s.useCallback)(s=>{if(null===s){let e=a.current;e&&(a.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(a.current=n(e,s)),t&&(i.current=n(t,s))},[e,t])}function n(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let a=e(t);return"function"==typeof a?a:()=>e(null)}}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},73668,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"isLocalURL",{enumerable:!0,get:function(){return n}});let s=e.r(18967),i=e.r(52817);function n(e){if(!(0,s.isAbsoluteUrl)(e))return!0;try{let t=(0,s.getLocationOrigin)(),a=new URL(e,t);return a.origin===t&&(0,i.hasBasePath)(a.pathname)}catch(e){return!1}}},84508,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"errorOnce",{enumerable:!0,get:function(){return s}});let s=e=>{}},22016,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s={default:function(){return f},useLinkStatus:function(){return y}};for(var i in s)Object.defineProperty(a,i,{enumerable:!0,get:s[i]});let n=e.r(90809),l=e.r(18050),r=n._(e.r(71645)),c=e.r(95057),o=e.r(8372),d=e.r(18581),h=e.r(18967),m=e.r(5550);e.r(33525);let u=e.r(88540),p=e.r(91949),x=e.r(73668),j=e.r(9396);function f(t){var a,s;let i,n,f,[y,v]=(0,r.useOptimistic)(p.IDLE_LINK_STATUS),g=(0,r.useRef)(null),{href:N,as:k,children:C,prefetch:M=null,passHref:w,replace:z,shallow:S,scroll:P,onClick:L,onMouseEnter:A,onTouchStart:T,legacyBehavior:F=!1,onNavigate:O,transitionTypes:I,ref:B,unstable_dynamicOnHover:E,...D}=t;i=C,F&&("string"==typeof i||"number"==typeof i)&&(i=(0,l.jsx)("a",{children:i}));let $=r.default.useContext(o.AppRouterContext),_=!1!==M,R=!1!==M?null===(s=M)||"auto"===s?j.FetchStrategy.PPR:j.FetchStrategy.Full:j.FetchStrategy.PPR,U="string"==typeof(a=k||N)?a:(0,c.formatUrl)(a);if(F){if(i?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=r.default.Children.only(i)}let q=F?n&&"object"==typeof n&&n.ref:B,H=r.default.useCallback(e=>(null!==$&&(g.current=(0,p.mountLinkInstance)(e,U,$,R,_,v)),()=>{g.current&&((0,p.unmountLinkForCurrentNavigation)(g.current),g.current=null),(0,p.unmountPrefetchableInstance)(e)}),[_,U,$,R,v]),K={ref:(0,d.useMergedRef)(H,q),onClick(t){F||"function"!=typeof L||L(t),F&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!$||t.defaultPrevented||function(t,a,s,i,n,l,c){if("u">typeof window){let o,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((o=t.currentTarget.getAttribute("target"))&&"_self"!==o||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,x.isLocalURL)(a)){i&&(t.preventDefault(),location.replace(a));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:h}=e.r(99781);r.default.startTransition(()=>{h(a,i?"replace":"push",!1===n?u.ScrollBehavior.NoScroll:u.ScrollBehavior.Default,s.current,c)})}}(t,U,g,z,P,O,I)},onMouseEnter(e){F||"function"!=typeof A||A(e),F&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),$&&_&&(0,p.onNavigationIntent)(e.currentTarget,!0===E)},onTouchStart:function(e){F||"function"!=typeof T||T(e),F&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),$&&_&&(0,p.onNavigationIntent)(e.currentTarget,!0===E)}};return(0,h.isAbsoluteUrl)(U)?K.href=U:F&&!w&&("a"!==n.type||"href"in n.props)||(K.href=(0,m.addBasePath)(U)),f=F?r.default.cloneElement(n,K):(0,l.jsx)("a",{...D,...K,children:i}),(0,l.jsx)(b.Provider,{value:y,children:f})}e.r(84508);let b=(0,r.createContext)(p.IDLE_LINK_STATUS),y=()=>(0,r.useContext)(b);("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},89664,e=>{"use strict";let t=(0,e.i(56420).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],89664)},31214,e=>{"use strict";let t=(0,e.i(56420).default)("cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);e.s(["Cloud",0,t],31214)},11241,e=>{"use strict";let t=(0,e.i(56420).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],11241)},96699,e=>{"use strict";let t=(0,e.i(56420).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);e.s(["Moon",0,t],96699)},35965,e=>{"use strict";let t=(0,e.i(56420).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);e.s(["Sun",0,t],35965)},48119,e=>{"use strict";let t=(0,e.i(56420).default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);e.s(["MoreHorizontal",0,t],48119)},67784,e=>{"use strict";let t=(0,e.i(56420).default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]);e.s(["LogOut",0,t],67784)},27648,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(67784),i=e.i(48119);e.i(4121);var n=e.i(20885),l=e.i(88361),r=e.i(93957),c=e.i(71192);e.s(["default",0,function({className:e=""}){let o=(0,c.useUserStore)(e=>e.identity),d=(0,c.useUserStore)(e=>e.openLoginModal),h=(0,c.useUserStore)(e=>e.logoutUser),[m,u]=(0,a.useState)(!1);return(0,t.jsxs)("div",{className:`chat-sidebar-footer sidebar-account ${e}`,children:[(0,t.jsxs)("div",{className:"user-info",children:[(0,t.jsx)("img",{className:"user-avatar-img",src:(0,r.generateAvatar)(o?.address,o?.avatar),alt:"avatar"}),(0,t.jsx)("span",{className:"user-name",title:o?.address,children:o?.displayName||"未登录"})]}),o?(0,t.jsx)(n.ActionMenu,{ariaLabel:"账号操作",placement:"top-end",items:[{key:"logout",label:"退出",icon:(0,t.jsx)(s.LogOut,{size:16}),onSelect:()=>u(!0)}],renderTrigger:e=>(0,t.jsx)("button",{...e,className:"btn btn-icon account-menu-trigger","aria-label":"更多操作",title:"更多操作",children:(0,t.jsx)(i.MoreHorizontal,{size:16})})}):(0,t.jsx)("button",{className:"btn btn-primary login-btn",onClick:d,children:"登录"}),m&&(0,t.jsx)(l.ConfirmModal,{title:"退出登录",message:"确定要退出当前账号吗?",confirmText:"退出",danger:!0,onConfirm:()=>{h(),u(!1)},onClose:()=>u(!1)})]})}])},8734,e=>{"use strict";let t=(0,e.i(56420).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],8734)},66627,e=>{"use strict";let t=(0,e.i(56420).default)("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]);e.s(["Wifi",0,t],66627)},56691,e=>{"use strict";var t=e.i(18050),a=e.i(22016);let s=[{href:"/",label:"关于"},{href:"/ping/",label:"网络"},{href:"https://github.com/most-people/most",label:"GitHub",external:!0}];e.s(["Footer",0,function(){return(0,t.jsx)("footer",{className:"mkt-footer",children:(0,t.jsx)("div",{className:"mkt-container",children:(0,t.jsxs)("div",{className:"mkt-footer-inner",children:[(0,t.jsx)("div",{className:"mkt-footer-links",children:s.map(e=>(0,t.jsx)(a.default,{href:e.href,...e.external?{target:"_blank",rel:"noopener noreferrer"}:{},children:e.label},e.href))}),(0,t.jsxs)("span",{className:"mkt-footer-copy",children:["© ",new Date().getFullYear()," MOST PEOPLE · MIT License"]})]})})})}])},42724,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(22016),i=e.i(62368),n=e.i(96699),l=e.i(35965),r=e.i(58501);e.s(["Nav",0,function(){let[e,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=localStorage.getItem("theme"),t=window.matchMedia("(prefers-color-scheme: dark)").matches;("dark"===e||!e&&t)&&c(!0)},[]),(0,a.useEffect)(()=>{document.documentElement.setAttribute("data-theme",e?"dark":"light"),localStorage.setItem("theme",e?"dark":"light")},[e]),(0,t.jsx)(t.Fragment,{children:(0,t.jsx)("nav",{className:"mkt-nav",children:(0,t.jsxs)("div",{className:"mkt-nav-inner",children:[(0,t.jsxs)(s.default,{href:"/",className:"mkt-nav-logo",children:[(0,t.jsx)(r.LogoIcon,{}),"MOST PEOPLE"]}),(0,t.jsxs)("div",{className:"mkt-nav-cta",children:[(0,t.jsx)("button",{className:"mkt-theme-toggle",onClick:()=>c(!e),"aria-label":"切换主题",children:e?(0,t.jsx)(l.Sun,{size:16}):(0,t.jsx)(n.Moon,{size:16})}),(0,t.jsxs)(s.default,{href:"/download/",className:"btn btn-primary mkt-nav-preview",children:[(0,t.jsx)(i.Download,{size:16}),"下载客户端"]}),(0,t.jsx)(s.default,{href:"/app/",className:"btn btn-secondary",children:"打开 Web"})]})]})})})}])},58072,e=>{"use strict";let t=(0,e.i(56420).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["Code",0,t],58072)},25981,e=>{"use strict";let t=(0,e.i(56420).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);e.s(["Upload",0,t],25981)},53138,e=>{"use strict";let t=(0,e.i(56420).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",0,t],53138)},16327,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],16327)},16306,e=>{"use strict";let t=(0,e.i(56420).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["ShieldAlert",0,t],16306)},23165,24851,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(89664),i=e.i(8734);e.s(["CopyButton",0,function({text:e,label:n,copiedLabel:l="已复制",className:r="btn btn-icon",iconSize:c=14}){let[o,d]=(0,a.useState)(!1);async function h(){try{await navigator.clipboard.writeText(e),d(!0),setTimeout(()=>d(!1),1500)}catch{}}return(0,t.jsxs)("button",{type:"button",className:r,onClick:h,title:o?l:n||"复制",children:[o?(0,t.jsx)(s.Check,{size:c}):(0,t.jsx)(i.Copy,{size:c}),n?o?l:n:null]})}],23165),e.s(["EmptyState",0,function({icon:e,message:a,className:s="empty-state glass"}){return(0,t.jsxs)("div",{className:s,children:[(0,t.jsx)("div",{className:"empty-state-icon",children:e}),(0,t.jsx)("p",{children:a})]})}],24851)},64830,e=>{"use strict";var t=e.i(18050);e.s(["KeyCard",0,function({title:e,icon:a,children:s,accent:i=!1}){return(0,t.jsxs)("div",{className:`web3-key-card ${i?"accent":""}`,children:[(0,t.jsxs)("div",{className:"web3-key-card-header",children:[(0,t.jsx)("span",{className:"web3-key-card-icon",children:a}),(0,t.jsx)("span",{className:"web3-key-card-title",children:e})]}),(0,t.jsx)("div",{className:"web3-key-card-body",children:s})]})}])},16546,e=>{"use strict";var t=e.i(18050),a=e.i(62368),s=e.i(23165);e.s(["PemBlock",0,function({label:e,pem:i,filename:n}){return(0,t.jsxs)("div",{className:"web3-pem-block",children:[(0,t.jsxs)("div",{className:"web3-pem-header",children:[(0,t.jsx)("span",{className:"web3-pem-label",children:e}),(0,t.jsxs)("div",{className:"web3-pem-actions",children:[(0,t.jsx)(s.CopyButton,{text:i,label:"复制",className:"btn btn-sm",iconSize:14}),(0,t.jsxs)("button",{type:"button",className:"btn btn-sm btn-primary",onClick:function(){let e=new Blob([i],{type:"text/plain"}),t=URL.createObjectURL(e),a=document.createElement("a");a.href=t,a.download=n,a.click(),URL.revokeObjectURL(t)},title:"下载",children:[(0,t.jsx)(a.Download,{size:14}),"下载"]})]})]}),(0,t.jsx)("textarea",{className:"textarea mono",value:i,readOnly:!0,rows:6})]})}])},51757,e=>{"use strict";let t=(0,e.i(56420).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",0,t],51757)},32391,60923,86512,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(53138),i=e.i(51757),n=e.i(31214),l=e.i(62368),r=e.i(48119),c=e.i(25981),o=e.i(71192);e.s(["NoteMoreMenu",0,function({sync:e}){let d=(0,a.useRef)(null),[h,m]=(0,a.useState)(!1),u=(0,o.useUserStore)(e=>e.wallet),p=null!==e.action;async function x(e){m(!1),await e()}return(0,a.useEffect)(()=>{if(h)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){d.current?.contains(e.target)||m(!1)}},[h]),(0,t.jsxs)("div",{className:"note-more",ref:d,children:[(0,t.jsx)("button",{className:"btn btn-icon note-more-trigger",onClick:()=>m(e=>!e),title:"更多","aria-label":"更多",children:(0,t.jsx)(r.MoreHorizontal,{size:16})}),h&&(0,t.jsxs)("div",{className:"note-more-menu",children:[(0,t.jsxs)("div",{className:`ui-notice note-sync-status ${e.hasConflict?"warning conflict":""}`,children:[(0,t.jsx)("span",{className:`ui-icon-tile note-sync-status-icon ${e.hasConflict?"warning":""}`,children:e.hasConflict?(0,t.jsx)(s.AlertTriangle,{size:16}):"synced"===e.status?(0,t.jsx)(i.CheckCircle2,{size:16}):(0,t.jsx)(n.Cloud,{size:16})}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:"云同步"}),(0,t.jsx)("small",{children:e.statusLabel})]})]}),(0,t.jsxs)("button",{className:"note-more-item",onClick:()=>x(e.exportLocalBackup),disabled:!u||p,children:[(0,t.jsx)(c.Upload,{size:16}),"本地导出"]}),(0,t.jsxs)("button",{className:"note-more-item",onClick:()=>x(e.importLocalBackup),disabled:!u||p,children:[(0,t.jsx)(l.Download,{size:16}),"本地导入"]})]})]})}],32391);var d=e.i(16327),h=e.i(67927),m=e.i(26067),u=e.i(63676);e.i(4121);var p=e.i(57667),x=e.i(3789);e.s(["NoteMoveModal",0,function({target:e,directories:s,onMove:i,onClose:n}){let l=(0,x.normalizeNotePath)(e.path||""),r="directory"===e.type?(0,x.normalizeNotePath)(e.path?`${e.path}/${e.name}`:e.name):(0,x.getNoteFullPath)(e),c=s.filter(t=>"directory"!==e.type||t.path!==r&&!t.path.startsWith(`${r}/`)),[o,j]=(0,a.useState)(l),[f,b]=(0,a.useState)(""),[y,v]=(0,a.useState)(new Set),g=(0,x.normalizeNotePath)(f),N=f.trim()?g:o,k=(0,x.normalizeNotePath)(N)===l,C=new Map;for(let e of c){let t=C.get(e.parentPath)||[];t.push(e),C.set(e.parentPath,t)}let M=c.filter(e=>{if(!e.parentPath)return!0;let t=e.parentPath.split("/").filter(Boolean);return t.every((e,a)=>y.has(t.slice(0,a+1).join("/")))}),w=[{label:"全部笔记",path:""},...o.split("/").filter(Boolean).map((e,t,a)=>({label:e,path:a.slice(0,t+1).join("/")}))];function z(e){j((0,x.normalizeNotePath)(e)),b("")}return(0,t.jsx)(p.ModalOverlay,{onClose:n,children:(0,t.jsxs)("div",{className:"note-move-modal",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"modal-header",children:[(0,t.jsx)("h3",{children:"移动笔记"}),(0,t.jsx)("button",{className:"btn btn-icon",onClick:n,children:(0,t.jsx)(u.X,{size:18})})]}),(0,t.jsxs)("div",{className:"note-move-target",children:[(0,t.jsx)("span",{children:"正在移动"}),(0,t.jsx)("strong",{children:e.name})]}),(0,t.jsx)("div",{className:"note-move-path",children:w.map((e,s)=>(0,t.jsxs)(a.default.Fragment,{children:[s>0&&(0,t.jsx)("span",{children:"/"}),(0,t.jsx)("button",{type:"button",onClick:()=>z(e.path),children:e.label})]},e.path||"root"))}),(0,t.jsxs)("div",{className:"note-move-folder-list",children:[(0,t.jsxs)("button",{type:"button",className:`note-move-folder-item ${""===o?"selected":""}`,onClick:()=>z(""),children:[(0,t.jsx)("span",{className:"note-move-folder-spacer"}),(0,t.jsx)(m.Folder,{className:"note-move-folder-icon",size:16}),(0,t.jsx)("span",{children:"全部笔记"})]}),0===c.length?(0,t.jsx)("p",{className:"note-move-empty",children:"还没有可选文件夹"}):M.map(e=>{let a=C.has(e.path),s=y.has(e.path);return(0,t.jsxs)("button",{type:"button",className:`note-move-folder-item note-move-depth-${Math.min(e.depth,4)} ${o===e.path?"selected":""}`,onClick:()=>{var t;z(t=e.path),C.has(t)&&v(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a})},children:[a?s?(0,t.jsx)(d.ChevronDown,{className:"note-move-expander",size:14}):(0,t.jsx)(h.ChevronRight,{className:"note-move-expander",size:14}):(0,t.jsx)("span",{className:"note-move-folder-spacer"}),(0,t.jsx)(m.Folder,{className:"note-move-folder-icon",size:16}),(0,t.jsx)("span",{children:e.name}),e.parentPath&&(0,t.jsx)("small",{children:e.parentPath})]},e.path)})]}),(0,t.jsx)("input",{className:"input input-compact",value:f,onChange:e=>b(e.target.value),placeholder:"或输入新目录路径,如 文章/摘录"}),(0,t.jsxs)("div",{className:"note-move-destination",children:["目标位置:",N||"全部笔记"]}),(0,t.jsxs)("div",{className:"modal-actions",children:[(0,t.jsx)("button",{className:"btn btn-secondary",onClick:n,children:"取消"}),(0,t.jsx)("button",{className:"btn btn-primary",onClick:function(){k||i(N)},disabled:k,children:"移动"})]})]})})}],60923);var j=e.i(11241),f=e.i(27648);e.s(["NoteSidebar",0,function({children:e}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"sidebar-header sidebar-header-link",onClick:()=>{window.location.href="/"},children:[(0,t.jsx)(j.ArrowLeft,{size:18}),(0,t.jsx)("h1",{children:"MOST PEOPLE"})]}),e,(0,t.jsx)(f.default,{})]})}],86512)},62368,e=>{"use strict";let t=(0,e.i(56420).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",0,t],62368)},66595,e=>{"use strict";let t=(0,e.i(56420).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,t],66595)},51921,e=>{"use strict";let t=(0,e.i(56420).default)("music",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]);e.s(["Music",0,t],51921)},80796,15170,e=>{"use strict";var t=e.i(56420);let a=(0,t.default)("film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]);e.s(["Film",0,a],80796);let s=(0,t.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);e.s(["Image",0,s],15170)},12796,e=>{"use strict";let t=(0,e.i(56420).default)("loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]);e.s(["Loader",0,t],12796)},79490,e=>{"use strict";let t=(0,e.i(56420).default)("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);e.s(["Edit2",0,t],79490)},6933,e=>{"use strict";e.s(["getFileSubtype",0,function(e){let t=String(e||"").split(".").pop()?.toLowerCase()||"";return["jpg","jpeg","png","gif","webp","svg","bmp","ico","tiff","heic","heif"].includes(t)?"image":["mp4","webm","mov","avi","mkv","flv","wmv","m4v","mpeg","3gp"].includes(t)?"video":["mp3","wav","ogg","flac","aac","m4a","wma","opus"].includes(t)?"audio":["txt","md","js","ts","jsx","tsx","css","scss","less","json","xml","html","htm","yaml","yml","toml","ini","cfg","conf","log","sh","bash","py","rb","go","rs","java","c","cpp","h","hpp","cs","php","sql","graphql","env","gitignore","dockerfile","readme"].includes(t)?"text":"file"}])},26067,e=>{"use strict";let t=(0,e.i(56420).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",0,t],26067)},67927,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],67927)},10818,61507,40616,e=>{"use strict";let t=(0,e.i(56420).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["Info",0,t],10818);var a=e.i(18050),s=e.i(26091),i=e.i(80796),n=e.i(26067),l=e.i(15170),r=e.i(51921),c=e.i(6933);function o(e){let t=e.lastIndexOf("/");return -1===t?{folder:"",name:e}:{folder:e.substring(0,t),name:e.substring(t+1)}}e.s(["FileCard",0,function({file:e,isSelected:t,onSelect:n,onPreview:d}){let h=(0,c.getFileSubtype)(e.fileName),m=(0,a.jsx)(s.FileText,{size:24,color:"#fff"});return"image"===h?m=(0,a.jsx)(l.Image,{size:24,color:"#fff"}):"video"===h?m=(0,a.jsx)(i.Film,{size:24,color:"#fff"}):"audio"===h&&(m=(0,a.jsx)(r.Music,{size:24,color:"#fff"})),(0,a.jsxs)("div",{"data-id":e.cid,onClick:()=>n(e.cid),onDoubleClick:()=>d(e),className:`card ${t?"selected":""}`,children:[(0,a.jsx)("div",{className:`card-icon ${e.starred?"starred":"file"}`,children:m}),(0,a.jsx)("p",{className:"card-name",children:o(e.fileName).name})]})},"FolderCard",0,function({folder:e,onClick:t}){return(0,a.jsxs)("div",{onClick:t,className:"card",children:[(0,a.jsx)("div",{className:"card-icon folder",children:(0,a.jsx)(n.Folder,{size:28,color:"#fff"})}),(0,a.jsx)("p",{className:"card-name",children:e.name})]})},"parseAppFileName",0,o],61507);var d=e.i(71645),h=e.i(63676);e.i(4121);var m=e.i(57667);e.s(["MoveModal",0,function({items:e,allFolders:t,currentPath:s,onMove:i,onClose:l}){let[r,c]=(0,d.useState)(""),[o,u]=(0,d.useState)(s),p=r?[{path:"",name:"全部内容"},...r.split("/").filter(Boolean).map((e,t,a)=>({path:a.slice(0,t+1).join("/"),name:e}))]:[],x=t.filter(e=>{if(""===r)return!e.path.includes("/");let t=r+"/";return!!e.path.startsWith(t)&&!e.path.substring(t.length).includes("/")});return(0,a.jsx)(m.ModalOverlay,{onClose:l,children:(0,a.jsxs)("div",{className:"move-modal",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"modal-header",children:[(0,a.jsx)("h3",{children:"移动到"}),(0,a.jsx)("button",{type:"button",onClick:l,className:"btn btn-icon",children:(0,a.jsx)(h.X,{size:18})})]}),(0,a.jsxs)("p",{className:"move-modal-desc",children:["已选 ",e.length," 个项目"]}),(0,a.jsx)("div",{className:"move-new-folder",children:(0,a.jsx)("input",{type:"text",className:"input",value:o,onChange:e=>u(e.target.value),placeholder:"输入路径创建嵌套文件夹"})}),(0,a.jsx)("p",{className:"move-modal-hint",children:"如 图片/壁纸"}),(0,a.jsx)("div",{className:"move-breadcrumb",children:p.map((e,t)=>(0,a.jsxs)(d.default.Fragment,{children:[t>0&&(0,a.jsx)("span",{className:"breadcrumb-separator",children:"/"}),(0,a.jsx)("button",{type:"button",onClick:()=>{c(e.path),u(e.path)},className:`move-breadcrumb-btn ${r===e.path&&!o?"active":""}`,children:e.name})]},e.path))}),(0,a.jsxs)("div",{className:"move-folder-list",children:[0===x.length&&(0,a.jsx)("p",{className:"move-modal-empty",children:"该目录下没有子文件夹"}),x.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>c(e.path),className:`move-folder-item ${r===e.path&&!o?"selected":""}`,children:[(0,a.jsx)(n.Folder,{size:16}),(0,a.jsx)("span",{children:e.name})]},e.path))]}),(0,a.jsxs)("div",{className:"modal-actions",children:[(0,a.jsx)("button",{type:"button",onClick:l,className:"btn btn-secondary",children:"取消"}),(0,a.jsx)("button",{type:"button",onClick:function(){i(r||o.trim())},className:"btn btn-primary",children:"移动"})]})]})})}],40616)},68590,58501,e=>{"use strict";let t=(0,e.i(56420).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],68590);var a=e.i(18050);e.s(["LogoIcon",0,function({size:e=24}){return(0,a.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,a.jsx)("rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.4"}),(0,a.jsx)("rect",{x:"14",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,a.jsx)("rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,a.jsx)("rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)"})]})}],58501)},68877,e=>{"use strict";let t=(0,e.i(56420).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",0,t],68877)},26091,e=>{"use strict";let t=(0,e.i(56420).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",0,t],26091)},73474,e=>{"use strict";let t=(0,e.i(56420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],73474)},77071,e=>{"use strict";let t=(0,e.i(56420).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],77071)},99847,e=>{"use strict";let t=(0,e.i(56420).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],99847)},77685,14351,e=>{"use strict";var t=e.i(18050),a=e.i(99847),s=e.i(62368),i=e.i(72382),n=e.i(26091),l=e.i(80796),r=e.i(15170),c=e.i(12796),o=e.i(51921);function d(e){let t=String(e||"").split("/");return t[t.length-1]||e}e.s(["ChatAttachmentCard",0,function({attachment:e,status:h="idle",pending:m=!1,onOpen:u}){var p,x;let j="checking"===h,f=["ui-file-action","chat-attachment-action","error"===h?"error":"","available"===h?"available":""].filter(Boolean).join(" "),b=((p=e.size)&&!(p<=0)?p<1024?`${p} B`:p<1048576?`${(p/1024).toFixed(1)} KB`:p<0x40000000?`${(p/1048576).toFixed(1)} MB`:`${(p/0x40000000).toFixed(2)} GB`:"")||"MostBox 文件";return(0,t.jsxs)("button",{type:"button",className:"ui-file-card chat-attachment-card",onClick:()=>u?.(e),disabled:m||j,title:e.link,children:[(0,t.jsx)("span",{className:`ui-file-icon chat-attachment-icon ${e.kind}`,children:j?(0,t.jsx)(c.Loader,{size:20,className:"ui-spinner chat-attachment-spinner"}):"image"===(x=e.kind)?(0,t.jsx)(r.Image,{size:20}):"video"===x?(0,t.jsx)(l.Film,{size:20}):"audio"===x?(0,t.jsx)(o.Music,{size:20}):(0,t.jsx)(n.FileText,{size:20})}),(0,t.jsxs)("span",{className:"ui-file-info chat-attachment-info",children:[(0,t.jsx)("span",{className:"ui-file-name chat-attachment-name",children:d(e.fileName)}),(0,t.jsx)("span",{className:"ui-file-meta chat-attachment-meta",children:m?"发送中...":b})]}),(0,t.jsx)("span",{className:f,children:j?"检测中":"available"===h?(0,t.jsx)(i.Eye,{size:16}):"error"===h?(0,t.jsx)(a.AlertCircle,{size:17}):(0,t.jsx)(s.Download,{size:16})})]})},"getAttachmentBaseFileName",0,d],77685);var h=e.i(68877),m=e.i(79490),u=e.i(68590),p=e.i(48119),x=e.i(56420);let j=(0,x.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),f=(0,x.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var b=e.i(77071),y=e.i(73474);e.i(4121);var v=e.i(20885);let g=[{key:"image",label:"图片",accept:"image/*",icon:r.Image},{key:"video",label:"视频",accept:"video/*",icon:l.Film},{key:"file",label:"文件",accept:"",icon:n.FileText}],N=g.map(e=>e.accept).join(",");e.s(["ChannelMemberGrid",0,function({members:e,isLoading:a=!1}){return a&&0===e.length?(0,t.jsx)("div",{className:"ui-empty-inline channel-members-empty",children:"正在读取成员..."}):0===e.length?(0,t.jsx)("div",{className:"ui-empty-inline channel-members-empty",children:"暂无成员"}):(0,t.jsx)("div",{className:"channel-members-grid",children:e.map(e=>(0,t.jsxs)("div",{className:"channel-member",children:[(0,t.jsx)("img",{className:"channel-member-avatar",src:e.avatarSrc,alt:"avatar"}),(0,t.jsx)("span",{className:"channel-member-name",children:e.name})]},e.id))})},"ChatAttachmentBubble",0,function({children:e}){return(0,t.jsx)("div",{className:"message-bubble has-attachment",children:e})},"ChatChannelNavItem",0,function({active:e=!1,pinned:a=!1,unread:s=!1,title:i,onSelect:n,onTogglePin:l,onRename:r,onLeave:c}){let o=["sidebar-nav-btn",e?"active":"",a?"pinned":"",s?"unread":""].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:o,onClick:n,role:"button",tabIndex:0,onKeyDown:e=>{e.target!==e.currentTarget||"Enter"===e.key&&n?.()},children:[(0,t.jsxs)("span",{className:"chat-channel-icon-wrap",children:[(0,t.jsx)(u.MessageSquare,{size:16}),s&&(0,t.jsx)("span",{className:"chat-channel-unread-dot",title:"有新消息","aria-hidden":"true"})]}),(0,t.jsx)("span",{className:"chat-channel-title",children:(0,t.jsx)("span",{className:"chat-channel-title-text",children:i})}),!!(l||r||c)&&(0,t.jsx)(v.ActionMenu,{ariaLabel:"频道操作",className:"channel-actions-anchor",placement:"bottom-end",items:[{key:"pin",label:a?"取消置顶":"置顶",icon:a?(0,t.jsx)(f,{size:16}):(0,t.jsx)(j,{size:16}),onSelect:()=>l?.()},{key:"rename",label:"重命名",icon:(0,t.jsx)(m.Edit2,{size:16}),onSelect:()=>r?.()},{key:"delete",label:"删除",icon:(0,t.jsx)(y.Trash2,{size:16}),onSelect:()=>c?.()}],renderTrigger:e=>(0,t.jsx)("button",{...e,className:"leave-channel-btn channel-actions-trigger",title:"更多操作","aria-label":"更多操作",children:(0,t.jsx)(p.MoreHorizontal,{size:16})})})]})},"ChatComposer",0,function({message:e,placeholder:a,disabled:s=!1,isPublishingAttachment:i=!1,attachmentButtonTitle:n="添加附件",attachmentInputRef:l,onMessageChange:r,onSend:o,onSelectAttachmentFiles:d}){let m=s||i,u=s||!e.trim();return(0,t.jsxs)("div",{className:"chat-input-area",children:[(0,t.jsx)("input",{ref:l,type:"file",accept:N,className:"chat-file-input",onChange:e=>{d?.(e.currentTarget.files),e.currentTarget.value=""}}),(0,t.jsx)(v.ActionMenu,{ariaLabel:"附件类型",placement:"top-start",disabled:m,items:g.map(e=>{let a=e.icon;return{key:e.key,label:e.label,icon:(0,t.jsx)(a,{size:16}),onSelect:()=>(function(e){if(m)return;let t=l?.current;t&&(t.accept=e,t.click())})(e.accept)}}),renderTrigger:e=>(0,t.jsx)("button",{...e,className:"btn btn-circle chat-tool-btn","aria-label":n,children:i?(0,t.jsx)(c.Loader,{size:18,className:"ui-spinner chat-attachment-spinner"}):(0,t.jsx)(b.Plus,{size:18})})}),(0,t.jsx)("input",{type:"text",className:"input input-pill",placeholder:a,value:e,disabled:s,onChange:e=>r(e.target.value),onKeyDown:function(t){"Enter"===t.key&&e.trim()&&o()}}),(0,t.jsx)("button",{type:"button",className:"btn btn-circle btn-primary send-btn",onClick:o,disabled:u,title:"发送消息",children:(0,t.jsx)(h.ArrowRight,{size:18})})]})},"ChatMessageItem",0,function({variant:e,pending:a=!1,avatarSrc:s,author:i,time:n,children:l}){let r=["chat-message",e,a?"pending":""].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:r,children:[(0,t.jsx)("img",{className:"msg-avatar",src:s,alt:"avatar"}),(0,t.jsxs)("div",{className:"msg-content",children:[(0,t.jsx)("span",{className:"message-author",children:i}),l,(0,t.jsx)("span",{className:"message-time",children:n})]})]})},"ChatTextBubble",0,function({children:e}){return(0,t.jsx)("div",{className:"message-bubble",children:e})}],14351)},38999,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(53138),i=e.i(11241),n=e.i(56420);let l=(0,n.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);var r=e.i(51757),c=e.i(31214),o=e.i(58072),d=e.i(72382),h=e.i(26091),m=e.i(26067),u=e.i(10818);let p=(0,n.default)("log-in",[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]);var x=e.i(68590),j=e.i(96699);let f=(0,n.default)("mouse-pointer-click",[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]),b=(0,n.default)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]);var y=e.i(77071),v=e.i(66595),g=e.i(41220),N=e.i(16306);let k=(0,n.default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);var C=e.i(35965);let M=(0,n.default)("type",[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]]);var w=e.i(66627),z=e.i(3593),S=e.i(71192),P=e.i(23165),L=e.i(77685),A=e.i(14351),T=e.i(19767),F=e.i(24851),O=e.i(56691),I=e.i(61507),B=e.i(58501),E=e.i(64830),D=e.i(40616),$=e.i(42724),_=e.i(32391),R=e.i(60923),U=e.i(86512),q=e.i(16546);e.i(4121);var H=e.i(88361),K=e.i(47910),V=e.i(57667),W=e.i(80809),G=e.i(79952),X=e.i(93957);let Y={name:"产品计划.md",cid:"bafy-demo-note",path:"产品/计划",content:"# MostBox Demo",size:2048,type:"file",created_at:17645472e5,updated_at:17645472e5},Z=[{path:"产品",name:"产品",parentPath:"",depth:0},{path:"产品/计划",name:"计划",parentPath:"产品",depth:1},{path:"产品/摘录",name:"摘录",parentPath:"产品",depth:1},{path:"灵感",name:"灵感",parentPath:"",depth:0}];function J({id:e,icon:a,eyebrow:s,title:i,description:n,children:l}){return(0,t.jsxs)("section",{className:"demo-section",id:e,children:[(0,t.jsxs)("div",{className:"demo-section-heading",children:[(0,t.jsx)("div",{className:"demo-section-icon",children:a}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"demo-eyebrow",children:s}),(0,t.jsx)("h2",{children:i}),(0,t.jsx)("p",{children:n})]})]}),l]})}function Q({title:e,children:a,className:s=""}){let i=s?`demo-surface ${s}`:"demo-surface";return(0,t.jsxs)("article",{className:i,children:[(0,t.jsx)("h3",{children:e}),a]})}e.s(["default",0,function(){let[e,n]=(0,a.useState)("r2"),[ee,et]=(0,a.useState)("今晚同步频道状态"),[ea,es]=(0,a.useState)(!1),[ei,en]=(0,a.useState)(!1),[el,er]=(0,a.useState)(!1),[ec,eo]=(0,a.useState)(!1),[ed,eh]=(0,a.useState)(!1),[em,eu]=(0,a.useState)([]),ep=(0,z.useAppStore)(e=>e.isDarkMode),ex=(0,z.useAppStore)(e=>e.setIsDarkMode),ej=(0,z.useAppStore)(e=>e.openConnectModal),ef=(0,S.useUserStore)(e=>e.openLoginModal);function eb(e,t){eu(a=>[...a.slice(-4),{id:Date.now(),type:e,message:t}])}return(0,t.jsxs)("main",{className:"demo-page",children:[(0,t.jsxs)("header",{className:"demo-topbar",children:[(0,t.jsxs)("a",{className:"mkt-nav-logo",href:"/",children:[(0,t.jsx)(i.ArrowLeft,{size:18}),(0,t.jsx)("span",{children:"MOST PEOPLE"})]}),(0,t.jsx)("button",{type:"button",className:"mkt-theme-toggle",onClick:()=>ex(!ep),"aria-label":"切换主题",title:"切换主题",children:ep?(0,t.jsx)(C.Sun,{size:16}):(0,t.jsx)(j.Moon,{size:16})})]}),(0,t.jsx)("section",{className:"demo-hero",children:(0,t.jsxs)("div",{className:"demo-hero-copy",children:[(0,t.jsx)("p",{className:"demo-eyebrow",children:"Shared Component Library"}),(0,t.jsx)("h1",{children:"共享组件检查页"}),(0,t.jsx)("p",{children:"把基础样式、全局 UI 片段和已迁入 components 的共享组件按用途集中展示, 方便以后改 UI 时直接从这里检查联动效果。"})]})}),(0,t.jsx)(J,{id:"foundation",icon:(0,t.jsx)(b,{size:18}),eyebrow:"Foundation",title:"基础样式",description:"全局按钮、输入框、开关、分段控件和状态反馈。",children:(0,t.jsxs)("div",{className:"demo-grid demo-grid-two",children:[(0,t.jsx)(Q,{title:"默认按钮",children:(0,t.jsxs)("div",{className:"demo-control-row",children:[(0,t.jsxs)("button",{className:"btn btn-primary",children:[(0,t.jsx)(r.CheckCircle2,{size:16}),"Primary"]}),(0,t.jsxs)("button",{className:"btn btn-secondary",children:[(0,t.jsx)(u.Info,{size:16}),"Secondary"]}),(0,t.jsxs)("button",{className:"btn btn-ghost",children:[(0,t.jsx)(k,{size:16}),"Ghost"]}),(0,t.jsxs)("button",{className:"btn btn-danger",children:[(0,t.jsx)(N.ShieldAlert,{size:16}),"Danger"]}),(0,t.jsx)("button",{className:"btn btn-primary",disabled:!0,children:"Disabled"}),(0,t.jsxs)("button",{type:"button",className:"ui-action-dashed",children:[(0,t.jsx)(y.Plus,{size:16}),"Dashed"]})]})}),(0,t.jsx)(Q,{title:"小号按钮",children:(0,t.jsxs)("div",{className:"demo-control-row",children:[(0,t.jsxs)("button",{className:"btn btn-sm btn-primary",children:[(0,t.jsx)(r.CheckCircle2,{size:14}),"Primary"]}),(0,t.jsxs)("button",{className:"btn btn-sm btn-secondary",children:[(0,t.jsx)(u.Info,{size:14}),"Secondary"]}),(0,t.jsxs)("button",{className:"btn btn-sm btn-ghost",children:[(0,t.jsx)(k,{size:14}),"Ghost"]}),(0,t.jsxs)("button",{className:"btn btn-sm btn-danger",children:[(0,t.jsx)(N.ShieldAlert,{size:14}),"Danger"]}),(0,t.jsx)("button",{className:"btn btn-sm btn-icon","aria-label":"小号图标按钮",children:(0,t.jsx)(l,{size:14})}),(0,t.jsx)("button",{className:"btn btn-sm btn-primary",disabled:!0,children:"Disabled"}),(0,t.jsxs)("button",{type:"button",className:"ui-action-dashed ui-action-dashed-sm",children:[(0,t.jsx)(y.Plus,{size:14}),"Dashed"]})]})}),(0,t.jsx)(Q,{title:"输入控件",children:(0,t.jsxs)("div",{className:"demo-input-grid",children:[(0,t.jsx)("input",{className:"input",value:"标准输入框",readOnly:!0}),(0,t.jsx)("input",{className:"input input-compact",value:"紧凑输入框",readOnly:!0}),(0,t.jsx)("input",{className:"input input-pill",value:"胶囊输入框",readOnly:!0}),(0,t.jsx)("textarea",{className:"textarea",value:"多行输入框",rows:3,readOnly:!0}),(0,t.jsxs)("div",{className:"ui-input-control",children:[(0,t.jsx)(v.Search,{className:"ui-input-icon",size:15}),(0,t.jsx)("input",{className:"input input-compact",placeholder:"带图标搜索",readOnly:!0})]})]})}),(0,t.jsx)(Q,{title:"开关、分段与徽标",children:(0,t.jsxs)("div",{className:"demo-stack",children:[(0,t.jsxs)("label",{className:"setting-switch",children:[(0,t.jsx)("span",{children:"显示 #地址后四位"}),(0,t.jsx)("input",{type:"checkbox",defaultChecked:!0})]}),(0,t.jsxs)("label",{className:"setting-switch",children:[(0,t.jsx)("span",{children:"自动同步"}),(0,t.jsx)("input",{type:"checkbox"})]}),(0,t.jsxs)("div",{className:"ui-segmented-control download-source-tabs demo-download-source-tabs",role:"tablist","aria-label":"下载来源",children:[(0,t.jsxs)("button",{type:"button",className:"r2"===e?"ui-segmented-option download-source-tab is-active":"ui-segmented-option download-source-tab",role:"tab","aria-selected":"r2"===e,onClick:()=>n("r2"),children:[(0,t.jsx)(c.Cloud,{size:15}),"R2"]}),(0,t.jsxs)("button",{type:"button",className:"github"===e?"ui-segmented-option download-source-tab is-active":"ui-segmented-option download-source-tab",role:"tab","aria-selected":"github"===e,onClick:()=>n("github"),children:[(0,t.jsx)(o.Code,{size:15}),"GitHub"]})]}),(0,t.jsxs)("div",{className:"demo-control-row",children:[(0,t.jsxs)("span",{className:"ui-badge success",children:[(0,t.jsx)("span",{className:"status-dot success"}),"已连接"]}),(0,t.jsxs)("span",{className:"ui-badge warning",children:[(0,t.jsx)("span",{className:"status-dot warning"}),"检测中"]}),(0,t.jsxs)("span",{className:"ui-badge danger",children:[(0,t.jsx)("span",{className:"status-dot danger"}),"不可用"]}),(0,t.jsxs)("span",{className:"ui-badge info",children:[(0,t.jsx)("span",{className:"status-dot info"}),"已就绪"]})]})]})})]})}),(0,t.jsx)(J,{id:"brand",icon:(0,t.jsx)(M,{size:18}),eyebrow:"Brand",title:"品牌与导航",description:"Logo、营销导航和页脚放在独立预览面板里,避免和 demo 容器互相挤压。",children:(0,t.jsxs)("div",{className:"demo-grid demo-brand-grid",children:[(0,t.jsx)(Q,{title:"LogoIcon",children:(0,t.jsxs)("div",{className:"demo-logo-row",children:[(0,t.jsx)(B.LogoIcon,{size:24}),(0,t.jsx)(B.LogoIcon,{size:36}),(0,t.jsx)(B.LogoIcon,{size:52})]})}),(0,t.jsx)(Q,{title:"Nav",className:"demo-nav-preview",children:(0,t.jsx)($.Nav,{})}),(0,t.jsx)(Q,{title:"Footer",className:"demo-footer-preview",children:(0,t.jsx)(O.Footer,{})})]})}),(0,t.jsx)(J,{id:"feedback",icon:(0,t.jsx)(f,{size:18}),eyebrow:"Feedback",title:"弹窗与反馈",description:"弹窗、Toast、连接和登录入口都使用按钮触发,页面加载时不主动打开。",children:(0,t.jsx)(Q,{title:"触发式组件",children:(0,t.jsxs)("div",{className:"demo-control-row",children:[(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary",onClick:()=>es(!0),children:[(0,t.jsx)(d.Eye,{size:16}),"ModalOverlay"]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary",onClick:()=>en(!0),children:[(0,t.jsx)(N.ShieldAlert,{size:16}),"ConfirmModal"]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary",onClick:()=>er(!0),children:[(0,t.jsx)(M,{size:16}),"InputModal"]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary",onClick:()=>eb("info","这是一条本地 demo toast"),children:[(0,t.jsx)(l,{size:16}),"Toast"]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary",onClick:ej,children:[(0,t.jsx)(g.Server,{size:16}),"ConnectModal"]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary",onClick:ef,children:[(0,t.jsx)(p,{size:16}),"UserLoginModal"]})]})})}),(0,t.jsx)(J,{id:"patterns",icon:(0,t.jsx)(k,{size:18}),eyebrow:"Patterns",title:"全局样式片段",description:"页面里反复复用的全局 class 和组合形态。",children:(0,t.jsxs)("div",{className:"demo-grid demo-grid-two",children:[(0,t.jsx)(Q,{title:"文件行",children:(0,t.jsxs)("div",{className:"demo-stack",children:[(0,t.jsx)(L.ChatAttachmentCard,{attachment:{kind:"text",cid:"bafy-demo-text",fileName:"demo-preview.txt",link:"most://bafy-demo-text?filename=demo-preview.txt",size:12697},status:"available"}),(0,t.jsx)(L.ChatAttachmentCard,{attachment:{kind:"video",cid:"bafy-demo-video",fileName:"movie-sample.mp4",link:"most://bafy-demo-video?filename=movie-sample.mp4",size:0},status:"checking"})]})}),(0,t.jsx)(Q,{title:"空状态",children:(0,t.jsxs)("div",{className:"ui-empty-state demo-empty-preview",children:[(0,t.jsx)("div",{className:"ui-empty-icon",children:(0,t.jsx)(x.MessageSquare,{size:28})}),(0,t.jsx)("h4",{className:"ui-empty-title",children:"暂无消息"}),(0,t.jsx)("p",{className:"ui-empty-desc",children:"开始聊天或选择一个频道。"})]})}),(0,t.jsx)(Q,{title:"列表与元信息",children:(0,t.jsxs)("div",{className:"demo-stack",children:[(0,t.jsx)("article",{className:"ui-list-item active",children:(0,t.jsxs)("button",{type:"button",className:"ui-list-item-main",children:[(0,t.jsx)("span",{className:"ui-list-icon",children:(0,t.jsx)(h.FileText,{size:18})}),(0,t.jsxs)("span",{className:"ui-list-copy",children:[(0,t.jsx)("span",{className:"ui-list-title",children:"产品计划.md"}),(0,t.jsx)("span",{className:"ui-list-desc",children:"CID、下载和做种说明"})]}),(0,t.jsx)("span",{className:"ui-list-meta",children:"今天"})]})}),(0,t.jsx)("article",{className:"ui-list-item",children:(0,t.jsxs)("button",{type:"button",className:"ui-list-item-main",children:[(0,t.jsx)("span",{className:"ui-list-icon warning",children:(0,t.jsx)(m.Folder,{size:18})}),(0,t.jsxs)("span",{className:"ui-list-copy",children:[(0,t.jsx)("span",{className:"ui-list-title",children:"归档"}),(0,t.jsx)("span",{className:"ui-list-desc",children:"文件夹"})]}),(0,t.jsx)("span",{className:"ui-list-meta",children:"12 篇"})]})}),(0,t.jsx)("div",{className:"ui-meta-box",children:"频道 ID:general"}),(0,t.jsx)("div",{className:"ui-empty-inline",children:"暂无成员"})]})}),(0,t.jsx)(Q,{title:"通知、标签与代码",children:(0,t.jsxs)("div",{className:"demo-stack",children:[(0,t.jsxs)("p",{className:"ui-notice success",children:[(0,t.jsx)(r.CheckCircle2,{size:14}),"同步完成,所有内容已更新。"]}),(0,t.jsxs)("p",{className:"ui-notice warning",children:[(0,t.jsx)(s.AlertTriangle,{size:14}),"节点正在检测中,请稍候。"]}),(0,t.jsxs)("ul",{className:"ui-chip-list demo-chip-preview",children:[(0,t.jsx)("li",{className:"ui-chip",children:"MostBox"}),(0,t.jsx)("li",{className:"ui-chip",children:"P2P"}),(0,t.jsx)("li",{className:"ui-chip",children:"CID"}),(0,t.jsx)("li",{className:"ui-chip",children:"Hyperdrive"})]}),(0,t.jsx)("code",{className:"ui-code-box",children:"most://bafy-demo-cid?filename=demo.txt"}),(0,t.jsxs)("div",{className:"ui-peer-info demo-peer-info",children:[(0,t.jsx)("span",{className:"peer-dot"}),(0,t.jsx)("span",{className:"peer-id",children:"12D3KooW...demo"}),(0,t.jsx)(w.Wifi,{size:14})]})]})})]})}),(0,t.jsx)(J,{id:"p2p-chat",icon:(0,t.jsx)(x.MessageSquare,{size:18}),eyebrow:"P2P Chat",title:"P2P 聊天控件",description:"频道列表、消息气泡、附件消息、输入栏和成员网格都与真实聊天页共用组件。",children:(0,t.jsxs)("div",{className:"demo-grid demo-grid-two",children:[(0,t.jsx)(Q,{title:"频道列表项",children:(0,t.jsxs)("div",{className:"demo-chat-sidebar-preview",children:[(0,t.jsx)(A.ChatChannelNavItem,{active:!0,title:"general"}),(0,t.jsx)(A.ChatChannelNavItem,{title:"design-review"}),(0,t.jsx)(A.ChatChannelNavItem,{title:"launch-room",onLeave:()=>eb("info","退出频道控件示例")}),(0,t.jsxs)("button",{type:"button",className:"ui-action-dashed",children:[(0,t.jsx)(y.Plus,{size:16}),"加入频道"]})]})}),(0,t.jsx)(Q,{title:"消息气泡",children:(0,t.jsxs)("div",{className:"chat-messages demo-chat-messages-preview",children:[(0,t.jsx)(A.ChatMessageItem,{variant:"other",avatarSrc:(0,X.generateAvatar)("peer-demo"),author:"Most Peer",time:"20:16",children:(0,t.jsx)(A.ChatTextBubble,{children:"节点已在线,可以开始同步频道消息。"})}),(0,t.jsx)(A.ChatMessageItem,{variant:"self",avatarSrc:(0,X.generateAvatar)("self-demo"),author:"Raina",time:"20:18",children:(0,t.jsx)(A.ChatTextBubble,{children:"收到,我把控件收进 demo。"})}),(0,t.jsx)(A.ChatMessageItem,{variant:"other",avatarSrc:(0,X.generateAvatar)("file-demo"),author:"Most Peer",time:"20:19",children:(0,t.jsx)(A.ChatAttachmentBubble,{children:(0,t.jsx)(L.ChatAttachmentCard,{attachment:{kind:"image",cid:"bafy-chat-demo-image",fileName:"chat-assets/channel-preview.png",link:"most://bafy-chat-demo-image?filename=channel-preview.png",size:186420},status:"available"})})})]})}),(0,t.jsx)(Q,{title:"消息输入栏",className:"demo-chat-composer-card",children:(0,t.jsx)(A.ChatComposer,{message:ee,placeholder:"输入消息...",onMessageChange:et,onSend:()=>eb("success",`发送:${ee}`),onSelectAttachmentFiles:()=>eb("info","图片、视频和文件选择控件示例")})}),(0,t.jsx)(Q,{title:"频道成员",children:(0,t.jsxs)("div",{className:"demo-stack",children:[(0,t.jsx)(A.ChannelMemberGrid,{members:[{id:"raina-demo",name:"Raina",avatarSrc:(0,X.generateAvatar)("raina-demo")},{id:"peer-a-demo",name:"Alice#1A2B",avatarSrc:(0,X.generateAvatar)("peer-a-demo")},{id:"peer-b-demo",name:"Bob#3C4D",avatarSrc:(0,X.generateAvatar)("peer-b-demo")}]}),(0,t.jsx)("div",{className:"ui-meta-box channel-detail-value channel-detail-mono",children:"8acdf33076e075168bf889b21d21665b"})]})})]})}),(0,t.jsx)(J,{id:"shared",icon:(0,t.jsx)(h.FileText,{size:18}),eyebrow:"Shared Components",title:"共享组件",description:"已迁入 components 的页面组件,只展示外观和轻交互。",children:(0,t.jsxs)("div",{className:"demo-grid demo-grid-two",children:[(0,t.jsx)(Q,{title:"Web3 小组件",children:(0,t.jsxs)("div",{className:"demo-stack",children:[(0,t.jsx)(E.KeyCard,{title:"Ed25519 公钥",icon:(0,t.jsx)(N.ShieldAlert,{size:18}),children:(0,t.jsxs)("div",{className:"mono-row",children:[(0,t.jsx)("code",{className:"mono",children:"ed25519-demo-public-key"}),(0,t.jsx)(P.CopyButton,{text:"ed25519-demo-public-key"})]})}),(0,t.jsx)(F.EmptyState,{icon:(0,t.jsx)(p,{size:32}),message:"请输入用户名和密码以查看身份信息"})]})}),(0,t.jsx)(Q,{title:"PEM 与复制",className:"demo-pem-preview",children:(0,t.jsx)(q.PemBlock,{label:"demo.pub",filename:"demo.pub",pem:"-----BEGIN PUBLIC KEY-----\nMOSTBOXDEMO\n-----END PUBLIC KEY-----"})}),(0,t.jsxs)(Q,{title:"文件管理卡片",children:[(0,t.jsxs)("div",{className:"demo-app-card-grid",children:[(0,t.jsx)(I.FolderCard,{folder:{name:"图片",path:"图片"},onClick:()=>eb("info","FolderCard demo")}),(0,t.jsx)(I.FileCard,{file:{cid:"bafy-demo-file",fileName:"图片/demo.png",starred:!0},isSelected:!0,onSelect:()=>eb("info","FileCard select"),onPreview:()=>eb("info","FileCard preview")})]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary demo-move-trigger",onClick:()=>eo(!0),children:[(0,t.jsx)(m.Folder,{size:16}),"MoveModal"]})]}),(0,t.jsx)(Q,{title:"笔记组件",children:(0,t.jsxs)("div",{className:"demo-note-shell",children:[(0,t.jsxs)("div",{className:"demo-note-header",children:[(0,t.jsx)("span",{children:"笔记"}),(0,t.jsx)(_.NoteMoreMenu,{sync:{action:null,status:"synced",statusLabel:"已同步",hasConflict:!1,uploadNow:async()=>!0,restoreFromCloud:async()=>!0,exportLocalBackup:()=>eb("info","本地导出"),importLocalBackup:()=>eb("info","本地导入")}})]}),(0,t.jsx)("div",{className:"sidebar demo-note-sidebar",children:(0,t.jsx)(U.NoteSidebar,{children:(0,t.jsx)("div",{className:"sidebar-empty-state",children:(0,t.jsx)("p",{children:"NoteSidebar 已迁入 components"})})})}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary demo-move-trigger",onClick:()=>eh(!0),children:[(0,t.jsx)(m.Folder,{size:16}),"NoteMoveModal"]})]})})]})}),em.map((e,a)=>(0,t.jsx)(W.Toast,{message:e.message,type:e.type,index:a,onDone:()=>{var t;return t=e.id,void eu(e=>e.filter(e=>e.id!==t))}},e.id)),ea&&(0,t.jsx)(V.ModalOverlay,{onClose:()=>es(!1),children:(0,t.jsxs)("div",{className:"demo-basic-modal",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("h3",{children:"ModalOverlay"}),(0,t.jsx)("p",{children:"这是基础容器示例,用来检查玻璃背景、居中和关闭行为。"}),(0,t.jsx)("button",{type:"button",className:"btn btn-primary",onClick:()=>es(!1),children:"关闭"})]})}),ei&&(0,t.jsx)(H.ConfirmModal,{title:"确认弹窗示例",message:"用于检查标题、正文、按钮和危险态之外的默认确认状态。",confirmText:"确认",onConfirm:()=>{en(!1),eb("success","ConfirmModal 已确认")},onClose:()=>en(!1)}),el&&(0,t.jsx)(K.InputModal,{title:"输入弹窗示例",placeholder:"输入任意文本",confirmText:"保存",defaultValue:"MostBox",onConfirm:e=>{er(!1),eb("success",`InputModal: ${e}`)},onClose:()=>er(!1),validate:e=>e.length<2?"至少输入 2 个字符":""}),ec&&(0,t.jsx)(D.MoveModal,{items:[{cid:"bafy-demo-file"}],allFolders:[{name:"图片",path:"图片"},{name:"壁纸",path:"图片/壁纸"},{name:"文档",path:"文档"}],currentPath:"图片",onMove:e=>{eo(!1),eb("success",`MoveModal: ${e||"根目录"}`)},onClose:()=>eo(!1)}),ed&&(0,t.jsx)(R.NoteMoveModal,{target:Y,directories:Z,onMove:e=>{eh(!1),eb("success",`NoteMoveModal: ${e||"全部笔记"}`)},onClose:()=>eh(!1)}),(0,t.jsx)(T.default,{}),(0,t.jsx)(G.default,{})]})}],38999)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95057,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return i},formatWithValidation:function(){return u},urlObjectKeys:function(){return o}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:n}=e,r=e.protocol||"",a=e.pathname||"",i=e.hash||"",o=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:n&&(u=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(u+=":"+e.port)),o&&"object"==typeof o&&(o=String(s.urlQueryToSearchParams(o)));let d=e.search||o&&`?${o}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||l.test(r))&&!1!==u?(u="//"+(u||""),a&&"/"!==a[0]&&(a="/"+a)):u||(u=""),i&&"#"!==i[0]&&(i="#"+i),d&&"?"!==d[0]&&(d="?"+d),a=a.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${r}${u}${a}${d}${i}`}let o=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return i(e)}},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return a}});let r=e.r(71645);function a(e,t){let n=(0,r.useRef)(null),a=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(n.current=s(e,r)),t&&(a.current=s(t,r))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return s}});let r=e.r(18967),a=e.r(52817);function s(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,a.hasBasePath)(n.pathname)}catch(e){return!1}}},84508,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},22016,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return y},useLinkStatus:function(){return S}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=e.r(90809),l=e.r(18050),i=s._(e.r(71645)),o=e.r(95057),u=e.r(8372),d=e.r(18581),c=e.r(18967),f=e.r(5550);e.r(33525);let p=e.r(88540),h=e.r(91949),m=e.r(73668),g=e.r(9396);function y(t){var n,r;let a,s,y,[S,v]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),j=(0,i.useRef)(null),{href:_,as:x,children:C,prefetch:k=null,passHref:w,replace:N,shallow:R,scroll:M,onClick:A,onMouseEnter:$,onTouchStart:O,legacyBehavior:E=!1,onNavigate:G,transitionTypes:P,ref:I,unstable_dynamicOnHover:H,...L}=t;a=C,E&&("string"==typeof a||"number"==typeof a)&&(a=(0,l.jsx)("a",{children:a}));let B=i.default.useContext(u.AppRouterContext),T=!1!==k,U=!1!==k?null===(r=k)||"auto"===r?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,z="string"==typeof(n=x||_)?n:(0,o.formatUrl)(n);if(E){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=i.default.Children.only(a)}let W=E?s&&"object"==typeof s&&s.ref:I,J=i.default.useCallback(e=>(null!==B&&(j.current=(0,h.mountLinkInstance)(e,z,B,U,T,v)),()=>{j.current&&((0,h.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,h.unmountPrefetchableInstance)(e)}),[T,z,B,U,v]),q={ref:(0,d.useMergedRef)(J,W),onClick(t){E||"function"!=typeof A||A(t),E&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!B||t.defaultPrevented||function(t,n,r,a,s,l,o){if("u">typeof window){let u,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(n)){a&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:c}=e.r(99781);i.default.startTransition(()=>{c(n,a?"replace":"push",!1===s?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,r.current,o)})}}(t,z,j,N,M,G,P)},onMouseEnter(e){E||"function"!=typeof $||$(e),E&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),B&&T&&(0,h.onNavigationIntent)(e.currentTarget,!0===H)},onTouchStart:function(e){E||"function"!=typeof O||O(e),E&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),B&&T&&(0,h.onNavigationIntent)(e.currentTarget,!0===H)}};return(0,c.isAbsoluteUrl)(z)?q.href=z:E&&!w&&("a"!==s.type||"href"in s.props)||(q.href=(0,f.addBasePath)(z)),y=E?i.default.cloneElement(s,q):(0,l.jsx)("a",{...L,...q,children:a}),(0,l.jsx)(b.Provider,{value:S,children:y})}e.r(84508);let b=(0,i.createContext)(h.IDLE_LINK_STATUS),S=()=>(0,i.useContext)(b);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},8734,e=>{"use strict";let t=(0,e.i(56420).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],8734)},21357,e=>{"use strict";let t=(0,e.i(56420).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",0,t],21357)},30274,e=>{"use strict";let t=(0,e.i(56420).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);e.s(["Send",0,t],30274)},11241,e=>{"use strict";let t=(0,e.i(56420).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],11241)},96699,e=>{"use strict";let t=(0,e.i(56420).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);e.s(["Moon",0,t],96699)},35965,e=>{"use strict";let t=(0,e.i(56420).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);e.s(["Sun",0,t],35965)},59665,5142,e=>{"use strict";var t=e.i(18050),n=e.i(71645);let r=(0,e.i(56420).default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);function a(e=!1,t={}){let[r,s]=(0,n.useState)(e),l=(0,n.useCallback)(()=>{s(e=>e||(t.onOpen?.(),!0))},[t.onOpen]),i=(0,n.useCallback)(()=>{s(e=>e?(t.onClose?.(),!1):e)},[t.onClose]);return[r,{open:l,close:i,toggle:(0,n.useCallback)(()=>{r?i():l()},[i,l,r]),set:s}]}e.s(["useDisclosure",0,a],5142);let s=(0,n.createContext)(null);e.s(["default",0,function({sidebar:e,className:l="",headerTitle:i,headerRight:o,sidebarToggleReplacement:u,defaultHide:d=!1,children:c}){let[f,p]=a(!1),[h,m]=(0,n.useState)(d),g=(0,n.useRef)(d),y=function(e,{getInitialValueInEffect:t}={getInitialValueInEffect:!0}){let[r,a]=(0,n.useState)(t?void 0:!!("u">typeof window&&"matchMedia"in window)&&window.matchMedia(e).matches);return(0,n.useEffect)(()=>{try{if("matchMedia"in window){let t=window.matchMedia(e);a(t.matches);let n=e=>a(e.matches);return t.addEventListener("change",n),()=>{t.removeEventListener("change",n)}}}catch(e){return}},[e]),r||!1}("(max-width: 768px)"),b=(0,n.useCallback)((e={})=>{p.close(),e.collapse&&m(!0)},[p]);(0,n.useEffect)(()=>{d!==g.current&&(d?b({collapse:!0}):m(!1),g.current=d)},[d,b]);let S=()=>{y?p.open():m(!1)};return(0,t.jsx)(s.Provider,{value:{closeSidebar:b,openSidebar:S,isSidebarVisible:y?f:!h},children:(0,t.jsxs)("div",{className:["app-layout",l].filter(Boolean).join(" "),children:[(0,t.jsx)("div",{className:`sidebar-overlay ${f?"visible":""}`,onClick:()=>b()}),(0,t.jsx)("div",{className:`sidebar ${f?"open":""} ${h?"collapsed":""}`,children:e({closeSidebar:b,openSidebar:S})}),(0,t.jsxs)("div",{className:"main-content",children:[(0,t.jsxs)("header",{className:"app-header",children:[(0,t.jsxs)("div",{className:"header-left",children:[u??(0,t.jsx)("button",{onClick:()=>{y?p.toggle():m(!h)},className:"btn btn-icon sidebar-toggle-btn","aria-label":y?"打开菜单":h?"展开侧边栏":"收起侧边栏",children:(0,t.jsx)(r,{size:16})}),i]}),(0,t.jsx)("div",{className:"header-right",children:o})]}),c]})]})})},"useAppShell",0,function(){let e=(0,n.useContext)(s);if(!e)throw Error("useAppShell must be used within AppShell");return e}],59665)},67784,e=>{"use strict";let t=(0,e.i(56420).default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]);e.s(["LogOut",0,t],67784)},48119,e=>{"use strict";let t=(0,e.i(56420).default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);e.s(["MoreHorizontal",0,t],48119)},27648,e=>{"use strict";var t=e.i(18050),n=e.i(71645),r=e.i(67784),a=e.i(48119);e.i(4121);var s=e.i(20885),l=e.i(88361),i=e.i(93957),o=e.i(71192);e.s(["default",0,function({className:e=""}){let u=(0,o.useUserStore)(e=>e.identity),d=(0,o.useUserStore)(e=>e.openLoginModal),c=(0,o.useUserStore)(e=>e.logoutUser),[f,p]=(0,n.useState)(!1);return(0,t.jsxs)("div",{className:`chat-sidebar-footer sidebar-account ${e}`,children:[(0,t.jsxs)("div",{className:"user-info",children:[(0,t.jsx)("img",{className:"user-avatar-img",src:(0,i.generateAvatar)(u?.address,u?.avatar),alt:"avatar"}),(0,t.jsx)("span",{className:"user-name",title:u?.address,children:u?.displayName||"未登录"})]}),u?(0,t.jsx)(s.ActionMenu,{ariaLabel:"账号操作",placement:"top-end",items:[{key:"logout",label:"退出",icon:(0,t.jsx)(r.LogOut,{size:16}),onSelect:()=>p(!0)}],renderTrigger:e=>(0,t.jsx)("button",{...e,className:"btn btn-icon account-menu-trigger","aria-label":"更多操作",title:"更多操作",children:(0,t.jsx)(a.MoreHorizontal,{size:16})})}):(0,t.jsx)("button",{className:"btn btn-primary login-btn",onClick:d,children:"登录"}),f&&(0,t.jsx)(l.ConfirmModal,{title:"退出登录",message:"确定要退出当前账号吗?",confirmText:"退出",danger:!0,onConfirm:()=>{c(),p(!1)},onClose:()=>p(!1)})]})}])},87884,e=>{"use strict";var t=e.i(26913);e.s(["channelApi",0,{getChannels(e={}){let n=new URLSearchParams;e.type&&n.set("type",e.type),e.excludeType&&n.set("excludeType",e.excludeType);let r=n.toString();return t.api.get(r?`/api/channels?${r}`:"/api/channels").json()},createChannel:(e,n="personal",r={})=>t.api.post("/api/channels",{json:{name:e,type:n,...r}}).json(),leaveChannel:e=>t.api.delete(`/api/channels/${encodeURIComponent(e)}`).json(),getChannelMessages:(e,n=100,r=0)=>t.api.get(`/api/channels/${encodeURIComponent(e)}/messages?limit=${n}&offset=${r}`).json(),sendChannelMessage:({channelName:e,content:n,author:r,authorName:a,avatar:s,attachment:l})=>t.api.post(`/api/channels/${encodeURIComponent(e)}/messages`,{json:l?{content:n,author:r,authorName:a,avatar:s,attachment:l}:{content:n,author:r,authorName:a,avatar:s}}).json(),getChannelMembers:e=>t.api.get(`/api/channels/${encodeURIComponent(e)}/members`).json(),getChannelPeers:e=>t.api.get(`/api/channels/${encodeURIComponent(e)}/peers`).json(),setChannelRemark:(e,n)=>t.api.put(`/api/channels/${encodeURIComponent(e)}/remark`,{json:{remark:n}}).json(),setChannelPinned:(e,n)=>t.api.put(`/api/channels/${encodeURIComponent(e)}/pin`,{json:{pinned:n}}).json(),getFileDownloadUrl:e=>(0,t.getApiUrl)(`/api/files/${e}/download`)}])},23952,e=>{"use strict";var t=e.i(71645),n=e.i(87884),r=e.i(26913);function a(e="",t=[]){return[...new Set([e,...t].filter(Boolean))]}function s(e){return String(e.id||`${e.author||""}-${e.timestamp||""}-${e.content||""}`)}e.s(["useChannelMessages",0,function({isReady:e,enabled:l=!0,channelName:i="",extraSubscribedChannelNames:o=[],peerId:u="",waitForPeerId:d=!1,limit:c=100,reconnectBaseDelay:f=2500,acceptMessage:p,getMessageKey:h=s,onSyncError:m,onSocketEvent:g,onReconnect:y}){let[b,S]=(0,t.useState)([]),[v,j]=(0,t.useState)(!1),_=(0,t.useMemo)(()=>(function(e=[]){return a("",e).join("\n")})(o),[o]),x=(0,t.useRef)(null),C=(0,t.useRef)(i),k=(0,t.useRef)(o),w=(0,t.useRef)(null),N=(0,t.useRef)(0),R=(0,t.useRef)(p),M=(0,t.useRef)(h),A=(0,t.useRef)(g),$=(0,t.useRef)(m),O=(0,t.useRef)(y),E=(0,t.useRef)(u),G=(0,t.useRef)(new Set);(0,t.useEffect)(()=>{k.current=_?_.split("\n"):[]},[_]),(0,t.useEffect)(()=>{R.current=p},[p]),(0,t.useEffect)(()=>{M.current=h},[h]),(0,t.useEffect)(()=>{A.current=g},[g]),(0,t.useEffect)(()=>{$.current=m},[m]),(0,t.useEffect)(()=>{O.current=y},[y]);let P=(0,t.useCallback)(e=>{let t=R.current;return t?e.filter(t):e},[]),I=(0,t.useCallback)((e,t,n=!0)=>{let r=[...e];for(let e of P(t)){let t=M.current(e);if(n){let n=r.findIndex(t=>t.pending&&t.author?.toLowerCase()===e.author?.toLowerCase()&&t.content===e.content);if(-1!==n){r[n]={...e,id:e.id||t};continue}}r.some(e=>M.current(e)===t)||r.push({...e,id:e.id||t})}return r},[P]),H=(0,t.useCallback)((e,t)=>{x.current?.readyState===WebSocket.OPEN&&x.current.send(JSON.stringify({event:e,data:t}))},[]),L=(0,t.useCallback)(e=>{var t;let n,r,a=new Set(e.filter(Boolean)),s=(t=G.current,n=new Set(t),{subscribe:[...r=new Set(a)].filter(e=>!n.has(e)),unsubscribe:[...n].filter(e=>!r.has(e))});for(let e of s.unsubscribe)H("channel:unsubscribe",{channel:e});for(let e of s.subscribe)H("channel:subscribe",{channel:e});G.current=a},[H]),B=(0,t.useCallback)(()=>a(C.current,k.current),[]),T=(0,t.useCallback)(async(t=C.current,r={})=>{if(!t||!e)return[];try{let e=P(await n.channelApi.getChannelMessages(t,c));return S(t=>r.replace?e:I(t,e,!1)),e}catch(e){return r.replace&&S([]),await $.current?.(e),[]}},[P,e,c,I]);(0,t.useEffect)(()=>{E.current=u,u&&(H("register",{peerId:u}),d&&(L(B()),C.current&&T(C.current,{replace:!0})))},[B,u,L,T,d,H]);let U=(0,t.useCallback)(()=>{S([])},[]),z=(0,t.useCallback)(async({channelName:e=C.current,content:t,author:r,authorName:a,avatar:s,attachment:l,optimisticId:i})=>{let o=t.trim();if(!e||!o)return null;let u={id:i||`${r}-${Date.now()}-${Math.random().toString(36).slice(2)}`,author:r,authorName:a,content:o,timestamp:Date.now(),pending:!0,attachment:l};S(e=>[...e,u]);try{let t=await n.channelApi.sendChannelMessage({channelName:e,content:o,author:r,authorName:a,avatar:s,attachment:l});return S(e=>e.map(e=>e.id===u.id?{...t.message,id:t.message.id||M.current(t.message)}:e)),t.message}catch(e){throw S(e=>e.filter(e=>e.id!==u.id)),e}},[]);return(0,t.useEffect)(()=>{C.current=i,e&&l&&(i&&T(i,{replace:!0}),(!d||E.current)&&L(B()))},[i,l,_,B,e,L,T,d]),(0,t.useEffect)(()=>{e&&l&&(!d||E.current)&&L(B())},[l,B,e,L,d]),(0,t.useEffect)(()=>{if(!e||!l)return void j(!1);let t=!1;async function n(){let e=new WebSocket(await (0,r.getAuthenticatedWebSocketUrl)("/ws"));t?e.close():(e.onopen=()=>{j(!0),N.current=0,E.current&&e.send(JSON.stringify({event:"register",data:{peerId:E.current}})),(!d||E.current)&&(G.current.clear(),L(B()),C.current&&T(C.current,{replace:!0}),O.current?.())},e.onmessage=e=>{try{let t=JSON.parse(e.data);A.current?.(t.event,t.data),"channel:message"===t.event&&t.data?.channel===C.current&&t.data?.message&&S(e=>I(e,[t.data.message]))}catch{}},e.onclose=()=>{if(j(!1),t)return;let e=N.current;if(e>=20)return;let r=Math.min(f*Math.pow(2,e),3e4);N.current=e+1,w.current=setTimeout(n,r)},e.onerror=()=>e.close(),x.current=e)}return N.current=0,n(),()=>{t=!0,w.current&&clearTimeout(w.current),x.current?.close(),x.current=null,G.current.clear()}},[l,B,e,I,f,L,T,d]),{clearMessages:U,connected:v,messages:b,sendMessage:z,setMessages:S,syncMessages:T}}],23952)},53881,53751,99591,34471,e=>{"use strict";var t=e.i(18050),n=e.i(22016),r=e.i(11241),a=e.i(56420);let s=(0,a.default)("spade",[["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"M2 14.499a5.5 5.5 0 0 0 9.591 3.675.6.6 0 0 1 .818.001A5.5 5.5 0 0 0 22 14.5c0-2.29-1.5-4-3-5.5l-5.492-5.312a2 2 0 0 0-3-.02L5 8.999c-1.5 1.5-3 3.2-3 5.5",key:"1aw2pz"}]]);e.s(["Spade",0,s],53751);let l=(0,a.default)("swords",[["polyline",{points:"14.5 17.5 3 6 3 3 6 3 17.5 14.5",key:"1hfsw2"}],["line",{x1:"13",x2:"19",y1:"19",y2:"13",key:"1vrmhu"}],["line",{x1:"16",x2:"20",y1:"16",y2:"20",key:"1bron3"}],["line",{x1:"19",x2:"21",y1:"21",y2:"19",key:"13pww6"}],["polyline",{points:"14.5 6.5 18 3 21 3 21 6 17.5 9.5",key:"hbey2j"}],["line",{x1:"5",x2:"9",y1:"14",y2:"18",key:"1hf58s"}],["line",{x1:"7",x2:"4",y1:"17",y2:"20",key:"pidxm4"}],["line",{x1:"3",x2:"5",y1:"19",y2:"21",key:"1pehsh"}]]);var i=e.i(27648);let o=[{id:"gandengyan",label:"干瞪眼",href:"/game/gandengyan/",icon:(0,t.jsx)(l,{size:16})},{id:"zhajinhua",label:"炸金花",href:"/game/zhajinhua/",icon:(0,t.jsx)(s,{size:16})}];e.s(["default",0,function({activeGame:e,closeSidebar:a}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.default,{href:"/",className:"sidebar-header sidebar-header-link",children:[(0,t.jsx)(r.ArrowLeft,{size:18}),(0,t.jsx)("h1",{children:"MOST PEOPLE"})]}),(0,t.jsx)("nav",{className:"sidebar-nav",children:o.map(r=>(0,t.jsxs)(n.default,{href:r.href,className:`sidebar-nav-btn ${e===r.id?"active":""}`,onClick:a,children:[r.icon,(0,t.jsx)("span",{children:r.label})]},r.id))}),(0,t.jsx)(i.default,{})]})}],53881);var u=e.i(71645);let d="game",c="mostbox.game.event",f=["gandengyan","zhajinhua"],p="ABCDEFGHJKLMNPQRSTUVWXYZ23456789";function h(e){let t=String(e||"").trim().toLowerCase();return f.includes(t)?t:""}function m(e){return String(e||"").trim().toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,8)}function g(e){return/^[A-Z0-9]{4,8}$/.test(String(e||""))}function y(){let e="";for(let t=0;t<6;t++)e+=p[function(e){if(globalThis.crypto?.getRandomValues){let t=new Uint32Array(1);return globalThis.crypto.getRandomValues(t),t[0]%e}return Math.floor(Math.random()*e)}(p.length)];return e}function b(e,t){let n=h(e),r=m(t);return n&&g(r)?`game-${n}-${r.toLowerCase()}`:""}function S({gameId:e,roomCode:t,event:n,payload:r}){var a;let s=h(e);return{kind:c,version:1,gameId:s,roomCode:m(t),event:String(n||""),eventId:(a=s||"game",`${a}_${Date.now()}_${function(){let e=new Uint8Array(4);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(e);else for(let t=0;t<e.length;t++)e[t]=Math.floor(256*Math.random());return[...e].map(e=>e.toString(16).padStart(2,"0")).join("")}()}`),payload:r||{}}}function v(e,t={}){try{let n=JSON.parse(String(e||""));if(!n||n.kind!==c||1!==n.version||"string"!=typeof n.event||"string"!=typeof n.eventId)return null;let r=h(n.gameId),a=m(n.roomCode);if(!r||!g(a)||t.gameId&&r!==h(t.gameId)||t.roomCode&&a!==m(t.roomCode))return null;return{...n,gameId:r,roomCode:a,payload:n.payload&&"object"==typeof n.payload?n.payload:{}}}catch{return null}}function j(e,t){var n;if(!e||"object"!=typeof e)return null;let r=_(e.address||t);if(!r||_(t)!==r)return null;let a=String(e.name||"").trim().slice(0,50)||((n=r)?`${n.slice(0,6)}...${n.slice(-4)}`:"");return{address:r,name:a,publicKey:String(e.publicKey||"").trim(),joinedAt:Number(e.joinedAt||Date.now())}}function _(e){let t=String(e||"").trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():""}function x(e,t,n){let r=t.get(n.address);r?Object.assign(r,n):(e.push(n),t.set(n.address,n))}function C(e){return[...e].sort((e,t)=>Number(e.timestamp||0)-Number(t.timestamp||0))}e.s(["GAME_CHANNEL_TYPE",0,d,"createGameEvent",0,S,"createGameRoomCode",0,y,"deriveGameRoomLobby",0,function(e=[],t={}){let n=[],r=new Map,a="";for(let s of C(e)){let e=v(s.content,t);if(e){if("room:create"===e.event){let t=j(e.payload?.player,s.author);if(!t)continue;a||(a=t.address),x(n,r,t);continue}if("player:join"===e.event){let t=j(e.payload?.player,s.author);t&&x(n,r,t);continue}if("player:leave"===e.event){let t=_(e.payload?.player?.address||s.author);if(t){let e=n.findIndex(e=>e.address===t);-1!==e&&(n.splice(e,1),r.delete(t))}}}}return{gameId:h(t.gameId),roomCode:m(t.roomCode),hostAddress:a,players:n}},"gameRoomCodeToChannelName",0,b,"getLatestGameState",0,function(e=[],t={}){let n=null;for(let r of C(e)){let e=v(r.content,t);if(!e||"room:state"!==e.event)continue;let a=Number(e.payload?.seq||0);(!n||a>=Number(n.payload?.seq||0))&&(n=e)}return n},"normalizeGameRoomCode",0,m,"parseGameEvent",0,v],99591);var k=e.i(87884),w=e.i(23952),N=e.i(26913),R=e.i(3593),M=e.i(71192);async function A(e,t,n,r,a,s){let l=S({gameId:n,roomCode:r,event:a,payload:s});await k.channelApi.sendChannelMessage({channelName:e,content:JSON.stringify(l),author:t.address,authorName:$(t)})}function $(e){return e.displayName||e.username}e.s(["useGameRoom",0,function({gameId:e,onError:t,getPlayerPayload:n}){let r=(0,R.useAppStore)(e=>e.hasBackend),a=(0,R.useAppStore)(e=>e.checkBackend),s=(0,R.useAppStore)(e=>e.openConnectModal),l=(0,M.useUserStore)(e=>e.identity),i=(0,M.useUserStore)(e=>e.openLoginModal),[o,c]=(0,u.useState)(""),[f,p]=(0,u.useState)(""),[h,g]=(0,u.useState)(!1),j=!0===r,_=(0,u.useCallback)(async(e,n)=>{let r=await (0,N.getApiErrorMessage)(e,n);t&&t(r)},[t]),x=(0,u.useCallback)(t=>!!v(t.content,{gameId:e,roomCode:o}),[e,o]),C=(0,u.useCallback)(t=>{let n=v(t.content,{gameId:e,roomCode:o});return n?`${t.author}-${n.eventId}`:`${t.author}-${t.timestamp}-${t.content}`},[e,o]),{clearMessages:O,connected:E,messages:G,sendMessage:P,syncMessages:I}=(0,w.useChannelMessages)({isReady:j,enabled:!!l,channelName:f,limit:500,acceptMessage:x,getMessageKey:C,onSyncError:e=>_(e,"无法读取房间记录")}),H=(0,u.useMemo)(()=>G.map(t=>({message:t,event:v(t.content,{gameId:e,roomCode:o})})).filter(e=>e.event),[e,G,o]),L=(0,u.useCallback)(()=>l?!!j||(s(),!1):(i(),!1),[j,s,i,l]);(0,u.useEffect)(()=>{null===r&&a()},[a,r]);let B=(0,u.useCallback)(async(r,a=!1)=>{if(!L()||!l)return!1;let s=a?y():m(r),i=b(e,s);if(!i)return t&&t("请输入 4-8 位房间码"),!1;g(!0);try{var o;return await k.channelApi.createChannel(i,d),await A(i,l,e,s,a?"room:create":"player:join",{player:n?n(l):{address:(o=l).address,name:$(o),publicKey:"",joinedAt:Date.now()}}),c(s),p(i),O(),!0}catch(e){return await _(e,a?"创建房间失败":"进入房间失败"),!1}finally{g(!1)}},[L,e,n,t,_,O,l]),T=(0,u.useCallback)(()=>B("",!0),[B]),U=(0,u.useCallback)(e=>B(e),[B]),z=(0,u.useCallback)(async(t,n={})=>{if(!L()||!l||!f||!o)return!1;let r=S({gameId:e,roomCode:o,event:t,payload:n}),a=JSON.stringify(r);try{return await P({channelName:f,content:a,author:l.address,authorName:$(l),optimisticId:`${l.address}-${r.eventId}`}),!0}catch(e){return await _(e,"发送房间事件失败"),!1}},[f,L,e,_,o,P,l]);return{channelName:f,connected:E,createRoom:T,ensureReady:L,isBackendReady:j,joinRoom:U,joining:h,messages:G,roomCode:o,roomEvents:H,sendRoomEvent:z,setRoomCode:c,syncMessages:I,userIdentity:l}}],34471)},45309,e=>{e.v({accountLine:"page-module__bH9uOG__accountLine",actions:"page-module__bH9uOG__actions",active:"page-module__bH9uOG__active",avatar:"page-module__bH9uOG__avatar",badges:"page-module__bH9uOG__badges",black:"page-module__bH9uOG__black",card:"page-module__bH9uOG__card",cardButton:"page-module__bH9uOG__cardButton",cardMark:"page-module__bH9uOG__cardMark",centerTable:"page-module__bH9uOG__centerTable",deckBox:"page-module__bH9uOG__deckBox",entry:"page-module__bH9uOG__entry",entryBrand:"page-module__bH9uOG__entryBrand",entryPanel:"page-module__bH9uOG__entryPanel",gameGrid:"page-module__bH9uOG__gameGrid",hand:"page-module__bH9uOG__hand",handPanel:"page-module__bH9uOG__handPanel",headerActions:"page-module__bH9uOG__headerActions",joinForm:"page-module__bH9uOG__joinForm",logPanel:"page-module__bH9uOG__logPanel",notice:"page-module__bH9uOG__notice",page:"page-module__bH9uOG__page",panel:"page-module__bH9uOG__panel",picked:"page-module__bH9uOG__picked",playedBox:"page-module__bH9uOG__playedBox",playedCards:"page-module__bH9uOG__playedCards",player:"page-module__bH9uOG__player",preview:"page-module__bH9uOG__preview",red:"page-module__bH9uOG__red",resultDetail:"page-module__bH9uOG__resultDetail",roomBar:"page-module__bH9uOG__roomBar",scoreMeta:"page-module__bH9uOG__scoreMeta",scoreRow:"page-module__bH9uOG__scoreRow",seats:"page-module__bH9uOG__seats",sidePanel:"page-module__bH9uOG__sidePanel",small:"page-module__bH9uOG__small",status:"page-module__bH9uOG__status",tablePanel:"page-module__bH9uOG__tablePanel",valid:"page-module__bH9uOG__valid",winner:"page-module__bH9uOG__winner"})},31678,e=>{"use strict";var t=e.i(18050),n=e.i(71645),r=e.i(8734),a=e.i(96699),s=e.i(21357);let l=(0,e.i(56420).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);var i=e.i(30274),o=e.i(35965),u=e.i(59665),d=e.i(53881),c=e.i(34471),f=e.i(3593),p=e.i(71192);let h=["S","H","C","D"],m=["3","4","5","6","7","8","9","10","J","Q","K","A","2"],g=m.filter(e=>"2"!==e),y=new Map(m.map((e,t)=>[e,t+3]));function b(e){return e?{id:e.id,ownerAddress:e.ownerAddress,status:e.status,seq:Number(e.seq||1),deck:Array.isArray(e.deck)?e.deck.map(H):[],deckCount:e.deck?.length||Number(e.deckCount||0),discard:Array.isArray(e.discard)?e.discard.map(H):[],discardCount:e.discard?.length||Number(e.discardCount||0),currentSeat:Number(e.currentSeat||0),lastWinnerSeat:null===e.lastWinnerSeat||void 0===e.lastWinnerSeat?null:Number(e.lastWinnerSeat),previousWinnerSeat:null===e.previousWinnerSeat||void 0===e.previousWinnerSeat?null:Number(e.previousWinnerSeat),baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,table:e.table?{...e.table,cards:e.table.cards.map(H)}:null,passSeats:Array.isArray(e.passSeats)?e.passSeats:[],winnerSeat:null===e.winnerSeat||void 0===e.winnerSeat?null:Number(e.winnerSeat),log:Array.isArray(e.log)?e.log.slice(0,18):[],players:M(e).map(e=>({address:e.address,name:e.name,seat:e.seat,handCount:e.hand?.length??e.handCount??0,score:Number(e.score??1e3),playedCards:Number(e.playedCards||0),hand:Array.isArray(e.hand)?e.hand.map(H):[]}))}:null}function S(e){return e&&"object"==typeof e?{id:String(e.id||"").toUpperCase(),ownerAddress:z(e.ownerAddress),status:"playing"===e.status||"finished"===e.status?e.status:"lobby",seq:Number(e.seq||1),players:Array.isArray(e.players)?e.players.map(x).filter(Boolean):[],deck:Array.isArray(e.deck)?e.deck.map(I).filter(Boolean):[],discard:Array.isArray(e.discard)?e.discard.map(C).filter(Boolean):[],table:e.table&&"object"==typeof e.table?{...e.table,cards:Array.isArray(e.table.cards)?e.table.cards.map(C).filter(Boolean):[]}:null,currentSeat:Number(e.currentSeat||0),lastWinnerSeat:null===e.lastWinnerSeat||void 0===e.lastWinnerSeat?null:Number(e.lastWinnerSeat),previousWinnerSeat:null===e.previousWinnerSeat||void 0===e.previousWinnerSeat?null:Number(e.previousWinnerSeat),passSeats:Array.isArray(e.passSeats)?e.passSeats.map(Number):[],baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,log:Array.isArray(e.log)?e.log.map(String):[],winnerSeat:null===e.winnerSeat||void 0===e.winnerSeat?null:Number(e.winnerSeat)}:null}function v(e){if(!e?.length)return null;let t=(e=[...e].sort(O)).filter(G).length,n=e.filter(e=>!G(e));if(0===n.length)return null;let r=function(e,t,n){if(e.length<3||!$(t,n))return null;let r=function(e){return E(e[0])}(t);return j("bomb",r,e.length,Array(e.length).fill(r),0===n)}(e,n,t);if(r)return r;if(1===e.length&&0===t)return j("single",E(e[0]),1,[E(e[0])]);if(2===e.length&&$(n,t)){let e=E(n[0]);return j("pair",e,2,[e,e])}return function(e){if(e.length<3)return null;let t=e.filter(G).length,n=e.filter(e=>!G(e));for(let r=0;r<=g.length-e.length;r+=1){let a=g.slice(r,r+e.length).map(e=>y.get(e)),s=[...a],l=0;for(let e of n){let t=s.indexOf(E(e));-1!==t&&(s.splice(t,1),l+=1)}if(l+t===e.length&&s.length===t)return j("straight",a.at(-1),e.length,a)}return null}(e)||function(e){if(e.length<4||e.length%2!=0)return null;let t=e.length/2,n=e.filter(G).length,r=e.filter(e=>!G(e));for(let a=0;a<=g.length-t;a+=1){let s=g.slice(a,a+t).map(e=>y.get(e)),l=s.flatMap(e=>[e,e]),i=0;for(let e of r){let t=l.indexOf(E(e));-1!==t&&(l.splice(t,1),i+=1)}if(i+n===e.length&&l.length===n){let t=s.flatMap(e=>[e,e]);return j("pairStraight",s.at(-1),e.length,t)}}return null}(e)}function j(e,t,n,r,a=!0){var s;let l;return{type:e,value:t,length:n,resolvedValues:r,pure:a,label:(s={type:e,value:t,length:n,resolvedValues:r,pure:a},l=s.resolvedValues?.length?`(${s.resolvedValues.map(T).join(" ")})`:"",`${({single:"单张",pair:"对子",straight:"顺子",pairStraight:"连对",bomb:s.pure?"纯炸弹":"带王炸弹"})[s.type]}${l}`)}}function _(e){let t=new Set;return e.map(e=>({address:z(e.address),name:W(e.name),publicKey:String(e.publicKey||"")})).filter(e=>!(!e.address||t.has(e.address))&&(t.add(e.address),!0))}function x(e){let t=z(e.address);return t?{address:t,name:W(e.name),seat:Number(e.seat||0),hand:Array.isArray(e.hand)?e.hand.map(C).filter(Boolean):[],handCount:Number(e.handCount||0),score:Number(e.score??1e3),playedCards:Number(e.playedCards||0)}:null}function C(e){if(!e||"object"!=typeof e)return null;let t=String(e.rank||""),n=String(e.suit||"");return(y.has(t)||"SJ"===t||"BJ"===t)&&(h.includes(n)||"Joker"===n)?{id:String(e.id||`${n}-${t}`),suit:n,rank:t,label:e.label||L({suit:n,rank:t}),color:e.color||B({suit:n,rank:t})}:null}function k(e,t){e.status="finished",e.winnerSeat=t.seat,e.previousWinnerSeat=t.seat;let n=[],r=0;for(let a of M(e)){if(a.seat===t.seat)continue;let s=0===a.playedCards,l=s?20:a.hand.length*e.baseScore*.5;a.score-=l,r+=l,n.push({seat:a.seat,name:a.name,loss:l,sealed:s,cardsLeft:a.hand.length})}t.score+=r,e.roundResult={winnerSeat:t.seat,winnerName:t.name,winnerGain:r,baseScore:e.baseScore,bombCount:e.bombCount,losers:n},e.log.unshift(`${t.name} 获胜,赢 ${r} 分`)}function w(e,t){return e.deck.splice(0,t)}function N(e){return e.players.find(t=>t.seat===e.currentSeat)}function R(e){return M(e).filter(e=>e.hand.length>0)}function M(e){return[...e?.players||[]].sort((e,t)=>e.seat-t.seat)}function A(e){let t=R(e).map(e=>e.seat),n=t.indexOf(e.currentSeat);e.currentSeat=t[(n+1)%t.length]}function $(e,t=0){if(0===e.length)return!1;let n=e[0].rank;return e.every(e=>e.rank===n)&&e.length+t>=2}function O(e,t){return E(e)-E(t)||P(e.suit)-P(t.suit)}function E(e){return y.get(e.rank)||99}function G(e){return"SJ"===e.rank||"BJ"===e.rank}function P(e){return({D:0,C:1,H:2,S:3,Joker:4})[e]||0}function I(e){if("string"==typeof e){let[t,n]=e.split("-");return C({id:e,suit:t,rank:n})}return C(e)}function H(e){return{id:e.id,suit:e.suit,rank:e.rank,label:L(e),color:B(e)}}function L(e){return"SJ"===e.rank?"小王":"BJ"===e.rank?"大王":`${({S:"♠",H:"♥",C:"♣",D:"♦"})[e.suit]||""}${e.rank}`}function B(e){return"H"===e.suit||"D"===e.suit||"BJ"===e.rank?"red":"black"}function T(e){return m.find(t=>y.get(t)===e)||String(e)}function U(e){let t=m.findIndex(t=>y.get(t)===e);return -1===t||t>=m.length-1?null:y.get(m[t+1])}function z(e){let t=String(e||"").trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():""}function W(e){return String(e||"玩家").trim().slice(0,16)||"玩家"}var J=e.i(99591),q=e.i(45309);let D="gandengyan";function K(...e){return e.filter(Boolean).join(" ")}function F(e,t){return String(e||"").toLowerCase()===String(t||"").toLowerCase()}function V(e){if(!("speechSynthesis"in window)||!e)return;window.speechSynthesis.cancel();let t=new SpeechSynthesisUtterance(e);t.lang="zh-CN",t.rate=1.1,window.speechSynthesis.speak(t)}function Q(e){return"J"===e?"勾":"Q"===e?"圈":"A"===e?"坚":"10"===e?"十":e}function X({player:e,active:n,winner:r,relation:a=""}){return e?(0,t.jsxs)("div",{className:K(q.default.player,n&&q.default.active,r&&q.default.winner),children:[(0,t.jsx)("div",{className:q.default.avatar,children:e.name.slice(0,1)}),(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:e.name}),(0,t.jsxs)("span",{children:[a,a?" · ":"",e.handCount," 张"]})]})]}):null}function Z({card:e,small:n=!1}){return(0,t.jsxs)("div",{className:K(q.default.card,q.default[e.color],n&&q.default.small),children:[(0,t.jsx)("span",{children:e.label}),(0,t.jsx)("i",{children:"Joker"===e.suit?"*":e.label.slice(0,1)})]})}e.s(["default",0,function(){let e=(0,f.useAppStore)(e=>e.isDarkMode),g=(0,f.useAppStore)(e=>e.setIsDarkMode),j=(0,f.useAppStore)(e=>e.addToast),x=(0,p.useUserStore)(e=>e.initializeUser),[C,$]=(0,n.useState)(""),[E,G]=(0,n.useState)([]),[P,I]=(0,n.useState)(!1),B=(0,n.useRef)(""),T=(0,n.useRef)(!1),Y=(0,c.useGameRoom)({gameId:D,onError:e=>j(e,"error")});(0,n.useEffect)(()=>{x()},[x]),(0,n.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get("room")?.toUpperCase();e&&($(e),B.current=e)},[]),(0,n.useEffect)(()=>{let e=B.current;!e||T.current||Y.isBackendReady&&Y.userIdentity&&(T.current=!0,B.current="",Y.joinRoom(e).then(e=>{e&&j("已进入房间","success")}))},[Y.isBackendReady,Y.userIdentity,Y.joinRoom,j]),(0,n.useEffect)(()=>{if(!Y.roomCode)return;let e=`/game/gandengyan?room=${Y.roomCode}`;`${window.location.pathname}${window.location.search}`!==e&&window.history.replaceState(null,"",e)},[Y.roomCode]);let ee=(0,n.useMemo)(()=>(0,J.deriveGameRoomLobby)(Y.messages,Y.roomCode?{gameId:D,roomCode:Y.roomCode}:{gameId:D}),[Y.messages,Y.roomCode]),et=(0,n.useMemo)(()=>(0,J.getLatestGameState)(Y.messages,{gameId:D,roomCode:Y.roomCode}),[Y.messages,Y.roomCode]),en=et?.payload?.state,er=en?.players.find(e=>F(e.address,Y.userIdentity?.address)),ea=F(en?.ownerAddress||ee.hostAddress,Y.userIdentity?.address),es=en?.status==="playing"&&en.currentSeat===er?.seat,el=(0,n.useMemo)(()=>E.map(e=>er?.hand.find(t=>t.id===e)).filter(Boolean),[E,er]),ei=(0,n.useMemo)(()=>v(el),[el]),eo=Y.roomCode&&1?`${window.location.origin}/game/gandengyan?room=${Y.roomCode}`:"",eu=(0,n.useRef)(-1),ed=(0,n.useRef)(""),ec=(0,n.useRef)(!1);(0,n.useEffect)(()=>{G([])},[en?.seq]),(0,n.useEffect)(()=>{if(!en)return;let e=en.seq;if(eu.current<0){eu.current=e;return}if(e===eu.current)return;if(eu.current=e,"finished"!==en.status&&(ec.current=!1),"finished"===en.status&&null!==en.winnerSeat){ec.current||(ec.current=!0,V("游戏结束"));return}let t=en.log[0]||"";if(t&&t!==ed.current){ed.current=t;let e=function(e){if(!e)return"";if(/不要/.test(e)||/本轮结束/.test(e))return"不要";if(/新一局开始/.test(e))return"新一局开始";if(/获胜/.test(e))return"游戏结束";let t=e.match(/出\s+(\S+?)(?:(([^)]+)))?\s+(?:[♠♥♣♦]|小王|大王)/);if(!t)return"";let n=t[1],r=t[2];if(!r)return n;let a=r.split(/\s+/).map(Q);if("对子"===n)return`对${a[0]}`;if("单张"===n)return a[0];if(/炸弹/.test(n))return`${a[0]}炸`;if("顺子"===n)return a.join(" ");if("连对"===n){let e=[];for(let t=0;t<a.length;t+=2)e.push(a[t]);return"连对 "+e.flatMap(e=>[e,e]).join(" ")}return n}(t);e&&V(e)}},[en?.seq]),(0,n.useEffect)(()=>{if(!ea||!Y.roomCode||!Y.userIdentity||et||0===ee.players.length)return;let e=function({roomCode:e,ownerAddress:t,ownerName:n,players:r=[],random:a=Math.random}){let s=_(r);return s.some(e=>e.address===z(t))||s.unshift({address:z(t),name:W(n)}),b({id:String(e||"").toUpperCase(),ownerAddress:z(t),status:"lobby",seq:1,players:s.slice(0,6).map((e,t)=>({address:e.address,name:W(e.name),seat:t,hand:[],handCount:0,score:1e3,playedCards:0})),deck:[],discard:[],table:null,currentSeat:0,lastWinnerSeat:null,previousWinnerSeat:null,passSeats:[],baseScore:1,bombCount:0,diceRolls:[],roundResult:null,log:["房间已创建"],winnerSeat:null,random:a})}({roomCode:Y.roomCode,ownerAddress:Y.userIdentity.address,ownerName:Y.userIdentity.displayName||Y.userIdentity.username,players:ee.players});Y.sendRoomEvent("room:state",{state:e,seq:e.seq})},[Y,ea,et,ee.players]),(0,n.useEffect)(()=>{if(!en||!ea||"lobby"!==en.status)return;let e=function(e,t=[]){let n=S(e);if(!n||"lobby"!==n.status)return n;let r=new Map(n.players.map(e=>[e.address,e.score]));return n.players=_(t).slice(0,6).map((e,t)=>({address:e.address,name:W(e.name),seat:t,hand:[],handCount:0,score:r.get(e.address)??1e3,playedCards:0})),n.seq+=1,b(n)}(en,ee.players);e&&e.players.length!==en.players.length&&Y.sendRoomEvent("room:state",{state:e,seq:e.seq})},[Y,ea,ee.players,en]);let ef=(0,n.useRef)(0),ep=(0,n.useMemo)(()=>Y.roomEvents.filter(e=>e.event?.event==="player:leave"),[Y.roomEvents]);async function eh(){await Y.createRoom()&&j("房间已创建","success")}async function em(e){e.preventDefault(),await Y.joinRoom(C)&&j("已进入房间","success")}async function eg(){eo&&(await navigator.clipboard.writeText(eo),I(!0),setTimeout(()=>I(!1),1400))}async function ey(e){await Y.sendRoomEvent("room:state",{state:e,seq:e.seq})}async function eb(){if(en&&ea)try{await ey(function(e,t=Math.random){let n=S(e);if(!n||n.players.length<2)throw Error("至少需要 2 名玩家");for(let e of(n.deck=function(e,t){let n=[...e];for(let e=n.length-1;e>0;e-=1){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}(function(){let e=[];for(let t of h)for(let n of m)e.push({id:`${t}-${n}`,suit:t,rank:n});return e.push({id:"SJ",suit:"Joker",rank:"SJ"}),e.push({id:"BJ",suit:"Joker",rank:"BJ"}),e.map(H)}(),t),n.discard=[],n.table=null,n.passSeats=[],n.winnerSeat=null,n.roundResult=null,n.baseScore=1,n.bombCount=0,n.status="playing",M(n)))e.hand=w(n,5),e.handCount=e.hand.length,e.playedCards=0,e.hand.sort(O);let r=function(e,t){if(null!==e.previousWinnerSeat)return e.diceRolls=[],M(e).find(t=>t.seat===e.previousWinnerSeat)||M(e)[0];let n=M(e),r=[];for(;n.length>1;){let a=Math.max(...(r=n.map(e=>{var n;return{seat:e.seat,name:e.name,value:(n=t,Math.floor(6*n())+1)}})).map(e=>e.value)),s=r.filter(e=>e.value===a);if(1===s.length)return e.diceRolls=r,n.find(e=>e.seat===s[0].seat);n=n.filter(e=>s.some(t=>t.seat===e.seat))}return e.diceRolls=r,n[0]}(n,t);return n.currentSeat=r.seat,n.lastWinnerSeat=null,n.log=[`新一局开始,${r.name} 先出牌`],n.diceRolls.length>0&&n.log.unshift(`骰子结果:${n.diceRolls.map(e=>`${e.name} ${e.value}`).join(",")}`),n.seq+=1,b(n)}(en))}catch(e){j(e instanceof Error?e.message:"开局失败","error")}}async function eS(){await eb()}async function ev(){if(!en||!Y.userIdentity)return;let e=function(e,t,n){var r,a;let s=S(e),l=N(s),i=z(t);if(!l||l.address!==i)return{ok:!1,error:"还没轮到你",state:b(s)};let o=n.map(e=>l.hand.find(t=>t.id===e));if(0===o.length||o.some(e=>!e))return{ok:!1,error:"手牌不存在",state:b(s)};let u=v(o);return u?(r=u,a=s.table?.combo,r&&(!a||"bomb"===r.type&&"bomb"!==a.type||r.type===a.type&&("bomb"===r.type?r.length!==a.length?r.length>a.length:r.value!==a.value?r.value>a.value:r.pure&&!a.pure:r.length===a.length&&("single"===r.type||"pair"===r.type?r.value===U(a.value)||r.value===y.get("2")&&a.value!==y.get("2"):r.value===U(a.value)))))?(o.sort(O),l.hand=l.hand.filter(e=>!n.includes(e.id)),l.handCount=l.hand.length,l.playedCards+=o.length,s.discard.push(...o),s.table={seat:l.seat,playerName:l.name,cards:o,combo:u},s.passSeats=[],s.lastWinnerSeat=l.seat,"bomb"===u.type&&(s.bombCount+=1,s.baseScore*=2),s.log.unshift(`${l.name} 出 ${u.label} ${o.map(L).join(" ")}${"bomb"===u.type?`,底分 ${s.baseScore}`:""}`),0===l.hand.length?k(s,l):A(s),s.seq+=1,{ok:!0,state:b(s)}):{ok:!1,error:"出的牌压不过上一手",state:b(s)}:{ok:!1,error:"这个牌型不合法",state:b(s)}}(en,Y.userIdentity.address,E);e.ok?await ey(e.state):j(e.error||"出牌失败","error")}async function ej(){var e;let t,n,r;if(!en||!Y.userIdentity)return;let a=(e=Y.userIdentity.address,n=N(t=S(en)),r=z(e),n&&n.address===r?t.table?(t.passSeats.includes(n.seat)||t.passSeats.push(n.seat),t.log.unshift(`${n.name} 不要`),R(t).map(e=>e.seat).filter(e=>e!==t.lastWinnerSeat).every(e=>t.passSeats.includes(e))?(function(e){for(let t of R(e)){if(0===e.deck.length)break;t.hand.push(...w(e,1)),t.handCount=t.hand.length,t.hand.sort(O)}}(t),t.currentSeat=t.lastWinnerSeat,t.table=null,t.passSeats=[],t.log.unshift("本轮结束,所有玩家各补 1 张,重新领出")):A(t),t.seq+=1,{ok:!0,state:b(t)}):{ok:!1,error:"领出时不能不要",state:b(t)}:{ok:!1,error:"还没轮到你",state:b(t)});a.ok?await ey(a.state):j(a.error||"操作失败","error")}return(0,n.useEffect)(()=>{if(ep.length<=ef.current)return;let e=ep.slice(ef.current);for(let t of(ef.current=ep.length,e)){let e=t.event?.payload?.player?.name||"玩家";j(`${e} 已退出房间`,"info")}},[ep,j]),(0,n.useEffect)(()=>{if(!en||!ea||"playing"!==en.status)return;let e=new Set(ee.players.map(e=>e.address.toLowerCase())),t=en.players.find(t=>!e.has(t.address.toLowerCase()));if(!t)return;let n=function(e,t){let n=S(e);if(!n)return null;let r=z(t),a=n.players.findIndex(e=>e.address===r);if(-1===a)return b(n);let s=n.players[a],l=n.currentSeat===s.seat,i=n.lastWinnerSeat===s.seat;n.players.splice(a,1),n.passSeats=n.passSeats.filter(e=>e!==s.seat),n.log.unshift(`${s.name} 已退出房间`);let o=M(n);if("playing"===n.status)if(o.length<=1)1===o.length?k(n,o[0]):(n.status="finished",n.log.unshift("玩家不足,本局结束"));else{if(l){let e=R(n);if(e.length>0){let t=e.findIndex(e=>e.seat>s.seat);n.currentSeat=e[t>=0?t:0].seat}}i&&n.table&&(n.table=null,n.passSeats=[])}return n.seq+=1,b(n)}(en,t.address);n&&ey(n)},[Y,ea,ee.players,en]),(0,t.jsx)(u.default,{sidebar:({closeSidebar:e})=>(0,t.jsx)(d.default,{activeGame:"gandengyan",closeSidebar:e}),headerTitle:(0,t.jsx)("h2",{className:"header-title",children:"干瞪眼"}),headerRight:(0,t.jsxs)("div",{className:q.default.headerActions,children:[en&&(0,t.jsxs)("button",{className:"btn btn-sm",onClick:eg,children:[(0,t.jsx)(r.Copy,{size:14}),P?"已复制":"分享房间"]}),(0,t.jsx)("button",{className:"btn btn-icon",onClick:()=>g(!e),title:"切换主题",children:e?(0,t.jsx)(o.Sun,{size:16}):(0,t.jsx)(a.Moon,{size:16})})]}),children:(0,t.jsx)("main",{className:q.default.page,children:en?(0,t.jsxs)("section",{className:q.default.gameGrid,children:[(0,t.jsxs)("div",{className:q.default.tablePanel,children:[(0,t.jsxs)("div",{className:q.default.roomBar,children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("strong",{children:["房间 ",en.id]}),(0,t.jsx)("span",{children:"lobby"===en.status?"等待开局":"finished"===en.status?"本局结束":"进行中"})]}),(0,t.jsx)("div",{className:q.default.badges,children:(0,t.jsx)("span",{children:Y.connected?"在线":"离线"})})]}),(0,t.jsx)("div",{className:q.default.seats,children:en.players.map(e=>(0,t.jsx)(X,{player:e,active:en.currentSeat===e.seat,winner:en.winnerSeat===e.seat,relation:function(e,t,n){if(!e)return`座位 ${t.seat+1}`;let r=(t.seat-e.seat+n)%n;return 0===r?"我":2===n?"对手位":3===n?1===r?"下家/对手位":"上家/对手位":4===n?1===r?"下家/对手位":2===r?"对家/队友位":"上家/对手位":r%2==0?`座位 ${t.seat+1}/队友位`:`座位 ${t.seat+1}/对手位`}(er,e,en.players.length)},e.seat))}),(0,t.jsxs)("div",{className:q.default.centerTable,children:[(0,t.jsxs)("div",{className:q.default.deckBox,children:[(0,t.jsx)("span",{children:"牌堆"}),(0,t.jsx)("strong",{children:en.deckCount})]}),(0,t.jsx)("div",{className:q.default.playedBox,children:en.table?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("strong",{children:[en.table.playerName," 出"," ",en.table.combo?.label||"牌"]}),(0,t.jsx)("div",{className:q.default.playedCards,children:en.table.cards.map(e=>(0,t.jsx)(Z,{card:e,small:!0},e.id))})]}):(0,t.jsx)("span",{children:"等待领出"})}),(0,t.jsxs)("div",{className:q.default.deckBox,children:[(0,t.jsx)("span",{children:"底分"}),(0,t.jsx)("strong",{children:en.baseScore})]})]}),(0,t.jsx)("div",{className:q.default.notice,children:"finished"===en.status?en.roundResult?(0,t.jsxs)("div",{className:q.default.resultDetail,children:[(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:en.roundResult.winnerName})," 获胜,赢"," ",en.roundResult.winnerGain," 分",en.roundResult.bombCount>0&&`(${en.roundResult.bombCount} 个炸弹)`]}),en.roundResult.losers.map(e=>(0,t.jsxs)("p",{children:[e.name,e.sealed?"(封牌)扣 20 分":`剩 ${e.cardsLeft} 张,扣 ${e.loss} 分`]},e.seat))]}):`${en.players.find(e=>e.seat===en.winnerSeat)?.name} 获胜`:es?"轮到你出牌":`等待 ${en.players.find(e=>e.seat===en.currentSeat)?.name||"玩家"}`})]}),(0,t.jsxs)("aside",{className:q.default.sidePanel,children:[(0,t.jsxs)("section",{className:q.default.panel,children:[(0,t.jsx)("h3",{children:"牌局"}),ea&&"lobby"===en.status&&(0,t.jsxs)("button",{className:"btn btn-primary",disabled:en.players.length<2,onClick:eb,children:[(0,t.jsx)(s.Play,{size:16}),"开始游戏"]}),ea&&"finished"===en.status&&(0,t.jsxs)("button",{className:"btn btn-primary",onClick:eS,children:[(0,t.jsx)(l,{size:16}),"再来一局"]}),!ea&&(0,t.jsx)("p",{className:q.default.status,children:"等待房主操作。"})]}),(0,t.jsxs)("section",{className:q.default.panel,children:[(0,t.jsx)("h3",{children:"分数"}),(0,t.jsxs)("div",{className:q.default.scoreMeta,children:[(0,t.jsxs)("span",{children:["炸弹 ",en.bombCount," 次"]}),(0,t.jsxs)("span",{children:["弃牌 ",en.discardCount," 张"]})]}),en.players.map(e=>(0,t.jsxs)("div",{className:q.default.scoreRow,children:[(0,t.jsx)("span",{children:e.name}),(0,t.jsx)("strong",{children:e.score})]},e.seat))]}),(0,t.jsxs)("section",{className:K(q.default.panel,q.default.logPanel),children:[(0,t.jsx)("h3",{children:"牌局记录"}),en.log.map((e,n)=>(0,t.jsx)("p",{children:e},`${e}-${n}`))]})]}),(0,t.jsxs)("div",{className:q.default.handPanel,children:[(0,t.jsx)(X,{player:er,active:es,winner:en.winnerSeat===er?.seat}),(0,t.jsx)("div",{className:q.default.hand,children:er?.hand.map(e=>(0,t.jsx)("button",{className:K(q.default.cardButton,E.includes(e.id)&&q.default.picked),onClick:()=>{var t;return t=e.id,void G(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},children:(0,t.jsx)(Z,{card:e})},e.id))}),(0,t.jsxs)("div",{className:q.default.actions,children:[(0,t.jsxs)("div",{className:K(q.default.preview,ei&&q.default.valid),children:[(0,t.jsx)("strong",{children:ei?ei.label:E.length?"牌型不合法":"先选牌"}),(0,t.jsx)("span",{children:el.map(e=>e.label).join(" ")||"按选择顺序解释大小王"})]}),(0,t.jsxs)("button",{className:"btn btn-primary",disabled:!es||0===E.length||!ei,onClick:ev,children:[(0,t.jsx)(i.Send,{size:16}),"出牌"]}),(0,t.jsx)("button",{className:"btn",disabled:!es||!en.table,onClick:ej,children:"不要"})]})]})]}):(0,t.jsxs)("section",{className:q.default.entry,children:[(0,t.jsxs)("div",{className:q.default.entryBrand,children:[(0,t.jsx)("div",{className:q.default.cardMark,children:"干"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{children:"干瞪眼牌桌"}),(0,t.jsx)("p",{children:"创建房间码邀请朋友加入,房间状态通过 MostBox P2P 频道同步。"})]})]}),(0,t.jsxs)("div",{className:q.default.entryPanel,children:[(0,t.jsxs)("div",{className:q.default.accountLine,children:[(0,t.jsx)("span",{children:"当前账号"}),(0,t.jsx)("strong",{children:Y.userIdentity?.displayName||"未登录"})]}),(0,t.jsxs)("button",{className:"btn btn-primary",disabled:Y.joining,onClick:eh,children:[(0,t.jsx)(s.Play,{size:16}),"创建房间"]}),(0,t.jsxs)("form",{onSubmit:em,className:q.default.joinForm,children:[(0,t.jsxs)("label",{children:["房间号",(0,t.jsx)("input",{value:C,maxLength:8,onChange:e=>$(e.target.value.toUpperCase()),placeholder:"输入房间号"})]}),(0,t.jsx)("button",{className:"btn",disabled:Y.joining||!C,children:"加入房间"})]}),(0,t.jsx)("p",{className:q.default.status,children:Y.isBackendReady?"节点已连接":"正在连接节点..."})]})]})})})}],31678)}]);