most-box 0.2.1 → 0.2.2
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 +66 -6
- package/electron/deepLink.js +29 -0
- package/electron/main.js +87 -20
- package/out/admin/index.html +0 -0
- package/out/app/index.html +0 -0
- package/out/assets/AppShell-BOtfY12t.js +1 -0
- package/out/assets/FilePreviewOverlay-C5qK9HAE.js +1 -0
- package/out/assets/LanguageToggle-Di5b88mK.js +1 -0
- package/out/assets/MarketingHeader-BOytKcCc.js +1 -0
- package/out/assets/MarketingLayout-B8m1Q7Pa.js +1 -0
- package/out/assets/{MarketingThemeToggle-qlwCZU1o.js → MarketingThemeToggle-C6fggkl7.js} +1 -1
- package/out/assets/{MilkdownEditor-_TGlDyA_.js → MilkdownEditor-Cfze75zl.js} +1 -1
- package/out/assets/OpenSidebarButton-DDuALgJ2.js +1 -0
- package/out/assets/SidebarAccount-bo1ypzrJ.js +1 -0
- package/out/assets/arrow-right-RldN7Rwi.js +1 -0
- package/out/assets/circle-alert-BQoSDxUe.js +1 -0
- package/out/assets/cloud-DHoTMeZY.js +1 -0
- package/out/assets/copy-BtJHJnqH.js +1 -0
- package/out/assets/download-Bg-OdoxM.js +1 -0
- package/out/assets/downloadValidation-CUvbvj9f.js +1 -0
- package/out/assets/external-link-m8ZIQe4p.js +1 -0
- package/out/assets/file-text-DG1orIkZ.js +1 -0
- package/out/assets/game-s6irY8hS.js +1 -0
- package/out/assets/hard-drive-BB-sllXA.js +1 -0
- package/out/assets/index-3OD3Chi9.css +1 -0
- package/out/assets/index-BSOvFG3o.css +1 -0
- package/out/assets/index-C0xqKeu-.css +1 -0
- package/out/assets/index-CrAXrmfP.js +31 -0
- package/out/assets/index.lazy-0Njp0U6I.js +1 -0
- package/out/assets/index.lazy-BTndBeBF.js +1 -0
- package/out/assets/index.lazy-Bq39jYTl.js +1 -0
- package/out/assets/index.lazy-Bu93oGzJ.js +2 -0
- package/out/assets/index.lazy-BvdBwgHx.js +1 -0
- package/out/assets/index.lazy-CIx8ist6.js +3 -0
- package/out/assets/index.lazy-DK7R297q.js +1 -0
- package/out/assets/index.lazy-DVOcrcEB.js +2 -0
- package/out/assets/index.lazy-DejOniAm.js +1 -0
- package/out/assets/index.lazy-DfsgyiMN.js +1 -0
- package/out/assets/index.lazy-DpNIiSXF.js +1 -0
- package/out/assets/index.lazy-Vnvz-t7T.js +1 -0
- package/out/assets/index.lazy-v7nBJ-sF.js +1 -0
- package/out/assets/key-round-DIQ3Xt5F.js +1 -0
- package/out/assets/lock-tf1t2yuy.js +1 -0
- package/out/assets/message-square-DaQH7q-P.js +1 -0
- package/out/assets/mp-DvFTsIL9.js +1 -0
- package/out/assets/music-DaFvU2DL.js +1 -0
- package/out/assets/notebook-pen-CqEFOHKx.js +1 -0
- package/out/assets/play-B7q6F75-.js +1 -0
- package/out/assets/plus-H2i2mspM.js +1 -0
- package/out/assets/refresh-cw-roxAhABl.js +1 -0
- package/out/assets/save-DR0O9ReR.js +1 -0
- package/out/assets/search-ncblG-zw.js +1 -0
- package/out/assets/send-m1XCcuPn.js +1 -0
- package/out/assets/shield-check-BwcvTU4U.js +1 -0
- package/out/assets/trash-2-CNpsqYc1.js +1 -0
- package/out/assets/triangle-alert-DP9EP7IM.js +1 -0
- package/out/assets/upload-V--8p13l.js +1 -0
- package/out/assets/useChannelMessages-46C52EyL.js +3 -0
- package/out/assets/useGameRoom-BtxPpfck.js +1 -0
- package/out/assets/useNavigate-DWlBD_-b.js +1 -0
- package/out/assets/userStore-C4vdYsQp.js +4 -0
- package/out/assets/wallet-CozFU6yK.js +1 -0
- package/out/assets/wifi-DIR3g_8A.js +1 -0
- package/out/chat/index.html +0 -0
- package/out/chat/join/index.html +0 -0
- package/out/download/index.html +2 -2
- package/out/game/gandengyan/index.html +0 -0
- package/out/game/index.html +0 -0
- package/out/game/zhajinhua/index.html +0 -0
- package/out/index.html +2 -2
- package/out/note/index.html +0 -0
- package/out/ping/index.html +2 -2
- package/out/profile/index.html +0 -0
- package/out/web3/index.html +0 -0
- package/package.json +9 -1
- package/server/index.js +36 -7
- package/server/src/core/channelIdentity.js +6 -0
- package/server/src/core/gameRoom.js +15 -5
- package/server/src/core/mostLink.js +8 -7
- package/server/src/core/zhajinhua.js +6 -0
- package/server/src/games/gandengyan.js +10 -0
- package/server/src/http/access.js +63 -12
- package/server/src/http/app.js +34 -838
- package/server/src/http/nodeStatus.js +101 -9
- package/server/src/http/routePolicy.js +2 -0
- package/server/src/http/routes/channelRoutes.js +163 -0
- package/server/src/http/routes/fileRoutes.js +345 -0
- package/server/src/http/routes/nodeRoutes.js +323 -0
- package/server/src/http/routes/seedRoutes.js +58 -0
- package/server/src/index.js +197 -16
- package/server/src/node/config.js +2 -6
- package/server/src/utils/avatar.js +30 -15
- package/server/src/utils/downloadMessages.js +0 -2
- package/out/assets/AppShell-OiOEqXPr.js +0 -1
- package/out/assets/ChatUi-Cif5LRF3.js +0 -1
- package/out/assets/CopyButton-Dm7krgbq.js +0 -1
- package/out/assets/LanguageToggle-B4ZNuBCV.js +0 -1
- package/out/assets/MarketingHeader-yIZuQP7m.js +0 -1
- package/out/assets/MarketingLayout-DVH0Nx7S.js +0 -1
- package/out/assets/MoveModal-BVr4Q7-b.js +0 -1
- package/out/assets/Nav-5xeettNJ.js +0 -1
- package/out/assets/NoteSidebar-DpniUKmy.js +0 -1
- package/out/assets/OpenSidebarButton-BfgG2HIT.js +0 -1
- package/out/assets/PemBlock-CxwIepth.js +0 -1
- package/out/assets/SidebarAccount-Zg5DZblE.js +0 -1
- package/out/assets/arrow-right-CL9YSDVS.js +0 -1
- package/out/assets/channelApi-DNdJfsJ-.js +0 -1
- package/out/assets/chevron-down-CnLh_-aO.js +0 -1
- package/out/assets/circle-alert-oiiRDvhx.js +0 -1
- package/out/assets/cloud-BEe2N89j.js +0 -1
- package/out/assets/code-9LB8QqxL.js +0 -1
- package/out/assets/copy-giX4rmFJ.js +0 -1
- package/out/assets/download-D0oMEYQZ.js +0 -1
- package/out/assets/downloadValidation-Bk1VsBBo.js +0 -1
- package/out/assets/external-link-Cm2WCUxv.js +0 -1
- package/out/assets/filePreview-BZ50vZZf.js +0 -1
- package/out/assets/game-Bvz4dspe.js +0 -1
- package/out/assets/hard-drive-B3CQbcp2.js +0 -1
- package/out/assets/index-8eWJAjpY.css +0 -1
- package/out/assets/index-BZc4blbW.css +0 -1
- package/out/assets/index-BkZvz4WA.css +0 -1
- package/out/assets/index-WCK14Vja.js +0 -34
- package/out/assets/index.lazy-5Q6GuMNT.js +0 -1
- package/out/assets/index.lazy-5jq6EFXa.js +0 -3
- package/out/assets/index.lazy-7n1Q-NrA.js +0 -3
- package/out/assets/index.lazy-BFnOyQFj.js +0 -1
- package/out/assets/index.lazy-B_oPp6qK.js +0 -1
- package/out/assets/index.lazy-BvY50KVz.js +0 -1
- package/out/assets/index.lazy-C0Kn_amZ.js +0 -1
- package/out/assets/index.lazy-C3cek3Gn.js +0 -1
- package/out/assets/index.lazy-CLpPkdy1.js +0 -1
- package/out/assets/index.lazy-Cpr1kApf.js +0 -2
- package/out/assets/index.lazy-CuwLZiUK.js +0 -1
- package/out/assets/index.lazy-DDc3Ylgf.js +0 -2
- package/out/assets/index.lazy-Dg3aqOss.js +0 -1
- package/out/assets/key-round-CzuljhND.js +0 -1
- package/out/assets/lock-D2NhNoJW.js +0 -1
- package/out/assets/message-square-DwBq_Go5.js +0 -1
- package/out/assets/mp-Bln2MB9G.js +0 -1
- package/out/assets/music-CB73K5Gz.js +0 -1
- package/out/assets/notebook-pen-Up7r5zoI.js +0 -1
- package/out/assets/play-OszVgROb.js +0 -1
- package/out/assets/plus-BbxQG_Ai.js +0 -1
- package/out/assets/save-CiqyiifY.js +0 -1
- package/out/assets/search-gqAPOsgS.js +0 -1
- package/out/assets/send-vwCWsZGP.js +0 -1
- package/out/assets/shield-check-CxWxsNLc.js +0 -1
- package/out/assets/trash-2-DNGr8IgF.js +0 -1
- package/out/assets/triangle-alert-B_1BlX1b.js +0 -1
- package/out/assets/upload-Dxl7GUzb.js +0 -1
- package/out/assets/useChannelMessages-7bYKXU_R.js +0 -3
- package/out/assets/useGameRoom-DqA1mkfk.js +0 -1
- package/out/assets/wallet-DlkawdPJ.js +0 -1
- package/out/assets/wifi-sBOKcPFM.js +0 -1
- package/out/demo/index.html +0 -0
- /package/out/avatars/default/{ocean.svg → dolphin.svg} +0 -0
- /package/out/avatars/default/{violet.svg → owl.svg} +0 -0
- /package/out/avatars/default/{mint.svg → panda.svg} +0 -0
- /package/out/avatars/default/{dusk.svg → snow-mountain.svg} +0 -0
- /package/out/avatars/default/{ember.svg → tiger.svg} +0 -0
- /package/out/avatars/default/{sage.svg → turtle.svg} +0 -0
- /package/public/avatars/default/{ocean.svg → dolphin.svg} +0 -0
- /package/public/avatars/default/{violet.svg → owl.svg} +0 -0
- /package/public/avatars/default/{mint.svg → panda.svg} +0 -0
- /package/public/avatars/default/{dusk.svg → snow-mountain.svg} +0 -0
- /package/public/avatars/default/{ember.svg → tiger.svg} +0 -0
- /package/public/avatars/default/{sage.svg → turtle.svg} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{n as r,r as i}from"./LanguageToggle-B4ZNuBCV.js";import{t as a}from"./plus-BbxQG_Ai.js";import{n as ee,r as o,t as te}from"./filePreview-BZ50vZZf.js";import{r as ne,t as re}from"./AppShell-OiOEqXPr.js";import{t as s}from"./message-square-DwBq_Go5.js";import{t as ie}from"./OpenSidebarButton-BfgG2HIT.js";import{a as ae,c as oe,i as se,n as ce,o as le,r as ue,s as de,t as fe}from"./ChatUi-Cif5LRF3.js";import{t as pe}from"./search-gqAPOsgS.js";import{J as c,U as me,Z as he,_ as ge,a as _e,b as ve,f as ye,g as l,l as be,m as xe,q as Se,tt as Ce,u as we}from"./index-WCK14Vja.js";import{t as Te}from"./SidebarAccount-Zg5DZblE.js";import{i as Ee,n as u,r as De,t as Oe}from"./downloadValidation-Bk1VsBBo.js";import{t as ke}from"./LogoIcon-B2fFe0l1.js";import{t as d}from"./channelApi-DNdJfsJ-.js";import{t as Ae}from"./useChannelMessages-7bYKXU_R.js";var je=c(`calendar`,[[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`,key:`1hopcy`}],[`path`,{d:`M3 10h18`,key:`8toen8`}]]),Me=c(`hash`,[[`line`,{x1:`4`,x2:`20`,y1:`9`,y2:`9`,key:`4lhtct`}],[`line`,{x1:`4`,x2:`20`,y1:`15`,y2:`15`,key:`vyu0kd`}],[`line`,{x1:`10`,x2:`8`,y1:`3`,y2:`21`,key:`1ggp8o`}],[`line`,{x1:`16`,x2:`14`,y1:`3`,y2:`21`,key:`weycgp`}]]),Ne=c(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),f=t(e(),1),p=`mostbox.chat.lastReadAt`;function m(e){return Date.parse(e?.lastMessageAt||``)||Date.parse(e?.createdAt||``)||0}function Pe(e){let t=String(e||``).trim().toLowerCase();return t?`${p}:${t}`:``}function h(e,t=Date.now()){let n=Number(e);return Math.max(0,Math.floor(Number.isFinite(n)&&n>0?n:t))}function Fe(e,t=g()){if(!e||!t)return{};try{let n=t.getItem(e);if(!n)return{};let r=JSON.parse(n);return!r||typeof r!=`object`?{}:Object.entries(r).reduce((e,[t,n])=>{let r=Number(n);return t&&Number.isFinite(r)&&r>=0&&(e[t]=r),e},{})}catch{return{}}}function Ie(e,t,n=g()){if(!(!e||!n))try{n.setItem(e,JSON.stringify(t))}catch{}}function Le(e,t,n=Date.now(),r=Date.now()){if(!t)return{changed:!1,value:e};let i=h(n,r);return(e[t]||0)>=i?{changed:!1,value:e}:{changed:!0,value:{...e,[t]:i}}}function Re(e,t,n=Date.now()){let r=!1,i={...e};for(let e of t){let t=e?.channelKey||e?.name;!t||i[t]!==void 0||(i[t]=h(m(e),n),r=!0)}return{changed:r,value:r?i:e}}function ze(e,{channelName:t,messageTime:n,activeChannelName:r=``,messageAuthor:i=``,userAddress:a=``,now:ee=Date.now()}){if(!t)return{changed:!1,notify:!1,value:e};let o=h(n,ee),te=t===r,ne=String(i||``).toLowerCase()===String(a||``).toLowerCase();if(te||ne)return{...Le(e,t,o,ee),notify:!1};let re=e[t]||0;if(re<o)return{changed:!1,notify:!0,value:e};let s=Math.max(0,o-1);return re===s?{changed:!1,notify:!0,value:e}:{changed:!0,notify:!0,value:{...e,[t]:s}}}function Be(e,t){let n=e?.channelKey||e?.name;return m(e)>(t[n]||0)}function g(){if(!(typeof window>`u`))return window.localStorage}var _=n(),Ve=3,He=30,Ue=/^[a-zA-Z0-9_-]+$/,We=1e4,Ge=12e3,Ke=1200;function v(e){return e?.channelKey||e?.name||``}function y(e){return e?.channelId||e?.name||``}function b(e){return e?.remark||y(e)}var qe=`chat-file`;function Je(e,t){return e.type.startsWith(`image/`)?`image`:e.type.startsWith(`video/`)?`video`:e.type.startsWith(`audio/`)?`audio`:e.type.startsWith(`text/`)?`text`:te(t)}function Ye(e){return e?`${e.slice(0,6)}...${e.slice(-4)}`:`Unknown`}function Xe(e){return/#[a-fA-F0-9]{4}$/.test(String(e||``).trim())}function Ze(){if(typeof window>`u`)return;let e=window;return e.AudioContext||e.webkitAudioContext}function x(){let e=l(e=>e.isDarkMode),t=l(e=>e.setIsDarkMode),n=l(e=>e.hasBackend),c=l(e=>e.addToast),Ce=l(e=>e.openConnectModal),p=xe(e=>e.identity),h=xe(e=>e.openLoginModal),[g,x]=(0,f.useState)([]),[S,C]=(0,f.useState)(null),[w,T]=(0,f.useState)(``),[Qe,$e]=(0,f.useState)(``),[et,tt]=(0,f.useState)(``),[nt,E]=ne(!1),[rt,it]=(0,f.useState)(``),[at,ot]=(0,f.useState)(!1),[st,ct]=(0,f.useState)(!1),[lt,D]=ne(!1),[O,k]=(0,f.useState)(null),[A,j]=(0,f.useState)(null),[ut,M]=(0,f.useState)(!1),[dt,ft]=(0,f.useState)(``),[pt,mt]=(0,f.useState)(!1),[ht,N]=(0,f.useState)(null),[gt,_t]=(0,f.useState)(!1),[P,F]=(0,f.useState)({}),[I,L]=(0,f.useState)(null),[vt,R]=(0,f.useState)([]),[yt,bt]=(0,f.useState)(!1),[xt,St]=(0,f.useState)(!1),[Ct,wt]=(0,f.useState)(!1),[Tt,z]=(0,f.useState)({}),B=p?.identity===`user`,Et=B&&!Ct?p.logo:``,Dt=(0,f.useRef)(null),Ot=(0,f.useRef)(null),kt=(0,f.useRef)(``),V=(0,f.useRef)(null),H=(0,f.useRef)(!1),At=(0,f.useRef)(0),U=(0,f.useRef)(new Map),W=(0,f.useRef)(new Set),G=n===!0,{t:K,compareStrings:jt,formatDate:Mt,formatTime:Nt}=he(),q=(0,f.useCallback)(async(e,t)=>{c(await ve(e,t),`error`)},[c]),J=(0,f.useMemo)(()=>Pe(p?.address),[p?.address]),Pt=(0,f.useCallback)((e,t=Date.now())=>{e&&z(n=>{let r=Le(n,e,t);return r.changed?(Ie(J,r.value),r.value):n})},[J]),Y=(0,f.useCallback)(()=>{if(H.current||typeof window>`u`)return;let e=Ze();if(e)try{let t=V.current||new e;V.current=t,t.state===`suspended`&&t.resume().catch(()=>{}),H.current=!0}catch{}},[]),Ft=(0,f.useCallback)(()=>{if(!H.current)return;let e=Date.now();if(e-At.current<Ke)return;At.current=e;let t=Ze();if(t)try{let e=V.current||new t;if(V.current=e,e.state===`suspended`){e.resume().catch(()=>{});return}let n=e.createGain();n.gain.setValueAtTime(1e-4,e.currentTime),n.gain.exponentialRampToValueAtTime(.08,e.currentTime+.015),n.gain.exponentialRampToValueAtTime(1e-4,e.currentTime+.18),n.connect(e.destination),[740,980].forEach((t,r)=>{let i=e.createOscillator();i.type=`sine`,i.frequency.setValueAtTime(t,e.currentTime),i.connect(n),i.start(e.currentTime+r*.035),i.stop(e.currentTime+.16+r*.035)})}catch{}},[]),It=(0,f.useCallback)(()=>({displayName:p?.displayName||p?.username||``,avatar:p?.avatar}),[p?.avatar,p?.displayName,p?.username]),X=(0,f.useCallback)(async(e=v(S))=>{if(!e||!G||!p){R([]);return}bt(!0);try{R(await d.getChannelMembers(e))}catch(e){R([]),await q(e,K(`chat.error.members`))}finally{bt(!1)}},[S,G,q,K,p]);function Lt(e,t){switch(e){case`channel:message`:{let e=t?.channelKey||t?.channel,n=t?.message,r=Number(n?.timestamp)||Date.now();if(e){x(t=>t.map(t=>v(t)===e?{...t,lastMessageAt:new Date(r).toISOString()}:t));let t=e===kt.current;z(i=>{let a=ze(i,{channelName:e,messageTime:r,activeChannelName:t?e:``,messageAuthor:n?.author,userAddress:p?.address});return a.changed&&Ie(J,a.value),a.notify&&Ft(),a.changed?a.value:i})}break}case`channel:peer:online`:case`channel:peer:offline`:S&&d.getChannelPeers(v(S)).catch(e=>{console.warn(`[Chat] Failed to fetch peers on event:`,e.message)});break;case`channel:joined`:case`channel:left`:$(),X();break;case`user:metadata:updated`:t?.scope===`channels`&&$();break;case`download:success`:{let e=U.current.get(t.taskId);e&&(U.current.delete(t.taskId),W.current.delete(e.cid),F(t=>({...t,[e.cid]:{status:`available`}})),c(K(`chat.attachment.downloadCompleted`,{fileName:t.fileName||oe(e.fileName)}),`success`),Wt(e,t.fileName||e.fileName));break}case`download:error`:case`download:cancelled`:{let n=U.current.get(t.taskId);n&&(U.current.delete(t.taskId),W.current.delete(n.cid),F(r=>({...r,[n.cid]:{status:`error`,message:e===`download:cancelled`?K(`chat.attachment.downloadCancelled`):t.error||K(`chat.attachment.downloadFailed`)}})),c(e===`download:cancelled`?K(`chat.attachment.downloadCancelled`):t.error||K(`chat.attachment.downloadFailed`),`error`));break}}}let Rt=(0,f.useMemo)(()=>g.map(e=>v(e)),[g]),{clearMessages:zt,messages:Bt,sendMessage:Vt,syncMessages:Ht}=Ae({isReady:G,enabled:!!p,channelName:v(S),extraSubscribedChannelNames:Rt,peerId:rt,waitForPeerId:!0,onSyncError:e=>q(e,K(`chat.error.messages`)),onSocketEvent:Lt,onReconnect:$});function Z(){return G?!0:(Ce(),!1)}function Q(){return p?!0:(h(),!1)}(0,f.useEffect)(()=>{let e=()=>{T(new URLSearchParams(window.location.search).get(`channel`)||``)};return e(),window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[]),(0,f.useEffect)(()=>{p&&T(new URLSearchParams(window.location.search).get(`channel`)||``)},[p?.address]),(0,f.useEffect)(()=>{wt(!1)},[p?.logo]),(0,f.useEffect)(()=>{kt.current=v(S)},[S]),(0,f.useEffect)(()=>{z(Fe(J))},[J]),(0,f.useEffect)(()=>{!J||g.length===0||z(e=>{let t=Re(e,g);return t.changed&&Ie(J,t.value),t.changed?t.value:e})},[J,g]),(0,f.useEffect)(()=>(window.addEventListener(`pointerdown`,Y,{passive:!0}),window.addEventListener(`keydown`,Y),()=>{window.removeEventListener(`pointerdown`,Y),window.removeEventListener(`keydown`,Y)}),[Y]),(0,f.useEffect)(()=>()=>{V.current?.close().catch(()=>{}),V.current=null,H.current=!1},[]),(0,f.useEffect)(()=>{Dt.current?.scrollIntoView({behavior:`smooth`})},[Bt]),(0,f.useEffect)(()=>{if(!G){it(``);return}ge.get(`/api/node-id`).json().then(e=>it(e.id)).catch(e=>{console.warn(`[Chat] Failed to fetch node ID:`,e.message),q(e,K(`chat.error.nodeId`))})},[G,q,K]),(0,f.useEffect)(()=>{G&&p&&$()},[n,G,p?.address]),(0,f.useEffect)(()=>{if(S&&G){let e=v(S);Ht(e,{replace:!0}),d.getChannelPeers(e).catch(()=>{}),X(e)}},[S,n,G,X,Ht]),(0,f.useEffect)(()=>{!ut||!S||X(v(S))},[S,X,ut]),(0,f.useEffect)(()=>{if(w&&g.length>0){let e=g.find(e=>v(e)===w)||g.find(e=>y(e)===w);e&&(!S||v(S)!==v(e))?Jt(e):e&&S&&v(S)===v(e)&&(S.createdAt!==e.createdAt||S.coreKey!==e.coreKey||S.lastMessageAt!==e.lastMessageAt||S.pinned!==e.pinned||S.remark!==e.remark||S.type!==e.type)&&C(e)}},[g,S,w]),(0,f.useEffect)(()=>{p||(x([]),C(null),T(``),j(null),zt(),tt(``),it(``),M(!1),N(null),R([]),F({}),z({}),W.current.clear(),U.current.clear())},[zt,p?.address]);function Ut(e){return e.length<Ve?K(`chat.validation.nameMin`,{count:Ve}):e.length>He?K(`chat.validation.nameMax`,{count:He}):e.includes(`.`)?K(`chat.validation.dotReserved`):Ue.test(e)?``:K(`chat.validation.allowedChars`)}async function $(){if(G)try{x(await d.getChannels({excludeType:`game`}))}catch(e){x([]),await q(e,K(`chat.error.channelList`))}}function Wt(e,t=e.fileName){let n=te(t);N({cid:e.cid,fileName:t,subtype:n===`file`?e.kind:n})}async function Gt(e){let t=Oe(e.link,K);if(t)return F(n=>({...n,[e.cid]:{status:`error`,message:t}})),!1;try{F(t=>({...t,[e.cid]:{status:`checking`}}));let t=await u.checkDownload(e.link,{timeout:We,requestTimeout:Ge});return F(n=>({...n,[e.cid]:{status:`available`,message:t.alreadyExists?K(`chat.attachment.localAvailable`):K(`chat.attachment.previewAvailable`)}})),!0}catch(t){let n=await De(t);return F(t=>({...t,[e.cid]:{status:`error`,message:n}})),!1}}async function Kt(e){L(null),await Gt(e)&&await qt(e)}async function qt(e){if(!W.current.has(e.cid)){W.current.add(e.cid),F(t=>({...t,[e.cid]:{status:`available`}}));try{let t=await u.downloadFile(e.link);if(t.alreadyExists||t.fileName){W.current.delete(e.cid),F(t=>({...t,[e.cid]:{status:`available`}})),Wt({...e,fileName:t.fileName||e.fileName},t.fileName||e.fileName);return}t.taskId&&(U.current.set(t.taskId,e),c(K(`chat.attachment.downloadStarted`),`success`))}catch(t){let n=await De(t);W.current.delete(e.cid),F(t=>({...t,[e.cid]:{status:`error`,message:n}}))}}}async function Jt(e){if(!Q()||!Z())return;let t=v(e);Pt(t,Math.max(m(e),Date.now())),C(e),T(t),window.history.pushState({},``,`?channel=${encodeURIComponent(t)}`)}async function Yt(e,t){if(t&&t.stopPropagation(),Q()&&Z()&&!st){ct(!0);try{if(await d.leaveChannel(e),v(S)===e){C(null),T(``),zt();let e=new URL(window.location.href);e.searchParams.delete(`channel`),window.history.pushState({},``,e.pathname)}$(),D.close(),k(null)}catch(e){await q(e,K(`chat.error.leave`))}finally{ct(!1)}}}async function Xt(e){if(!Q()||!Z())return;let t=!e.pinned,n=v(e);try{let e=await d.setChannelPinned(n,t);x(t=>t.map(t=>v(t)===n?{...t,pinned:e.pinned}:t)),C(t=>t&&v(t)===n?{...t,pinned:e.pinned}:t)}catch(e){await q(e,K(t?`chat.error.pin`:`chat.error.unpin`))}}async function Zt(e){let t=e.trim();if(!t||at)return;let n=Ut(t);if(n){c(n,`error`);return}if(Q()&&Z()){ot(!0);try{let e=await d.createChannel(t,`public`,It()),n=e.channelKey||e.key||e.name||t,r=g.find(e=>v(e)===n),i={...r,name:e.name||t,channelId:e.channelId||e.name||t,channelKey:e.channelKey||e.key||r?.channelKey,type:e.type||r?.type||`public`,createdAt:e.createdAt||r?.createdAt,coreKey:e.coreKey||e.key||r?.coreKey,localWriterCoreKey:e.localWriterCoreKey||r?.localWriterCoreKey,writerCoreKeys:e.writerCoreKeys||r?.writerCoreKeys,remark:e.remark||r?.remark},a=v(i);x(e=>e.some(e=>v(e)===a)?e.map(e=>v(e)===a?{...e,...i}:e):[...e,i]),E.close(),await Jt(i),X(a),$()}catch(e){await q(e,K(`chat.error.join`))}finally{ot(!1)}}}async function Qt(e,t){if(!e.trim()||!S||!Q()||!Z())return!1;let n=e.trim(),r=v(S);try{let e=await Vt({channelName:r,content:n,author:p.address,authorName:p.displayName||p.username,avatar:p.avatar,attachment:t});return x(t=>t.map(t=>v(t)===r?{...t,lastMessageAt:new Date(Number(e?.timestamp)||Date.now()).toISOString()}:t)),e&&Pt(r,Number(e.timestamp)||Date.now()),X(r),!0}catch(e){return await q(e,K(`chat.error.send`)),!1}}async function $t(){if(!et.trim())return;let e=et.trim();tt(``),await Qt(e)}function en(e,t){return`${qe}/${e}/${t}`}async function tn(e){if(!(!e||e.length===0||!S)&&Q()&&Z()&&!gt){_t(!0);try{for(let t of Array.from(e)){let e=en(y(S),t.name),n=await u.publishFile(t,e),r=n.fileName||e,i=n.link||`most://${n.cid}?filename=${encodeURIComponent(r)}`;await Qt(i,{kind:Je(t,r),cid:n.cid,fileName:r,link:i,mimeType:t.type||void 0,size:t.size})&&c(K(`chat.attachment.published`,{fileName:oe(r)}),`success`)}}catch(e){await q(e,K(`chat.error.attachmentSend`))}finally{_t(!1)}}}async function nn(e){if(!Q()||!Z())return;let t=P[e.cid];if(t?.status!==`checking`){if(t?.status===`error`){L(e);return}if(t?.status!==`available`){await Gt(e)&&await qt(e);return}await qt(e)}}async function rn(e,t){if(!Q()||!Z())return;let n=v(e),r=await d.setChannelRemark(n,t);return x(e=>e.map(e=>v(e)===n?{...e,remark:r.remark}:e)),C(e=>e&&v(e)===n?{...e,remark:r.remark}:e),r.remark}async function an(){if(S)try{await rn(S,dt)}catch(e){await q(e,K(`chat.error.remark`))}}async function on(e){if(!(!A||pt)){mt(!0);try{await rn(A,e),j(null)}catch(e){await q(e,K(`chat.error.rename`))}finally{mt(!1)}}}function sn(e){if(!e.attachment)return(0,_.jsx)(le,{children:e.content});let t=e.attachment,n=P[t.cid]?.status;return(0,_.jsx)(ce,{children:(0,_.jsx)(de,{attachment:t,status:n,pending:e.pending,onOpen:nn})})}function cn(e,t){let n=String(e||``).trim();return n?xt?Xe(n)?n:t?`${n}#${t.slice(-4).toUpperCase()}`:n:n.replace(/#[a-fA-F0-9]{4}$/,``):Ye(t)}function ln(){return(0,_.jsx)(fe,{isLoading:yt,members:vt.map(e=>({id:e.address,name:cn(e.displayName,e.address),avatarSrc:_e(e.address,e.avatar)}))})}let un=B&&!!w&&!S,dn=S?(0,_.jsx)(`h2`,{className:`header-title`,translate:`no`,children:b(S)}):(0,_.jsx)(`h2`,{className:`header-title`,children:K(`chat.title`)}),fn=Qe.trim().toLowerCase(),pn=(0,f.useMemo)(()=>[...g].sort((e,t)=>{let n=Number(!!t.pinned)-Number(!!e.pinned);if(n!==0)return n;let r=m(t)-m(e);return r===0?jt(b(e),b(t)):r}),[g,jt]),mn=fn?pn.filter(e=>[b(e),y(e),v(e)].some(e=>e.toLowerCase().includes(fn))):pn;return(0,_.jsxs)(re,{className:`chat-app-layout`,defaultHide:B,sidebar:({closeSidebar:e})=>(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(`div`,{className:`sidebar-header sidebar-header-link`,onClick:()=>window.location.href=`/`,children:[(0,_.jsx)(Se,{size:18}),(0,_.jsx)(`h1`,{children:`MOST PEOPLE`})]}),(0,_.jsx)(`div`,{className:`chat-channel-search`,children:(0,_.jsxs)(`div`,{className:`ui-input-control`,children:[(0,_.jsx)(pe,{className:`ui-input-icon`,size:15}),(0,_.jsx)(`input`,{type:`search`,className:`input input-compact`,placeholder:K(`chat.search.placeholder`),value:Qe,onChange:e=>$e(e.target.value),"aria-label":K(`chat.search.placeholder`)})]})}),(0,_.jsx)(`nav`,{className:`sidebar-nav`,children:g.length===0?(0,_.jsx)(`div`,{className:`sidebar-empty-state`,children:(0,_.jsx)(`p`,{children:K(`chat.empty.noChannels`)})}):mn.length===0?(0,_.jsx)(`div`,{className:`sidebar-empty-state`,children:(0,_.jsx)(`p`,{children:K(`chat.empty.noMatches`)})}):mn.map(t=>(0,_.jsx)(ue,{active:v(S)===v(t),pinned:!!t.pinned,unread:Be(t,Tt),title:b(t),onSelect:()=>{Jt(t),e()},onTogglePin:()=>void Xt(t),onRename:()=>j(t),onLeave:()=>{k(t),D.open()}},v(t)))}),(0,_.jsxs)(`button`,{className:`ui-action-dashed create-channel-btn`,onClick:()=>{!Q()||!Z()||E.open()},children:[(0,_.jsx)(a,{size:16}),K(`chat.joinChannel`)]}),(0,_.jsx)(Te,{})]}),headerTitle:dn,sidebarToggleReplacement:B?(0,_.jsx)(`span`,{className:`sidebar-toggle-static-logo`,"aria-hidden":`true`,children:Et?(0,_.jsx)(`img`,{className:`sidebar-toggle-static-logo-img`,src:Et,alt:``,onError:()=>wt(!0)}):(0,_.jsx)(ke,{size:18})}):void 0,headerRight:(0,_.jsxs)(`div`,{className:`header-right-actions`,children:[(0,_.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>t(!e),title:K(`common.theme.toggle`),children:e?(0,_.jsx)(r,{size:16}):(0,_.jsx)(i,{size:16})}),S&&(0,_.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>M(!0),title:K(`chat.channelSettings`),children:(0,_.jsx)(Ne,{size:16})})]}),children:[S?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(`div`,{className:`chat-messages`,children:[Bt.length===0?(0,_.jsxs)(`div`,{className:`ui-empty-state chat-messages-empty`,children:[(0,_.jsx)(`div`,{className:`ui-empty-icon empty-icon`,children:(0,_.jsx)(s,{size:28})}),(0,_.jsx)(`p`,{children:K(`chat.empty.noMessages`)})]}):Bt.map(e=>{let t=e.author===p?.address;return(0,_.jsx)(ae,{variant:t?`self`:`other`,pending:e.pending,avatarSrc:_e(e.author,e.avatar||(t?p.avatar:void 0)),author:cn(e.authorName,e.author),time:Nt(e.timestamp),children:sn(e)},e.id||`${e.author}-${e.timestamp}`)}),(0,_.jsx)(`div`,{ref:Dt})]}),(0,_.jsx)(se,{message:et,placeholder:K(p?`chat.composer.placeholder`:`chat.composer.signInPlaceholder`),disabled:!p,isPublishingAttachment:gt,attachmentInputRef:Ot,onMessageChange:tt,onSend:$t,onSelectAttachmentFiles:e=>{tn(e)}})]}):un?(0,_.jsxs)(`div`,{className:`ui-empty-state chat-welcome`,children:[(0,_.jsx)(`div`,{className:`ui-empty-icon ui-empty-icon-lg welcome-icon`,children:(0,_.jsx)(o,{size:36,className:`ui-spinner`})}),(0,_.jsx)(`h2`,{className:`ui-empty-title`,children:K(`chat.restoring.title`)}),(0,_.jsx)(`p`,{className:`ui-empty-desc`,children:K(`chat.restoring.desc`)})]}):(0,_.jsx)(_.Fragment,{children:(0,_.jsxs)(`div`,{className:`ui-empty-state chat-welcome`,children:[(0,_.jsx)(`div`,{className:`ui-empty-icon ui-empty-icon-lg welcome-icon`,children:(0,_.jsx)(s,{size:36})}),(0,_.jsx)(`h2`,{className:`ui-empty-title`,children:K(`chat.select.title`)}),(0,_.jsx)(`p`,{className:`ui-empty-desc`,children:K(`chat.select.desc`)}),(0,_.jsx)(ie,{label:K(`chat.openChannelList`)})]})}),nt&&(0,_.jsx)(be,{title:K(`chat.joinChannel`),placeholder:K(`chat.join.placeholder`),confirmText:K(`chat.join.confirm`),validate:Ut,onConfirm:Zt,onClose:()=>E.close(),isLoading:at,loadingText:K(`chat.join.joining`)}),A&&(0,_.jsx)(be,{title:K(`chat.renameChannel`),placeholder:K(`chat.remark.placeholder`),defaultValue:A.remark||``,confirmText:K(`chat.remark.save`),onConfirm:on,onClose:()=>{pt||j(null)},isLoading:pt,loadingText:K(`chat.remark.saving`),allowEmpty:!0,validate:e=>e.length>50?K(`chat.remark.tooLong`):``}),lt&&O&&(0,_.jsx)(we,{title:K(`chat.leaveChannel`),message:K(`chat.leaveConfirm`,{channel:b(O)}),confirmText:K(st?`chat.leaving`:`chat.leaveChannel`),onConfirm:()=>Yt(v(O),void 0),danger:!0,onClose:()=>{D.close(),k(null)}}),I&&(0,_.jsx)(ye,{onClose:()=>L(null),children:(0,_.jsxs)(`div`,{className:`confirm-modal`,onClick:e=>e.stopPropagation(),children:[(0,_.jsxs)(`div`,{className:`modal-header`,children:[(0,_.jsx)(`h3`,{children:K(`chat.attachment.noSeedsTitle`)}),(0,_.jsx)(`button`,{type:`button`,className:`btn btn-icon`,onClick:()=>L(null),"aria-label":K(`common.close`),children:(0,_.jsx)(me,{size:18})})]}),(0,_.jsx)(`p`,{children:P[I.cid]?.message||K(`chat.attachment.noSeedsFallback`)}),(0,_.jsxs)(`div`,{className:`modal-actions`,children:[(0,_.jsx)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:()=>L(null),children:K(`common.cancel`)}),(0,_.jsx)(`button`,{type:`button`,className:`btn btn-primary`,onClick:()=>Kt(I),disabled:P[I.cid]?.status===`checking`,children:P[I.cid]?.status===`checking`?K(`app.checking`):K(`chat.attachment.retryCheck`)})]})]})}),ht&&(0,_.jsx)(Ee,{item:ht,isBackendReady:G,getFileDownloadUrl:u.getFileDownloadUrl,onClose:()=>N(null)}),ut&&S&&(0,_.jsx)(`div`,{className:`channel-detail-overlay`,onClick:()=>M(!1),children:(0,_.jsxs)(`div`,{className:`channel-detail-drawer`,onClick:e=>e.stopPropagation(),children:[(0,_.jsxs)(`div`,{className:`channel-detail-header`,children:[(0,_.jsx)(`h3`,{children:K(`chat.details.title`)}),(0,_.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>M(!1),children:(0,_.jsx)(me,{size:18})})]}),(0,_.jsxs)(`div`,{className:`channel-detail-body`,children:[(0,_.jsxs)(`div`,{className:`channel-detail-section channel-members-section`,children:[(0,_.jsx)(`div`,{className:`channel-detail-label`,children:(0,_.jsx)(`span`,{children:K(`chat.details.members`,{count:vt.length})})}),ln()]}),!B&&(0,_.jsx)(`div`,{className:`channel-detail-section`,children:(0,_.jsxs)(`label`,{className:`setting-switch`,children:[(0,_.jsx)(`span`,{children:K(`chat.details.showAddressSuffix`)}),(0,_.jsx)(`input`,{type:`checkbox`,checked:xt,onChange:e=>St(e.target.checked)})]})}),!B&&(0,_.jsxs)(`div`,{className:`channel-detail-section`,children:[(0,_.jsxs)(`div`,{className:`channel-detail-label`,children:[(0,_.jsx)(Me,{size:14}),(0,_.jsx)(`span`,{children:K(`chat.details.channelId`)})]}),(0,_.jsx)(`div`,{className:`ui-meta-box channel-detail-value channel-detail-mono`,translate:`no`,children:y(S)})]}),(0,_.jsxs)(`div`,{className:`channel-detail-section`,children:[(0,_.jsxs)(`div`,{className:`channel-detail-label`,children:[(0,_.jsx)(ee,{size:14}),(0,_.jsx)(`span`,{children:K(`chat.remark.placeholder`)})]}),(0,_.jsx)(`input`,{type:`text`,className:`input input-compact`,placeholder:K(`chat.remark.placeholder`),value:dt,onChange:e=>ft(e.target.value),onFocus:()=>ft(S.remark||``),onBlur:()=>an(),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()},maxLength:50})]}),(0,_.jsxs)(`div`,{className:`channel-detail-section`,children:[(0,_.jsxs)(`div`,{className:`channel-detail-label`,children:[(0,_.jsx)(je,{size:14}),(0,_.jsx)(`span`,{children:K(`chat.channel.createdAt`)})]}),(0,_.jsx)(`div`,{className:`ui-meta-box channel-detail-value`,children:S.createdAt?Mt(S.createdAt):`-`})]})]}),!B&&(0,_.jsx)(`div`,{className:`channel-detail-footer`,children:(0,_.jsx)(`button`,{className:`btn btn-secondary btn-block`,onClick:()=>{M(!1),k(S),D.open()},children:K(`chat.leaveChannel`)})})]})})]})}var S=Ce(`/chat/`)({component:x});export{S as Route};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{t as r}from"./LanguageToggle-B4ZNuBCV.js";import{n as i}from"./upload-Dxl7GUzb.js";import{n as a,t as o}from"./triangle-alert-B_1BlX1b.js";import{t as ee}from"./cloud-BEe2N89j.js";import{t as te}from"./code-9LB8QqxL.js";import{t as s}from"./plus-BbxQG_Ai.js";import{n as c}from"./trash-2-DNGr8IgF.js";import{a as l,n as ne,r as re,t as ie}from"./MoveModal-BVr4Q7-b.js";import{t as u}from"./message-square-DwBq_Go5.js";import{a as d,i as ae,n as oe,o as f,r as p,s as m,t as se}from"./ChatUi-Cif5LRF3.js";import{t as ce}from"./search-gqAPOsgS.js";import{i as h,n as g,r as le,t as _}from"./PemBlock-CxwIepth.js";import{t as v}from"./wifi-sBOKcPFM.js";import{G as y,J as b,W as ue,a as x,d as de,f as fe,g as pe,l as me,m as S,n as C,q as w,r as T,tt as E,u as D}from"./index-WCK14Vja.js";import{t as O}from"./MarketingThemeToggle-qlwCZU1o.js";import{t as k}from"./LogoIcon-B2fFe0l1.js";import{t as A}from"./CopyButton-Dm7krgbq.js";import{n as j,t as M}from"./Nav-5xeettNJ.js";import{n as N,r as P,t as F}from"./NoteSidebar-DpniUKmy.js";var I=b(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),L=b(`log-in`,[[`path`,{d:`m10 17 5-5-5-5`,key:`1bsop3`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,key:`u53s6r`}]]),R=b(`mouse-pointer-click`,[[`path`,{d:`M14 4.1 12 6`,key:`ita8i4`}],[`path`,{d:`m5.1 8-2.9-.8`,key:`1go3kf`}],[`path`,{d:`m6 12-1.9 2`,key:`mnht97`}],[`path`,{d:`M7.2 2.2 8 5.1`,key:`1cfko1`}],[`path`,{d:`M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z`,key:`s0h3yz`}]]),z=b(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),B=b(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),V=b(`type`,[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]),H=t(e(),1),U=n(),he={name:`产品计划.md`,cid:`bafy-demo-note`,path:`产品/计划`,content:`# MostBox Demo`,size:2048,type:`file`,created_at:17645472e5,updated_at:17645472e5},ge=[{path:`产品`,name:`产品`,parentPath:``,depth:0},{path:`产品/计划`,name:`计划`,parentPath:`产品`,depth:1},{path:`产品/摘录`,name:`摘录`,parentPath:`产品`,depth:1},{path:`灵感`,name:`灵感`,parentPath:``,depth:0}];function W({id:e,icon:t,eyebrow:n,title:r,description:i,children:a}){return(0,U.jsxs)(`section`,{className:`demo-section`,id:e,children:[(0,U.jsxs)(`div`,{className:`demo-section-heading`,children:[(0,U.jsx)(`div`,{className:`demo-section-icon`,children:t}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`demo-eyebrow`,children:n}),(0,U.jsx)(`h2`,{children:r}),(0,U.jsx)(`p`,{children:i})]})]}),a]})}function G({title:e,children:t,className:n=``}){return(0,U.jsxs)(`article`,{className:n?`demo-surface ${n}`:`demo-surface`,children:[(0,U.jsx)(`h3`,{children:e}),t]})}function K(){let[e,t]=(0,H.useState)(`r2`),[n,b]=(0,H.useState)(`今晚同步频道状态`),[E,K]=(0,H.useState)(!1),[q,J]=(0,H.useState)(!1),[_e,Y]=(0,H.useState)(!1),[ve,X]=(0,H.useState)(!1),[ye,Z]=(0,H.useState)(!1),[be,Q]=(0,H.useState)([]),xe=pe(e=>e.openConnectModal),Se=S(e=>e.openLoginModal);function $(e,t){Q(n=>[...n.slice(-4),{id:Date.now(),type:e,message:t}])}function Ce(e){Q(t=>t.filter(t=>t.id!==e))}return(0,U.jsxs)(`main`,{className:`demo-page`,children:[(0,U.jsxs)(`header`,{className:`demo-topbar`,children:[(0,U.jsxs)(`a`,{className:`mkt-nav-logo`,href:`/`,children:[(0,U.jsx)(w,{size:18}),(0,U.jsx)(`span`,{children:`MOST PEOPLE`})]}),(0,U.jsxs)(`div`,{className:`mkt-nav-cta`,children:[(0,U.jsx)(O,{}),(0,U.jsx)(r,{className:`mkt-theme-toggle`})]})]}),(0,U.jsx)(`section`,{className:`demo-hero`,children:(0,U.jsxs)(`div`,{className:`demo-hero-copy`,children:[(0,U.jsx)(`p`,{className:`demo-eyebrow`,children:`Shared Component Library`}),(0,U.jsx)(`h1`,{children:`共享组件检查页`}),(0,U.jsx)(`p`,{children:`把基础样式、全局 UI 片段和已迁入 components 的共享组件按用途集中展示, 方便以后改 UI 时直接从这里检查联动效果。`})]})}),(0,U.jsx)(W,{id:`foundation`,icon:(0,U.jsx)(z,{size:18}),eyebrow:`Foundation`,title:`基础样式`,description:`全局按钮、输入框、开关、分段控件和状态反馈。`,children:(0,U.jsxs)(`div`,{className:`demo-grid demo-grid-two`,children:[(0,U.jsx)(G,{title:`默认按钮`,children:(0,U.jsxs)(`div`,{className:`demo-control-row`,children:[(0,U.jsxs)(`button`,{className:`btn btn-primary`,children:[(0,U.jsx)(a,{size:16}),`Primary`]}),(0,U.jsxs)(`button`,{className:`btn btn-secondary`,children:[(0,U.jsx)(l,{size:16}),`Secondary`]}),(0,U.jsxs)(`button`,{className:`btn btn-ghost`,children:[(0,U.jsx)(B,{size:16}),`Ghost`]}),(0,U.jsxs)(`button`,{className:`btn btn-danger`,children:[(0,U.jsx)(h,{size:16}),`Danger`]}),(0,U.jsx)(`button`,{className:`btn btn-primary`,disabled:!0,children:`Disabled`}),(0,U.jsxs)(`button`,{type:`button`,className:`ui-action-dashed`,children:[(0,U.jsx)(s,{size:16}),`Dashed`]})]})}),(0,U.jsx)(G,{title:`小号按钮`,children:(0,U.jsxs)(`div`,{className:`demo-control-row`,children:[(0,U.jsxs)(`button`,{className:`btn btn-sm btn-primary`,children:[(0,U.jsx)(a,{size:14}),`Primary`]}),(0,U.jsxs)(`button`,{className:`btn btn-sm btn-secondary`,children:[(0,U.jsx)(l,{size:14}),`Secondary`]}),(0,U.jsxs)(`button`,{className:`btn btn-sm btn-ghost`,children:[(0,U.jsx)(B,{size:14}),`Ghost`]}),(0,U.jsxs)(`button`,{className:`btn btn-sm btn-danger`,children:[(0,U.jsx)(h,{size:14}),`Danger`]}),(0,U.jsx)(`button`,{className:`btn btn-sm btn-icon`,"aria-label":`小号图标按钮`,children:(0,U.jsx)(I,{size:14})}),(0,U.jsx)(`button`,{className:`btn btn-sm btn-primary`,disabled:!0,children:`Disabled`}),(0,U.jsxs)(`button`,{type:`button`,className:`ui-action-dashed ui-action-dashed-sm`,children:[(0,U.jsx)(s,{size:14}),`Dashed`]})]})}),(0,U.jsx)(G,{title:`输入控件`,children:(0,U.jsxs)(`div`,{className:`demo-input-grid`,children:[(0,U.jsx)(`input`,{className:`input`,value:`标准输入框`,readOnly:!0}),(0,U.jsx)(`input`,{className:`input input-compact`,value:`紧凑输入框`,readOnly:!0}),(0,U.jsx)(`input`,{className:`input input-pill`,value:`胶囊输入框`,readOnly:!0}),(0,U.jsx)(`textarea`,{className:`textarea`,value:`多行输入框`,rows:3,readOnly:!0}),(0,U.jsxs)(`div`,{className:`ui-input-control`,children:[(0,U.jsx)(ce,{className:`ui-input-icon`,size:15}),(0,U.jsx)(`input`,{className:`input input-compact`,placeholder:`带图标搜索`,readOnly:!0})]})]})}),(0,U.jsx)(G,{title:`开关、分段与徽标`,children:(0,U.jsxs)(`div`,{className:`demo-stack`,children:[(0,U.jsxs)(`label`,{className:`setting-switch`,children:[(0,U.jsx)(`span`,{children:`显示 #地址后四位`}),(0,U.jsx)(`input`,{type:`checkbox`,defaultChecked:!0})]}),(0,U.jsxs)(`label`,{className:`setting-switch`,children:[(0,U.jsx)(`span`,{children:`自动同步`}),(0,U.jsx)(`input`,{type:`checkbox`})]}),(0,U.jsxs)(`div`,{className:`ui-segmented-control download-source-tabs demo-download-source-tabs`,role:`tablist`,"aria-label":`下载来源`,children:[(0,U.jsxs)(`button`,{type:`button`,className:e===`r2`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,role:`tab`,"aria-selected":e===`r2`,onClick:()=>t(`r2`),children:[(0,U.jsx)(ee,{size:15}),`R2`]}),(0,U.jsxs)(`button`,{type:`button`,className:e===`github`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,role:`tab`,"aria-selected":e===`github`,onClick:()=>t(`github`),children:[(0,U.jsx)(te,{size:15}),`GitHub`]})]}),(0,U.jsxs)(`div`,{className:`demo-control-row`,children:[(0,U.jsxs)(`span`,{className:`ui-badge success`,children:[(0,U.jsx)(`span`,{className:`status-dot success`}),`已连接`]}),(0,U.jsxs)(`span`,{className:`ui-badge warning`,children:[(0,U.jsx)(`span`,{className:`status-dot warning`}),`检测中`]}),(0,U.jsxs)(`span`,{className:`ui-badge danger`,children:[(0,U.jsx)(`span`,{className:`status-dot danger`}),`不可用`]}),(0,U.jsxs)(`span`,{className:`ui-badge info`,children:[(0,U.jsx)(`span`,{className:`status-dot info`}),`已就绪`]})]})]})})]})}),(0,U.jsx)(W,{id:`brand`,icon:(0,U.jsx)(V,{size:18}),eyebrow:`Brand`,title:`品牌与导航`,description:`Logo、营销导航和页脚放在独立预览面板里,避免和 demo 容器互相挤压。`,children:(0,U.jsxs)(`div`,{className:`demo-grid demo-brand-grid`,children:[(0,U.jsx)(G,{title:`LogoIcon`,children:(0,U.jsxs)(`div`,{className:`demo-logo-row`,children:[(0,U.jsx)(k,{size:24}),(0,U.jsx)(k,{size:36}),(0,U.jsx)(k,{size:52})]})}),(0,U.jsx)(G,{title:`Nav`,className:`demo-nav-preview`,children:(0,U.jsx)(M,{})}),(0,U.jsx)(G,{title:`Footer`,className:`demo-footer-preview`,children:(0,U.jsx)(j,{})})]})}),(0,U.jsx)(W,{id:`feedback`,icon:(0,U.jsx)(R,{size:18}),eyebrow:`Feedback`,title:`弹窗与反馈`,description:`弹窗、Toast、连接和登录入口都使用按钮触发,页面加载时不主动打开。`,children:(0,U.jsx)(G,{title:`触发式组件`,children:(0,U.jsxs)(`div`,{className:`demo-control-row`,children:[(0,U.jsxs)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:()=>K(!0),children:[(0,U.jsx)(y,{size:16}),`ModalOverlay`]}),(0,U.jsxs)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:()=>J(!0),children:[(0,U.jsx)(h,{size:16}),`ConfirmModal`]}),(0,U.jsxs)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:()=>Y(!0),children:[(0,U.jsx)(V,{size:16}),`InputModal`]}),(0,U.jsxs)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:()=>$(`info`,`这是一条本地 demo toast`),children:[(0,U.jsx)(I,{size:16}),`Toast`]}),(0,U.jsxs)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:xe,children:[(0,U.jsx)(ue,{size:16}),`ConnectModal`]}),(0,U.jsxs)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:Se,children:[(0,U.jsx)(L,{size:16}),`UserLoginModal`]})]})})}),(0,U.jsx)(W,{id:`patterns`,icon:(0,U.jsx)(B,{size:18}),eyebrow:`Patterns`,title:`全局样式片段`,description:`页面里反复复用的全局 class 和组合形态。`,children:(0,U.jsxs)(`div`,{className:`demo-grid demo-grid-two`,children:[(0,U.jsx)(G,{title:`文件行`,children:(0,U.jsxs)(`div`,{className:`demo-stack`,children:[(0,U.jsx)(m,{attachment:{kind:`text`,cid:`bafy-demo-text`,fileName:`demo-preview.txt`,link:`most://bafy-demo-text?filename=demo-preview.txt`,size:12697},status:`available`}),(0,U.jsx)(m,{attachment:{kind:`video`,cid:`bafy-demo-video`,fileName:`movie-sample.mp4`,link:`most://bafy-demo-video?filename=movie-sample.mp4`,size:0},status:`checking`})]})}),(0,U.jsx)(G,{title:`空状态`,children:(0,U.jsxs)(`div`,{className:`ui-empty-state demo-empty-preview`,children:[(0,U.jsx)(`div`,{className:`ui-empty-icon`,children:(0,U.jsx)(u,{size:28})}),(0,U.jsx)(`h4`,{className:`ui-empty-title`,children:`暂无消息`}),(0,U.jsx)(`p`,{className:`ui-empty-desc`,children:`开始聊天或选择一个频道。`})]})}),(0,U.jsx)(G,{title:`列表与元信息`,children:(0,U.jsxs)(`div`,{className:`demo-stack`,children:[(0,U.jsx)(`article`,{className:`ui-list-item active`,children:(0,U.jsxs)(`button`,{type:`button`,className:`ui-list-item-main`,children:[(0,U.jsx)(`span`,{className:`ui-list-icon`,children:(0,U.jsx)(c,{size:18})}),(0,U.jsxs)(`span`,{className:`ui-list-copy`,children:[(0,U.jsx)(`span`,{className:`ui-list-title`,children:`产品计划.md`}),(0,U.jsx)(`span`,{className:`ui-list-desc`,children:`CID、下载和做种说明`})]}),(0,U.jsx)(`span`,{className:`ui-list-meta`,children:`今天`})]})}),(0,U.jsx)(`article`,{className:`ui-list-item`,children:(0,U.jsxs)(`button`,{type:`button`,className:`ui-list-item-main`,children:[(0,U.jsx)(`span`,{className:`ui-list-icon warning`,children:(0,U.jsx)(i,{size:18})}),(0,U.jsxs)(`span`,{className:`ui-list-copy`,children:[(0,U.jsx)(`span`,{className:`ui-list-title`,children:`归档`}),(0,U.jsx)(`span`,{className:`ui-list-desc`,children:`文件夹`})]}),(0,U.jsx)(`span`,{className:`ui-list-meta`,children:`12 篇`})]})}),(0,U.jsx)(`div`,{className:`ui-meta-box`,children:`频道 ID:general`}),(0,U.jsx)(`div`,{className:`ui-empty-inline`,children:`暂无成员`})]})}),(0,U.jsx)(G,{title:`通知、标签与代码`,children:(0,U.jsxs)(`div`,{className:`demo-stack`,children:[(0,U.jsxs)(`p`,{className:`ui-notice success`,children:[(0,U.jsx)(a,{size:14}),`同步完成,所有内容已更新。`]}),(0,U.jsxs)(`p`,{className:`ui-notice warning`,children:[(0,U.jsx)(o,{size:14}),`节点正在检测中,请稍候。`]}),(0,U.jsxs)(`ul`,{className:`ui-chip-list demo-chip-preview`,children:[(0,U.jsx)(`li`,{className:`ui-chip`,children:`MostBox`}),(0,U.jsx)(`li`,{className:`ui-chip`,children:`P2P`}),(0,U.jsx)(`li`,{className:`ui-chip`,children:`CID`}),(0,U.jsx)(`li`,{className:`ui-chip`,children:`Hyperdrive`})]}),(0,U.jsx)(`code`,{className:`ui-code-box`,children:`most://bafy-demo-cid?filename=demo.txt`}),(0,U.jsxs)(`div`,{className:`ui-peer-info demo-peer-info`,children:[(0,U.jsx)(`span`,{className:`peer-dot`}),(0,U.jsx)(`span`,{className:`peer-id`,children:`12D3KooW...demo`}),(0,U.jsx)(v,{size:14})]})]})})]})}),(0,U.jsx)(W,{id:`p2p-chat`,icon:(0,U.jsx)(u,{size:18}),eyebrow:`P2P Chat`,title:`P2P 聊天控件`,description:`频道列表、消息气泡、附件消息、输入栏和成员网格都与真实聊天页共用组件。`,children:(0,U.jsxs)(`div`,{className:`demo-grid demo-grid-two`,children:[(0,U.jsx)(G,{title:`频道列表项`,children:(0,U.jsxs)(`div`,{className:`demo-chat-sidebar-preview`,children:[(0,U.jsx)(p,{active:!0,title:`general`}),(0,U.jsx)(p,{title:`design-review`}),(0,U.jsx)(p,{title:`launch-room`,onLeave:()=>$(`info`,`退出频道控件示例`)}),(0,U.jsxs)(`button`,{type:`button`,className:`ui-action-dashed`,children:[(0,U.jsx)(s,{size:16}),`加入频道`]})]})}),(0,U.jsx)(G,{title:`消息气泡`,children:(0,U.jsxs)(`div`,{className:`chat-messages demo-chat-messages-preview`,children:[(0,U.jsx)(d,{variant:`other`,avatarSrc:x(`peer-demo`),author:`Most Peer`,time:`20:16`,children:(0,U.jsx)(f,{children:`节点已在线,可以开始同步频道消息。`})}),(0,U.jsx)(d,{variant:`self`,avatarSrc:x(`self-demo`),author:`Raina`,time:`20:18`,children:(0,U.jsx)(f,{children:`收到,我把控件收进 demo。`})}),(0,U.jsx)(d,{variant:`other`,avatarSrc:x(`file-demo`),author:`Most Peer`,time:`20:19`,children:(0,U.jsx)(oe,{children:(0,U.jsx)(m,{attachment:{kind:`image`,cid:`bafy-chat-demo-image`,fileName:`chat-assets/channel-preview.png`,link:`most://bafy-chat-demo-image?filename=channel-preview.png`,size:186420},status:`available`})})})]})}),(0,U.jsx)(G,{title:`消息输入栏`,className:`demo-chat-composer-card`,children:(0,U.jsx)(ae,{message:n,placeholder:`输入消息...`,onMessageChange:b,onSend:()=>$(`success`,`发送:${n}`),onSelectAttachmentFiles:()=>$(`info`,`图片、视频和文件选择控件示例`)})}),(0,U.jsx)(G,{title:`频道成员`,children:(0,U.jsxs)(`div`,{className:`demo-stack`,children:[(0,U.jsx)(se,{members:[{id:`raina-demo`,name:`Raina`,avatarSrc:x(`raina-demo`)},{id:`peer-a-demo`,name:`Alice#1A2B`,avatarSrc:x(`peer-a-demo`)},{id:`peer-b-demo`,name:`Bob#3C4D`,avatarSrc:x(`peer-b-demo`)}]}),(0,U.jsx)(`div`,{className:`ui-meta-box channel-detail-value channel-detail-mono`,children:`8acdf33076e075168bf889b21d21665b`})]})})]})}),(0,U.jsx)(W,{id:`shared`,icon:(0,U.jsx)(c,{size:18}),eyebrow:`Shared Components`,title:`共享组件`,description:`已迁入 components 的页面组件,只展示外观和轻交互。`,children:(0,U.jsxs)(`div`,{className:`demo-grid demo-grid-two`,children:[(0,U.jsx)(G,{title:`Web3 小组件`,children:(0,U.jsxs)(`div`,{className:`demo-stack`,children:[(0,U.jsx)(g,{title:`Ed25519 公钥`,icon:(0,U.jsx)(h,{size:18}),children:(0,U.jsxs)(`div`,{className:`mono-row`,children:[(0,U.jsx)(`code`,{className:`mono`,children:`ed25519-demo-public-key`}),(0,U.jsx)(A,{text:`ed25519-demo-public-key`})]})}),(0,U.jsx)(le,{icon:(0,U.jsx)(L,{size:32}),message:`请输入用户名和密码以查看身份信息`})]})}),(0,U.jsx)(G,{title:`PEM 与复制`,className:`demo-pem-preview`,children:(0,U.jsx)(_,{label:`demo.pub`,filename:`demo.pub`,pem:`-----BEGIN PUBLIC KEY-----
|
|
2
|
-
MOSTBOXDEMO
|
|
3
|
-
-----END PUBLIC KEY-----`})}),(0,U.jsxs)(G,{title:`文件管理卡片`,children:[(0,U.jsxs)(`div`,{className:`demo-app-card-grid`,children:[(0,U.jsx)(re,{folder:{name:`图片`,path:`图片`},onClick:()=>$(`info`,`FolderCard demo`)}),(0,U.jsx)(ne,{file:{cid:`bafy-demo-file`,fileName:`图片/demo.png`,starred:!0},isSelected:!0,onSelect:()=>$(`info`,`FileCard select`),onPreview:()=>$(`info`,`FileCard preview`)})]}),(0,U.jsxs)(`button`,{type:`button`,className:`btn btn-secondary demo-move-trigger`,onClick:()=>X(!0),children:[(0,U.jsx)(i,{size:16}),`MoveModal`]})]}),(0,U.jsx)(G,{title:`笔记组件`,children:(0,U.jsxs)(`div`,{className:`demo-note-shell`,children:[(0,U.jsxs)(`div`,{className:`demo-note-header`,children:[(0,U.jsx)(`span`,{children:`笔记`}),(0,U.jsx)(P,{sync:{action:null,status:`synced`,statusLabel:`已同步`,hasConflict:!1,uploadNow:async()=>!0,restoreFromCloud:async()=>!0,exportLocalBackup:()=>$(`info`,`本地导出`),importLocalBackup:()=>$(`info`,`本地导入`)}})]}),(0,U.jsx)(`div`,{className:`sidebar demo-note-sidebar`,children:(0,U.jsx)(F,{children:(0,U.jsx)(`div`,{className:`sidebar-empty-state`,children:(0,U.jsx)(`p`,{children:`NoteSidebar 已迁入 components`})})})}),(0,U.jsxs)(`button`,{type:`button`,className:`btn btn-secondary demo-move-trigger`,onClick:()=>Z(!0),children:[(0,U.jsx)(i,{size:16}),`NoteMoveModal`]})]})})]})}),be.map((e,t)=>(0,U.jsx)(de,{message:e.message,type:e.type,index:t,onDone:()=>Ce(e.id)},e.id)),E&&(0,U.jsx)(fe,{onClose:()=>K(!1),children:(0,U.jsxs)(`div`,{className:`demo-basic-modal`,onClick:e=>e.stopPropagation(),children:[(0,U.jsx)(`h3`,{children:`ModalOverlay`}),(0,U.jsx)(`p`,{children:`这是基础容器示例,用来检查玻璃背景、居中和关闭行为。`}),(0,U.jsx)(`button`,{type:`button`,className:`btn btn-primary`,onClick:()=>K(!1),children:`关闭`})]})}),q&&(0,U.jsx)(D,{title:`确认弹窗示例`,message:`用于检查标题、正文、按钮和危险态之外的默认确认状态。`,confirmText:`确认`,onConfirm:()=>{J(!1),$(`success`,`ConfirmModal 已确认`)},onClose:()=>J(!1)}),_e&&(0,U.jsx)(me,{title:`输入弹窗示例`,placeholder:`输入任意文本`,confirmText:`保存`,defaultValue:`MostBox`,onConfirm:e=>{Y(!1),$(`success`,`InputModal: ${e}`)},onClose:()=>Y(!1),validate:e=>e.length<2?`至少输入 2 个字符`:``}),ve&&(0,U.jsx)(ie,{items:[{cid:`bafy-demo-file`}],allFolders:[{name:`图片`,path:`图片`},{name:`壁纸`,path:`图片/壁纸`},{name:`文档`,path:`文档`}],currentPath:`图片`,onMove:e=>{X(!1),$(`success`,`MoveModal: ${e||`根目录`}`)},onClose:()=>X(!1)}),ye&&(0,U.jsx)(N,{target:he,directories:ge,onMove:e=>{Z(!1),$(`success`,`NoteMoveModal: ${e||`全部笔记`}`)},onClose:()=>Z(!1)}),(0,U.jsx)(C,{}),(0,U.jsx)(T,{})]})}var q=E(`/demo/`)({component:K});export{q as Route};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{n as r,r as i}from"./LanguageToggle-B4ZNuBCV.js";import{t as a}from"./chevron-down-CnLh_-aO.js";import{t as o}from"./external-link-Cm2WCUxv.js";import{i as s,n as c,r as l,t as u}from"./mp-Bln2MB9G.js";import{t as d}from"./key-round-CzuljhND.js";import{t as f}from"./lock-D2NhNoJW.js";import{t as p}from"./AppShell-OiOEqXPr.js";import{i as m,n as h,r as g,t as _}from"./PemBlock-CxwIepth.js";import{t as v}from"./wallet-DlkawdPJ.js";import{D as y,E as b,G as x,I as S,J as C,K as w,N as T,O as ee,P as E,Z as D,a as te,g as ne,j as re,m as ie,q as ae,tt as oe}from"./index-WCK14Vja.js";import{t as O}from"./CopyButton-Dm7krgbq.js";var k=C(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),se=C(`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`}]]),ce=C(`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`}]]),le=C(`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`}]]),A=t(e()),j=n();function ue(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function de({title:e,username:t,password:n,showPassword:r,showPrivateKey:i,account:a,onUsernameChange:o,onPasswordChange:s,onTogglePassword:c,onTogglePrivateKey:l,onGenerate:u}){let{t:f}=D();return(0,j.jsxs)(`div`,{className:`web3-box-account`,children:[(0,j.jsx)(`div`,{className:`web3-box-account-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:e}),(0,j.jsx)(`p`,{children:f(`web3.box.account.desc`)})]})}),(0,j.jsxs)(`div`,{className:`web3-box-login`,children:[(0,j.jsx)(`input`,{type:`text`,placeholder:f(`login.username.placeholder`),value:t,onChange:e=>o(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,j.jsxs)(`div`,{className:`input-wrap`,children:[(0,j.jsx)(`input`,{type:r?`text`:`password`,placeholder:f(`web3.login.passwordOptional`),value:n,onChange:e=>s(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,j.jsx)(`button`,{className:`input-eye`,onClick:c,type:`button`,children:r?(0,j.jsx)(w,{size:16}):(0,j.jsx)(x,{size:16})})]}),(0,j.jsxs)(`button`,{className:`btn btn-primary btn-full`,onClick:u,disabled:!t.trim(),type:`button`,children:[(0,j.jsx)(d,{size:16}),f(`web3.box.account.generate`)]})]}),a?(0,j.jsxs)(`div`,{className:`web3-box-key-list`,children:[(0,j.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,j.jsx)(`span`,{children:f(`web3.label.address`)}),(0,j.jsxs)(`div`,{className:`mono-row`,children:[(0,j.jsx)(`code`,{className:`mono`,translate:`no`,children:a.address.toLowerCase()}),(0,j.jsx)(O,{text:a.address.toLowerCase()})]})]}),(0,j.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,j.jsx)(`span`,{children:f(`web3.label.x25519Public`)}),(0,j.jsxs)(`div`,{className:`mono-row`,children:[(0,j.jsx)(`code`,{className:`mono`,translate:`no`,children:a.publicKey}),(0,j.jsx)(O,{text:a.publicKey})]})]}),(0,j.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,j.jsx)(`span`,{children:f(`web3.label.x25519Private`)}),(0,j.jsxs)(`div`,{className:`mono-row danger`,children:[(0,j.jsx)(`code`,{className:`mono`,translate:`no`,children:i?a.privateKey:ue(a.privateKey)}),(0,j.jsx)(`button`,{className:`btn btn-icon`,onClick:l,title:f(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,j.jsx)(x,{size:14}):(0,j.jsx)(w,{size:14})})]})]})]}):null]})}function fe(e,t){return Number.isFinite(e)?t(e):`-`}function M({title:e,description:t,message:n,cipherText:r,decryptedText:i,error:a,encryptLabel:o,decryptLabel:s,messagePlaceholder:c,cipherPlaceholder:l,onMessageChange:u,onCipherTextChange:p,onEncrypt:m,onDecrypt:h}){let{t:g,formatDateTime:_}=D(),v=`box-message-${e.replaceAll(/\s+/g,`-`)}`,y=E(r);return(0,j.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,j.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:e}),(0,j.jsx)(`p`,{children:t})]})}),(0,j.jsx)(`label`,{className:`web3-box-label`,htmlFor:v,children:g(`web3.box.plaintext`)}),(0,j.jsx)(`textarea`,{id:v,className:`textarea`,value:n,onChange:e=>u(e.target.value),rows:4,placeholder:c,translate:`no`}),(0,j.jsxs)(`div`,{className:`web3-box-actions`,children:[(0,j.jsxs)(`button`,{className:`btn btn-primary`,onClick:m,type:`button`,children:[(0,j.jsx)(f,{size:16}),o]}),(0,j.jsxs)(`button`,{className:`btn btn-secondary`,onClick:h,type:`button`,children:[(0,j.jsx)(d,{size:16}),s]})]}),a&&(0,j.jsx)(`p`,{className:`web3-tools-danger`,children:a}),(0,j.jsxs)(`div`,{className:`web3-box-result-grid`,children:[(0,j.jsxs)(`div`,{className:`web3-box-result`,children:[(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:g(`web3.box.ciphertext`)})}),(0,j.jsx)(`textarea`,{className:`textarea mono`,value:r,onChange:e=>p(e.target.value),rows:5,placeholder:l,translate:`no`})]}),(0,j.jsxs)(`div`,{className:`web3-box-result`,children:[(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:g(`web3.box.decryptResult`)})}),(0,j.jsx)(`textarea`,{className:`textarea mono`,value:i,readOnly:!0,rows:5,placeholder:g(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]}),y&&(0,j.jsxs)(`div`,{className:`web3-box-token-meta`,children:[(0,j.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,j.jsx)(`span`,{children:g(`web3.box.timestamp`)}),(0,j.jsx)(`code`,{translate:`no`,children:fe(y.timestampMs,_)})]}),(0,j.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,j.jsx)(`span`,{children:g(`web3.box.nonce`)}),(0,j.jsx)(`code`,{translate:`no`,children:y.nonce})]})]})]})}function pe(e){let{t}=D();return(0,j.jsxs)(`div`,{className:`web3-box-workspace`,children:[(0,j.jsxs)(`div`,{className:`web3-box-grid`,children:[(0,j.jsx)(de,{title:t(`web3.box.accountA`),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,j.jsx)(de,{title:t(`web3.box.accountB`),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,j.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,j.jsx)(M,{title:`A → B`,description:t(`web3.box.flowAB.desc`),message:e.boxABMessage,cipherText:e.boxABCipherText,decryptedText:e.boxABDecryptedText,error:e.boxABError,encryptLabel:t(`web3.box.flowAB.encrypt`),decryptLabel:t(`web3.box.flowAB.decrypt`),messagePlaceholder:t(`web3.box.flowAB.messagePlaceholder`),cipherPlaceholder:t(`web3.box.cipherPlaceholder`),onMessageChange:e.onBoxABMessageChange,onCipherTextChange:e.onBoxABCipherTextChange,onEncrypt:e.onEncryptBoxAB,onDecrypt:e.onDecryptBoxAB}),(0,j.jsx)(M,{title:`B → A`,description:t(`web3.box.flowBA.desc`),message:e.boxBAMessage,cipherText:e.boxBACipherText,decryptedText:e.boxBADecryptedText,error:e.boxBAError,encryptLabel:t(`web3.box.flowBA.encrypt`),decryptLabel:t(`web3.box.flowBA.decrypt`),messagePlaceholder:t(`web3.box.flowBA.messagePlaceholder`),cipherPlaceholder:t(`web3.box.cipherPlaceholder`),onMessageChange:e.onBoxBAMessageChange,onCipherTextChange:e.onBoxBACipherTextChange,onEncrypt:e.onEncryptBoxBA,onDecrypt:e.onDecryptBoxBA})]}),(0,j.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,j.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,j.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:t(`web3.box.encryptTitle`)}),(0,j.jsx)(`p`,{children:t(`web3.box.encryptDesc`)})]})}),(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,j.jsxs)(`div`,{className:`input-wrap`,children:[(0,j.jsx)(`input`,{type:e.boxEncryptShowPrivateKey?`text`:`password`,placeholder:t(`web3.box.senderPrivatePlaceholder`),value:e.boxEncryptSenderPrivateKey,onChange:t=>e.onBoxEncryptSenderPrivateKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,j.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxEncryptShowPrivateKeyToggle,type:`button`,children:e.boxEncryptShowPrivateKey?(0,j.jsx)(w,{size:16}):(0,j.jsx)(x,{size:16})})]}),(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,j.jsx)(`input`,{type:`text`,placeholder:t(`web3.box.recipientPublicPlaceholder`),value:e.boxEncryptRecipientPublicKey,onChange:t=>e.onBoxEncryptRecipientPublicKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:t(`web3.box.plaintext`)})}),(0,j.jsx)(`textarea`,{className:`textarea`,value:e.boxEncryptMessage,onChange:t=>e.onBoxEncryptMessageChange(t.target.value),rows:4,placeholder:t(`web3.box.messagePlaceholder`),translate:`no`}),(0,j.jsx)(`div`,{className:`web3-box-actions`,children:(0,j.jsxs)(`button`,{className:`btn btn-primary`,onClick:e.onEncryptOnly,type:`button`,children:[(0,j.jsx)(f,{size:16}),t(`web3.box.encryptTitle`)]})}),e.boxEncryptError&&(0,j.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxEncryptError}),(0,j.jsxs)(`div`,{className:`web3-box-result`,children:[(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,j.jsx)(`textarea`,{className:`textarea mono`,value:e.boxEncryptCipherText,readOnly:!0,rows:5,placeholder:t(`web3.box.encryptResultPlaceholder`),translate:`no`})]})]}),(0,j.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,j.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:t(`web3.box.decryptTitle`)}),(0,j.jsx)(`p`,{children:t(`web3.box.decryptDesc`)})]})}),(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,j.jsx)(`input`,{type:`text`,placeholder:t(`web3.box.senderPublicPlaceholder`),value:e.boxDecryptSenderPublicKey,onChange:t=>e.onBoxDecryptSenderPublicKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,j.jsxs)(`div`,{className:`input-wrap`,children:[(0,j.jsx)(`input`,{type:e.boxDecryptShowPrivateKey?`text`:`password`,placeholder:t(`web3.box.recipientPrivatePlaceholder`),value:e.boxDecryptRecipientPrivateKey,onChange:t=>e.onBoxDecryptRecipientPrivateKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,j.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxDecryptShowPrivateKeyToggle,type:`button`,children:e.boxDecryptShowPrivateKey?(0,j.jsx)(w,{size:16}):(0,j.jsx)(x,{size:16})})]}),(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,j.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptCipherText,onChange:t=>e.onBoxDecryptCipherTextChange(t.target.value),rows:5,placeholder:t(`web3.box.cipherDecryptPlaceholder`),translate:`no`}),(0,j.jsx)(`div`,{className:`web3-box-actions`,children:(0,j.jsxs)(`button`,{className:`btn btn-secondary`,onClick:e.onDecryptOnly,type:`button`,children:[(0,j.jsx)(d,{size:16}),t(`web3.box.decryptTitle`)]})}),e.boxDecryptError&&(0,j.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxDecryptError}),(0,j.jsxs)(`div`,{className:`web3-box-result`,children:[(0,j.jsx)(`label`,{className:`web3-box-result-header`,children:(0,j.jsx)(`span`,{children:t(`web3.box.decryptResult`)})}),(0,j.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptResult,readOnly:!0,rows:5,placeholder:t(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]})]})]})}function me({walletResult:e,publicPem:t,privatePem:n}){let{t:r}=D();if(!t||!n)return(0,j.jsx)(g,{icon:(0,j.jsx)(f,{size:36}),message:r(`web3.empty.pem`)});let i=e?.username||`wallet`;return(0,j.jsxs)(`div`,{className:`web3-pem-list`,children:[(0,j.jsx)(_,{label:`${i}.pub`,pem:t,filename:`${i}.pub`}),(0,j.jsx)(_,{label:`${i}.pem`,pem:n,filename:`${i}.pem`})]})}var he=Object.defineProperty,N=Object.getOwnPropertySymbols,P=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,I=(e,t,n)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t)=>{for(var n in t||={})P.call(t,n)&&I(e,n,t[n]);if(N)for(var n of N(t))F.call(t,n)&&I(e,n,t[n]);return e},R=(e,t)=>{var n={};for(var r in e)P.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&N)for(var r of N(e))t.indexOf(r)<0&&F.call(e,r)&&(n[r]=e[r]);return n},z;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}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 n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,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;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};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;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(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 i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}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)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(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 n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(z||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(z||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(z||={});var B=z,ge={L:B.QrCode.Ecc.LOW,M:B.QrCode.Ecc.MEDIUM,Q:B.QrCode.Ecc.QUARTILE,H:B.QrCode.Ecc.HIGH},_e=128,V=`L`,H=`#FFFFFF`,U=`#000000`,W=!1,G=1,ve=4,ye=0,be=.1;function xe(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function K(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Se(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*be),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Ce(e,t){return t==null?e?ve:ye:Math.max(Math.floor(t),0)}function q({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=A.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...B.QrSegment.makeSegments(t)),e),[]);return B.QrCode.encodeSegments(r,ge[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=A.useMemo(()=>{let e=c.getModules(),t=Ce(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Se(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var we=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Te=A.forwardRef(function(e,t){let n=e,{value:r,size:i=_e,level:a=V,bgColor:o=H,fgColor:s=U,includeMargin:c=W,minVersion:l=G,boostLevel:u,marginSize:d,imageSettings:f}=n,p=R(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=R(p,[`style`]),g=f?.src,_=A.useRef(null),v=A.useRef(null),y=A.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=A.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=q({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});A.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=K(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,we?t.fill(new Path2D(xe(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),A.useEffect(()=>{x(!1)},[g]);let ee=L({height:i,width:i},m),E=null;return g!=null&&(E=A.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),A.createElement(A.Fragment,null,A.createElement(`canvas`,L({style:ee,height:i,width:i,ref:y,role:`img`},h)),E)});Te.displayName=`QRCodeCanvas`;var J=A.forwardRef(function(e,t){let n=e,{value:r,size:i=_e,level:a=V,bgColor:o=H,fgColor:s=U,includeMargin:c=W,minVersion:l=G,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=R(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=q({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=K(g,v.excavation)),b=A.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=xe(y,h);return A.createElement(`svg`,L({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&A.createElement(`title`,null,d),A.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),A.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});J.displayName=`QRCodeSVG`;function Ee({walletResult:e,mnemonicPhrase:t,deriveBatch:n,deriveList:r,deriveShowIndex:i,deriveShowAddress:o,deriveShowPrivateKey:s,showAddressQr:c,showMnemonicReveal:l,showMnemonicQr:u,onToggleAddressQr:f,onToggleMnemonicReveal:p,onToggleMnemonicQr:h,onToggleDeriveIndex:_,onToggleDeriveAddress:y,onToggleDerivePrivateKey:b,onDerive:x}){let{t:S}=D(),C=e?.address||``;return!e||!C?(0,j.jsx)(g,{icon:(0,j.jsx)(v,{size:36}),message:S(`web3.empty.walletTools`)}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,j.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:f,children:[(0,j.jsx)(ce,{size:14}),S(c?`web3.action.hideAddressQr`:`web3.action.showAddressQr`),c?(0,j.jsx)(k,{size:14}):(0,j.jsx)(a,{size:14})]}),c&&(0,j.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,j.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,j.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:C}),(0,j.jsx)(O,{text:C})]}),(0,j.jsx)(`div`,{className:`qr-wrap`,children:(0,j.jsx)(J,{value:C,size:200})})]})]}),t&&(0,j.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,j.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:p,children:[(0,j.jsx)(d,{size:14}),S(l?`web3.action.hideMnemonic`:`web3.action.showMnemonic`),l?(0,j.jsx)(k,{size:14}):(0,j.jsx)(a,{size:14})]}),l&&(0,j.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,j.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,j.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:t}),(0,j.jsx)(O,{text:t})]}),(0,j.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,j.jsx)(m,{size:14}),S(`web3.warning.mnemonic`)]}),(0,j.jsx)(`button`,{className:`web3-tools-toggle`,onClick:h,children:S(u?`web3.action.hideMnemonicQr`:`web3.action.showMnemonicQr`)}),u&&(0,j.jsx)(`div`,{className:`qr-wrap`,children:(0,j.jsx)(J,{value:t,size:260})})]})]}),t&&(0,j.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,j.jsx)(`div`,{children:(0,j.jsx)(`button`,{className:`btn btn-primary`,onClick:x,children:S(`web3.action.deriveAddresses`,{count:n})})}),(0,j.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,j.jsx)(m,{size:14}),S(`web3.warning.privateKey`)]}),r.length>0&&(0,j.jsx)(`div`,{className:`web3-derive-table-wrap`,children:(0,j.jsxs)(`table`,{className:`web3-derive-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{onClick:_,className:`web3-derive-th`,children:S(`web3.label.account`)}),(0,j.jsx)(`th`,{onClick:y,className:`web3-derive-th`,children:S(`web3.label.address`)}),(0,j.jsx)(`th`,{onClick:b,className:`web3-derive-th danger`,children:S(`web3.label.privateKeyToggle`,{action:S(s?`web3.action.hide`:`web3.action.show`)})})]})}),(0,j.jsx)(`tbody`,{children:r.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:i?e.index+1:``}),(0,j.jsx)(`td`,{translate:`no`,children:o?e.address:``}),(0,j.jsx)(`td`,{className:`danger`,children:(0,j.jsx)(`span`,{translate:`no`,children:s?e.privateKey:``})})]},e.index))})]})})]})]})}function Y(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function De({walletResult:e,keys:t,ipns:n,avatarSrc:r,showPrivateKey:i,onTogglePrivateKey:a}){let{t:c}=D(),u=e?.address||``;return!e||!u?(0,j.jsx)(g,{icon:(0,j.jsx)(l,{size:36}),message:c(`web3.empty.identity`)}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`web3-identity-card`,children:[(0,j.jsx)(`img`,{src:r,alt:`avatar`,className:`web3-identity-avatar`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h1`,{className:`web3-identity-name`,children:e.username||c(`web3.notSignedIn`)}),(0,j.jsxs)(`div`,{className:`web3-identity-address`,children:[(0,j.jsx)(`code`,{translate:`no`,children:u.toLowerCase()}),(0,j.jsx)(O,{text:u.toLowerCase()}),(0,j.jsxs)(`a`,{href:`https://debank.com/profile/${u}`,target:`_blank`,rel:`noopener noreferrer`,className:`link`,children:[(0,j.jsx)(o,{size:14}),c(`web3.action.view`)]})]})]})]}),t&&(0,j.jsxs)(`div`,{className:`web3-key-grid`,children:[(0,j.jsx)(h,{title:c(`web3.label.ed25519Public`),icon:(0,j.jsx)(s,{size:18}),children:(0,j.jsxs)(`div`,{className:`mono-row`,children:[(0,j.jsx)(`code`,{className:`mono`,translate:`no`,children:t.ed_public_key}),(0,j.jsx)(O,{text:t.ed_public_key})]})}),(0,j.jsx)(h,{title:c(`web3.label.x25519Public`),icon:(0,j.jsx)(d,{size:18}),children:(0,j.jsxs)(`div`,{className:`mono-row`,children:[(0,j.jsx)(`code`,{className:`mono`,translate:`no`,children:t.public_key}),(0,j.jsx)(O,{text:t.public_key})]})}),(0,j.jsx)(h,{title:c(`web3.label.combinedPrivate`),icon:(0,j.jsx)(le,{size:18}),accent:!0,children:(0,j.jsxs)(`div`,{className:`mono-row danger`,children:[(0,j.jsx)(`code`,{className:`mono`,translate:`no`,children:i?t.private_key:Y(t.private_key)}),(0,j.jsx)(`button`,{className:`btn btn-icon`,onClick:a,title:c(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,j.jsx)(x,{size:14}):(0,j.jsx)(w,{size:14})})]})}),(0,j.jsx)(h,{title:`IPNS ID`,icon:(0,j.jsx)(se,{size:18}),children:(0,j.jsxs)(`div`,{className:`mono-row`,children:[(0,j.jsx)(`code`,{className:`mono`,translate:`no`,children:n}),(0,j.jsx)(O,{text:n})]})})]})]})}function Oe({username:e,password:t,showPassword:n,generating:r,onUsernameChange:i,onPasswordChange:a,onTogglePassword:o,onGenerate:s}){let{t:c}=D();return(0,j.jsxs)(`div`,{className:`input-panel`,children:[(0,j.jsxs)(`div`,{className:`web3-tools-inputs`,children:[(0,j.jsx)(`input`,{type:`text`,placeholder:c(`login.username.placeholder`),value:e,onChange:e=>i(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,j.jsxs)(`div`,{className:`input-wrap`,children:[(0,j.jsx)(`input`,{type:n?`text`:`password`,placeholder:c(`web3.login.passwordOptional`),value:t,onChange:e=>a(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,j.jsx)(`button`,{className:`input-eye`,onClick:o,type:`button`,children:n?(0,j.jsx)(w,{size:16}):(0,j.jsx)(x,{size:16})})]})]}),(0,j.jsx)(`button`,{className:`btn btn-primary btn-full`,onClick:s,disabled:!e.trim()||r,type:`button`,children:r?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`spinner`}),c(`web3.login.generating`)]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(v,{size:16}),c(`web3.login.generateAndSignIn`)]})})]})}var ke=e=>btoa(String.fromCharCode(...e)),Ae=e=>{let t=new Uint8Array([48,5,6,3,43,101,112]),n=new Uint8Array([4,34,4,32,...e.slice(0,32)]),r=new Uint8Array([2,1,0]),i=r.length+t.length+n.length,a=new Uint8Array(2+i);a[0]=48,a[1]=i;let o=2;return a.set(r,o),o+=r.length,a.set(t,o),o+=t.length,a.set(n,o),`-----BEGIN PRIVATE KEY-----\n${ke(a).match(/.{1,64}/g)?.join(`
|
|
2
|
-
`)}\n-----END PRIVATE KEY-----`},je=e=>{let t=new Uint8Array([48,5,6,3,43,101,112]),n=new Uint8Array([3,33,0,...e]),r=t.length+n.length,i=new Uint8Array(2+r);i[0]=48,i[1]=r;let a=2;return i.set(t,a),a+=t.length,i.set(n,a),`-----BEGIN PUBLIC KEY-----\n${ke(i).match(/.{1,64}/g)?.join(`
|
|
3
|
-
`)}\n-----END PUBLIC KEY-----`},X=[`wallet`,`pem`,`export`,`EA`];function Me(){let e=window.location.hash.replace(`#`,``);return X.includes(e)?e:`wallet`}function Ne(){let{t:e}=D(),t=ne(e=>e.isDarkMode),n=ne(e=>e.setIsDarkMode),a=ne(e=>e.addToast),o=ie(e=>e.setUserIdentity),[s,m]=(0,A.useState)(`wallet`),[h,g]=(0,A.useState)(``),[_,x]=(0,A.useState)(``),[C,w]=(0,A.useState)(!1),[E,oe]=(0,A.useState)(null),[O,k]=(0,A.useState)(null),[se,ce]=(0,A.useState)(``),[le,ue]=(0,A.useState)(``),[de,fe]=(0,A.useState)(``),[M,he]=(0,A.useState)(``),[N,P]=(0,A.useState)([]),[F,I]=(0,A.useState)(0),[L,R]=(0,A.useState)(!0),[z,B]=(0,A.useState)(!0),[ge,_e]=(0,A.useState)(!1),[V,H]=(0,A.useState)(!1),[U,W]=(0,A.useState)(!1),[G,ve]=(0,A.useState)(!1),[ye,be]=(0,A.useState)(!1),[xe,K]=(0,A.useState)(!1),[Se,Ce]=(0,A.useState)(``),[q,we]=(0,A.useState)(``),[Te,J]=(0,A.useState)(!1),[Y,ke]=(0,A.useState)(!1),[X,Ne]=(0,A.useState)(null),[Pe,Fe]=(0,A.useState)(``),[Ie,Le]=(0,A.useState)(``),[Re,ze]=(0,A.useState)(!1),[Be,Ve]=(0,A.useState)(!1),[Z,He]=(0,A.useState)(null),[Ue,We]=(0,A.useState)(`Hello B. This is from A.`),[Ge,Ke]=(0,A.useState)(``),[qe,Je]=(0,A.useState)(``),[Ye,Xe]=(0,A.useState)(``),[Ze,Qe]=(0,A.useState)(`Hello A. This is from B.`),[$e,et]=(0,A.useState)(``),[tt,nt]=(0,A.useState)(``),[rt,it]=(0,A.useState)(``),[at,ot]=(0,A.useState)(``),[st,ct]=(0,A.useState)(``),[lt,ut]=(0,A.useState)(``),[dt,ft]=(0,A.useState)(``),[pt,Q]=(0,A.useState)(``),[mt,ht]=(0,A.useState)(!1),[gt,_t]=(0,A.useState)(``),[vt,yt]=(0,A.useState)(``),[bt,xt]=(0,A.useState)(``),[St,Ct]=(0,A.useState)(``),[wt,$]=(0,A.useState)(``),[Tt,Et]=(0,A.useState)(!1);(0,A.useEffect)(()=>{m(Me());let e=()=>m(Me());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let Dt=e=>{m(e),window.location.hash=e},Ot=(0,A.useCallback)(async()=>{if(!h.trim())return;K(!0),await new Promise(e=>setTimeout(e,0));let t=T(h.trim(),_),n=`${t.username}#${t.address.slice(-4).toUpperCase()}`;oe(t),o({...t,displayName:n}),a(e(`login.toast.signedIn`,{username:t.username}),`success`),he(re(t.danger));let r=b(t.danger);k(r),ce(c(r.private_key,r.ed_public_key));let i=u(r.private_key,r.ed_public_key);ue(Ae(i.secretKey)),fe(je(i.publicKey)),P([]),I(0),H(!1),W(!1),ve(!1),be(!1),K(!1)},[a,_,o,e,h]);function kt(t,n,r){let i=t.trim();if(!i)return;let o=T(i,n),s=b(o.danger);r({username:o.username,address:o.address,publicKey:s.public_key,privateKey:s.private_key}),Je(``),Xe(``),nt(``),it(``),a(e(`web3.toast.accountGenerated`),`success`)}function At({senderAccount:t,recipientAccount:n,message:r,setCipherText:i,setDecryptedText:a,setError:o}){if(!t||!n){o(e(`web3.error.accountsRequired`));return}if(!r.trim()){o(e(`web3.error.messageRequired`));return}i(ee(r,{senderPrivateKey:t.privateKey,recipientPublicKey:n.publicKey})),a(``),o(``)}function jt({senderAccount:t,recipientAccount:n,cipherText:r,setDecryptedText:i,setError:a}){if(!t||!n){a(e(`web3.error.accountsRequired`));return}if(!r.trim()){a(e(`web3.error.cipherRequired`));return}let o=y(r,{senderPublicKey:t.publicKey,recipientPrivateKey:n.privateKey});if(!o){a(e(`web3.error.decryptFailed`)),i(``);return}i(o),a(``)}function Mt(){if(!at.trim()){Q(e(`web3.error.senderPublicRequired`));return}if(!st.trim()){Q(e(`web3.error.recipientPrivateRequired`));return}if(!lt.trim()){Q(e(`web3.error.cipherRequired`));return}let t=y(lt,{senderPublicKey:at.trim(),recipientPrivateKey:st.trim()});if(!t){Q(e(`web3.error.decryptFailed`)),ft(``);return}ft(t),Q(``)}function Nt(){if(!gt.trim()){$(e(`web3.error.senderPrivateRequired`));return}if(!vt.trim()){$(e(`web3.error.recipientPublicRequired`));return}if(!bt.trim()){$(e(`web3.error.messageRequired`));return}Ct(ee(bt,{senderPrivateKey:gt.trim(),recipientPublicKey:vt.trim()})),$(``)}let Pt=()=>{if(!M)return;let e=[];for(let t=F;t<F+10;t++){let n=`m/44'/60'/0'/0/${t}`,r=S.fromPhrase(M,void 0,n);e.push({index:t,address:r.address,privateKey:r.privateKey})}P(t=>[...t,...e]),I(e=>e+10)},Ft=te(E?.address||void 0),It=s===`wallet`?`web3.view.wallet`:s===`pem`?`web3.view.pem`:s===`EA`?`web3.view.asymmetric`:`web3.view.export`,Lt=[{id:`wallet`,icon:(0,j.jsx)(l,{size:16}),labelKey:`web3.view.wallet`},{id:`pem`,icon:(0,j.jsx)(f,{size:16}),labelKey:`web3.view.pem`},{id:`export`,icon:(0,j.jsx)(v,{size:16}),labelKey:`web3.view.export`},{id:`EA`,icon:(0,j.jsx)(d,{size:16}),labelKey:`web3.view.asymmetric`}],Rt=s!==`EA`;return(0,j.jsx)(p,{sidebar:({closeSidebar:t})=>(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`sidebar-header sidebar-header-link`,onClick:()=>window.location.href=`/`,children:[(0,j.jsx)(ae,{size:18}),(0,j.jsx)(`h1`,{children:`MOST PEOPLE`})]}),(0,j.jsx)(`nav`,{className:`sidebar-nav`,children:Lt.map(n=>(0,j.jsxs)(`button`,{onClick:()=>{Dt(n.id),t()},className:`sidebar-nav-btn ${s===n.id?`active`:``}`,children:[n.icon,(0,j.jsx)(`span`,{children:e(n.labelKey)})]},n.id))})]}),headerTitle:(0,j.jsx)(`h2`,{className:`header-title`,children:e(It)}),headerRight:(0,j.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>n(!t),title:e(`common.theme.toggle`),children:t?(0,j.jsx)(r,{size:16}):(0,j.jsx)(i,{size:16})}),children:(0,j.jsx)(`div`,{className:`web3-page`,children:(0,j.jsxs)(`div`,{className:`web3-container ${s===`EA`?`wide`:``}`,children:[Rt&&(0,j.jsx)(Oe,{username:h,password:_,showPassword:C,generating:xe,onUsernameChange:g,onPasswordChange:x,onTogglePassword:()=>w(!C),onGenerate:Ot}),s===`wallet`&&(0,j.jsx)(De,{walletResult:E,keys:O,ipns:se,avatarSrc:Ft,showPrivateKey:ye,onTogglePrivateKey:()=>be(!ye)}),s===`pem`&&(0,j.jsx)(me,{walletResult:E,publicPem:de,privatePem:le}),s===`export`&&(0,j.jsx)(Ee,{walletResult:E,mnemonicPhrase:M,deriveBatch:10,deriveList:N,deriveShowIndex:L,deriveShowAddress:z,deriveShowPrivateKey:ge,showAddressQr:V,showMnemonicReveal:U,showMnemonicQr:G,onToggleAddressQr:()=>H(!V),onToggleMnemonicReveal:()=>W(!U),onToggleMnemonicQr:()=>ve(!G),onToggleDeriveIndex:()=>R(!L),onToggleDeriveAddress:()=>B(!z),onToggleDerivePrivateKey:()=>_e(!ge),onDerive:Pt}),s===`EA`&&(0,j.jsx)(pe,{boxAUsername:Se,boxAPassword:q,boxAShowPassword:Te,boxAShowPrivateKey:Y,boxAAccount:X,boxBUsername:Pe,boxBPassword:Ie,boxBShowPassword:Re,boxBShowPrivateKey:Be,boxBAccount:Z,boxABMessage:Ue,boxABCipherText:Ge,boxABDecryptedText:qe,boxABError:Ye,boxBAMessage:Ze,boxBACipherText:$e,boxBADecryptedText:tt,boxBAError:rt,boxEncryptSenderPrivateKey:gt,boxEncryptRecipientPublicKey:vt,boxEncryptMessage:bt,boxEncryptCipherText:St,boxEncryptError:wt,boxEncryptShowPrivateKey:Tt,boxDecryptSenderPublicKey:at,boxDecryptRecipientPrivateKey:st,boxDecryptCipherText:lt,boxDecryptResult:dt,boxDecryptError:pt,boxDecryptShowPrivateKey:mt,onBoxAUsernameChange:Ce,onBoxAPasswordChange:we,onBoxAShowPasswordToggle:()=>J(!Te),onBoxAShowPrivateKeyToggle:()=>ke(!Y),onGenerateBoxA:()=>kt(Se,q,Ne),onBoxBUsernameChange:Fe,onBoxBPasswordChange:Le,onBoxBShowPasswordToggle:()=>ze(!Re),onBoxBShowPrivateKeyToggle:()=>Ve(!Be),onGenerateBoxB:()=>kt(Pe,Ie,He),onBoxABMessageChange:We,onBoxABCipherTextChange:Ke,onEncryptBoxAB:()=>At({senderAccount:X,recipientAccount:Z,message:Ue,setCipherText:Ke,setDecryptedText:Je,setError:Xe}),onDecryptBoxAB:()=>jt({senderAccount:X,recipientAccount:Z,cipherText:Ge,setDecryptedText:Je,setError:Xe}),onBoxBAMessageChange:Qe,onBoxBACipherTextChange:et,onEncryptBoxBA:()=>At({senderAccount:Z,recipientAccount:X,message:Ze,setCipherText:et,setDecryptedText:nt,setError:it}),onDecryptBoxBA:()=>jt({senderAccount:Z,recipientAccount:X,cipherText:$e,setDecryptedText:nt,setError:it}),onBoxEncryptSenderPrivateKeyChange:_t,onBoxEncryptRecipientPublicKeyChange:yt,onBoxEncryptMessageChange:xt,onBoxEncryptShowPrivateKeyToggle:()=>Et(!Tt),onEncryptOnly:Nt,onBoxDecryptSenderPublicKeyChange:ot,onBoxDecryptRecipientPrivateKeyChange:ct,onBoxDecryptCipherTextChange:ut,onBoxDecryptShowPrivateKeyToggle:()=>ht(!mt),onDecryptOnly:Mt})]})})})}var Pe=oe(`/web3/`)({component:Ne});export{Pe as Route};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{t as r}from"./arrow-right-CL9YSDVS.js";import{i}from"./LanguageToggle-B4ZNuBCV.js";import{t as a}from"./download-D0oMEYQZ.js";import{t as o}from"./external-link-Cm2WCUxv.js";import{t as s}from"./hard-drive-B3CQbcp2.js";import{t as c}from"./message-square-DwBq_Go5.js";import{t as l}from"./notebook-pen-Up7r5zoI.js";import{t as u}from"./wallet-DlkawdPJ.js";import{J as d,W as f,Z as p,g as m,nt as h,p as g,tt as _}from"./index-WCK14Vja.js";import{t as v}from"./MarketingLayout-DVH0Nx7S.js";var y=d(`arrow-up-right`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),b=d(`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`}]]),x=d(`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`}]]),S=t(e(),1),C=n(),w=[{id:`app`,titleKey:`portal.feature.app.title`,subtitleKey:`portal.feature.app.subtitle`,icon:(0,C.jsx)(b,{size:28}),path:`/app/`,requiresBackend:!0,heroKey:`portal.feature.app.hero`,descKey:`portal.feature.app.desc`,featureKeys:[`portal.feature.app.bullet.localIdentity`,`portal.feature.app.bullet.hyperswarm`,`portal.feature.app.bullet.largeFiles`,`portal.feature.app.bullet.cid`,`portal.feature.app.bullet.seedAfterDownload`,`portal.feature.app.bullet.noCloud`,`portal.feature.app.bullet.desktop`,`portal.feature.app.bullet.openSource`],steps:[{num:`1`,titleKey:`portal.feature.app.step.download.title`,descKey:`portal.feature.app.step.download.desc`,link:`/download/`,linkTextKey:`portal.feature.app.step.download.link`,hideInDesktopClient:!0},{num:`2`,titleKey:`portal.feature.app.step.install.title`,descKey:`portal.feature.app.step.install.desc`,hideInDesktopClient:!0},{num:`3`,titleKey:`portal.feature.app.step.share.title`,descKey:`portal.feature.app.step.share.desc`}]},{id:`chat`,titleKey:`portal.feature.chat.title`,subtitleKey:`portal.feature.chat.subtitle`,icon:(0,C.jsx)(c,{size:28}),path:`/chat/`,requiresBackend:!0,heroKey:`portal.feature.chat.hero`,descKey:`portal.feature.chat.desc`,featureKeys:[`portal.feature.chat.bullet.encrypted`,`portal.feature.chat.bullet.identity`,`portal.feature.chat.bullet.sync`,`portal.feature.chat.bullet.offline`,`portal.feature.chat.bullet.noAccount`],steps:[{num:`1`,titleKey:`portal.feature.chat.step.download.title`,descKey:`portal.feature.chat.step.download.desc`,link:`/download/`,linkTextKey:`portal.feature.chat.step.download.link`,hideInDesktopClient:!0},{num:`2`,titleKey:`portal.feature.chat.step.create.title`,descKey:`portal.feature.chat.step.create.desc`},{num:`3`,titleKey:`portal.feature.chat.step.send.title`,descKey:`portal.feature.chat.step.send.desc`}]},{id:`note`,titleKey:`portal.feature.note.title`,subtitleKey:`portal.feature.note.subtitle`,icon:(0,C.jsx)(l,{size:28}),path:`/note/`,requiresBackend:!1,heroKey:`portal.feature.note.hero`,descKey:`portal.feature.note.desc`,featureKeys:[`portal.feature.note.bullet.markdown`,`portal.feature.note.bullet.privacy`,`portal.feature.note.bullet.folders`,`portal.feature.note.bullet.web3`,`portal.feature.note.bullet.backup`,`portal.feature.note.bullet.independent`],steps:[{num:`1`,titleKey:`portal.feature.note.step.account.title`,descKey:`portal.feature.note.step.account.desc`},{num:`2`,titleKey:`portal.feature.note.step.create.title`,descKey:`portal.feature.note.step.create.desc`},{num:`3`,titleKey:`portal.feature.note.step.backup.title`,descKey:`portal.feature.note.step.backup.desc`}]},{id:`gandengyan`,titleKey:`portal.feature.game.title`,subtitleKey:`portal.feature.game.subtitle`,icon:(0,C.jsx)(x,{size:28}),path:`/game/gandengyan/`,requiresBackend:!0,heroKey:`portal.feature.game.hero`,descKey:`portal.feature.game.desc`,featureKeys:[`portal.feature.game.bullet.account`,`portal.feature.game.bullet.channel`,`portal.feature.game.bullet.link`,`portal.feature.game.bullet.rules`,`portal.feature.game.bullet.maintain`],steps:[{num:`1`,titleKey:`portal.feature.game.step.login.title`,descKey:`portal.feature.game.step.login.desc`},{num:`2`,titleKey:`portal.feature.game.step.create.title`,descKey:`portal.feature.game.step.create.desc`},{num:`3`,titleKey:`portal.feature.game.step.test.title`,descKey:`portal.feature.game.step.test.desc`}]},{id:`web3`,titleKey:`portal.feature.web3.title`,subtitleKey:`portal.feature.web3.subtitle`,icon:(0,C.jsx)(u,{size:28}),path:`/web3/`,requiresBackend:!1,heroKey:`portal.feature.web3.hero`,descKey:`portal.feature.web3.desc`,featureKeys:[`portal.feature.web3.bullet.frontend`,`portal.feature.web3.bullet.keys`,`portal.feature.web3.bullet.mnemonic`,`portal.feature.web3.bullet.eth`,`portal.feature.web3.bullet.pem`,`portal.feature.web3.bullet.qr`],steps:[{num:`1`,titleKey:`portal.feature.web3.step.username.title`,descKey:`portal.feature.web3.step.username.desc`},{num:`2`,titleKey:`portal.feature.web3.step.keys.title`,descKey:`portal.feature.web3.step.keys.desc`},{num:`3`,titleKey:`portal.feature.web3.step.export.title`,descKey:`portal.feature.web3.step.export.desc`}]}];function T(){let e=m(e=>e.hasBackend),t=m(e=>e.openConnectModal),[n,c]=(0,S.useState)(`app`),{t:l}=p(),u=g(),d=w.find(e=>e.id===n)||w[0],_=l(d.titleKey),v=d.steps.filter(e=>!(u&&e.hideInDesktopClient));return(0,C.jsxs)(`div`,{className:`portal-page`,children:[(0,C.jsx)(`section`,{className:`portal-hero`,children:(0,C.jsxs)(`div`,{className:`mkt-container`,children:[(0,C.jsx)(`h1`,{className:`portal-hero-title`,children:l(`common.brand`)}),(0,C.jsx)(`p`,{className:`portal-hero-subtitle`,children:l(`portal.hero.subtitle`)})]})}),(0,C.jsx)(`section`,{className:`portal-cards-section`,children:(0,C.jsxs)(`div`,{className:`mkt-container`,children:[(0,C.jsx)(`div`,{className:`portal-cards`,children:w.map(t=>{let r=n===t.id,i=t.requiresBackend,a=i?e===!0?`connected`:e===!1?`disconnected`:`checking`:`none`,o=l(t.titleKey);return(0,C.jsxs)(`button`,{className:`portal-card ${r?`active`:``}`,onClick:()=>c(t.id),children:[(0,C.jsx)(h,{to:t.path,className:`btn btn-icon portal-card-open-btn`,onClick:e=>e.stopPropagation(),title:l(`portal.openFeature`,{title:o}),children:(0,C.jsx)(y,{size:16})}),(0,C.jsx)(`div`,{className:`portal-card-icon`,children:t.icon}),(0,C.jsx)(`div`,{className:`portal-card-title`,children:o}),(0,C.jsx)(`div`,{className:`portal-card-subtitle`,children:l(t.subtitleKey)}),i?(0,C.jsxs)(`div`,{className:`ui-badge portal-card-status ${a}`,children:[a===`checking`&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`span`,{className:`status-dot checking`}),l(`common.status.checking`)]}),a===`connected`&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`span`,{className:`status-dot connected`}),l(`common.status.connected`)]}),a===`disconnected`&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`span`,{className:`status-dot disconnected`}),l(`common.status.needsConnection`)]})]}):(0,C.jsxs)(`div`,{className:`ui-badge portal-card-status ready`,children:[(0,C.jsx)(`span`,{className:`status-dot ready`}),l(`common.status.ready`)]})]},t.id)})}),(0,C.jsxs)(`div`,{className:`portal-node-actions`,"aria-label":l(`portal.nodeEntry`),children:[(0,C.jsxs)(`button`,{onClick:t,className:`btn btn-secondary`,children:[(0,C.jsx)(f,{size:16}),l(`portal.webConnectNode`)]}),(0,C.jsxs)(h,{to:`/admin/`,className:`btn btn-secondary`,children:[(0,C.jsx)(s,{size:16}),l(`portal.nodeAdmin`)]})]})]})}),(0,C.jsx)(`section`,{className:`portal-marketing`,children:(0,C.jsx)(`div`,{className:`mkt-container`,children:(0,C.jsxs)(`div`,{className:`portal-marketing-inner`,children:[(0,C.jsxs)(`div`,{className:`portal-marketing-header`,children:[(0,C.jsx)(`h2`,{children:l(d.heroKey)}),(0,C.jsx)(`p`,{children:l(d.descKey)})]}),(0,C.jsx)(`div`,{className:`portal-marketing-features`,children:d.featureKeys.map(e=>(0,C.jsxs)(`div`,{className:`portal-feature-item`,children:[(0,C.jsx)(`span`,{className:`portal-feature-icon`,children:(0,C.jsx)(i,{size:14,strokeWidth:3})}),(0,C.jsx)(`span`,{children:l(e)})]},e))}),(0,C.jsx)(`div`,{className:`portal-marketing-steps`,children:v.map((e,t)=>(0,C.jsxs)(`div`,{className:`portal-step`,children:[(0,C.jsx)(`span`,{className:`portal-step-num`,children:t+1}),(0,C.jsxs)(`div`,{className:`portal-step-content`,children:[(0,C.jsx)(`strong`,{children:l(e.titleKey)}),(0,C.jsx)(`p`,{children:l(e.descKey)}),e.code&&(0,C.jsx)(`code`,{className:`portal-step-code`,translate:`no`,children:e.code}),e.link&&e.linkTextKey&&(0,C.jsx)(`p`,{className:`portal-step-link`,children:(0,C.jsxs)(h,{to:e.link,children:[l(e.linkTextKey),` `,(0,C.jsx)(o,{size:12})]})})]})]},e.num))}),(0,C.jsxs)(`div`,{className:`portal-actions`,children:[(0,C.jsxs)(h,{to:d.path,className:`btn btn-primary`,children:[l(`portal.enterFeature`,{title:_}),(0,C.jsx)(r,{size:16})]}),d.requiresBackend&&e===!1&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`button`,{onClick:t,className:`btn btn-secondary`,children:[(0,C.jsx)(f,{size:16}),l(`portal.webConnectNode`)]}),!u&&(0,C.jsxs)(h,{to:`/download/`,className:`btn btn-secondary`,children:[(0,C.jsx)(a,{size:16}),l(`nav.downloadClient`)]})]})]})]})})})]})}function E(){return(0,C.jsx)(v,{children:(0,C.jsx)(T,{})})}var D=_(`/`)({component:E});export{D as Route};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{i as r,n as i,r as a}from"./LanguageToggle-B4ZNuBCV.js";import{t as o}from"./circle-alert-oiiRDvhx.js";import{t as s}from"./key-round-CzuljhND.js";import{t as c}from"./AppShell-OiOEqXPr.js";import{X as l,Y as u,Z as d,et as f,g as p,h as m,m as h,q as g,tt as _,v,y}from"./index-WCK14Vja.js";import{t as b}from"./channelApi-DNdJfsJ-.js";var x=t(e(),1),S=[{name:`node_url`,required:!1,descriptionKey:`chatJoin.field.nodeUrl`},{name:`node_invite`,required:!1,descriptionKey:`chatJoin.field.nodeInvite`},{name:`uid`,required:!0,descriptionKey:`chatJoin.field.uid`},{name:`identity`,required:!1,descriptionKey:`chatJoin.field.identity`},{name:`logo`,required:!1,descriptionKey:`chatJoin.field.logo`},{name:`avatar`,required:!1,descriptionKey:`chatJoin.field.avatar`},{name:`name`,required:!1,descriptionKey:`chatJoin.field.name`},{name:`locale`,required:!1,descriptionKey:`chatJoin.field.locale`},{name:`channels[].id`,required:!0,descriptionKey:`chatJoin.field.channelId`},{name:`channels[].name`,required:!1,descriptionKey:`chatJoin.field.channelName`}];function C(e){let t=typeof e==`string`?e.trim():e;return u(t)?t:void 0}var w=`data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"%3E%3Crect width="64" height="64" rx="16" fill="%232f7dd1"/%3E%3Ccircle cx="32" cy="25" r="11" fill="%23f8fbff"/%3E%3Cpath d="M14 56c3-12 12-18 18-18s15 6 18 18" fill="%23f8fbff"/%3E%3C/svg%3E`,T=`data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"%3E%3Crect width="64" height="64" rx="16" fill="%230f9f7a"/%3E%3Cpath d="M18 20h28v22H18z" rx="6" fill="%23f7fff9"/%3E%3Ccircle cx="27" cy="31" r="3" fill="%230f9f7a"/%3E%3Ccircle cx="37" cy="31" r="3" fill="%230f9f7a"/%3E%3Cpath d="M29 39h6" stroke="%230f9f7a" stroke-width="4" stroke-linecap="round"/%3E%3Cpath d="M32 12v8" stroke="%23f7fff9" stroke-width="5" stroke-linecap="round"/%3E%3C/svg%3E`,E=Object.freeze({id:`chatjoin_support`,name:`User / Service 测试频道`}),D=Object.freeze([Object.freeze({uid:`user`,identity:`user`,name:`测试用户`,avatar:w}),Object.freeze({uid:`service`,identity:`service`,name:`测试客服`,avatar:T})]),O=Object.freeze(D.map(e=>Object.freeze({locale:`zh-CN`,uid:e.uid,identity:e.identity,avatar:e.avatar,name:e.name,channels:[E]})));function k(e){let t=String(e||``).trim();return O.find(e=>e.uid===t)||null}function A(e){return JSON.stringify(e,null,2)}var j=n(),M=`0x955fe80bdb8312165471fcacd6a8f83df88a770dda6f38657ca4e62ec28d5b54`,N=50,P=`https://api.most.box`;function F(e){try{return JSON.parse(e)}catch{return null}}function I(e){return typeof e==`string`?F(e):e}function L(e,t){return t===null?e:JSON.stringify(t,null,2)}function R(e,t,n){if(t&&typeof t==`object`&&`error`in t){let e=t.error;if(typeof e==`string`)return e}return e||n}function z(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function B(e){return typeof e==`string`?e.trim():``}function V(e){let t=B(e);return t===`user`||t===`service`||t===`service_ai`?t:void 0}function H(e){let t=I(e);if(!z(t))return null;let n=B(t.uid),r=(Array.isArray(t.channels)?t.channels:[]).filter(z).map(e=>({id:B(e.id),name:B(e.name)||void 0})).filter(e=>e.id);return!n||r.length===0?null:{node_url:B(t.node_url)||void 0,node_invite:B(t.node_invite)||void 0,locale:C(t.locale),uid:n,identity:V(t.identity),logo:B(t.logo)||void 0,avatar:B(t.avatar)||void 0,name:B(t.name)||void 0,channels:r}}function U(e){return`/chat?channel=${encodeURIComponent(e)}`}function W(e){return String(e||``).trim().slice(0,N)}function G(){let{t:e,setLocale:t}=d(),n=f({select:e=>e.searchStr}),{token:u,pub:_,fixture:C}=(0,x.useMemo)(()=>{let e=new URLSearchParams(n);return{token:e.get(`token`)||``,pub:e.get(`pub`)||``,fixture:e.get(`fixture`)||``}},[n]),w=p(e=>e.isDarkMode),T=p(e=>e.setIsDarkMode),E=p(e=>e.hasBackend),D=h(e=>e.setUserIdentity),[O,N]=(0,x.useState)(``),[I,z]=(0,x.useState)(``),[B,V]=(0,x.useState)(!0),[G,K]=(0,x.useState)(``),q=(0,x.useRef)(``);return(0,x.useEffect)(()=>{let n=k(C);if(C&&!n){z(e(`chatJoin.error.unknownFixture`,{fixture:C})),V(!1);return}if(!n&&!u){z(e(`chatJoin.error.missingToken`)),V(!1);return}if(!n&&!_){z(e(`chatJoin.error.missingPub`)),V(!1);return}if(E===null){K(e(`chatJoin.status.checkingBackend`));return}let r=n?`fixture:${C}`:`${u}:${_}`;if(q.current===r)return;q.current=r;async function i(n){let r=(t,r)=>n.locale?l(t,n.locale,r):e(t,r);if(n.locale&&t(n.locale),n.node_url){if(K(r(`chatJoin.status.connectingRemote`)),!(await v({url:n.node_url,invite:n.node_invite||``})).ok)throw Error(r(`chatJoin.error.remoteConnectFailed`));y({url:n.node_url,invite:n.node_invite||``}),p.setState({hasBackend:!0})}else if(!E)throw Error(r(`chatJoin.error.noBackend`));K(r(`chatJoin.status.signingIn`));let i=m(n.uid,``);D({...i,identity:n.identity,displayName:n.name||i.displayName,logo:n.logo,avatar:n.avatar}),K(r(`chatJoin.status.joiningChannel`));let a=``;for(let e of n.channels){let t=await b.createChannel(e.id,`public`,{displayName:n.name||i.displayName,avatar:n.avatar}),r=t.channelKey||t.key||e.id;a||=r;let o=W(e.name);o&&await b.setChannelRemark(r,o)}let o=n.channels[0];K(r(`chatJoin.status.openingChannel`)),window.location.href=U(a||o.id)}async function a(){try{if(n){K(e(`chatJoin.status.loadingFixture`,{name:n.name||C})),N(A(n)),await i(n);return}K(e(`chatJoin.status.decryptingInvite`));let t=await fetch(`${P}/api/chat.join.decrypt`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:u,pub:_})}),r=await t.text(),a=F(r);if(!t.ok)z(R(r,a,e(`chatJoin.error.decrypt`)));else{N(L(r,a));let t=H(a);if(!t){z(e(`chatJoin.error.invalidInvite`));return}await i(t)}}catch(t){z(e(`chatJoin.error.request`,{message:t instanceof Error?t.message:String(t)}))}finally{V(!1)}}a()},[C,E,_,t,D,e,u]),(0,j.jsx)(c,{sidebar:()=>(0,j.jsxs)(`div`,{className:`sidebar-header sidebar-header-link`,onClick:()=>window.location.href=`/chat`,children:[(0,j.jsx)(g,{size:18}),(0,j.jsx)(`h1`,{children:`MOST PEOPLE`})]}),headerTitle:(0,j.jsx)(`h2`,{className:`header-title`,children:e(`chatJoin.title`)}),headerRight:(0,j.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>T(!w),title:e(`common.theme.toggle`),children:w?(0,j.jsx)(i,{size:16}):(0,j.jsx)(a,{size:16})}),children:(0,j.jsx)(`div`,{className:`chat-join-container`,children:(0,j.jsxs)(`div`,{className:`chat-join-panel`,children:[B?(0,j.jsxs)(`div`,{className:`chat-join-loading`,children:[(0,j.jsx)(s,{size:32}),(0,j.jsx)(`p`,{children:G||e(`chatJoin.status.decrypting`)})]}):I?(0,j.jsxs)(`div`,{className:`chat-join-error`,children:[(0,j.jsx)(o,{size:32}),(0,j.jsx)(`p`,{children:I}),G&&(0,j.jsx)(`p`,{className:`chat-join-status`,children:G}),O&&(0,j.jsx)(`pre`,{className:`chat-join-result`,translate:`no`,children:O})]}):(0,j.jsxs)(`div`,{className:`chat-join-success`,children:[(0,j.jsx)(r,{size:32}),(0,j.jsx)(`p`,{children:G||e(`chatJoin.status.decryptSuccess`)}),(0,j.jsx)(`pre`,{className:`chat-join-result`,translate:`no`,children:O})]}),(0,j.jsxs)(`section`,{className:`chat-join-spec`,"aria-labelledby":`chat-join-spec-title`,children:[(0,j.jsxs)(`div`,{className:`chat-join-helper-title`,children:[(0,j.jsx)(s,{size:18}),(0,j.jsx)(`h3`,{id:`chat-join-spec-title`,children:e(`chatJoin.specTitle`)})]}),(0,j.jsx)(`div`,{className:`chat-join-field-list`,children:S.map(t=>(0,j.jsxs)(`div`,{className:`chat-join-field`,children:[(0,j.jsxs)(`div`,{className:`chat-join-field-meta`,children:[(0,j.jsx)(`code`,{className:`chat-join-field-name`,children:t.name}),(0,j.jsx)(`span`,{children:t.required?e(`chatJoin.field.required`):e(`chatJoin.field.optional`)})]}),(0,j.jsx)(`p`,{children:e(t.descriptionKey)})]},t.name))})]}),(0,j.jsxs)(`section`,{className:`chat-join-helper`,"aria-labelledby":`ea-test-title`,children:[(0,j.jsxs)(`div`,{className:`chat-join-helper-title`,children:[(0,j.jsx)(s,{size:18}),(0,j.jsx)(`h3`,{id:`ea-test-title`,children:e(`chatJoin.testPublicKey`)})]}),(0,j.jsx)(`code`,{className:`ui-code-box chat-join-public-key`,translate:`no`,children:M}),(0,j.jsx)(`a`,{className:`btn`,href:`/web3/#EA`,target:`_blank`,children:e(`chatJoin.openWeb3`)})]})]})})})}function K(){return(0,j.jsx)(x.Suspense,{children:(0,j.jsx)(G,{})})}var q=_(`/chat/join/`)({component:K});export{q as Route};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{i as r}from"./LanguageToggle-B4ZNuBCV.js";import{t as i}from"./external-link-Cm2WCUxv.js";import{i as a,n as o,r as s}from"./mp-Bln2MB9G.js";import{t as c}from"./key-round-CzuljhND.js";import{t as l}from"./save-CiqyiifY.js";import{t as u}from"./shield-check-CxWxsNLc.js";import{E as d,J as f,Z as p,a as m,g as h,i as g,m as _,nt as v,o as y,s as b,tt as x,u as S}from"./index-WCK14Vja.js";import{t as C}from"./MarketingHeader-yIZuQP7m.js";import{t as w}from"./CopyButton-Dm7krgbq.js";import{t as T}from"./MarketingLayout-DVH0Nx7S.js";var E=f(`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`}]]),D=f(`wallet-cards`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2`,key:`4125el`}],[`path`,{d:`M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21`,key:`1dpki6`}]]),O=t(e(),1),k=n(),A=[{value:``,labelKey:`profile.avatar.address`},...g.map(e=>({value:y(e),labelKey:`profile.avatar.${e}`}))];function j(e){return!!(e&&!b(e))}function M(e){try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function N(){let{t:e}=p(),t=h(e=>e.addToast),n=_(e=>e.identity),f=_(e=>e.openLoginModal),g=_(e=>e.setUserIdentity),y=_(e=>e.logoutUser),[b,x]=(0,O.useState)(``),[N,I]=(0,O.useState)(``),[L,R]=(0,O.useState)(``),[z,B]=(0,O.useState)(!1),V=(0,k.jsx)(C,{});(0,O.useEffect)(()=>{if(!n){x(``),I(``),R(``);return}x(n.displayName||n.username),I(j(n.avatar)&&n.avatar||``),R(``)},[n]);let H=(0,O.useMemo)(()=>n?d(n.danger):null,[n]),U=(0,O.useMemo)(()=>H?o(H.private_key,H.ed_public_key):``,[H]);if(!n)return(0,k.jsx)(T,{header:V,children:(0,k.jsx)(`section`,{className:`profile-page`,children:(0,k.jsx)(`div`,{className:`profile-container narrow`,children:(0,k.jsxs)(`div`,{className:`profile-empty glass`,children:[(0,k.jsx)(`div`,{className:`profile-empty-icon`,children:(0,k.jsx)(s,{size:34})}),(0,k.jsx)(`h1`,{children:e(`profile.signedOut.title`)}),(0,k.jsx)(`p`,{children:e(`profile.signedOut.desc`)}),(0,k.jsxs)(`button`,{type:`button`,className:`btn btn-primary`,onClick:f,children:[(0,k.jsx)(s,{size:16}),e(`account.signIn`)]})]})})})});let W=n.avatar||``,G=m(n.address,n.avatar),K=n.address.toLowerCase(),q=N.trim().length>0;function J(r){n&&(g({...n,avatar:r||void 0}),R(``),t(e(`profile.toast.avatarUpdated`),`success`))}function Y(){if(!n)return;let r=b.trim()||n.username;g({...n,displayName:r}),x(r),t(e(`profile.toast.saved`),`success`)}function X(){let t=N.trim();if(!t){J(void 0);return}if(!M(t)){R(e(`nav.avatarUrlInvalid`));return}J(t)}function Z(){y(),B(!1)}return(0,k.jsxs)(T,{header:V,children:[(0,k.jsx)(`section`,{className:`profile-page`,children:(0,k.jsxs)(`div`,{className:`profile-container`,children:[(0,k.jsxs)(`header`,{className:`profile-header`,children:[(0,k.jsx)(`img`,{className:`profile-avatar-large`,src:G,alt:``}),(0,k.jsxs)(`div`,{className:`profile-heading`,children:[(0,k.jsx)(`p`,{className:`profile-kicker`,children:e(`profile.kicker`)}),(0,k.jsx)(`h1`,{children:n.displayName||n.username}),(0,k.jsxs)(`div`,{className:`profile-address-line`,children:[(0,k.jsx)(`code`,{translate:`no`,children:K}),(0,k.jsx)(w,{text:K}),(0,k.jsxs)(`a`,{href:`https://debank.com/profile/${n.address}`,target:`_blank`,rel:`noopener noreferrer`,className:`btn btn-secondary btn-sm`,children:[(0,k.jsx)(i,{size:14}),e(`web3.action.view`)]})]})]}),(0,k.jsxs)(`button`,{type:`button`,className:`btn btn-secondary profile-logout-btn`,onClick:()=>B(!0),children:[(0,k.jsx)(E,{size:16}),e(`account.logout`)]})]}),(0,k.jsxs)(`div`,{className:`profile-grid`,children:[(0,k.jsxs)(`section`,{className:`profile-panel`,children:[(0,k.jsx)(`div`,{className:`profile-panel-header`,children:(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`h2`,{children:e(`profile.section.account`)}),(0,k.jsx)(`p`,{children:e(`profile.section.account.desc`)})]})}),(0,k.jsxs)(`label`,{className:`profile-field`,children:[(0,k.jsx)(`span`,{children:e(`profile.label.displayName`)}),(0,k.jsxs)(`div`,{className:`profile-field-row`,children:[(0,k.jsx)(`input`,{className:`input`,value:b,onChange:e=>x(e.target.value),placeholder:e(`nav.displayNamePlaceholder`)}),(0,k.jsxs)(`button`,{type:`button`,className:`btn btn-primary`,onClick:Y,children:[(0,k.jsx)(l,{size:16}),e(`profile.action.save`)]})]})]}),(0,k.jsxs)(`div`,{className:`profile-facts`,children:[(0,k.jsx)(P,{label:e(`profile.label.username`),value:n.username}),(0,k.jsx)(P,{label:e(`web3.label.address`),value:n.address,copy:!0})]})]}),(0,k.jsxs)(`section`,{className:`profile-panel`,children:[(0,k.jsx)(`div`,{className:`profile-panel-header`,children:(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`h2`,{children:e(`profile.section.avatar`)}),(0,k.jsx)(`p`,{children:e(`profile.section.avatar.desc`)})]})}),(0,k.jsx)(`div`,{className:`profile-avatar-grid`,role:`list`,children:A.map(t=>{let i=W===t.value;return(0,k.jsxs)(`button`,{type:`button`,className:[`profile-avatar-option`,i?`selected`:``].filter(Boolean).join(` `),onClick:()=>J(t.value),"aria-pressed":i,title:e(t.labelKey),children:[(0,k.jsx)(`img`,{src:m(n.address,t.value),alt:``,"aria-hidden":`true`}),(0,k.jsx)(`span`,{children:e(t.labelKey)}),i&&(0,k.jsx)(`span`,{className:`profile-avatar-check`,children:(0,k.jsx)(r,{size:14})})]},t.value||`address`)})}),(0,k.jsxs)(`div`,{className:`profile-avatar-url`,children:[(0,k.jsxs)(`label`,{className:`profile-field`,htmlFor:`profile-avatar-url`,children:[(0,k.jsx)(`span`,{children:e(`profile.label.customAvatar`)}),(0,k.jsxs)(`div`,{className:`profile-field-row`,children:[(0,k.jsx)(`input`,{id:`profile-avatar-url`,className:`input`,value:N,onChange:e=>{I(e.target.value),R(``)},placeholder:e(`nav.avatarUrlPlaceholder`)}),(0,k.jsxs)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:X,disabled:!q,children:[(0,k.jsx)(l,{size:16}),e(`profile.action.save`)]})]})]}),L&&(0,k.jsx)(`p`,{className:`profile-error`,children:L})]})]})]}),(0,k.jsxs)(`section`,{className:`profile-panel profile-identity-panel`,children:[(0,k.jsxs)(`div`,{className:`profile-panel-header`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`h2`,{children:e(`profile.section.identity`)}),(0,k.jsx)(`p`,{children:e(`profile.section.identity.desc`)})]}),(0,k.jsxs)(v,{to:`/web3/`,hash:`wallet`,className:`btn btn-secondary`,children:[(0,k.jsx)(D,{size:16}),e(`profile.action.openWallet`)]})]}),(0,k.jsxs)(`div`,{className:`profile-key-grid`,children:[H&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(F,{title:e(`web3.label.ed25519Public`),icon:(0,k.jsx)(a,{size:18}),value:H.ed_public_key}),(0,k.jsx)(F,{title:e(`web3.label.x25519Public`),icon:(0,k.jsx)(c,{size:18}),value:H.public_key})]}),(0,k.jsx)(F,{title:`IPNS ID`,icon:(0,k.jsx)(u,{size:18}),value:U||`-`})]})]})]})}),z&&(0,k.jsx)(S,{title:e(`account.logoutTitle`),message:e(`account.logoutConfirm`),confirmText:e(`account.logout`),danger:!0,onConfirm:Z,onClose:()=>B(!1)})]})}function P({label:e,value:t,copy:n=!1}){return(0,k.jsxs)(`div`,{className:`profile-fact`,children:[(0,k.jsx)(`span`,{children:e}),(0,k.jsxs)(`div`,{className:`profile-fact-value`,children:[(0,k.jsx)(`code`,{translate:`no`,children:t}),n&&(0,k.jsx)(w,{text:t})]})]})}function F({title:e,icon:t,value:n}){return(0,k.jsxs)(`div`,{className:`profile-key-card`,children:[(0,k.jsxs)(`div`,{className:`profile-key-card-header`,children:[(0,k.jsx)(`span`,{className:`profile-key-card-icon`,children:t}),(0,k.jsx)(`span`,{children:e})]}),(0,k.jsxs)(`div`,{className:`mono-row`,children:[(0,k.jsx)(`code`,{className:`mono`,translate:`no`,children:n}),(0,k.jsx)(w,{text:n})]})]})}var I=x(`/profile/`)({component:N});export{I as Route};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{n as r,r as i}from"./LanguageToggle-B4ZNuBCV.js";import{t as a}from"./copy-giX4rmFJ.js";import{t as o}from"./AppShell-OiOEqXPr.js";import{t as s}from"./play-OszVgROb.js";import{t as c}from"./send-vwCWsZGP.js";import{i as ee,n as te,r as ne,t as re}from"./useGameRoom-DqA1mkfk.js";import{J as ie,Z as l,g as u,m as ae,tt as d}from"./index-WCK14Vja.js";var oe=ie(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),f=t(e(),1),p=[`S`,`H`,`C`,`D`],m=[`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`J`,`Q`,`K`,`A`,`2`],h=m.filter(e=>e!==`2`),g=new Map(m.map((e,t)=>[e,t+3])),_=5,se=20,v=1e3;function ce({roomCode:e,ownerAddress:t,ownerName:n,players:r=[],random:i=Math.random}){let a=E(r);return a.some(e=>e.address===q(t))||a.unshift({address:q(t),name:J(n)}),y({id:String(e||``).toUpperCase(),ownerAddress:q(t),status:`lobby`,seq:1,players:a.slice(0,6).map((e,t)=>({address:e.address,name:J(e.name),seat:t,hand:[],handCount:0,score:v,playedCards:0})),deck:[],discard:[],table:null,currentSeat:0,lastWinnerSeat:null,previousWinnerSeat:null,passSeats:[],baseScore:1,bombCount:0,diceRolls:[],roundResult:null,log:[`房间已创建`],winnerSeat:null,random:i})}function le(e,t=[]){let n=b(e);if(!n||n.status!==`lobby`)return n;let r=new Map(n.players.map(e=>[e.address,e.score]));return n.players=E(t).slice(0,6).map((e,t)=>({address:e.address,name:J(e.name),seat:t,hand:[],handCount:0,score:r.get(e.address)??v,playedCards:0})),n.seq+=1,y(n)}function ue(e,t=Math.random){let n=b(e);if(!n||n.players.length<2)throw Error(`至少需要 2 名玩家`);n.deck=N(M(),t),n.discard=[],n.table=null,n.passSeats=[],n.winnerSeat=null,n.roundResult=null,n.baseScore=1,n.bombCount=0,n.status=`playing`;for(let e of R(n))e.hand=P(n,_),e.handCount=e.hand.length,e.playedCards=0,F(e.hand);let r=k(n,t);return n.currentSeat=r.seat,n.lastWinnerSeat=null,n.log=[`新一局开始,${r.name} 先出牌`],n.diceRolls.length>0&&n.log.unshift(`骰子结果:${n.diceRolls.map(e=>`${e.name} ${e.value}`).join(`,`)}`),n.seq+=1,y(n)}function de(e,t,n){let r=b(e),i=I(r),a=q(t);if(!i||i.address!==a)return{ok:!1,error:`还没轮到你`,state:y(r)};let o=n.map(e=>i.hand.find(t=>t.id===e));if(o.length===0||o.some(e=>!e))return{ok:!1,error:`手牌不存在`,state:y(r)};let s=me(o);return s?T(s,r.table?.combo)?(o.sort(H),i.hand=i.hand.filter(e=>!n.includes(e.id)),i.handCount=i.hand.length,i.playedCards+=o.length,r.discard.push(...o),r.table={seat:i.seat,playerName:i.name,cards:o,combo:s},r.passSeats=[],r.lastWinnerSeat=i.seat,s.type===`bomb`&&(r.bombCount+=1,r.baseScore*=2),r.log.unshift(`${i.name} 出 ${s.label} ${o.map(K).join(` `)}${s.type===`bomb`?`,底分 ${r.baseScore}`:``}`),i.hand.length===0?A(r,i):z(r),r.seq+=1,{ok:!0,state:y(r)}):{ok:!1,error:`出的牌压不过上一手`,state:y(r)}:{ok:!1,error:`这个牌型不合法`,state:y(r)}}function fe(e,t){let n=b(e),r=I(n),i=q(t);return!r||r.address!==i?{ok:!1,error:`还没轮到你`,state:y(n)}:n.table?(n.passSeats.includes(r.seat)||n.passSeats.push(r.seat),n.log.unshift(`${r.name} 不要`),L(n).map(e=>e.seat).filter(e=>e!==n.lastWinnerSeat).every(e=>n.passSeats.includes(e))?(j(n),n.currentSeat=n.lastWinnerSeat,n.table=null,n.passSeats=[],n.log.unshift(`本轮结束,所有玩家各补 1 张,重新领出`)):z(n),n.seq+=1,{ok:!0,state:y(n)}):{ok:!1,error:`领出时不能不要`,state:y(n)}}function pe(e,t){let n=b(e);if(!n)return null;let r=q(t),i=n.players.findIndex(e=>e.address===r);if(i===-1)return y(n);let a=n.players[i],o=n.currentSeat===a.seat,s=n.lastWinnerSeat===a.seat;n.players.splice(i,1),n.passSeats=n.passSeats.filter(e=>e!==a.seat),n.log.unshift(`${a.name} 已退出房间`);let c=R(n);if(n.status===`playing`)if(c.length<=1)c.length===1?A(n,c[0]):(n.status=`finished`,n.log.unshift(`玩家不足,本局结束`));else{if(o){let e=L(n);if(e.length>0){let t=e.findIndex(e=>e.seat>a.seat);n.currentSeat=e[t>=0?t:0].seat}}s&&n.table&&(n.table=null,n.passSeats=[])}return n.seq+=1,y(n)}function y(e){return e?{id:e.id,ownerAddress:e.ownerAddress,status:e.status,seq:Number(e.seq||1),deck:Array.isArray(e.deck)?e.deck.map(G):[],deckCount:e.deck?.length||Number(e.deckCount||0),discard:Array.isArray(e.discard)?e.discard.map(G):[],discardCount:e.discard?.length||Number(e.discardCount||0),currentSeat:Number(e.currentSeat||0),lastWinnerSeat:e.lastWinnerSeat===null||e.lastWinnerSeat===void 0?null:Number(e.lastWinnerSeat),previousWinnerSeat:e.previousWinnerSeat===null||e.previousWinnerSeat===void 0?null:Number(e.previousWinnerSeat),baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,table:e.table?{...e.table,cards:e.table.cards.map(G)}:null,passSeats:Array.isArray(e.passSeats)?e.passSeats:[],winnerSeat:e.winnerSeat===null||e.winnerSeat===void 0?null:Number(e.winnerSeat),log:Array.isArray(e.log)?e.log.slice(0,18):[],players:R(e).map(e=>({address:e.address,name:e.name,seat:e.seat,handCount:e.hand?.length??e.handCount??0,score:Number(e.score??v),playedCards:Number(e.playedCards||0),hand:Array.isArray(e.hand)?e.hand.map(G):[]}))}:null}function b(e){return!e||typeof e!=`object`?null:{id:String(e.id||``).toUpperCase(),ownerAddress:q(e.ownerAddress),status:e.status===`playing`||e.status===`finished`?e.status:`lobby`,seq:Number(e.seq||1),players:Array.isArray(e.players)?e.players.map(D).filter(Boolean):[],deck:Array.isArray(e.deck)?e.deck.map(ge).filter(Boolean):[],discard:Array.isArray(e.discard)?e.discard.map(O).filter(Boolean):[],table:e.table&&typeof e.table==`object`?{...e.table,cards:Array.isArray(e.table.cards)?e.table.cards.map(O).filter(Boolean):[]}:null,currentSeat:Number(e.currentSeat||0),lastWinnerSeat:e.lastWinnerSeat===null||e.lastWinnerSeat===void 0?null:Number(e.lastWinnerSeat),previousWinnerSeat:e.previousWinnerSeat===null||e.previousWinnerSeat===void 0?null:Number(e.previousWinnerSeat),passSeats:Array.isArray(e.passSeats)?e.passSeats.map(Number):[],baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,log:Array.isArray(e.log)?e.log.map(String):[],winnerSeat:e.winnerSeat===null||e.winnerSeat===void 0?null:Number(e.winnerSeat)}}function me(e){if(!e?.length)return null;e=[...e].sort(H);let t=e.filter(W).length,n=e.filter(e=>!W(e));if(n.length===0)return null;let r=x(e,n,t);if(r)return r;if(e.length===1&&t===0)return w(`single`,U(e[0]),1,[U(e[0])]);if(e.length===2&&B(n,t)){let e=V(n);return w(`pair`,e,2,[e,e])}return S(e)||C(e)}function x(e,t,n){if(e.length<3||!B(t,n))return null;let r=V(t);return w(`bomb`,r,e.length,Array(e.length).fill(r),n===0)}function S(e){if(e.length<3)return null;let t=e.filter(W).length,n=e.filter(e=>!W(e));for(let r=0;r<=h.length-e.length;r+=1){let i=h.slice(r,r+e.length).map(e=>g.get(e)),a=[...i],o=0;for(let e of n){let t=a.indexOf(U(e));t!==-1&&(a.splice(t,1),o+=1)}if(o+t===e.length&&a.length===t)return w(`straight`,i.at(-1),e.length,i)}return null}function C(e){if(e.length<4||e.length%2!=0)return null;let t=e.length/2,n=e.filter(W).length,r=e.filter(e=>!W(e));for(let i=0;i<=h.length-t;i+=1){let a=h.slice(i,i+t).map(e=>g.get(e)),o=a.flatMap(e=>[e,e]),s=0;for(let e of r){let t=o.indexOf(U(e));t!==-1&&(o.splice(t,1),s+=1)}if(s+n===e.length&&o.length===n){let t=a.flatMap(e=>[e,e]);return w(`pairStraight`,a.at(-1),e.length,t)}}return null}function w(e,t,n,r,i=!0){return{type:e,value:t,length:n,resolvedValues:r,pure:i,label:ye({type:e,value:t,length:n,resolvedValues:r,pure:i})}}function T(e,t){return e?!t||e.type===`bomb`&&t.type!==`bomb`?!0:e.type===t.type?e.type===`bomb`?e.length===t.length?e.value===t.value?e.pure&&!t.pure:e.value>t.value:e.length>t.length:e.length===t.length?e.type===`single`||e.type===`pair`?e.value===xe(t.value)||e.value===g.get(`2`)&&t.value!==g.get(`2`):e.value===xe(t.value):!1:!1:!1}function E(e){let t=new Set;return e.map(e=>({address:q(e.address),name:J(e.name),publicKey:String(e.publicKey||``)})).filter(e=>!e.address||t.has(e.address)?!1:(t.add(e.address),!0))}function D(e){let t=q(e.address);return t?{address:t,name:J(e.name),seat:Number(e.seat||0),hand:Array.isArray(e.hand)?e.hand.map(O).filter(Boolean):[],handCount:Number(e.handCount||0),score:Number(e.score??v),playedCards:Number(e.playedCards||0)}:null}function O(e){if(!e||typeof e!=`object`)return null;let t=String(e.rank||``),n=String(e.suit||``);return!g.has(t)&&t!==`SJ`&&t!==`BJ`||!p.includes(n)&&n!==`Joker`?null:{id:String(e.id||`${n}-${t}`),suit:n,rank:t,label:e.label||K({suit:n,rank:t}),color:e.color||ve({suit:n,rank:t})}}function k(e,t){if(e.previousWinnerSeat!==null)return e.diceRolls=[],R(e).find(t=>t.seat===e.previousWinnerSeat)||R(e)[0];let n=R(e),r=[];for(;n.length>1;){r=n.map(e=>({seat:e.seat,name:e.name,value:Se(t)}));let i=Math.max(...r.map(e=>e.value)),a=r.filter(e=>e.value===i);if(a.length===1)return e.diceRolls=r,n.find(e=>e.seat===a[0].seat);n=n.filter(e=>a.some(t=>t.seat===e.seat))}return e.diceRolls=r,n[0]}function A(e,t){e.status=`finished`,e.winnerSeat=t.seat,e.previousWinnerSeat=t.seat;let n=[],r=0;for(let i of R(e)){if(i.seat===t.seat)continue;let a=i.playedCards===0,o=a?se:i.hand.length*e.baseScore*.5;i.score-=o,r+=o,n.push({seat:i.seat,name:i.name,loss:o,sealed:a,cardsLeft:i.hand.length})}t.score+=r,e.roundResult={winnerSeat:t.seat,winnerName:t.name,winnerGain:r,baseScore:e.baseScore,bombCount:e.bombCount,losers:n},e.log.unshift(`${t.name} 获胜,赢 ${r} 分`)}function j(e){for(let t of L(e)){if(e.deck.length===0)break;t.hand.push(...P(e,1)),t.handCount=t.hand.length,F(t.hand)}}function M(){let e=[];for(let t of p)for(let n of m)e.push({id:`${t}-${n}`,suit:t,rank:n});return e.push({id:`SJ`,suit:`Joker`,rank:`SJ`}),e.push({id:`BJ`,suit:`Joker`,rank:`BJ`}),e.map(G)}function N(e,t){let n=[...e];for(let e=n.length-1;e>0;--e){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}function P(e,t){return e.deck.splice(0,t)}function F(e){e.sort(H)}function I(e){return e.players.find(t=>t.seat===e.currentSeat)}function L(e){return R(e).filter(e=>e.hand.length>0)}function R(e){return[...e?.players||[]].sort((e,t)=>e.seat-t.seat)}function z(e){let t=L(e).map(e=>e.seat);e.currentSeat=t[(t.indexOf(e.currentSeat)+1)%t.length]}function B(e,t=0){if(e.length===0)return!1;let n=e[0].rank;return e.every(e=>e.rank===n)&&e.length+t>=2}function V(e){return U(e[0])}function H(e,t){return U(e)-U(t)||he(e.suit)-he(t.suit)}function U(e){return g.get(e.rank)||99}function W(e){return e.rank===`SJ`||e.rank===`BJ`}function he(e){return{D:0,C:1,H:2,S:3,Joker:4}[e]||0}function ge(e){if(typeof e==`string`){let[t,n]=e.split(`-`);return O({id:e,suit:t,rank:n})}return O(e)}function G(e){return{id:e.id,suit:e.suit,rank:e.rank,label:K(e),color:ve(e)}}function K(e){return e.rank===`SJ`?`小王`:e.rank===`BJ`?`大王`:`${_e(e.suit)}${e.rank}`}function _e(e){return{S:`♠`,H:`♥`,C:`♣`,D:`♦`}[e]||``}function ve(e){return e.suit===`H`||e.suit===`D`||e.rank===`BJ`?`red`:`black`}function ye(e){let t=e.resolvedValues?.length?`(${e.resolvedValues.map(be).join(` `)})`:``;return`${{single:`单张`,pair:`对子`,straight:`顺子`,pairStraight:`连对`,bomb:e.pure?`纯炸弹`:`带王炸弹`}[e.type]}${t}`}function be(e){return m.find(t=>g.get(t)===e)||String(e)}function xe(e){let t=m.findIndex(t=>g.get(t)===e);return t===-1||t>=m.length-1?null:g.get(m[t+1])}function Se(e){return Math.floor(e()*6)+1}function q(e){let t=String(e||``).trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():``}function J(e){return String(e||`玩家`).trim().slice(0,16)||`玩家`}var Y={page:`_page_4biq6_1`,headerActions:`_headerActions_4biq6_7`,entry:`_entry_4biq6_13`,entryBrand:`_entryBrand_4biq6_23`,cardMark:`_cardMark_4biq6_29`,entryPanel:`_entryPanel_4biq6_59`,panel:`_panel_4biq6_60`,handPanel:`_handPanel_4biq6_61`,accountLine:`_accountLine_4biq6_74`,scoreMeta:`_scoreMeta_4biq6_75`,roomBar:`_roomBar_4biq6_76`,badges:`_badges_4biq6_77`,actions:`_actions_4biq6_78`,joinForm:`_joinForm_4biq6_98`,status:`_status_4biq6_119`,gameGrid:`_gameGrid_4biq6_125`,tablePanel:`_tablePanel_4biq6_136`,seats:`_seats_4biq6_170`,player:`_player_4biq6_176`,active:`_active_4biq6_193`,winner:`_winner_4biq6_197`,avatar:`_avatar_4biq6_201`,centerTable:`_centerTable_4biq6_228`,deckBox:`_deckBox_4biq6_235`,playedBox:`_playedBox_4biq6_236`,playedCards:`_playedCards_4biq6_264`,notice:`_notice_4biq6_272`,resultDetail:`_resultDetail_4biq6_280`,sidePanel:`_sidePanel_4biq6_291`,scoreRow:`_scoreRow_4biq6_316`,logPanel:`_logPanel_4biq6_324`,hand:`_hand_4biq6_61`,cardButton:`_cardButton_4biq6_351`,picked:`_picked_4biq6_361`,card:`_card_4biq6_29`,red:`_red_4biq6_392`,black:`_black_4biq6_396`,small:`_small_4biq6_400`,preview:`_preview_4biq6_418`,valid:`_valid_4biq6_441`},X=n(),Z=`gandengyan`;function Q(...e){return e.filter(Boolean).join(` `)}function Ce(e,t){return String(e||``).toLowerCase()===String(t||``).toLowerCase()}function we(e,t){if(typeof window>`u`||!(`speechSynthesis`in window)||!e)return;window.speechSynthesis.cancel();let n=new SpeechSynthesisUtterance(e);n.lang=t,n.rate=1.1,window.speechSynthesis.speak(n)}function Te(){let{t:e,locale:t}=l(),n=u(e=>e.isDarkMode),ie=u(e=>e.setIsDarkMode),d=u(e=>e.addToast),p=ae(e=>e.initializeUser),[m,h]=(0,f.useState)(``),[g,_]=(0,f.useState)([]),[se,v]=(0,f.useState)(!1),y=(0,f.useRef)(``),b=(0,f.useRef)(!1),x=re({gameId:Z,onError:e=>d(e,`error`)});(0,f.useEffect)(()=>{p()},[p]),(0,f.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get(`room`)?.toUpperCase();e&&(h(e),y.current=e)},[]),(0,f.useEffect)(()=>{let t=y.current;!t||b.current||!x.isBackendReady||!x.userIdentity||(b.current=!0,y.current=``,x.joinRoom(t).then(t=>{t&&d(e(`game.toast.joinedRoom`),`success`)}))},[x.isBackendReady,x.userIdentity,x.joinRoom,d,e]),(0,f.useEffect)(()=>{if(!x.roomCode)return;let e=`/game/gandengyan?room=${x.roomCode}`;`${window.location.pathname}${window.location.search}`!==e&&window.history.replaceState(null,``,e)},[x.roomCode]);let S=(0,f.useMemo)(()=>te(x.messages,x.roomCode?{gameId:Z,roomCode:x.roomCode}:{gameId:Z}),[x.messages,x.roomCode]),C=(0,f.useMemo)(()=>ne(x.messages,{gameId:Z,roomCode:x.roomCode}),[x.messages,x.roomCode]),w=C?.payload?.state,T=w?.players.find(e=>Ce(e.address,x.userIdentity?.address)),E=Ce(w?.ownerAddress||S.hostAddress,x.userIdentity?.address),D=w?.status===`playing`&&w.currentSeat===T?.seat,O=(0,f.useMemo)(()=>g.map(e=>T?.hand.find(t=>t.id===e)).filter(Boolean),[g,T]),k=(0,f.useMemo)(()=>me(O),[O]),A=x.roomCode&&typeof window<`u`?`${window.location.origin}/game/gandengyan?room=${x.roomCode}`:``,j=(0,f.useRef)(-1),M=(0,f.useRef)(!1);(0,f.useEffect)(()=>{_([])},[w?.seq]),(0,f.useEffect)(()=>{if(!w)return;let n=w.seq;if(j.current<0){j.current=n;return}if(n!==j.current&&(j.current=n,w.status!==`finished`&&(M.current=!1),w.status===`finished`&&w.winnerSeat!==null)){M.current||(M.current=!0,we(e(`game.gandengyan.speech.gameOver`),t));return}},[t,w?.seq,e]),(0,f.useEffect)(()=>{if(!E||!x.roomCode||!x.userIdentity||C||S.players.length===0)return;let e=ce({roomCode:x.roomCode,ownerAddress:x.userIdentity.address,ownerName:x.userIdentity.displayName||x.userIdentity.username,players:S.players});x.sendRoomEvent(`room:state`,{state:e,seq:e.seq})},[x,E,C,S.players]),(0,f.useEffect)(()=>{if(!w||!E||w.status!==`lobby`)return;let e=le(w,S.players);e&&e.players.length!==w.players.length&&x.sendRoomEvent(`room:state`,{state:e,seq:e.seq})},[x,E,S.players,w]);let N=(0,f.useRef)(0),P=(0,f.useMemo)(()=>x.roomEvents.filter(e=>e.event?.event===`player:leave`),[x.roomEvents]);(0,f.useEffect)(()=>{if(P.length<=N.current)return;let t=P.slice(N.current);N.current=P.length;for(let n of t)d(e(`game.toast.playerLeft`,{player:n.event?.payload?.player?.name||e(`game.player`)}),`info`)},[P,d,e]),(0,f.useEffect)(()=>{if(!w||!E||w.status!==`playing`)return;let e=new Set(S.players.map(e=>e.address.toLowerCase())),t=w.players.find(t=>!e.has(t.address.toLowerCase()));if(!t)return;let n=pe(w,t.address);n&&R(n)},[x,E,S.players,w]);async function F(){await x.createRoom()&&d(e(`game.toast.roomCreated`),`success`)}async function I(t){t.preventDefault(),await x.joinRoom(m)&&d(e(`game.toast.joinedRoom`),`success`)}async function L(){A&&(await navigator.clipboard.writeText(A),v(!0),setTimeout(()=>v(!1),1400))}async function R(e){await x.sendRoomEvent(`room:state`,{state:e,seq:e.seq})}async function z(){if(!(!w||!E))try{await R(ue(w))}catch(t){d(t instanceof Error?t.message:e(`game.zhajinhua.error.startFailed`),`error`)}}async function B(){await z()}async function V(){if(!w||!x.userIdentity)return;let t=de(w,x.userIdentity.address,g);if(!t.ok){d(t.error||e(`game.gandengyan.error.playFailed`),`error`);return}await R(t.state)}async function H(){if(!w||!x.userIdentity)return;let t=fe(w,x.userIdentity.address);if(!t.ok){d(t.error||e(`game.gandengyan.error.actionFailed`),`error`);return}await R(t.state)}function U(e){_(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}return(0,X.jsx)(o,{sidebar:({closeSidebar:e})=>(0,X.jsx)(ee,{activeGame:`gandengyan`,closeSidebar:e}),headerTitle:(0,X.jsx)(`h2`,{className:`header-title`,children:e(`game.gandengyan.title`)}),headerRight:(0,X.jsxs)(`div`,{className:Y.headerActions,children:[w&&(0,X.jsxs)(`button`,{className:`btn btn-sm`,onClick:L,children:[(0,X.jsx)(a,{size:14}),e(se?`common.copied`:`game.action.shareRoom`)]}),(0,X.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>ie(!n),title:e(`common.theme.toggle`),children:n?(0,X.jsx)(r,{size:16}):(0,X.jsx)(i,{size:16})})]}),children:(0,X.jsx)(`main`,{className:Y.page,children:w?(0,X.jsxs)(`section`,{className:Y.gameGrid,children:[(0,X.jsxs)(`div`,{className:Y.tablePanel,children:[(0,X.jsxs)(`div`,{className:Y.roomBar,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`strong`,{translate:`no`,children:e(`game.roomLabel`,{room:w.id})}),(0,X.jsx)(`span`,{children:w.status===`lobby`?e(`game.status.waitingStart`):w.status===`finished`?e(`game.status.finished`):e(`game.status.playing`)})]}),(0,X.jsx)(`div`,{className:Y.badges,children:(0,X.jsx)(`span`,{children:x.connected?e(`game.status.online`):e(`game.status.offline`)})})]}),(0,X.jsx)(`div`,{className:Y.seats,children:w.players.map(t=>(0,X.jsx)(Ee,{player:t,active:w.currentSeat===t.seat,winner:w.winnerSeat===t.seat,relation:De(T,t,w.players.length,e)},t.seat))}),(0,X.jsxs)(`div`,{className:Y.centerTable,children:[(0,X.jsxs)(`div`,{className:Y.deckBox,children:[(0,X.jsx)(`span`,{children:e(`game.gandengyan.deck`)}),(0,X.jsx)(`strong`,{children:w.deckCount})]}),(0,X.jsx)(`div`,{className:Y.playedBox,children:w.table?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`strong`,{children:e(`game.gandengyan.tablePlay`,{player:w.table.playerName,combo:w.table.combo?.label||e(`game.card`)})}),(0,X.jsx)(`div`,{className:Y.playedCards,children:w.table.cards.map(e=>(0,X.jsx)($,{card:e,small:!0},e.id))})]}):(0,X.jsx)(`span`,{children:e(`game.gandengyan.waitingLead`)})}),(0,X.jsxs)(`div`,{className:Y.deckBox,children:[(0,X.jsx)(`span`,{children:e(`game.gandengyan.baseScore`)}),(0,X.jsx)(`strong`,{children:w.baseScore})]})]}),(0,X.jsx)(`div`,{className:Y.notice,children:w.status===`finished`?w.roundResult?(0,X.jsxs)(`div`,{className:Y.resultDetail,children:[(0,X.jsxs)(`p`,{children:[e(`game.gandengyan.result.winnerGain`,{player:w.roundResult.winnerName,score:w.roundResult.winnerGain}),w.roundResult.bombCount>0&&e(`game.gandengyan.result.bombCount`,{count:w.roundResult.bombCount})]}),w.roundResult.losers.map(t=>(0,X.jsx)(`p`,{children:t.sealed?e(`game.gandengyan.result.sealedLoss`,{player:t.name,loss:20}):e(`game.gandengyan.result.cardsLeftLoss`,{player:t.name,cards:t.cardsLeft,loss:t.loss})},t.seat))]}):e(`game.gandengyan.result.winner`,{player:w.players.find(e=>e.seat===w.winnerSeat)?.name||e(`game.player`)}):D?e(`game.gandengyan.status.yourTurn`):e(`game.zhajinhua.status.waitingPlayer`,{player:w.players.find(e=>e.seat===w.currentSeat)?.name||e(`game.player`)})})]}),(0,X.jsxs)(`aside`,{className:Y.sidePanel,children:[(0,X.jsxs)(`section`,{className:Y.panel,children:[(0,X.jsx)(`h3`,{children:e(`game.gandengyan.roundPanel`)}),E&&w.status===`lobby`&&(0,X.jsxs)(`button`,{className:`btn btn-primary`,disabled:w.players.length<2,onClick:z,children:[(0,X.jsx)(s,{size:16}),e(`game.action.startRound`)]}),E&&w.status===`finished`&&(0,X.jsxs)(`button`,{className:`btn btn-primary`,onClick:B,children:[(0,X.jsx)(oe,{size:16}),e(`game.action.nextRound`)]}),!E&&(0,X.jsx)(`p`,{className:Y.status,children:e(`game.waitingHost`)})]}),(0,X.jsxs)(`section`,{className:Y.panel,children:[(0,X.jsx)(`h3`,{children:e(`game.gandengyan.score`)}),(0,X.jsxs)(`div`,{className:Y.scoreMeta,children:[(0,X.jsx)(`span`,{children:e(`game.gandengyan.bombCount`,{count:w.bombCount})}),(0,X.jsx)(`span`,{children:e(`game.gandengyan.discardCount`,{count:w.discardCount})})]}),w.players.map(e=>(0,X.jsxs)(`div`,{className:Y.scoreRow,children:[(0,X.jsx)(`span`,{translate:`no`,children:e.name}),(0,X.jsx)(`strong`,{children:e.score})]},e.seat))]}),(0,X.jsxs)(`section`,{className:Q(Y.panel,Y.logPanel),children:[(0,X.jsx)(`h3`,{children:e(`game.gandengyan.log`)}),w.log.map((e,t)=>(0,X.jsx)(`p`,{translate:`no`,children:e},`${e}-${t}`))]})]}),(0,X.jsxs)(`div`,{className:Y.handPanel,children:[(0,X.jsx)(Ee,{player:T,active:D,winner:w.winnerSeat===T?.seat}),(0,X.jsx)(`div`,{className:Y.hand,children:T?.hand.map(e=>(0,X.jsx)(`button`,{className:Q(Y.cardButton,g.includes(e.id)&&Y.picked),onClick:()=>U(e.id),children:(0,X.jsx)($,{card:e})},e.id))}),(0,X.jsxs)(`div`,{className:Y.actions,children:[(0,X.jsxs)(`div`,{className:Q(Y.preview,k&&Y.valid),children:[(0,X.jsx)(`strong`,{children:k?k.label:g.length?e(`game.gandengyan.invalidCombo`):e(`game.gandengyan.selectCards`)}),(0,X.jsx)(`span`,{children:O.map(e=>e.label).join(` `)||e(`game.gandengyan.jokerOrderHint`)})]}),(0,X.jsxs)(`button`,{className:`btn btn-primary`,disabled:!D||g.length===0||!k,onClick:V,children:[(0,X.jsx)(c,{size:16}),e(`game.gandengyan.action.play`)]}),(0,X.jsx)(`button`,{className:`btn`,disabled:!D||!w.table,onClick:H,children:e(`game.gandengyan.action.pass`)})]})]})]}):(0,X.jsxs)(`section`,{className:Y.entry,children:[(0,X.jsxs)(`div`,{className:Y.entryBrand,children:[(0,X.jsx)(`div`,{className:Y.cardMark,children:e(`game.gandengyan.mark`)}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h1`,{children:e(`game.gandengyan.hero.title`)}),(0,X.jsx)(`p`,{children:e(`game.hero.desc`)})]})]}),(0,X.jsxs)(`div`,{className:Y.entryPanel,children:[(0,X.jsxs)(`div`,{className:Y.accountLine,children:[(0,X.jsx)(`span`,{children:e(`game.currentAccount`)}),(0,X.jsx)(`strong`,{translate:`no`,children:x.userIdentity?.displayName||e(`web3.notSignedIn`)})]}),(0,X.jsxs)(`button`,{className:`btn btn-primary`,disabled:x.joining,onClick:F,children:[(0,X.jsx)(s,{size:16}),e(`game.action.createRoom`)]}),(0,X.jsxs)(`form`,{onSubmit:I,className:Y.joinForm,children:[(0,X.jsxs)(`label`,{children:[e(`game.roomCode`),(0,X.jsx)(`input`,{value:m,maxLength:8,onChange:e=>h(e.target.value.toUpperCase()),placeholder:e(`game.roomCode.placeholder`)})]}),(0,X.jsx)(`button`,{className:`btn`,disabled:x.joining||!m,children:e(`game.action.joinRoom`)})]}),(0,X.jsx)(`p`,{className:Y.status,children:x.isBackendReady?e(`game.status.nodeConnected`):e(`game.status.nodeConnecting`)})]})]})})})}function Ee({player:e,active:t,winner:n,relation:r=``}){let{t:i}=l();return e?(0,X.jsxs)(`div`,{className:Q(Y.player,t&&Y.active,n&&Y.winner),children:[(0,X.jsx)(`div`,{className:Y.avatar,translate:`no`,children:e.name.slice(0,1)}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`strong`,{translate:`no`,children:e.name}),(0,X.jsxs)(`span`,{children:[r,r?` · `:``,i(`game.gandengyan.handCount`,{count:e.handCount})]})]})]}):null}function $({card:e,small:t=!1}){return(0,X.jsxs)(`div`,{className:Q(Y.card,Y[e.color],t&&Y.small),children:[(0,X.jsx)(`span`,{children:e.label}),(0,X.jsx)(`i`,{children:e.suit===`Joker`?`*`:e.label.slice(0,1)})]})}function De(e,t,n,r){if(!e)return r(`game.gandengyan.position.seat`,{seat:t.seat+1});let i=(t.seat-e.seat+n)%n;return i===0?r(`game.gandengyan.position.me`):n===2?r(`game.gandengyan.position.opponent`):n===3?r(i===1?`game.gandengyan.position.nextOpponent`:`game.gandengyan.position.prevOpponent`):n===4?r(i===1?`game.gandengyan.position.nextOpponent`:i===2?`game.gandengyan.position.partner`:`game.gandengyan.position.prevOpponent`):i%2==0?r(`game.gandengyan.position.seatPartner`,{seat:t.seat+1}):r(`game.gandengyan.position.seatOpponent`,{seat:t.seat+1})}var Oe=d(`/game/gandengyan/`)({component:Te});export{Oe as Route};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{t as r}from"./cloud-BEe2N89j.js";import{t as i}from"./message-square-DwBq_Go5.js";import{t as a}from"./music-CB73K5Gz.js";import{t as o}from"./play-OszVgROb.js";import{t as s}from"./search-gqAPOsgS.js";import{t as c}from"./send-vwCWsZGP.js";import{t as l}from"./wifi-sBOKcPFM.js";import{J as u,Z as d,tt as f}from"./index-WCK14Vja.js";import{t as p}from"./MarketingLayout-DVH0Nx7S.js";var m=u(`at-sign`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8`,key:`7n84p3`}]]),h=u(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),g=u(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),_=u(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),v=u(`messages-square`,[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`,key:`1n2ejm`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`,key:`1qfcsi`}]]),y=u(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),b=u(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),x=u(`smartphone`,[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]),ee=u(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),te=u(`triangle`,[[`path`,{d:`M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z`,key:`14u9p9`}]]),S=t(e(),1);function ne(e,t){let n=e.icons,r=e.aliases||Object.create(null),i=Object.create(null);function a(e){if(n[e])return i[e]=[];if(!(e in i)){i[e]=null;let t=r[e]&&r[e].parent,n=t&&a(t);n&&(i[e]=[t].concat(n))}return i[e]}return Object.keys(n).concat(Object.keys(r)).forEach(a),i}var re=Object.freeze({left:0,top:0,width:16,height:16}),C=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),w=Object.freeze({...re,...C}),T=Object.freeze({...w,body:``,hidden:!1});function ie(e,t){let n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);let r=((e.rotate||0)+(t.rotate||0))%4;return r&&(n.rotate=r),n}function E(e,t){let n=ie(e,t);for(let r in T)r in C?r in e&&!(r in n)&&(n[r]=C[r]):r in t?n[r]=t[r]:r in e&&(n[r]=e[r]);return n}function ae(e,t,n){let r=e.icons,i=e.aliases||Object.create(null),a={};function o(e){a=E(r[e]||i[e],a)}return o(t),n.forEach(o),E(e,a)}function D(e,t){let n=[];if(typeof e!=`object`||typeof e.icons!=`object`)return n;e.not_found instanceof Array&&e.not_found.forEach(e=>{t(e,null),n.push(e)});let r=ne(e);for(let i in r){let a=r[i];a&&(t(i,ae(e,i,a)),n.push(i))}return n}var oe={provider:``,aliases:{},not_found:{},...re};function O(e,t){for(let n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function k(e){if(typeof e!=`object`||!e)return null;let t=e;if(typeof t.prefix!=`string`||!e.icons||typeof e.icons!=`object`||!O(e,oe))return null;let n=t.icons;for(let e in n){let t=n[e];if(!e||typeof t.body!=`string`||!O(t,T))return null}let r=t.aliases||Object.create(null);for(let e in r){let t=r[e],i=t.parent;if(!e||typeof i!=`string`||!n[i]&&!r[i]||!O(t,T))return null}return t}var A=Object.create(null);function se(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function j(e,t){let n=A[e]||(A[e]=Object.create(null));return n[t]||(n[t]=se(e,t))}function ce(e,t){return k(t)?D(t,(t,n)=>{n?e.icons[t]=n:e.missing.add(t)}):[]}function le(e,t,n){try{if(typeof n.body==`string`)return e.icons[t]={...n},!0}catch{}return!1}var ue=/^[a-z0-9]+(-[a-z0-9]+)*$/,M=(e,t,n,r=``)=>{let i=e.split(`:`);if(e.slice(0,1)===`@`){if(i.length<2||i.length>3)return null;r=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let e=i.pop(),n=i.pop(),a={provider:i.length>0?i[0]:r,prefix:n,name:e};return t&&!N(a)?null:a}let a=i[0],o=a.split(`-`);if(o.length>1){let e={provider:r,prefix:o.shift(),name:o.join(`-`)};return t&&!N(e)?null:e}if(n&&r===``){let e={provider:r,prefix:``,name:a};return t&&!N(e,n)?null:e}return null},N=(e,t)=>e?!!((t&&e.prefix===``||e.prefix)&&e.name):!1,P=!1;function F(e){return typeof e==`boolean`&&(P=e),P}function I(e){let t=typeof e==`string`?M(e,!0,P):e;if(t){let e=j(t.provider,t.prefix),n=t.name;return e.icons[n]||(e.missing.has(n)?null:void 0)}}function de(e,t){let n=M(e,!0,P);if(!n)return!1;let r=j(n.provider,n.prefix);return t?le(r,n.name,t):(r.missing.add(n.name),!0)}function fe(e,t){if(typeof e!=`object`)return!1;if(typeof t!=`string`&&(t=e.provider||``),P&&!t&&!e.prefix){let t=!1;return k(e)&&(e.prefix=``,D(e,(e,n)=>{de(e,n)&&(t=!0)})),t}let n=e.prefix;return N({prefix:n,name:`a`})?!!ce(j(t,n),e):!1}var L=Object.freeze({width:null,height:null}),R=Object.freeze({...L,...C}),pe=/(-?[0-9.]*[0-9]+[0-9.]*)/g,me=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function z(e,t,n){if(t===1)return e;if(n||=100,typeof e==`number`)return Math.ceil(e*t*n)/n;if(typeof e!=`string`)return e;let r=e.split(pe);if(r===null||!r.length)return e;let i=[],a=r.shift(),o=me.test(a);for(;;){if(o){let e=parseFloat(a);isNaN(e)?i.push(a):i.push(Math.ceil(e*t*n)/n)}else i.push(a);if(a=r.shift(),a===void 0)return i.join(``);o=!o}}function he(e,t=`defs`){let n=``,r=e.indexOf(`<`+t);for(;r>=0;){let i=e.indexOf(`>`,r),a=e.indexOf(`</`+t);if(i===-1||a===-1)break;let o=e.indexOf(`>`,a);if(o===-1)break;n+=e.slice(i+1,a).trim(),e=e.slice(0,r).trim()+e.slice(o+1)}return{defs:n,content:e}}function ge(e,t){return e?`<defs>`+e+`</defs>`+t:t}function _e(e,t,n){let r=he(e);return ge(r.defs,t+r.content+n)}var ve=e=>e===`unset`||e===`undefined`||e===`none`;function ye(e,t){let n={...w,...e},r={...R,...t},i={left:n.left,top:n.top,width:n.width,height:n.height},a=n.body;[n,r].forEach(e=>{let t=[],n=e.hFlip,r=e.vFlip,o=e.rotate;n?r?o+=2:(t.push(`translate(`+(i.width+i.left).toString()+` `+(0-i.top).toString()+`)`),t.push(`scale(-1 1)`),i.top=i.left=0):r&&(t.push(`translate(`+(0-i.left).toString()+` `+(i.height+i.top).toString()+`)`),t.push(`scale(1 -1)`),i.top=i.left=0);let s;switch(o<0&&(o-=Math.floor(o/4)*4),o%=4,o){case 1:s=i.height/2+i.top,t.unshift(`rotate(90 `+s.toString()+` `+s.toString()+`)`);break;case 2:t.unshift(`rotate(180 `+(i.width/2+i.left).toString()+` `+(i.height/2+i.top).toString()+`)`);break;case 3:s=i.width/2+i.left,t.unshift(`rotate(-90 `+s.toString()+` `+s.toString()+`)`);break}o%2==1&&(i.left!==i.top&&(s=i.left,i.left=i.top,i.top=s),i.width!==i.height&&(s=i.width,i.width=i.height,i.height=s)),t.length&&(a=_e(a,`<g transform="`+t.join(` `)+`">`,`</g>`))});let o=r.width,s=r.height,c=i.width,l=i.height,u,d;o===null?(d=s===null?`1em`:s===`auto`?l:s,u=z(d,c/l)):(u=o===`auto`?c:o,d=s===null?z(u,l/c):s===`auto`?l:s);let f={},p=(e,t)=>{ve(t)||(f[e]=t.toString())};p(`width`,u),p(`height`,d);let m=[i.left,i.top,c,l];return f.viewBox=m.join(` `),{attributes:f,viewBox:m,body:a}}var be=/\sid="(\S+)"/g,xe=`IconifyId`+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),Se=0;function Ce(e,t=xe){let n=[],r;for(;r=be.exec(e);)n.push(r[1]);if(!n.length)return e;let i=`suffix`+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(n=>{let r=typeof t==`function`?t(n):t+(Se++).toString(),a=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);e=e.replace(RegExp(`([#;"])(`+a+`)([")]|\\.[a-z])`,`g`),`$1`+r+i+`$3`)}),e=e.replace(new RegExp(i,`g`),``),e}var B=Object.create(null);function we(e,t){B[e]=t}function V(e){return B[e]||B[``]}function H(e){let t;if(typeof e.resources==`string`)t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||`/`,maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}for(var U=Object.create(null),W=[`https://api.simplesvg.com`,`https://api.unisvg.com`],G=[];W.length>0;)W.length===1||Math.random()>.5?G.push(W.shift()):G.push(W.pop());U[``]=H({resources:[`https://api.iconify.design`].concat(G)});function Te(e,t){let n=H(t);return n===null?!1:(U[e]=n,!0)}function K(e){return U[e]}var q=(()=>{let e;try{if(e=fetch,typeof e==`function`)return e}catch{}})();function Ee(e,t){let n=K(e);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let e=0;n.resources.forEach(t=>{e=Math.max(e,t.length)});let i=t+`.json?icons=`;r=n.maxURL-e-n.path.length-i.length}return r}function De(e){return e===404}var Oe=(e,t,n)=>{let r=[],i=Ee(e,t),a=`icons`,o={type:a,provider:e,prefix:t,icons:[]},s=0;return n.forEach((n,c)=>{s+=n.length+1,s>=i&&c>0&&(r.push(o),o={type:a,provider:e,prefix:t,icons:[]},s=n.length),o.icons.push(n)}),r.push(o),r};function ke(e){if(typeof e==`string`){let t=K(e);if(t)return t.path}return`/`}var Ae={prepare:Oe,send:(e,t,n)=>{if(!q){n(`abort`,424);return}let r=ke(t.provider);switch(t.type){case`icons`:{let e=t.prefix,n=t.icons.join(`,`),i=new URLSearchParams({icons:n});r+=e+`.json?`+i.toString();break}case`custom`:{let e=t.uri;r+=e.slice(0,1)===`/`?e.slice(1):e;break}default:n(`abort`,400);return}let i=503;q(e+r).then(e=>{let t=e.status;if(t!==200){setTimeout(()=>{n(De(t)?`abort`:`next`,t)});return}return i=501,e.json()}).then(e=>{if(typeof e!=`object`||!e){setTimeout(()=>{e===404?n(`abort`,e):n(`next`,i)});return}setTimeout(()=>{n(`success`,e)})}).catch(()=>{n(`next`,i)})}};function je(e,t){e.forEach(e=>{let n=e.loaderCallbacks;n&&(e.loaderCallbacks=n.filter(e=>e.id!==t))})}function Me(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;let t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1,r=e.provider,i=e.prefix;t.forEach(t=>{let a=t.icons,o=a.pending.length;a.pending=a.pending.filter(t=>{if(t.prefix!==i)return!0;let o=t.name;if(e.icons[o])a.loaded.push({provider:r,prefix:i,name:o});else if(e.missing.has(o))a.missing.push({provider:r,prefix:i,name:o});else return n=!0,!0;return!1}),a.pending.length!==o&&(n||je([e],t.id),t.callback(a.loaded.slice(0),a.missing.slice(0),a.pending.slice(0),t.abort))})}))}var Ne=0;function Pe(e,t,n){let r=Ne++,i=je.bind(null,n,r);if(!t.pending.length)return i;let a={id:r,icons:t,callback:e,abort:i};return n.forEach(e=>{(e.loaderCallbacks||=[]).push(a)}),i}function Fe(e){let t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((e,t)=>e.provider===t.provider?e.prefix===t.prefix?e.name.localeCompare(t.name):e.prefix.localeCompare(t.prefix):e.provider.localeCompare(t.provider));let r={provider:``,prefix:``,name:``};return e.forEach(e=>{if(r.name===e.name&&r.prefix===e.prefix&&r.provider===e.provider)return;r=e;let i=e.provider,a=e.prefix,o=e.name,s=n[i]||(n[i]=Object.create(null)),c=s[a]||(s[a]=j(i,a)),l;l=o in c.icons?t.loaded:a===``||c.missing.has(o)?t.missing:t.pending;let u={provider:i,prefix:a,name:o};l.push(u)}),t}function Ie(e,t=!0,n=!1){let r=[];return e.forEach(e=>{let i=typeof e==`string`?M(e,t,n):e;i&&r.push(i)}),r}var Le={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Re(e,t,n,r){let i=e.resources.length,a=e.random?Math.floor(Math.random()*i):e.index,o;if(e.random){let t=e.resources.slice(0);for(o=[];t.length>1;){let e=Math.floor(Math.random()*t.length);o.push(t[e]),t=t.slice(0,e).concat(t.slice(e+1))}o=o.concat(t)}else o=e.resources.slice(a).concat(e.resources.slice(0,a));let s=Date.now(),c=`pending`,l=0,u,d=null,f=[],p=[];typeof r==`function`&&p.push(r);function m(){d&&=(clearTimeout(d),null)}function h(){c===`pending`&&(c=`aborted`),m(),f.forEach(e=>{e.status===`pending`&&(e.status=`aborted`)}),f=[]}function g(e,t){t&&(p=[]),typeof e==`function`&&p.push(e)}function _(){return{startTime:s,payload:t,status:c,queriesSent:l,queriesPending:f.length,subscribe:g,abort:h}}function v(){c=`failed`,p.forEach(e=>{e(void 0,u)})}function y(){f.forEach(e=>{e.status===`pending`&&(e.status=`aborted`)}),f=[]}function b(t,n,r){let i=n!==`success`;switch(f=f.filter(e=>e!==t),c){case`pending`:break;case`failed`:if(i||!e.dataAfterTimeout)return;break;default:return}if(n===`abort`){u=r,v();return}if(i){u=r,f.length||(o.length?x():v());return}if(m(),y(),!e.random){let n=e.resources.indexOf(t.resource);n!==-1&&n!==e.index&&(e.index=n)}c=`completed`,p.forEach(e=>{e(r)})}function x(){if(c!==`pending`)return;m();let r=o.shift();if(r===void 0){if(f.length){d=setTimeout(()=>{m(),c===`pending`&&(y(),v())},e.timeout);return}v();return}let i={status:`pending`,resource:r,callback:(e,t)=>{b(i,e,t)}};f.push(i),l++,d=setTimeout(x,e.rotate),n(r,t,i.callback)}return setTimeout(x),_}function ze(e){let t={...Le,...e},n=[];function r(){n=n.filter(e=>e().status===`pending`)}function i(e,i,a){let o=Re(t,e,i,(e,t)=>{r(),a&&a(e,t)});return n.push(o),o}function a(e){return n.find(t=>e(t))||null}return{query:i,find:a,setIndex:e=>{t.index=e},getIndex:()=>t.index,cleanup:r}}function Be(){}var J=Object.create(null);function Ve(e){if(!J[e]){let t=K(e);if(!t)return;J[e]={config:t,redundancy:ze(t)}}return J[e]}function He(e,t,n){let r,i;if(typeof e==`string`){let t=V(e);if(!t)return n(void 0,424),Be;i=t.send;let a=Ve(e);a&&(r=a.redundancy)}else{let t=H(e);if(t){r=ze(t);let n=V(e.resources?e.resources[0]:``);n&&(i=n.send)}}return!r||!i?(n(void 0,424),Be):r.query(t,i,n)().abort}function Ue(){}function We(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,Me(e)}))}function Ge(e){let t=[],n=[];return e.forEach(e=>{(e.match(ue)?t:n).push(e)}),{valid:t,invalid:n}}function Y(e,t,n){function r(){let n=e.pendingIcons;t.forEach(t=>{n&&n.delete(t),e.icons[t]||e.missing.add(t)})}if(n&&typeof n==`object`)try{if(!ce(e,n).length){r();return}}catch(e){console.error(e)}r(),We(e)}function Ke(e,t){e instanceof Promise?e.then(e=>{t(e)}).catch(()=>{t(null)}):t(e)}function qe(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;let{provider:t,prefix:n}=e,r=e.iconsToLoad;if(delete e.iconsToLoad,!r||!r.length)return;let i=e.loadIcon;if(e.loadIcons&&(r.length>1||!i)){Ke(e.loadIcons(r,n,t),t=>{Y(e,r,t)});return}if(i){r.forEach(r=>{Ke(i(r,n,t),t=>{Y(e,[r],t?{prefix:n,icons:{[r]:t}}:null)})});return}let{valid:a,invalid:o}=Ge(r);if(o.length&&Y(e,o,null),!a.length)return;let s=n.match(ue)?V(t):null;if(!s){Y(e,a,null);return}s.prepare(t,n,a).forEach(n=>{He(t,n,t=>{Y(e,n.icons,t)})})}))}var Je=(e,t)=>{let n=Fe(Ie(e,!0,F()));if(!n.pending.length){let e=!0;return t&&setTimeout(()=>{e&&t(n.loaded,n.missing,n.pending,Ue)}),()=>{e=!1}}let r=Object.create(null),i=[],a,o;return n.pending.forEach(e=>{let{provider:t,prefix:n}=e;if(n===o&&t===a)return;a=t,o=n,i.push(j(t,n));let s=r[t]||(r[t]=Object.create(null));s[n]||(s[n]=[])}),n.pending.forEach(e=>{let{provider:t,prefix:n,name:i}=e,a=j(t,n),o=a.pendingIcons||=new Set;o.has(i)||(o.add(i),r[t][n].push(i))}),i.forEach(e=>{let t=r[e.provider][e.prefix];t.length&&qe(e,t)}),t?Pe(t,n,i):Ue};function Ye(e,t){let n={...e};for(let e in t){let r=t[e],i=typeof r;e in L?(r===null||r&&(i===`string`||i===`number`))&&(n[e]=r):i===typeof n[e]&&(n[e]=e===`rotate`?r%4:r)}return n}var Xe=/[\s,]+/;function Ze(e,t){t.split(Xe).forEach(t=>{switch(t.trim()){case`horizontal`:e.hFlip=!0;break;case`vertical`:e.vFlip=!0;break}})}function Qe(e,t=0){let n=e.replace(/^-?[0-9.]*/,``);function r(e){for(;e<0;)e+=4;return e%4}if(n===``){let t=parseInt(e);return isNaN(t)?0:r(t)}else if(n!==e){let t=0;switch(n){case`%`:t=25;break;case`deg`:t=90}if(t){let i=parseFloat(e.slice(0,e.length-n.length));return isNaN(i)?0:(i/=t,i%1==0?r(i):0)}}return t}function $e(e,t){let n=e.indexOf(`xlink:`)===-1?``:` xmlns:xlink="http://www.w3.org/1999/xlink"`;for(let e in t)n+=` `+e+`="`+t[e]+`"`;return`<svg xmlns="http://www.w3.org/2000/svg"`+n+`>`+e+`</svg>`}function et(e){return e.replace(/"/g,`'`).replace(/%/g,`%25`).replace(/#/g,`%23`).replace(/</g,`%3C`).replace(/>/g,`%3E`).replace(/\s+/g,` `)}function tt(e){return`data:image/svg+xml,`+et(e)}function nt(e){return`url("`+tt(e)+`")`}var X;function rt(){try{X=window.trustedTypes.createPolicy(`iconify`,{createHTML:e=>e})}catch{X=null}}function it(e){return X===void 0&&rt(),X?X.createHTML(e):e}var at={...R,inline:!1},ot={xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,"aria-hidden":!0,role:`img`},st={display:`inline-block`},Z={backgroundColor:`currentColor`},ct={backgroundColor:`transparent`},lt={Image:`var(--svg)`,Repeat:`no-repeat`,Size:`100% 100%`},ut={WebkitMask:Z,mask:Z,background:ct};for(let e in ut){let t=ut[e];for(let n in lt)t[e+n]=lt[n]}var dt={...at,inline:!0};function ft(e){return e+(e.match(/^[-0-9.]+$/)?`px`:``)}var pt=(e,t,n)=>{let r=t.inline?dt:at,i=Ye(r,t),a=t.mode||`svg`,o={},s=t.style||{},c={...a===`svg`?ot:{}};if(n){let e=M(n,!1,!0);if(e){let t=[`iconify`];for(let n of[`provider`,`prefix`])e[n]&&t.push(`iconify--`+e[n]);c.className=t.join(` `)}}for(let e in t){let n=t[e];if(n!==void 0)switch(e){case`icon`:case`style`:case`children`:case`onLoad`:case`mode`:case`ssr`:case`fallback`:break;case`_ref`:c.ref=n;break;case`className`:c[e]=(c[e]?c[e]+` `:``)+n;break;case`inline`:case`hFlip`:case`vFlip`:i[e]=n===!0||n===`true`||n===1;break;case`flip`:typeof n==`string`&&Ze(i,n);break;case`color`:o.color=n;break;case`rotate`:typeof n==`string`?i[e]=Qe(n):typeof n==`number`&&(i[e]=n);break;case`ariaHidden`:case`aria-hidden`:n!==!0&&n!==`true`&&delete c[`aria-hidden`];break;default:r[e]===void 0&&(c[e]=n)}}let l=ye(e,i),u=l.attributes;if(i.inline&&(o.verticalAlign=`-0.125em`),a===`svg`){c.style={...o,...s},Object.assign(c,u);let e=0,n=t.id;return typeof n==`string`&&(n=n.replace(/-/g,`_`)),c.dangerouslySetInnerHTML={__html:it(Ce(l.body,n?()=>n+`ID`+ e++:`iconifyReact`))},(0,S.createElement)(`svg`,c)}let{body:d,width:f,height:p}=e,m=a===`mask`||(a===`bg`?!1:d.indexOf(`currentColor`)!==-1),h=$e(d,{...u,width:f+``,height:p+``});return c.style={...o,"--svg":nt(h),width:ft(u.width),height:ft(u.height),...st,...m?Z:ct,...s},(0,S.createElement)(`span`,c)};if(F(!0),we(``,Ae),typeof document<`u`&&typeof window<`u`){let e=window;if(e.IconifyPreload!==void 0){let t=e.IconifyPreload,n=`Invalid IconifyPreload syntax.`;typeof t==`object`&&t&&(t instanceof Array?t:[t]).forEach(e=>{try{(typeof e!=`object`||!e||e instanceof Array||typeof e.icons!=`object`||typeof e.prefix!=`string`||!fe(e))&&console.error(n)}catch{console.error(n)}})}if(e.IconifyProviders!==void 0){let t=e.IconifyProviders;if(typeof t==`object`&&t)for(let e in t){let n=`IconifyProviders[`+e+`] is invalid.`;try{let r=t[e];if(typeof r!=`object`||!r||r.resources===void 0)continue;Te(e,r)||console.error(n)}catch{console.error(n)}}}}function mt(e){let[t,n]=(0,S.useState)(!!e.ssr),[r,i]=(0,S.useState)({});function a(t){if(t){let t=e.icon;if(typeof t==`object`)return{name:``,data:t};let n=I(t);if(n)return{name:t,data:n}}return{name:``}}let[o,s]=(0,S.useState)(a(!!e.ssr));function c(){let e=r.callback;e&&(e(),i({}))}function l(e){if(JSON.stringify(o)!==JSON.stringify(e))return c(),s(e),!0}function u(){var t;let n=e.icon;if(typeof n==`object`){l({name:``,data:n});return}let r=I(n);l({name:n,data:r})&&(r===void 0?i({callback:Je([n],u)}):r&&((t=e.onLoad)==null||t.call(e,n)))}(0,S.useEffect)(()=>(n(!0),c),[]),(0,S.useEffect)(()=>{t&&u()},[e.icon,t]);let{name:d,data:f}=o;return f?pt({...w,...f},e,d):e.children?e.children:e.fallback?e.fallback:(0,S.createElement)(`span`,{})}var ht=(0,S.forwardRef)((e,t)=>mt({...e,_ref:t}));(0,S.forwardRef)((e,t)=>mt({inline:!0,...e,_ref:t}));var Q=n(),$=[{name:`Google`,host:`google.com`,icon:`simple-icons:google`,fallback:(0,Q.jsx)(s,{size:20})},{name:`Cloudflare`,host:`cloudflare.com`,icon:`simple-icons:cloudflare`,fallback:(0,Q.jsx)(r,{size:20})},{name:`YouTube`,host:`youtube.com`,icon:`simple-icons:youtube`,fallback:(0,Q.jsx)(o,{size:20})},{name:`GitHub`,host:`github.com`,icon:`simple-icons:github`,fallback:(0,Q.jsx)(ee,{size:20})},{name:`ChatGPT`,host:`chatgpt.com`,icon:`simple-icons:openai`,fallback:(0,Q.jsx)(g,{size:20})},{name:`X`,host:`x.com`,icon:`simple-icons:x`,fallback:(0,Q.jsx)(m,{size:20})},{name:`Instagram`,host:`instagram.com`,icon:`simple-icons:instagram`,fallback:(0,Q.jsx)(_,{size:20})},{name:`Reddit`,host:`reddit.com`,icon:`simple-icons:reddit`,fallback:(0,Q.jsx)(i,{size:20})},{name:`Wikipedia`,host:`wikipedia.org`,icon:`simple-icons:wikipedia`,fallback:(0,Q.jsx)(h,{size:20})},{name:`Apple`,host:`apple.com`,icon:`simple-icons:apple`,fallback:(0,Q.jsx)(x,{size:20})},{name:`Telegram`,host:`telegram.org`,icon:`simple-icons:telegram`,fallback:(0,Q.jsx)(c,{size:20})},{name:`Discord`,host:`discord.com`,icon:`simple-icons:discord`,fallback:(0,Q.jsx)(v,{size:20})},{name:`TikTok`,host:`tiktok.com`,icon:`simple-icons:tiktok`,fallback:(0,Q.jsx)(a,{size:20})},{name:`npm`,host:`npmjs.com`,icon:`simple-icons:npm`,fallback:(0,Q.jsx)(y,{size:20})},{name:`Vercel`,host:`vercel.com`,icon:`simple-icons:vercel`,fallback:(0,Q.jsx)(te,{size:20})}],gt=5e3;function _t({icon:e,fallback:t}){let[n,r]=(0,S.useState)(!1);return(0,S.useEffect)(()=>{let t=new Image;t.onload=()=>r(!0),t.onerror=()=>r(!1),t.src=`https://api.iconify.design/${e.replace(`:`,`/`)}.svg`},[e]),(0,Q.jsxs)(`span`,{className:`brand-icon-wrap`,children:[(0,Q.jsx)(`span`,{className:`brand-icon-fallback ${n?`hidden`:``}`,children:t}),(0,Q.jsx)(`span`,{className:`brand-icon-real ${n?`visible`:``}`,children:(0,Q.jsx)(ht,{icon:e,width:20,height:20})})]})}function vt(){let{t:e,formatNumber:t}=d(),[n,r]=(0,S.useState)(new Map),[i,a]=(0,S.useState)(!1),o=(0,S.useRef)(new Map);(0,S.useEffect)(()=>{document.title=e(`ping.meta.title`)},[e]);let s=(0,S.useCallback)(e=>{r(t=>{let n=new Map(t);return n.set(e,{status:`pending`,latency:0}),n});let t=new AbortController;o.current.set(e,t);let n=performance.now(),i=(t,n)=>{r(r=>{let i=new Map(r);return i.set(e,{status:t,latency:n}),i})},a=setTimeout(()=>{t.abort()},gt);fetch(`https://${e}/`,{method:`HEAD`,mode:`no-cors`,cache:`no-store`,signal:t.signal}).then(()=>{clearTimeout(a),i(`ok`,Math.round(performance.now()-n))}).catch(()=>{clearTimeout(a),i(`timeout`,0)})},[]),c=(0,S.useCallback)(()=>{a(!0);let e=new Map;$.forEach(t=>{e.set(t.host,{status:`pending`,latency:0})}),r(e);let t=new Set($.map(e=>e.host));$.forEach(e=>{let n=new AbortController;o.current.set(e.host,n);let i=performance.now(),s=(n,i)=>{t.has(e.host)&&(t.delete(e.host),r(t=>{let r=new Map(t);return r.set(e.host,{status:n,latency:i}),r}),t.size===0&&a(!1))},c=setTimeout(()=>{n.abort()},gt);fetch(`https://${e.host}/`,{method:`HEAD`,mode:`no-cors`,cache:`no-store`,signal:n.signal}).then(()=>{clearTimeout(c),s(`ok`,Math.round(performance.now()-i))}).catch(()=>{clearTimeout(c),s(`timeout`,0)})})},[]);return(0,S.useEffect)(()=>(c(),()=>{o.current.forEach(e=>e.abort()),o.current.clear()}),[c]),(0,Q.jsxs)(`div`,{className:`ping-page`,children:[(0,Q.jsxs)(`div`,{className:`ping-header`,children:[(0,Q.jsxs)(`div`,{className:`ping-title-wrap`,children:[(0,Q.jsx)(l,{size:28,className:`ping-title-icon`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h1`,{className:`ping-title`,children:e(`ping.title`)}),(0,Q.jsx)(`p`,{className:`ping-subtitle`,children:e(`ping.subtitle`)})]})]}),(0,Q.jsx)(`button`,{className:`btn btn-icon`,onClick:c,disabled:i,"aria-label":e(`ping.retryAll`),title:e(`ping.retryAll`),children:(0,Q.jsx)(b,{size:18,className:i?`ping-spin`:``})})]}),(0,Q.jsx)(`div`,{className:`ping-grid`,children:$.map(r=>{let i=n.get(r.host),a=!i||i.status===`pending`,o=i?.status===`timeout`;return(0,Q.jsxs)(`div`,{className:`ping-card ${a?`pending`:``}`,children:[(0,Q.jsxs)(`div`,{className:`ping-card-top`,children:[(0,Q.jsx)(`span`,{className:`ping-card-icon`,children:(0,Q.jsx)(_t,{icon:r.icon,fallback:r.fallback})}),(0,Q.jsx)(`a`,{href:`https://${r.host}`,target:`_blank`,rel:`noreferrer`,className:`ping-card-name`,children:r.name}),(0,Q.jsx)(`button`,{className:`ping-card-refresh`,onClick:()=>s(r.host),disabled:a,"aria-label":e(`ping.retryOne`,{name:r.name}),title:e(`ping.retry`),children:(0,Q.jsx)(b,{size:13,className:a?`ping-spin`:``})})]}),(0,Q.jsxs)(`div`,{className:`ping-card-bottom`,children:[a?(0,Q.jsx)(`span`,{className:`ping-pulse-dot`}):(0,Q.jsx)(`span`,{className:`ping-status-label ${o?`is-error`:`is-success`}`,children:e(o?`ping.unavailable`:`ping.available`)}),(0,Q.jsx)(`span`,{className:`ping-latency ${a?`is-muted`:o?`is-error`:`is-success`}`,children:a?`--`:o?e(`ping.timeout`):`${t(i.latency)} ms`})]})]},r.host)})})]})}function yt(){return(0,Q.jsx)(p,{children:(0,Q.jsx)(vt,{})})}var bt=f(`/ping/`)({component:yt});export{bt as Route};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{t as r}from"./cloud-BEe2N89j.js";import{t as i}from"./code-9LB8QqxL.js";import{t as a}from"./download-D0oMEYQZ.js";import{J as o,Z as s,nt as c,tt as l}from"./index-WCK14Vja.js";import{t as u}from"./MarketingHeader-yIZuQP7m.js";import{n as d}from"./format-CR8oUWq6.js";var f=o(`apple`,[[`path`,{d:`M12 6.528V3a1 1 0 0 1 1-1h0`,key:`11qiee`}],[`path`,{d:`M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21`,key:`110c12`}]]),p=o(`laptop`,[[`path`,{d:`M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z`,key:`1pdavp`}],[`path`,{d:`M20.054 15.987H3.946`,key:`14rxg9`}]]),m=o(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),h=t(e(),1),g=n(),_=`https://github.com/most-people/most/releases/latest`,v=`${`https://download.most.box`.replace(/\/+$/,``)}/releases/latest.json`,y=[{platform:`windows`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`windows`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`macos`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`macos`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`linux`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`linux`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_}],b={windows:{name:`Windows`,ext:`.exe`,descKey:`download.platform.windows.desc`,icon:m},macos:{name:`macOS`,ext:`.dmg`,descKey:`download.platform.macos.desc`,icon:f},linux:{name:`Linux`,ext:`.AppImage`,descKey:`download.platform.linux.desc`,icon:p}};function x(e){return typeof e==`object`&&!!e}function S(e){return x(e)?[`windows`,`macos`,`linux`].includes(String(e.platform))&&[`x64`,`arm64`].includes(String(e.arch))&&e.kind===`installer`&&typeof e.filename==`string`&&typeof e.githubUrl==`string`&&(typeof e.r2Url==`string`||e.r2Url===void 0):!1}function C(e){return!x(e)||typeof e.version!=`string`||typeof e.publishedAt!=`string`||!Array.isArray(e.assets)?!1:e.assets.every(S)}function w(){return[navigator.userAgentData?.platform,navigator.platform,navigator.userAgent].filter(Boolean).join(` `).toLowerCase()}function T(){if(typeof navigator>`u`)return`windows:x64`;let e=w(),t=/arm|aarch64/.test(e)?`arm64`:`x64`;return/mac|darwin/.test(e)?`macos:${t}`:/linux/.test(e)?`linux:${t}`:`windows:${t}`}function E(){let{t:e}=s(),[t,n]=(0,h.useState)(null),[o,c]=(0,h.useState)(v?`loading`:`fallback`),[l,u]=(0,h.useState)(`windows:x64`),[f,p]=(0,h.useState)(`r2`);(0,h.useEffect)(()=>{u(T())},[]),(0,h.useEffect)(()=>{if(!v)return;let e=new AbortController;return fetch(v,{cache:`no-store`,signal:e.signal}).then(e=>{if(!e.ok)throw Error(`Manifest request failed: ${e.status}`);return e.json()}).then(e=>{if(!C(e))throw Error(`Invalid download manifest`);n(e),c(`ready`)}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||(n(null),c(`fallback`))}),()=>e.abort()},[]),(0,h.useEffect)(()=>{o===`fallback`&&p(`github`)},[o]);let m=t?.assets.length?t.assets:y,_=m.some(e=>e.r2Url),x=f===`r2`&&_?`r2`:`github`;return(0,g.jsxs)(`div`,{className:`download-options`,children:[(0,g.jsxs)(`div`,{className:`ui-segmented-control download-source-tabs`,role:`tablist`,"aria-label":e(`download.source.label`),children:[(0,g.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":x===`r2`,disabled:!_,className:x===`r2`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,onClick:()=>p(`r2`),children:[(0,g.jsx)(r,{size:15}),`Cloudflare R2`]}),(0,g.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":x===`github`,className:x===`github`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,onClick:()=>p(`github`),children:[(0,g.jsx)(i,{size:15}),`GitHub Releases`]})]}),(0,g.jsx)(`p`,{className:`download-source-note`,children:o===`loading`?e(`download.source.loading`):o===`ready`&&t?e(`download.source.ready`,{version:t.version}):e(`download.source.fallback`)}),(0,g.jsx)(`div`,{className:`download-platform-grid`,children:m.map(t=>{let n=b[t.platform],r=n.icon,i=`${t.platform}:${t.arch}`,o=x===`r2`&&t.r2Url?t.r2Url:t.githubUrl,s=i===l;return(0,g.jsxs)(`article`,{className:s?`download-platform-card is-recommended`:`download-platform-card`,children:[(0,g.jsx)(`div`,{className:`download-platform-icon`,children:(0,g.jsx)(r,{size:32})}),(0,g.jsxs)(`div`,{className:`download-platform-content`,children:[(0,g.jsxs)(`div`,{className:`download-platform-heading`,children:[(0,g.jsx)(`h3`,{children:n.name}),(0,g.jsx)(`span`,{children:t.arch})]}),(0,g.jsx)(`p`,{children:e(n.descKey)}),(0,g.jsxs)(`dl`,{className:`download-platform-meta`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`dt`,{children:e(`download.platform.source`)}),(0,g.jsx)(`dd`,{children:x===`r2`&&t.r2Url?e(`download.source.r2Mirror`):`GitHub Releases`})]}),t.size?(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`dt`,{children:e(`download.platform.size`)}),(0,g.jsx)(`dd`,{children:d(t.size)})]}):null,t.sha256?(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`dt`,{children:`SHA256`}),(0,g.jsx)(`dd`,{children:t.sha256.slice(0,12)})]}):null]}),(0,g.jsx)(`div`,{className:`download-platform-actions`,children:(0,g.jsxs)(`a`,{href:o,className:`btn btn-primary`,children:[(0,g.jsx)(a,{size:16}),e(`download.platform.action`,{ext:n.ext})]})})]}),s?(0,g.jsx)(`span`,{className:`download-recommended-badge`,children:e(`download.platform.current`)}):null]},i)})})]})}var D=[{featureKey:`download.comparison.node`,webKey:`download.comparison.webConnectsNode`,desktopKey:`download.comparison.desktopBuiltinNode`},{featureKey:`download.comparison.fileSharing`,webKey:`download.comparison.webDependsNode`,desktopKey:`download.comparison.desktopFull`},{featureKey:`download.comparison.verification`,webKey:`download.comparison.webDependsNode`,desktopKey:`download.comparison.desktopFull`},{featureKey:`download.comparison.seeding`,webKey:`download.comparison.webDependsNode`,desktopKey:`download.comparison.desktopDefaultOn`},{featureKey:`download.comparison.largeFiles`,webKey:`download.comparison.webDependsNode`,desktopKey:`download.comparison.desktop10gb`}];function O(){let{t:e}=s();return(0,h.useEffect)(()=>{document.title=e(`download.meta.title`)},[e]),(0,g.jsxs)(`div`,{className:`download-page`,children:[(0,g.jsx)(u,{}),(0,g.jsx)(`section`,{className:`download-hero`,children:(0,g.jsxs)(`div`,{className:`mkt-container`,children:[(0,g.jsx)(`div`,{className:`download-hero-icon`,children:(0,g.jsx)(a,{size:40})}),(0,g.jsx)(`h1`,{className:`download-hero-title`,children:e(`download.hero.title`)}),(0,g.jsx)(`p`,{className:`download-hero-desc`,children:e(`download.hero.desc`)})]})}),(0,g.jsx)(`section`,{className:`download-platforms`,children:(0,g.jsxs)(`div`,{className:`mkt-container`,children:[(0,g.jsx)(`h2`,{className:`download-section-title`,children:e(`download.platforms.title`)}),(0,g.jsx)(E,{})]})}),(0,g.jsx)(`section`,{className:`download-comparison`,children:(0,g.jsxs)(`div`,{className:`mkt-container`,children:[(0,g.jsx)(`h2`,{className:`download-section-title`,children:e(`download.comparison.title`)}),(0,g.jsx)(`div`,{className:`download-table-wrap`,children:(0,g.jsxs)(`table`,{className:`download-table`,children:[(0,g.jsx)(`thead`,{children:(0,g.jsxs)(`tr`,{children:[(0,g.jsx)(`th`,{children:e(`download.comparison.feature`)}),(0,g.jsx)(`th`,{children:e(`download.comparison.web`)}),(0,g.jsx)(`th`,{children:e(`download.comparison.desktop`)})]})}),(0,g.jsx)(`tbody`,{children:D.map(t=>(0,g.jsxs)(`tr`,{children:[(0,g.jsx)(`td`,{children:e(t.featureKey)}),(0,g.jsx)(`td`,{className:`col-web`,children:e(t.webKey)}),(0,g.jsx)(`td`,{className:`col-desktop`,children:e(t.desktopKey)})]},t.featureKey))})]})})]})}),(0,g.jsx)(`section`,{className:`download-cta`,children:(0,g.jsx)(`div`,{className:`mkt-container`,children:(0,g.jsx)(`p`,{className:`download-hero-desc`,children:e(`download.npmNote`)})})}),(0,g.jsx)(`section`,{className:`download-cta`,children:(0,g.jsx)(`div`,{className:`mkt-container`,children:(0,g.jsx)(c,{to:`/`,className:`btn btn-primary`,children:e(`common.backHome`)})})}),(0,g.jsx)(`footer`,{className:`mkt-footer`,children:(0,g.jsx)(`div`,{className:`mkt-container`,children:(0,g.jsx)(`div`,{className:`mkt-footer-inner`,children:(0,g.jsx)(`p`,{className:`mkt-footer-copy`,children:`MostBox`})})})})]})}var k=l(`/download/`)({component:O});export{k as Route};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MilkdownEditor-_TGlDyA_.js","assets/jsx-runtime-Bt-cYkS5.js","assets/index-WCK14Vja.js","assets/index-BkZvz4WA.css","assets/dist-zyJb88Zz.js","assets/dist-CbTzBiwL.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{n as r,r as i}from"./LanguageToggle-B4ZNuBCV.js";import{n as a}from"./upload-Dxl7GUzb.js";import{t as o}from"./plus-BbxQG_Ai.js";import{n as s,t as c}from"./trash-2-DNGr8IgF.js";import{t as l}from"./lock-D2NhNoJW.js";import{t as u}from"./AppShell-OiOEqXPr.js";import{t as d}from"./notebook-pen-Up7r5zoI.js";import{t as f}from"./OpenSidebarButton-BfgG2HIT.js";import{t as ee}from"./save-CiqyiifY.js";import{t as p}from"./search-gqAPOsgS.js";import{A as m,B as h,G as g,J as _,M as v,R as y,U as te,V as ne,Z as re,et as ie,g as b,it as ae,k as oe,l as se,m as x,t as ce,tt as S,u as le,z as ue}from"./index-WCK14Vja.js";import{n as de,r as fe,t as pe}from"./NoteSidebar-DpniUKmy.js";var me=_(`move`,[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m15 19-3 3-3-3`,key:`11eu04`}],[`path`,{d:`m19 9 3 3-3 3`,key:`1mg7y2`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}],[`path`,{d:`m5 9-3 3 3 3`,key:`j64kie`}],[`path`,{d:`m9 5 3-3 3 3`,key:`l8vdw6`}]]),he=_(`pencil-ruler`,[[`path`,{d:`M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13`,key:`orapub`}],[`path`,{d:`m8 6 2-2`,key:`115y1s`}],[`path`,{d:`m18 16 2-2`,key:`ee94s4`}],[`path`,{d:`m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17`,key:`cfq27r`}],[`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`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),C=t(e(),1),w=`https://api.most.box/auth/backup`;async function T(e,t){return(await e.clone().json().catch(()=>null))?.error||t}function E(e,t){return m(JSON.stringify({notes:e||[]}),t)}function D(e,t){if(!String(e||``).startsWith(`mp://1`))throw Error(`无效的备份数据格式`);let n=oe(e,t);if(!n)throw Error(`解密失败,请确认当前 Web3 登录账号正确`);let r=JSON.parse(n);if(!Array.isArray(r.notes))throw Error(`备份数据缺少 notes`);return r}async function O(e){return y(JSON.stringify({notes:e||[]}))}async function k(e,t,n=w){let r=Date.now().toString(),i=new URL(n).pathname,a=`${r}:${String(t).toUpperCase()}:${i}`,{address:o,signature:s}=await v(e.danger,a);return{Authorization:`${o},${r},${s}`}}async function A(e,t){let n=await y(JSON.stringify({notes:t||[]}));return{cid:n,body:E(t,e.danger),headers:{"Content-Type":`text/plain`,"x-backup-cid":n,...await k(e,`PUT`,w)}}}async function j(e,t,n=w){let r=await A(e,t),i=await fetch(n,{method:`PUT`,headers:r.headers,body:r.body});if(!i.ok)throw Error(await T(i,`云备份失败`));return{cid:r.cid}}async function ge(e,t=w){let n=await fetch(t,{method:`GET`,headers:await k(e,`GET`,t)});if(n.status===404)return{found:!1,cid:``,time:0,notes:[]};if(!n.ok)throw Error(await T(n,`云端恢复失败`));let r=await n.text();if(!r)throw Error(`云端无备份数据`);let i=D(r,e.danger);return{found:!0,cid:n.headers.get(`x-backup-cid`)||``,time:Number(n.headers.get(`x-backup-time`)||0),notes:i.notes}}var M=!1,N=``,P=``;function F(e,t){return e instanceof Error?e.message:t}function I(e,t){switch(e){case`disabled`:return t(`note.sync.status.disabled`);case`checking`:return t(`note.sync.status.checking`);case`uploading`:return t(`note.sync.status.uploading`);case`restoring`:return t(`note.sync.status.restoring`);case`synced`:return t(`note.sync.status.synced`);case`conflict`:return t(`note.sync.status.conflict`);case`error`:return t(`note.sync.status.error`);default:return t(`note.sync.status.idle`)}}function _e(){let{t:e}=re(),t=x(e=>e.wallet),n=x(e=>e.openLoginModal),r=b(e=>e.addToast),i=b(e=>e.notes),a=b(e=>e.importNotes),o=b(e=>e.localDataReady),[s,c]=(0,C.useState)(null),[l,u]=(0,C.useState)(t?`idle`:`disabled`),[d,f]=(0,C.useState)(M),[ee,p]=(0,C.useState)(!1),m=(0,C.useRef)(0),h=(0,C.useCallback)(e=>{M=e,f(e)},[]),g=(0,C.useCallback)((e=!1)=>x.getState().wallet||(e||n(),null),[r,n]),_=(0,C.useCallback)(async(t={})=>{let{silent:n=!1,confirmConflict:i=!0}=t,a=g(n);if(!a)return u(`disabled`),!1;if(M&&i&&!window.confirm(e(`note.sync.confirm.uploadConflict`)))return n||r(e(`note.sync.toast.cancelSync`),`info`),u(`conflict`),!1;c(`save`),u(`uploading`);try{let t=b.getState().notes;return N=(await j(a,t)).cid,P=a.address,h(!1),u(`synced`),n||r(e(`note.sync.toast.cloudUpdated`),`success`),!0}catch(t){return u(`error`),n?console.info(F(t,e(`note.sync.error.backupFailed`))):r(F(t,e(`note.sync.error.backupFailed`)),`error`),!1}finally{c(null)}},[r,g,h,e]),v=(0,C.useCallback)(async(t={})=>{let{manual:n=!1,uploadWhenMissing:i=!1}=t,o=g(!n);if(!o)return u(`disabled`),!1;c(n?`restore`:`sync`),u(n?`restoring`:`checking`);try{let t=await ge(o),s=b.getState().notes;if(!t.found)return h(!1),P=o.address,i&&s.length>0?(c(null),_({silent:!0,confirmConflict:!1})):(u(s.length>0?`idle`:`synced`),n&&r(e(`note.sync.toast.noCloudBackup`),`info`),!1);let l=t.notes||[],d=await O(s),f=t.cid||await O(l);return s.length>0&&d!==f&&!window.confirm(e(`note.sync.confirm.restoreConflict`))?(h(!0),u(`conflict`),n&&r(e(`note.sync.toast.cancelRestore`),`info`),!1):(d!==f&&a(l),N=f,P=o.address,h(!1),u(`synced`),n&&r(e(`note.sync.toast.restoredCloud`),`success`),!0)}catch(t){return u(`error`),n?r(F(t,e(`note.sync.error.restoreCloudFailed`)),`error`):console.info(F(t,e(`note.sync.error.restoreCloudFailed`))),!1}finally{c(null)}},[r,a,g,h,e,_]),y=(0,C.useCallback)(()=>{let t=g(!1);if(t)try{let n=b.getState().notes,i=E(n,t.danger),a=new Blob([i],{type:`text/plain`}),o=URL.createObjectURL(a),s=document.createElement(`a`);s.href=o,s.download=`${t.address.slice(-4)}-most-notes-${new Date().toISOString().slice(0,10)}.txt`,s.click(),URL.revokeObjectURL(o),r(e(`note.sync.toast.exportedLocal`),`success`)}catch(t){r(F(t,e(`note.sync.error.exportFailed`)),`error`)}},[r,g,e]),te=(0,C.useCallback)(()=>{let t=g(!1);if(!t)return;let n=document.createElement(`input`);n.type=`file`,n.accept=`.txt`,n.onchange=n=>{let i=n.target.files?.[0];if(!i)return;let o=new FileReader;o.onload=async()=>{try{let n=o.result,i=D(n,t.danger);if(b.getState().notes.length>0&&!window.confirm(e(`note.sync.confirm.importOverwrite`))){r(e(`note.sync.toast.cancelRestore`),`info`);return}a(i.notes),r(e(`note.sync.toast.restoredLocal`),`success`),await _({silent:!0})}catch(t){r(F(t,e(`note.sync.error.importFailed`)),`error`)}},o.readAsText(i)},n.click()},[r,a,g,e,_]);return(0,C.useEffect)(()=>{if(!o)return;if(!t){P=``,N=``,p(!1),h(!1),u(`disabled`);return}if(P===t.address){p(!0),u(M?`conflict`:`synced`);return}let e=!1;return p(!1),v({manual:!1,uploadWhenMissing:!0}).finally(()=>{e||p(!0)}),()=>{e=!0}},[o,v,h,t]),(0,C.useEffect)(()=>{if(!t||!o||!ee||(m.current+=1,m.current<=1))return;let e=window.setTimeout(async()=>{let e=b.getState().notes;await O(e)!==N&&await _({silent:!0})},900);return()=>window.clearTimeout(e)},[ee,o,i,_,t]),{action:s,status:l,statusLabel:(0,C.useMemo)(()=>I(l,e),[l,e]),hasConflict:d,uploadNow:_,restoreFromCloud:v,exportLocalBackup:y,importLocalBackup:te}}var L=n(),ve=(0,C.lazy)(async()=>({default:(await ce(()=>import(`./MilkdownEditor-_TGlDyA_.js`),__vite__mapDeps([0,1,2,3,4,5]))).MilkdownEditor}));function ye(e){let t=new URLSearchParams(e),n=t.get(`mode`);return{cid:t.get(`cid`)||void 0,mode:n===`edit`?`edit`:void 0}}function be(e={}){let t=new URLSearchParams;e.cid&&t.set(`cid`,e.cid),e.mode&&t.set(`mode`,e.mode);let n=t.toString();return n?`/note/?${n}`:`/note/`}function xe(e,t){return e.isSecret||e.content.startsWith(`mp://1`)?t(`note.preview.encrypted`):String(e.content||``).replace(/```[\s\S]*?```/g,` `).replace(/!\[[^\]]*]\([^)]*\)/g,` `).replace(/\[([^\]]+)]\([^)]*\)/g,`$1`).replace(/[#>*_`~|-]/g,` `).replace(/\s+/g,` `).trim()||t(`note.preview.empty`)}var R={"note.error.nameRequired":`note.error.nameRequired`,"note.error.nameNoSlash":`note.error.nameNoSlash`,"note.error.nameNoBackslash":`note.error.nameNoBackslash`,"note.error.nameInvalid":`note.error.nameInvalid`,"note.error.nameConflict":`note.error.nameConflict`,"note.error.moveIntoSelf":`note.error.moveIntoSelf`};function z(e,t,n){let r=e instanceof Error?e.message:``,i=R[r];return i?n(i):r||t}function Se(e){return e.type===`directory`?ne(e.path?`${e.path}/${e.name}`:e.name):h(e)}function Ce(e,t){let n=new Set;for(let t of e){let e=ne(t.path).split(`/`).filter(Boolean);for(let t=0;t<e.length;t+=1)n.add(e.slice(0,t+1).join(`/`))}return Array.from(n).sort(t).map(e=>{let t=e.split(`/`);return{path:e,name:t[t.length-1]||e,parentPath:t.slice(0,-1).join(`/`),depth:Math.max(t.length-1,0)}})}function B(){let{t:e,formatDate:t,compareStrings:n}=re(),_=ae(),v=ie({select:e=>e.searchStr}),y=(0,C.useMemo)(()=>ye(v),[v]),ce=(0,C.useRef)(null),S=_e(),w=b(e=>e.addToast),T=b(e=>e.isDarkMode),E=b(e=>e.setIsDarkMode),D=x(e=>e.wallet),O=x(e=>e.openLoginModal),k=b(e=>e.notes),A=b(e=>e.notesPath),j=b(e=>e.setNotesPath),ge=b(e=>e.saveNote),M=b(e=>e.deleteNote),N=b(e=>e.renameNote),P=b(e=>e.localDataReady),F=y.cid||``,I=k.find(e=>e.cid===F),R=!!F,B=R&&y.mode===`edit`,[V,we]=(0,C.useState)(``),[H,U]=(0,C.useState)(null),[W,Te]=(0,C.useState)(null),[G,Ee]=(0,C.useState)(null),[De,K]=(0,C.useState)(``),[Oe,q]=(0,C.useState)(``),[ke,J]=(0,C.useState)(``),[Ae,je]=(0,C.useState)(``),[Me,Ne]=(0,C.useState)(``),[Pe,Y]=(0,C.useState)(``),[X,Fe]=(0,C.useState)(!1),[Ie,Z]=(0,C.useState)(``),[Le,Re]=(0,C.useState)(!1);(0,C.useEffect)(()=>{if(!F){K(``),q(``);return}if(!I){K(``),q(P?e(`note.error.notFound`):``);return}if(I.content.startsWith(`mp://1`)){if(!D){K(``),q(e(`note.error.loginToDecrypt`));return}let t=oe(I.content,D.danger);if(!t){K(``),q(e(`note.error.decryptFailed`));return}K(t),q(``);return}K(I.content||``),q(``)},[F,P,I,e,D]),(0,C.useEffect)(()=>{if(!B){Re(!1);return}if(!F||!I){je(``),Ne(``),Y(``),Fe(!1),Z(P?e(`note.error.notFound`):``);return}if(je(I.name),Ne(I.path||``),Fe(I.isSecret===!0||I.content.startsWith(`mp://1`)),I.content.startsWith(`mp://1`)){if(!D){Y(``),Z(e(`note.error.loginToDecrypt`));return}let t=oe(I.content,D.danger);if(!t){Y(``),Z(e(`note.error.decryptFailed`));return}Y(t),Z(``);return}Y(I.content||``),Z(``)},[F,B,P,I,e,D]),(0,C.useEffect)(()=>{J(I?.name||``)},[I?.cid,I?.name]);let ze=(0,C.useMemo)(()=>ue(k,A,V),[k,A,V]),Be=ze.filter(e=>e.type===`file`).length,Ve=I?.isSecret===!0||I?.content.startsWith(`mp://1`)===!0,He=e(B?X?`note.privacy.secret`:`note.privacy.public`:Ve?`note.privacy.secret`:`note.privacy.public`),Ue=(0,C.useMemo)(()=>{let t=A.split(`/`).filter(Boolean);return[{label:e(`note.root`),path:``},...t.map((e,n)=>({label:e,path:t.slice(0,n+1).join(`/`)}))]},[A,e]),We=(0,C.useMemo)(()=>Ce(k,n),[n,k]);function Q(e={},t=!1){_({href:be(e),replace:t})}function Ge(e){Q({cid:e.cid})}function Ke(e){Q({cid:e.cid,mode:`edit`})}function $(){return D?!0:(O(),!1)}function qe(){Q(I?{cid:I.cid}:{})}async function Je(){if($()){if(!I){w(e(`note.toast.notFound`),`error`);return}if(!Ae.trim()){w(e(`note.toast.nameRequired`),`warning`);return}Re(!0);try{let t=ce.current?.getMarkdown()??Pe,n=X?m(t,D.danger):t,r=await ge({cid:I.cid,name:Ae,path:Me,content:n,isSecret:X});Y(t),Q({cid:r},!0),w(e(`note.toast.saved`),`success`),await S.uploadNow({silent:!0})}catch(t){w(z(t,e(`note.toast.saveFailed`),e),`error`)}finally{Re(!1)}}}function Ye(){$()&&U({title:e(`note.create.title`),placeholder:e(`note.namePlaceholder`),confirmText:e(`note.create.action`),onConfirm:async t=>{if($())try{let n=await ge({name:t,path:A,content:``,isSecret:!1});U(null),w(e(`note.toast.created`),`success`),await S.uploadNow({silent:!0}),Q({cid:n,mode:`edit`})}catch(t){w(z(t,e(`note.toast.createFailed`),e),`error`)}}})}async function Xe(){if(!$()||!I)return;let t=ke.trim();if(!t){J(I.name),w(e(`note.toast.nameRequired`),`warning`);return}if(t!==I.name)try{N(h(I),I.path,t),w(e(`note.toast.renamed`),`success`),await S.uploadNow({silent:!0})}catch(t){J(I.name),w(z(t,e(`note.toast.renameFailed`),e),`error`)}}function Ze(e){$()&&Ee(e)}async function Qe(t){if(G)try{N(Se(G),t,G.name),Ee(null),w(e(`note.toast.moved`),`success`),await S.uploadNow({silent:!0})}catch(t){w(z(t,e(`note.toast.moveFailed`),e),`error`)}}function $e(t){if(!$())return;let n=t.type===`directory`;Te({title:e(n?`note.delete.folderTitle`:`note.delete.noteTitle`),message:e(`note.delete.message`,{name:t.name}),confirmText:e(`note.action.delete`),onConfirm:async()=>{M(n?void 0:t.cid,t.path,t.name),Te(null),w(e(`note.toast.deleted`),`success`),await S.uploadNow({silent:!0}),t.type===`file`&&t.cid===F&&Q()}})}let et=(0,L.jsxs)(`div`,{className:`note-header-title`,children:[(0,L.jsx)(`h2`,{className:`header-title`,children:e(`note.title`)}),(0,L.jsx)(`span`,{children:e(`note.count`,{count:k.length})})]}),tt=(0,L.jsxs)(`div`,{className:`note-theme-wrap`,children:[(0,L.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>E(!T),title:e(`common.theme.toggle`),"aria-label":e(`common.theme.toggle`),children:T?(0,L.jsx)(r,{size:16}):(0,L.jsx)(i,{size:16})}),(0,L.jsx)(fe,{sync:S})]}),nt=(0,L.jsxs)(`section`,{className:`note-list-panel note-sidebar-list`,"aria-label":e(`note.listLabel`),children:[(0,L.jsxs)(`div`,{className:`note-list-header`,children:[(0,L.jsx)(`div`,{className:`note-current-location`,children:(0,L.jsx)(`div`,{className:`note-breadcrumbs`,children:Ue.map((e,t)=>(0,L.jsxs)(C.Fragment,{children:[t>0&&(0,L.jsx)(`span`,{children:`/`}),(0,L.jsx)(`button`,{onClick:()=>j(e.path),children:(0,L.jsx)(`span`,{translate:e.path?`no`:`yes`,children:e.label})})]},e.path||`root`))})}),(0,L.jsx)(`span`,{className:`note-count`,children:e(`note.count`,{count:Be})})]}),(0,L.jsxs)(`div`,{className:`note-search`,children:[(0,L.jsx)(p,{size:16}),(0,L.jsx)(`input`,{className:`input input-flex`,value:V,onChange:e=>we(e.target.value),placeholder:e(`note.search.placeholder`)})]}),ze.length===0?(0,L.jsxs)(`div`,{className:`ui-empty-state note-empty-state`,children:[(0,L.jsx)(d,{size:32}),(0,L.jsx)(`p`,{children:e(V?`note.empty.noMatches`:`note.empty.noNotes`)})]}):(0,L.jsx)(`div`,{className:`note-list`,children:ze.map(n=>(0,L.jsx)(`article`,{className:`ui-list-item note-list-item ${n.type===`file`&&n.cid===F?`active`:``}`,children:(0,L.jsxs)(`button`,{className:`ui-list-item-main note-list-item-main ${n.type===`directory`?`folder`:``}`,onClick:()=>{n.type===`directory`?j(ne(n.path?`${n.path}/${n.name}`:n.name)):Ge(n)},children:[(0,L.jsx)(`span`,{className:`ui-list-icon note-list-icon ${n.type===`directory`?`warning`:``}`,children:n.type===`directory`?(0,L.jsx)(a,{size:18}):n.isSecret?(0,L.jsx)(l,{size:18}):(0,L.jsx)(s,{size:18})}),(0,L.jsxs)(`span`,{className:`ui-list-copy note-list-copy`,children:[(0,L.jsx)(`span`,{className:`ui-list-title note-list-name`,translate:`no`,children:n.name}),n.type===`file`?(0,L.jsx)(`span`,{className:`ui-list-desc note-list-preview`,translate:`no`,children:xe(n,e)}):(0,L.jsx)(`span`,{className:`ui-list-desc note-list-preview`,children:e(`note.folder`)})]}),n.type===`file`&&(0,L.jsx)(`span`,{className:`ui-list-meta note-list-date`,children:t(n.updated_at)})]})},`${n.cid}:${n.path}:${n.name}`))}),(0,L.jsx)(`div`,{className:`note-create-btn`,children:(0,L.jsxs)(`button`,{className:`btn`,onClick:Ye,children:[(0,L.jsx)(o,{size:16}),e(`note.newNote`)]})})]});return(0,L.jsxs)(u,{sidebar:()=>(0,L.jsx)(pe,{children:nt}),headerTitle:et,headerRight:tt,children:[(0,L.jsx)(`main`,{className:`note-page note-browser-page ${R?`has-editor`:``}`,children:(0,L.jsx)(`section`,{className:`note-workspace`,children:(0,L.jsx)(`section`,{className:`note-editor-panel`,"aria-label":e(B?`note.editorLabel.edit`:`note.editorLabel.read`),children:R?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`note-editor-panel-header`,children:[(0,L.jsxs)(`div`,{className:`note-editor-title-area`,children:[B?(0,L.jsx)(`input`,{className:`note-title-input`,value:Ae,onChange:e=>je(e.target.value),placeholder:e(`note.namePlaceholder`),translate:`no`,disabled:!I}):I?(0,L.jsx)(`input`,{className:`note-title-input`,value:ke,onBlur:Xe,onChange:e=>J(e.target.value),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur(),e.key===`Escape`&&(J(I.name),e.currentTarget.blur())},placeholder:e(`note.namePlaceholder`),title:e(`app.rename`),translate:`no`}):(0,L.jsx)(`h3`,{children:e(`note.untitled`)}),I&&(0,L.jsxs)(`div`,{className:`note-editor-info`,children:[(0,L.jsx)(`span`,{children:e(B?`note.mode.edit`:`note.mode.read`)}),(0,L.jsx)(`span`,{children:He}),(0,L.jsx)(`span`,{children:t(I.updated_at)})]})]}),(0,L.jsxs)(`div`,{className:`note-editor-actions`,children:[(0,L.jsx)(`button`,{type:`button`,className:`btn btn-icon`,onClick:B?qe:()=>Q(),title:e(B?`common.cancel`:`common.close`),"aria-label":e(B?`common.cancel`:`common.close`),children:(0,L.jsx)(te,{size:16})}),B?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`button`,{className:`btn btn-sm ${X?`btn-warning`:`btn-secondary`}`,onClick:()=>Fe(!X),disabled:!I,children:[X?(0,L.jsx)(l,{size:16}):(0,L.jsx)(g,{size:16}),e(X?`note.privacy.secret`:`note.privacy.public`)]}),(0,L.jsxs)(`button`,{className:`btn btn-sm btn-primary`,onClick:Je,disabled:Le||!!Ie||!I,children:[(0,L.jsx)(ee,{size:16}),e(Le?`note.action.saving`:`note.action.save`)]})]}):I&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`button`,{type:`button`,className:`btn btn-icon`,onClick:()=>Ze(I),title:e(`note.action.move`),"aria-label":e(`note.action.move`),children:(0,L.jsx)(me,{size:16})}),(0,L.jsx)(`button`,{type:`button`,className:`btn btn-icon note-editor-action-danger`,onClick:()=>$e(I),title:e(`note.action.delete`),"aria-label":e(`note.action.delete`),children:(0,L.jsx)(c,{size:16})}),(0,L.jsxs)(`button`,{type:`button`,className:`btn btn-sm btn-primary`,onClick:()=>Ke(I),disabled:!!Oe,title:e(`note.action.edit`),"aria-label":e(`note.action.edit`),children:[(0,L.jsx)(he,{size:16}),e(`note.action.edit`)]})]})]})]}),B?Ie?(0,L.jsxs)(`div`,{className:`note-empty-state editor-error`,children:[(0,L.jsx)(l,{size:36}),(0,L.jsx)(`p`,{children:Ie})]}):I?(0,L.jsx)(`div`,{className:`note-editor-frame editing`,children:(0,L.jsx)(ve,{ref:ce,content:Pe,onChange:Y,className:`milkdown-editor`})}):(0,L.jsxs)(`div`,{className:`note-empty-state editor-error`,children:[(0,L.jsx)(d,{size:36}),(0,L.jsx)(`p`,{children:e(P?`note.error.notFound`:`note.loading`)})]}):Oe?(0,L.jsxs)(`div`,{className:`ui-empty-state note-empty-state editor-error`,children:[(0,L.jsx)(l,{size:36}),(0,L.jsx)(`p`,{children:Oe})]}):I?(0,L.jsx)(`div`,{className:`note-editor-frame reading`,children:(0,L.jsx)(ve,{content:De,readOnly:!0,className:`milkdown-editor`})}):(0,L.jsxs)(`div`,{className:`ui-empty-state note-empty-state editor-error`,children:[(0,L.jsx)(d,{size:36}),(0,L.jsx)(`p`,{children:e(P?`note.error.notFound`:`note.loading`)})]})]}):(0,L.jsxs)(`div`,{className:`ui-empty-state note-editor-empty`,children:[(0,L.jsx)(`div`,{className:`ui-empty-icon note-editor-empty-icon`,children:(0,L.jsx)(d,{size:32})}),(0,L.jsx)(`h3`,{className:`ui-empty-title`,children:e(`note.noOpen.title`)}),(0,L.jsx)(`p`,{className:`ui-empty-desc`,children:k.length>0?e(`note.noOpen.select`):e(`note.noOpen.createFirst`)}),(0,L.jsx)(f,{label:e(`note.openList`),variant:`default`})]})})})}),H&&(0,L.jsx)(se,{title:H.title,placeholder:H.placeholder,defaultValue:H.defaultValue,confirmText:H.confirmText,onConfirm:H.onConfirm,onClose:()=>U(null)}),W&&(0,L.jsx)(le,{title:W.title,message:W.message,confirmText:W.confirmText,danger:!0,onConfirm:W.onConfirm,onClose:()=>Te(null)}),G&&(0,L.jsx)(de,{target:G,directories:We,onMove:Qe,onClose:()=>Ee(null)})]})}function V(){let{t:e}=re();return(0,L.jsx)(C.Suspense,{fallback:(0,L.jsx)(`div`,{className:`note-editor-loading`,children:e(`note.loading`)}),children:(0,L.jsx)(B,{})})}var we=S(`/note/`)({component:V});export{we as Route};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{i as r,n as i,r as a}from"./LanguageToggle-B4ZNuBCV.js";import{r as o,t as s}from"./upload-Dxl7GUzb.js";import{t as ee}from"./copy-giX4rmFJ.js";import{t as te}from"./download-D0oMEYQZ.js";import{n as ne,t as re}from"./trash-2-DNGr8IgF.js";import{n as ie,r as ae,t as oe}from"./filePreview-BZ50vZZf.js";import{a as se,i as c,n as ce,r as le,t as ue}from"./MoveModal-BVr4Q7-b.js";import{r as l,t as de}from"./AppShell-OiOEqXPr.js";import{t as fe}from"./OpenSidebarButton-BfgG2HIT.js";import{t as pe}from"./search-gqAPOsgS.js";import{J as u,S as me,U as d,Z as he,b as f,f as p,g as m,l as ge,m as _e,q as ve,tt as h,u as ye,w as be}from"./index-WCK14Vja.js";import{t as xe}from"./format-CR8oUWq6.js";import{t as Se}from"./SidebarAccount-Zg5DZblE.js";import{i as Ce,n as g,r as we,t as Te}from"./downloadValidation-Bk1VsBBo.js";var Ee=u(`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`}]]),De=u(`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`}]]),Oe=u(`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`}]]),_=t(e(),1);function ke(e={}){let t=e.timeout??2e3,[n,r]=(0,_.useState)(null),[i,a]=(0,_.useState)(!1),o=(0,_.useRef)(null);(0,_.useEffect)(()=>()=>{window.clearTimeout(o.current)},[]);let s=e=>{window.clearTimeout(o.current),o.current=window.setTimeout(()=>a(!1),t),a(e)};return{copy:e=>{`clipboard`in navigator?navigator.clipboard.writeText(e).then(()=>{r(null),s(!0)}).catch(e=>r(e)):r(Error(`useClipboard: navigator.clipboard is not supported`))},reset:()=>{a(!1),r(null),window.clearTimeout(o.current)},error:n,copied:i}}var v=n();function y(e){return c(e)}function Ae(e){let t=new Set;return e.forEach(e=>{let{folder:n}=y(e.fileName),r=n.split(`/`).filter(Boolean),i=``;for(let e of r)i+=(i?`/`:``)+e,t.add(i)}),[...t].sort()}function b(e,t){let n=t?t+`/`:``;return e.filter(e=>{let t=e.toLowerCase().startsWith(n.toLowerCase()),r=e.substring(n.length);return t&&!r.includes(`/`)}).map(e=>({name:e.substring(n.length),path:e}))}function je(e,t,n){return{folders:b(t,n),files:e.filter(e=>y(e.fileName).folder===n)}}function Me(e,t){return e?[{path:``,name:t},...e.split(`/`).filter(Boolean).map((e,t,n)=>({path:n.slice(0,t+1).join(`/`),name:e}))]:[]}function x(){let e=m(e=>e.isDarkMode),t=m(e=>e.setIsDarkMode),n=m(e=>e.addToast),c=m(e=>e.hasBackend),u=m(e=>e.openConnectModal),h=_e(e=>e.identity),b=_e(e=>e.openLoginModal),[x,S]=(0,_.useState)([]),[Ne,C]=(0,_.useState)([]),[Pe,Fe]=(0,_.useState)(null),[w,Ie]=(0,_.useState)(`all`),[Le,Re]=(0,_.useState)(!1),[T,E]=(0,_.useState)([]),[ze,D]=(0,_.useState)(null),[O,k]=(0,_.useState)(null),[Be,Ve]=l(!1),[He,A]=(0,_.useState)(``),[j,M]=(0,_.useState)(null),[N,Ue]=(0,_.useState)(!1),[We,P]=(0,_.useState)([]),[Ge,F]=l(!1),[I,L]=(0,_.useState)(``),{copy:Ke,copied:qe}=ke({timeout:2e3}),[Je,R]=l(!1),[z,B]=(0,_.useState)(null),[V,Ye]=(0,_.useState)(null),[Xe,Ze]=(0,_.useState)(!1),{t:H,formatDate:Qe}=he(),U=c===!0,$e=e=>e?Qe(e):``,W=Pe||``,et=Ae(x),{folders:tt,files:nt}=je(x,et,W);function G(){return U?!0:(u(),!1)}function K(){return h?!0:(b(),!1)}let rt=I?x.filter(e=>y(e.fileName).name.toLowerCase().includes(I.toLowerCase())):nt,q=async()=>{if(!U||!h){S([]);return}try{S(await g.listPublishedFiles()||[])}catch{S([])}},J=async()=>{if(!U||!h){C([]);return}try{C(await g.listTrashFiles()||[])}catch{C([])}},it=e=>{E(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},at=async e=>{if(K()&&G())try{await g.restoreTrashFile(e),n(H(`app.toast.restored`),`success`),q(),J()}catch(e){n(await f(e,H(`app.toast.restoreFailed`)),`error`)}},ot=async()=>{K()&&G()&&B({title:H(`app.clearTrash.title`),message:H(`app.clearTrash.message`),confirmText:H(`app.clear`),danger:!0,onConfirm:async()=>{B(null);try{await g.emptyTrash(),n(H(`app.toast.trashEmptied`),`success`),J()}catch(e){n(await f(e,H(`app.toast.emptyFailed`)),`error`)}}})},st=async e=>{if(K()&&G())try{let t=await g.toggleStar(e);S(n=>n.map(n=>n.cid===e?{...n,starred:t.starred}:n)),n(t.starred?H(`app.toast.favorited`):H(`app.toast.unfavorited`),`success`)}catch(e){n(await f(e,H(`app.toast.actionFailed`)),`error`)}},ct=async()=>{if(!K()||!G())return;let e=w===`trash`;B({title:H(e?`app.permanentDelete`:`app.batchDelete`),message:H(e?`app.deleteSelectedPermanent`:`app.deleteSelected`,{count:T.length}),confirmText:H(e?`app.permanentDelete`:`app.delete`),danger:!0,onConfirm:async()=>{B(null);try{for(let t of T)e?await g.permanentDeleteTrashFile(t):t.startsWith(`__`)||await g.deletePublishedFile(t);E([]),n(H(e?`app.toast.deletedPermanently`:`app.toast.deleted`),`success`),q(),J()}catch(e){n(await f(e,H(`app.toast.deleteFailed`)),`error`)}}})},lt=async e=>{if(K()&&G())try{for(let t of T){let n=x.find(e=>e.cid===t);if(!n)continue;let{name:r}=y(n.fileName),i=e?`${e}/${r}`:r;n.fileName!==i&&await g.moveFile(t,i)}E([]),R.close(),n(H(`app.toast.moved`),`success`),q()}catch(e){n(await f(e,H(`app.toast.moveFailed`)),`error`)}},ut=e=>{let t=!!e.path,r=t?e.name:y(e.fileName).name;Ye({title:H(t?`app.renameFolder`:`app.renameFile`),placeholder:H(`app.enterNewName`),defaultValue:r,confirmText:H(`app.rename`),onConfirm:async i=>{if(i!==r&&K()&&G()){Ze(!0);try{if(t){let t=e.path.lastIndexOf(`/`),r=t===-1?``:e.path.substring(0,t),a=r?`${r}/${i}`:i;await g.renameFolder(e.path,a),n(H(`app.toast.renamed`),`success`),q(),Q(a)}else{let{folder:t}=y(e.fileName),r=t?`${t}/${i}`:i;await g.moveFile(e.cid,r),n(H(`app.toast.renamed`),`success`),q()}Ye(null)}catch(e){n(await f(e,H(`app.toast.renameFailed`)),`error`)}finally{Ze(!1)}}}})},dt=async e=>{if(!h){b(),n(H(`app.toast.signInBeforePublish`),`warning`);return}if(!G())return;let t=W?W+`/`:``,r=[];for(let i of Array.from(e)){let e=t+i.name;if(x.some(t=>t.fileName===e)){n(H(`app.fileAlreadyExists`,{fileName:i.name}),`warning`);continue}let a=`upload_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,o={id:a,fileName:i.name,progress:0,type:`upload`,status:`uploading`};r.push(o),P(e=>[...e,o]),r.length>0&&F.open();try{(await g.publishFile(i,e)).alreadyExists?(P(e=>e.map(e=>e.id===a?{...e,status:`completed`}:e)),n(H(`app.fileAlreadyExists`,{fileName:i.name}),`warning`)):(P(e=>e.map(e=>e.id===a?{...e,progress:100,status:`completed`}:e)),n(H(`app.fileAddedLocal`,{fileName:i.name}),`success`))}catch(e){P(e=>e.map(e=>e.id===a?{...e,status:`error`}:e)),n(await f(e,H(`app.publishFailedWithFile`,{fileName:i.name})),`error`)}}setTimeout(()=>{P(e=>e.filter(e=>e.status!==`completed`&&e.status!==`error`&&e.status!==`cancelled`))},3e3),q()},ft=()=>{Ke(`most://${O.cid}?filename=${encodeURIComponent(O.fileName)}`)},[Y,pt]=(0,_.useState)(!1),X=He.trim(),Z=j?.status===`success`&&j.link===X,mt=()=>{Ve.close(),M(null)},ht=e=>{A(e.target.value),M(null)},gt=async()=>{let e=Te(X,H);if(e){M({status:`error`,link:X,message:e}),n(e,`warning`);return}if(!(N||Y)&&K()&&G()){Ue(!0),M(null);try{let e=await g.checkDownload(X);M({status:`success`,link:X,message:e.alreadyExists?H(`app.fileAlreadyLocal`,{fileName:e.fileName}):H(`app.fileAvailable`,{fileName:e.fileName})}),n(e.alreadyExists?H(`app.fileAlreadyExists`,{fileName:e.fileName}):H(`app.toast.checkPassed`),e.alreadyExists?`warning`:`success`)}catch(e){let t=await we(e);M({status:`error`,link:X,message:t}),n(t,`error`)}finally{Ue(!1)}}},_t=async()=>{if(!h){b(),n(H(`app.toast.signInBeforeDownload`),`warning`);return}if(!G())return;let e=Te(X,H);if(e){n(e,`warning`);return}if(!Z){n(H(`app.toast.checkLinkFirst`),`warning`);return}if(!Y){pt(!0);try{let e=await g.downloadFile(X);if(A(``),M(null),mt(),e.alreadyExists)n(H(`app.fileAlreadyExists`,{fileName:e.fileName}),`warning`);else{let t={id:e.taskId,fileName:H(`app.downloadFallbackName`),progress:0,type:`download`,status:`downloading`};P(e=>[...e,t]),F.open(),n(H(`app.toast.downloadStarted`),`info`)}}catch(e){n(await f(e,H(`app.toast.downloadFailed`)),`error`)}finally{pt(!1)}}},vt=async e=>{if(K()&&G()&&e.type===`download`&&e.status===`downloading`){P(t=>t.map(t=>t.id===e.id?{...t,status:`cancelling`}:t));try{await g.cancelDownload(e.id)}catch(t){P(t=>t.map(t=>t.id===e.id?{...t,status:`downloading`}:t)),n(await f(t,H(`app.toast.cancelFailed`)),`error`)}}},yt=async e=>{if(K()&&G()){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}try{let t=await fetch(g.getFileDownloadUrl(e.cid),{headers:await me(`GET`,`/api/files/${e.cid}/download`)});if(!t.ok)throw Error(H(`app.toast.getFileFailed`));let r=await t.blob(),i=window.showSaveFilePicker;if(i){let t=await(await i({suggestedName:e.fileName})).createWritable();await t.write(r),await t.close(),n(H(`app.toast.fileSaved`),`success`)}else{let t=URL.createObjectURL(r),i=document.createElement(`a`);i.href=t,i.download=e.fileName,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(t),n(H(`app.toast.fileDownloaded`),`success`)}}catch(e){e.name!==`AbortError`&&n(H(`app.saveFailedWithError`,{error:e.message}),`error`)}}},bt=async e=>{if(K()&&G())try{n(H(`app.toast.startPullLocal`),`info`),await g.cacheFile(e.cid),n(H(`app.toast.pulledAndSeeding`),`success`),q()}catch(e){n(await f(e,H(`app.toast.pullFailed`)),`error`)}},Q=e=>{Fe(e||null),E([])};(0,_.useEffect)(()=>{if(c!==!0)return;let e=null,t=!1;return(async()=>{if(e=new WebSocket(await be(`/ws`)),t){e.close();return}e.onmessage=e=>{try{let{event:t,data:r}=JSON.parse(e.data);if(t===`publish:success`||t===`download:success`){q();let e=r.taskId||r.fileName;P(t=>t.map(t=>t.id===e||t.fileName===r.fileName?{...t,progress:100,status:`completed`}:t)),t===`download:success`&&(r.alreadyExists?n(H(`app.fileAlreadyExists`,{fileName:r.fileName}),`warning`):n(H(`app.fileDownloadCompleted`,{fileName:r.fileName}),`success`),setTimeout(()=>{P(t=>t.filter(t=>!(t.id===e&&t.status===`completed`)))},3e3))}t===`publish:progress`&&P(e=>e.map(e=>{if(r.file&&e.fileName===r.file&&e.type===`upload`){let t=50;return r.stage===`calculating-cid`?t=25:r.stage===`uploading`?t=75:r.stage===`complete`&&(t=100),{...e,progress:t}}return e})),t===`download:progress`&&P(e=>e.map(e=>e.id===r.taskId?{...e,progress:r.percent||0,loaded:r.loaded,total:r.total}:e)),t===`download:error`&&(P(e=>e.map(e=>e.id===r.taskId?{...e,status:`error`}:e)),n(H(`app.downloadFailedWithError`,{error:r.error}),`error`)),t===`download:status`&&P(e=>e.map(e=>e.id===r.taskId?{...e,fileName:r.file||e.fileName}:e)),t===`download:cancelled`&&(P(e=>e.map(e=>e.id===r.taskId?{...e,status:`cancelled`}:e)),n(H(`app.toast.downloadCancelled`),`warning`)),t===`user:metadata:updated`&&(q(),J())}catch(e){console.warn(`[App WS] Failed to parse message:`,e.message)}}})(),()=>{t=!0,e?.close()}},[c,h?.address]),(0,_.useEffect)(()=>{if(c===!0&&h){q(),J();return}c===!1&&(S([]),C([]))},[c,h?.address]),(0,_.useEffect)(()=>{h||(E([]),D(null),k(null),A(``),M(null),P([]),L(``),Fe(null),Ie(`all`))},[h?.address]);let xt=H(w===`all`?`app.nav.local`:w===`starred`?`app.nav.favorites`:`app.nav.trash`),$=w===`all`?rt:w===`starred`?x.filter(e=>e.starred&&y(e.fileName).name.toLowerCase().includes(I.toLowerCase())):Ne.filter(e=>y(e.fileName).name.toLowerCase().includes(I.toLowerCase())),St=w===`starred`?[]:tt.filter(e=>e.name.toLowerCase().includes(I.toLowerCase())),Ct=Me(W,H(`app.allContent`));return(0,v.jsxs)(de,{sidebar:({closeSidebar:e})=>(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`sidebar-header sidebar-header-link`,onClick:()=>window.location.href=`/`,children:[(0,v.jsx)(ve,{size:18}),(0,v.jsx)(`h1`,{children:`MOST PEOPLE`})]}),(0,v.jsx)(`nav`,{className:`sidebar-nav`,children:[{id:`all`,icon:(0,v.jsx)(De,{size:18}),label:H(`app.nav.local`)},{id:`starred`,icon:(0,v.jsx)(Oe,{size:18}),label:H(`app.nav.favorites`)},{id:`trash`,icon:(0,v.jsx)(re,{size:18}),label:H(`app.nav.trash`)}].map(t=>(0,v.jsxs)(`button`,{onClick:()=>{Ie(t.id),Fe(null),E([]),L(``),e()},className:`sidebar-nav-btn ${w===t.id?`active`:``}`,children:[t.icon,(0,v.jsx)(`span`,{children:t.label})]},t.id))}),(0,v.jsx)(Se,{})]}),headerTitle:(0,v.jsx)(`h2`,{className:`header-title`,children:xt}),headerRight:(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`search-box`,children:[(0,v.jsx)(pe,{size:14}),(0,v.jsx)(`input`,{type:`text`,value:I,onChange:e=>L(e.target.value),placeholder:H(`app.search.placeholder`)}),I&&(0,v.jsx)(`button`,{onClick:()=>L(``),children:(0,v.jsx)(d,{size:12})})]}),w===`trash`&&Ne.length>0&&(0,v.jsx)(`button`,{onClick:ot,className:`btn btn-sm btn-empty-trash`,children:H(`app.emptyTrash`)}),(0,v.jsx)(`button`,{onClick:()=>F.open(),className:`btn btn-icon`,children:(0,v.jsx)(Ee,{size:16})}),(0,v.jsx)(`button`,{onClick:()=>t(!e),className:`btn btn-icon`,children:e?(0,v.jsx)(i,{size:16}):(0,v.jsx)(a,{size:16})})]}),children:[w===`all`&&(0,v.jsxs)(`div`,{className:`action-grid`,children:[(0,v.jsxs)(`div`,{className:`action-card upload ${Le?`drag-over`:``}`,onDragOver:e=>{e.preventDefault(),Re(!0)},onDragLeave:()=>Re(!1),onDrop:e=>{e.preventDefault(),Re(!1),!(!K()||!G())&&dt(e.dataTransfer.files)},children:[(0,v.jsx)(`input`,{type:`file`,multiple:!0,onClick:e=>{(!K()||!G())&&e.preventDefault()},onChange:e=>dt(e.target.files),className:`action-card-input`}),(0,v.jsx)(s,{size:20,className:`action-grid-icon`}),(0,v.jsx)(`p`,{children:H(`app.publishFile`)})]}),(0,v.jsxs)(`div`,{className:`action-card action-card-download`,onClick:()=>{!K()||!G()||Ve.open()},children:[(0,v.jsx)(te,{size:20,className:`action-grid-icon`}),(0,v.jsx)(`p`,{children:H(`app.downloadFile`)})]})]}),w===`all`&&(0,v.jsx)(`div`,{className:`breadcrumb`,children:W?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`button`,{onClick:()=>Q(``),children:H(`app.allContent`)}),Ct.slice(1).map((e,t)=>(0,v.jsxs)(_.Fragment,{children:[(0,v.jsx)(o,{size:12}),(0,v.jsx)(`button`,{onClick:()=>Q(e.path),className:t===Ct.length-2?`current`:``,children:(0,v.jsx)(`span`,{translate:`no`,children:e.name})}),t===Ct.length-2&&(0,v.jsx)(`button`,{onClick:()=>ut(e),className:`breadcrumb-edit-btn`,children:(0,v.jsx)(ie,{size:12})})]},e.path))]}):null}),(0,v.jsxs)(`div`,{className:`content-grid`,children:[w===`trash`&&($.length===0?(0,v.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,v.jsx)(`p`,{children:H(I?`app.noMatches`:`app.trashEmpty`)}),(0,v.jsx)(fe,{label:H(`app.openFileNavigation`)})]}):(0,v.jsx)(`div`,{className:`file-grid`,children:$.map(e=>(0,v.jsxs)(`div`,{onClick:()=>E(t=>t.includes(e.cid)?t.filter(t=>t!==e.cid):[...t,e.cid]),onDoubleClick:()=>at(e.cid),className:`card ${T.includes(e.cid)?`selected`:``}`,children:[(0,v.jsx)(`div`,{className:`card-icon trash`,children:(0,v.jsx)(ne,{size:24,color:`#fff`})}),(0,v.jsx)(`p`,{className:`card-name`,translate:`no`,children:y(e.fileName).name}),(0,v.jsx)(`p`,{className:`card-date`,children:H(`app.deletedOn`,{date:$e(e.deletedAt)})})]},e.cid))})),w!==`trash`&&($.length===0&&St.length===0?(0,v.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,v.jsx)(`p`,{children:H(I?`app.noMatches`:w===`starred`?`app.noFavorites`:`app.noLocalFiles`)}),(0,v.jsx)(fe,{label:H(`app.openFileNavigation`)})]}):(0,v.jsxs)(`div`,{className:`file-grid`,children:[St.map(e=>(0,v.jsx)(le,{folder:e,onClick:()=>Q(e.path)},e.path)),$.map(e=>(0,v.jsx)(ce,{file:e,isSelected:T.includes(e.cid),onSelect:it,onPreview:e=>{if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}D({...e,subtype:oe(e.fileName)})}},e.cid))]}))]}),z&&(0,v.jsx)(ye,{title:z.title,message:z.message,confirmText:z.confirmText,danger:z.danger,onConfirm:z.onConfirm,onClose:()=>B(null)}),V&&(0,v.jsx)(ge,{title:V.title,placeholder:V.placeholder,defaultValue:V.defaultValue,confirmText:V.confirmText,isLoading:Xe,onConfirm:V.onConfirm,onClose:()=>Ye(null)}),Je&&(0,v.jsx)(ue,{items:T.map(e=>x.find(t=>t.cid===e)).filter(Boolean),allFolders:et.map(e=>({path:e,name:e.split(`/`).pop()})),currentPath:W,onMove:lt,onClose:()=>R.close()}),O&&(0,v.jsx)(p,{onClose:()=>k(null),children:(0,v.jsxs)(`div`,{className:`share-modal`,onClick:e=>e.stopPropagation(),children:[(0,v.jsxs)(`div`,{className:`modal-header`,children:[(0,v.jsx)(`h3`,{children:H(`app.shareLink`)}),(0,v.jsx)(`button`,{onClick:()=>k(null),className:`btn btn-icon`,children:(0,v.jsx)(d,{size:18})})]}),(0,v.jsxs)(`div`,{className:`share-link-box`,children:[(0,v.jsx)(`div`,{className:`share-link-text`,translate:`no`,children:`most://${O.cid}?filename=${encodeURIComponent(O.fileName)}`}),(0,v.jsx)(`button`,{onClick:ft,className:`btn btn-circle btn-primary ${qe?`copied`:``}`,children:qe?(0,v.jsx)(r,{size:18}):(0,v.jsx)(ee,{size:18})})]}),(0,v.jsx)(`div`,{className:`share-storage-note`,children:(0,v.jsx)(`span`,{children:H(`app.shareSeedNote`)})})]})}),Be&&(0,v.jsx)(p,{onClose:mt,children:(0,v.jsxs)(`div`,{className:`download-modal`,onClick:e=>e.stopPropagation(),children:[(0,v.jsxs)(`div`,{className:`modal-header`,children:[(0,v.jsx)(`h3`,{children:H(`app.downloadFile`)}),(0,v.jsx)(`button`,{onClick:mt,className:`btn btn-icon`,children:(0,v.jsx)(d,{size:18})})]}),(0,v.jsxs)(`div`,{className:`download-link-row`,children:[(0,v.jsx)(`input`,{type:`text`,className:`input`,value:He,onChange:ht,placeholder:H(`app.downloadLink.placeholder`)}),(0,v.jsxs)(`button`,{type:`button`,onClick:gt,disabled:!X||N||Y,className:`btn btn-secondary download-check-btn`,children:[N?(0,v.jsx)(ae,{size:14,className:`spin`}):Z?(0,v.jsx)(r,{size:14}):(0,v.jsx)(pe,{size:14}),H(N?`app.checking`:Z?`app.passed`:`app.check`)]})]}),j&&(0,v.jsxs)(`div`,{className:`download-check-status ${j.status}`,children:[j.status===`success`?(0,v.jsx)(r,{size:14}):(0,v.jsx)(se,{size:14}),(0,v.jsx)(`span`,{children:j.message})]}),(0,v.jsxs)(`button`,{onClick:_t,disabled:!Z||Y||N,className:`btn btn-info btn-full`,children:[Y?(0,v.jsx)(ae,{size:14,className:`spin`}):(0,v.jsx)(te,{size:14}),H(Y?`app.downloading`:`app.startDownload`)]})]})}),ze&&(0,v.jsx)(Ce,{item:ze,isBackendReady:U,getFileDownloadUrl:g.getFileDownloadUrl,onClose:()=>D(null)}),T.length>0&&(0,v.jsxs)(`div`,{className:`batch-bar`,children:[(0,v.jsx)(`span`,{className:`batch-info`,children:H(`app.selectedItems`,{count:T.length})}),(0,v.jsx)(`button`,{onClick:()=>E([]),className:`batch-dismiss`,children:(0,v.jsx)(d,{size:16})}),(0,v.jsx)(`div`,{className:`batch-divider`}),w===`trash`?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`button`,{onClick:async()=>{K()&&G()&&(await Promise.all(T.map(e=>g.restoreTrashFile(e))),E([]),n(H(`app.toast.restored`),`success`),q(),J())},className:`btn btn-sm`,children:H(`app.restore`)}),(0,v.jsx)(`button`,{onClick:ct,className:`btn btn-sm btn-danger`,children:H(`app.permanentDelete`)})]}):(0,v.jsxs)(v.Fragment,{children:[T.length===1&&(()=>{let e=x.find(e=>e.cid===T[0]);return e&&oe(e.fileName)!==`file`})()&&(0,v.jsx)(`button`,{onClick:()=>{let e=x.find(e=>e.cid===T[0]);if(e){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}let t=oe(e.fileName);D({...e,subtype:t})}},className:`btn btn-sm`,children:H(`app.preview`)}),(0,v.jsx)(`button`,{onClick:()=>{let e=T.some(e=>{let t=x.find(t=>t.cid===e);return t&&!t.starred});T.forEach(t=>{let n=x.find(e=>e.cid===t);n&&(e?!n.starred:n.starred)&&st(t)})},className:`btn btn-sm btn-star`,children:H(`app.favorite`)}),T.length===1&&(0,v.jsx)(`button`,{onClick:()=>{let e=x.find(e=>e.cid===T[0]);e&&ut(e)},className:`btn btn-sm`,children:H(`app.rename`)}),(0,v.jsx)(`button`,{onClick:()=>R.open(),className:`btn btn-sm btn-move`,children:H(`app.move`)}),(0,v.jsx)(`button`,{onClick:ct,className:`btn btn-sm btn-danger`,children:H(`app.delete`)}),T.length===1&&(()=>{let e=x.find(e=>e.cid===T[0]);return e&&e.localAvailable===!1})()&&(0,v.jsx)(`button`,{onClick:()=>{let e=x.find(e=>e.cid===T[0]);e&&bt(e)},className:`btn btn-sm`,children:H(`app.pullToLocal`)}),T.length===1&&(0,v.jsx)(`button`,{onClick:()=>k(x.find(e=>e.cid===T[0])),className:`btn btn-sm`,children:H(`app.share`)}),T.length===1&&(0,v.jsx)(`button`,{onClick:()=>{let e=x.find(e=>e.cid===T[0]);e&&yt(e)},className:`btn btn-sm`,children:H(`app.saveAs`)})]})]}),Ge&&(0,v.jsx)(p,{onClose:()=>F.close(),children:(0,v.jsxs)(`div`,{className:`transfer-modal`,onClick:e=>e.stopPropagation(),children:[(0,v.jsxs)(`div`,{className:`modal-header`,children:[(0,v.jsx)(`h3`,{children:H(`app.transfers`)}),(0,v.jsx)(`button`,{onClick:()=>F.close(),className:`btn btn-icon`,children:(0,v.jsx)(d,{size:18})})]}),We.length===0?(0,v.jsx)(`div`,{className:`empty-transfer`,children:H(`app.noTransfers`)}):We.map(e=>(0,v.jsxs)(`div`,{className:`transfer-item`,children:[(0,v.jsxs)(`div`,{className:`transfer-item-header`,children:[e.type===`upload`?(0,v.jsx)(s,{size:14}):(0,v.jsx)(te,{size:14}),(0,v.jsx)(`span`,{className:`transfer-item-name`,translate:`no`,children:e.fileName}),e.status===`downloading`&&e.type===`download`&&(0,v.jsx)(`button`,{onClick:()=>vt(e),className:`transfer-item-cancel`,children:(0,v.jsx)(d,{size:14})})]}),(0,v.jsxs)(`div`,{className:`transfer-progress-row`,children:[(0,v.jsx)(`progress`,{className:`transfer-progress-meter ${e.type===`download`?`download`:``} ${e.status===`error`?`error`:``} ${e.status===`cancelled`?`cancelled`:``}`,value:Math.max(0,Math.min(100,e.progress)),max:100,"aria-label":H(`app.transferProgress`,{fileName:e.fileName})}),(0,v.jsx)(`span`,{className:`transfer-progress-text`,children:e.status===`completed`?H(`app.completed`):e.status===`error`?H(`app.failed`):e.status===`cancelled`?H(`app.cancelled`):e.status===`cancelling`?H(`app.cancelling`):e.loaded&&e.total?`${xe(e.loaded)}/${xe(e.total)}`:`${e.progress}%`})]})]},e.id))]})})]})}var S=h(`/app/`)({component:x});export{S as Route};
|