most-box 0.1.3 → 0.1.5

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 (205) hide show
  1. package/README.md +7 -4
  2. package/electron/main.js +31 -10
  3. package/out/404/index.html +2 -2
  4. package/out/404.html +2 -2
  5. package/out/__next.__PAGE__.txt +6 -6
  6. package/out/__next._full.txt +15 -15
  7. package/out/__next._head.txt +3 -3
  8. package/out/__next._index.txt +7 -7
  9. package/out/__next._tree.txt +4 -4
  10. package/out/_next/static/chunks/{0hpev4am9jpmu.css → 0.4ov9319fecg.css} +1 -1
  11. package/out/_next/static/chunks/0._8s6pbfw.xk.js +1 -0
  12. package/out/_next/static/chunks/02jvyg27pp0mz.js +1 -0
  13. package/out/_next/static/chunks/02zzxfop_k6tl.css +1 -0
  14. package/out/_next/static/chunks/06lttvu7563zo.css +1 -0
  15. package/out/_next/static/chunks/{0pt.5cg1t09qs.js → 08qqf0rsi3oot.js} +1 -1
  16. package/out/_next/static/chunks/{0adx~d-j05c9d.css → 09h7l4i38xc7q.css} +1 -1
  17. package/out/_next/static/chunks/09hqx79-jkvm_.css +1 -0
  18. package/out/_next/static/chunks/09vcm1ku9k7o8.js +1 -0
  19. package/out/_next/static/chunks/0c6e_d2jq179x.js +1 -0
  20. package/out/_next/static/chunks/0ccalho416.d7.js +1 -0
  21. package/out/_next/static/chunks/0exj_tg.ew-t3.js +1 -0
  22. package/out/_next/static/chunks/0f-wz5d~tv-r4.js +1 -0
  23. package/out/_next/static/chunks/0f0jhsujtf-61.js +1 -0
  24. package/out/_next/static/chunks/0hyds~bp.auvh.js +1 -0
  25. package/out/_next/static/chunks/0ig8a4sazk3~2.css +1 -0
  26. package/out/_next/static/chunks/0iq1h7g4dudg8.js +1 -0
  27. package/out/_next/static/chunks/0knnzo9aih48r.js +1 -0
  28. package/out/_next/static/chunks/0nzyk~sg_tn._.js +1 -0
  29. package/out/_next/static/chunks/{12nr19.nnn6s3.js → 0t_3xxx4zkerp.js} +2 -2
  30. package/out/_next/static/chunks/0w~2fjq86t7c7.css +1 -0
  31. package/out/_next/static/chunks/0xrqerhosrp9~.js +1 -0
  32. package/out/_next/static/chunks/0xx_10jns1.s7.css +1 -0
  33. package/out/_next/static/chunks/14-fm9r_mom81.js +1 -0
  34. package/out/_next/static/chunks/14jhy~xia8lh8.js +1 -0
  35. package/out/_next/static/chunks/{turbopack-0xta0kqwzkf28.js → turbopack-05qngmxam3ar~.js} +1 -1
  36. package/out/_not-found/__next._full.txt +12 -12
  37. package/out/_not-found/__next._head.txt +3 -3
  38. package/out/_not-found/__next._index.txt +7 -7
  39. package/out/_not-found/__next._not-found.__PAGE__.txt +4 -4
  40. package/out/_not-found/__next._not-found.txt +3 -3
  41. package/out/_not-found/__next._tree.txt +2 -2
  42. package/out/_not-found/index.html +2 -2
  43. package/out/_not-found/index.txt +12 -12
  44. package/out/admin/__next._full.txt +14 -14
  45. package/out/admin/__next._head.txt +3 -3
  46. package/out/admin/__next._index.txt +7 -7
  47. package/out/admin/__next._tree.txt +3 -3
  48. package/out/admin/__next.admin.__PAGE__.txt +4 -4
  49. package/out/admin/__next.admin.txt +4 -4
  50. package/out/admin/index.html +2 -2
  51. package/out/admin/index.txt +14 -14
  52. package/out/app/__next._full.txt +13 -13
  53. package/out/app/__next._head.txt +3 -3
  54. package/out/app/__next._index.txt +7 -7
  55. package/out/app/__next._tree.txt +2 -2
  56. package/out/app/__next.app.__PAGE__.txt +4 -4
  57. package/out/app/__next.app.txt +3 -3
  58. package/out/app/index.html +2 -2
  59. package/out/app/index.txt +13 -13
  60. package/out/chat/__next._full.txt +14 -14
  61. package/out/chat/__next._head.txt +3 -3
  62. package/out/chat/__next._index.txt +7 -7
  63. package/out/chat/__next._tree.txt +3 -3
  64. package/out/chat/__next.chat.__PAGE__.txt +4 -4
  65. package/out/chat/__next.chat.txt +4 -4
  66. package/out/chat/index.html +2 -2
  67. package/out/chat/index.txt +14 -14
  68. package/out/chat/join/__next._full.txt +14 -14
  69. package/out/chat/join/__next._head.txt +3 -3
  70. package/out/chat/join/__next._index.txt +7 -7
  71. package/out/chat/join/__next._tree.txt +3 -3
  72. package/out/chat/join/__next.chat.join.__PAGE__.txt +4 -4
  73. package/out/chat/join/__next.chat.join.txt +3 -3
  74. package/out/chat/join/__next.chat.txt +4 -4
  75. package/out/chat/join/index.html +2 -2
  76. package/out/chat/join/index.txt +14 -14
  77. package/out/download/__next._full.txt +34 -36
  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 +4 -4
  81. package/out/download/__next.download.__PAGE__.txt +7 -7
  82. package/out/download/__next.download.txt +3 -3
  83. package/out/download/index.html +2 -2
  84. package/out/download/index.txt +34 -36
  85. package/out/favicon.ico +0 -0
  86. package/out/game/__next._full.txt +20 -0
  87. package/out/game/__next._head.txt +5 -0
  88. package/out/game/__next._index.txt +9 -0
  89. package/out/game/__next._tree.txt +5 -0
  90. package/out/game/__next.game.__PAGE__.txt +6 -0
  91. package/out/game/__next.game.txt +5 -0
  92. package/out/game/gandengyan/__next._full.txt +26 -0
  93. package/out/game/gandengyan/__next._head.txt +5 -0
  94. package/out/game/gandengyan/__next._index.txt +9 -0
  95. package/out/game/gandengyan/__next._tree.txt +6 -0
  96. package/out/game/gandengyan/__next.game.gandengyan.__PAGE__.txt +10 -0
  97. package/out/game/gandengyan/__next.game.gandengyan.txt +5 -0
  98. package/out/game/gandengyan/__next.game.txt +5 -0
  99. package/out/game/gandengyan/index.html +15 -0
  100. package/out/game/gandengyan/index.txt +26 -0
  101. package/out/game/index.html +1 -0
  102. package/out/game/index.txt +20 -0
  103. package/out/game/zhajinhua/__next._full.txt +25 -0
  104. package/out/game/zhajinhua/__next._head.txt +5 -0
  105. package/out/game/zhajinhua/__next._index.txt +9 -0
  106. package/out/game/zhajinhua/__next._tree.txt +5 -0
  107. package/out/game/zhajinhua/__next.game.txt +5 -0
  108. package/out/game/zhajinhua/__next.game.zhajinhua.__PAGE__.txt +9 -0
  109. package/out/game/zhajinhua/__next.game.zhajinhua.txt +5 -0
  110. package/out/game/zhajinhua/index.html +15 -0
  111. package/out/game/zhajinhua/index.txt +25 -0
  112. package/out/index.html +2 -2
  113. package/out/index.txt +15 -15
  114. package/out/logo-512.png +0 -0
  115. package/out/logo.ico +0 -0
  116. package/out/logo.svg +12 -0
  117. package/out/note/__next._full.txt +13 -13
  118. package/out/note/__next._head.txt +3 -3
  119. package/out/note/__next._index.txt +7 -7
  120. package/out/note/__next._tree.txt +2 -2
  121. package/out/note/__next.note.__PAGE__.txt +4 -4
  122. package/out/note/__next.note.txt +3 -3
  123. package/out/note/index.html +2 -2
  124. package/out/note/index.txt +13 -13
  125. package/out/ping/__next._full.txt +14 -14
  126. package/out/ping/__next._head.txt +3 -3
  127. package/out/ping/__next._index.txt +7 -7
  128. package/out/ping/__next._tree.txt +3 -3
  129. package/out/ping/__next.ping.__PAGE__.txt +5 -5
  130. package/out/ping/__next.ping.txt +3 -3
  131. package/out/ping/index.html +2 -2
  132. package/out/ping/index.txt +14 -14
  133. package/out/web3/__next._full.txt +13 -13
  134. package/out/web3/__next._head.txt +3 -3
  135. package/out/web3/__next._index.txt +7 -7
  136. package/out/web3/__next._tree.txt +2 -2
  137. package/out/web3/__next.web3.__PAGE__.txt +4 -4
  138. package/out/web3/__next.web3.txt +3 -3
  139. package/out/web3/ed25519/__next._full.txt +11 -11
  140. package/out/web3/ed25519/__next._head.txt +3 -3
  141. package/out/web3/ed25519/__next._index.txt +7 -7
  142. package/out/web3/ed25519/__next._tree.txt +2 -2
  143. package/out/web3/ed25519/__next.web3.ed25519.__PAGE__.txt +2 -2
  144. package/out/web3/ed25519/__next.web3.ed25519.txt +3 -3
  145. package/out/web3/ed25519/__next.web3.txt +3 -3
  146. package/out/web3/ed25519/index.html +1 -1
  147. package/out/web3/ed25519/index.txt +11 -11
  148. package/out/web3/index.html +2 -2
  149. package/out/web3/index.txt +13 -13
  150. package/out/web3/tools/__next._full.txt +11 -11
  151. package/out/web3/tools/__next._head.txt +3 -3
  152. package/out/web3/tools/__next._index.txt +7 -7
  153. package/out/web3/tools/__next._tree.txt +2 -2
  154. package/out/web3/tools/__next.web3.tools.__PAGE__.txt +2 -2
  155. package/out/web3/tools/__next.web3.tools.txt +3 -3
  156. package/out/web3/tools/__next.web3.txt +3 -3
  157. package/out/web3/tools/index.html +1 -1
  158. package/out/web3/tools/index.txt +11 -11
  159. package/package.json +6 -5
  160. package/public/favicon.ico +0 -0
  161. package/public/logo-512.png +0 -0
  162. package/public/logo.ico +0 -0
  163. package/public/logo.svg +12 -0
  164. package/server/index.js +0 -8
  165. package/server/src/config.js +1 -1
  166. package/server/src/core/gameRoom.js +222 -0
  167. package/server/src/core/zhajinhua.js +563 -0
  168. package/server/src/games/gandengyan.js +354 -413
  169. package/server/src/http/app.js +22 -14
  170. package/server/src/http/uploads.js +1 -0
  171. package/server/src/index.js +275 -90
  172. package/server/src/utils/avatar.js +3 -2
  173. package/out/_next/static/chunks/04mo7rr..0_1q.js +0 -1
  174. package/out/_next/static/chunks/06rf3qq5ggs6v.js +0 -1
  175. package/out/_next/static/chunks/07td.jq7xff84.css +0 -1
  176. package/out/_next/static/chunks/0_0oph_z1az14.js +0 -1
  177. package/out/_next/static/chunks/0ao1lbi4b.sfa.js +0 -1
  178. package/out/_next/static/chunks/0cl7d~7abnk_p.css +0 -1
  179. package/out/_next/static/chunks/0d306t1wvjpdx.js +0 -1
  180. package/out/_next/static/chunks/0g_a~e050bgzg.css +0 -1
  181. package/out/_next/static/chunks/0m_5nb6x8qy._.js +0 -1
  182. package/out/_next/static/chunks/0n.ayxmsar6e5.js +0 -1
  183. package/out/_next/static/chunks/0olqjomda37-e.js +0 -1
  184. package/out/_next/static/chunks/0qgx9t4jx16ua.css +0 -1
  185. package/out/_next/static/chunks/0s~g.l~x049o2.js +0 -1
  186. package/out/_next/static/chunks/0voe1.ttrh84k.css +0 -1
  187. package/out/_next/static/chunks/0wtf0xsiicxx6.js +0 -1
  188. package/out/_next/static/chunks/0x.ky97owcxxs.js +0 -1
  189. package/out/_next/static/chunks/0ysj5b94vu4ri.js +0 -1
  190. package/out/_next/static/chunks/153-sz7s.qml2.js +0 -1
  191. package/out/_next/static/chunks/17cwkb2yn_akx.js +0 -1
  192. package/out/_next/static/chunks/184hxsuf-5c84.js +0 -1
  193. package/out/gandengyan/__next._full.txt +0 -25
  194. package/out/gandengyan/__next._head.txt +0 -5
  195. package/out/gandengyan/__next._index.txt +0 -9
  196. package/out/gandengyan/__next._tree.txt +0 -5
  197. package/out/gandengyan/__next.gandengyan.__PAGE__.txt +0 -10
  198. package/out/gandengyan/__next.gandengyan.txt +0 -5
  199. package/out/gandengyan/index.html +0 -15
  200. package/out/gandengyan/index.txt +0 -25
  201. /package/out/_next/static/{aPEZ4zaaR5W3WpSZ0dFsa → 2smv1H9Y4Z2Ri-SL-UFgR}/_buildManifest.js +0 -0
  202. /package/out/_next/static/{aPEZ4zaaR5W3WpSZ0dFsa → 2smv1H9Y4Z2Ri-SL-UFgR}/_clientMiddlewareManifest.js +0 -0
  203. /package/out/_next/static/{aPEZ4zaaR5W3WpSZ0dFsa → 2smv1H9Y4Z2Ri-SL-UFgR}/_ssgManifest.js +0 -0
  204. /package/out/{pwa-512x512.png → avatar.png} +0 -0
  205. /package/public/{pwa-512x512.png → avatar.png} +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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)},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)},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)},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)},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)},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)},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)},71567,e=>{"use strict";let t=(0,e.i(56420).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",0,t],71567)},68590,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)},40983,e=>{"use strict";var t=e.i(18050),n=e.i(71645),i=e.i(22016),r=e.i(96699),a=e.i(35965);function l({size:e=24}){return(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.4"}),(0,t.jsx)("rect",{x:"14",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,t.jsx)("rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,t.jsx)("rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)"})]})}function s(){let[e,s]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=localStorage.getItem("theme"),t=window.matchMedia("(prefers-color-scheme: dark)").matches;("dark"===e||!e&&t)&&s(!0)},[]),(0,n.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)(i.default,{href:"/",className:"mkt-nav-logo",children:[(0,t.jsx)(l,{}),"MOST PEOPLE"]}),(0,t.jsxs)("div",{className:"mkt-nav-cta",children:[(0,t.jsx)("button",{className:"mkt-theme-toggle",onClick:()=>s(!e),"aria-label":"切换主题",children:e?(0,t.jsx)(a.Sun,{size:16}):(0,t.jsx)(r.Moon,{size:16})}),(0,t.jsx)(i.default,{href:"/app/",className:"btn btn-primary",children:"开始使用"})]})]})})})}let o=[{href:"/",label:"关于"},{href:"/ping/",label:"网络"},{href:"https://github.com/most-people/most",label:"GitHub",external:!0}];function c(){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:o.map(e=>(0,t.jsx)(i.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"]})]})})})}e.s(["MarketingLayout",0,function({children:e}){return(0,t.jsxs)("div",{className:"mkt-layout",children:[(0,t.jsx)(s,{}),(0,t.jsx)("main",{className:"mkt-layout-main",children:e}),(0,t.jsx)(c,{})]})}],40983)},23449,e=>{"use strict";let t;var n,i=e.i(18050),r=e.i(71645);let a=Object.freeze({left:0,top:0,width:16,height:16}),l=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),s=Object.freeze({...a,...l}),o=Object.freeze({...s,body:"",hidden:!1});function c(e,t){let n,i,r=(n={},!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0),(i=((e.rotate||0)+(t.rotate||0))%4)&&(n.rotate=i),n);for(let n in o)n in l?n in e&&!(n in r)&&(r[n]=l[n]):n in t?r[n]=t[n]:n in e&&(r[n]=e[n]);return r}function u(e,t){let n,i,r,a=[];if("object"!=typeof e||"object"!=typeof e.icons)return a;e.not_found instanceof Array&&e.not_found.forEach(e=>{t(e,null),a.push(e)});let l=(n=e.icons,i=e.aliases||Object.create(null),r=Object.create(null),Object.keys(n).concat(Object.keys(i)).forEach(function e(t){if(n[t])return r[t]=[];if(!(t in r)){r[t]=null;let n=i[t]&&i[t].parent,a=n&&e(n);a&&(r[t]=[n].concat(a))}return r[t]}),r);for(let n in l){let i=l[n];i&&(t(n,function(e,t,n){let i=e.icons,r=e.aliases||Object.create(null),a={};function l(e){a=c(i[e]||r[e],a)}return l(t),n.forEach(l),c(e,a)}(e,n,i)),a.push(n))}return a}let f={provider:"",aliases:{},not_found:{},...a};function d(e,t){for(let n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function h(e){if("object"!=typeof e||null===e||"string"!=typeof e.prefix||!e.icons||"object"!=typeof e.icons||!d(e,f))return null;let t=e.icons;for(let e in t){let n=t[e];if(!e||"string"!=typeof n.body||!d(n,o))return null}let n=e.aliases||Object.create(null);for(let e in n){let i=n[e],r=i.parent;if(!e||"string"!=typeof r||!t[r]&&!n[r]||!d(i,o))return null}return e}let p=Object.create(null);function g(e,t){let n=p[e]||(p[e]=Object.create(null));return n[t]||(n[t]={provider:e,prefix:t,icons:Object.create(null),missing:new Set})}function m(e,t){return h(t)?u(t,(t,n)=>{n?e.icons[t]=n:e.missing.add(t)}):[]}let y=/^[a-z0-9]+(-[a-z0-9]+)*$/,x=(e,t,n,i="")=>{let r=e.split(":");if("@"===e.slice(0,1)){if(r.length<2||r.length>3)return null;i=r.shift().slice(1)}if(r.length>3||!r.length)return null;if(r.length>1){let e=r.pop(),n=r.pop(),a={provider:r.length>0?r[0]:i,prefix:n,name:e};return t&&!b(a)?null:a}let a=r[0],l=a.split("-");if(l.length>1){let e={provider:i,prefix:l.shift(),name:l.join("-")};return t&&!b(e)?null:e}if(n&&""===i){let e={provider:i,prefix:"",name:a};return t&&!b(e,n)?null:e}return null},b=(e,t)=>!!e&&!!((t&&""===e.prefix||e.prefix)&&e.name),k=!1;function v(e){return"boolean"==typeof e&&(k=e),k}function j(e){let t="string"==typeof e?x(e,!0,k):e;if(t){let e=g(t.provider,t.prefix),n=t.name;return e.icons[n]||(e.missing.has(n)?null:void 0)}}let w=Object.freeze({width:null,height:null}),M=Object.freeze({...w,...l}),E=/(-?[0-9.]*[0-9]+[0-9.]*)/g,N=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function S(e,t,n){if(1===t)return e;if(n=n||100,"number"==typeof e)return Math.ceil(e*t*n)/n;if("string"!=typeof e)return e;let i=e.split(E);if(null===i||!i.length)return e;let r=[],a=i.shift(),l=N.test(a);for(;;){if(l){let e=parseFloat(a);isNaN(e)?r.push(a):r.push(Math.ceil(e*t*n)/n)}else r.push(a);if(void 0===(a=i.shift()))return r.join("");l=!l}}let z=/\sid="(\S+)"/g,T="IconifyId"+Date.now().toString(16)+(0x1000000*Math.random()|0).toString(16),O=0,C=Object.create(null);function F(e){return C[e]||C[""]}function A(e){let t;if("string"==typeof e.resources)t=[e.resources];else if(!((t=e.resources)instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:!0===e.random,index:e.index||0,dataAfterTimeout:!1!==e.dataAfterTimeout}}let I=Object.create(null),L=["https://api.simplesvg.com","https://api.unisvg.com"],P=[];for(;L.length>0;)1===L.length||Math.random()>.5?P.push(L.shift()):P.push(L.pop());I[""]=A({resources:["https://api.iconify.design"].concat(P)});let $=(()=>{let e;try{if(e=fetch,"function"==typeof e)return e}catch(e){}})();function H(e,t){e.forEach(e=>{let n=e.loaderCallbacks;n&&(e.loaderCallbacks=n.filter(e=>e.id!==t))})}let R=0,q={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function _(e){let t={...q,...e},n=[];function i(){n=n.filter(e=>"pending"===e().status)}return{query:function(e,r,a){let l=function(e,t,n,i){let r,a,l=e.resources.length,s=e.random?Math.floor(Math.random()*l):e.index;if(e.random){let t=e.resources.slice(0);for(r=[];t.length>1;){let e=Math.floor(Math.random()*t.length);r.push(t[e]),t=t.slice(0,e).concat(t.slice(e+1))}r=r.concat(t)}else r=e.resources.slice(s).concat(e.resources.slice(0,s));let o=Date.now(),c="pending",u=0,f=null,d=[],h=[];function p(){f&&(clearTimeout(f),f=null)}function g(){"pending"===c&&(c="aborted"),p(),d.forEach(e=>{"pending"===e.status&&(e.status="aborted")}),d=[]}function m(e,t){t&&(h=[]),"function"==typeof e&&h.push(e)}function y(){c="failed",h.forEach(e=>{e(void 0,a)})}function x(){d.forEach(e=>{"pending"===e.status&&(e.status="aborted")}),d=[]}return"function"==typeof i&&h.push(i),setTimeout(function i(){if("pending"!==c)return;p();let l=r.shift();if(void 0===l){if(d.length){f=setTimeout(()=>{p(),"pending"===c&&(x(),y())},e.timeout);return}y();return}let s={status:"pending",resource:l,callback:(t,n)=>{!function(t,n,l){let s="success"!==n;switch(d=d.filter(e=>e!==t),c){case"pending":break;case"failed":if(s||!e.dataAfterTimeout)return;break;default:return}if("abort"===n){a=l,y();return}if(s){a=l,d.length||(r.length?i():y());return}if(p(),x(),!e.random){let n=e.resources.indexOf(t.resource);-1!==n&&n!==e.index&&(e.index=n)}c="completed",h.forEach(e=>{e(l)})}(s,t,n)}};d.push(s),u++,f=setTimeout(i,e.rotate),n(l,t,s.callback)}),function(){return{startTime:o,payload:t,status:c,queriesSent:u,queriesPending:d.length,subscribe:m,abort:g}}}(t,e,r,(e,t)=>{i(),a&&a(e,t)});return n.push(l),l},find:function(e){return n.find(t=>e(t))||null},setIndex:e=>{t.index=e},getIndex:()=>t.index,cleanup:i}}let V=Object.create(null);function D(){}function U(e,t,n){function i(){let n=e.pendingIcons;t.forEach(t=>{n&&n.delete(t),e.icons[t]||e.missing.add(t)})}if(n&&"object"==typeof n)try{if(!m(e,n).length)return void i()}catch(e){console.error(e)}i(),e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;let t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1,i=e.provider,r=e.prefix;t.forEach(t=>{let a=t.icons,l=a.pending.length;a.pending=a.pending.filter(t=>{if(t.prefix!==r)return!0;let l=t.name;if(e.icons[l])a.loaded.push({provider:i,prefix:r,name:l});else{if(!e.missing.has(l))return n=!0,!0;a.missing.push({provider:i,prefix:r,name:l})}return!1}),a.pending.length!==l&&(n||H([e],t.id),t.callback(a.loaded.slice(0),a.missing.slice(0),a.pending.slice(0),t.abort))})}))}))}function B(e,t){e instanceof Promise?e.then(e=>{t(e)}).catch(()=>{t(null)}):t(e)}let G=/[\s,]+/,W={...M,inline:!1},Q={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},J={display:"inline-block"},K={backgroundColor:"currentColor"},X={backgroundColor:"transparent"},Y={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Z={WebkitMask:K,mask:K,background:X};for(let e in Z){let t=Z[e];for(let n in Y)t[e+n]=Y[n]}let ee={...W,inline:!0};function et(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}if(v(!0),n={prepare:(e,t,n)=>{let i=[],r=function(e,t){let n,i=I[e];if(!i)return 0;if(i.maxURL){let e=0;i.resources.forEach(t=>{e=Math.max(e,t.length)}),n=i.maxURL-e-i.path.length-(t+".json?icons=").length}else n=0;return n}(e,t),a="icons",l={type:a,provider:e,prefix:t,icons:[]},s=0;return n.forEach((n,o)=>{(s+=n.length+1)>=r&&o>0&&(i.push(l),l={type:a,provider:e,prefix:t,icons:[]},s=n.length),l.icons.push(n)}),i.push(l),i},send:(e,t,n)=>{if(!$)return void n("abort",424);let i=function(e){if("string"==typeof e){let t=I[e];if(t)return t.path}return"/"}(t.provider);switch(t.type){case"icons":i+=t.prefix+".json?"+new URLSearchParams({icons:t.icons.join(",")}).toString();break;case"custom":{let e=t.uri;i+="/"===e.slice(0,1)?e.slice(1):e;break}default:n("abort",400);return}let r=503;$(e+i).then(e=>{let t=e.status;return 200!==t?void setTimeout(()=>{n(404===t?"abort":"next",t)}):(r=501,e.json())}).then(e=>{"object"!=typeof e||null===e?setTimeout(()=>{404===e?n("abort",e):n("next",r)}):setTimeout(()=>{n("success",e)})}).catch(()=>{n("next",r)})}},C[""]=n,"u">typeof document&&"u">typeof window){let e=window;if(void 0!==e.IconifyPreload){let t=e.IconifyPreload,n="Invalid IconifyPreload syntax.";"object"==typeof t&&null!==t&&(t instanceof Array?t:[t]).forEach(e=>{try{("object"!=typeof e||null===e||e instanceof Array||"object"!=typeof e.icons||"string"!=typeof e.prefix||!function(e,t){if("object"!=typeof e)return!1;if("string"!=typeof t&&(t=e.provider||""),k&&!t&&!e.prefix){let t=!1;return h(e)&&(e.prefix="",u(e,(e,n)=>{(function(e,t){let n=x(e,!0,k);if(!n)return!1;let i=g(n.provider,n.prefix);if(!t)return i.missing.add(n.name),!0;var r=n.name;try{if("string"==typeof t.body)return i.icons[r]={...t},!0}catch(e){}return!1})(e,n)&&(t=!0)})),t}let n=e.prefix;return!!b({prefix:n,name:"a"})&&!!m(g(t,n),e)}(e))&&console.error(n)}catch(e){console.error(n)}})}if(void 0!==e.IconifyProviders){let t=e.IconifyProviders;if("object"==typeof t&&null!==t)for(let e in t){let n="IconifyProviders["+e+"] is invalid.";try{let i=t[e];if("object"!=typeof i||!i||void 0===i.resources)continue;!function(e,t){let n=A(t);return null!==n&&(I[e]=n,!0)}(e,i)&&console.error(n)}catch(e){console.error(n)}}}}function en(e){let[n,i]=(0,r.useState)(!!e.ssr),[a,l]=(0,r.useState)({}),[o,c]=(0,r.useState)(function(t){if(t){let t=e.icon;if("object"==typeof t)return{name:"",data:t};let n=j(t);if(n)return{name:t,data:n}}return{name:""}}(!!e.ssr));function u(){let e=a.callback;e&&(e(),l({}))}function f(e){if(JSON.stringify(o)!==JSON.stringify(e))return u(),c(e),!0}(0,r.useEffect)(()=>(i(!0),u),[]),(0,r.useEffect)(()=>{n&&function t(){var n;let i=e.icon;if("object"==typeof i)return void f({name:"",data:i});let r=j(i);f({name:i,data:r})&&(void 0===r?l({callback:((e,t)=>{var n;let i,r,a,l,s,o=(n=function(e,t=!0,n=!1){let i=[];return e.forEach(e=>{let r="string"==typeof e?x(e,t,n):e;r&&i.push(r)}),i}(e,!0,v()),a={loaded:[],missing:[],pending:[]},l=Object.create(null),n.sort((e,t)=>e.provider!==t.provider?e.provider.localeCompare(t.provider):e.prefix!==t.prefix?e.prefix.localeCompare(t.prefix):e.name.localeCompare(t.name)),s={provider:"",prefix:"",name:""},n.forEach(e=>{if(s.name===e.name&&s.prefix===e.prefix&&s.provider===e.provider)return;s=e;let t=e.provider,n=e.prefix,i=e.name,r=l[t]||(l[t]=Object.create(null)),o=r[n]||(r[n]=g(t,n));(i in o.icons?a.loaded:""===n||o.missing.has(i)?a.missing:a.pending).push({provider:t,prefix:n,name:i})}),a);if(!o.pending.length){let e=!0;return t&&setTimeout(()=>{e&&t(o.loaded,o.missing,o.pending,D)}),()=>{e=!1}}let c=Object.create(null),u=[];return o.pending.forEach(e=>{let{provider:t,prefix:n}=e;if(n===r&&t===i)return;i=t,r=n,u.push(g(t,n));let a=c[t]||(c[t]=Object.create(null));a[n]||(a[n]=[])}),o.pending.forEach(e=>{let{provider:t,prefix:n,name:i}=e,r=g(t,n),a=r.pendingIcons||(r.pendingIcons=new Set);a.has(i)||(a.add(i),c[t][n].push(i))}),u.forEach(e=>{let t=c[e.provider][e.prefix];t.length&&(e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{let t,n;e.iconsQueueFlag=!1;let{provider:i,prefix:r}=e,a=e.iconsToLoad;if(delete e.iconsToLoad,!a||!a.length)return;let l=e.loadIcon;if(e.loadIcons&&(a.length>1||!l))return void B(e.loadIcons(a,r,i),t=>{U(e,a,t)});if(l)return void a.forEach(t=>{B(l(t,r,i),n=>{let i=n?{prefix:r,icons:{[t]:n}}:null;U(e,[t],i)})});let{valid:s,invalid:o}=(t=[],n=[],a.forEach(e=>{(e.match(y)?t:n).push(e)}),{valid:t,invalid:n});if(o.length&&U(e,o,null),!s.length)return;let c=r.match(y)?F(i):null;c?c.prepare(i,r,s).forEach(t=>{!function(e,t,n){let i,r;if("string"==typeof e){let t=F(e);if(!t)return n(void 0,424);r=t.send;let a=function(e){if(!V[e]){let t=I[e];if(!t)return;let n=_(t);V[e]={config:t,redundancy:n}}return V[e]}(e);a&&(i=a.redundancy)}else{let t=A(e);if(t){i=_(t);let n=F(e.resources?e.resources[0]:"");n&&(r=n.send)}}i&&r?i.query(t,r,n)().abort:n(void 0,424)}(i,t,n=>{U(e,t.icons,n)})}):U(e,s,null)})))}),t?function(e,t,n){let i=R++,r=H.bind(null,n,i);if(!t.pending.length)return r;let a={id:i,icons:t,callback:e,abort:r};return n.forEach(e=>{(e.loaderCallbacks||(e.loaderCallbacks=[])).push(a)}),r}(t,o,u):D})([i],t)}):r&&(null==(n=e.onLoad)||n.call(e,i)))}()},[e.icon,n]);let{name:d,data:h}=o;return h?((e,n,i)=>{var a;let l,o,c,u,f,d,h,p,g,m,y,b,k,v=n.inline?ee:W,j=function(e,t){let n={...e};for(let e in t){let i=t[e],r=typeof i;e in w?(null===i||i&&("string"===r||"number"===r))&&(n[e]=i):r===typeof n[e]&&(n[e]="rotate"===e?i%4:i)}return n}(v,n),E=n.mode||"svg",N={},C=n.style||{},F={..."svg"===E?Q:{}};if(i){let e=x(i,!1,!0);if(e){let t=["iconify"];for(let n of["provider","prefix"])e[n]&&t.push("iconify--"+e[n]);F.className=t.join(" ")}}for(let e in n){let t=n[e];if(void 0!==t)switch(e){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":F.ref=t;break;case"className":F[e]=(F[e]?F[e]+" ":"")+t;break;case"inline":case"hFlip":case"vFlip":j[e]=!0===t||"true"===t||1===t;break;case"flip":"string"==typeof t&&function(e,t){t.split(G).forEach(t=>{switch(t.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0}})}(j,t);break;case"color":N.color=t;break;case"rotate":"string"==typeof t?j[e]=function(e,t=0){let n=e.replace(/^-?[0-9.]*/,"");function i(e){for(;e<0;)e+=4;return e%4}if(""===n){let t=parseInt(e);return isNaN(t)?0:i(t)}if(n!==e){let t=0;switch(n){case"%":t=25;break;case"deg":t=90}if(t){let r=parseFloat(e.slice(0,e.length-n.length));return isNaN(r)?0:(r/=t)%1==0?i(r):0}}return t}(t):"number"==typeof t&&(j[e]=t);break;case"ariaHidden":case"aria-hidden":!0!==t&&"true"!==t&&delete F["aria-hidden"];break;default:void 0===v[e]&&(F[e]=t)}}let A=(c={...s,...e},u={...M,...j},f={left:c.left,top:c.top,width:c.width,height:c.height},d=c.body,[c,u].forEach(e=>{var t,n,i,r;let a,l,s=[],o=e.hFlip,c=e.vFlip,u=e.rotate;switch(o?c?u+=2:(s.push("translate("+(f.width+f.left).toString()+" "+(0-f.top).toString()+")"),s.push("scale(-1 1)"),f.top=f.left=0):c&&(s.push("translate("+(0-f.left).toString()+" "+(f.height+f.top).toString()+")"),s.push("scale(1 -1)"),f.top=f.left=0),u<0&&(u-=4*Math.floor(u/4)),u%=4){case 1:s.unshift("rotate(90 "+(a=f.height/2+f.top).toString()+" "+a.toString()+")");break;case 2:s.unshift("rotate(180 "+(f.width/2+f.left).toString()+" "+(f.height/2+f.top).toString()+")");break;case 3:s.unshift("rotate(-90 "+(a=f.width/2+f.left).toString()+" "+a.toString()+")")}u%2==1&&(f.left!==f.top&&(a=f.left,f.left=f.top,f.top=a),f.width!==f.height&&(a=f.width,f.width=f.height,f.height=a)),s.length&&(t=d,n='<g transform="'+s.join(" ")+'">',i=(l=function(e,t="defs"){let n="",i=e.indexOf("<"+t);for(;i>=0;){let r=e.indexOf(">",i),a=e.indexOf("</"+t);if(-1===r||-1===a)break;let l=e.indexOf(">",a);if(-1===l)break;n+=e.slice(r+1,a).trim(),e=e.slice(0,i).trim()+e.slice(l+1)}return{defs:n,content:e}}(t)).defs,r=n+l.content+"</g>",d=i?"<defs>"+i+"</defs>"+r:r)}),h=u.width,p=u.height,g=f.width,m=f.height,null===h?l=S(o=null===p?"1em":"auto"===p?m:p,g/m):(l="auto"===h?g:h,o=null===p?S(l,m/g):"auto"===p?m:p),y={},(b=(e,t)=>{"unset"!==t&&"undefined"!==t&&"none"!==t&&(y[e]=t.toString())})("width",l),b("height",o),y.viewBox=(k=[f.left,f.top,g,m]).join(" "),{attributes:y,viewBox:k,body:d}),I=A.attributes;if(j.inline&&(N.verticalAlign="-0.125em"),"svg"===E){F.style={...N,...C},Object.assign(F,I);let e=0,i=n.id;return"string"==typeof i&&(i=i.replace(/-/g,"_")),F.dangerouslySetInnerHTML={__html:(a=function(e,t=T){let n,i=[];for(;n=z.exec(e);)i.push(n[1]);if(!i.length)return e;let r="suffix"+(0x1000000*Math.random()|Date.now()).toString(16);return i.forEach(n=>{let i="function"==typeof t?t(n):t+(O++).toString(),a=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(RegExp('([#;"])('+a+')([")]|\\.[a-z])',"g"),"$1"+i+r+"$3")}),e=e.replace(RegExp(r,"g"),"")}(A.body,i?()=>i+"ID"+e++:"iconifyReact"),void 0===t&&function(){try{t=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch(e){t=null}}(),t?t.createHTML(a):a)},(0,r.createElement)("svg",F)}let{body:L,width:P,height:$}=e,H="mask"===E||"bg"!==E&&-1!==L.indexOf("currentColor"),R=function(e,t){let n=-1===e.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let e in t)n+=" "+e+'="'+t[e]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+e+"</svg>"}(L,{...I,width:P+"",height:$+""});return F.style={...N,"--svg":'url("data:image/svg+xml,'+R.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")+'")',width:et(I.width),height:et(I.height),...J,...H?K:X,...C},(0,r.createElement)("span",F)})({...s,...h},e,d):e.children?e.children:e.fallback?e.fallback:(0,r.createElement)("span",{})}let ei=(0,r.forwardRef)((e,t)=>en({...e,_ref:t}));(0,r.forwardRef)((e,t)=>en({inline:!0,...e,_ref:t}));var er=e.i(66595),ea=e.i(31214),el=e.i(21357),es=e.i(56420);let eo=(0,es.default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);var ec=e.i(71567);let eu=(0,es.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),ef=(0,es.default)("camera",[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);var ed=e.i(68590);let eh=(0,es.default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),ep=(0,es.default)("smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);var eg=e.i(30274);let em=(0,es.default)("messages-square",[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]]);var ey=e.i(51921);let ex=(0,es.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),eb=(0,es.default)("triangle",[["path",{d:"M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"14u9p9"}]]),ek=(0,es.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var ev=e.i(66627);let ej=[{name:"Google",host:"google.com",icon:"simple-icons:google",fallback:(0,i.jsx)(er.Search,{size:20})},{name:"Cloudflare",host:"cloudflare.com",icon:"simple-icons:cloudflare",fallback:(0,i.jsx)(ea.Cloud,{size:20})},{name:"YouTube",host:"youtube.com",icon:"simple-icons:youtube",fallback:(0,i.jsx)(el.Play,{size:20})},{name:"GitHub",host:"github.com",icon:"simple-icons:github",fallback:(0,i.jsx)(eo,{size:20})},{name:"ChatGPT",host:"chatgpt.com",icon:"simple-icons:openai",fallback:(0,i.jsx)(ec.Bot,{size:20})},{name:"X",host:"x.com",icon:"simple-icons:x",fallback:(0,i.jsx)(eu,{size:20})},{name:"Instagram",host:"instagram.com",icon:"simple-icons:instagram",fallback:(0,i.jsx)(ef,{size:20})},{name:"Reddit",host:"reddit.com",icon:"simple-icons:reddit",fallback:(0,i.jsx)(ed.MessageSquare,{size:20})},{name:"Wikipedia",host:"wikipedia.org",icon:"simple-icons:wikipedia",fallback:(0,i.jsx)(eh,{size:20})},{name:"Apple",host:"apple.com",icon:"simple-icons:apple",fallback:(0,i.jsx)(ep,{size:20})},{name:"Telegram",host:"telegram.org",icon:"simple-icons:telegram",fallback:(0,i.jsx)(eg.Send,{size:20})},{name:"Discord",host:"discord.com",icon:"simple-icons:discord",fallback:(0,i.jsx)(em,{size:20})},{name:"TikTok",host:"tiktok.com",icon:"simple-icons:tiktok",fallback:(0,i.jsx)(ey.Music,{size:20})},{name:"npm",host:"npmjs.com",icon:"simple-icons:npm",fallback:(0,i.jsx)(ex,{size:20})},{name:"Vercel",host:"vercel.com",icon:"simple-icons:vercel",fallback:(0,i.jsx)(eb,{size:20})}];function ew({icon:e,fallback:t}){let[n,a]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let t=new Image;t.onload=()=>a(!0),t.onerror=()=>a(!1),t.src=`https://api.iconify.design/${e.replace(":","/")}.svg`},[e]),(0,i.jsxs)("span",{className:"brand-icon-wrap",children:[(0,i.jsx)("span",{className:`brand-icon-fallback ${n?"hidden":""}`,children:t}),(0,i.jsx)("span",{className:`brand-icon-real ${n?"visible":""}`,children:(0,i.jsx)(ei,{icon:e,width:20,height:20})})]})}function eM(){let[e,t]=(0,r.useState)(new Map),[n,a]=(0,r.useState)(!1),l=(0,r.useRef)(new Map),s=(0,r.useCallback)(e=>{t(t=>{let n=new Map(t);return n.set(e,{status:"pending",latency:0}),n});let n=new AbortController;l.current.set(e,n);let i=performance.now(),r=(n,i)=>{t(t=>{let r=new Map(t);return r.set(e,{status:n,latency:i}),r})},a=setTimeout(()=>{n.abort()},5e3);fetch(`https://${e}/`,{method:"HEAD",mode:"no-cors",cache:"no-store",signal:n.signal}).then(()=>{clearTimeout(a),r("ok",Math.round(performance.now()-i))}).catch(()=>{clearTimeout(a),r("timeout",0)})},[]),o=(0,r.useCallback)(()=>{a(!0);let e=new Map;ej.forEach(t=>{e.set(t.host,{status:"pending",latency:0})}),t(e);let n=new Set(ej.map(e=>e.host));ej.forEach(e=>{let i=new AbortController;l.current.set(e.host,i);let r=performance.now(),s=(i,r)=>{n.has(e.host)&&(n.delete(e.host),t(t=>{let n=new Map(t);return n.set(e.host,{status:i,latency:r}),n}),0===n.size&&a(!1))},o=setTimeout(()=>{i.abort()},5e3);fetch(`https://${e.host}/`,{method:"HEAD",mode:"no-cors",cache:"no-store",signal:i.signal}).then(()=>{clearTimeout(o),s("ok",Math.round(performance.now()-r))}).catch(()=>{clearTimeout(o),s("timeout",0)})})},[]);return(0,r.useEffect)(()=>(o(),()=>{l.current.forEach(e=>e.abort()),l.current.clear()}),[o]),(0,i.jsxs)("div",{className:"ping-page",children:[(0,i.jsxs)("div",{className:"ping-header",children:[(0,i.jsxs)("div",{className:"ping-title-wrap",children:[(0,i.jsx)(ev.Wifi,{size:28,className:"ping-title-icon"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h1",{className:"ping-title",children:"网络连通性"}),(0,i.jsx)("p",{className:"ping-subtitle",children:"通过向对应网站发送请求进行测试,延迟值仅供参考。"})]})]}),(0,i.jsx)("button",{className:"btn btn-icon",onClick:o,disabled:n,"aria-label":"重新测试全部",title:"重新测试全部",children:(0,i.jsx)(ek,{size:18,className:n?"ping-spin":""})})]}),(0,i.jsx)("div",{className:"ping-grid",children:ej.map(t=>{let n=e.get(t.host),r=!n||"pending"===n.status,a=n?.status==="timeout";return(0,i.jsxs)("div",{className:`ping-card ${r?"pending":""}`,children:[(0,i.jsxs)("div",{className:"ping-card-top",children:[(0,i.jsx)("span",{className:"ping-card-icon",children:(0,i.jsx)(ew,{icon:t.icon,fallback:t.fallback})}),(0,i.jsx)("a",{href:`https://${t.host}`,target:"_blank",rel:"noreferrer",className:"ping-card-name",children:t.name}),(0,i.jsx)("button",{className:"ping-card-refresh",onClick:()=>s(t.host),disabled:r,"aria-label":`重新测试 ${t.name}`,title:"重新测试",children:(0,i.jsx)(ek,{size:13,className:r?"ping-spin":""})})]}),(0,i.jsxs)("div",{className:"ping-card-bottom",children:[r?(0,i.jsx)("span",{className:"ping-pulse-dot"}):(0,i.jsx)("span",{className:`ping-status-label ${a?"is-error":"is-success"}`,children:a?"不可用":"可用"}),(0,i.jsx)("span",{className:`ping-latency ${r?"is-muted":a?"is-error":"is-success"}`,children:r?"--":a?"超时":`${n.latency} ms`})]})]},t.host)})})]})}var eE=e.i(40983);e.s(["default",0,function(){return(0,i.jsx)(eE.MarketingLayout,{children:(0,i.jsx)(eM,{})})}],23449)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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)},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)},50285,e=>{"use strict";let t=(0,e.i(56420).default)("hard-drive",[["path",{d:"M10 16h.01",key:"1bzywj"}],["path",{d:"M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"18tbho"}],["path",{d:"M21.946 12.013H2.054",key:"zqlbp7"}],["path",{d:"M6 16h.01",key:"1pmjb7"}]]);e.s(["HardDrive",0,t],50285)},10566,e=>{"use strict";let t=(0,e.i(56420).default)("notebook-pen",[["path",{d:"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4",key:"re6nr2"}],["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["path",{d:"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"pqwjuv"}]]);e.s(["NotebookPen",0,t],10566)},82022,e=>{"use strict";let t=(0,e.i(56420).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,t],82022)},70904,e=>{"use strict";let t=(0,e.i(56420).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,t],70904)},68590,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)},40983,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(22016),l=e.i(96699),i=e.i(35965);function n({size:e=24}){return(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.4"}),(0,t.jsx)("rect",{x:"14",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,t.jsx)("rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,t.jsx)("rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)"})]})}function r(){let[e,r]=(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)&&r(!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)(n,{}),"MOST PEOPLE"]}),(0,t.jsxs)("div",{className:"mkt-nav-cta",children:[(0,t.jsx)("button",{className:"mkt-theme-toggle",onClick:()=>r(!e),"aria-label":"切换主题",children:e?(0,t.jsx)(i.Sun,{size:16}):(0,t.jsx)(l.Moon,{size:16})}),(0,t.jsx)(s.default,{href:"/app/",className:"btn btn-primary",children:"开始使用"})]})]})})})}let c=[{href:"/",label:"关于"},{href:"/ping/",label:"网络"},{href:"https://github.com/most-people/most",label:"GitHub",external:!0}];function d(){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:c.map(e=>(0,t.jsx)(s.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"]})]})})})}e.s(["MarketingLayout",0,function({children:e}){return(0,t.jsxs)("div",{className:"mkt-layout",children:[(0,t.jsx)(r,{}),(0,t.jsx)("main",{className:"mkt-layout-main",children:e}),(0,t.jsx)(d,{})]})}],40983)},31713,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(22016),l=e.i(56420);let i=(0,l.default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);var n=e.i(68590),r=e.i(10566),c=e.i(70904);let d=(0,l.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),o=(0,l.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var h=e.i(89664),m=e.i(82022),p=e.i(62368),u=e.i(41220),x=e.i(50285);let k=(0,l.default)("gamepad-2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]);var j=e.i(3593);let y=[{id:"app",title:"MostBox",subtitle:"P2P 文件分享",icon:(0,t.jsx)(i,{size:28}),path:"/app/",requiresBackend:!0,hero:"P2P 文件分享,无需注册",desc:"基于 Hyperswarm 的去中心化文件传输,让文件分享回归点对点。MostBox 不是云盘;链接来自 CID,可用性来自当前在线种子。",features:["无需注册,打开浏览器即用","Hyperswarm P2P 直连传输","GB 级大文件流式处理","相同文件 = 相同 CID,链接可反复校验","下载完成后默认继续做种","相比微信、QQ 或网盘,不依赖中心化账号和云端托管","Web 端负责展示,完整发布、下载和持续做种依赖桌面客户端","MIT 开源,自托管,数据完全自主掌控"],steps:[{num:"1",title:"下载桌面客户端",desc:"支持 Windows、macOS 和 Linux,桌面端提供完整的 P2P 能力。",link:"/download",linkText:"前往下载页"},{num:"2",title:"安装并运行",desc:"安装后打开应用,即可使用。"},{num:"3",title:"开始分享",desc:"发布文件生成 most:// 链接,朋友下载校验通过后也会成为新的种子。"}]},{id:"chat",title:"P2P 聊天",subtitle:"频道加密通讯",icon:(0,t.jsx)(n.MessageSquare,{size:28}),path:"/chat/",requiresBackend:!0,hero:"去中心化频道聊天",desc:"基于 Hypercore 的 P2P 加密即时通讯。创建频道,邀请朋友,端到端加密,无需服务器中转。",features:["P2P 加密频道消息","本地登录身份保护消息署名","消息通过 Hyperswarm 网络同步","离线消息自动同步","无需中心化账号注册"],steps:[{num:"1",title:"下载桌面客户端",desc:"支持 Windows、macOS 和 Linux。",link:"/download",linkText:"前往下载页"},{num:"2",title:"创建频道",desc:"输入任意频道名即可加入或创建。"},{num:"3",title:"开始聊天",desc:"发送消息,P2P 网络自动同步给所有在线节点。"}]},{id:"note",title:"笔记",subtitle:"加密云备份",icon:(0,t.jsx)(r.NotebookPen,{size:28}),path:"/note/",requiresBackend:!1,hero:"Web3 加密笔记",desc:"使用本地 Web3 密钥加密 Markdown 笔记,可在浏览器本地保存并按需同步到云端备份。",features:["Markdown 块编辑器","公开 / 私密笔记切换","文件夹、搜索和移动","Web3 登录态加密","云端备份与恢复","独立于 P2P 文件分享"],steps:[{num:"1",title:"生成 Web3 账号",desc:"用用户名和密码派生本地密钥。"},{num:"2",title:"创建笔记",desc:"写 Markdown,按需切换为私密内容。"},{num:"3",title:"备份恢复",desc:"登录后可把加密笔记同步到云端。"}]},{id:"gandengyan",title:"干瞪眼",subtitle:"P2P 牌桌",icon:(0,t.jsx)(k,{size:28}),path:"/gandengyan/",requiresBackend:!0,hero:"常驻节点里的在线牌桌",desc:"把干瞪眼作为 MostBox 的独立页面接入,复用现有节点连接、Web3 登录身份和桌面端常驻入口。",features:["使用 MostBox 本地账号进入房间","复用现有节点 WebSocket,不新增独立服务端口","房间链接可直接分享给朋友","支持 1-2 副牌、2-6 人和人机陪测","游戏规则、服务端事件和页面样式拆分维护"],steps:[{num:"1",title:"登录账号",desc:"使用现有 MostBox Web3 本地账号作为牌桌身份。"},{num:"2",title:"创建房间",desc:"创建房间后复制链接,发给朋友加入。"},{num:"3",title:"开始调试",desc:"可先用人机补位测试出牌、计分和房间同步。"}]},{id:"web3",title:"Web3",subtitle:"账户工具箱",icon:(0,t.jsx)(c.Wallet,{size:28}),path:"/web3/",requiresBackend:!1,hero:"确定性密钥派生工具箱",desc:"纯前端运行的 Web3 账户工具。输入用户名和密码,即可生成 Ed25519 / x25519 密钥对、助记词、以太坊地址,支持 PEM 导出和地址派生。",features:["纯前端运行,无需后端","Ed25519 / x25519 密钥对生成","BIP-39 助记词派生","以太坊地址与私钥导出","PEM 格式密钥导出","二维码展示地址与助记词"],steps:[{num:"1",title:"输入用户名",desc:"用户名 + 密码(可选)作为种子。"},{num:"2",title:"查看密钥",desc:"即时生成 Ed25519、x25519 公钥与 IPNS ID。"},{num:"3",title:"导出使用",desc:"复制地址、导出 PEM、派生子地址。"}]}];function f(){let e=(0,j.useAppStore)(e=>e.hasBackend),l=(0,j.useAppStore)(e=>e.openConnectModal),[i,n]=(0,a.useState)("app"),r=y.find(e=>e.id===i)||y[0];return(0,t.jsxs)("div",{className:"portal-page",children:[(0,t.jsx)("section",{className:"portal-hero",children:(0,t.jsxs)("div",{className:"mkt-container",children:[(0,t.jsx)("h1",{className:"portal-hero-title",children:"MOST PEOPLE"}),(0,t.jsx)("p",{className:"portal-hero-subtitle",children:"去中心化 P2P 工具箱"})]})}),(0,t.jsx)("section",{className:"portal-cards-section",children:(0,t.jsxs)("div",{className:"mkt-container",children:[(0,t.jsx)("div",{className:"portal-cards",children:y.map(a=>{let l=i===a.id,r=a.requiresBackend,c=r?!0===e?"connected":!1===e?"disconnected":"checking":"none";return(0,t.jsxs)("button",{className:`portal-card ${l?"active":""}`,onClick:()=>n(a.id),children:[(0,t.jsx)(s.default,{href:a.path,className:"btn btn-icon portal-card-open-btn",onClick:e=>e.stopPropagation(),title:`打开${a.title}`,children:(0,t.jsx)(o,{size:16})}),(0,t.jsx)("div",{className:"portal-card-icon",children:a.icon}),(0,t.jsx)("div",{className:"portal-card-title",children:a.title}),(0,t.jsx)("div",{className:"portal-card-subtitle",children:a.subtitle}),r?(0,t.jsxs)("div",{className:`portal-card-status ${c}`,children:["checking"===c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"status-dot checking"}),"检测中"]}),"connected"===c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"status-dot connected"}),"已连接"]}),"disconnected"===c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"status-dot disconnected"}),"需连接"]})]}):(0,t.jsxs)("div",{className:"portal-card-status ready",children:[(0,t.jsx)("span",{className:"status-dot ready"}),"已就绪"]})]},a.id)})}),(0,t.jsxs)("div",{className:"portal-node-actions","aria-label":"节点入口",children:[(0,t.jsxs)("button",{onClick:l,className:"btn btn-secondary",children:[(0,t.jsx)(u.Server,{size:16}),"连接节点"]}),(0,t.jsxs)(s.default,{href:"/admin",className:"btn btn-secondary",children:[(0,t.jsx)(x.HardDrive,{size:16}),"节点管理"]})]})]})}),(0,t.jsx)("section",{className:"portal-marketing",children:(0,t.jsx)("div",{className:"mkt-container",children:(0,t.jsx)("div",{className:"portal-marketing-inner",children:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"portal-marketing-header",children:[(0,t.jsx)("h2",{children:r.hero}),(0,t.jsx)("p",{children:r.desc})]}),(0,t.jsx)("div",{className:"portal-marketing-features",children:r.features.map((e,a)=>(0,t.jsxs)("div",{className:"portal-feature-item",children:[(0,t.jsx)("span",{className:"portal-feature-icon",children:(0,t.jsx)(h.Check,{size:14,strokeWidth:3})}),(0,t.jsx)("span",{children:e})]},a))}),(0,t.jsx)("div",{className:"portal-marketing-steps",children:r.steps.map(e=>(0,t.jsxs)("div",{className:"portal-step",children:[(0,t.jsx)("span",{className:"portal-step-num",children:e.num}),(0,t.jsxs)("div",{className:"portal-step-content",children:[(0,t.jsx)("strong",{children:e.title}),(0,t.jsx)("p",{children:e.desc}),e.code&&(0,t.jsx)("code",{className:"portal-step-code",children:e.code}),e.link&&(0,t.jsx)("p",{className:"portal-step-link",children:(0,t.jsxs)("a",{href:e.link,target:"_blank",rel:"noopener noreferrer",children:[e.linkText," ",(0,t.jsx)(m.ExternalLink,{size:12})]})})]})]},e.num))}),(0,t.jsxs)("div",{className:"portal-actions",children:[(0,t.jsxs)(s.default,{href:r.path,className:"btn btn-primary",children:["进入 ",r.title,(0,t.jsx)(d,{size:16})]}),r.requiresBackend&&!1===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:l,className:"btn btn-secondary",children:[(0,t.jsx)(u.Server,{size:16}),"连接节点"]}),(0,t.jsxs)(s.default,{href:"/download",className:"btn btn-secondary",children:[(0,t.jsx)(p.Download,{size:16}),"下载桌面客户端"]})]})]})]})})})})]})}var v=e.i(40983);e.s(["default",0,function(){return(0,t.jsx)(v.MarketingLayout,{children:(0,t.jsx)(f,{})})}],31713)}]);
@@ -1 +0,0 @@
1
- .portal-page{min-height:calc(100dvh - 144px)}.portal-hero{text-align:center;padding:64px 24px 32px}.portal-hero-title{letter-spacing:-.03em;background:linear-gradient(135deg, var(--text-primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:48px;font-weight:700;line-height:1.1}.portal-hero-subtitle{color:var(--text-secondary);font-size:18px}@media (max-width:768px){.portal-hero{padding:40px 24px 24px}.portal-hero-title{font-size:36px}.portal-hero-subtitle{font-size:16px}}.portal-cards-section{padding-bottom:32px}.portal-cards{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (max-width:768px){.portal-cards{grid-template-columns:1fr}}.portal-card{text-align:center;background:var(--glass-bg-subtle);-webkit-backdrop-filter:var(--blur-sm);border:1px solid var(--glass-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition);border:2px solid #0000;flex-direction:column;align-items:center;gap:6px;padding:28px 20px;display:flex;position:relative}.portal-card:hover{background:var(--glass-bg);box-shadow:var(--glass-shadow);transform:translateY(-2px)}.portal-card.active{background:var(--glass-bg);border-color:var(--accent);box-shadow:0 4px 24px #5e6ad226}.portal-card-open-btn{opacity:.5;position:absolute;top:12px;right:12px}.portal-card:hover .portal-card-open-btn,.portal-card.active .portal-card-open-btn{opacity:1}.portal-card-icon{color:var(--accent);margin-bottom:4px}.portal-card-title{color:var(--text-primary);font-size:17px;font-weight:600}.portal-card-subtitle{color:var(--text-secondary);font-size:13px}.portal-node-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.portal-node-actions .btn{min-width:128px}.portal-card-status{border-radius:var(--radius-full);background:var(--glass-bg-subtle);border:1px solid var(--glass-border);align-items:center;gap:5px;margin-top:6px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.status-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.status-dot.checking{background:var(--warning);animation:1.2s ease-in-out infinite pulse-dot}.status-dot.connected{background:var(--success)}.status-dot.disconnected{background:var(--danger)}.status-dot.ready{background:var(--info)}@keyframes pulse-dot{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}.portal-marketing{padding-bottom:64px}.portal-marketing-inner{background:var(--glass-bg-subtle);-webkit-backdrop-filter:var(--blur-sm);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:40px;animation:.3s ease-out fadeInUp}@media (max-width:768px){.portal-marketing-inner{padding:24px}}.portal-marketing-header h2{margin-bottom:12px;font-size:28px;font-weight:600}.portal-marketing-header p{color:var(--text-secondary);max-width:60ch;font-size:16px;line-height:1.7}@media (max-width:768px){.portal-marketing-header h2{font-size:22px}.portal-marketing-header p{font-size:14px}}.portal-marketing-features{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:28px;display:grid}@media (max-width:768px){.portal-marketing-features{grid-template-columns:1fr}}.portal-feature-item{color:var(--text-secondary);align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.portal-feature-icon{color:var(--accent);flex-shrink:0;margin-top:1px}.portal-marketing-steps{border-top:1px solid var(--glass-border);flex-direction:column;gap:16px;margin-top:32px;padding-top:32px;display:flex}.portal-step{align-items:flex-start;gap:14px;display:flex}.portal-step-num{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.portal-step-content strong{color:var(--text-primary);font-size:15px;font-weight:600}.portal-step-content p{color:var(--text-secondary);margin-top:2px;font-size:13px}.portal-step-code{background:var(--glass-bg-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-mono);color:var(--text-primary);margin-top:8px;padding:10px 14px;display:block}.portal-step-link{margin-top:6px}.portal-step-link a{color:var(--accent);align-items:center;gap:4px;font-size:13px;display:inline-flex}.portal-actions{border-top:1px solid var(--glass-border);flex-wrap:wrap;gap:12px;margin-top:32px;padding-top:32px;display:flex}.portal-actions .mkt-btn-primary,.portal-actions .mkt-btn-secondary{align-items:center;gap:6px;display:inline-flex}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return i}};for(var s in n)Object.defineProperty(r,s,{enumerable:!0,get:n[s]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,o(e));else t.set(r,o(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return x},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return v},NormalizeError:function(){return g},PageNotFoundError:function(){return j},SP:function(){return m},ST:function(){return y},WEB_VITALS:function(){return a},execOnce:function(){return o},getDisplayName:function(){return d},getLocationOrigin:function(){return c},getURL:function(){return u},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return w}};for(var s in n)Object.defineProperty(r,s,{enumerable:!0,get:n[s]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>i.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=c();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&p(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,y=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class x extends Error{}class g extends Error{}class j extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var s in n)Object.defineProperty(r,s,{enumerable:!0,get:n[s]});let a=e.r(90809)._(e.r(98183)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",s=e.pathname||"",i=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(a.urlQueryToSearchParams(l)));let u=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o.test(n))&&!1!==c?(c="//"+(c||""),s&&"/"!==s[0]&&(s="/"+s)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),u&&"?"!==u[0]&&(u="?"+u),s=s.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${c}${s}${u}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return i(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return s}});let n=e.r(71645);function s(e,t){let r=(0,n.useRef)(null),s=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=s.current;t&&(s.current=null,t())}else e&&(r.current=a(e,n)),t&&(s.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(18967),s=e.r(52817);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,s.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return x},useLinkStatus:function(){return j}};for(var s in n)Object.defineProperty(r,s,{enumerable:!0,get:n[s]});let a=e.r(90809),o=e.r(18050),i=a._(e.r(71645)),l=e.r(95057),c=e.r(8372),u=e.r(18581),d=e.r(18967),p=e.r(5550);e.r(33525);let f=e.r(88540),h=e.r(91949),m=e.r(73668),y=e.r(9396);function x(t){var r,n;let s,a,x,[j,v]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),b=(0,i.useRef)(null),{href:w,as:S,children:N,prefetch:k=null,passHref:P,replace:C,shallow:E,scroll:O,onClick:A,onMouseEnter:U,onTouchStart:M,legacyBehavior:_=!1,onNavigate:T,transitionTypes:L,ref:R,unstable_dynamicOnHover:z,...B}=t;s=N,_&&("string"==typeof s||"number"==typeof s)&&(s=(0,o.jsx)("a",{children:s}));let $=i.default.useContext(c.AppRouterContext),I=!1!==k,F=!1!==k?null===(n=k)||"auto"===n?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,D="string"==typeof(r=S||w)?r:(0,l.formatUrl)(r);if(_){if(s?.$$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});a=i.default.Children.only(s)}let K=_?a&&"object"==typeof a&&a.ref:R,q=i.default.useCallback(e=>(null!==$&&(b.current=(0,h.mountLinkInstance)(e,D,$,F,I,v)),()=>{b.current&&((0,h.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,h.unmountPrefetchableInstance)(e)}),[I,D,$,F,v]),W={ref:(0,u.useMergedRef)(q,K),onClick(t){_||"function"!=typeof A||A(t),_&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!$||t.defaultPrevented||function(t,r,n,s,a,o,l){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){s&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(99781);i.default.startTransition(()=>{d(r,s?"replace":"push",!1===a?f.ScrollBehavior.NoScroll:f.ScrollBehavior.Default,n.current,l)})}}(t,D,b,C,O,T,L)},onMouseEnter(e){_||"function"!=typeof U||U(e),_&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),$&&I&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)},onTouchStart:function(e){_||"function"!=typeof M||M(e),_&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),$&&I&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)}};return(0,d.isAbsoluteUrl)(D)?W.href=D:_&&!P&&("a"!==a.type||"href"in a.props)||(W.href=(0,p.addBasePath)(D)),x=_?i.default.cloneElement(a,W):(0,o.jsx)("a",{...B,...W,children:s}),(0,o.jsx)(g.Provider,{value:j,children:x})}e.r(84508);let g=(0,i.createContext)(h.IDLE_LINK_STATUS),j=()=>(0,i.useContext)(g);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},41220,e=>{"use strict";let t=(0,e.i(56420).default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);e.s(["Server",0,t],41220)},46513,e=>{"use strict";let t=(0,e.i(56420).default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);e.s(["Monitor",0,t],46513)},36162,26158,e=>{"use strict";var t=e.i(56420);let r=(0,t.default)("apple",[["path",{d:"M12 6.528V3a1 1 0 0 1 1-1h0",key:"11qiee"}],["path",{d:"M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21",key:"110c12"}]]);e.s(["Apple",0,r],36162);let n=(0,t.default)("laptop",[["path",{d:"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",key:"1pdavp"}],["path",{d:"M20.054 15.987H3.946",key:"14rxg9"}]]);e.s(["Laptop",0,n],26158)},72382,e=>{"use strict";let t=(0,e.i(56420).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,t],72382)},80860,e=>{"use strict";let t=(0,e.i(56420).default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["EyeOff",0,t],80860)},14232,e=>{"use strict";var t=e.i(18050),r=e.i(71645);class n extends r.default.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("[ErrorBoundary]",e,t)}handleReload=()=>{window.location.reload()};render(){return this.state.hasError?(0,t.jsxs)("div",{className:"error-boundary-page",children:[(0,t.jsx)("h1",{className:"error-boundary-title",children:"出错了"}),(0,t.jsx)("p",{className:"error-boundary-desc",children:"发生了意外错误,请尝试重新加载页面"}),(0,t.jsx)("button",{onClick:this.handleReload,className:"error-boundary-btn",children:"重新加载"})]}):this.props.children}}e.s(["ErrorBoundary",0,n])},52925,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(3593),s=e.i(71192);e.i(4121);var a=e.i(80809),o=e.i(63676),i=e.i(62368),l=e.i(46513),c=e.i(36162),u=e.i(26158),d=e.i(22016),p=e.i(41220);let f=(0,e.i(56420).default)("unplug",[["path",{d:"m19 5 3-3",key:"yk6iyv"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z",key:"1snsnr"}]]);var h=e.i(26913);function m({variant:e="page"}){let s=(0,n.useAppStore)(e=>e.checkBackend),a=(0,n.useAppStore)(e=>e.addToast),o=(0,h.getRemoteBackendUrlExport)(),[i,l]=(0,r.useState)(o),[c,u]=(0,r.useState)((0,h.getBackendInviteExport)()),[d,y]=(0,r.useState)(!1),x=o?"修改远程节点":"连接远程节点",g="输入别人部署好的 MostBox 节点地址和邀请码,无需安装客户端即可使用文件分享和聊天。",j="page"===e;async function v(){let e=i.trim().replace(/\/+$/,"");if(!function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))return void a("请输入有效的 http(s) 节点地址","warning");y(!0);try{let{ok:t,reason:r}=await (0,h.checkBackendConnectionTarget)({url:e,invite:c});if(!t)return void("http"===r?a("远程节点 HTTP 不可达,请检查地址","error"):"ws"===r?a("远程节点 WebSocket 不可达,请检查地址或代理配置","error"):a("远程节点连接失败,请检查地址和邀请码","error"));(0,h.configureBackend)({url:e,invite:c}),l(e),(0,h.setBackendUrl)(e),n.useAppStore.setState({hasBackend:!0}),a("远程节点已连接","success")}catch{a("远程节点连接失败","error")}finally{y(!1)}}async function b(){(0,h.clearBackendConnection)(),l(""),u(""),await s(),a("已清除远程节点,优先使用本地节点","success")}return(0,t.jsxs)("div",{className:`remote-node-connect remote-node-connect-${e}`,children:[j?(0,t.jsxs)("div",{className:"remote-node-connect-heading",children:[(0,t.jsx)(p.Server,{size:20}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{children:x}),(0,t.jsx)("p",{children:g})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("label",{className:"drawer-label",children:[(0,t.jsx)(p.Server,{size:14,className:"icon-inline"}),x]}),(0,t.jsx)("p",{className:"drawer-hint drawer-hint-spaced",children:g})]}),(0,t.jsxs)("div",{className:"remote-node-form",children:[(0,t.jsx)("input",{className:"input input-compact",placeholder:"https://node.example.com",value:i,onChange:e=>l(e.target.value)}),(0,t.jsx)("input",{className:"input input-compact",placeholder:"邀请码",value:c,onChange:e=>u(e.target.value)}),(0,t.jsxs)("button",{className:"btn btn-primary btn-full",onClick:v,disabled:d||!i.trim(),children:[(0,t.jsx)(p.Server,{size:16}),d?"连接中...":o?"更新连接":"连接节点"]}),o&&(0,t.jsxs)("button",{className:"btn btn-secondary btn-full",onClick:b,disabled:d,children:[(0,t.jsx)(f,{size:16}),"断开连接"]})]}),o&&(0,t.jsxs)("p",{className:j?"remote-node-status":"drawer-status",children:["当前远程节点:",o]})]})}let y=function({onClose:e}){let r=(0,n.useAppStore)(e=>e.hasBackend),s=[{name:"Windows",icon:(0,t.jsx)(l.Monitor,{size:16}),ext:".exe"},{name:"macOS",icon:(0,t.jsx)(c.Apple,{size:16}),ext:".dmg"},{name:"Linux",icon:(0,t.jsx)(u.Laptop,{size:16}),ext:".AppImage"}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"drawer-backdrop",onClick:e}),(0,t.jsxs)("div",{className:"settings-drawer",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"drawer-header",children:[(0,t.jsx)("h2",{className:"drawer-title",children:"关于"}),(0,t.jsx)("button",{onClick:e,className:"btn btn-icon",children:(0,t.jsx)(o.X,{size:18})})]}),(0,t.jsxs)("div",{className:"drawer-content",children:[(0,t.jsxs)("div",{className:"drawer-section drawer-about",children:[(0,t.jsx)("h3",{children:"MostBox"}),(0,t.jsx)("p",{children:"版本 0.1.0"}),(0,t.jsx)("p",{className:"drawer-subtitle",children:"Hyperswarm · Hyperdrive · IPFS"})]}),(0,t.jsx)("div",{className:"drawer-divider"}),(0,t.jsx)("div",{className:"drawer-section",children:(0,t.jsx)(m,{variant:"drawer"})}),!1===r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"drawer-divider"}),(0,t.jsxs)("div",{className:"drawer-section",children:[(0,t.jsxs)("label",{className:"drawer-label",children:[(0,t.jsx)(i.Download,{size:14,className:"icon-inline"}),"下载桌面客户端"]}),(0,t.jsx)("p",{className:"drawer-hint drawer-hint-spaced",children:"Web 端仅用于界面展示。下载桌面客户端获得完整的 P2P 文件分享和加密聊天体验。"}),(0,t.jsx)("div",{className:"download-platforms-mini",children:s.map(r=>(0,t.jsxs)(d.default,{href:"/download",className:"download-platform-mini",onClick:e,children:[r.icon,(0,t.jsx)("span",{children:r.name}),(0,t.jsx)("span",{className:"download-platform-mini-ext",children:r.ext})]},r.name))})]}),(0,t.jsx)("div",{className:"drawer-divider"}),(0,t.jsxs)("div",{className:"drawer-section",children:[(0,t.jsx)("label",{className:"drawer-label",children:"说明"}),(0,t.jsxs)("div",{className:"drawer-note",children:[(0,t.jsx)("p",{children:"桌面客户端提供以下完整功能:"}),(0,t.jsxs)("ul",{children:[(0,t.jsx)("li",{children:"P2P 文件分享与下载"}),(0,t.jsx)("li",{children:"加密频道聊天"}),(0,t.jsx)("li",{children:"本地持久化存储"}),(0,t.jsx)("li",{children:"离线消息同步"}),(0,t.jsx)("li",{children:"大文件无限制传输"})]})]})]})]})]})]})]})};var x=e.i(74080),g=e.i(72382),j=e.i(80860),v=e.i(57667),b=e.i(93957);function w(){let e=(0,n.useAppStore)(e=>e.addToast),r=(0,s.useUserStore)(e=>e.showLoginModal),a=(0,s.useUserStore)(e=>e.closeLoginModal),i=(0,s.useUserStore)(e=>e.loginUsername),l=(0,s.useUserStore)(e=>e.loginPassword),c=(0,s.useUserStore)(e=>e.showPassword),u=(0,s.useUserStore)(e=>e.loginPreviewAddress),d=(0,s.useUserStore)(e=>e.hasPreviewedAvatar),p=(0,s.useUserStore)(e=>e.loginLoading),f=(0,s.useUserStore)(e=>e.loginError),h=(0,s.useUserStore)(e=>e.setLoginUsername),m=(0,s.useUserStore)(e=>e.setLoginPassword),y=(0,s.useUserStore)(e=>e.togglePassword),w=(0,s.useUserStore)(e=>e.previewLoginIdentity),S=(0,s.useUserStore)(e=>e.loginUser);if(!r)return null;let N=u?`${u.slice(0,6)}...${u.slice(-4)}`:"Most People",k=(0,t.jsx)(v.ModalOverlay,{onClose:a,closeOnOverlayClick:!0,children:(0,t.jsxs)("form",{className:"login-modal",onSubmit:t=>{let r;t.preventDefault(),(r=S())&&e(`已登录 ${r.username}`,"success")},children:[(0,t.jsxs)("div",{className:"login-modal-header",children:[(0,t.jsx)("h3",{children:"登录"}),(0,t.jsx)("button",{className:"login-modal-close",onClick:a,type:"button",children:(0,t.jsx)(o.X,{size:18})})]}),(0,t.jsxs)("div",{className:"login-modal-body",children:[(0,t.jsx)("img",{className:"login-avatar-preview",src:u?(0,b.generateAvatar)(u):"/pwa-512x512.png",alt:"avatar"}),(0,t.jsx)("p",{className:"login-tip",children:N}),f&&(0,t.jsx)("p",{className:"login-error",children:f}),(0,t.jsx)("input",{type:"text",className:"input input-compact",placeholder:"用户名",value:i,onChange:e=>h(e.target.value),autoFocus:!0}),(0,t.jsxs)("div",{className:"login-password-wrapper",children:[(0,t.jsx)("input",{type:c?"text":"password",className:"input input-compact",placeholder:"密码",value:l,onChange:e=>m(e.target.value)}),(0,t.jsx)("button",{className:"login-password-toggle",type:"button",onClick:y,children:c?(0,t.jsx)(j.EyeOff,{size:16}):(0,t.jsx)(g.Eye,{size:16})})]}),(0,t.jsxs)("div",{className:"login-buttons-row",children:[(0,t.jsx)("button",{className:"btn btn-secondary",onClick:w,disabled:d||p,type:"button",children:d?"检查地址":"登录"}),(0,t.jsx)("button",{className:"btn btn-primary",disabled:!d||p,type:"submit",children:p?"登录中":"确认"})]})]})]})});return(0,x.createPortal)(k,document.body)}function S(){let e=(0,n.useAppStore)(e=>e.showConnectModal),r=(0,n.useAppStore)(e=>e.closeConnectModal);if(!e)return null;let s=(0,t.jsx)(v.ModalOverlay,{onClose:r,closeOnOverlayClick:!0,children:(0,t.jsxs)("div",{className:"connect-modal",children:[(0,t.jsxs)("div",{className:"connect-modal-header",children:[(0,t.jsx)("h3",{children:"连接节点"}),(0,t.jsx)("button",{className:"connect-modal-close",onClick:r,type:"button",children:(0,t.jsx)(o.X,{size:18})})]}),(0,t.jsx)("div",{className:"connect-modal-body",children:(0,t.jsx)(m,{variant:"drawer"})})]})});return(0,x.createPortal)(s,document.body)}e.s(["default",0,function(){let e=(0,n.useAppStore)(e=>e.checkBackend),o=(0,n.useAppStore)(e=>e.initializeLocalData),i=(0,s.useUserStore)(e=>e.initializeUser),l=(0,s.useUserStore)(e=>e.identity),c=(0,n.useAppStore)(e=>e.loadUserNotes),u=(0,n.useAppStore)(e=>e.resetAppState),d=(0,n.useAppStore)(e=>e.toasts),p=(0,n.useAppStore)(e=>e.removeToast),f=(0,n.useAppStore)(e=>e.showSettings),h=(0,n.useAppStore)(e=>e.closeSettings);return(0,r.useEffect)(()=>{o(),i(),e()},[e,o,i]),(0,r.useEffect)(()=>{l?c(l.address):u()},[l?.address,c,u]),(0,t.jsxs)(t.Fragment,{children:[d.map((e,r)=>(0,t.jsx)(a.Toast,{message:e.message,type:e.type,onDone:()=>p(e.id),index:r},e.id)),f&&(0,t.jsx)(y,{onClose:h}),(0,t.jsx)(w,{}),(0,t.jsx)(S,{})]})}],52925)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,11241,e=>{"use strict";let s=(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,s],11241)},18566,(e,s,t)=>{s.exports=e.r(76562)},36768,e=>{"use strict";var s=e.i(18050),t=e.i(18566),a=e.i(22016),l=e.i(56420);let n=(0,l.default)("compass",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]]);var c=e.i(11241);let r=(0,l.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);e.s(["default",0,function(){let e=(0,t.useRouter)();return(0,s.jsx)("div",{className:"not-found-page",children:(0,s.jsxs)("div",{className:"not-found-card",children:[(0,s.jsx)("div",{className:"not-found-icon",children:(0,s.jsx)(n,{size:48,strokeWidth:1.5})}),(0,s.jsx)("h1",{className:"not-found-title",children:"页面未找到"}),(0,s.jsx)("p",{className:"not-found-desc",children:"你访问的页面似乎已经迷失在 P2P 网络中了"}),(0,s.jsxs)("div",{className:"not-found-actions",children:[(0,s.jsxs)("button",{onClick:()=>e.back(),className:"btn btn-secondary",children:[(0,s.jsx)(c.ArrowLeft,{size:16}),"上一页"]}),(0,s.jsxs)(a.default,{href:"/",className:"btn btn-primary",children:[(0,s.jsx)(r,{size:16}),"回首页"]})]})]})})}],36768)}]);
@@ -1 +0,0 @@
1
- .download-page{flex-direction:column;min-height:100dvh;display:flex}.download-hero{text-align:center;padding:64px 24px 48px}.download-hero-icon{border-radius:var(--radius-lg);background:var(--accent-soft);width:72px;height:72px;color:var(--accent);justify-content:center;align-items:center;margin-bottom:24px;display:inline-flex}.download-hero-title{letter-spacing:-.02px;background:linear-gradient(135deg, var(--text-primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:40px;font-weight:700;line-height:1.1}.download-hero-desc{color:var(--text-secondary);max-width:48ch;margin:0 auto;font-size:16px;line-height:1.6}.download-platforms{padding:48px 24px}.download-section-title{text-align:center;color:var(--text-primary);margin-bottom:32px;font-size:24px;font-weight:600}.download-options{gap:20px;display:grid}.download-source-note{text-align:center;color:var(--text-secondary);margin:0;font-size:14px}.download-platform-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.download-platform-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-primary);transition:all var(--transition);align-items:flex-start;gap:18px;padding:32px 24px;display:flex;position:relative}.download-platform-card:hover{background:var(--glass-bg-heavy);box-shadow:var(--glass-shadow);border-color:var(--accent);transform:translateY(-2px)}.download-platform-icon{color:var(--accent);border-radius:var(--radius-md);background:var(--accent-soft);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex}.download-platform-content{flex:1;gap:12px;min-width:0;display:grid}.download-platform-heading{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.download-platform-heading h3{margin:0;font-size:18px;font-weight:600}.download-platform-heading span,.download-recommended-badge{border-radius:var(--radius-sm);background:var(--glass-bg-heavy);border:1px solid var(--glass-border);min-height:24px;color:var(--text-secondary);align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.download-platform-card p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.download-platform-meta{gap:8px;margin:0;display:grid}.download-platform-meta div{grid-template-columns:56px minmax(0,1fr);align-items:center;gap:8px;display:grid}.download-platform-meta dt,.download-platform-meta dd{margin:0;font-size:12px;line-height:1.4}.download-platform-meta dt{color:var(--text-muted)}.download-platform-meta dd{color:var(--text-secondary);overflow-wrap:anywhere}.download-platform-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;display:flex}.download-platform-actions .btn{gap:8px}.download-platform-fallback{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;text-decoration:none;display:inline-flex}.download-platform-fallback:hover{color:var(--accent)}.download-recommended-badge{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);position:absolute;top:16px;right:16px}.download-platform-card.is-recommended{border-color:var(--accent)}.download-comparison{background:var(--glass-bg-subtle);border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);padding:48px 24px}.download-table-wrap{overflow-x:auto}.download-table{border-collapse:collapse;width:100%;max-width:600px;margin:0 auto}.download-table th,.download-table td{text-align:left;border-bottom:1px solid var(--glass-border);padding:14px 20px}.download-table th{color:var(--text-primary);font-size:14px;font-weight:600}.download-table td{color:var(--text-secondary);font-size:14px}.download-table td.col-web{color:var(--warning)}.download-table td.col-desktop{color:var(--success);font-weight:500}.download-cta{text-align:center;padding:64px 24px}.download-cta-desc{color:var(--text-secondary);margin-bottom:24px;font-size:16px;line-height:1.6}@media (max-width:768px){.download-hero-title{font-size:32px}.download-platform-grid{grid-template-columns:1fr;gap:16px}.download-platform-card{gap:16px;padding:20px}.download-platform-icon{flex-shrink:0;margin-bottom:0}.download-recommended-badge{align-self:flex-start;position:static}.download-platform-meta div{grid-template-columns:48px minmax(0,1fr)}}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96699,e=>{"use strict";let a=(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,a],96699)},35965,e=>{"use strict";let a=(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,a],35965)},11241,e=>{"use strict";let a=(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,a],11241)},59665,e=>{"use strict";var a=e.i(18050),s=e.i(71645),t=e.i(67228);let l=(0,e.i(56420).default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);e.i(22183);var n=e.i(5142);let r=(0,s.createContext)(null);e.s(["default",0,function({sidebar:e,headerTitle:d,headerRight:i,children:c}){let[o,u]=(0,n.useDisclosure)(!1),[h,m]=(0,s.useState)(!1),p=(0,t.useMediaQuery)("(max-width: 768px)"),g=()=>{p?u.open():m(!1)};return(0,a.jsx)(r.Provider,{value:{closeSidebar:u.close,openSidebar:g,isSidebarVisible:p?o:!h},children:(0,a.jsxs)("div",{className:"app-layout",children:[(0,a.jsx)("div",{className:`sidebar-overlay ${o?"visible":""}`,onClick:()=>u.close()}),(0,a.jsx)("div",{className:`sidebar ${o?"open":""} ${h?"collapsed":""}`,children:e({closeSidebar:u.close,openSidebar:g})}),(0,a.jsxs)("div",{className:"main-content",children:[(0,a.jsxs)("header",{className:"app-header",children:[(0,a.jsxs)("div",{className:"header-left",children:[(0,a.jsx)("button",{onClick:()=>{p?u.toggle():m(!h)},className:"btn btn-icon sidebar-toggle-btn","aria-label":p?"打开菜单":h?"展开侧边栏":"收起侧边栏",children:(0,a.jsx)(l,{size:16})}),d]}),(0,a.jsx)("div",{className:"header-right",children:i})]}),c]})]})})},"useAppShell",0,function(){let e=(0,s.useContext)(r);if(!e)throw Error("useAppShell must be used within AppShell");return e}],59665)},27648,e=>{"use strict";var a=e.i(18050),s=e.i(93957),t=e.i(71192);e.s(["default",0,function({className:e=""}){let l=(0,t.useUserStore)(e=>e.identity),n=(0,t.useUserStore)(e=>e.openLoginModal),r=(0,t.useUserStore)(e=>e.logoutUser);return(0,a.jsxs)("div",{className:`chat-sidebar-footer sidebar-account ${e}`,children:[(0,a.jsxs)("div",{className:"user-info",children:[(0,a.jsx)("img",{className:"user-avatar-img",src:(0,s.generateAvatar)(l?.address),alt:"avatar"}),(0,a.jsx)("span",{className:"user-name",title:l?.address,children:l?.displayName||"未登录"})]}),l?(0,a.jsx)("button",{className:"btn btn-ghost logout-btn",onClick:r,children:"退出"}):(0,a.jsx)("button",{className:"btn btn-primary login-btn",onClick:n,children:"登录"})]})}])},8734,e=>{"use strict";let a=(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,a],8734)},30274,e=>{"use strict";let a=(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,a],30274)},71567,e=>{"use strict";let a=(0,e.i(56420).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",0,a],71567)},21357,e=>{"use strict";let a=(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,a],21357)},93884,e=>{e.v({accountLine:"page-module__CrU-Oa__accountLine",actions:"page-module__CrU-Oa__actions",active:"page-module__CrU-Oa__active",avatar:"page-module__CrU-Oa__avatar",badges:"page-module__CrU-Oa__badges",black:"page-module__CrU-Oa__black",card:"page-module__CrU-Oa__card",cardButton:"page-module__CrU-Oa__cardButton",cardMark:"page-module__CrU-Oa__cardMark",centerTable:"page-module__CrU-Oa__centerTable",dangerBadge:"page-module__CrU-Oa__dangerBadge",deckBox:"page-module__CrU-Oa__deckBox",entry:"page-module__CrU-Oa__entry",entryBrand:"page-module__CrU-Oa__entryBrand",entryPanel:"page-module__CrU-Oa__entryPanel",error:"page-module__CrU-Oa__error",gameGrid:"page-module__CrU-Oa__gameGrid",hand:"page-module__CrU-Oa__hand",handPanel:"page-module__CrU-Oa__handPanel",headerActions:"page-module__CrU-Oa__headerActions",joinForm:"page-module__CrU-Oa__joinForm",logPanel:"page-module__CrU-Oa__logPanel",notice:"page-module__CrU-Oa__notice",page:"page-module__CrU-Oa__page",panel:"page-module__CrU-Oa__panel",picked:"page-module__CrU-Oa__picked",playedBox:"page-module__CrU-Oa__playedBox",playedCards:"page-module__CrU-Oa__playedCards",player:"page-module__CrU-Oa__player",preview:"page-module__CrU-Oa__preview",rangeLine:"page-module__CrU-Oa__rangeLine",red:"page-module__CrU-Oa__red",roomBar:"page-module__CrU-Oa__roomBar",scoreMeta:"page-module__CrU-Oa__scoreMeta",scoreRow:"page-module__CrU-Oa__scoreRow",seats:"page-module__CrU-Oa__seats",segmented:"page-module__CrU-Oa__segmented",selected:"page-module__CrU-Oa__selected",sidePanel:"page-module__CrU-Oa__sidePanel",small:"page-module__CrU-Oa__small",status:"page-module__CrU-Oa__status",tablePanel:"page-module__CrU-Oa__tablePanel",valid:"page-module__CrU-Oa__valid",winner:"page-module__CrU-Oa__winner"})},47938,e=>{"use strict";var a=e.i(18050),s=e.i(71645),t=e.i(22016),l=e.i(11241),n=e.i(71567),r=e.i(8734),d=e.i(96699),i=e.i(21357),c=e.i(56420);let o=(0,c.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 u=e.i(30274);let h=(0,c.default)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);var m=e.i(35965);let p=(0,c.default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);var g=e.i(59665),_=e.i(27648),x=e.i(26913),f=e.i(3593),j=e.i(71192),y=e.i(93884);let b=["3","4","5","6","7","8","9","10","J","Q","K","A","2"],v=b.filter(e=>"2"!==e),k=new Map(b.map((e,a)=>[e,a+3]));function C(...e){return e.filter(Boolean).join(" ")}function N({player:e,active:s,winner:t,relation:l=""}){return e?(0,a.jsxs)("div",{className:C(y.default.player,s&&y.default.active,t&&y.default.winner),children:[(0,a.jsx)("div",{className:y.default.avatar,children:e.bot?"AI":e.name.slice(0,1)}),(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:e.name}),(0,a.jsxs)("span",{children:[l,l?" · ":"",e.handCount," 张",e.connected?"":" · 掉线"]})]})]}):null}function U({card:e,small:s=!1}){return(0,a.jsxs)("div",{className:C(y.default.card,y.default[e.color],s&&y.default.small),children:[(0,a.jsx)("span",{children:e.label}),(0,a.jsx)("i",{children:"Joker"===e.suit?"★":e.label.slice(0,1)})]})}function O(e,a){return{label:`${e}(${a.map(P).join(" ")})`}}function w(e){if(!e)return;let a=`/gandengyan?room=${e}`;`${window.location.pathname}${window.location.search}`!==a&&window.history.replaceState(null,"",a)}function S(e){return e.length>0&&e.every(a=>a.rank===e[0].rank)}function M(e){return"SJ"===e.rank||"BJ"===e.rank}function B(e){return k.get(e.rank)||99}function P(e){return b.find(a=>k.get(a)===e)||String(e)}e.s(["default",0,function(){let e=(0,s.useRef)(null),[c,b]=(0,s.useState)(!1),[P,z]=(0,s.useState)(""),[$,A]=(0,s.useState)(null),[L,T]=(0,s.useState)(""),[R,E]=(0,s.useState)([]),[q,I]=(0,s.useState)(""),[J,F]=(0,s.useState)(!1),{isDarkMode:G,setIsDarkMode:H}=(0,f.useAppStore)(),{identity:K,initializeUser:V,openLoginModal:W}=(0,j.useUserStore)();(0,s.useEffect)(()=>{V()},[V]),(0,s.useEffect)(()=>{let a=!1,s=null;return async function(){let t=await (0,x.getAuthenticatedWebSocketUrl)("/ws");a||(e.current=s=new WebSocket(t),s.addEventListener("open",()=>b(!0)),s.addEventListener("close",()=>b(!1)),s.addEventListener("message",e=>{let a=JSON.parse(e.data);"gandengyan:hello"===a.event&&z(a.data.playerId),"gandengyan:roomCreated"===a.event&&(T(a.data.roomId),w(a.data.roomId)),"gandengyan:state"===a.event&&(A(a.data),w(a.data.id),E([]),I("")),"gandengyan:error"===a.event&&I(a.data.message)}))}(),()=>{a=!0,s?.close()}},[]),(0,s.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get("room")?.toUpperCase();e&&T(e)},[]);let D=(0,s.useMemo)(()=>$?.players.find(e=>e.id===P)||null,[$,P]),Q=$?.ownerId===P,X=$?.status==="playing"&&$.currentSeat===D?.seat,Y=(0,s.useMemo)(()=>R.map(e=>D?.hand.find(a=>a.id===e)).filter(Boolean),[R,D]),Z=(0,s.useMemo)(()=>(function(e){if(!e.length)return null;let a=e.filter(M).length,s=e.filter(e=>!M(e));if(0===s.length)return null;let t=function(e,a,s){if(e.length<3||!S(a))return null;let t=B(a[0]);return O(0===s?"纯炸弹":"带王炸弹",Array(e.length).fill(t))}(e,s,a);if(t)return t;if(1===e.length&&0===a)return O("单张",[B(e[0])]);if(2===e.length&&S(s)){let e=B(s[0]);return O("对子",[e,e])}return function(e){if(e.length<3)return null;for(let a=0;a<=v.length-e.length;a+=1){let s=v.slice(a,a+e.length).map(e=>k.get(e));if(e.every((e,a)=>M(e)||B(e)===s[a]))return O("顺子",s)}return null}(e)||function(e){if(e.length<4||e.length%2!=0)return null;let a=e.length/2;for(let s=0;s<=v.length-a;s+=1){let t=v.slice(s,s+a).map(e=>k.get(e)).flatMap(e=>[e,e]);if(e.every((e,a)=>M(e)||B(e)===t[a]))return O("连对",t)}return null}(e)})(Y),[Y]),ee=$&&1?`${window.location.origin}/gandengyan?room=${$.id}`:"",ea=!!($&&"playing"===$.status&&$.deckCount<3);function es(a,s={}){K?(I(""),e.current?.send(JSON.stringify({event:a,data:{...s,identity:K}}))):W()}function et(e,a){$&&es("gandengyan:settings",{settings:{...$.settings,[e]:a}})}return(0,a.jsx)(g.default,{sidebar:({closeSidebar:e})=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.default,{href:"/",className:"sidebar-header sidebar-header-link",children:[(0,a.jsx)(l.ArrowLeft,{size:18}),(0,a.jsx)("h1",{children:"MOST PEOPLE"})]}),(0,a.jsxs)("nav",{className:"sidebar-nav",children:[(0,a.jsxs)(t.default,{href:"/app/",className:"sidebar-nav-btn",onClick:e,children:[(0,a.jsx)(h,{size:16}),(0,a.jsx)("span",{children:"文件"})]}),(0,a.jsxs)(t.default,{href:"/chat/",className:"sidebar-nav-btn",onClick:e,children:[(0,a.jsx)(p,{size:16}),(0,a.jsx)("span",{children:"频道"})]}),(0,a.jsxs)(t.default,{href:"/gandengyan/",className:"sidebar-nav-btn active",onClick:e,children:[(0,a.jsx)(n.Bot,{size:16}),(0,a.jsx)("span",{children:"干瞪眼"})]})]}),(0,a.jsx)(_.default,{})]}),headerTitle:(0,a.jsx)("h2",{className:"header-title",children:"干瞪眼"}),headerRight:(0,a.jsxs)("div",{className:y.default.headerActions,children:[$&&(0,a.jsxs)("button",{className:"btn btn-sm",onClick:function(){navigator.clipboard.writeText(ee),F(!0),setTimeout(()=>F(!1),1400)},children:[(0,a.jsx)(r.Copy,{size:14}),J?"已复制":"分享房间"]}),(0,a.jsx)("button",{className:"btn btn-icon",onClick:()=>H(!G),title:"切换主题",children:G?(0,a.jsx)(m.Sun,{size:16}):(0,a.jsx)(d.Moon,{size:16})})]}),children:(0,a.jsx)("main",{className:y.default.page,children:$?(0,a.jsxs)("section",{className:y.default.gameGrid,children:[(0,a.jsxs)("div",{className:y.default.tablePanel,children:[(0,a.jsxs)("div",{className:y.default.roomBar,children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("strong",{children:["房间 ",$.id]}),(0,a.jsx)("span",{children:"lobby"===$.status?"等待开局":"finished"===$.status?"本局结束":"进行中"})]}),(0,a.jsxs)("div",{className:y.default.badges,children:[ea&&(0,a.jsx)("span",{className:y.default.dangerBadge,children:"牌堆不足 3 张"}),(0,a.jsx)("span",{children:c?"在线":"离线"})]})]}),(0,a.jsx)("div",{className:y.default.seats,children:$.players.map(e=>(0,a.jsx)(N,{player:e,active:$.currentSeat===e.seat,winner:$.winnerSeat===e.seat,relation:function(e,a,s){if(!e)return`座位 ${a.seat+1}`;let t=(a.seat-e.seat+s)%s;return 0===t?"我":2===s?"对手位":3===s?1===t?"下家/对手位":"上家/对手位":4===s?1===t?"下家/对手位":2===t?"对家/队友位":"上家/对手位":t%2==0?`座位 ${a.seat+1}/队友位`:`座位 ${a.seat+1}/对手位`}(D,e,$.players.length)},e.seat))}),(0,a.jsxs)("div",{className:y.default.centerTable,children:[(0,a.jsxs)("div",{className:y.default.deckBox,children:[(0,a.jsx)("span",{children:"牌堆"}),(0,a.jsx)("strong",{children:$.deckCount})]}),(0,a.jsx)("div",{className:y.default.playedBox,children:$.table?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("strong",{children:[$.table.playerName," 出 ",$.table.combo?.label||"牌"]}),(0,a.jsx)("div",{className:y.default.playedCards,children:$.table.cards.map(e=>(0,a.jsx)(U,{card:e,small:!0},e.id))})]}):(0,a.jsx)("span",{children:"等待领出"})}),(0,a.jsxs)("div",{className:y.default.deckBox,children:[(0,a.jsx)("span",{children:"底分"}),(0,a.jsx)("strong",{children:$.baseScore})]})]}),(0,a.jsx)("div",{className:y.default.notice,children:"finished"===$.status?`${$.players.find(e=>e.seat===$.winnerSeat)?.name} 获胜`:X?"轮到你出牌":`等待 ${$.players.find(e=>e.seat===$.currentSeat)?.name||"玩家"}`})]}),(0,a.jsxs)("aside",{className:y.default.sidePanel,children:[(0,a.jsxs)("section",{className:y.default.panel,children:[(0,a.jsx)("h3",{children:"开局设置"}),(0,a.jsx)("div",{className:y.default.segmented,children:[1,2].map(e=>(0,a.jsxs)("button",{className:$.settings.decks===e?y.default.selected:"",disabled:!Q||"lobby"!==$.status,onClick:()=>et("decks",e),children:[e," 副牌"]},e))}),(0,a.jsx)("div",{className:y.default.segmented,children:[2,3,4,5,6].map(e=>(0,a.jsxs)("button",{className:$.settings.seats===e?y.default.selected:"",disabled:!Q||"lobby"!==$.status,onClick:()=>et("seats",e),children:[e," 人"]},e))}),(0,a.jsxs)("label",{className:y.default.rangeLine,children:["人机数量",(0,a.jsx)("input",{type:"range",min:"0",max:Math.max(0,$.settings.seats-1),value:$.settings.bots,disabled:!Q||"lobby"!==$.status,onChange:e=>et("bots",Number(e.target.value))}),(0,a.jsx)("b",{children:$.settings.bots})]}),Q&&"lobby"===$.status&&(0,a.jsxs)("button",{className:"btn btn-primary",onClick:()=>es("gandengyan:start"),children:[(0,a.jsx)(i.Play,{size:16}),"开始游戏"]}),Q&&"finished"===$.status&&(0,a.jsxs)("button",{className:"btn btn-primary",onClick:()=>es("gandengyan:restart"),children:[(0,a.jsx)(o,{size:16}),"再来一局"]})]}),(0,a.jsxs)("section",{className:y.default.panel,children:[(0,a.jsx)("h3",{children:"分数"}),(0,a.jsxs)("div",{className:y.default.scoreMeta,children:[(0,a.jsxs)("span",{children:["炸弹 ",$.bombCount," 次"]}),(0,a.jsxs)("span",{children:["弃牌 ",$.discardCount," 张"]})]}),$.players.map(e=>(0,a.jsxs)("div",{className:y.default.scoreRow,children:[(0,a.jsx)("span",{children:e.name}),(0,a.jsx)("strong",{children:e.score>0?`+${e.score}`:e.score})]},e.seat))]}),(0,a.jsxs)("section",{className:C(y.default.panel,y.default.logPanel),children:[(0,a.jsx)("h3",{children:"牌局记录"}),$.log.map((e,s)=>(0,a.jsx)("p",{children:e},`${e}-${s}`))]})]}),(0,a.jsxs)("div",{className:y.default.handPanel,children:[(0,a.jsx)(N,{player:D,active:X,winner:$.winnerSeat===D?.seat}),(0,a.jsx)("div",{className:y.default.hand,children:D?.hand.map(e=>(0,a.jsx)("button",{className:C(y.default.cardButton,R.includes(e.id)&&y.default.picked),onClick:()=>{var a;return a=e.id,void E(e=>e.includes(a)?e.filter(e=>e!==a):[...e,a])},children:(0,a.jsx)(U,{card:e})},e.id))}),(0,a.jsxs)("div",{className:y.default.actions,children:[(0,a.jsxs)("div",{className:C(y.default.preview,Z&&y.default.valid),children:[(0,a.jsx)("strong",{children:Z?Z.label:R.length?"牌型不合法":"先选牌"}),(0,a.jsx)("span",{children:Y.map(e=>e.label).join(" ")||"按选择顺序解释大小王"})]}),(0,a.jsxs)("button",{className:"btn btn-primary",disabled:!X||0===R.length||!Z,onClick:()=>es("gandengyan:play",{cardIds:R}),children:[(0,a.jsx)(u.Send,{size:16}),"出牌"]}),(0,a.jsx)("button",{className:"btn",disabled:!X||!$.table,onClick:()=>es("gandengyan:pass"),children:"不要"}),q&&(0,a.jsx)("span",{className:y.default.error,children:q})]})]})]}):(0,a.jsxs)("section",{className:y.default.entry,children:[(0,a.jsxs)("div",{className:y.default.entryBrand,children:[(0,a.jsx)("div",{className:y.default.cardMark,children:"干"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{children:"干瞪眼牌桌"}),(0,a.jsx)("p",{children:"使用 MostBox 账号进入房间,牌桌通信复用当前节点的 WebSocket 连接。"})]})]}),(0,a.jsxs)("div",{className:y.default.entryPanel,children:[(0,a.jsxs)("div",{className:y.default.accountLine,children:[(0,a.jsx)("span",{children:"当前账号"}),(0,a.jsx)("strong",{children:K?.displayName||"未登录"})]}),(0,a.jsxs)("button",{className:"btn btn-primary",disabled:!c,onClick:()=>es("gandengyan:createRoom"),children:[(0,a.jsx)(i.Play,{size:16}),"创建房间"]}),(0,a.jsxs)("form",{onSubmit:function(e){e.preventDefault(),es("gandengyan:joinRoom",{roomId:L})},className:y.default.joinForm,children:[(0,a.jsxs)("label",{children:["房间号",(0,a.jsx)("input",{value:L,maxLength:8,onChange:e=>T(e.target.value.toUpperCase()),placeholder:"输入房间号"})]}),(0,a.jsx)("button",{className:"btn",disabled:!c||!L,children:"加入房间"})]}),(0,a.jsx)("p",{className:y.default.status,children:c?"节点已连接":"正在连接节点..."}),q&&(0,a.jsx)("p",{className:y.default.error,children:q})]})]})})})}],47938)}]);
@@ -1 +0,0 @@
1
- .admin-page{max-width:1280px;min-height:100dvh;color:var(--text-primary);margin:0 auto;padding:24px}.admin-topbar,.admin-title-group,.admin-topbar-actions,.admin-panel-header,.admin-metric,.admin-capacity-row,.admin-address-list,.admin-log-row,.admin-product-main,.admin-platform-link,.admin-feature-list li{align-items:center;display:flex}.admin-topbar{justify-content:space-between;gap:16px;margin-bottom:18px}.admin-title-group{gap:12px;min-width:0}.admin-title-group h1{letter-spacing:0;font-size:24px;line-height:1.2}.admin-kicker{color:var(--text-secondary);text-transform:uppercase;letter-spacing:0;font-size:12px;font-weight:700}.admin-topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.admin-status-pill{border:1px solid var(--glass-border);background:var(--glass-bg-solid);min-height:34px;color:var(--warning);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.admin-status-pill.online{color:var(--success)}.admin-product-grid{grid-template-columns:1.05fr 1.2fr 1fr;gap:12px;margin-bottom:12px;display:grid}.admin-product-panel,.admin-metric,.admin-panel{border:1px solid var(--glass-border);background:var(--glass-bg-heavy);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--blur-md);border-radius:8px}.admin-product-panel{min-width:0;padding:16px}.admin-product-main{gap:14px}.admin-product-mark{background:linear-gradient(135deg, var(--accent), var(--info));color:#fff;letter-spacing:0;border-radius:8px;flex:none;place-items:center;width:52px;height:52px;font-size:15px;font-weight:800;display:grid}.admin-product-main h2,.admin-panel-header h2{color:var(--text-primary);letter-spacing:0;font-size:17px;line-height:1.25}.admin-product-version,.admin-product-stack,.admin-product-desc{color:var(--text-secondary);margin:4px 0 0;font-size:13px;line-height:1.5}.admin-product-stack{color:var(--text-muted)}.admin-panel-header{justify-content:space-between;gap:12px;margin-bottom:14px}.admin-panel-header.compact{margin-bottom:10px}.admin-platform-list{gap:8px;margin-top:12px;display:grid}.admin-platform-link{border:1px solid var(--glass-border);min-height:38px;color:var(--text-primary);background:var(--glass-bg-subtle);transition:all var(--transition-fast);border-radius:8px;gap:10px;padding:0 12px;text-decoration:none}.admin-platform-link:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.admin-platform-link span:first-of-type{font-size:14px;font-weight:600}.admin-platform-link span:last-child{color:var(--text-muted);font-family:var(--font-mono);margin-left:auto;font-size:12px}.admin-feature-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.admin-feature-list li{color:var(--text-secondary);gap:8px;font-size:13px;line-height:1.45}.admin-feature-list svg{color:var(--success);flex:none}.admin-overview{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.admin-metric{gap:12px;min-width:0;padding:14px}.admin-metric-icon{width:34px;height:34px;color:var(--accent);background:#5e6ad224;border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.admin-metric:nth-child(2) .admin-metric-icon{color:var(--info);background:#5ac8fa24}.admin-metric:nth-child(3) .admin-metric-icon{color:var(--success);background:#34c75924}.admin-metric:nth-child(4) .admin-metric-icon{color:var(--warning);background:#ff950024}.admin-metric span,.admin-status-grid span,.admin-field span{color:var(--text-secondary);font-size:12px;display:block}.admin-metric strong,.admin-status-grid strong{min-width:0;color:var(--text-primary);overflow-wrap:anywhere;margin-top:3px;font-size:15px;display:block}.admin-metric-action{margin-left:auto}.admin-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:12px;display:grid}.admin-panel{min-width:0;padding:16px}.admin-span-2{grid-column:span 2}.admin-panel-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.admin-panel-actions .btn{min-height:34px;padding:7px 12px;font-size:13px}.admin-status-grid{border-bottom:1px solid var(--glass-border);grid-template-columns:120px 160px minmax(0,1fr);gap:14px;margin-bottom:14px;padding-bottom:14px;display:grid}.admin-address-list{flex-wrap:wrap;gap:8px}.admin-address-list span{border:1px solid var(--glass-border);background:var(--glass-bg-subtle);color:var(--text-secondary);font-family:var(--font-mono);border-radius:8px;padding:6px 8px;font-size:12px}.admin-field{gap:6px;margin-bottom:12px;display:grid}.admin-settings-fields{grid-template-columns:minmax(0,1.4fr) minmax(160px,.8fr) minmax(160px,.8fr);gap:12px;display:grid}.admin-settings-fields .admin-field{margin-bottom:0}.admin-settings-fields .admin-field-wide{grid-column:span 3}.admin-textarea{resize:vertical;min-height:92px;line-height:1.5}.admin-field-hint,.admin-table-note{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.5}.admin-field-hint{margin-top:2px;margin-bottom:14px}.admin-table-note{margin-bottom:10px}.admin-seed-help{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.admin-seed-help-item{border:1px solid var(--glass-border);background:var(--glass-bg-subtle);border-radius:8px;align-items:flex-start;gap:8px;min-width:0;padding:10px;display:flex}.admin-seed-help-item div{gap:3px;min-width:0;display:grid}.admin-seed-help-item strong{color:var(--text-primary);font-size:12px;line-height:1.35}.admin-seed-help-item span:last-child{color:var(--text-secondary);font-size:12px;line-height:1.45}.admin-seed-dot{background:var(--text-muted);border-radius:999px;flex:none;width:8px;height:8px;margin-top:5px}.admin-seed-dot.active{background:var(--success)}.admin-seed-dot.pending{background:var(--info)}.admin-seed-dot.error{background:var(--danger)}.admin-capacity-row{gap:12px;margin-bottom:12px}.admin-capacity-row progress{background:var(--glass-bg-subtle);border:none;border-radius:999px;width:100%;height:10px;overflow:hidden}.admin-capacity-row progress::-webkit-progress-bar{background:var(--glass-bg-subtle)}.admin-capacity-row progress::-webkit-progress-value{background:linear-gradient(90deg, var(--success), var(--info));border-radius:999px}.admin-capacity-row progress::-moz-progress-bar{background:linear-gradient(90deg, var(--success), var(--info));border-radius:999px}.admin-capacity-row span{color:var(--text-secondary);flex:none;font-size:12px}.admin-table{border:1px solid var(--glass-border);border-radius:8px;overflow-x:auto}.admin-table-row{border-bottom:1px solid var(--glass-border);grid-template-columns:minmax(160px,1.4fr) minmax(150px,1fr) minmax(120px,.8fr) minmax(72px,.45fr) minmax(120px,.8fr) 130px;gap:12px;min-width:900px;padding:10px 12px;font-size:13px;display:grid}.admin-table-row:last-child{border-bottom:none}.admin-table-row span{overflow-wrap:anywhere;min-width:0}.admin-table-head{color:var(--text-secondary);background:var(--glass-bg-subtle);font-size:12px;font-weight:700}.admin-seed-pill{background:var(--glass-bg-subtle);width:fit-content;min-height:24px;color:var(--text-secondary);border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.admin-seed-pill.active{color:var(--success);background:#34c75924}.admin-seed-pill.error{color:var(--danger);background:#ff3b3024}.admin-log-list{gap:8px;max-height:360px;display:grid;overflow:auto}.admin-log-filter{border:1px solid var(--glass-border);background:var(--glass-bg-subtle);border-radius:8px;width:fit-content;max-width:100%;margin-bottom:12px;padding:3px;display:inline-flex;overflow-x:auto}.admin-log-filter button{min-width:64px;min-height:30px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:12px;font-weight:800}.admin-log-filter button.active{background:var(--glass-bg-solid);color:var(--text-primary);box-shadow:var(--shadow-sm)}.admin-log-row{border:1px solid var(--glass-border);background:var(--glass-bg-subtle);border-radius:8px;gap:10px;min-width:0;padding:10px 12px;font-size:13px}.admin-log-row time{color:var(--text-secondary);font-family:var(--font-mono);flex:0 0 76px;font-size:12px}.admin-log-row strong{overflow-wrap:anywhere;flex:0 210px;min-width:0}.admin-log-row span:last-child{min-width:0;color:var(--text-secondary);overflow-wrap:anywhere}.admin-log-level{color:#2563eb;text-transform:uppercase;background:#3b82f624;border-radius:999px;flex:none;padding:3px 7px;font-size:11px;font-weight:800}.admin-log-level.error{color:var(--danger);background:#ff3b3024}.admin-empty-row{color:var(--text-secondary);text-align:center;padding:18px 12px;font-size:13px}.admin-error{color:var(--danger);align-items:center;gap:10px;margin-bottom:12px;display:flex}.admin-warning{color:var(--warning);align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.admin-security-warning{background:#ff950014;border-color:#ff950059}.admin-warning svg{flex:none}.admin-warning div{gap:4px;min-width:0;display:grid}.admin-warning strong{color:var(--text-primary);font-size:14px}.admin-warning span{color:var(--text-secondary);font-size:13px;line-height:1.5}.admin-warning-list{color:var(--text-secondary);gap:4px;margin:2px 0 0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.admin-warning-list code{background:var(--glass-bg-subtle);color:var(--text-primary);font-family:var(--font-mono);border-radius:6px;padding:2px 5px;font-size:12px}@media (max-width:1040px){.admin-product-grid,.admin-overview,.admin-grid,.admin-settings-fields,.admin-status-grid,.admin-seed-help{grid-template-columns:1fr}.admin-settings-fields .admin-field-wide,.admin-span-2{grid-column:span 1}}@media (max-width:640px){.admin-page{padding:14px}.admin-topbar,.admin-title-group,.admin-topbar-actions{align-items:stretch}.admin-topbar{flex-direction:column}.admin-title-group h1{font-size:21px}.admin-product-main{align-items:flex-start}.admin-platform-link{min-height:42px}.admin-capacity-row{flex-direction:column;align-items:flex-start}.admin-log-row{grid-template-columns:72px 56px minmax(0,1fr);display:grid}.admin-log-row span:last-child{grid-column:1/-1}}