most-box 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -13
- package/out/404/index.html +2 -2
- package/out/404.html +2 -2
- package/out/__next.__PAGE__.txt +6 -6
- package/out/__next._full.txt +15 -15
- package/out/__next._head.txt +3 -3
- package/out/__next._index.txt +7 -7
- package/out/__next._tree.txt +4 -4
- package/out/_next/static/chunks/00t5ddkkjek9v.js +1 -0
- package/out/_next/static/chunks/0hodisxqbtmye.js +1 -0
- package/out/_next/static/chunks/0jinrmgt26crz.js +1 -0
- package/out/_next/static/chunks/0mslhkdi-msxv.js +1 -0
- package/out/_next/static/chunks/1h-f81ddyfcmx.css +1 -0
- package/out/_next/static/chunks/1x76jmdus29em.js +1 -0
- package/out/_next/static/chunks/22vt64m0krmev.js +1 -0
- package/out/_next/static/chunks/{0vmjat-s4a3yj.css → 258tyt1xt34p4.css} +1 -1
- package/out/_next/static/chunks/266xuv6ts5889.js +5 -0
- package/out/_next/static/chunks/26hcvxjw9do9d.js +1 -0
- package/out/_next/static/chunks/{0nwdp-n94owg0.css → 2jnstwjg45vfp.css} +1 -1
- package/out/_next/static/chunks/2o-0n-9r5u1oh.js +1 -0
- package/out/_next/static/chunks/2pkm-6u9yq_cq.js +1 -0
- package/out/_next/static/chunks/31zdi2pl6em6-.css +1 -0
- package/out/_next/static/chunks/393isf5crmqic.js +1 -0
- package/out/_next/static/chunks/3e9ia0hs-pqvs.css +1 -0
- package/out/_next/static/chunks/3ej6im7cbakx3.js +1 -0
- package/out/_next/static/chunks/3ejz1mdljwwqf.css +1 -0
- package/out/_next/static/chunks/{0s7i7nfr9j3b1.js → 3m7_o1ihz8ay_.js} +1 -1
- package/out/_next/static/chunks/3qm2vbylm324o.css +1 -0
- package/out/_next/static/chunks/3uxltn4677hjy.js +1 -0
- package/out/_next/static/chunks/3w2qk10_udrd9.js +1 -0
- package/out/_next/static/chunks/3xl0fq2d3dle6.js +1 -0
- package/out/_next/static/chunks/{23kls47vn_rpg.css → 440es_b4nw-7c.css} +2 -2
- package/out/_next/static/chunks/{turbopack-026p0g9v9_pva.js → turbopack-3vvza9m6839dy.js} +1 -1
- package/out/_not-found/__next._full.txt +12 -12
- package/out/_not-found/__next._head.txt +3 -3
- package/out/_not-found/__next._index.txt +7 -7
- package/out/_not-found/__next._not-found.__PAGE__.txt +4 -4
- package/out/_not-found/__next._not-found.txt +3 -3
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found/index.html +2 -2
- package/out/_not-found/index.txt +12 -12
- package/out/admin/__next._full.txt +13 -13
- package/out/admin/__next._head.txt +3 -3
- package/out/admin/__next._index.txt +7 -7
- package/out/admin/__next._tree.txt +2 -2
- package/out/admin/__next.admin.__PAGE__.txt +4 -4
- package/out/admin/__next.admin.txt +3 -3
- package/out/admin/index.html +2 -2
- package/out/admin/index.txt +13 -13
- package/out/app/__next._full.txt +13 -13
- package/out/app/__next._head.txt +3 -3
- package/out/app/__next._index.txt +7 -7
- package/out/app/__next._tree.txt +2 -2
- package/out/app/__next.app.__PAGE__.txt +4 -4
- package/out/app/__next.app.txt +3 -3
- package/out/app/index.html +2 -2
- package/out/app/index.txt +13 -13
- package/out/chat/__next._full.txt +14 -14
- package/out/chat/__next._head.txt +3 -3
- package/out/chat/__next._index.txt +7 -7
- package/out/chat/__next._tree.txt +3 -3
- package/out/chat/__next.chat.__PAGE__.txt +4 -4
- package/out/chat/__next.chat.txt +4 -4
- package/out/chat/index.html +2 -2
- package/out/chat/index.txt +14 -14
- package/out/chat/join/__next._full.txt +14 -14
- package/out/chat/join/__next._head.txt +3 -3
- package/out/chat/join/__next._index.txt +7 -7
- package/out/chat/join/__next._tree.txt +3 -3
- package/out/chat/join/__next.chat.join.__PAGE__.txt +4 -4
- package/out/chat/join/__next.chat.join.txt +3 -3
- package/out/chat/join/__next.chat.txt +4 -4
- package/out/chat/join/index.html +2 -2
- package/out/chat/join/index.txt +14 -14
- package/out/demo/__next._full.txt +17 -16
- package/out/demo/__next._head.txt +3 -3
- package/out/demo/__next._index.txt +7 -7
- package/out/demo/__next._tree.txt +6 -5
- package/out/demo/__next.demo.__PAGE__.txt +8 -7
- package/out/demo/__next.demo.txt +3 -3
- package/out/demo/index.html +3 -3
- package/out/demo/index.txt +17 -16
- package/out/download/__next._full.txt +37 -33
- package/out/download/__next._head.txt +3 -3
- package/out/download/__next._index.txt +7 -7
- package/out/download/__next._tree.txt +3 -3
- package/out/download/__next.download.__PAGE__.txt +6 -6
- package/out/download/__next.download.txt +3 -3
- package/out/download/index.html +2 -2
- package/out/download/index.txt +37 -33
- package/out/game/__next._full.txt +11 -11
- package/out/game/__next._head.txt +3 -3
- package/out/game/__next._index.txt +7 -7
- package/out/game/__next._tree.txt +2 -2
- package/out/game/__next.game.__PAGE__.txt +2 -2
- package/out/game/__next.game.txt +3 -3
- package/out/game/gandengyan/__next._full.txt +14 -14
- package/out/game/gandengyan/__next._head.txt +3 -3
- package/out/game/gandengyan/__next._index.txt +7 -7
- package/out/game/gandengyan/__next._tree.txt +3 -3
- package/out/game/gandengyan/__next.game.gandengyan.__PAGE__.txt +5 -5
- package/out/game/gandengyan/__next.game.gandengyan.txt +3 -3
- package/out/game/gandengyan/__next.game.txt +3 -3
- package/out/game/gandengyan/index.html +2 -2
- package/out/game/gandengyan/index.txt +14 -14
- package/out/game/index.html +1 -1
- package/out/game/index.txt +11 -11
- package/out/game/zhajinhua/__next._full.txt +14 -13
- package/out/game/zhajinhua/__next._head.txt +3 -3
- package/out/game/zhajinhua/__next._index.txt +7 -7
- package/out/game/zhajinhua/__next._tree.txt +3 -2
- package/out/game/zhajinhua/__next.game.txt +3 -3
- package/out/game/zhajinhua/__next.game.zhajinhua.__PAGE__.txt +5 -4
- package/out/game/zhajinhua/__next.game.zhajinhua.txt +3 -3
- package/out/game/zhajinhua/index.html +2 -2
- package/out/game/zhajinhua/index.txt +14 -13
- package/out/index.html +2 -2
- package/out/index.txt +15 -15
- package/out/note/__next._full.txt +13 -13
- package/out/note/__next._head.txt +3 -3
- package/out/note/__next._index.txt +7 -7
- package/out/note/__next._tree.txt +2 -2
- package/out/note/__next.note.__PAGE__.txt +4 -4
- package/out/note/__next.note.txt +3 -3
- package/out/note/index.html +2 -2
- package/out/note/index.txt +13 -13
- package/out/ping/__next._full.txt +14 -14
- package/out/ping/__next._head.txt +3 -3
- package/out/ping/__next._index.txt +7 -7
- package/out/ping/__next._tree.txt +3 -3
- package/out/ping/__next.ping.__PAGE__.txt +5 -5
- package/out/ping/__next.ping.txt +3 -3
- package/out/ping/index.html +2 -2
- package/out/ping/index.txt +14 -14
- package/out/web3/__next._full.txt +14 -14
- package/out/web3/__next._head.txt +3 -3
- package/out/web3/__next._index.txt +7 -7
- package/out/web3/__next._tree.txt +3 -3
- package/out/web3/__next.web3.__PAGE__.txt +4 -4
- package/out/web3/__next.web3.txt +4 -4
- package/out/web3/ed25519/__next._full.txt +12 -12
- package/out/web3/ed25519/__next._head.txt +3 -3
- package/out/web3/ed25519/__next._index.txt +7 -7
- package/out/web3/ed25519/__next._tree.txt +3 -3
- package/out/web3/ed25519/__next.web3.ed25519.__PAGE__.txt +2 -2
- package/out/web3/ed25519/__next.web3.ed25519.txt +3 -3
- package/out/web3/ed25519/__next.web3.txt +4 -4
- package/out/web3/ed25519/index.html +1 -1
- package/out/web3/ed25519/index.txt +12 -12
- package/out/web3/index.html +2 -2
- package/out/web3/index.txt +14 -14
- package/out/web3/tools/__next._full.txt +12 -12
- package/out/web3/tools/__next._head.txt +3 -3
- package/out/web3/tools/__next._index.txt +7 -7
- package/out/web3/tools/__next._tree.txt +3 -3
- package/out/web3/tools/__next.web3.tools.__PAGE__.txt +2 -2
- package/out/web3/tools/__next.web3.tools.txt +3 -3
- package/out/web3/tools/__next.web3.txt +4 -4
- package/out/web3/tools/index.html +1 -1
- package/out/web3/tools/index.txt +12 -12
- package/package.json +1 -1
- package/server/src/core/gameRoom.js +12 -0
- package/server/src/core/zhajinhua.js +82 -14
- package/server/src/games/gandengyan.js +39 -0
- package/server/src/http/app.js +66 -1
- package/server/src/http/nodeStatus.js +18 -0
- package/server/src/index.js +667 -165
- package/out/_next/static/chunks/0-ryc9icn6dql.css +0 -1
- package/out/_next/static/chunks/088-v8tzobg5g.js +0 -1
- package/out/_next/static/chunks/0g9303i8psy6z.js +0 -1
- package/out/_next/static/chunks/10p6-qnuk3p9x.js +0 -1
- package/out/_next/static/chunks/1ei8b9nw-ea8p.css +0 -1
- package/out/_next/static/chunks/2524ggtr3e4fp.js +0 -1
- package/out/_next/static/chunks/2fmkcw8ui5xp3.js +0 -5
- package/out/_next/static/chunks/2mcmt4yla_xle.js +0 -1
- package/out/_next/static/chunks/2nbju8t9-ux58.css +0 -1
- package/out/_next/static/chunks/2v7_4ps1l4a8o.css +0 -1
- package/out/_next/static/chunks/2vk2ln79gpvm4.js +0 -1
- package/out/_next/static/chunks/37msy2-4ucgts.js +0 -1
- package/out/_next/static/chunks/384w3w4qvhw61.js +0 -1
- package/out/_next/static/chunks/3aa-weedhv4e0.js +0 -1
- package/out/_next/static/chunks/3erbaukgkw8f2.js +0 -1
- package/out/_next/static/chunks/3fea100s764m-.js +0 -1
- package/out/_next/static/chunks/3qj5xz_d4cbk6.js +0 -1
- /package/out/_next/static/{NPIlpdzQWkiVZpgfhlypH → TXy93SnAZQ7OQ-aVUkmHa}/_buildManifest.js +0 -0
- /package/out/_next/static/{NPIlpdzQWkiVZpgfhlypH → TXy93SnAZQ7OQ-aVUkmHa}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{NPIlpdzQWkiVZpgfhlypH → TXy93SnAZQ7OQ-aVUkmHa}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96661,5014,e=>{"use strict";let t=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();e.s(["mergeClasses",0,t],96661);var r=e.i(71645),i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let l=(0,r.createContext)({}),a=(0,r.forwardRef)(({color:e,size:a,strokeWidth:n,absoluteStrokeWidth:o,className:s="",children:c,iconNode:d,...u},m)=>{let{size:h=24,strokeWidth:p=2,absoluteStrokeWidth:f=!1,color:g="currentColor",className:y=""}=(0,r.useContext)(l)??{},x=o??f?24*Number(n??p)/Number(a??h):n??p;return(0,r.createElement)("svg",{ref:m,...i,width:a??h??i.width,height:a??h??i.height,stroke:e??g,strokeWidth:x,className:t("lucide",y,s),...!c&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...d.map(([e,t])=>(0,r.createElement)(e,t)),...Array.isArray(c)?c:[c]])});e.s(["default",0,a],5014)},56420,e=>{"use strict";var t=e.i(71645),r=e.i(96661);let i=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var l=e.i(5014);e.s(["default",0,(e,a)=>{let n=(0,t.forwardRef)(({className:n,...o},s)=>(0,t.createElement)(l.default,{ref:s,iconNode:a,className:(0,r.mergeClasses)(`lucide-${i(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,n),...o}));return n.displayName=i(e),n}],56420)},71192,11470,e=>{"use strict";var t=e.i(68834),r=e.i(66112);function i(e,t){let{address:i,danger:l}=(0,r.mostWallet)(e,t);return{username:e,address:i,danger:l,displayName:`${e}#${i.slice(-4).toUpperCase()}`}}function l(){if("u"<typeof localStorage)return null;try{let e=localStorage.getItem("mostbox_identity");if(!e)return null;return JSON.parse(e)}catch{return null}}function a(e){"u">typeof localStorage&&localStorage.setItem("mostbox_identity",JSON.stringify(e))}function n(){"u">typeof localStorage&&(localStorage.removeItem("mostbox_identity"),localStorage.removeItem("mostbox_guest_identity"))}function o(e){return e&&"object"==typeof e&&e.username&&e.address&&e.danger&&"匿名"!==e.username?{username:e.username,address:e.address,danger:e.danger,displayName:e.displayName?e.displayName:`${e.username}#${e.address.slice(-4).toUpperCase()}`,logo:"string"==typeof e.logo?e.logo:void 0,avatar:"string"==typeof e.avatar?e.avatar:void 0,identity:"user"===e.identity||"service"===e.identity||"service_ai"===e.identity?e.identity:void 0}:null}function s(){return{loginUsername:"",loginPassword:"",showPassword:!1,loginPreviewAddress:"",hasPreviewedAvatar:!1,loginLoading:!1,loginError:""}}e.s(["clearIdentity",0,n,"createLoginIdentity",0,i,"loadIdentity",0,l,"saveIdentity",0,a],11470);let c=(0,t.create)((e,t)=>({identity:null,wallet:void 0,showLoginModal:!1,loginUsername:"",loginPassword:"",showPassword:!1,loginPreviewAddress:"",hasPreviewedAvatar:!1,loginLoading:!1,loginError:"",initializeUser:()=>{let t=o(l());t||n(),e({identity:t,wallet:t||void 0})},openLoginModal:()=>{e({showLoginModal:!0,loginError:""})},closeLoginModal:()=>{e({showLoginModal:!1,...s()})},setLoginUsername:t=>{e({loginUsername:t,loginPreviewAddress:"",hasPreviewedAvatar:!1,loginError:""})},setLoginPassword:t=>{e({loginPassword:t,loginPreviewAddress:"",hasPreviewedAvatar:!1,loginError:""})},togglePassword:()=>{e(e=>({showPassword:!e.showPassword}))},previewLoginIdentity:()=>{let{loginUsername:r,loginPassword:l}=t();if(!r.trim()||!l.trim())return e({loginError:"请输入用户名和密码"}),null;let a=i(r.trim(),l);return e({loginPreviewAddress:a.address,hasPreviewedAvatar:!0,loginError:""}),a},loginUser:()=>{let{loginUsername:r,loginPassword:l,hasPreviewedAvatar:n}=t();if(!r.trim()||!l.trim())return e({loginError:"请输入用户名和密码"}),null;if(!n)return e({loginError:"请先预览并确认头像"}),null;e({loginLoading:!0,loginError:""});try{let t=i(r.trim(),l);return a(t),e({identity:t,wallet:t,showLoginModal:!1,...s()}),t}catch(t){return e({loginLoading:!1,loginError:t instanceof Error?t.message:"登录失败"}),null}},setUserIdentity:t=>{let r=o(t);r&&(a(r),e({identity:r,wallet:r}))},logoutUser:()=>{n(),e({identity:null,wallet:void 0})}}));e.s(["useUserStore",0,c],71192)},57667,80809,e=>{"use strict";var t=e.i(18050),r=e.i(71645);let i={" ":"space",ArrowLeft:"arrowleft",ArrowRight:"arrowright",ArrowUp:"arrowup",ArrowDown:"arrowdown",Escape:"escape",Esc:"escape",esc:"escape",Enter:"enter",Tab:"tab",Backspace:"backspace",Delete:"delete",Insert:"insert",Home:"home",End:"end",PageUp:"pageup",PageDown:"pagedown","+":"plus","-":"minus","*":"asterisk","/":"slash"};function l(e){let t=e.replace("Key","").toLowerCase();return i[e]||t}e.s(["ModalOverlay",0,function({children:e,onClose:i}){return!function(e,t=["INPUT","TEXTAREA","SELECT"],i=!1){let a=(0,r.useEffectEvent)(r=>{e.forEach(([e,a,n={preventDefault:!0,usePhysicalKeys:!1}])=>{var o;(o=n.usePhysicalKeys,t=>{let r,i,a,n;return function(e,t,r){let{alt:i,ctrl:a,meta:n,mod:o,shift:s,key:c}=e,{altKey:d,ctrlKey:u,metaKey:m,shiftKey:h,key:p,code:f}=t;if(i!==d)return!1;if(o){if(!u&&!m)return!1}else if(a!==u||n!==m)return!1;return s===h&&!!c&&(r?l(f)===l(c):l(p??f)===l(c))}((i={alt:(r=e.toLowerCase().split("+").map(e=>e.trim())).includes("alt"),ctrl:r.includes("ctrl"),meta:r.includes("meta"),mod:r.includes("mod"),shift:r.includes("shift")},a=["alt","ctrl","meta","shift","mod"],n=r.find(e=>!a.includes(e)),{...i,key:"[plus]"===n?"+":n}),t,o)})(r)&&function(e,t,r=!1){return!(e.target instanceof HTMLElement)||(r?!t.includes(e.target.tagName):!e.target.isContentEditable&&!t.includes(e.target.tagName))}(r,t,i)&&(n.preventDefault&&r.preventDefault(),a(r))})});(0,r.useEffect)(()=>(document.documentElement.addEventListener("keydown",a),()=>document.documentElement.removeEventListener("keydown",a)),[])}(i?[["Escape",i]]:[]),(0,r.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=()=>{document.documentElement.style.setProperty("--modal-visual-height",`${e.height}px`),document.documentElement.style.setProperty("--modal-visual-top",`${e.offsetTop}px`)};return t(),e.addEventListener("resize",t),e.addEventListener("scroll",t),()=>{e.removeEventListener("resize",t),e.removeEventListener("scroll",t),document.documentElement.style.removeProperty("--modal-visual-height"),document.documentElement.style.removeProperty("--modal-visual-top")}},[]),(0,t.jsxs)("div",{className:"modal-overlay",children:[(0,t.jsx)("div",{className:"modal-overlay-backdrop"}),(0,t.jsx)("div",{className:"modal-glass",children:e})]})}],57667),e.s(["Toast",0,function({message:e,type:i,onDone:l,index:a}){(0,r.useEffect)(()=>{let e=setTimeout(l,3e3);return()=>clearTimeout(e)},[]);let n=Math.min(Math.max(a,0),5);return(0,t.jsx)("div",{className:`toast ${i} toast-stack-${n}`,children:e})}],80809)},63676,e=>{"use strict";let t=(0,e.i(56420).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],63676)},4121,88361,47910,20885,e=>{"use strict";var t=e.i(57667);e.i(80809);var r=e.i(18050),i=e.i(63676);e.s(["ConfirmModal",0,function({title:e,message:l,confirmText:a,onConfirm:n,onClose:o,danger:s}){return(0,r.jsx)(t.ModalOverlay,{onClose:o,children:(0,r.jsxs)("div",{className:"confirm-modal",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"modal-header",children:[(0,r.jsx)("h3",{children:e}),(0,r.jsx)("button",{onClick:o,className:"btn btn-icon",children:(0,r.jsx)(i.X,{size:18})})]}),(0,r.jsx)("p",{children:l}),(0,r.jsxs)("div",{className:"modal-actions",children:[(0,r.jsx)("button",{onClick:o,className:"btn btn-secondary",children:"取消"}),(0,r.jsx)("button",{onClick:n,className:`btn ${s?"btn-danger":"btn-primary"}`,children:a})]})]})})}],88361);var l=e.i(71645);e.s(["InputModal",0,function({title:e,placeholder:a,defaultValue:n,confirmText:o,onConfirm:s,onClose:c,isLoading:d,loadingText:u,validate:m,allowEmpty:h=!1}){let[p,f]=(0,l.useState)(n||""),g=p.trim(),y=g&&m?m(g):"",x=(h||!!g)&&!y&&!d;function v(){x&&s(g)}return(0,r.jsx)(t.ModalOverlay,{onClose:c,children:(0,r.jsxs)("div",{className:"input-modal",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"modal-header",children:[(0,r.jsx)("h3",{children:e}),(0,r.jsx)("button",{onClick:c,className:"btn btn-icon",children:(0,r.jsx)(i.X,{size:18})})]}),(0,r.jsx)("input",{type:"text",value:p,onChange:e=>f(e.target.value),placeholder:a,autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&v()},className:"input input-compact","aria-invalid":!!y,"aria-describedby":y?"input-modal-error":void 0}),y&&(0,r.jsx)("p",{className:"input-modal-error",id:"input-modal-error",children:y}),(0,r.jsxs)("div",{className:"modal-actions",children:[(0,r.jsx)("button",{onClick:c,disabled:d,className:"btn btn-secondary",children:"取消"}),(0,r.jsx)("button",{onClick:v,disabled:!x,className:`btn btn-primary ${d?"btn-loading":""}`,children:d?u||"处理中...":o})]})]})})}],47910);var a=e.i(74080);e.s(["ActionMenu",0,function({ariaLabel:e,items:t,renderTrigger:i,placement:n="bottom-end",disabled:o=!1,className:s="",menuClassName:c=""}){let d=(0,l.useId)(),u=(0,l.useRef)(null),m=(0,l.useRef)(null),[h,p]=(0,l.useState)(!1),[f,g]=(0,l.useState)(!1),[y,x]=(0,l.useState)(!1),v=(0,l.useCallback)(e=>{u.current=e},[]),w=(0,l.useCallback)(()=>{g(!1),x(!1)},[]),b=(0,l.useCallback)(()=>{let e=u.current,t=m.current;if(!e||!t)return;let r=e.getBoundingClientRect(),i=t.getBoundingClientRect(),l=window.innerWidth,a=window.innerHeight,o=n.startsWith("top"),s=n.endsWith("end"),c=o?r.top-i.height-8:r.bottom+8,d=s?r.right-i.width:r.left,h=Math.max(8,l-i.width-8),p={top:Math.min(Math.max(c,8),Math.max(8,a-i.height-8)),left:Math.min(Math.max(d,8),h)};t.style.setProperty("--action-menu-top",`${p.top}px`),t.style.setProperty("--action-menu-left",`${p.left}px`),x(!0)},[n]);(0,l.useEffect)(()=>{p(!0)},[]),(0,l.useEffect)(()=>{o&&w()},[w,o]),(0,l.useLayoutEffect)(()=>{f&&(x(!1),b())},[f,t.length,b]),(0,l.useEffect)(()=>{if(!f)return;let e=window.requestAnimationFrame(()=>{let e=m.current?.querySelector(".ui-action-menu-item:not(:disabled)");e?.focus({preventScroll:!0})});return()=>window.cancelAnimationFrame(e)},[f]),(0,l.useEffect)(()=>{if(f)return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",t),window.addEventListener("resize",b),window.addEventListener("scroll",b,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",t),window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0)};function e(e){let t=e.target;!(t instanceof Node)||u.current?.contains(t)||m.current?.contains(t)||w()}function t(e){"Escape"===e.key&&(w(),u.current?.focus({preventScroll:!0}))}},[w,f,b]);let k=h&&f?(0,a.createPortal)((0,r.jsx)("div",{ref:m,id:d,className:["ui-action-menu",y?"is-positioned":"",c].filter(Boolean).join(" "),role:"menu","aria-label":e,onClick:e=>e.stopPropagation(),children:t.map(e=>(0,r.jsxs)("button",{type:"button",className:["ui-action-menu-item",e.icon?"has-icon":"",e.description?"has-description":"",e.danger?"danger":""].filter(Boolean).join(" "),role:"menuitem",disabled:e.disabled,onClick:t=>{t.stopPropagation(),w(),e.onSelect()},children:[e.icon&&(0,r.jsx)("span",{className:"ui-action-menu-item-icon",children:e.icon}),(0,r.jsx)("span",{className:"ui-action-menu-item-label",children:e.label}),e.description&&(0,r.jsx)("span",{className:"ui-action-menu-item-description",children:e.description})]},e.key))}),document.body):null;return(0,r.jsxs)("span",{className:["ui-action-menu-anchor",s].filter(Boolean).join(" "),children:[i({ref:v,type:"button",disabled:o,onClick:function(e){e.stopPropagation(),o||g(e=>!e)},onKeyDown:function(e){"ArrowDown"===e.key&&(e.preventDefault(),o||g(!0))},"aria-haspopup":"menu","aria-expanded":f,"aria-controls":d}),k]})}],20885),e.s([],4121)},93957,e=>{"use strict";function t(e){return e.replace(/&/g,"&").replace(/'/g,"'").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function r(e){return e^=e<<13,e^=e>>17,e^=e<<5}function i(e=""){let t=function(e){let t=0;for(let i=0;i<e.length;i++)t=r(t=(t<<5)-t+e.charCodeAt(i)|0);return t}(e=e.toString().slice(0,1024))||1,l=()=>t=r(t),a=(e,t)=>Math.floor((l()- -0x80000000)/0xffffffff*(t+1-e)+e);return{seed:e,next:l,bool:(e=50)=>a(1,100)<=e,integer:(e,t)=>a(e,t),pick(e,t){var r;return 0===e.length?(l(),t):null!=(r=e[a(0,e.length-1)])?r:t},shuffle(e){let t=i(l().toString()),r=[...e];for(let e=r.length-1;e>0;e--){let i=t.integer(0,e);[r[e],r[i]]=[r[i],r[e]]}return r},string(e,t="abcdefghijklmnopqrstuvwxyz1234567890"){let r=i(l().toString()),a="";for(let i=0;i<e;i++)a+=t[r.integer(0,t.length-1)];return a}}}function l(e){let t=e.attributes.viewBox.split(" "),r=parseInt(t[0]),i=parseInt(t[1]);return{x:r,y:i,width:parseInt(t[2]),height:parseInt(t[3])}}let a={type:"object",$schema:"http://json-schema.org/draft-07/schema#",properties:{seed:{type:"string"},flip:{type:"boolean",default:!1},rotate:{type:"integer",minimum:0,maximum:360,default:0},scale:{type:"integer",minimum:0,maximum:200,default:100},radius:{type:"integer",minimum:0,maximum:50,default:0},size:{type:"integer",minimum:1},backgroundColor:{type:"array",items:{type:"string",pattern:"^(transparent|[a-fA-F0-9]{6})$"}},backgroundType:{type:"array",items:{type:"string",enum:["solid","gradientLinear"]},default:["solid"]},backgroundRotation:{type:"array",items:{type:"integer",minimum:-360,maximum:360},default:[0,360]},translateX:{type:"integer",minimum:-100,maximum:100,default:0},translateY:{type:"integer",minimum:-100,maximum:100,default:0},clip:{type:"boolean",default:!0},randomizeIds:{type:"boolean",default:!1}}};function n(e){var t;let r={},i=null!=(t=e.properties)?t:{};return Object.keys(i).forEach(e=>{let t=i[e];"object"==typeof t&&void 0!==t.default&&(Array.isArray(t.default)?r[e]=[...t.default]:"object"==typeof t.default?r[e]={...t.default}:r[e]=t.default)}),r}function o(e){return"transparent"===e?e:`#${e}`}e.s([],56357),e.i(56357),e.s(["eyes",0,{bulging:(e,t)=>'<circle cx="28" cy="24" r="18" fill="#000" fill-opacity=".2"/><circle cx="74" cy="24" r="18" fill="#000" fill-opacity=".2"/><circle cx="28" cy="24" r="15" fill="#F1EEDA"/><circle cx="74" cy="24" r="15" fill="#F1EEDA"/><rect x="26" y="15" width="10" height="10" rx="2" fill="#000" fill-opacity=".8"/><rect x="74" y="15" width="10" height="10" rx="2" fill="#000" fill-opacity=".8"/>',dizzy:(e,t)=>'<path d="m25 27.2 5.5 5.5c.5.4 1.2.4 1.6 0l1.6-1.6c.4-.5.4-1.2 0-1.6L28.2 24l5.5-5.5c.4-.5.4-1.2 0-1.6l-1.6-1.6c-.5-.4-1.2-.4-1.6 0L25 20.8l-5.5-5.5c-.5-.4-1.2-.4-1.6 0l-1.6 1.6c-.4.4-.4 1.1 0 1.6l5.5 5.5-5.5 5.5c-.4.5-.4 1.2 0 1.6l1.6 1.6c.5.4 1.2.4 1.6 0l5.5-5.5ZM79 27.2l5.5 5.5c.5.4 1.2.4 1.6 0l1.6-1.6c.4-.5.4-1.2 0-1.6L82.2 24l5.5-5.5c.4-.5.4-1.2 0-1.6l-1.6-1.6c-.5-.4-1.2-.4-1.6 0L79 20.8l-5.5-5.5c-.5-.4-1.2-.4-1.6 0l-1.6 1.6c-.4.4-.4 1.1 0 1.6l5.5 5.5-5.5 5.5c-.4.5-.4 1.2 0 1.6l1.6 1.6c.5.4 1.2.4 1.6 0l5.5-5.5Z" fill="#000" fill-opacity=".8"/>',eva:(e,t)=>'<g fill-rule="evenodd" clip-rule="evenodd"><path d="M53 0c34.75 0 49 17.47 49 31 0 13.53-19.59 17-49 17-29.05 0-51-3.47-51-17S17.11 0 53 0Z" fill="#000" fill-opacity=".8"/><path d="M28.82 34.65c-6.53-1.35-11.24-6.34-10.52-11.14.72-4.79 6.6-7.58 13.12-6.23 6.53 1.36 11.24 6.35 10.52 11.15-.72 4.8-6.6 7.59-13.12 6.23ZM75.42 34.65c-6.52 1.36-12.4-1.43-13.12-6.23-.72-4.8 4-9.8 10.52-11.15 6.52-1.35 12.4 1.44 13.12 6.24.72 4.81-4 9.8-10.52 11.15Z" fill="#25A6F5"/></g>',frame1:(e,t)=>'<rect y="4" width="104" height="42" rx="4" fill="#000" fill-opacity=".8"/><rect x="28" y="25" width="10" height="11" rx="2" fill="#8BDDFF"/><rect x="66" y="25" width="10" height="11" rx="2" fill="#8BDDFF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M21 4h8L12 46H4L21 4Z" fill="#fff" fill-opacity=".4"/>',frame2:(e,t)=>'<rect x="8" y="10" width="88" height="36" rx="4" fill="#000" fill-opacity=".8"/><rect x="28" y="21" width="10" height="17" rx="2" fill="#5EF2B8"/><rect x="66" y="21" width="10" height="17" rx="2" fill="#5EF2B8"/><path fill-rule="evenodd" clip-rule="evenodd" d="M83 10h5L76 46h-5l12-36Z" fill="#fff" fill-opacity=".4"/>',glow:(e,t)=>'<g fill="#fff"><circle cx="21" cy="30" r="15" fill-opacity=".1"/><circle cx="83" cy="30" r="15" fill-opacity=".1"/><circle cx="21" cy="30" r="12" fill-opacity=".1"/><circle cx="83" cy="30" r="12" fill-opacity=".1"/><circle cx="21" cy="30" r="6" fill-opacity=".8"/><circle cx="83" cy="30" r="6" fill-opacity=".8"/><circle cx="21" cy="30" r="3" fill-opacity=".8"/><circle cx="83" cy="30" r="3" fill-opacity=".8"/></g>',happy:(e,t)=>'<path d="m18 19 12-2M20 31c0-3.31 2.9-6 7-6 3.1 0 6 2.69 6 6M86 20l-12-3M84 31c0-3.31-2.9-6-6-6-4.1 0-7 2.69-7 6" stroke="#000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>',hearts:(e,t)=>'<path d="M29.27 9.68c-2.55.13-4.96 2.24-6.25 4.15-1.48-1.76-4.1-3.6-6.65-3.47-5.48.28-8.85 3.8-8.63 8.1.3 5.72 4.88 8.89 9.7 12.24 1.71 1.15 5 4.15 5.42 4.82.42.67 2.14.6 2.58-.13a37.8 37.8 0 0 1 4.9-5.36c4.43-3.84 8.66-7.47 8.36-13.2-.23-4.3-3.95-7.44-9.43-7.15ZM87.63 10.36c-2.55-.14-5.17 1.7-6.65 3.47-1.3-1.9-3.7-4.02-6.25-4.15-5.48-.29-9.2 2.86-9.43 7.16-.3 5.72 3.93 9.35 8.36 13.19 1.6 1.32 4.55 4.64 4.9 5.36.35.7 2.06.82 2.58.13.51-.7 3.7-3.67 5.42-4.82 4.81-3.35 9.4-6.52 9.7-12.24.22-4.3-3.15-7.82-8.63-8.1Z" fill="#FF5353" fill-opacity=".8"/>',robocop:(e,t)=>'<rect x="7" y="16" width="91" height="16" rx="4" fill="#000" fill-opacity=".8"/><mask id="eyesRobocop-a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="7" y="16" width="91" height="16"><rect x="7" y="16" width="91" height="16" rx="4" fill="#fff"/></mask><g mask="url(#eyesRobocop-a)" fill-rule="evenodd" clip-rule="evenodd" fill="#fff" fill-opacity=".8"><path d="M76 7h18L82 37H64L76 7ZM52 7h9L49 37h-9L52 7Z"/></g>',round:(e,t)=>'<g fill="#fff"><circle cx="24" cy="30" r="6"/><circle cx="80" cy="30" r="6"/></g>',roundFrame01:(e,t)=>'<rect y="12" width="104" height="32" rx="16" fill="#000" fill-opacity=".8"/><rect x="24" y="22" width="10" height="12" rx="2" fill="#F4F4F4"/><rect x="70" y="22" width="10" height="12" rx="2" fill="#F4F4F4"/>',roundFrame02:(e,t)=>'<rect y="11" width="104" height="34" rx="17" fill="#000" fill-opacity=".8"/><circle cx="29" cy="28" r="13" fill="#F1EEDA"/><circle cx="75" cy="28" r="13" fill="#F1EEDA"/><rect x="24" y="23" width="10" height="10" rx="2" fill="#000" fill-opacity=".8"/><rect x="70" y="23" width="10" height="10" rx="2" fill="#000" fill-opacity=".8"/>',sensor:(e,t)=>'<path d="M28 44a20 20 0 0 0 19.9-18h41.52a5 5 0 1 0 0-4H47.9A20 20 0 1 0 28 44Z" fill="#000" fill-opacity=".2"/><circle cx="94" cy="24" r="2" fill="#fff"/><circle cx="28" cy="24" r="16" fill="#000" fill-opacity=".6"/><circle cx="34" cy="16" r="3" fill="#fff"/>',shade01:(e,t)=>'<path d="M96 2H8c-4.5 0-8 3.5-8 8.03V28c0 4.5 3.5 8 8 8h13c8 0 11 8 18 8h27c7 0 9-8 17-8h13c4.5 0 8-3.5 8-8V10c0-4.5-3.5-8-8-8Z" fill="#000" fill-opacity=".8"/><path d="M87 14H17c-3.5 0-5 3-5 5v2c0 2 1.5 5 5 5h12c6 0 11.62 8 17 8h14c5.38 0 9-8 15-8h12c3.5 0 5-3 5-5v-2c0-2-1.5-5-5-5Z" fill="#FF3D3D"/><path d="M22.44 36.09 37.26 2h11L31.4 40.78l-.76-.58c-2.38-1.82-4.83-3.69-8.2-4.11ZM11.48 36 26.26 2h4L15.48 36h-4Z" fill="#fff" fill-opacity=".2"/>'},"mouth",0,{bite:(e,t)=>'<rect x="4" y="5" width="68" height="22" rx="5" fill="#000" fill-opacity=".2"/><rect x="8" y="9" width="60" height="14" rx="2" fill="#000" fill-opacity=".6"/><path fill-rule="evenodd" clip-rule="evenodd" d="m20 17 6-8H14l6 8ZM32 17l6-8H26l6 8ZM44 17l6-8H38l6 8ZM56 17l6-8H50l6 8Z" fill="#E1E6E8"/>',diagram:(e,t)=>'<rect x="4" y="4" width="68" height="24" rx="5" fill="#000" fill-opacity=".2"/><rect x="8" y="8" width="60" height="16" rx="2" fill="#000" fill-opacity=".8"/><path d="M9 17h11l2-4 3 7 4-8 2 9 3-11 3 10 3-3h15l3-4 2 7 3-3h4" stroke="#4EFAC9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',grill01:(e,t)=>'<g fill="#000" fill-opacity=".6"><rect x="12" y="12" width="4" height="8" rx="2"/><rect x="36" y="12" width="4" height="8" rx="2"/><rect x="24" y="12" width="4" height="8" rx="2"/><rect x="48" y="12" width="4" height="8" rx="2"/><rect x="60" y="12" width="4" height="8" rx="2"/></g>',grill02:(e,t)=>'<g fill="#000" fill-opacity=".6"><rect x="28" y="10" width="6" height="14" rx="2"/><rect x="14" y="10" width="6" height="14" rx="2"/><rect x="42" y="10" width="6" height="14" rx="2"/><rect x="56" y="10" width="6" height="14" rx="2"/></g>',grill03:(e,t)=>'<rect x="4" y="5" width="68" height="22" rx="5" fill="#000" fill-opacity=".2"/><rect x="8" y="9" width="60" height="14" rx="2" fill="#fff"/><path fill="#000" fill-opacity=".1" d="M18 9h4v14h-4zM42 9h4v14h-4zM30 9h4v14h-4zM54 9h4v14h-4z"/>',smile01:(e,t)=>'<path d="M27.05 8.44a2 2 0 1 1 3.9-.88C31.72 10.96 34.4 13 38 13c3.6 0 6.28-2.04 7.05-5.44a2 2 0 1 1 3.9.88C47.75 13.7 43.43 17 38 17s-9.76-3.3-10.95-8.56Z" fill="#000" fill-opacity=".6"/>',smile02:(e,t)=>'<path fill-rule="evenodd" clip-rule="evenodd" d="M18 10.22C18 21.78 24.47 28 38 28c13.52 0 20-6.34 20-17.78C58 9.5 57.17 8 55 8H21c-2.05 0-3 1.38-3 2.22Z" fill="#000" fill-opacity=".8"/><mask id="mouthSmile02-a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="18" y="8" width="40" height="20"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 10.22C18 21.78 24.47 28 38 28c13.52 0 20-6.34 20-17.78C58 9.5 57.17 8 55 8H21c-2.05 0-3 1.38-3 2.22Z" fill="#fff"/></mask><g mask="url(#mouthSmile02-a)"><rect x="30" y="2" width="16" height="14" rx="2" fill="#fff"/></g>',square01:(e,t)=>'<rect x="24" y="6" width="27" height="8" rx="4" fill="#000" fill-opacity=".8"/>',square02:(e,t)=>'<rect x="16" y="8" width="44" height="4" rx="2" fill="#000" fill-opacity=".8"/>'}],42495);var s=e.i(42495);function c({prng:e,group:t,values:r=[]}){let i=e.pick(r);return i&&s[t][i]?{name:i,value:s[t][i]}:void 0}let d={title:"Bottts",creator:"Pablo Stanley",source:"https://bottts.com/",homepage:"https://twitter.com/pablostanley",license:{name:"Free for personal and commercial use",url:"https://bottts.com/"}},u=({prng:e,options:t})=>{var r,i,l,a;let n=function({prng:e,options:t}){return{mouth:c({prng:e,group:"mouth",values:t.mouth}),eyes:c({prng:e,group:"eyes",values:t.eyes})}}({prng:e,options:t}),o=function({prng:e,options:t}){return{}}({prng:e,options:t});return{attributes:{viewBox:"0 0 120 120",fill:"none","shape-rendering":"auto"},body:`<g transform="translate(22 68)">${null!=(i=null==(r=n.mouth)?void 0:r.value(n,o))?i:""}</g><g transform="translate(8 20)">${null!=(a=null==(l=n.eyes)?void 0:l.value(n,o))?a:""}</g>`,extra:()=>({...Object.entries(n).reduce((e,[t,r])=>(e[t]=null==r?void 0:r.name,e),{}),...Object.entries(o).reduce((e,[t,r])=>(e[`${t}Color`]=r,e),{})})}};e.s(["create",0,u,"meta",0,d],98027),e.i(98027),e.s(["create",0,u,"meta",0,d,"schema",0,{$schema:"http://json-schema.org/draft-07/schema#",properties:{backgroundColor:{type:"array",items:{type:"string",pattern:"^(transparent|[a-fA-F0-9]{6})$"},default:["ffb300","1e88e5","546e7a","6d4c41","00acc1","f4511e","5e35b1","43a047","757575","3949ab","039be5","7cb342","c0ca33","fb8c00","d81b60","8e24aa","e53935","00897b","fdd835"]},eyes:{type:"array",items:{type:"string",enum:["bulging","dizzy","eva","frame1","frame2","glow","happy","hearts","robocop","round","roundFrame01","roundFrame02","sensor","shade01"]},default:["bulging","dizzy","eva","frame1","frame2","glow","happy","hearts","robocop","round","roundFrame01","roundFrame02","sensor","shade01"]},mouth:{type:"array",items:{type:"string",enum:["bite","diagram","grill01","grill02","grill03","smile01","smile02","square01","square02"]},default:["bite","diagram","grill01","grill02","grill03","smile01","smile02","square01","square02"]}}}],44297);var m=e.i(44297),m=m;e.s(["generateAvatar",0,function(e,r){return r||(e?(function(e,r={}){var s,c,d,u,m,h,p,f,g,y,x,v,w,b,k,j,$,E,M,N,C,L,S,P,A,U,F,z,D,Z,B,I,R,T;let O,H,W,q,X,_,K,J,V,Y,G,Q,ee,et,er,ei,el;h=r;let ea=i((r=JSON.parse(JSON.stringify({...n(a),...n(null!=(p=e.schema)?p:{}),...h}))).seed),en=e.create({prng:ea,options:r}),eo=ea.pick(null!=(s=r.backgroundType)?s:[],"solid"),{primary:es,secondary:ec}=(f=null!=(c=r.backgroundColor)?c:[],(O=ea.shuffle(f)).length<=1||2==f.length&&"gradientLinear"==eo?(O=f,ea.next()):O=ea.shuffle(f),0===O.length&&(O=["transparent"]),H=O[0],W=null!=(g=O[1])?g:O[0],{primary:o(H),secondary:o(W)}),ed=ea.integer((null==(d=r.backgroundRotation)?void 0:d.length)?Math.min(...r.backgroundRotation):0,(null==(u=r.backgroundRotation)?void 0:u.length)?Math.max(...r.backgroundRotation):0);r.size&&(en.attributes.width=r.size.toString(),en.attributes.height=r.size.toString()),void 0!==r.scale&&100!==r.scale&&(en.body=function(e,t){let{width:r,height:i,x:a,y:n}=l(e),o=t?(t-100)/100:0;return`<g transform="translate(${-((r/2+a)*o*1)} ${-((i/2+n)*o*1)}) scale(${t/100})">${e.body}</g>`}(en,r.scale)),r.flip&&(en.body=function(e){let{width:t,x:r}=l(e);return`<g transform="scale(-1 1) translate(${-1*t-2*r} 0)">${e.body}</g>`}(en)),r.rotate&&(en.body=function(e,t){let{width:r,height:i,x:a,y:n}=l(e);return`<g transform="rotate(${t}, ${r/2+a}, ${i/2+n})">${e.body}</g>`}(en,r.rotate)),(r.translateX||r.translateY)&&(y=r.translateX,x=r.translateY,X=((q=l(en)).width+2*q.x)*((null!=y?y:0)/100),_=(q.height+2*q.y)*((null!=x?x:0)/100),en.body=`<g transform="translate(${X} ${_})">${en.body}</g>`),"transparent"!==es&&"transparent"!==ec&&(en.body=function(e,r,i,a,n){let{width:o,height:s,x:c,y:d}=l(e),u=`<rect fill="${t(r)}" width="${o}" height="${s}" x="${c}" y="${d}" />`;switch(a){case"solid":return u+e.body;case"gradientLinear":return`<rect fill="url(#backgroundLinear)" width="${o}" height="${s}" x="${c}" y="${d}" /><defs><linearGradient id="backgroundLinear" gradientTransform="rotate(${n} 0.5 0.5)"><stop stop-color="${t(r)}"/><stop offset="1" stop-color="${t(i)}"/></linearGradient></defs>`+e.body}}(en,es,ec,eo,ed)),(r.radius||r.clip)&&(en.body=function(e,t){let{width:r,height:i,x:a,y:n}=l(e);return`<mask id="viewboxMask"><rect width="${r}" height="${i}" rx="${t?r*t/100:0}" ry="${t?i*t/100:0}" x="${a}" y="${n}" fill="#fff" /></mask><g mask="url(#viewboxMask)">${e.body}</g>`}(en,null!=(m=r.radius)?m:0)),r.randomizeIds&&(K=i(Math.random().toString()),J={},en.body=en.body.replace(/(id="|url\(#)([a-z0-9-_]+)([")])/gi,(e,t,r,i)=>(J[r]=J[r]||K.string(8),`${t}${J[r]}${i}`)));let eu=Object.keys(V={xmlns:"http://www.w3.org/2000/svg",...en.attributes}).map(e=>`${t(e)}="${t(V[e])}"`).join(" "),em=(Y=null==(v=e.meta)?void 0:v.title,G=null==(w=e.meta)?void 0:w.creator,Q=null==(b=e.meta)?void 0:b.source,ee=null==(j=null==(k=e.meta)?void 0:k.license)?void 0:j.url,er=(null==(N=(M=e).meta)?void 0:N.title)?`„${null==(C=M.meta)?void 0:C.title}”`:"Design",ei=`„${null!=(S=null==(L=M.meta)?void 0:L.creator)?S:"Unknown"}”`,(null==(P=M.meta)?void 0:P.source)&&(er+=` (${M.meta.source})`),el="",(null==(U=null==(A=M.meta)?void 0:A.license)?void 0:U.name)!=="MIT"&&(null==(F=M.meta)?void 0:F.creator)!=="DiceBear"&&(null==(z=M.meta)?void 0:z.title)&&(el+="Remix of "),el+=`${er} by ${ei}`,(null==(Z=null==(D=M.meta)?void 0:D.license)?void 0:Z.name)&&(el+=`, licensed under „${null==(I=null==(B=M.meta)?void 0:B.license)?void 0:I.name}”`,(null==(T=null==(R=M.meta)?void 0:R.license)?void 0:T.url)&&(el+=` (${M.meta.license.url})`)),et=el,Y||G||Q||ee||et?'<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/"><rdf:RDF><rdf:Description>'+(Y?`<dc:title>${t(Y)}</dc:title>`:"")+(G?`<dc:creator>${t(G)}</dc:creator>`:"")+(Q?`<dc:source xsi:type="dcterms:URI">${t(null!=(E=null==($=e.meta)?void 0:$.source)?E:"")}</dc:source>`:"")+(ee?`<dcterms:license xsi:type="dcterms:URI">${t(ee)}</dcterms:license>`:"")+(et?`<dc:rights>${t(et)}</dc:rights>`:"")+"</rdf:Description></rdf:RDF></metadata>":""),eh=`<svg ${eu}>${em}${en.body}</svg>`;return{toString:()=>eh,toJson:()=>{var e;return{svg:eh,extra:{primaryBackgroundColor:es,secondaryBackgroundColor:ec,backgroundType:eo,backgroundRotation:ed,...null==(e=en.extra)?void 0:e.call(en)}}},toDataUri:()=>`data:image/svg+xml;utf8,${encodeURIComponent(eh)}`}})(m,{seed:"most.box@"+e,flip:!0,backgroundType:["gradientLinear"]}).toDataUri():"/avatar.png")}],93957)},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)},79952,e=>{"use strict";var t=e.i(18050),r=e.i(74080),i=e.i(72382),l=e.i(80860),a=e.i(63676),n=e.i(71192),o=e.i(3593);e.i(4121);var s=e.i(57667),c=e.i(93957);e.s(["default",0,function(){let e=(0,o.useAppStore)(e=>e.addToast),d=(0,n.useUserStore)(e=>e.showLoginModal),u=(0,n.useUserStore)(e=>e.closeLoginModal),m=(0,n.useUserStore)(e=>e.loginUsername),h=(0,n.useUserStore)(e=>e.loginPassword),p=(0,n.useUserStore)(e=>e.showPassword),f=(0,n.useUserStore)(e=>e.loginPreviewAddress),g=(0,n.useUserStore)(e=>e.hasPreviewedAvatar),y=(0,n.useUserStore)(e=>e.loginLoading),x=(0,n.useUserStore)(e=>e.loginError),v=(0,n.useUserStore)(e=>e.setLoginUsername),w=(0,n.useUserStore)(e=>e.setLoginPassword),b=(0,n.useUserStore)(e=>e.togglePassword),k=(0,n.useUserStore)(e=>e.previewLoginIdentity),j=(0,n.useUserStore)(e=>e.loginUser);if(!d)return null;let $=f?`${f.slice(0,6)}...${f.slice(-4)}`:"Most People",E=(0,t.jsx)(s.ModalOverlay,{onClose:u,children:(0,t.jsxs)("form",{className:"login-modal",onSubmit:t=>{let r;t.preventDefault(),(r=j())&&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:u,type:"button",children:(0,t.jsx)(a.X,{size:18})})]}),(0,t.jsxs)("div",{className:"login-modal-body",children:[(0,t.jsx)("img",{className:"login-avatar-preview",src:f?(0,c.generateAvatar)(f):"/avatar.png",alt:"avatar"}),(0,t.jsx)("p",{className:"login-tip",children:$}),x&&(0,t.jsx)("p",{className:"login-error",children:x}),(0,t.jsx)("input",{type:"text",className:"input input-compact",placeholder:"用户名",value:m,onChange:e=>v(e.target.value),autoFocus:!0}),(0,t.jsxs)("div",{className:"login-password-wrapper",children:[(0,t.jsx)("input",{type:p?"text":"password",className:"input input-compact",placeholder:"密码",value:h,onChange:e=>w(e.target.value)}),(0,t.jsx)("button",{className:"login-password-toggle",type:"button",onClick:b,children:p?(0,t.jsx)(l.EyeOff,{size:16}):(0,t.jsx)(i.Eye,{size:16})})]}),(0,t.jsxs)("div",{className:"login-buttons-row",children:[(0,t.jsx)("button",{className:"btn btn-secondary",onClick:k,disabled:g||y,type:"button",children:g?"检查地址":"登录"}),(0,t.jsx)("button",{className:"btn btn-primary",disabled:!g||y,type:"submit",children:y?"登录中":"确认"})]})]})]})});return(0,r.createPortal)(E,document.body)}])},19767,e=>{"use strict";var t=e.i(18050),r=e.i(74080),i=e.i(63676),l=e.i(3593);e.i(4121);var a=e.i(57667),n=e.i(71645),o=e.i(41220);let s=(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 c=e.i(26913);function d({variant:e="page"}){let r=(0,l.useAppStore)(e=>e.checkBackend),i=(0,l.useAppStore)(e=>e.addToast),a=(0,c.getRemoteBackendUrlExport)(),[u,m]=(0,n.useState)(a),[h,p]=(0,n.useState)((0,c.getBackendInviteExport)()),[f,g]=(0,n.useState)(!1),y=a?"修改远程节点":"连接远程节点",x="Web 端只连接已有 MostBox 节点。输入别人部署好的节点地址和邀请码后,可通过该节点使用文件分享和聊天;本机完整 P2P 能力请使用桌面客户端。",v="page"===e;async function w(){let e=u.trim().replace(/\/+$/,"");if(!function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))return void i("请输入有效的 http(s) 节点地址","warning");g(!0);try{let{ok:t,reason:r}=await (0,c.checkBackendConnectionTarget)({url:e,invite:h});if(!t)return void("http"===r?i("远程节点 HTTP 不可达,请检查地址","error"):"ws"===r?i("远程节点 WebSocket 不可达,请检查地址或代理配置","error"):i("远程节点连接失败,请检查地址和邀请码","error"));(0,c.configureBackend)({url:e,invite:h}),m(e),(0,c.setBackendUrl)(e),l.useAppStore.setState({hasBackend:!0}),i("远程节点已连接","success")}catch{i("远程节点连接失败","error")}finally{g(!1)}}async function b(){(0,c.clearBackendConnection)(),m(""),p(""),await r(),i("已清除远程节点,优先使用本地节点","success")}return(0,t.jsxs)("div",{className:`remote-node-connect remote-node-connect-${e}`,children:[v?(0,t.jsxs)("div",{className:"remote-node-connect-heading",children:[(0,t.jsx)(o.Server,{size:20}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{children:y}),(0,t.jsx)("p",{children:x})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("label",{className:"drawer-label",children:[(0,t.jsx)(o.Server,{size:14,className:"icon-inline"}),y]}),(0,t.jsx)("p",{className:"drawer-hint drawer-hint-spaced",children:x})]}),(0,t.jsxs)("div",{className:"remote-node-form",children:[(0,t.jsx)("input",{className:"input input-compact",placeholder:"https://node.example.com",value:u,onChange:e=>m(e.target.value)}),(0,t.jsx)("input",{className:"input input-compact",placeholder:"邀请码",value:h,onChange:e=>p(e.target.value)}),(0,t.jsxs)("button",{className:"btn btn-primary btn-full",onClick:w,disabled:f||!u.trim(),children:[(0,t.jsx)(o.Server,{size:16}),f?"连接中...":a?"更新连接":"连接节点"]}),a&&(0,t.jsxs)("button",{className:"btn btn-secondary btn-full",onClick:b,disabled:f,children:[(0,t.jsx)(s,{size:16}),"断开连接"]})]}),a&&(0,t.jsxs)("p",{className:v?"remote-node-status":"drawer-status",children:["当前远程节点:",a]})]})}e.s(["default",0,function(){let e=(0,l.useAppStore)(e=>e.showConnectModal),n=(0,l.useAppStore)(e=>e.closeConnectModal);if(!e)return null;let o=(0,t.jsx)(a.ModalOverlay,{onClose:n,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:n,type:"button",children:(0,t.jsx)(i.X,{size:18})})]}),(0,t.jsx)("div",{className:"connect-modal-body",children:(0,t.jsx)(d,{variant:"drawer"})})]})});return(0,r.createPortal)(o,document.body)}],19767)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95057,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var r={formatUrl:function(){return i},formatWithValidation:function(){return o},urlObjectKeys:function(){return c}};for(var s in r)Object.defineProperty(a,s,{enumerable:!0,get:r[s]});let n=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:a}=e,r=e.protocol||"",s=e.pathname||"",i=e.hash||"",c=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:a&&(o=t+(~a.indexOf(":")?`[${a}]`:a),e.port&&(o+=":"+e.port)),c&&"object"==typeof c&&(c=String(n.urlQueryToSearchParams(c)));let d=e.search||c&&`?${c}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||l.test(r))&&!1!==o?(o="//"+(o||""),s&&"/"!==s[0]&&(s="/"+s)):o||(o=""),i&&"#"!==i[0]&&(i="#"+i),d&&"?"!==d[0]&&(d="?"+d),s=s.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${r}${o}${s}${d}${i}`}let c=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function o(e){return i(e)}},18581,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"useMergedRef",{enumerable:!0,get:function(){return s}});let r=e.r(71645);function s(e,t){let a=(0,r.useRef)(null),s=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=a.current;e&&(a.current=null,e());let t=s.current;t&&(s.current=null,t())}else e&&(a.current=n(e,r)),t&&(s.current=n(t,r))},[e,t])}function n(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let a=e(t);return"function"==typeof a?a:()=>e(null)}}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},73668,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"isLocalURL",{enumerable:!0,get:function(){return n}});let r=e.r(18967),s=e.r(52817);function n(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),a=new URL(e,t);return a.origin===t&&(0,s.hasBasePath)(a.pathname)}catch(e){return!1}}},84508,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},22016,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var r={default:function(){return y},useLinkStatus:function(){return j}};for(var s in r)Object.defineProperty(a,s,{enumerable:!0,get:r[s]});let n=e.r(90809),l=e.r(18050),i=n._(e.r(71645)),c=e.r(95057),o=e.r(8372),d=e.r(18581),u=e.r(18967),h=e.r(5550);e.r(33525);let p=e.r(88540),f=e.r(91949),m=e.r(73668),x=e.r(9396);function y(t){var a,r;let s,n,y,[j,v]=(0,i.useOptimistic)(f.IDLE_LINK_STATUS),b=(0,i.useRef)(null),{href:g,as:M,children:N,prefetch:P=null,passHref:w,replace:S,shallow:E,scroll:O,onClick:_,onMouseEnter:C,onTouchStart:z,legacyBehavior:L=!1,onNavigate:T,transitionTypes:B,ref:q,unstable_dynamicOnHover:A,...I}=t;s=N,L&&("string"==typeof s||"number"==typeof s)&&(s=(0,l.jsx)("a",{children:s}));let R=i.default.useContext(o.AppRouterContext),W=!1!==P,H=!1!==P?null===(r=P)||"auto"===r?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,D="string"==typeof(a=M||g)?a:(0,c.formatUrl)(a);if(L){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});n=i.default.Children.only(s)}let F=L?n&&"object"==typeof n&&n.ref:q,U=i.default.useCallback(e=>(null!==R&&(b.current=(0,f.mountLinkInstance)(e,D,R,H,W,v)),()=>{b.current&&((0,f.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,f.unmountPrefetchableInstance)(e)}),[W,D,R,H,v]),$={ref:(0,d.useMergedRef)(U,F),onClick(t){L||"function"!=typeof _||_(t),L&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!R||t.defaultPrevented||function(t,a,r,s,n,l,c){if("u">typeof window){let o,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((o=t.currentTarget.getAttribute("target"))&&"_self"!==o||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(a)){s&&(t.preventDefault(),location.replace(a));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(99781);i.default.startTransition(()=>{u(a,s?"replace":"push",!1===n?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,r.current,c)})}}(t,D,b,S,O,T,B)},onMouseEnter(e){L||"function"!=typeof C||C(e),L&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),R&&W&&(0,f.onNavigationIntent)(e.currentTarget,!0===A)},onTouchStart:function(e){L||"function"!=typeof z||z(e),L&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),R&&W&&(0,f.onNavigationIntent)(e.currentTarget,!0===A)}};return(0,u.isAbsoluteUrl)(D)?$.href=D:L&&!w&&("a"!==n.type||"href"in n.props)||($.href=(0,h.addBasePath)(D)),y=L?i.default.cloneElement(n,$):(0,l.jsx)("a",{...I,...$,children:s}),(0,l.jsx)(k.Provider,{value:j,children:y})}e.r(84508);let k=(0,i.createContext)(f.IDLE_LINK_STATUS),j=()=>(0,i.useContext)(k);("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},89664,e=>{"use strict";let t=(0,e.i(56420).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],89664)},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)},62368,e=>{"use strict";let t=(0,e.i(56420).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",0,t],62368)},68590,58501,e=>{"use strict";let t=(0,e.i(56420).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],68590);var a=e.i(18050);e.s(["LogoIcon",0,function({size:e=24}){return(0,a.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,a.jsx)("rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.4"}),(0,a.jsx)("rect",{x:"14",y:"2",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,a.jsx)("rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)",opacity:"0.7"}),(0,a.jsx)("rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",fill:"var(--accent)"})]})}],58501)},68877,e=>{"use strict";let t=(0,e.i(56420).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",0,t],68877)},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)},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)},70904,82022,e=>{"use strict";var t=e.i(56420);let a=(0,t.default)("wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);e.s(["Wallet",0,a],70904);let r=(0,t.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",0,r],82022)},42724,e=>{"use strict";var t=e.i(18050),a=e.i(71645),r=e.i(22016),s=e.i(62368),n=e.i(96699),l=e.i(35965),i=e.i(58501);e.s(["Nav",0,function(){let[e,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=localStorage.getItem("theme"),t=window.matchMedia("(prefers-color-scheme: dark)").matches;("dark"===e||!e&&t)&&c(!0)},[]),(0,a.useEffect)(()=>{document.documentElement.setAttribute("data-theme",e?"dark":"light"),localStorage.setItem("theme",e?"dark":"light")},[e]),(0,t.jsx)(t.Fragment,{children:(0,t.jsx)("nav",{className:"mkt-nav",children:(0,t.jsxs)("div",{className:"mkt-nav-inner",children:[(0,t.jsxs)(r.default,{href:"/",className:"mkt-nav-logo",children:[(0,t.jsx)(i.LogoIcon,{}),"MOST PEOPLE"]}),(0,t.jsxs)("div",{className:"mkt-nav-cta",children:[(0,t.jsx)("button",{className:"mkt-theme-toggle",onClick:()=>c(!e),"aria-label":"切换主题",children:e?(0,t.jsx)(l.Sun,{size:16}):(0,t.jsx)(n.Moon,{size:16})}),(0,t.jsxs)(r.default,{href:"/download/",className:"btn btn-primary mkt-nav-preview",children:[(0,t.jsx)(s.Download,{size:16}),"下载客户端"]}),(0,t.jsx)(r.default,{href:"/app/",className:"btn btn-secondary",children:"打开 Web"})]})]})})})}])},56691,e=>{"use strict";var t=e.i(18050),a=e.i(22016);let r=[{href:"/",label:"关于"},{href:"/ping/",label:"网络"},{href:"https://github.com/most-people/most",label:"GitHub",external:!0}];e.s(["Footer",0,function(){return(0,t.jsx)("footer",{className:"mkt-footer",children:(0,t.jsx)("div",{className:"mkt-container",children:(0,t.jsxs)("div",{className:"mkt-footer-inner",children:[(0,t.jsx)("div",{className:"mkt-footer-links",children:r.map(e=>(0,t.jsx)(a.default,{href:e.href,...e.external?{target:"_blank",rel:"noopener noreferrer"}:{},children:e.label},e.href))}),(0,t.jsxs)("span",{className:"mkt-footer-copy",children:["© ",new Date().getFullYear()," MOST PEOPLE · MIT License"]})]})})})}])},40983,e=>{"use strict";var t=e.i(18050),a=e.i(42724),r=e.i(56691);e.s(["MarketingLayout",0,function({children:e}){return(0,t.jsxs)("div",{className:"mkt-layout",children:[(0,t.jsx)(a.Nav,{}),(0,t.jsx)("main",{className:"mkt-layout-main",children:e}),(0,t.jsx)(r.Footer,{})]})}])},31713,e=>{"use strict";var t=e.i(18050),a=e.i(71645),r=e.i(22016),s=e.i(56420);let n=(0,s.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 l=e.i(68590),i=e.i(10566),c=e.i(70904),o=e.i(68877);let d=(0,s.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var u=e.i(89664),h=e.i(82022),p=e.i(62368),f=e.i(41220),m=e.i(50285);let x=(0,s.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 y=e.i(3593);let k=[{id:"app",title:"MostBox",subtitle:"P2P 文件分享",icon:(0,t.jsx)(n,{size:28}),path:"/app/",requiresBackend:!0,hero:"P2P 文件分享,无需注册",desc:"基于 Hyperswarm 的去中心化文件传输,让文件分享回归点对点。MostBox 不是云盘;链接来自 CID,可用性来自当前在线种子。当前 MVP 优先使用桌面客户端。",features:["无需云端账号,使用本地身份隔离数据","Hyperswarm P2P 直连传输","GB 级大文件流式处理","相同文件 = 相同 CID,链接可反复校验","下载完成后默认继续做种","相比微信、QQ 或网盘,不依赖中心化账号和云端托管","Web 端只连接已有节点,桌面端提供完整 P2P 能力","MIT 开源,自托管,数据完全自主掌控"],steps:[{num:"1",title:"下载客户端",desc:"支持 Windows、macOS 和 Linux,桌面端提供完整的 P2P 能力。",link:"/download",linkText:"前往下载页"},{num:"2",title:"安装并运行",desc:"安装后打开应用,无需单独安装 Node.js。"},{num:"3",title:"开始分享",desc:"发布文件生成 most:// 链接,朋友下载校验通过后也会成为新的种子。"}]},{id:"chat",title:"P2P 聊天",subtitle:"频道加密通讯",icon:(0,t.jsx)(l.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)(i.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)(x,{size:28}),path:"/game/gandengyan/",requiresBackend:!0,hero:"常驻节点里的在线牌桌",desc:"把干瞪眼作为 MostBox 的独立页面接入,复用现有频道消息、Web3 登录身份和桌面端常驻入口。",features:["使用 MostBox 本地账号进入房间","复用 /chat/ 的频道后端,不新增游戏后端接口","房间链接可直接分享到群组","支持 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 j(){let e=(0,y.useAppStore)(e=>e.hasBackend),s=(0,y.useAppStore)(e=>e.openConnectModal),[n,l]=(0,a.useState)("app"),i=k.find(e=>e.id===n)||k[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:k.map(a=>{let s=n===a.id,i=a.requiresBackend,c=i?!0===e?"connected":!1===e?"disconnected":"checking":"none";return(0,t.jsxs)("button",{className:`portal-card ${s?"active":""}`,onClick:()=>l(a.id),children:[(0,t.jsx)(r.default,{href:a.path,className:"btn btn-icon portal-card-open-btn",onClick:e=>e.stopPropagation(),title:`打开${a.title}`,children:(0,t.jsx)(d,{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}),i?(0,t.jsxs)("div",{className:`ui-badge 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:"ui-badge 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:s,className:"btn btn-secondary",children:[(0,t.jsx)(f.Server,{size:16}),"Web 连接节点"]}),(0,t.jsxs)(r.default,{href:"/admin",className:"btn btn-secondary",children:[(0,t.jsx)(m.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:i.hero}),(0,t.jsx)("p",{children:i.desc})]}),(0,t.jsx)("div",{className:"portal-marketing-features",children:i.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)(u.Check,{size:14,strokeWidth:3})}),(0,t.jsx)("span",{children:e})]},a))}),(0,t.jsx)("div",{className:"portal-marketing-steps",children:i.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)(h.ExternalLink,{size:12})]})})]})]},e.num))}),(0,t.jsxs)("div",{className:"portal-actions",children:[(0,t.jsxs)(r.default,{href:i.path,className:"btn btn-primary",children:["进入 ",i.title,(0,t.jsx)(o.ArrowRight,{size:16})]}),i.requiresBackend&&!1===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:s,className:"btn btn-secondary",children:[(0,t.jsx)(f.Server,{size:16}),"Web 连接节点"]}),(0,t.jsxs)(r.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)(j,{})})}],31713)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.mkt-layout{flex-direction:column;min-height:100dvh;display:flex}.mkt-layout-main{flex:1}.mkt-container{width:100%;max-width:960px;padding-inline:var(--space-6);margin-inline:auto}@media (max-width:768px){.mkt-container{padding-inline:var(--space-4)}}.mkt-nav{z-index:100;border-bottom:1px solid var(--glass-border);background:var(--glass-bg-heavy);height:64px;-webkit-backdrop-filter:var(--blur-xl);align-items:center;display:flex;position:sticky;top:0}.mkt-nav-inner{width:100%;max-width:960px;padding-inline:var(--space-6);justify-content:space-between;align-items:center;margin-inline:auto;display:flex}.mkt-nav-logo{align-items:center;gap:var(--space-2);font-size:var(--font-size-lg,1.125rem);color:var(--text-primary);font-weight:700;text-decoration:none;display:flex}.mkt-nav-logo:hover{color:var(--text-primary)}.mkt-nav-cta{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;display:flex}.mkt-theme-toggle{border-radius:var(--radius-sm,8px);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:flex}.mkt-theme-toggle:hover{color:var(--text-primary);background:var(--glass-bg-subtle)}.mkt-footer{border-top:1px solid var(--glass-border);padding-block:var(--space-8);background:var(--glass-bg-subtle)}.mkt-footer-inner{justify-content:center;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.mkt-footer-links{gap:var(--space-6);display:flex}.mkt-footer-links a{font-size:var(--font-size-xs,.75rem);color:var(--text-muted)}.mkt-footer-links a:hover{color:var(--text-primary)}.mkt-footer-copy{font-size:var(--font-size-xs,.75rem);color:var(--text-muted)}@media (max-width:768px){.mkt-nav-inner{padding-inline:var(--space-4)}.mkt-nav-logo{font-size:14px}.mkt-nav-cta{gap:var(--space-2)}.mkt-nav-preview{display:none}.mkt-footer-inner{flex-direction:column;align-items:flex-start}}.mkt-landing{font-family:var(--font-sans)}.mkt-hero{text-align:center;padding:80px 24px 48px}.mkt-hero-badge{border-radius:var(--radius-full);background:var(--glass-bg-subtle);color:var(--text-secondary);border:1px solid var(--glass-border);margin-bottom:24px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.mkt-hero-title{letter-spacing:0;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:60px;font-weight:700;line-height:1.05}.mkt-hero-desc{color:var(--text-secondary);max-width:36ch;margin:0 auto 32px;font-size:18px;line-height:1.6}.mkt-hero-cta{justify-content:center;gap:12px;margin-top:24px;display:flex}.mkt-screenshot-placeholder{background:var(--glass-bg-subtle);border:1px dashed var(--glass-border);border-radius:var(--radius-lg);aspect-ratio:16/9;color:var(--text-muted);justify-content:center;align-items:center;margin-bottom:48px;font-size:13px;display:flex}.mkt-section-desc{color:var(--text-secondary);max-width:65ch;margin-bottom:32px;font-size:18px;line-height:1.7}.mkt-features{flex-direction:column;gap:20px;display:flex}.mkt-feature{align-items:flex-start;gap:12px;display:flex}.mkt-feature .mkt-feature-icon{color:var(--accent);flex-shrink:0;margin-top:2px}.mkt-feature strong{color:var(--text-primary);font-weight:600;display:block}.mkt-feature span{color:var(--text-secondary);font-size:13px}.mkt-link{color:var(--accent);margin-top:32px;font-size:13px;text-decoration:none;display:inline-block}.mkt-link:hover{text-decoration:underline}.mkt-section-alt{background:var(--glass-bg-subtle);border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border)}.mkt-steps{flex-direction:column;gap:24px;margin-bottom:32px;display:flex}.mkt-step{align-items:flex-start;gap:16px;display:flex}.mkt-step-num{border-radius:var(--radius-full);background:var(--accent);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex}.mkt-step-content{flex:1}.mkt-step-content h4{color:var(--text-primary);margin-bottom:8px;font-size:15px;font-weight:600}.mkt-step-content p{color:var(--text-secondary);font-size:13px}.mkt-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:12px 16px;display:block}.mkt-step-link{margin-top:8px}.mkt-step-link a{color:var(--accent);font-size:13px}.mkt-remote-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px;display:grid}.mkt-remote-card{background:var(--glass-bg-subtle);-webkit-backdrop-filter:var(--blur-sm);border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:all var(--transition);padding:20px}.mkt-remote-card:hover{background:var(--glass-bg);box-shadow:var(--glass-shadow);transform:translateY(-2px)}.mkt-remote-card h4{color:var(--text-primary);margin-bottom:4px;font-size:15px;font-weight:600}.mkt-remote-card p{color:var(--text-secondary);font-size:13px;line-height:1.5}.mkt-tag{color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-sm);margin-top:8px;padding:4px 8px;font-size:11px;font-weight:500;display:inline-block}.mkt-cta{text-align:center}.mkt-cta-desc{color:var(--text-secondary);max-width:40ch;margin:0 auto 32px;font-size:18px;line-height:1.6}.mkt-cta-install{max-width:520px;margin:0 auto}@media (max-width:768px){.mkt-hero-title{font-size:40px}.mkt-hero-desc{font-size:16px}.mkt-remote-grid{grid-template-columns:1fr}.mkt-hero-cta{flex-direction:column;align-items:center}}.page-loading{flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 144px);display:flex}.page-loading-logo{opacity:.5;background:linear-gradient(135deg, var(--accent) 25%, transparent 25%) 0 0 / 50% 50% no-repeat, linear-gradient(135deg, var(--accent) 25%, transparent 25%) 50% 0 / 50% 50% no-repeat, linear-gradient(135deg, var(--accent) 25%, transparent 25%) 0 50% / 50% 50% no-repeat, linear-gradient(135deg, var(--accent) 25%, transparent 25%) 50% 50% / 50% 50% no-repeat;background-color:var(--accent);border-radius:4px;width:48px;height:48px;animation:1.5s ease-in-out infinite pulse;-webkit-mask:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='2' y='2' width='8' height='8' rx='2' fill='black' opacity='0.4'/%3E%3Crect x='14' y='2' width='8' height='8' rx='2' fill='black' opacity='0.7'/%3E%3Crect x='2' y='14' width='8' height='8' rx='2' fill='black' opacity='0.7'/%3E%3Crect x='14' y='14' width='8' height='8' rx='2' fill='black'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='2' y='2' width='8' height='8' rx='2' fill='black' opacity='0.4'/%3E%3Crect x='14' y='2' width='8' height='8' rx='2' fill='black' opacity='0.7'/%3E%3Crect x='2' y='14' width='8' height='8' rx='2' fill='black' opacity='0.7'/%3E%3Crect x='14' y='14' width='8' height='8' rx='2' fill='black'/%3E%3C/svg%3E") 50%/contain no-repeat}@keyframes pulse{0%,to{opacity:.3;transform:scale(.95)}50%{opacity:.7;transform:scale(1)}}.mkt-nav-settings-btn{border-radius:var(--radius-sm,8px);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:flex}.mkt-nav-settings-btn:hover{color:var(--text-primary);background:var(--glass-bg-subtle)}.mkt-settings-overlay{z-index:200;-webkit-backdrop-filter:var(--blur-xl);background:#0006;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.mkt-settings-modal{background:var(--glass-bg-heavy);-webkit-backdrop-filter:var(--blur-2xl);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);width:90%;max-width:420px;box-shadow:var(--glass-shadow-lg);animation:.25s ease-out scaleIn}.mkt-settings-modal h3{margin-bottom:var(--space-2);font-size:18px;font-weight:600}.mkt-settings-desc{color:var(--text-secondary);margin-bottom:var(--space-5);font-size:13px;line-height:1.5}.mkt-settings-actions{gap:var(--space-3);display:flex}.mkt-settings-status{margin-top:var(--space-3);text-align:center;font-size:13px}.mkt-settings-status.success{color:var(--success)}.mkt-settings-status.error{color:var(--danger)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89664,e=>{"use strict";let a=(0,e.i(56420).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,a],89664)},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)},62368,e=>{"use strict";let a=(0,e.i(56420).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",0,a],62368)},66595,e=>{"use strict";let a=(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,a],66595)},51921,e=>{"use strict";let a=(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,a],51921)},79490,e=>{"use strict";let a=(0,e.i(56420).default)("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);e.s(["Edit2",0,a],79490)},12796,e=>{"use strict";let a=(0,e.i(56420).default)("loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]);e.s(["Loader",0,a],12796)},80796,15170,e=>{"use strict";var a=e.i(56420);let t=(0,a.default)("film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]);e.s(["Film",0,t],80796);let s=(0,a.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);e.s(["Image",0,s],15170)},6933,e=>{"use strict";e.s(["getFileSubtype",0,function(e){let a=String(e||"").split(".").pop()?.toLowerCase()||"";return["jpg","jpeg","png","gif","webp","svg","bmp","ico","tiff","heic","heif"].includes(a)?"image":["mp4","webm","mov","avi","mkv","flv","wmv","m4v","mpeg","3gp"].includes(a)?"video":["mp3","wav","ogg","flac","aac","m4a","wma","opus"].includes(a)?"audio":["txt","md","js","ts","jsx","tsx","css","scss","less","json","xml","html","htm","yaml","yml","toml","ini","cfg","conf","log","sh","bash","py","rb","go","rs","java","c","cpp","h","hpp","cs","php","sql","graphql","env","gitignore","dockerfile","readme"].includes(a)?"text":"file"}])},25981,e=>{"use strict";let a=(0,e.i(56420).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);e.s(["Upload",0,a],25981)},67927,e=>{"use strict";let a=(0,e.i(56420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,a],67927)},26067,e=>{"use strict";let a=(0,e.i(56420).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",0,a],26067)},10818,61507,40616,e=>{"use strict";let a=(0,e.i(56420).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["Info",0,a],10818);var t=e.i(18050),s=e.i(26091),i=e.i(80796),r=e.i(26067),l=e.i(15170),n=e.i(51921),o=e.i(6933);function c(e){let a=e.lastIndexOf("/");return -1===a?{folder:"",name:e}:{folder:e.substring(0,a),name:e.substring(a+1)}}e.s(["FileCard",0,function({file:e,isSelected:a,onSelect:r,onPreview:d}){let u=(0,o.getFileSubtype)(e.fileName),m=(0,t.jsx)(s.FileText,{size:24,color:"#fff"});return"image"===u?m=(0,t.jsx)(l.Image,{size:24,color:"#fff"}):"video"===u?m=(0,t.jsx)(i.Film,{size:24,color:"#fff"}):"audio"===u&&(m=(0,t.jsx)(n.Music,{size:24,color:"#fff"})),(0,t.jsxs)("div",{"data-id":e.cid,onClick:()=>r(e.cid),onDoubleClick:()=>d(e),className:`card ${a?"selected":""}`,children:[(0,t.jsx)("div",{className:`card-icon ${e.starred?"starred":"file"}`,children:m}),(0,t.jsx)("p",{className:"card-name",children:c(e.fileName).name})]})},"FolderCard",0,function({folder:e,onClick:a}){return(0,t.jsxs)("div",{onClick:a,className:"card",children:[(0,t.jsx)("div",{className:"card-icon folder",children:(0,t.jsx)(r.Folder,{size:28,color:"#fff"})}),(0,t.jsx)("p",{className:"card-name",children:e.name})]})},"parseAppFileName",0,c],61507);var d=e.i(71645),u=e.i(63676);e.i(4121);var m=e.i(57667);e.s(["MoveModal",0,function({items:e,allFolders:a,currentPath:s,onMove:i,onClose:l}){let[n,o]=(0,d.useState)(""),[c,p]=(0,d.useState)(s),h=n?[{path:"",name:"全部内容"},...n.split("/").filter(Boolean).map((e,a,t)=>({path:t.slice(0,a+1).join("/"),name:e}))]:[],f=a.filter(e=>{if(""===n)return!e.path.includes("/");let a=n+"/";return!!e.path.startsWith(a)&&!e.path.substring(a.length).includes("/")});return(0,t.jsx)(m.ModalOverlay,{onClose:l,children:(0,t.jsxs)("div",{className:"move-modal",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"modal-header",children:[(0,t.jsx)("h3",{children:"移动到"}),(0,t.jsx)("button",{type:"button",onClick:l,className:"btn btn-icon",children:(0,t.jsx)(u.X,{size:18})})]}),(0,t.jsxs)("p",{className:"move-modal-desc",children:["已选 ",e.length," 个项目"]}),(0,t.jsx)("div",{className:"move-new-folder",children:(0,t.jsx)("input",{type:"text",className:"input",value:c,onChange:e=>p(e.target.value),placeholder:"输入路径创建嵌套文件夹"})}),(0,t.jsx)("p",{className:"move-modal-hint",children:"如 图片/壁纸"}),(0,t.jsx)("div",{className:"move-breadcrumb",children:h.map((e,a)=>(0,t.jsxs)(d.default.Fragment,{children:[a>0&&(0,t.jsx)("span",{className:"breadcrumb-separator",children:"/"}),(0,t.jsx)("button",{type:"button",onClick:()=>{o(e.path),p(e.path)},className:`move-breadcrumb-btn ${n===e.path&&!c?"active":""}`,children:e.name})]},e.path))}),(0,t.jsxs)("div",{className:"move-folder-list",children:[0===f.length&&(0,t.jsx)("p",{className:"move-modal-empty",children:"该目录下没有子文件夹"}),f.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>o(e.path),className:`move-folder-item ${n===e.path&&!c?"selected":""}`,children:[(0,t.jsx)(r.Folder,{size:16}),(0,t.jsx)("span",{children:e.name})]},e.path))]}),(0,t.jsxs)("div",{className:"modal-actions",children:[(0,t.jsx)("button",{type:"button",onClick:l,className:"btn btn-secondary",children:"取消"}),(0,t.jsx)("button",{type:"button",onClick:function(){i(n||c.trim())},className:"btn btn-primary",children:"移动"})]})]})})}],40616)},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)},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)},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)},59665,5142,e=>{"use strict";var a=e.i(18050),t=e.i(71645);let s=(0,e.i(56420).default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);function i(e=!1,a={}){let[s,r]=(0,t.useState)(e),l=(0,t.useCallback)(()=>{r(e=>e||(a.onOpen?.(),!0))},[a.onOpen]),n=(0,t.useCallback)(()=>{r(e=>e?(a.onClose?.(),!1):e)},[a.onClose]);return[s,{open:l,close:n,toggle:(0,t.useCallback)(()=>{s?n():l()},[n,l,s]),set:r}]}e.s(["useDisclosure",0,i],5142);let r=(0,t.createContext)(null);e.s(["default",0,function({sidebar:e,className:l="",headerTitle:n,headerRight:o,sidebarToggleReplacement:c,defaultHide:d=!1,children:u}){let[m,p]=i(!1),[h,f]=(0,t.useState)(d),x=(0,t.useRef)(d),j=function(e,{getInitialValueInEffect:a}={getInitialValueInEffect:!0}){let[s,i]=(0,t.useState)(a?void 0:!!("u">typeof window&&"matchMedia"in window)&&window.matchMedia(e).matches);return(0,t.useEffect)(()=>{try{if("matchMedia"in window){let a=window.matchMedia(e);i(a.matches);let t=e=>i(e.matches);return a.addEventListener("change",t),()=>{a.removeEventListener("change",t)}}}catch(e){return}},[e]),s||!1}("(max-width: 768px)"),g=(0,t.useCallback)((e={})=>{p.close(),e.collapse&&f(!0)},[p]);(0,t.useEffect)(()=>{d!==x.current&&(d?g({collapse:!0}):f(!1),x.current=d)},[d,g]);let y=()=>{j?p.open():f(!1)};return(0,a.jsx)(r.Provider,{value:{closeSidebar:g,openSidebar:y,isSidebarVisible:j?m:!h},children:(0,a.jsxs)("div",{className:["app-layout",l].filter(Boolean).join(" "),children:[(0,a.jsx)("div",{className:`sidebar-overlay ${m?"visible":""}`,onClick:()=>g()}),(0,a.jsx)("div",{className:`sidebar ${m?"open":""} ${h?"collapsed":""}`,children:e({closeSidebar:g,openSidebar:y})}),(0,a.jsxs)("div",{className:"main-content",children:[(0,a.jsxs)("header",{className:"app-header",children:[(0,a.jsxs)("div",{className:"header-left",children:[c??(0,a.jsx)("button",{onClick:()=>{j?p.toggle():f(!h)},className:"btn btn-icon sidebar-toggle-btn","aria-label":j?"打开菜单":h?"展开侧边栏":"收起侧边栏",children:(0,a.jsx)(s,{size:16})}),n]}),(0,a.jsx)("div",{className:"header-right",children:o})]}),u]})]})})},"useAppShell",0,function(){let e=(0,t.useContext)(r);if(!e)throw Error("useAppShell must be used within AppShell");return e}],59665)},67784,e=>{"use strict";let a=(0,e.i(56420).default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]);e.s(["LogOut",0,a],67784)},48119,e=>{"use strict";let a=(0,e.i(56420).default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);e.s(["MoreHorizontal",0,a],48119)},27648,e=>{"use strict";var a=e.i(18050),t=e.i(71645),s=e.i(67784),i=e.i(48119);e.i(4121);var r=e.i(20885),l=e.i(88361),n=e.i(93957),o=e.i(71192);e.s(["default",0,function({className:e=""}){let c=(0,o.useUserStore)(e=>e.identity),d=(0,o.useUserStore)(e=>e.openLoginModal),u=(0,o.useUserStore)(e=>e.logoutUser),[m,p]=(0,t.useState)(!1);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,n.generateAvatar)(c?.address,c?.avatar),alt:"avatar"}),(0,a.jsx)("span",{className:"user-name",title:c?.address,children:c?.displayName||"未登录"})]}),c?(0,a.jsx)(r.ActionMenu,{ariaLabel:"账号操作",placement:"top-end",items:[{key:"logout",label:"退出",icon:(0,a.jsx)(s.LogOut,{size:16}),onSelect:()=>p(!0)}],renderTrigger:e=>(0,a.jsx)("button",{...e,className:"btn btn-icon account-menu-trigger","aria-label":"更多操作",title:"更多操作",children:(0,a.jsx)(i.MoreHorizontal,{size:16})})}):(0,a.jsx)("button",{className:"btn btn-primary login-btn",onClick:d,children:"登录"}),m&&(0,a.jsx)(l.ConfirmModal,{title:"退出登录",message:"确定要退出当前账号吗?",confirmText:"退出",danger:!0,onConfirm:()=>{u(),p(!1)},onClose:()=>p(!1)})]})}])},73474,e=>{"use strict";let a=(0,e.i(56420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,a],73474)},26091,e=>{"use strict";let a=(0,e.i(56420).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",0,a],26091)},39626,e=>{"use strict";var a=e.i(18050);let t=(0,e.i(56420).default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);var s=e.i(59665);e.s(["default",0,function({label:e="打开侧边栏",className:i="",variant:r="primary"}){let{isSidebarVisible:l,openSidebar:n}=(0,s.useAppShell)();return l?null:(0,a.jsxs)("button",{type:"button",className:`btn ${"primary"===r?"btn-primary":""} sidebar-open-hint ${i}`.trim(),onClick:n,children:[(0,a.jsx)(t,{size:16}),e]})}],39626)},11028,27668,e=>{"use strict";var a=e.i(18050),t=e.i(71645),s=e.i(26091),i=e.i(12796),r=e.i(51921),l=e.i(63676),n=e.i(26913);e.s(["default",0,function({item:e,isBackendReady:o,getFileDownloadUrl:c,onClose:d}){let[u,m]=(0,t.useState)(""),[p,h]=(0,t.useState)(!1),[f,x]=(0,t.useState)(""),[j,g]=(0,t.useState)("");return(0,t.useEffect)(()=>{if("text"!==e.subtype)return;let a=!1;return(m(""),g(""),o)?(h(!0),(async()=>{try{let t=await fetch(c(e.cid),{headers:{...await (0,n.getApiRequestHeaders)("GET",`/api/files/${e.cid}/download`),Range:"bytes=0-9999"}});if(!t.ok)throw Error("加载失败");let s=await t.text();a||m(s||"(文件为空)")}catch{a||m("加载失败")}finally{a||h(!1)}})(),()=>{a=!0}):void m("加载失败")},[c,o,e.cid,e.subtype]),(0,t.useEffect)(()=>{var a;if("image"!==(a=e.subtype)&&"video"!==a&&"audio"!==a)return void x("");if(x(""),g(""),!o)return void g("加载失败");let t="",s=!1;return(async()=>{try{let a=await fetch(c(e.cid),{headers:await (0,n.getApiRequestHeaders)("GET",`/api/files/${e.cid}/download`)});if(!a.ok)throw Error("加载失败");let i=URL.createObjectURL(await a.blob());t=i,s||x(i)}catch{s||g("加载失败")}})(),()=>{s=!0,t&&URL.revokeObjectURL(t)}},[c,o,e.cid,e.subtype]),(0,a.jsxs)("div",{className:"preview-overlay",onClick:d,children:[(0,a.jsx)("button",{type:"button",className:"preview-close",onClick:d,"aria-label":"关闭预览",children:(0,a.jsx)(l.X,{size:20})}),(0,a.jsxs)("div",{onClick:e=>e.stopPropagation(),children:["image"===e.subtype&&(0,a.jsx)("div",{className:"preview-media-wrapper",children:f?(0,a.jsx)("img",{src:f,alt:e.fileName}):j?(0,a.jsxs)("div",{className:"preview-unsupported",children:[(0,a.jsx)(s.FileText,{size:48,className:"preview-file-icon"}),(0,a.jsx)("p",{children:e.fileName}),(0,a.jsx)("p",{className:"preview-unsupported-hint",children:j})]}):(0,a.jsx)("div",{className:"preview-loading",children:(0,a.jsx)("div",{className:"preview-loading-spinner"})})}),"video"===e.subtype&&(0,a.jsx)("div",{className:"preview-media-wrapper",children:f?(0,a.jsx)("video",{src:f,controls:!0}):j?(0,a.jsxs)("div",{className:"preview-unsupported",children:[(0,a.jsx)(s.FileText,{size:48,className:"preview-file-icon"}),(0,a.jsx)("p",{children:e.fileName}),(0,a.jsx)("p",{className:"preview-unsupported-hint",children:j})]}):(0,a.jsx)("div",{className:"preview-loading",children:(0,a.jsx)("div",{className:"preview-loading-spinner"})})}),"audio"===e.subtype&&(0,a.jsxs)("div",{className:"preview-audio",children:[(0,a.jsx)("div",{className:"preview-audio-icon",children:(0,a.jsx)(r.Music,{size:36,color:"var(--accent)"})}),(0,a.jsx)("p",{className:"preview-audio-filename",children:e.fileName}),f?(0,a.jsx)("audio",{className:"preview-audio-player",src:f,controls:!0}):(0,a.jsx)("div",{className:"preview-text-loading",children:j?(0,a.jsx)("p",{children:j}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.Loader,{size:24,className:"preview-text-spinner"}),(0,a.jsx)("p",{children:"正在加载音频预览..."})]})})]}),"file"===e.subtype&&(0,a.jsxs)("div",{className:"preview-unsupported",children:[(0,a.jsx)(s.FileText,{size:48,className:"preview-file-icon"}),(0,a.jsx)("p",{children:e.fileName}),(0,a.jsx)("p",{className:"preview-unsupported-hint",children:"无法预览"})]}),"text"===e.subtype&&(0,a.jsxs)("div",{className:"preview-text-container",children:[(0,a.jsx)("div",{className:"preview-text-header",children:(0,a.jsx)("span",{children:e.fileName})}),p?(0,a.jsxs)("div",{className:"preview-text-loading",children:[(0,a.jsx)(i.Loader,{size:24,className:"preview-text-spinner"}),(0,a.jsx)("p",{children:"正在加载文本预览..."}),(0,a.jsx)("p",{className:"preview-text-loading-hint",children:"如果是初次预览,可能需要等待 P2P 网络同步"})]}):(0,a.jsx)("pre",{className:"preview-text",children:u||"(文件为空)"})]})]})]})}],11028);var o=e.i(64621);let c="链接格式不正确,请粘贴完整的 most://<cid>?filename=... 分享链接。",d="暂时没有发现在线种子。请确认分享者或其他下载者仍在线做种,稍后再检测。",u={"Link must be a valid most:// URL":"链接无法解析,请粘贴完整的 most://<cid>?filename=... 分享链接。","Link must use most:// protocol":"链接协议不正确,应以 most:// 开头。","Link path is not supported":"链接里不应包含路径,请使用 most://<cid>?filename=... 格式。","Invalid CID format":"CID 无效,请确认 most:// 后面的内容没有缺失或被截断。","Invalid CID format: CID v1 required":"CID 格式不符合 MostBox 要求,请确认分享链接完整。","CID digest must be 32 bytes":"CID 格式不符合 MostBox 要求,请确认分享链接完整。","filename is required":"链接缺少 filename 参数,请复制完整分享链接后再检测。"};e.s(["getDownloadCheckErrorMessageFromPayload",0,function(e={},a=""){if("TimeoutError"===a)return"检测等待超时,暂时没有等到在线种子响应。请确认分享者或其他下载者仍在线做种,稍后再检测。";if(!e.status)return"无法连接本地节点,请确认 MostBox 后端正在运行后再检测。";if(404===e.status)return"当前后端还没有检测接口,请重启 MostBox 后端后再试。";switch(e.code){case"VALIDATION_ERROR":return c;case"CONFLICT":return e.error?`${e.error},请先处理同名文件后再下载。`:"下载目录已有同名文件,请先重命名或移走后再检测。";case"PEER_NOT_FOUND":return d;case"PERMISSION_ERROR":return e.error?`下载目录不可写:${e.error}`:"下载目录不可写,请检查目录权限后再检测。";case"ENGINE_NOT_INITIALIZED":return"本地节点还没有启动完成,请稍等几秒后重新检测。"}return 503===e.status?d:e.status>=500?"本地节点检测时出错,请稍后重试或查看节点日志。":e.error?`检测未通过:${e.error}`:"检测未通过,请确认链接完整、发布者在线且本机网络正常。"},"getDownloadLinkValidationMessage",0,function(e=""){let a=String(e||"").trim();if(!a)return"请先粘贴 most:// 分享链接。";let t=function(e){let a;if(!e||"string"!=typeof e)return{cid:"",error:"Link must be a non-empty string"};try{a=new URL(e)}catch{return{cid:"",error:"Link must be a valid most:// URL"}}if("most:"!==a.protocol)return{cid:"",error:"Link must use most:// protocol"};if(a.pathname&&"/"!==a.pathname)return{cid:"",error:"Link path is not supported"};let t=a.hostname,s=a.searchParams.get("filename"),i=[...a.searchParams.keys()].find(e=>"filename"!==e),r=function(e){let a;if(!e||"string"!=typeof e)return{valid:!1,error:"CID must be a non-empty string"};try{a=o.CID.parse(e)}catch{return{valid:!1,error:"Invalid CID format"}}return 1!==a.version?{valid:!1,error:"Invalid CID format: CID v1 required"}:32!==a.multihash.digest.length?{valid:!1,error:"CID digest must be 32 bytes"}:{valid:!0}}(t);return r.valid?s&&s.trim()?i?{cid:"",error:`Unsupported query parameter: ${i}`}:{cid:t,fileName:s}:{cid:"",error:"filename is required"}:{cid:"",error:r.error}}(a);if(!t.error)return t.fileName?.trim()?null:u["filename is required"];if(t.error.startsWith("Unsupported query parameter: ")){let e=t.error.slice(29);return`链接包含暂不支持的参数 ${e},请只保留 filename。`}return u[t.error]||c}],27668)},27627,e=>{"use strict";var a=e.i(18050),t=e.i(71645),s=e.i(25981),i=e.i(35965),r=e.i(96699),l=e.i(73474),n=e.i(67927),o=e.i(26091),c=e.i(63676),d=e.i(89664),u=e.i(8734),m=e.i(62368),p=e.i(56420);let h=(0,p.default)("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]),f=(0,p.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),x=(0,p.default)("files",[["path",{d:"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"14sh0y"}],["path",{d:"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",key:"1970lx"}],["path",{d:"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1",key:"l4dndm"}]]);var j=e.i(66595),g=e.i(79490),y=e.i(12796),v=e.i(11241),b=e.i(10818),w=e.i(59665),k=e.i(61507),N=e.i(39626),C=e.i(27648),M=e.i(11028),S=e.i(40616);e.i(4121);var F=e.i(57667),z=e.i(88361),$=e.i(47910),L=e.i(26913),E=e.i(27668),D=e.i(3593),T=e.i(71192),I=e.i(5142),A=e.i(6933);async function R(e){let a=await (0,L.getApiErrorPayload)(e),t=e&&"object"==typeof e&&"name"in e?String(e.name):"";return(0,E.getDownloadCheckErrorMessageFromPayload)(a,t)}let U={listPublishedFiles:()=>L.api.get("/api/files").json(),listTrashFiles:()=>L.api.get("/api/trash").json(),deletePublishedFile:e=>L.api.delete(`/api/files/${e}`).json(),restoreTrashFile:e=>L.api.post(`/api/trash/${e}/restore`).json(),permanentDeleteTrashFile:e=>L.api.delete(`/api/trash/${e}`).json(),emptyTrash:()=>L.api.delete("/api/trash").json(),toggleStar:e=>L.api.post(`/api/files/${e}/star`).json(),getConfig:()=>L.api.get("/api/config").json(),getDataPath:()=>L.api.get("/api/config/data-path").json(),getNetworkAddresses:()=>L.api.get("/api/network").json(),saveConfig:e=>L.api.post("/api/config",{json:e}).json(),async publishFile(e,a){let t=new FormData;t.append("file",e,a||e.name);let s=await L.api.post("/api/publish",{body:t});if(!s.ok)throw Error((await s.json().catch(()=>({error:s.statusText}))).error||"Request failed");return s.json()},checkDownload:e=>L.api.post("/api/download/check",{json:{link:e},timeout:15e3}).json(),downloadFile:e=>L.api.post("/api/download",{json:{link:e}}).json(),cancelDownload:e=>L.api.post("/api/download/cancel",{json:{taskId:e}}).json(),getFileDownloadUrl:e=>(0,L.getApiUrl)(`/api/files/${e}/download`),moveFile:(e,a)=>L.api.post("/api/move",{json:{cid:e,newFileName:a}}).json(),renameFolder:(e,a)=>L.api.post("/api/folder/rename",{json:{oldPath:e,newPath:a}}).json()};function O(e){return!e||e<=0?"0 B":e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<0x40000000?`${(e/1048576).toFixed(1)} MB`:`${(e/0x40000000).toFixed(2)} GB`}function P(e){return(0,k.parseAppFileName)(e)}e.s(["default",0,function(){let e,p,q,V=(0,D.useAppStore)(e=>e.isDarkMode),B=(0,D.useAppStore)(e=>e.setIsDarkMode),H=(0,D.useAppStore)(e=>e.addToast),_=(0,D.useAppStore)(e=>e.hasBackend),W=(0,D.useAppStore)(e=>e.openConnectModal),X=(0,T.useUserStore)(e=>e.identity),G=(0,T.useUserStore)(e=>e.openLoginModal),[K,Z]=(0,t.useState)([]),[J,Q]=(0,t.useState)([]),[Y,ee]=(0,t.useState)(null),[ea,et]=(0,t.useState)("all"),[es,ei]=(0,t.useState)(!1),[er,el]=(0,t.useState)([]),[en,eo]=(0,t.useState)(null),[ec,ed]=(0,t.useState)(null),[eu,em]=(0,I.useDisclosure)(!1),[ep,eh]=(0,t.useState)(""),[ef,ex]=(0,t.useState)(null),[ej,eg]=(0,t.useState)(!1),[ey,ev]=(0,t.useState)([]),[eb,ew]=(0,I.useDisclosure)(!1),[ek,eN]=(0,t.useState)(""),{copy:eC,copied:eM}=function(e={}){let a=e.timeout??2e3,[s,i]=(0,t.useState)(null),[r,l]=(0,t.useState)(!1),n=(0,t.useRef)(null);return(0,t.useEffect)(()=>()=>{window.clearTimeout(n.current)},[]),{copy:e=>{"clipboard"in navigator?navigator.clipboard.writeText(e).then(()=>{i(null),window.clearTimeout(n.current),n.current=window.setTimeout(()=>l(!1),a),l(!0)}).catch(e=>i(e)):i(Error("useClipboard: navigator.clipboard is not supported"))},reset:()=>{l(!1),i(null),window.clearTimeout(n.current)},error:s,copied:r}}({timeout:2e3}),[eS,eF]=(0,I.useDisclosure)(!1),[ez,e$]=(0,t.useState)(null),[eL,eE]=(0,t.useState)(null),[eD,eT]=(0,t.useState)(!1),eI=!0===_,eA=Y||"",eR=(e=new Set,K.forEach(a=>{let{folder:t}=P(a.fileName),s=t.split("/").filter(Boolean),i="";for(let a of s)i+=(i?"/":"")+a,e.add(i)}),[...e].sort()),{folders:eU,files:eO}={folders:(p=eA?eA+"/":"",eR.filter(e=>{let a=e.toLowerCase().startsWith(p.toLowerCase()),t=e.substring(p.length);return a&&!t.includes("/")}).map(e=>({name:e.substring(p.length),path:e}))),files:K.filter(e=>P(e.fileName).folder===eA)};function eP(){return!!eI||(W(),!1)}function eq(){return!!X||(G(),!1)}let eV=ek?K.filter(e=>P(e.fileName).name.toLowerCase().includes(ek.toLowerCase())):eO,eB=async()=>{if(!eI||!X)return void Z([]);try{let e=await U.listPublishedFiles();Z(e||[])}catch{Z([])}},eH=async()=>{if(!eI||!X)return void Q([]);try{let e=await U.listTrashFiles();Q(e||[])}catch{Q([])}},e_=e=>{el(a=>a.includes(e)?a.filter(a=>a!==e):[...a,e])},eW=async e=>{if(eq()&&eP())try{await U.restoreTrashFile(e),H("已恢复","success"),eB(),eH()}catch(e){H(await (0,L.getApiErrorMessage)(e,"恢复失败"),"error")}},eX=async()=>{!eq()||eP()&&e$({title:"清空回收站",message:"确定要清空回收站吗?此操作不可恢复!",confirmText:"清空",danger:!0,onConfirm:async()=>{e$(null);try{await U.emptyTrash(),H("回收站已清空","success"),eH()}catch(e){H(await (0,L.getApiErrorMessage)(e,"清空失败"),"error")}}})},eG=async e=>{if(eq()&&eP())try{let a=await U.toggleStar(e);Z(t=>t.map(t=>t.cid===e?{...t,starred:a.starred}:t)),H(a.starred?"已收藏":"已取消收藏","success")}catch(e){H(await (0,L.getApiErrorMessage)(e,"操作失败"),"error")}},eK=async()=>{if(!eq()||!eP())return;let e="trash"===ea;e$({title:e?"永久删除":"批量删除",message:e?`确定要永久删除选中的 ${er.length} 个项目吗?此操作不可恢复!`:`确定要删除选中的 ${er.length} 个项目吗?`,confirmText:e?"永久删除":"删除",danger:!0,onConfirm:async()=>{e$(null);try{for(let a of er)e?await U.permanentDeleteTrashFile(a):a.startsWith("__")||await U.deletePublishedFile(a);el([]),H(e?"已永久删除":"已删除","success"),eB(),eH()}catch(e){H(await (0,L.getApiErrorMessage)(e,"删除失败"),"error")}}})},eZ=async e=>{if(eq()&&eP())try{for(let a of er){let t=K.find(e=>e.cid===a);if(!t)continue;let{name:s}=P(t.fileName),i=e?`${e}/${s}`:s;t.fileName!==i&&await U.moveFile(a,i)}el([]),eF.close(),H("已移动","success"),eB()}catch(e){H(await (0,L.getApiErrorMessage)(e,"移动失败"),"error")}},eJ=e=>{let a=!!e.path,t=a?e.name:P(e.fileName).name;eE({title:a?"重命名文件夹":"重命名文件",placeholder:"请输入新名称",defaultValue:t,confirmText:"重命名",onConfirm:async s=>{if(s!==t&&eq()&&eP()){eT(!0);try{if(a){let a=e.path.lastIndexOf("/"),t=-1!==a?e.path.substring(0,a):"",i=t?`${t}/${s}`:s;await U.renameFolder(e.path,i),H("已重命名","success"),eB(),e7(i)}else{let{folder:a}=P(e.fileName),t=a?`${a}/${s}`:s;await U.moveFile(e.cid,t),H("已重命名","success"),eB()}eE(null)}catch(e){H(await (0,L.getApiErrorMessage)(e,"重命名失败"),"error")}finally{eT(!1)}}}})},eQ=async e=>{if(!X){G(),H("请先登录后发布文件","warning");return}if(!eP())return;let a=eA?eA+"/":"",t=[];for(let s of Array.from(e)){let e=a+s.name;if(K.some(a=>a.fileName===e)){H(`${s.name} 已存在`,"warning");continue}let i=`upload_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,r={id:i,fileName:s.name,progress:0,type:"upload",status:"uploading"};t.push(r),ev(e=>[...e,r]),t.length>0&&ew.open();try{(await U.publishFile(s,e)).alreadyExists?(ev(e=>e.map(e=>e.id===i?{...e,status:"completed"}:e)),H(`${s.name} 已存在`,"warning")):(ev(e=>e.map(e=>e.id===i?{...e,progress:100,status:"completed"}:e)),H(`${s.name} 已添加到本地`,"success"))}catch(e){ev(e=>e.map(e=>e.id===i?{...e,status:"error"}:e)),H(await (0,L.getApiErrorMessage)(e,`发布失败: ${s.name}`),"error")}}setTimeout(()=>{ev(e=>e.filter(e=>"completed"!==e.status&&"error"!==e.status&&"cancelled"!==e.status))},3e3),eB()},[eY,e0]=(0,t.useState)(!1),e1=ep.trim(),e2=ef?.status==="success"&&ef.link===e1,e6=()=>{em.close(),ex(null)},e4=async()=>{let e=(0,E.getDownloadLinkValidationMessage)(e1);if(e){ex({status:"error",link:e1,message:e}),H(e,"warning");return}if(!ej&&!eY&&eq()&&eP()){eg(!0),ex(null);try{let e=await U.checkDownload(e1),a=e.alreadyExists?`${e.fileName} 已在本机`:`${e.fileName} 可下载`;ex({status:"success",link:e1,message:a}),H(e.alreadyExists?`${e.fileName} 已存在`:"检测通过",e.alreadyExists?"warning":"success")}catch(a){let e=await R(a);ex({status:"error",link:e1,message:e}),H(e,"error")}finally{eg(!1)}}},e5=async()=>{if(!X){G(),H("请先登录后下载文件","warning");return}if(!eP())return;let e=(0,E.getDownloadLinkValidationMessage)(e1);if(e)return void H(e,"warning");if(!e2)return void H("请先检测链接可用性","warning");if(!eY){e0(!0);try{let e=await U.downloadFile(e1);if(eh(""),ex(null),e6(),e.alreadyExists)H(`${e.fileName} 已存在`,"warning");else{let a={id:e.taskId,fileName:"下载文件",progress:0,type:"download",status:"downloading"};ev(e=>[...e,a]),ew.open(),H("下载已开始","info")}}catch(e){H(await (0,L.getApiErrorMessage)(e,"下载失败"),"error")}finally{e0(!1)}}},e9=async e=>{if(eq()&&eP()&&"download"===e.type&&"downloading"===e.status){ev(a=>a.map(a=>a.id===e.id?{...a,status:"cancelling"}:a));try{await U.cancelDownload(e.id)}catch(a){ev(a=>a.map(a=>a.id===e.id?{...a,status:"downloading"}:a)),H(await (0,L.getApiErrorMessage)(a,"取消失败"),"error")}}},e8=async e=>{if(eq()&&eP())try{let a=await fetch(U.getFileDownloadUrl(e.cid),{headers:await (0,L.getApiRequestHeaders)("GET",`/api/files/${e.cid}/download`)});if(!a.ok)throw Error("获取文件失败");let t=await a.blob(),s=window.showSaveFilePicker;if(s){let a=await s({suggestedName:e.fileName}),i=await a.createWritable();await i.write(t),await i.close(),H("文件已保存","success")}else{let a=URL.createObjectURL(t),s=document.createElement("a");s.href=a,s.download=e.fileName,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(a),H("文件已下载","success")}}catch(e){"AbortError"!==e.name&&H("保存失败: "+e.message,"error")}},e7=e=>{ee(e||null),el([])};(0,t.useEffect)(()=>{if(!0!==_)return;let e=null,a=!1;return(async()=>{if(e=new WebSocket(await (0,L.getAuthenticatedWebSocketUrl)("/ws")),a)return e.close();e.onmessage=e=>{try{let{event:a,data:t}=JSON.parse(e.data);if("publish:success"===a||"download:success"===a){eB();let e=t.taskId||t.fileName;ev(a=>a.map(a=>a.id===e||a.fileName===t.fileName?{...a,progress:100,status:"completed"}:a)),"download:success"===a&&(t.alreadyExists?H(`${t.fileName} 已存在`,"warning"):H(`${t.fileName} 下载完成`,"success"),setTimeout(()=>{ev(a=>a.filter(a=>a.id!==e||"completed"!==a.status))},3e3))}"publish:progress"===a&&ev(e=>e.map(e=>{if(t.file&&e.fileName===t.file&&"upload"===e.type){let a=50;return"calculating-cid"===t.stage?a=25:"uploading"===t.stage?a=75:"complete"===t.stage&&(a=100),{...e,progress:a}}return e})),"download:progress"===a&&ev(e=>e.map(e=>e.id===t.taskId?{...e,progress:t.percent||0,loaded:t.loaded,total:t.total}:e)),"download:error"===a&&(ev(e=>e.map(e=>e.id===t.taskId?{...e,status:"error"}:e)),H(`下载失败: ${t.error}`,"error")),"download:status"===a&&ev(e=>e.map(e=>e.id===t.taskId?{...e,fileName:t.file||e.fileName}:e)),"download:cancelled"===a&&(ev(e=>e.map(e=>e.id===t.taskId?{...e,status:"cancelled"}:e)),H("下载已取消","warning"))}catch(e){console.warn("[App WS] Failed to parse message:",e.message)}}})(),()=>{a=!0,e?.close()}},[_,X?.address]),(0,t.useEffect)(()=>{if(!0===_&&X){eB(),eH();return}!1===_&&(Z([]),Q([]))},[_,X?.address]),(0,t.useEffect)(()=>{X||(el([]),eo(null),ed(null),eh(""),ex(null),ev([]),eN(""),ee(null),et("all"))},[X?.address]);let e3="all"===ea?eV:"starred"===ea?K.filter(e=>e.starred&&P(e.fileName).name.toLowerCase().includes(ek.toLowerCase())):J.filter(e=>P(e.fileName).name.toLowerCase().includes(ek.toLowerCase())),ae="starred"===ea?[]:eU.filter(e=>e.name.toLowerCase().includes(ek.toLowerCase())),aa=eA?[{path:"",name:"全部内容"},...eA.split("/").filter(Boolean).map((e,a,t)=>({path:t.slice(0,a+1).join("/"),name:e}))]:[];return(0,a.jsxs)(w.default,{sidebar:({closeSidebar:e})=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"sidebar-header sidebar-header-link",onClick:()=>window.location.href="/",children:[(0,a.jsx)(v.ArrowLeft,{size:18}),(0,a.jsx)("h1",{children:"MOST PEOPLE"})]}),(0,a.jsx)("nav",{className:"sidebar-nav",children:[{id:"all",icon:(0,a.jsx)(x,{size:18}),label:"本地"},{id:"starred",icon:(0,a.jsx)(f,{size:18}),label:"收藏"},{id:"trash",icon:(0,a.jsx)(l.Trash2,{size:18}),label:"回收站"}].map(t=>(0,a.jsxs)("button",{onClick:()=>{et(t.id),ee(null),el([]),eN(""),e()},className:`sidebar-nav-btn ${ea===t.id?"active":""}`,children:[t.icon,(0,a.jsx)("span",{children:t.label})]},t.id))}),(0,a.jsx)(C.default,{})]}),headerTitle:(0,a.jsx)("h2",{className:"header-title",children:"all"===ea?"本地":"starred"===ea?"收藏":"回收站"}),headerRight:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"search-box",children:[(0,a.jsx)(j.Search,{size:14}),(0,a.jsx)("input",{type:"text",value:ek,onChange:e=>eN(e.target.value),placeholder:"搜索..."}),ek&&(0,a.jsx)("button",{onClick:()=>eN(""),children:(0,a.jsx)(c.X,{size:12})})]}),"trash"===ea&&J.length>0&&(0,a.jsx)("button",{onClick:eX,className:"btn btn-sm btn-empty-trash",children:"清空回收站"}),(0,a.jsx)("button",{onClick:()=>ew.open(),className:"btn btn-icon",children:(0,a.jsx)(h,{size:16})}),(0,a.jsx)("button",{onClick:()=>B(!V),className:"btn btn-icon",children:V?(0,a.jsx)(i.Sun,{size:16}):(0,a.jsx)(r.Moon,{size:16})})]}),children:["all"===ea&&(0,a.jsxs)("div",{className:"action-grid",children:[(0,a.jsxs)("div",{className:`action-card upload ${es?"drag-over":""}`,onDragOver:e=>{e.preventDefault(),ei(!0)},onDragLeave:()=>ei(!1),onDrop:e=>{e.preventDefault(),ei(!1),eq()&&eP()&&eQ(e.dataTransfer.files)},children:[(0,a.jsx)("input",{type:"file",multiple:!0,onClick:e=>{eq()&&eP()||e.preventDefault()},onChange:e=>eQ(e.target.files),className:"action-card-input"}),(0,a.jsx)(s.Upload,{size:20,className:"action-grid-icon"}),(0,a.jsx)("p",{children:"发布文件"})]}),(0,a.jsxs)("div",{className:"action-card action-card-download",onClick:()=>{eq()&&eP()&&em.open()},children:[(0,a.jsx)(m.Download,{size:20,className:"action-grid-icon"}),(0,a.jsx)("p",{children:"下载文件"})]})]}),"all"===ea&&(0,a.jsx)("div",{className:"breadcrumb",children:eA?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:()=>e7(""),children:"全部内容"}),aa.slice(1).map((e,s)=>(0,a.jsxs)(t.default.Fragment,{children:[(0,a.jsx)(n.ChevronRight,{size:12}),(0,a.jsx)("button",{onClick:()=>e7(e.path),className:s===aa.length-2?"current":"",children:e.name}),s===aa.length-2&&(0,a.jsx)("button",{onClick:()=>eJ(e),className:"breadcrumb-edit-btn",children:(0,a.jsx)(g.Edit2,{size:12})})]},e.path))]}):null}),(0,a.jsxs)("div",{className:"content-grid",children:["trash"===ea&&(0===e3.length?(0,a.jsxs)("div",{className:"empty-state app-empty-state",children:[(0,a.jsx)("p",{children:ek?"未找到相关文件":"回收站是空的"}),(0,a.jsx)(N.default,{label:"打开文件导航"})]}):(0,a.jsx)("div",{className:"file-grid",children:e3.map(e=>{var t;return(0,a.jsxs)("div",{onClick:()=>el(a=>a.includes(e.cid)?a.filter(a=>a!==e.cid):[...a,e.cid]),onDoubleClick:()=>eW(e.cid),className:`card ${er.includes(e.cid)?"selected":""}`,children:[(0,a.jsx)("div",{className:"card-icon trash",children:(0,a.jsx)(o.FileText,{size:24,color:"#fff"})}),(0,a.jsx)("p",{className:"card-name",children:P(e.fileName).name}),(0,a.jsxs)("p",{className:"card-date",children:["删除于 ",(t=e.deletedAt)?new Date(t).toLocaleDateString("zh-CN"):""]})]},e.cid)})})),"trash"!==ea&&(0===e3.length&&0===ae.length?(0,a.jsxs)("div",{className:"empty-state app-empty-state",children:[(0,a.jsx)("p",{children:ek?"未找到相关文件":"starred"===ea?"暂无的收藏":"暂无本地文件"}),(0,a.jsx)(N.default,{label:"打开文件导航"})]}):(0,a.jsxs)("div",{className:"file-grid",children:[ae.map(e=>(0,a.jsx)(k.FolderCard,{folder:e,onClick:()=>e7(e.path)},e.path)),e3.map(e=>(0,a.jsx)(k.FileCard,{file:e,isSelected:er.includes(e.cid),onSelect:e_,onPreview:e=>eo({...e,subtype:(0,A.getFileSubtype)(e.fileName)})},e.cid))]}))]}),ez&&(0,a.jsx)(z.ConfirmModal,{title:ez.title,message:ez.message,confirmText:ez.confirmText,danger:ez.danger,onConfirm:ez.onConfirm,onClose:()=>e$(null)}),eL&&(0,a.jsx)($.InputModal,{title:eL.title,placeholder:eL.placeholder,defaultValue:eL.defaultValue,confirmText:eL.confirmText,isLoading:eD,onConfirm:eL.onConfirm,onClose:()=>eE(null)}),eS&&(0,a.jsx)(S.MoveModal,{items:er.map(e=>K.find(a=>a.cid===e)).filter(Boolean),allFolders:eR.map(e=>({path:e,name:e.split("/").pop()})),currentPath:eA,onMove:eZ,onClose:()=>eF.close()}),ec&&(0,a.jsx)(F.ModalOverlay,{onClose:()=>ed(null),children:(0,a.jsxs)("div",{className:"share-modal",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"modal-header",children:[(0,a.jsx)("h3",{children:"分享链接"}),(0,a.jsx)("button",{onClick:()=>ed(null),className:"btn btn-icon",children:(0,a.jsx)(c.X,{size:18})})]}),(0,a.jsxs)("div",{className:"share-link-box",children:[(0,a.jsx)("div",{className:"share-link-text",children:`most://${ec.cid}?filename=${encodeURIComponent(ec.fileName)}`}),(0,a.jsx)("button",{onClick:()=>{eC(`most://${ec.cid}?filename=${encodeURIComponent(ec.fileName)}`)},className:`btn btn-circle btn-primary ${eM?"copied":""}`,children:eM?(0,a.jsx)(d.Check,{size:18}):(0,a.jsx)(u.Copy,{size:18})})]}),(0,a.jsx)("div",{className:"share-storage-note",children:(0,a.jsx)("span",{children:"本机在线时可下载;下载者完成后会默认继续做种。"})})]})}),eu&&(0,a.jsx)(F.ModalOverlay,{onClose:e6,children:(0,a.jsxs)("div",{className:"download-modal",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"modal-header",children:[(0,a.jsx)("h3",{children:"下载文件"}),(0,a.jsx)("button",{onClick:e6,className:"btn btn-icon",children:(0,a.jsx)(c.X,{size:18})})]}),(0,a.jsxs)("div",{className:"download-link-row",children:[(0,a.jsx)("input",{type:"text",className:"input",value:ep,onChange:e=>{eh(e.target.value),ex(null)},placeholder:"输入 most:// 链接"}),(0,a.jsxs)("button",{type:"button",onClick:e4,disabled:!e1||ej||eY,className:"btn btn-secondary download-check-btn",children:[ej?(0,a.jsx)(y.Loader,{size:14,className:"spin"}):e2?(0,a.jsx)(d.Check,{size:14}):(0,a.jsx)(j.Search,{size:14}),ej?"检测中...":e2?"已通过":"检测"]})]}),ef&&(0,a.jsxs)("div",{className:`download-check-status ${ef.status}`,children:["success"===ef.status?(0,a.jsx)(d.Check,{size:14}):(0,a.jsx)(b.Info,{size:14}),(0,a.jsx)("span",{children:ef.message})]}),(0,a.jsxs)("button",{onClick:e5,disabled:!e2||eY||ej,className:"btn btn-info btn-full",children:[eY?(0,a.jsx)(y.Loader,{size:14,className:"spin"}):(0,a.jsx)(m.Download,{size:14}),eY?"下载中...":"开始下载"]})]})}),en&&(0,a.jsx)(M.default,{item:en,isBackendReady:eI,getFileDownloadUrl:U.getFileDownloadUrl,onClose:()=>eo(null)}),er.length>0&&(0,a.jsxs)("div",{className:"batch-bar",children:[(0,a.jsxs)("span",{className:"batch-info",children:["已选 ",er.length," 项"]}),(0,a.jsx)("button",{onClick:()=>el([]),className:"batch-dismiss",children:(0,a.jsx)(c.X,{size:16})}),(0,a.jsx)("div",{className:"batch-divider"}),"trash"===ea?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:async()=>{!eq()||eP()&&(await Promise.all(er.map(e=>U.restoreTrashFile(e))),el([]),H("已恢复","success"),eB(),eH())},className:"btn btn-sm",children:"恢复"}),(0,a.jsx)("button",{onClick:eK,className:"btn btn-sm btn-danger",children:"永久删除"})]}):(0,a.jsxs)(a.Fragment,{children:[1===er.length&&(q=K.find(e=>e.cid===er[0]))&&"file"!==(0,A.getFileSubtype)(q.fileName)&&(0,a.jsx)("button",{onClick:()=>{let e=K.find(e=>e.cid===er[0]);if(e){let a=(0,A.getFileSubtype)(e.fileName);eo({...e,subtype:a})}},className:"btn btn-sm",children:"预览"}),(0,a.jsx)("button",{onClick:()=>{let e=er.some(e=>{let a=K.find(a=>a.cid===e);return a&&!a.starred});er.forEach(a=>{let t=K.find(e=>e.cid===a);t&&(e?!t.starred:t.starred)&&eG(a)})},className:"btn btn-sm btn-star",children:"收藏"}),1===er.length&&(0,a.jsx)("button",{onClick:()=>{let e=K.find(e=>e.cid===er[0]);e&&eJ(e)},className:"btn btn-sm",children:"重命名"}),(0,a.jsx)("button",{onClick:()=>eF.open(),className:"btn btn-sm btn-move",children:"移动"}),(0,a.jsx)("button",{onClick:eK,className:"btn btn-sm btn-danger",children:"删除"}),1===er.length&&(0,a.jsx)("button",{onClick:()=>ed(K.find(e=>e.cid===er[0])),className:"btn btn-sm",children:"分享"}),1===er.length&&(0,a.jsx)("button",{onClick:()=>{let e=K.find(e=>e.cid===er[0]);e&&e8(e)},className:"btn btn-sm",children:"另存为"})]})]}),eb&&(0,a.jsx)(F.ModalOverlay,{onClose:()=>ew.close(),children:(0,a.jsxs)("div",{className:"transfer-modal",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"modal-header",children:[(0,a.jsx)("h3",{children:"传输"}),(0,a.jsx)("button",{onClick:()=>ew.close(),className:"btn btn-icon",children:(0,a.jsx)(c.X,{size:18})})]}),0===ey.length?(0,a.jsx)("div",{className:"empty-transfer",children:"暂无传输"}):ey.map(e=>(0,a.jsxs)("div",{className:"transfer-item",children:[(0,a.jsxs)("div",{className:"transfer-item-header",children:["upload"===e.type?(0,a.jsx)(s.Upload,{size:14}):(0,a.jsx)(m.Download,{size:14}),(0,a.jsx)("span",{className:"transfer-item-name",children:e.fileName}),"downloading"===e.status&&"download"===e.type&&(0,a.jsx)("button",{onClick:()=>e9(e),className:"transfer-item-cancel",children:(0,a.jsx)(c.X,{size:14})})]}),(0,a.jsxs)("div",{className:"transfer-progress-row",children:[(0,a.jsx)("progress",{className:`transfer-progress-meter ${"download"===e.type?"download":""} ${"error"===e.status?"error":""} ${"cancelled"===e.status?"cancelled":""}`,value:Math.max(0,Math.min(100,e.progress)),max:100,"aria-label":`${e.fileName} 传输进度`}),(0,a.jsx)("span",{className:"transfer-progress-text",children:"completed"===e.status?"完成":"error"===e.status?"失败":"cancelled"===e.status?"已取消":"cancelling"===e.status?"取消中":e.loaded&&e.total?`${O(e.loaded)}/${O(e.total)}`:`${e.progress}%`})]})]},e.id))]})})]})}],27627)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89664,e=>{"use strict";let n=(0,e.i(56420).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,n],89664)},11241,e=>{"use strict";let n=(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,n],11241)},35965,e=>{"use strict";let n=(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,n],35965)},96699,e=>{"use strict";let n=(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,n],96699)},59665,5142,e=>{"use strict";var n=e.i(18050),i=e.i(71645);let t=(0,e.i(56420).default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);function a(e=!1,n={}){let[t,s]=(0,i.useState)(e),l=(0,i.useCallback)(()=>{s(e=>e||(n.onOpen?.(),!0))},[n.onOpen]),r=(0,i.useCallback)(()=>{s(e=>e?(n.onClose?.(),!1):e)},[n.onClose]);return[t,{open:l,close:r,toggle:(0,i.useCallback)(()=>{t?r():l()},[r,l,t]),set:s}]}e.s(["useDisclosure",0,a],5142);let s=(0,i.createContext)(null);e.s(["default",0,function({sidebar:e,className:l="",headerTitle:r,headerRight:c,sidebarToggleReplacement:o,defaultHide:d=!1,children:h}){let[u,p]=a(!1),[m,j]=(0,i.useState)(d),f=(0,i.useRef)(d),y=function(e,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){let[t,a]=(0,i.useState)(n?void 0:!!("u">typeof window&&"matchMedia"in window)&&window.matchMedia(e).matches);return(0,i.useEffect)(()=>{try{if("matchMedia"in window){let n=window.matchMedia(e);a(n.matches);let i=e=>a(e.matches);return n.addEventListener("change",i),()=>{n.removeEventListener("change",i)}}}catch(e){return}},[e]),t||!1}("(max-width: 768px)"),x=(0,i.useCallback)((e={})=>{p.close(),e.collapse&&j(!0)},[p]);(0,i.useEffect)(()=>{d!==f.current&&(d?x({collapse:!0}):j(!1),f.current=d)},[d,x]);let v=()=>{y?p.open():j(!1)};return(0,n.jsx)(s.Provider,{value:{closeSidebar:x,openSidebar:v,isSidebarVisible:y?u:!m},children:(0,n.jsxs)("div",{className:["app-layout",l].filter(Boolean).join(" "),children:[(0,n.jsx)("div",{className:`sidebar-overlay ${u?"visible":""}`,onClick:()=>x()}),(0,n.jsx)("div",{className:`sidebar ${u?"open":""} ${m?"collapsed":""}`,children:e({closeSidebar:x,openSidebar:v})}),(0,n.jsxs)("div",{className:"main-content",children:[(0,n.jsxs)("header",{className:"app-header",children:[(0,n.jsxs)("div",{className:"header-left",children:[o??(0,n.jsx)("button",{onClick:()=>{y?p.toggle():j(!m)},className:"btn btn-icon sidebar-toggle-btn","aria-label":y?"打开菜单":m?"展开侧边栏":"收起侧边栏",children:(0,n.jsx)(t,{size:16})}),r]}),(0,n.jsx)("div",{className:"header-right",children:c})]}),h]})]})})},"useAppShell",0,function(){let e=(0,i.useContext)(s);if(!e)throw Error("useAppShell must be used within AppShell");return e}],59665)},87884,e=>{"use strict";var n=e.i(26913);e.s(["channelApi",0,{getChannels(e={}){let i=new URLSearchParams;e.type&&i.set("type",e.type),e.excludeType&&i.set("excludeType",e.excludeType);let t=i.toString();return n.api.get(t?`/api/channels?${t}`:"/api/channels").json()},createChannel:(e,i="personal",t={})=>n.api.post("/api/channels",{json:{name:e,type:i,...t}}).json(),leaveChannel:e=>n.api.delete(`/api/channels/${encodeURIComponent(e)}`).json(),getChannelMessages:(e,i=100,t=0)=>n.api.get(`/api/channels/${encodeURIComponent(e)}/messages?limit=${i}&offset=${t}`).json(),sendChannelMessage:({channelName:e,content:i,author:t,authorName:a,avatar:s,attachment:l})=>n.api.post(`/api/channels/${encodeURIComponent(e)}/messages`,{json:l?{content:i,author:t,authorName:a,avatar:s,attachment:l}:{content:i,author:t,authorName:a,avatar:s}}).json(),getChannelMembers:e=>n.api.get(`/api/channels/${encodeURIComponent(e)}/members`).json(),getChannelPeers:e=>n.api.get(`/api/channels/${encodeURIComponent(e)}/peers`).json(),setChannelRemark:(e,i)=>n.api.put(`/api/channels/${encodeURIComponent(e)}/remark`,{json:{remark:i}}).json(),setChannelPinned:(e,i)=>n.api.put(`/api/channels/${encodeURIComponent(e)}/pin`,{json:{pinned:i}}).json(),getFileDownloadUrl:e=>(0,n.getApiUrl)(`/api/files/${e}/download`)}])},99847,e=>{"use strict";let n=(0,e.i(56420).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,n],99847)},58925,e=>{"use strict";let n=(0,e.i(56420).default)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);e.s(["KeyRound",0,n],58925)},90165,e=>{"use strict";var n=e.i(47167),i=e.i(18050),t=e.i(71645),a=e.i(18566),s=e.i(58925),l=e.i(89664),r=e.i(99847),c=e.i(35965),o=e.i(96699),d=e.i(11241),h=e.i(59665),u=e.i(3593),p=e.i(71192),m=e.i(11470),j=e.i(26913),f=e.i(87884);let y=[{name:"node_url",required:!1,description:"Web 端未连接后端时,用于连接远程节点。"},{name:"node_invite",required:!1,description:"配合 node_url 作为远程节点邀请码。"},{name:"uid",required:!0,description:"作为用户名,密码为空,用于生成账户并自动登录。"},{name:"identity",required:!1,description:"邀请身份类型;user 为普通用户视图。"},{name:"logo",required:!1,description:"覆盖邀请用户聊天页顶部 logo。"},{name:"avatar",required:!1,description:"覆盖默认头像。"},{name:"name",required:!1,description:"覆盖默认昵称。"},{name:"locale",required:!1,description:"预留给多语言切换,当前暂不执行。"},{name:"channels[].id",required:!0,description:"频道 ID,用于自动加入频道。"},{name:"channels[].name",required:!1,description:"频道备注,不作为频道 ID。"}],x=n.default.env.NEXT_PUBLIC_CHAT_JOIN_API_BASE||"https://api.most.box";function v(e){try{return JSON.parse(e)}catch{return null}}function g(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function k(e){return"string"==typeof e?e.trim():""}function b(){let e=(0,a.useSearchParams)(),n=(0,u.useAppStore)(e=>e.isDarkMode),b=(0,u.useAppStore)(e=>e.setIsDarkMode),C=(0,u.useAppStore)(e=>e.hasBackend),N=(0,p.useUserStore)(e=>e.setUserIdentity),[w,S]=(0,t.useState)(""),[A,M]=(0,t.useState)(""),[R,_]=(0,t.useState)(!0),[$,I]=(0,t.useState)(""),U=(0,t.useRef)("");return(0,t.useEffect)(()=>{let n=e.get("token"),i=e.get("pub");if(!n){M("缺少 token 参数"),_(!1);return}if(!i){M("缺少 pub 参数"),_(!1);return}if(null===C)return void I("正在检测后端连接...");let t=`${n}:${i}`;async function a(e){var n;if(e.node_url){if(I("正在连接远程节点..."),!(await (0,j.checkBackendConnectionTarget)({url:e.node_url,invite:e.node_invite||""})).ok)throw Error("远程节点连接失败");(0,j.configureBackend)({url:e.node_url,invite:e.node_invite||""}),u.useAppStore.setState({hasBackend:!0})}else if(!C)throw Error("未连接后端,邀请中也没有 node_url");I("正在登录邀请账号...");let i=(0,m.createLoginIdentity)(e.uid,"");for(let n of(N({...i,identity:e.identity,displayName:e.name||i.displayName,logo:e.logo,avatar:e.avatar}),I("正在加入频道..."),e.channels)){await f.channelApi.createChannel(n.id,"public",{displayName:e.name||i.displayName,avatar:e.avatar});let t=String(n.name||"").trim().slice(0,50);t&&await f.channelApi.setChannelRemark(n.id,t)}let t=e.channels[0];I("加入成功,正在打开频道..."),window.location.href=(n=t.id,`/chat?channel=${encodeURIComponent(n)}`)}async function s(){try{I("正在解密邀请...");let e=await fetch(`${x}/api/chat.join.decrypt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:n,pub:i})}),t=await e.text(),s=v(t);if(e.ok){S(null===s?t:JSON.stringify(s,null,2));let e=function(e){let n,i="string"!=typeof e?e:v(e);if(!g(i))return null;let t=k(i.uid),a=(Array.isArray(i.channels)?i.channels:[]).filter(g).map(e=>({id:k(e.id),name:k(e.name)||void 0})).filter(e=>e.id);return t&&0!==a.length?{node_url:k(i.node_url)||void 0,node_invite:k(i.node_invite)||void 0,locale:k(i.locale)||void 0,uid:t,identity:(n=k(i.identity),"user"===n||"service"===n||"service_ai"===n?n:void 0),logo:k(i.logo)||void 0,avatar:k(i.avatar)||void 0,name:k(i.name)||void 0,channels:a}:null}(s);if(!e)return void M("邀请内容缺少 uid 或 channels[].id");await a(e)}else M(function(e,n){if(n&&"object"==typeof n&&"error"in n){let e=n.error;if("string"==typeof e)return e}return e||"解密失败"}(t,s))}catch(e){M(`请求出错: ${e instanceof Error?e.message:String(e)}`)}finally{_(!1)}}U.current!==t&&(U.current=t,s())},[C,e,N]),(0,i.jsx)(h.default,{sidebar:()=>(0,i.jsxs)("div",{className:"sidebar-header sidebar-header-link",onClick:()=>window.location.href="/chat",children:[(0,i.jsx)(d.ArrowLeft,{size:18}),(0,i.jsx)("h1",{children:"MOST PEOPLE"})]}),headerTitle:(0,i.jsx)("h2",{className:"header-title",children:"加入频道"}),headerRight:(0,i.jsx)("button",{className:"btn btn-icon",onClick:()=>b(!n),title:"切换主题",children:n?(0,i.jsx)(c.Sun,{size:16}):(0,i.jsx)(o.Moon,{size:16})}),children:(0,i.jsx)("div",{className:"chat-join-container",children:(0,i.jsxs)("div",{className:"chat-join-panel",children:[R?(0,i.jsxs)("div",{className:"chat-join-loading",children:[(0,i.jsx)(s.KeyRound,{size:32}),(0,i.jsx)("p",{children:$||"正在解密..."})]}):A?(0,i.jsxs)("div",{className:"chat-join-error",children:[(0,i.jsx)(r.AlertCircle,{size:32}),(0,i.jsx)("p",{children:A}),$&&(0,i.jsx)("p",{className:"chat-join-status",children:$}),w&&(0,i.jsx)("pre",{className:"chat-join-result",children:w})]}):(0,i.jsxs)("div",{className:"chat-join-success",children:[(0,i.jsx)(l.Check,{size:32}),(0,i.jsx)("p",{children:$||"解密成功"}),(0,i.jsx)("pre",{className:"chat-join-result",children:w})]}),(0,i.jsxs)("section",{className:"chat-join-spec","aria-labelledby":"chat-join-spec-title",children:[(0,i.jsxs)("div",{className:"chat-join-helper-title",children:[(0,i.jsx)(s.KeyRound,{size:18}),(0,i.jsx)("h3",{id:"chat-join-spec-title",children:"支持字段"})]}),(0,i.jsx)("div",{className:"chat-join-field-list",children:y.map(e=>(0,i.jsxs)("div",{className:"chat-join-field",children:[(0,i.jsxs)("div",{className:"chat-join-field-meta",children:[(0,i.jsx)("code",{className:"chat-join-field-name",children:e.name}),(0,i.jsx)("span",{children:e.required?"必填":"可选"})]}),(0,i.jsx)("p",{children:e.description})]},e.name))})]}),(0,i.jsxs)("section",{className:"chat-join-helper","aria-labelledby":"ea-test-title",children:[(0,i.jsxs)("div",{className:"chat-join-helper-title",children:[(0,i.jsx)(s.KeyRound,{size:18}),(0,i.jsx)("h3",{id:"ea-test-title",children:"测试公钥"})]}),(0,i.jsx)("code",{className:"ui-code-box chat-join-public-key",children:"0x955fe80bdb8312165471fcacd6a8f83df88a770dda6f38657ca4e62ec28d5b54"}),(0,i.jsx)("a",{className:"btn",href:"/web3/#EA",target:"_blank",children:"前往 Web3 工具箱"})]})]})})})}e.s(["default",0,function(){return(0,i.jsx)(t.Suspense,{children:(0,i.jsx)(b,{})})}],90165)}]);
|
|
@@ -1 +1 @@
|
|
|
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}.portal-desktop-callout{text-align:left;background:var(--glass-bg-heavy);border-radius:var(--radius-lg);width:min(100%,720px);box-shadow:var(--glass-shadow);border:1px solid #ff950059;justify-content:space-between;align-items:center;gap:18px;margin:28px auto 0;padding:18px 20px;display:flex}.portal-desktop-callout div{flex-direction:column;gap:4px;min-width:0;display:flex}.portal-desktop-callout strong{color:var(--text-primary);font-size:16px;font-weight:700}.portal-desktop-callout span{color:var(--text-secondary);font-size:14px;line-height:1.6}.portal-desktop-callout .btn{flex-shrink:0}@media (max-width:768px){.portal-hero{padding:40px 24px 24px}.portal-hero-title{font-size:36px}.portal-hero-subtitle{font-size:16px}.portal-desktop-callout{flex-direction:column;align-items:stretch;padding:16px}.portal-desktop-callout .btn{width:100%}}.portal-cards-section{padding-bottom:32px}.portal-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}@media (max-width:1100px){.portal-cards{grid-template-columns:repeat(3,1fr)}}@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{gap:5px;min-height:auto;margin-top:6px;
|
|
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}.portal-desktop-callout{text-align:left;background:var(--glass-bg-heavy);border-radius:var(--radius-lg);width:min(100%,720px);box-shadow:var(--glass-shadow);border:1px solid #ff950059;justify-content:space-between;align-items:center;gap:18px;margin:28px auto 0;padding:18px 20px;display:flex}.portal-desktop-callout div{flex-direction:column;gap:4px;min-width:0;display:flex}.portal-desktop-callout strong{color:var(--text-primary);font-size:16px;font-weight:700}.portal-desktop-callout span{color:var(--text-secondary);font-size:14px;line-height:1.6}.portal-desktop-callout .btn{flex-shrink:0}@media (max-width:768px){.portal-hero{padding:40px 24px 24px}.portal-hero-title{font-size:36px}.portal-hero-subtitle{font-size:16px}.portal-desktop-callout{flex-direction:column;align-items:stretch;padding:16px}.portal-desktop-callout .btn{width:100%}}.portal-cards-section{padding-bottom:32px}.portal-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}@media (max-width:1100px){.portal-cards{grid-template-columns:repeat(3,1fr)}}@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{gap:5px;min-height:auto;margin-top:6px;font-size:11px}.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}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,17173,e=>{"use strict";let t,s;var r,a,n,i,l,o=e.i(18050),c=e.i(71645),d=e.i(8515),h=e.i(11241),u=e.i(9584),x=e.i(58925),p=e.i(6537),m=e.i(96699),g=e.i(35965),y=e.i(25981),b=e.i(56420);let f=(0,b.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);var w=e.i(70904),j=e.i(59665),v=e.i(3593),C=e.i(71192),N=e.i(66112),E=e.i(15882),A=e.i(96510),B=e.i(93957);e.i(77816);let S=(e,t)=>{let s=t.slice(2),r=new Uint8Array((0,E.getBytes)(e+s));return A.default.sign.keyPair.fromSecretKey(r)};B.generateAvatar;var M=e.i(72382),P=e.i(80860),k=e.i(23165);function R({title:e,username:t,password:s,showPassword:r,showPrivateKey:a,account:n,onUsernameChange:i,onPasswordChange:l,onTogglePassword:c,onTogglePrivateKey:d,onGenerate:h}){var u;return(0,o.jsxs)("div",{className:"web3-box-account",children:[(0,o.jsx)("div",{className:"web3-box-account-header",children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:e}),(0,o.jsx)("p",{children:"用户名和密码会确定性生成 x25519 密钥对。"})]})}),(0,o.jsxs)("div",{className:"web3-box-login",children:[(0,o.jsx)("input",{type:"text",placeholder:"用户名",value:t,onChange:e=>i(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsxs)("div",{className:"input-wrap",children:[(0,o.jsx)("input",{type:r?"text":"password",placeholder:"密码(可选)",value:s,onChange:e=>l(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("button",{className:"input-eye",onClick:c,type:"button",children:r?(0,o.jsx)(P.EyeOff,{size:16}):(0,o.jsx)(M.Eye,{size:16})})]}),(0,o.jsxs)("button",{className:"btn btn-primary btn-full",onClick:h,disabled:!t.trim(),type:"button",children:[(0,o.jsx)(x.KeyRound,{size:16}),"生成账号"]})]}),n?(0,o.jsxs)("div",{className:"web3-box-key-list",children:[(0,o.jsxs)("div",{className:"web3-box-key-row",children:[(0,o.jsx)("span",{children:"地址"}),(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:n.address.toLowerCase()}),(0,o.jsx)(k.CopyButton,{text:n.address.toLowerCase()})]})]}),(0,o.jsxs)("div",{className:"web3-box-key-row",children:[(0,o.jsx)("span",{children:"x25519 公钥"}),(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:n.publicKey}),(0,o.jsx)(k.CopyButton,{text:n.publicKey})]})]}),(0,o.jsxs)("div",{className:"web3-box-key-row",children:[(0,o.jsx)("span",{children:"x25519 私钥"}),(0,o.jsxs)("div",{className:"mono-row danger",children:[(0,o.jsx)("code",{className:"mono",children:a?n.privateKey:(u=n.privateKey)?"•".repeat(Math.min(u.length,32)):"-"}),(0,o.jsx)("button",{className:"btn btn-icon",onClick:d,title:a?"隐藏私钥":"显示私钥",type:"button",children:a?(0,o.jsx)(M.Eye,{size:14}):(0,o.jsx)(P.EyeOff,{size:14})})]})]})]}):null]})}function z({title:e,description:t,message:s,cipherText:r,decryptedText:a,error:n,encryptLabel:i,decryptLabel:l,messagePlaceholder:c,cipherPlaceholder:d,onMessageChange:h,onCipherTextChange:u,onEncrypt:m,onDecrypt:g}){var y;let b=`box-message-${e.replaceAll(/\s+/g,"-")}`,f=(0,N.parseMostBoxToken)(r);return(0,o.jsxs)("section",{className:"web3-box-flow",children:[(0,o.jsx)("div",{className:"web3-box-flow-header",children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:e}),(0,o.jsx)("p",{children:t})]})}),(0,o.jsx)("label",{className:"web3-box-label",htmlFor:b,children:"明文"}),(0,o.jsx)("textarea",{id:b,className:"textarea",value:s,onChange:e=>h(e.target.value),rows:4,placeholder:c}),(0,o.jsxs)("div",{className:"web3-box-actions",children:[(0,o.jsxs)("button",{className:"btn btn-primary",onClick:m,type:"button",children:[(0,o.jsx)(p.Lock,{size:16}),i]}),(0,o.jsxs)("button",{className:"btn btn-secondary",onClick:g,type:"button",children:[(0,o.jsx)(x.KeyRound,{size:16}),l]})]}),n&&(0,o.jsx)("p",{className:"web3-tools-danger",children:n}),(0,o.jsxs)("div",{className:"web3-box-result-grid",children:[(0,o.jsxs)("div",{className:"web3-box-result",children:[(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"密文"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:r,onChange:e=>u(e.target.value),rows:5,placeholder:d})]}),(0,o.jsxs)("div",{className:"web3-box-result",children:[(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"解密结果"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:a,readOnly:!0,rows:5,placeholder:"解密成功后显示明文"})]})]}),f&&(0,o.jsxs)("div",{className:"web3-box-token-meta",children:[(0,o.jsxs)("div",{className:"web3-box-token-meta-row",children:[(0,o.jsx)("span",{children:"时间戳"}),(0,o.jsx)("code",{children:Number.isFinite(y=f.timestampMs)?`${new Date(y).toLocaleString()}`:"-"})]}),(0,o.jsxs)("div",{className:"web3-box-token-meta-row",children:[(0,o.jsx)("span",{children:"随机数"}),(0,o.jsx)("code",{children:f.nonce})]})]})]})}function T(e){return(0,o.jsxs)("div",{className:"web3-box-workspace",children:[(0,o.jsxs)("div",{className:"web3-box-grid",children:[(0,o.jsx)(R,{title:"A 账号",username:e.boxAUsername,password:e.boxAPassword,showPassword:e.boxAShowPassword,showPrivateKey:e.boxAShowPrivateKey,account:e.boxAAccount,onUsernameChange:e.onBoxAUsernameChange,onPasswordChange:e.onBoxAPasswordChange,onTogglePassword:e.onBoxAShowPasswordToggle,onTogglePrivateKey:e.onBoxAShowPrivateKeyToggle,onGenerate:e.onGenerateBoxA}),(0,o.jsx)(R,{title:"B 账号",username:e.boxBUsername,password:e.boxBPassword,showPassword:e.boxBShowPassword,showPrivateKey:e.boxBShowPrivateKey,account:e.boxBAccount,onUsernameChange:e.onBoxBUsernameChange,onPasswordChange:e.onBoxBPasswordChange,onTogglePassword:e.onBoxBShowPasswordToggle,onTogglePrivateKey:e.onBoxBShowPrivateKeyToggle,onGenerate:e.onGenerateBoxB})]}),(0,o.jsxs)("div",{className:"web3-box-flow-grid",children:[(0,o.jsx)(z,{title:"A → B",description:"加密使用 A 私钥 + B 公钥;解密使用 A 公钥 + B 私钥。",message:e.boxABMessage,cipherText:e.boxABCipherText,decryptedText:e.boxABDecryptedText,error:e.boxABError,encryptLabel:"用 A 私钥 + B 公钥加密",decryptLabel:"用 A 公钥 + B 私钥解密",messagePlaceholder:"输入要从 A 发给 B 的消息",cipherPlaceholder:"加密后生成密文,或粘贴已有密文",onMessageChange:e.onBoxABMessageChange,onCipherTextChange:e.onBoxABCipherTextChange,onEncrypt:e.onEncryptBoxAB,onDecrypt:e.onDecryptBoxAB}),(0,o.jsx)(z,{title:"B → A",description:"加密使用 B 私钥 + A 公钥;解密使用 B 公钥 + A 私钥。",message:e.boxBAMessage,cipherText:e.boxBACipherText,decryptedText:e.boxBADecryptedText,error:e.boxBAError,encryptLabel:"用 B 私钥 + A 公钥加密",decryptLabel:"用 B 公钥 + A 私钥解密",messagePlaceholder:"输入要从 B 发给 A 的消息",cipherPlaceholder:"加密后生成密文,或粘贴已有密文",onMessageChange:e.onBoxBAMessageChange,onCipherTextChange:e.onBoxBACipherTextChange,onEncrypt:e.onEncryptBoxBA,onDecrypt:e.onDecryptBoxBA})]}),(0,o.jsxs)("div",{className:"web3-box-flow-grid",children:[(0,o.jsxs)("section",{className:"web3-box-flow",children:[(0,o.jsx)("div",{className:"web3-box-flow-header",children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:"加密"}),(0,o.jsx)("p",{children:"只输入发送方私钥和接收方公钥即可加密,无需生成完整账号。"})]})}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"发送方"})}),(0,o.jsxs)("div",{className:"input-wrap",children:[(0,o.jsx)("input",{type:e.boxEncryptShowPrivateKey?"text":"password",placeholder:"发送方 x25519 私钥",value:e.boxEncryptSenderPrivateKey,onChange:t=>e.onBoxEncryptSenderPrivateKeyChange(t.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("button",{className:"input-eye",onClick:e.onBoxEncryptShowPrivateKeyToggle,type:"button",children:e.boxEncryptShowPrivateKey?(0,o.jsx)(P.EyeOff,{size:16}):(0,o.jsx)(M.Eye,{size:16})})]}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"接收方"})}),(0,o.jsx)("input",{type:"text",placeholder:"接收方 x25519 公钥",value:e.boxEncryptRecipientPublicKey,onChange:t=>e.onBoxEncryptRecipientPublicKeyChange(t.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"明文"})}),(0,o.jsx)("textarea",{className:"textarea",value:e.boxEncryptMessage,onChange:t=>e.onBoxEncryptMessageChange(t.target.value),rows:4,placeholder:"输入要加密的消息"}),(0,o.jsx)("div",{className:"web3-box-actions",children:(0,o.jsxs)("button",{className:"btn btn-primary",onClick:e.onEncryptOnly,type:"button",children:[(0,o.jsx)(p.Lock,{size:16}),"加密"]})}),e.boxEncryptError&&(0,o.jsx)("p",{className:"web3-tools-danger",children:e.boxEncryptError}),(0,o.jsxs)("div",{className:"web3-box-result",children:[(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"密文"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:e.boxEncryptCipherText,readOnly:!0,rows:5,placeholder:"加密成功后显示密文"})]})]}),(0,o.jsxs)("section",{className:"web3-box-flow",children:[(0,o.jsx)("div",{className:"web3-box-flow-header",children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:"解密"}),(0,o.jsx)("p",{children:"只输入发送方公钥和接收方私钥即可解密,无需生成完整账号。"})]})}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"发送方"})}),(0,o.jsx)("input",{type:"text",placeholder:"发送方 x25519 公钥",value:e.boxDecryptSenderPublicKey,onChange:t=>e.onBoxDecryptSenderPublicKeyChange(t.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"接收方"})}),(0,o.jsxs)("div",{className:"input-wrap",children:[(0,o.jsx)("input",{type:e.boxDecryptShowPrivateKey?"text":"password",placeholder:"接收方 x25519 私钥",value:e.boxDecryptRecipientPrivateKey,onChange:t=>e.onBoxDecryptRecipientPrivateKeyChange(t.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("button",{className:"input-eye",onClick:e.onBoxDecryptShowPrivateKeyToggle,type:"button",children:e.boxDecryptShowPrivateKey?(0,o.jsx)(P.EyeOff,{size:16}):(0,o.jsx)(M.Eye,{size:16})})]}),(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"密文"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:e.boxDecryptCipherText,onChange:t=>e.onBoxDecryptCipherTextChange(t.target.value),rows:5,placeholder:"粘贴要解密的密文"}),(0,o.jsx)("div",{className:"web3-box-actions",children:(0,o.jsxs)("button",{className:"btn btn-secondary",onClick:e.onDecryptOnly,type:"button",children:[(0,o.jsx)(x.KeyRound,{size:16}),"解密"]})}),e.boxDecryptError&&(0,o.jsx)("p",{className:"web3-tools-danger",children:e.boxDecryptError}),(0,o.jsxs)("div",{className:"web3-box-result",children:[(0,o.jsx)("label",{className:"web3-box-result-header",children:(0,o.jsx)("span",{children:"解密结果"})}),(0,o.jsx)("textarea",{className:"textarea mono",value:e.boxDecryptResult,readOnly:!0,rows:5,placeholder:"解密成功后显示明文"})]})]})]})]})}var K=e.i(24851),D=e.i(16546);function O({walletResult:e,publicPem:t,privatePem:s}){if(!t||!s)return(0,o.jsx)(K.EmptyState,{icon:(0,o.jsx)(p.Lock,{size:36}),message:"请输入用户名和密码以生成 PEM 密钥"});let r=e?.username||"wallet";return(0,o.jsxs)("div",{className:"web3-pem-list",children:[(0,o.jsx)(D.PemBlock,{label:`${r}.pub`,pem:t,filename:`${r}.pub`}),(0,o.jsx)(D.PemBlock,{label:`${r}.pem`,pem:s,filename:`${r}.pem`})]})}var I=e.i(62368),L=e.i(26913);function U(){let e=(0,v.useAppStore)(e=>e.addToast),t=(0,C.useUserStore)(e=>e.identity),s=(0,C.useUserStore)(e=>e.openLoginModal),[r,a]=(0,c.useState)(null),[n,i]=(0,c.useState)(!1),[l,d]=(0,c.useState)("");(0,c.useEffect)(()=>{t&&(i(!0),d(""),L.api.get("/api/user/export").json().then(a).catch(async e=>d(await (0,L.getApiErrorMessage)(e,"导出预览失败"))).finally(()=>i(!1)))},[t?.address]);let h=async()=>{if(!t)return void s();i(!0),d("");try{let t,s,r,n,i=await L.api.get("/api/user/export").json();a(i),t=new Blob([JSON.stringify(i,null,2)],{type:"application/json"}),s=URL.createObjectURL(t),r=document.createElement("a"),n=new Date().toISOString().replace(/[:.]/g,"-"),r.href=s,r.download=`mostbox-user-data-${i.ownerAddress}-${n}.json`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(s),e("用户数据已导出","success")}catch(s){let t=await (0,L.getApiErrorMessage)(s,"导出失败");d(t),e(t,"error")}finally{i(!1)}};return(0,o.jsxs)("section",{id:"user-export",className:"web3-key-card",children:[(0,o.jsxs)("div",{className:"web3-key-card-header",children:[(0,o.jsx)("span",{className:"web3-key-card-icon",children:(0,o.jsx)(u.Database,{size:18})}),(0,o.jsx)("span",{className:"web3-key-card-title",children:"MostBox 元数据导出"})]}),(0,o.jsx)("div",{className:"web3-key-card-body web3-data-stack",children:t?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"web3-data-summary",children:[(0,o.jsx)("span",{children:"当前用户"}),(0,o.jsx)("strong",{children:t.address})]}),(0,o.jsxs)("div",{className:"web3-data-grid",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{children:"文件"}),(0,o.jsx)("strong",{children:r?.files.length??"-"})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{children:"回收站"}),(0,o.jsx)("strong",{children:r?.trashFiles.length??"-"})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{children:"频道"}),(0,o.jsx)("strong",{children:r?.channels.length??"-"})]})]}),l&&(0,o.jsx)("p",{className:"web3-tools-danger",children:l}),(0,o.jsxs)("button",{className:"btn btn-primary",onClick:h,disabled:n,children:[(0,o.jsx)(I.Download,{size:16}),n?"处理中...":"导出 JSON"]})]}):(0,o.jsx)("button",{className:"btn btn-primary",onClick:s,children:"登录后导出"})})]})}var _=e.i(53138);let F=(0,b.default)("file-braces",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]);e.i(4121);var $=e.i(88361);function H(e){return!Number.isFinite(e)||e<=0?"0 B":e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<0x40000000?`${(e/1048576).toFixed(1)} MB`:`${(e/0x40000000).toFixed(2)} GB`}function Q(){let e=(0,v.useAppStore)(e=>e.addToast),t=(0,C.useUserStore)(e=>e.identity),s=(0,C.useUserStore)(e=>e.openLoginModal),[r,a]=(0,c.useState)(null),[n,i]=(0,c.useState)(""),[l,d]=(0,c.useState)(null),[h,u]=(0,c.useState)(null),[x,p]=(0,c.useState)(!1),[m,g]=(0,c.useState)(""),[b,f]=(0,c.useState)(!1),w=async r=>{let n=r.target.files?.[0];if(d(null),u(null),g(""),a(null),n){i(n.name);try{let e=await n.text(),r=JSON.parse(e);if(a(r),!t)return void s();p(!0);let i=await L.api.post("/api/user/import/check",{json:{package:r},timeout:6e4}).json();d(i)}catch(s){let t=s instanceof SyntaxError?"JSON 文件格式无效":await (0,L.getApiErrorMessage)(s,"导入预检失败");g(t),e(t,"error")}finally{p(!1)}}},j=async()=>{if(!t)return void s();if(r&&l?.ready&&l.checkId){p(!0),g(""),u(null);try{let t=await L.api.post("/api/user/import",{json:{package:r,checkId:l.checkId},timeout:12e4}).json();u(t),e(t.success?"导入完成":"导入完成,部分文件失败",t.success?"success":"error"),f(!1)}catch(s){let t=await (0,L.getApiErrorMessage)(s,"导入失败");g(t),e(t,"error")}finally{p(!1)}}};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("section",{id:"user-import",className:"web3-key-card",children:[(0,o.jsxs)("div",{className:"web3-key-card-header",children:[(0,o.jsx)("span",{className:"web3-key-card-icon",children:(0,o.jsx)(F,{size:18})}),(0,o.jsx)("span",{className:"web3-key-card-title",children:"MostBox 元数据导入"})]}),(0,o.jsx)("div",{className:"web3-key-card-body web3-data-stack",children:t?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("label",{className:"web3-import-drop",children:[(0,o.jsx)(y.Upload,{size:20}),(0,o.jsx)("span",{children:n||"选择导出的 JSON 文件"}),(0,o.jsx)("input",{type:"file",accept:"application/json,.json",onChange:w})]}),x&&(0,o.jsx)("p",{className:"web3-data-muted",children:"处理中..."}),m&&(0,o.jsx)("p",{className:"web3-tools-danger",children:m}),l&&(0,o.jsxs)("div",{className:"web3-data-stack",children:[(0,o.jsxs)("div",{className:"web3-data-grid",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{children:"当前文件"}),(0,o.jsx)("strong",{children:l.currentFileCount})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{children:"导入文件"}),(0,o.jsx)("strong",{children:l.importFileCount})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{children:"所需容量"}),(0,o.jsx)("strong",{children:H(l.requiredBytes)})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{children:"可用容量"}),(0,o.jsx)("strong",{children:H(l.availableBytes)})]})]}),!l.ready&&(0,o.jsxs)("div",{className:"web3-import-failures",children:[(0,o.jsxs)("div",{className:"web3-data-warning",children:[(0,o.jsx)(_.AlertTriangle,{size:16}),(0,o.jsx)("span",{children:"当前导入包不能完整导入"})]}),l.failures.slice(0,20).map((e,t)=>(0,o.jsxs)("p",{children:[e.fileName||e.cid||"导入包",":"," ",e.error]},`${e.cid||e.fileName||t}`))]}),l.ready&&(0,o.jsx)("button",{className:"btn btn-danger",onClick:()=>f(!0),disabled:x,children:"覆盖并导入"})]}),h&&(0,o.jsxs)("div",{className:"web3-import-result",children:[(0,o.jsxs)("strong",{children:["已导入 ",h.importedFiles," 个文件,",h.importedTrashFiles," 个回收站项"]}),h.failedFiles.map(e=>(0,o.jsxs)("p",{children:[e.fileName,": ",e.error]},e.cid))]})]}):(0,o.jsx)("button",{className:"btn btn-primary",onClick:s,children:"登录后导入"})})]}),b&&(0,o.jsx)($.ConfirmModal,{title:"覆盖当前用户数据",message:"导入会先清空当前账号在本节点的文件视图、回收站和频道偏好,然后用导入包重建。",confirmText:x?"导入中...":"确认导入",danger:!0,onConfirm:j,onClose:()=>f(!1)})]})}var V=e.i(16327);let G=(0,b.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),Y=(0,b.default)("qr-code",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]]);var W=e.i(16306),X=Object.defineProperty,q=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable,ee=(e,t,s)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,et=(e,t)=>{for(var s in t||(t={}))J.call(t,s)&&ee(e,s,t[s]);if(q)for(var s of q(t))Z.call(t,s)&&ee(e,s,t[s]);return e},es=(e,t)=>{var s={};for(var r in e)J.call(e,r)&&0>t.indexOf(r)&&(s[r]=e[r]);if(null!=e&&q)for(var r of q(e))0>t.indexOf(r)&&Z.call(e,r)&&(s[r]=e[r]);return s};(e=>{let t=class t{constructor(e,s,r,n){if(this.version=e,this.errorCorrectionLevel=s,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError("Version value out of range");if(n<-1||n>7)throw RangeError("Mask value out of range");this.size=4*e+17;let i=[];for(let e=0;e<this.size;e++)i.push(!1);for(let e=0;e<this.size;e++)this.modules.push(i.slice()),this.isFunction.push(i.slice());this.drawFunctionPatterns();const l=this.addEccAndInterleave(r);if(this.drawCodewords(l),-1==n){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);const s=this.getPenaltyScore();s<e&&(n=t,e=s),this.applyMask(t)}}a(0<=n&&n<=7),this.mask=n,this.applyMask(n),this.drawFormatBits(n),this.isFunction=[]}static encodeText(s,r){let a=e.QrSegment.makeSegments(s);return t.encodeSegments(a,r)}static encodeBinary(s,r){let a=e.QrSegment.makeBytes(s);return t.encodeSegments([a],r)}static encodeSegments(e,r,n=1,l=40,o=-1,c=!0){let d,h;if(!(t.MIN_VERSION<=n&&n<=l&&l<=t.MAX_VERSION)||o<-1||o>7)throw RangeError("Invalid value");for(d=n;;d++){let s=8*t.getNumDataCodewords(d,r),a=i.getTotalBits(e,d);if(a<=s){h=a;break}if(d>=l)throw RangeError("Data too long")}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])c&&h<=8*t.getNumDataCodewords(d,e)&&(r=e);let u=[];for(let t of e)for(let e of(s(t.mode.modeBits,4,u),s(t.numChars,t.mode.numCharCountBits(d),u),t.getData()))u.push(e);a(u.length==h);let x=8*t.getNumDataCodewords(d,r);a(u.length<=x),s(0,Math.min(4,x-u.length),u),s(0,(8-u.length%8)%8,u),a(u.length%8==0);for(let e=236;u.length<x;e^=253)s(e,8,u);let p=[];for(;8*p.length<u.length;)p.push(0);return u.forEach((e,t)=>p[t>>>3]|=e<<7-(7&t)),new t(d,r,p,o)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let s=0;s<t;s++)for(let r=0;r<t;r++)(0!=s||0!=r)&&(0!=s||r!=t-1)&&(s!=t-1||0!=r)&&this.drawAlignmentPattern(e[s],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,s=t;for(let e=0;e<10;e++)s=s<<1^(s>>>9)*1335;let n=(t<<10|s)^21522;a(n>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(n,e));this.setFunctionModule(8,7,r(n,6)),this.setFunctionModule(8,8,r(n,7)),this.setFunctionModule(7,8,r(n,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(n,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(n,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(n,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;a(t>>>18==0);for(let e=0;e<18;e++){let s=r(t,e),a=this.size-11+e%3,n=Math.floor(e/3);this.setFunctionModule(a,n,s),this.setFunctionModule(n,a,s)}}drawFinderPattern(e,t){for(let s=-4;s<=4;s++)for(let r=-4;r<=4;r++){let a=Math.max(Math.abs(r),Math.abs(s)),n=e+r,i=t+s;0<=n&&n<this.size&&0<=i&&i<this.size&&this.setFunctionModule(n,i,2!=a&&4!=a)}}drawAlignmentPattern(e,t){for(let s=-2;s<=2;s++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+s,1!=Math.max(Math.abs(r),Math.abs(s)))}setFunctionModule(e,t,s){this.modules[t][e]=s,this.isFunction[t][e]=!0}addEccAndInterleave(e){let s=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(s,r))throw RangeError("Invalid argument");let n=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][s],i=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][s],l=Math.floor(t.getNumRawDataModules(s)/8),o=n-l%n,c=Math.floor(l/n),d=[],h=t.reedSolomonComputeDivisor(i);for(let s=0,r=0;s<n;s++){let a=e.slice(r,r+c-i+(s<o?0:1));r+=a.length;let n=t.reedSolomonComputeRemainder(a,h);s<o&&a.push(0),d.push(a.concat(n))}let u=[];for(let e=0;e<d[0].length;e++)d.forEach((t,s)=>{(e!=c-i||s>=o)&&u.push(t[e])});return a(u.length==l),u}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError("Invalid argument");let s=0;for(let t=this.size-1;t>=1;t-=2){6==t&&(t=5);for(let a=0;a<this.size;a++)for(let n=0;n<2;n++){let i=t-n,l=(t+1&2)==0?this.size-1-a:a;!this.isFunction[l][i]&&s<8*e.length&&(this.modules[l][i]=r(e[s>>>3],7-(7&s)),s++)}}a(s==8*e.length)}applyMask(e){if(e<0||e>7)throw RangeError("Mask value out of range");for(let t=0;t<this.size;t++)for(let s=0;s<this.size;s++){let r;switch(e){case 0:r=(s+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=s%3==0;break;case 3:r=(s+t)%3==0;break;case 4:r=(Math.floor(s/3)+Math.floor(t/2))%2==0;break;case 5:r=s*t%2+s*t%3==0;break;case 6:r=(s*t%2+s*t%3)%2==0;break;case 7:r=((s+t)%2+s*t%3)%2==0;break;default:throw Error("Unreachable")}!this.isFunction[t][s]&&r&&(this.modules[t][s]=!this.modules[t][s])}}getPenaltyScore(){let e=0;for(let s=0;s<this.size;s++){let r=!1,a=0,n=[0,0,0,0,0,0,0];for(let i=0;i<this.size;i++)this.modules[s][i]==r?5==++a?e+=t.PENALTY_N1:a>5&&e++:(this.finderPenaltyAddHistory(a,n),r||(e+=this.finderPenaltyCountPatterns(n)*t.PENALTY_N3),r=this.modules[s][i],a=1);e+=this.finderPenaltyTerminateAndCount(r,a,n)*t.PENALTY_N3}for(let s=0;s<this.size;s++){let r=!1,a=0,n=[0,0,0,0,0,0,0];for(let i=0;i<this.size;i++)this.modules[i][s]==r?5==++a?e+=t.PENALTY_N1:a>5&&e++:(this.finderPenaltyAddHistory(a,n),r||(e+=this.finderPenaltyCountPatterns(n)*t.PENALTY_N3),r=this.modules[i][s],a=1);e+=this.finderPenaltyTerminateAndCount(r,a,n)*t.PENALTY_N3}for(let s=0;s<this.size-1;s++)for(let r=0;r<this.size-1;r++){let a=this.modules[s][r];a==this.modules[s][r+1]&&a==this.modules[s+1][r]&&a==this.modules[s+1][r+1]&&(e+=t.PENALTY_N2)}let s=0;for(let e of this.modules)s=e.reduce((e,t)=>e+ +!!t,s);let r=this.size*this.size,n=Math.ceil(Math.abs(20*s-10*r)/r)-1;return a(0<=n&&n<=9),a(0<=(e+=n*t.PENALTY_N4)&&e<=2568888),e}getAlignmentPatternPositions(){if(1==this.version)return[];{let e=Math.floor(this.version/7)+2,t=32==this.version?26:2*Math.ceil((4*this.version+4)/(2*e-2)),s=[6];for(let r=this.size-7;s.length<e;r-=t)s.splice(1,0,r);return s}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError("Version number out of range");let s=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;s-=(25*t-10)*t-55,e>=7&&(s-=36)}return a(208<=s&&s<=29648),s}static getNumDataCodewords(e,s){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[s.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[s.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError("Degree out of range");let s=[];for(let t=0;t<e-1;t++)s.push(0);s.push(1);let r=1;for(let a=0;a<e;a++){for(let e=0;e<s.length;e++)s[e]=t.reedSolomonMultiply(s[e],r),e+1<s.length&&(s[e]^=s[e+1]);r=t.reedSolomonMultiply(r,2)}return s}static reedSolomonComputeRemainder(e,s){let r=s.map(e=>0);for(let a of e){let e=a^r.shift();r.push(0),s.forEach((s,a)=>r[a]^=t.reedSolomonMultiply(s,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8!=0||t>>>8!=0)throw RangeError("Byte out of range");let s=0;for(let r=7;r>=0;r--)s=s<<1^(s>>>7)*285^(t>>>r&1)*e;return a(s>>>8==0),s}finderPenaltyCountPatterns(e){let t=e[1];a(t<=3*this.size);let s=t>0&&e[2]==t&&e[3]==3*t&&e[4]==t&&e[5]==t;return(s&&e[0]>=4*t&&e[6]>=t?1:0)+(s&&e[6]>=4*t&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,s){return e&&(this.finderPenaltyAddHistory(t,s),t=0),t+=this.size,this.finderPenaltyAddHistory(t,s),this.finderPenaltyCountPatterns(s)}finderPenaltyAddHistory(e,t){0==t[0]&&(e+=this.size),t.pop(),t.unshift(e)}};function s(e,t,s){if(t<0||t>31||e>>>t!=0)throw RangeError("Value out of range");for(let r=t-1;r>=0;r--)s.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function a(e){if(!e)throw Error("Assertion error")}t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;let n=class e{constructor(e,t,s){if(this.mode=e,this.numChars=t,this.bitData=s,t<0)throw RangeError("Invalid argument");this.bitData=s.slice()}static makeBytes(t){let r=[];for(let e of t)s(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError("String contains non-numeric characters");let r=[];for(let e=0;e<t.length;){let a=Math.min(t.length-e,3);s(parseInt(t.substring(e,e+a),10),3*a+1,r),e+=a}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){let r;if(!e.isAlphanumeric(t))throw RangeError("String contains unencodable characters in alphanumeric mode");let a=[];for(r=0;r+2<=t.length;r+=2){let n=45*e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(r));s(n+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(r+1)),11,a)}return r<t.length&&s(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(r)),6,a),new e(e.Mode.ALPHANUMERIC,t.length,a)}static makeSegments(t){return""==t?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError("ECI assignment value out of range");if(t<128)s(t,8,r);else if(t<16384)s(2,2,r),s(t,14,r);else if(t<1e6)s(6,3,r),s(t,21,r);else throw RangeError("ECI assignment value out of range");return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let s=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;s+=4+e+r.bitData.length}return s}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let s=0;s<e.length;s++)"%"!=e.charAt(s)?t.push(e.charCodeAt(s)):(t.push(parseInt(e.substring(s+1,s+3),16)),s+=2);return t}};n.NUMERIC_REGEX=/^[0-9]*$/,n.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,n.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";let i=n;e.QrSegment=n})(l||(l={})),a=(r=l||(l={})).QrCode||(r.QrCode={}),(t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}}).LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),a.Ecc=t,i=(n=l||(l={})).QrSegment||(n.QrSegment={}),(s=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}}).NUMERIC=new s(1,[10,12,14]),s.ALPHANUMERIC=new s(2,[9,11,13]),s.BYTE=new s(4,[8,16,16]),s.KANJI=new s(8,[8,10,12]),s.ECI=new s(7,[0,0,0]),i.Mode=s;var er=l,ea={L:er.QrCode.Ecc.LOW,M:er.QrCode.Ecc.MEDIUM,Q:er.QrCode.Ecc.QUARTILE,H:er.QrCode.Ecc.HIGH},en="#FFFFFF",ei="#000000";function el(e,t=0){let s=[];return e.forEach(function(e,r){let a=null;e.forEach(function(n,i){if(!n&&null!==a){s.push(`M${a+t} ${r+t}h${i-a}v1H${a+t}z`),a=null;return}if(i===e.length-1){if(!n)return;null===a?s.push(`M${i+t},${r+t} h1v1H${i+t}z`):s.push(`M${a+t},${r+t} h${i+1-a}v1H${a+t}z`);return}n&&null===a&&(a=i)})}),s.join("")}function eo(e,t){return e.slice().map((e,s)=>s<t.y||s>=t.y+t.h?e:e.map((e,s)=>(s<t.x||s>=t.x+t.w)&&e))}function ec({value:e,level:t,minVersion:s,includeMargin:r,marginSize:a,imageSettings:n,size:i,boostLevel:l}){let o=c.default.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...er.QrSegment.makeSegments(t)),e),[]);return er.QrCode.encodeSegments(r,ea[t],s,void 0,void 0,l)},[e,t,s,l]),{cells:d,margin:h,numCells:u,calculatedImageSettings:x}=c.default.useMemo(()=>{let e=o.getModules(),t=null!=a?Math.max(Math.floor(a),0):4*!!r,s=e.length+2*t,l=function(e,t,s,r){if(null==r)return null;let a=e.length+2*s,n=Math.floor(.1*t),i=a/t,l=(r.width||n)*i,o=(r.height||n)*i,c=null==r.x?e.length/2-l/2:r.x*i,d=null==r.y?e.length/2-o/2:r.y*i,h=null==r.opacity?1:r.opacity,u=null;if(r.excavate){let e=Math.floor(c),t=Math.floor(d),s=Math.ceil(l+c-e),r=Math.ceil(o+d-t);u={x:e,y:t,w:s,h:r}}return{x:c,y:d,h:o,w:l,excavation:u,opacity:h,crossOrigin:r.crossOrigin}}(e,i,t,n);return{cells:e,margin:t,numCells:s,calculatedImageSettings:l}},[o,i,n,r,a]);return{qrcode:o,margin:h,cells:d,numCells:u,calculatedImageSettings:x}}var ed=function(){try{new Path2D().addPath(new Path2D)}catch(e){return!1}return!0}();c.default.forwardRef(function(e,t){let{value:s,size:r=128,level:a="L",bgColor:n=en,fgColor:i=ei,includeMargin:l=!1,minVersion:o=1,boostLevel:d,marginSize:h,imageSettings:u}=e,x=es(e,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","marginSize","imageSettings"]),{style:p}=x,m=es(x,["style"]),g=null==u?void 0:u.src,y=c.default.useRef(null),b=c.default.useRef(null),f=c.default.useCallback(e=>{y.current=e,"function"==typeof t?t(e):t&&(t.current=e)},[t]),[w,j]=c.default.useState(!1),{margin:v,cells:C,numCells:N,calculatedImageSettings:E}=ec({value:s,level:a,minVersion:o,boostLevel:d,includeMargin:l,marginSize:h,imageSettings:u,size:r});c.default.useEffect(()=>{if(null!=y.current){let e=y.current,t=e.getContext("2d");if(!t)return;let s=C,a=b.current,l=null!=E&&null!==a&&a.complete&&0!==a.naturalHeight&&0!==a.naturalWidth;l&&null!=E.excavation&&(s=eo(C,E.excavation));let o=window.devicePixelRatio||1;e.height=e.width=r*o;let c=r/N*o;t.scale(c,c),t.fillStyle=n,t.fillRect(0,0,N,N),t.fillStyle=i,ed?t.fill(new Path2D(el(s,v))):C.forEach(function(e,s){e.forEach(function(e,r){e&&t.fillRect(r+v,s+v,1,1)})}),E&&(t.globalAlpha=E.opacity),l&&t.drawImage(a,E.x+v,E.y+v,E.w,E.h)}}),c.default.useEffect(()=>{j(!1)},[g]);let A=et({height:r,width:r},p),B=null;return null!=g&&(B=c.default.createElement("img",{src:g,key:g,style:{display:"none"},onLoad:()=>{j(!0)},ref:b,crossOrigin:null==E?void 0:E.crossOrigin})),c.default.createElement(c.default.Fragment,null,c.default.createElement("canvas",et({style:A,height:r,width:r,ref:f,role:"img"},m)),B)}).displayName="QRCodeCanvas";var eh=c.default.forwardRef(function(e,t){let{value:s,size:r=128,level:a="L",bgColor:n=en,fgColor:i=ei,includeMargin:l=!1,minVersion:o=1,boostLevel:d,title:h,marginSize:u,imageSettings:x}=e,p=es(e,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","title","marginSize","imageSettings"]),{margin:m,cells:g,numCells:y,calculatedImageSettings:b}=ec({value:s,level:a,minVersion:o,boostLevel:d,includeMargin:l,marginSize:u,imageSettings:x,size:r}),f=g,w=null;null!=x&&null!=b&&(null!=b.excavation&&(f=eo(g,b.excavation)),w=c.default.createElement("image",{href:x.src,height:b.h,width:b.w,x:b.x+m,y:b.y+m,preserveAspectRatio:"none",opacity:b.opacity,crossOrigin:b.crossOrigin}));let j=el(f,m);return c.default.createElement("svg",et({height:r,width:r,viewBox:`0 0 ${y} ${y}`,ref:t,role:"img"},p),!!h&&c.default.createElement("title",null,h),c.default.createElement("path",{fill:n,d:`M0,0 h${y}v${y}H0z`,shapeRendering:"crispEdges"}),c.default.createElement("path",{fill:i,d:j,shapeRendering:"crispEdges"}),w)});function eu({walletResult:e,mnemonicPhrase:t,deriveBatch:s,deriveList:r,deriveShowIndex:a,deriveShowAddress:n,deriveShowPrivateKey:i,showAddressQr:l,showMnemonicReveal:c,showMnemonicQr:d,onToggleAddressQr:h,onToggleMnemonicReveal:u,onToggleMnemonicQr:p,onToggleDeriveIndex:m,onToggleDeriveAddress:g,onToggleDerivePrivateKey:y,onDerive:b}){let f=e?.address||"";return e&&f?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"web3-tools-section",children:[(0,o.jsxs)("button",{className:"web3-tools-toggle",onClick:h,children:[(0,o.jsx)(Y,{size:14}),l?"隐藏地址二维码":"显示地址二维码",l?(0,o.jsx)(G,{size:14}):(0,o.jsx)(V.ChevronDown,{size:14})]}),l&&(0,o.jsxs)("div",{className:"web3-mnemonic-reveal",children:[(0,o.jsxs)("div",{className:"web3-mnemonic-card",children:[(0,o.jsx)("p",{className:"web3-mnemonic-text",children:f}),(0,o.jsx)(k.CopyButton,{text:f})]}),(0,o.jsx)("div",{className:"qr-wrap",children:(0,o.jsx)(eh,{value:f,size:200})})]})]}),t&&(0,o.jsxs)("div",{className:"web3-tools-section",children:[(0,o.jsxs)("button",{className:"web3-tools-toggle",onClick:u,children:[(0,o.jsx)(x.KeyRound,{size:14}),c?"隐藏助记词":"显示助记词",c?(0,o.jsx)(G,{size:14}):(0,o.jsx)(V.ChevronDown,{size:14})]}),c&&(0,o.jsxs)("div",{className:"web3-mnemonic-reveal",children:[(0,o.jsxs)("div",{className:"web3-mnemonic-card",children:[(0,o.jsx)("p",{className:"web3-mnemonic-text",children:t}),(0,o.jsx)(k.CopyButton,{text:t})]}),(0,o.jsxs)("p",{className:"web3-tools-danger",children:[(0,o.jsx)(W.ShieldAlert,{size:14}),"任何拥有您助记词的人都可以窃取您账户中的任何资产,切勿泄露!!!"]}),(0,o.jsx)("button",{className:"web3-tools-toggle",onClick:p,children:d?"隐藏助记词二维码":"显示助记词二维码"}),d&&(0,o.jsx)("div",{className:"qr-wrap",children:(0,o.jsx)(eh,{value:t,size:260})})]})]}),t&&(0,o.jsxs)("div",{className:"web3-mnemonic-reveal",children:[(0,o.jsx)("div",{children:(0,o.jsxs)("button",{className:"btn btn-primary",onClick:b,children:["派生 ",s," 个地址"]})}),(0,o.jsxs)("p",{className:"web3-tools-danger",children:[(0,o.jsx)(W.ShieldAlert,{size:14}),"任何拥有您私钥的人都可以窃取您地址中的任何资产,切勿泄露!!!"]}),r.length>0&&(0,o.jsx)("div",{className:"web3-derive-table-wrap",children:(0,o.jsxs)("table",{className:"web3-derive-table",children:[(0,o.jsx)("thead",{children:(0,o.jsxs)("tr",{children:[(0,o.jsx)("th",{onClick:m,className:"web3-derive-th",children:"账户"}),(0,o.jsx)("th",{onClick:g,className:"web3-derive-th",children:"地址"}),(0,o.jsxs)("th",{onClick:y,className:"web3-derive-th danger",children:["私钥(点击",i?"隐藏":"显示",")"]})]})}),(0,o.jsx)("tbody",{children:r.map(e=>(0,o.jsxs)("tr",{children:[(0,o.jsx)("td",{children:a?e.index+1:""}),(0,o.jsx)("td",{children:n?e.address:""}),(0,o.jsx)("td",{className:"danger",children:i?e.privateKey:""})]},e.index))})]})})]})]}):(0,o.jsx)(K.EmptyState,{icon:(0,o.jsx)(w.Wallet,{size:36}),message:"请输入用户名和密码以使用钱包工具"})}eh.displayName="QRCodeSVG";var ex=e.i(82022);let ep=(0,b.default)("fingerprint-pattern",[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]]),em=(0,b.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),eg=(0,b.default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);var ey=e.i(64830);function eb({walletResult:e,keys:t,ipns:s,avatarSrc:r,showPrivateKey:a,onTogglePrivateKey:n}){var i;let l=e?.address||"";return e&&l?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"web3-identity-card",children:[(0,o.jsx)("img",{src:r,alt:"avatar",className:"web3-identity-avatar"}),(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"web3-identity-name",children:e.username||"未登录"}),(0,o.jsxs)("div",{className:"web3-identity-address",children:[(0,o.jsx)("code",{children:l.toLowerCase()}),(0,o.jsx)(k.CopyButton,{text:l.toLowerCase()}),(0,o.jsxs)("a",{href:`https://debank.com/profile/${l}`,target:"_blank",rel:"noopener noreferrer",className:"link",children:[(0,o.jsx)(ex.ExternalLink,{size:14}),"查看"]})]})]})]}),t&&(0,o.jsxs)("div",{className:"web3-key-grid",children:[(0,o.jsx)(ey.KeyCard,{title:"Ed25519 公钥",icon:(0,o.jsx)(ep,{size:18}),children:(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:t.ed_public_key}),(0,o.jsx)(k.CopyButton,{text:t.ed_public_key})]})}),(0,o.jsx)(ey.KeyCard,{title:"x25519 公钥",icon:(0,o.jsx)(x.KeyRound,{size:18}),children:(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:t.public_key}),(0,o.jsx)(k.CopyButton,{text:t.public_key})]})}),(0,o.jsx)(ey.KeyCard,{title:"x25519 & Ed25519 私钥",icon:(0,o.jsx)(eg,{size:18}),accent:!0,children:(0,o.jsxs)("div",{className:"mono-row danger",children:[(0,o.jsx)("code",{className:"mono",children:a?t.private_key:(i=t.private_key)?"•".repeat(Math.min(i.length,32)):"-"}),(0,o.jsx)("button",{className:"btn btn-icon",onClick:n,title:a?"隐藏私钥":"显示私钥",type:"button",children:a?(0,o.jsx)(M.Eye,{size:14}):(0,o.jsx)(P.EyeOff,{size:14})})]})}),(0,o.jsx)(ey.KeyCard,{title:"IPNS ID",icon:(0,o.jsx)(em,{size:18}),children:(0,o.jsxs)("div",{className:"mono-row",children:[(0,o.jsx)("code",{className:"mono",children:s}),(0,o.jsx)(k.CopyButton,{text:s})]})})]})]}):(0,o.jsx)(K.EmptyState,{icon:(0,o.jsx)(f,{size:36}),message:"请输入用户名和密码以查看身份信息"})}function ef({username:e,password:t,showPassword:s,generating:r,onUsernameChange:a,onPasswordChange:n,onTogglePassword:i,onGenerate:l}){return(0,o.jsxs)("div",{className:"input-panel",children:[(0,o.jsxs)("div",{className:"web3-tools-inputs",children:[(0,o.jsx)("input",{type:"text",placeholder:"用户名",value:e,onChange:e=>a(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsxs)("div",{className:"input-wrap",children:[(0,o.jsx)("input",{type:s?"text":"password",placeholder:"密码(可选)",value:t,onChange:e=>n(e.target.value),className:"input",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false"}),(0,o.jsx)("button",{className:"input-eye",onClick:i,type:"button",children:s?(0,o.jsx)(P.EyeOff,{size:16}):(0,o.jsx)(M.Eye,{size:16})})]})]}),(0,o.jsx)("button",{className:"btn btn-primary btn-full",onClick:l,disabled:!e.trim()||r,type:"button",children:r?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:"spinner"}),"生成中..."]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(w.Wallet,{size:16}),"生成并登录"]})})]})}let ew=e=>btoa(String.fromCharCode(...e)),ej=["wallet","pem","export","EA","user-export","user-import"];function ev(){let e=window.location.hash.replace("#","");return ej.includes(e)?e:"wallet"}e.s(["default",0,function(){let e=(0,v.useAppStore)(e=>e.isDarkMode),t=(0,v.useAppStore)(e=>e.setIsDarkMode),s=(0,v.useAppStore)(e=>e.addToast),r=(0,C.useUserStore)(e=>e.setUserIdentity),[a,n]=(0,c.useState)("wallet"),[i,l]=(0,c.useState)(""),[b,E]=(0,c.useState)(""),[A,M]=(0,c.useState)(!1),[P,k]=(0,c.useState)(null),[R,z]=(0,c.useState)(null),[K,D]=(0,c.useState)(""),[I,L]=(0,c.useState)(""),[_,F]=(0,c.useState)(""),[$,H]=(0,c.useState)(""),[V,G]=(0,c.useState)([]),[Y,W]=(0,c.useState)(0),[X,q]=(0,c.useState)(!0),[J,Z]=(0,c.useState)(!0),[ee,et]=(0,c.useState)(!1),[es,er]=(0,c.useState)(!1),[ea,en]=(0,c.useState)(!1),[ei,el]=(0,c.useState)(!1),[eo,ec]=(0,c.useState)(!1),[ed,eh]=(0,c.useState)(!1),[ex,ep]=(0,c.useState)(""),[em,eg]=(0,c.useState)(""),[ey,ej]=(0,c.useState)(!1),[eC,eN]=(0,c.useState)(!1),[eE,eA]=(0,c.useState)(null),[eB,eS]=(0,c.useState)(""),[eM,eP]=(0,c.useState)(""),[ek,eR]=(0,c.useState)(!1),[ez,eT]=(0,c.useState)(!1),[eK,eD]=(0,c.useState)(null),[eO,eI]=(0,c.useState)("你好,B。这是来自 A 的加密消息。"),[eL,eU]=(0,c.useState)(""),[e_,eF]=(0,c.useState)(""),[e$,eH]=(0,c.useState)(""),[eQ,eV]=(0,c.useState)("你好,A。这是来自 B 的加密消息。"),[eG,eY]=(0,c.useState)(""),[eW,eX]=(0,c.useState)(""),[eq,eJ]=(0,c.useState)(""),[eZ,e0]=(0,c.useState)(""),[e1,e2]=(0,c.useState)(""),[e3,e8]=(0,c.useState)(""),[e4,e6]=(0,c.useState)(""),[e5,e7]=(0,c.useState)(""),[e9,te]=(0,c.useState)(!1),[tt,ts]=(0,c.useState)(""),[tr,ta]=(0,c.useState)(""),[tn,ti]=(0,c.useState)(""),[tl,to]=(0,c.useState)(""),[tc,td]=(0,c.useState)(""),[th,tu]=(0,c.useState)(!1);(0,c.useEffect)(()=>{n(ev());let e=()=>n(ev());return window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]);let tx=(0,c.useCallback)(async()=>{var e,t,a;let n,l,o,c,d,h,u,x,p,m,g,y,f,w,j,v,C,E,A;if(!i.trim())return;eh(!0),await new Promise(e=>setTimeout(e,0));let B=(0,N.mostWallet)(i.trim(),b),M=`${B.username}#${B.address.slice(-4).toUpperCase()}`;k(B),r({...B,displayName:M}),s(`已登录 ${B.username}`,"success"),H((0,N.mostMnemonic)(B.danger));let P=(0,N.most25519)(B.danger);z(P),D((n=new Uint8Array([8,1,18,...(e=>{let t=[];for(;e>=128;)t.push(127&e|128),e>>=7;return t.push(e),t})((e=S(P.private_key,P.ed_public_key).publicKey).length)]),(l=new Uint8Array(n.length+e.length)).set(n,0),l.set(e,n.length),(c=new Uint8Array(2+(o=l).length))[0]=0,c[1]=36,c.set(o,2),d=new Uint8Array([1,114]),(h=new Uint8Array(d.length+c.length)).set(d,0),h.set(c,d.length),"k"+((e,t)=>{if(0===e.length)return"";let s=t.length,r=0;for(;r<e.length&&0===e[r];)r++;let a=[0];for(let t=r;t<e.length;t++){let r=e[t];for(let e=0;e<a.length;e++){let t=256*a[e]+r;a[e]=t%s,r=Math.floor(t/s)}for(;r>0;)a.push(r%s),r=Math.floor(r/s)}let n="";for(let e=0;e<r;e++)n+=t[0];for(let e=a.length-1;e>=0;e--)n+=t[a[e]];return n})(h,"0123456789abcdefghijklmnopqrstuvwxyz")));let R=S(P.private_key,P.ed_public_key);L((t=R.secretKey,u=new Uint8Array([48,5,6,3,43,101,112]),x=new Uint8Array([4,34,4,32,...t.slice(0,32)]),m=(p=new Uint8Array([2,1,0])).length+u.length+x.length,(g=new Uint8Array(2+m))[0]=48,g[1]=m,y=2,g.set(p,y),y+=p.length,g.set(u,y),y+=u.length,g.set(x,y),f=ew(g),`-----BEGIN PRIVATE KEY-----
|
|
2
|
+
${f.match(/.{1,64}/g)?.join("\n")}
|
|
3
|
+
-----END PRIVATE KEY-----`)),F((a=R.publicKey,w=new Uint8Array([48,5,6,3,43,101,112]),j=new Uint8Array([3,33,0,...a]),(C=new Uint8Array(2+(v=w.length+j.length)))[0]=48,C[1]=v,E=2,C.set(w,E),E+=w.length,C.set(j,E),A=ew(C),`-----BEGIN PUBLIC KEY-----
|
|
4
|
+
${A.match(/.{1,64}/g)?.join("\n")}
|
|
5
|
+
-----END PUBLIC KEY-----`)),G([]),W(0),er(!1),en(!1),el(!1),ec(!1),eh(!1)},[s,b,r,i]);function tp(e,t,r){let a=e.trim();if(!a)return;let n=(0,N.mostWallet)(a,t),i=(0,N.most25519)(n.danger);r({username:n.username,address:n.address,publicKey:i.public_key,privateKey:i.private_key}),eF(""),eH(""),eX(""),eJ(""),s("账号已生成","success")}function tm({senderAccount:e,recipientAccount:t,message:s,setCipherText:r,setDecryptedText:a,setError:n}){e&&t?s.trim()?(r((0,N.mostBoxEncrypt)(s,{senderPrivateKey:e.privateKey,recipientPublicKey:t.publicKey})),a(""),n("")):n("请输入要加密的消息"):n("请先生成 A 和 B 两个账号")}function tg({senderAccount:e,recipientAccount:t,cipherText:s,setDecryptedText:r,setError:a}){if(!e||!t)return void a("请先生成 A 和 B 两个账号");if(!s.trim())return void a("请先生成或粘贴密文");let n=(0,N.mostBoxDecrypt)(s,{senderPublicKey:e.publicKey,recipientPrivateKey:t.privateKey});if(!n){a("解密失败,请确认发送方公钥、接收方私钥和密文匹配"),r("");return}r(n),a("")}let ty=(0,B.generateAvatar)(P?.address||void 0),tb="wallet"===a?"Web3":"pem"===a?"PEM 导出":"EA"===a?"非对称加密":"user-export"===a?"用户数据导出":"user-import"===a?"用户数据导入":"Wallet 导出",tf=[{id:"wallet",icon:(0,o.jsx)(f,{size:16}),label:"Web3"},{id:"pem",icon:(0,o.jsx)(p.Lock,{size:16}),label:"PEM 导出"},{id:"export",icon:(0,o.jsx)(w.Wallet,{size:16}),label:"Wallet 导出"},{id:"EA",icon:(0,o.jsx)(x.KeyRound,{size:16}),label:"非对称加密"},{id:"user-export",icon:(0,o.jsx)(u.Database,{size:16}),label:"数据导出"},{id:"user-import",icon:(0,o.jsx)(y.Upload,{size:16}),label:"数据导入"}],tw="EA"!==a&&!a.startsWith("user-");return(0,o.jsx)(j.default,{sidebar:({closeSidebar:e})=>(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"sidebar-header sidebar-header-link",onClick:()=>window.location.href="/",children:[(0,o.jsx)(h.ArrowLeft,{size:18}),(0,o.jsx)("h1",{children:"MOST PEOPLE"})]}),(0,o.jsx)("nav",{className:"sidebar-nav",children:tf.map(t=>(0,o.jsxs)("button",{onClick:()=>{var s;n(s=t.id),window.location.hash=s,e()},className:`sidebar-nav-btn ${a===t.id?"active":""}`,children:[t.icon,(0,o.jsx)("span",{children:t.label})]},t.id))})]}),headerTitle:(0,o.jsx)("h2",{className:"header-title",children:tb}),headerRight:(0,o.jsx)("button",{className:"btn btn-icon",onClick:()=>t(!e),title:"切换主题",children:e?(0,o.jsx)(g.Sun,{size:16}):(0,o.jsx)(m.Moon,{size:16})}),children:(0,o.jsx)("div",{className:"web3-page",children:(0,o.jsxs)("div",{className:`web3-container ${"EA"===a?"wide":""}`,children:[tw&&(0,o.jsx)(ef,{username:i,password:b,showPassword:A,generating:ed,onUsernameChange:l,onPasswordChange:E,onTogglePassword:()=>M(!A),onGenerate:tx}),"wallet"===a&&(0,o.jsx)(eb,{walletResult:P,keys:R,ipns:K,avatarSrc:ty,showPrivateKey:eo,onTogglePrivateKey:()=>ec(!eo)}),"pem"===a&&(0,o.jsx)(O,{walletResult:P,publicPem:_,privatePem:I}),"export"===a&&(0,o.jsx)(eu,{walletResult:P,mnemonicPhrase:$,deriveBatch:10,deriveList:V,deriveShowIndex:X,deriveShowAddress:J,deriveShowPrivateKey:ee,showAddressQr:es,showMnemonicReveal:ea,showMnemonicQr:ei,onToggleAddressQr:()=>er(!es),onToggleMnemonicReveal:()=>en(!ea),onToggleMnemonicQr:()=>el(!ei),onToggleDeriveIndex:()=>q(!X),onToggleDeriveAddress:()=>Z(!J),onToggleDerivePrivateKey:()=>et(!ee),onDerive:()=>{if(!$)return;let e=[];for(let t=Y;t<Y+10;t++){let s=`m/44'/60'/0'/0/${t}`,r=d.HDNodeWallet.fromPhrase($,void 0,s);e.push({index:t,address:r.address,privateKey:r.privateKey})}G(t=>[...t,...e]),W(e=>e+10)}}),"EA"===a&&(0,o.jsx)(T,{boxAUsername:ex,boxAPassword:em,boxAShowPassword:ey,boxAShowPrivateKey:eC,boxAAccount:eE,boxBUsername:eB,boxBPassword:eM,boxBShowPassword:ek,boxBShowPrivateKey:ez,boxBAccount:eK,boxABMessage:eO,boxABCipherText:eL,boxABDecryptedText:e_,boxABError:e$,boxBAMessage:eQ,boxBACipherText:eG,boxBADecryptedText:eW,boxBAError:eq,boxEncryptSenderPrivateKey:tt,boxEncryptRecipientPublicKey:tr,boxEncryptMessage:tn,boxEncryptCipherText:tl,boxEncryptError:tc,boxEncryptShowPrivateKey:th,boxDecryptSenderPublicKey:eZ,boxDecryptRecipientPrivateKey:e1,boxDecryptCipherText:e3,boxDecryptResult:e4,boxDecryptError:e5,boxDecryptShowPrivateKey:e9,onBoxAUsernameChange:ep,onBoxAPasswordChange:eg,onBoxAShowPasswordToggle:()=>ej(!ey),onBoxAShowPrivateKeyToggle:()=>eN(!eC),onGenerateBoxA:()=>tp(ex,em,eA),onBoxBUsernameChange:eS,onBoxBPasswordChange:eP,onBoxBShowPasswordToggle:()=>eR(!ek),onBoxBShowPrivateKeyToggle:()=>eT(!ez),onGenerateBoxB:()=>tp(eB,eM,eD),onBoxABMessageChange:eI,onBoxABCipherTextChange:eU,onEncryptBoxAB:()=>tm({senderAccount:eE,recipientAccount:eK,message:eO,setCipherText:eU,setDecryptedText:eF,setError:eH}),onDecryptBoxAB:()=>tg({senderAccount:eE,recipientAccount:eK,cipherText:eL,setDecryptedText:eF,setError:eH}),onBoxBAMessageChange:eV,onBoxBACipherTextChange:eY,onEncryptBoxBA:()=>tm({senderAccount:eK,recipientAccount:eE,message:eQ,setCipherText:eY,setDecryptedText:eX,setError:eJ}),onDecryptBoxBA:()=>tg({senderAccount:eK,recipientAccount:eE,cipherText:eG,setDecryptedText:eX,setError:eJ}),onBoxEncryptSenderPrivateKeyChange:ts,onBoxEncryptRecipientPublicKeyChange:ta,onBoxEncryptMessageChange:ti,onBoxEncryptShowPrivateKeyToggle:()=>tu(!th),onEncryptOnly:function(){tt.trim()?tr.trim()?tn.trim()?(to((0,N.mostBoxEncrypt)(tn,{senderPrivateKey:tt.trim(),recipientPublicKey:tr.trim()})),td("")):td("请输入要加密的消息"):td("请输入接收方公钥"):td("请输入发送方私钥")},onBoxDecryptSenderPublicKeyChange:e0,onBoxDecryptRecipientPrivateKeyChange:e2,onBoxDecryptCipherTextChange:e8,onBoxDecryptShowPrivateKeyToggle:()=>te(!e9),onDecryptOnly:function(){if(!eZ.trim())return void e7("请输入发送方公钥");if(!e1.trim())return void e7("请输入接收方私钥");if(!e3.trim())return void e7("请粘贴密文");let e=(0,N.mostBoxDecrypt)(e3,{senderPublicKey:eZ.trim(),recipientPrivateKey:e1.trim()});if(!e){e7("解密失败,请确认发送方公钥、接收方私钥和密文匹配"),e6("");return}e6(e),e7("")}}),"user-export"===a&&(0,o.jsx)(U,{}),"user-import"===a&&(0,o.jsx)(Q,{})]})})})}],17173)}]);
|