most-box 0.2.9 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/out/admin/index.html +0 -0
  2. package/out/app/index.html +0 -0
  3. package/out/assets/{FilePreviewOverlay-BYZIAMJ-.js → FilePreviewOverlay-CM5IqnZD.js} +1 -1
  4. package/out/assets/{MarketingHeader-ceWdRCpe.js → MarketingHeader-B45AaM29.js} +1 -1
  5. package/out/assets/{MarketingLayout-Bun1d2wL.js → MarketingLayout-A00pEOa2.js} +1 -1
  6. package/out/assets/{MilkdownEditor-CT6SHYKG.js → MilkdownEditor-BTq9bDAf.js} +1 -1
  7. package/out/assets/{OpenSidebarButton-CLSCB7CG.js → OpenSidebarButton-D8qfUGzU.js} +1 -1
  8. package/out/assets/{SidebarAccount-CNh0kvtB.js → SidebarAccount-_RBE5K_o.js} +1 -1
  9. package/out/assets/{SidebarHomeLink-DXv0c9Ob.js → SidebarHomeLink-qMFEGjZt.js} +1 -1
  10. package/out/assets/{downloadValidation-Bzl7cci9.js → downloadValidation-CSXwoQKW.js} +1 -1
  11. package/out/assets/index-BRhsWNj1.css +1 -0
  12. package/out/assets/{index-BI8oNSVC.js → index-C-_ZwxuN.js} +2 -2
  13. package/out/assets/index-CYVRmppz.css +1 -0
  14. package/out/assets/index.lazy-0YYV0CR3.js +1 -0
  15. package/out/assets/index.lazy-BTYGr9Vb.js +1 -0
  16. package/out/assets/{index.lazy-BOMHingE.js → index.lazy-BVAtQtTa.js} +1 -1
  17. package/out/assets/{index.lazy-ur0joIFl.js → index.lazy-BbdLA2L-.js} +1 -1
  18. package/out/assets/{index.lazy-bAp_Hgck.js → index.lazy-CbiLtziY.js} +1 -1
  19. package/out/assets/{index.lazy-D4zNn3D6.js → index.lazy-CcEdBg3i.js} +2 -2
  20. package/out/assets/index.lazy-CePHsLXG.js +1 -0
  21. package/out/assets/{index.lazy-Ch4Y17pJ.js → index.lazy-DG_3_VdF.js} +1 -1
  22. package/out/assets/{index.lazy-7omTRykl.js → index.lazy-DR0rWEWZ.js} +1 -1
  23. package/out/assets/{index.lazy-BSY5_gby.js → index.lazy-DSyTSCJD.js} +1 -1
  24. package/out/assets/{index.lazy-C4ipXKZ7.js → index.lazy-DUhsuPLv.js} +1 -1
  25. package/out/assets/{index.lazy-_mEd0Q_u.js → index.lazy-DVnhWbzH.js} +1 -1
  26. package/out/assets/{index.lazy-CPZbEnJZ.js → index.lazy-DZpkg1DJ.js} +1 -1
  27. package/out/assets/useChannelMessages-DOaWHdAP.js +4 -0
  28. package/out/assets/{useGameRoom-cs9YpYt7.js → useGameRoom-hHkV65ii.js} +1 -1
  29. package/out/assets/{userProfile-qcc60tHK.js → userProfile-DwZip0Dt.js} +1 -1
  30. package/out/chat/index.html +0 -0
  31. package/out/chat/join/index.html +0 -0
  32. package/out/download/index.html +2 -2
  33. package/out/game/gandengyan/index.html +0 -0
  34. package/out/game/index.html +0 -0
  35. package/out/game/zhajinhua/index.html +0 -0
  36. package/out/index.html +2 -2
  37. package/out/note/index.html +0 -0
  38. package/out/ping/index.html +2 -2
  39. package/out/profile/index.html +0 -0
  40. package/out/web3/index.html +0 -0
  41. package/package.json +1 -1
  42. package/server/index.js +59 -2
  43. package/server/src/http/app.js +7 -1
  44. package/server/src/http/nodeStatus.js +6 -0
  45. package/server/src/http/routes/channelRoutes.js +12 -0
  46. package/server/src/index.js +476 -3
  47. package/out/assets/index-3OD3Chi9.css +0 -1
  48. package/out/assets/index-BSOvFG3o.css +0 -1
  49. package/out/assets/index.lazy-CvBIIYbm.js +0 -1
  50. package/out/assets/index.lazy-Cz-OZwYL.js +0 -1
  51. package/out/assets/index.lazy-DRY3xoQp.js +0 -1
  52. package/out/assets/useChannelMessages-BeKF0gwo.js +0 -3
@@ -0,0 +1 @@
1
+ ._page_1c8jk_1{background:var(--bg-primary);min-height:calc(100vh - 64px);padding:18px}._headerActions_1c8jk_7{align-items:center;gap:8px;display:flex}._entry_1c8jk_13{grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:48px;max-width:1040px;min-height:calc(100vh - 116px);margin:0 auto;display:grid}._entryBrand_1c8jk_23{align-items:center;gap:22px;display:flex}._cardMark_1c8jk_29{width:112px;height:152px;box-shadow:var(--shadow-lg);color:#fff;background:#c93d32;border:8px solid #fff;border-radius:8px;flex:0 0 112px;place-items:center;font-size:70px;font-weight:900;display:grid}._entryBrand_1c8jk_23 h1{color:var(--text-primary);margin:0;font-size:64px;line-height:.95}._entryBrand_1c8jk_23 p{max-width:520px;color:var(--text-secondary);margin:18px 0 0;font-size:18px;line-height:1.7}._entryPanel_1c8jk_59,._panel_1c8jk_60,._handPanel_1c8jk_61{border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--glass-shadow);border-radius:8px}._entryPanel_1c8jk_59{gap:16px;padding:22px;display:grid}._accountLine_1c8jk_74,._scoreMeta_1c8jk_75,._roomBar_1c8jk_76,._badges_1c8jk_77,._actions_1c8jk_78{align-items:center;gap:10px;display:flex}._accountLine_1c8jk_74{color:var(--text-secondary);justify-content:space-between;font-size:14px}._accountLine_1c8jk_74 strong{max-width:190px;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._joinForm_1c8jk_98,._joinForm_1c8jk_98 label{gap:8px;display:grid}._joinForm_1c8jk_98 label{color:var(--text-secondary);font-size:14px}._joinForm_1c8jk_98 input{border:1px solid var(--glass-border);background:var(--bg-primary);width:100%;min-height:40px;color:var(--text-primary);border-radius:8px;padding:0 12px}._status_1c8jk_119{color:var(--text-secondary);margin:0;font-size:14px}._gameGrid_1c8jk_125{grid-template:"table side"minmax(360px,1fr)"hand side"/minmax(0,1fr) 320px;gap:14px;min-height:calc(100vh - 104px);display:grid}._tablePanel_1c8jk_136{color:#fff;background:radial-gradient(circle,#ffffff2e,#0000 46%),#247658;border-radius:8px;grid-area:table;grid-template-rows:auto auto 1fr auto;gap:14px;min-height:360px;padding:16px;display:grid}._roomBar_1c8jk_76{justify-content:space-between}._roomBar_1c8jk_76 div:first-child{gap:2px;display:grid}._roomBar_1c8jk_76 span,._badges_1c8jk_77 span{color:#ffffffc7;font-size:13px}._badges_1c8jk_77{flex-wrap:wrap;justify-content:flex-end}._seats_1c8jk_170{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px;display:grid}._player_1c8jk_176{color:#17211b;background:#ffffffeb;border:1px solid #17211b1f;border-radius:8px;align-items:center;gap:10px;min-width:0;padding:8px;display:flex}._tablePanel_1c8jk_136 ._player_1c8jk_176{color:#fff;background:#ffffff2e}._active_1c8jk_193{outline:3px solid #f3cf5a}._winner_1c8jk_197{outline:3px solid #7be39e}._avatar_1c8jk_201{color:#fff;background:#17211b;border-radius:50%;flex:0 0 40px;place-items:center;width:40px;height:40px;font-size:13px;font-weight:900;display:grid;position:relative}._avatar_1c8jk_201 img{object-fit:cover;border-radius:50%;width:100%;height:100%}._avatarOffline_1c8jk_222 img{filter:grayscale(.35);opacity:.72}._onlineDot_1c8jk_227{background:#30d158;border:2px solid #17211b;border-radius:50%;width:12px;height:12px;position:absolute;bottom:-1px;right:-1px;box-shadow:0 0 0 1px #ffffff47}._player_1c8jk_176 strong,._player_1c8jk_176 span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}._player_1c8jk_176 span{opacity:.76;max-width:190px;font-size:12px}._centerTable_1c8jk_253{grid-template-columns:120px minmax(0,1fr) 120px;align-items:center;gap:14px;display:grid}._deckBox_1c8jk_260,._playedBox_1c8jk_261{text-align:center;background:#0b221942;border-radius:8px}._deckBox_1c8jk_260{gap:6px;padding:18px 8px;display:grid}._deckBox_1c8jk_260 span{opacity:.75;font-size:13px}._deckBox_1c8jk_260 strong{font-size:30px}._playedBox_1c8jk_261{place-items:center;min-height:150px;padding:16px;display:grid}._playedCards_1c8jk_289{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}._notice_1c8jk_297{text-align:center;background:#0000002e;border-radius:8px;padding:10px 12px;font-weight:800}._resultDetail_1c8jk_305{gap:4px;font-weight:600;display:grid}._resultDetail_1c8jk_305 p{margin:0;font-size:14px}._sidePanel_1c8jk_316{grid-area:side;align-content:start;gap:12px;display:grid}._panel_1c8jk_60{gap:12px;padding:14px;display:grid}._panel_1c8jk_60 h3{color:var(--text-primary);margin:0;font-size:15px}._scoreMeta_1c8jk_75{color:var(--text-secondary);justify-content:space-between;font-size:13px}._scoreRow_1c8jk_341{border-top:1px solid var(--glass-border);color:var(--text-primary);justify-content:space-between;padding-top:8px;display:flex}._logPanel_1c8jk_349{max-height:280px;overflow:auto}._logPanel_1c8jk_349 p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}._handPanel_1c8jk_61{grid-area:hand;gap:12px;padding:12px;display:grid}._hand_1c8jk_61{gap:8px;min-height:118px;padding:4px 2px 10px;display:flex;overflow-x:auto}._cardButton_1c8jk_376{background:0 0;border:0;border-radius:8px;flex:none;min-height:auto;padding:0;transition:transform .16s}._picked_1c8jk_386{transform:translateY(-14px)}._card_1c8jk_29{color:#17211b;text-align:left;background:#fff;border:1px solid #dbe1dc;border-radius:8px;grid-template-rows:auto 1fr;width:62px;height:92px;padding:7px;display:grid;box-shadow:0 8px 18px #0e16111f}._card_1c8jk_29 span{font-size:15px;font-weight:900}._card_1c8jk_29 i{place-self:end;font-size:22px;font-style:normal;font-weight:900}._red_1c8jk_417{color:#c93d32}._black_1c8jk_421{color:#17211b}._small_1c8jk_425{width:46px;height:66px;padding:5px}._small_1c8jk_425 span{font-size:12px}._small_1c8jk_425 i{font-size:15px}._actions_1c8jk_78{flex-wrap:wrap}._preview_1c8jk_443{border:1px solid var(--glass-border);background:var(--bg-primary);min-height:46px;color:var(--text-secondary);border-radius:8px;flex:260px;padding:7px 10px;display:grid}._preview_1c8jk_443 strong{color:var(--text-primary);font-size:14px}._preview_1c8jk_443 span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}._valid_1c8jk_466{border-color:#176b4d70}@media (width<=980px){._entry_1c8jk_13{grid-template-columns:1fr;align-content:center}._gameGrid_1c8jk_125{grid-template-columns:1fr;grid-template-areas:"table""hand""side"}}@media (width<=640px){._page_1c8jk_1{padding:10px}._entryBrand_1c8jk_23{flex-direction:column;align-items:flex-start}._entryBrand_1c8jk_23 h1{font-size:42px}._cardMark_1c8jk_29{border-width:6px;flex-basis:100px;width:74px;height:100px;font-size:46px}._centerTable_1c8jk_253{grid-template-columns:1fr}._actions_1c8jk_78>button{flex:110px}}
@@ -0,0 +1 @@
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{C as r,S as i,T as a,a as o,n as s,r as c,s as l,t as u}from"./ui-BpDGD3IR.js";import{a as d}from"./i18n-NjvOSuV6.js";import{t as ee}from"./arrow-right-BU9c_SL4.js";import{n as te,r as ne}from"./LanguageToggle-CSQtRZ3A.js";import{t as f}from"./circle-alert-iuHzciph.js";import{t as p}from"./download-jEPn2njL.js";import{t as m}from"./file-text-DPA1riJ_.js";import{a as h,i as g,n as re,r as ie,t as ae}from"./FilePreviewOverlay-CM5IqnZD.js";import{t as oe}from"./loader-BXQtdens.js";import{i as se,n as ce,t as le}from"./SidebarHomeLink-qMFEGjZt.js";import{t as ue}from"./message-square-Dp09WY1I.js";import{t as _}from"./music-B19Tg557.js";import{t as de}from"./OpenSidebarButton-D8qfUGzU.js";import{t as fe}from"./plus-4hygj-1Z.js";import{t as pe}from"./search-DSkiWdvX.js";import{t as me}from"./trash-2-V12tJ8lI.js";import{N as v,c as y,f as he,i as ge,l as _e}from"./index-C-_ZwxuN.js";import{t as ve}from"./format-CR8oUWq6.js";import{t as ye}from"./SidebarAccount-_RBE5K_o.js";import{n as b,r as be,t as xe}from"./downloadValidation-CSXwoQKW.js";import{t as Se}from"./LogoIcon-B2fFe0l1.js";import{i as x,t as Ce}from"./userProfile-DwZip0Dt.js";import{t as we}from"./useChannelMessages-DOaWHdAP.js";var Te=r(`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`}]]),Ee=r(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),De=r(`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`}]]),Oe=r(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),ke=r(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),Ae=r(`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`}]]),S=t(e(),1),C=n();function je(e){return String(e||``).split(`/`).pop()||e}function Me(e){return e===`image`?(0,C.jsx)(g,{size:20}):e===`video`?(0,C.jsx)(h,{size:20}):e===`audio`?(0,C.jsx)(_,{size:20}):(0,C.jsx)(m,{size:20})}function Ne({attachment:e,status:t=`idle`,pending:n=!1,onOpen:r}){let{t:i}=d(),a=t===`checking`,o=`ui-file-action chat-attachment-action ${t===`error`?`error`:t===`available`?`available`:``}`.trim(),s=Number.isFinite(e.size)&&e.size>0?ve(e.size):i(`chat.mostboxFile`);return(0,C.jsxs)(`button`,{type:`button`,className:`ui-file-card chat-attachment-card`,onClick:()=>r?.(e),disabled:n||a,title:e.link,translate:`no`,children:[(0,C.jsx)(`span`,{className:`ui-file-icon chat-attachment-icon ${e.kind}`,children:a?(0,C.jsx)(oe,{size:20,className:`ui-spinner chat-attachment-spinner`}):Me(e.kind)}),(0,C.jsxs)(`span`,{className:`ui-file-info chat-attachment-info`,children:[(0,C.jsx)(`span`,{className:`ui-file-name chat-attachment-name`,translate:`no`,children:je(e.fileName)}),(0,C.jsx)(`span`,{className:`ui-file-meta chat-attachment-meta`,translate:`yes`,children:n?i(`chat.sending`):s})]}),(0,C.jsx)(`span`,{className:o,translate:`yes`,children:a?i(`chat.checking`):t===`available`?(0,C.jsx)(v,{size:16}):t===`error`?(0,C.jsx)(f,{size:17}):(0,C.jsx)(p,{size:16})})]})}var w=[{key:`image`,labelKey:`chat.attachment.image`,accept:`image/*`,icon:g},{key:`video`,labelKey:`chat.attachment.video`,accept:`video/*`,icon:h},{key:`file`,labelKey:`chat.attachment.file`,accept:``,icon:m}],Pe=w.map(e=>e.accept).join(`,`);function Fe({children:e}){return(0,C.jsx)(`div`,{className:`message-bubble`,translate:`no`,children:e})}function Ie({children:e}){return(0,C.jsx)(`div`,{className:`message-bubble has-attachment`,children:e})}function Le({variant:e,pending:t=!1,avatarSrc:n,isOnline:r=!1,author:i,time:a,children:o}){return(0,C.jsxs)(`div`,{className:[`chat-message`,e,t?`pending`:``].filter(Boolean).join(` `),children:[(0,C.jsxs)(`span`,{className:`chat-avatar-wrap`,children:[(0,C.jsx)(`img`,{className:`msg-avatar`,src:n,alt:`avatar`}),r&&(0,C.jsx)(`span`,{className:`chat-online-dot`,"aria-hidden":`true`})]}),(0,C.jsxs)(`div`,{className:`msg-content`,children:[(0,C.jsx)(`span`,{className:`message-author`,translate:`no`,children:i}),o,(0,C.jsx)(`span`,{className:`message-time`,children:a})]})]})}function Re({active:e=!1,pinned:t=!1,unread:n=!1,title:r,onSelect:i,onTogglePin:a,onRename:o,onLeave:s}){let{t:c}=d(),l=!!(a||o||s);return(0,C.jsxs)(`div`,{className:[`sidebar-nav-btn`,e?`active`:``,t?`pinned`:``,n?`unread`:``].filter(Boolean).join(` `),onClick:i,role:`button`,tabIndex:0,onKeyDown:e=>{e.target===e.currentTarget&&e.key===`Enter`&&i?.()},children:[(0,C.jsxs)(`span`,{className:`chat-channel-icon-wrap`,children:[(0,C.jsx)(ue,{size:16}),n&&(0,C.jsx)(`span`,{className:`chat-channel-unread-dot`,title:c(`chat.unread`),"aria-hidden":`true`})]}),(0,C.jsx)(`span`,{className:`chat-channel-title`,children:(0,C.jsx)(`span`,{className:`chat-channel-title-text`,translate:`no`,children:r})}),l&&(0,C.jsx)(u,{ariaLabel:c(`chat.channelActions`),className:`channel-actions-anchor`,placement:`bottom-end`,items:[{key:`pin`,label:c(t?`chat.unpin`:`chat.pin`),icon:t?(0,C.jsx)(ke,{size:16}):(0,C.jsx)(Oe,{size:16}),onSelect:()=>a?.()},{key:`rename`,label:c(`chat.rename`),icon:(0,C.jsx)(ie,{size:16}),onSelect:()=>o?.()},{key:`delete`,label:c(`chat.delete`),icon:(0,C.jsx)(me,{size:16}),onSelect:()=>s?.()}],renderTrigger:e=>(0,C.jsx)(`button`,{...e,className:`leave-channel-btn channel-actions-trigger`,title:c(`common.moreActions`),"aria-label":c(`common.moreActions`),children:(0,C.jsx)(Ee,{size:16})})})]})}function ze({members:e}){let{t}=d();return e.length===0?(0,C.jsx)(`div`,{className:`ui-empty-inline channel-members-empty`,children:t(`chat.noMembers`)}):(0,C.jsx)(`div`,{className:`channel-members-grid`,children:e.map(e=>(0,C.jsxs)(`div`,{className:`channel-member`,children:[(0,C.jsxs)(`span`,{className:`channel-member-avatar-wrap`,children:[(0,C.jsx)(`img`,{className:`channel-member-avatar`,src:e.avatarSrc,alt:`avatar`}),e.online&&(0,C.jsx)(`span`,{className:`chat-online-dot`,"aria-hidden":`true`})]}),(0,C.jsx)(`span`,{className:`channel-member-name`,translate:`no`,children:e.name})]},e.id))})}function Be({message:e,placeholder:t,disabled:n=!1,isPublishingAttachment:r=!1,attachmentButtonTitle:i,attachmentInputRef:a,onMessageChange:o,onSend:s,onSelectAttachmentFiles:c}){let{t:l}=d(),te=n||r,ne=n||!e.trim(),f=i||l(`chat.attachment.add`);function p(e,t){t?.(e.currentTarget.files),e.currentTarget.value=``}function m(t){t.key===`Enter`&&e.trim()&&s()}function h(e){if(te)return;let t=a?.current;t&&(t.accept=e,t.click())}return(0,C.jsxs)(`div`,{className:`chat-input-area`,children:[(0,C.jsx)(`input`,{ref:a,type:`file`,accept:Pe,className:`chat-file-input`,onChange:e=>p(e,c)}),(0,C.jsx)(u,{ariaLabel:l(`chat.attachmentType`),placement:`top-start`,disabled:te,items:w.map(e=>{let t=e.icon;return{key:e.key,label:l(e.labelKey),icon:(0,C.jsx)(t,{size:16}),onSelect:()=>h(e.accept)}}),renderTrigger:e=>(0,C.jsx)(`button`,{...e,className:`btn btn-circle chat-tool-btn`,"aria-label":f,children:r?(0,C.jsx)(oe,{size:18,className:`ui-spinner chat-attachment-spinner`}):(0,C.jsx)(fe,{size:18})})}),(0,C.jsx)(`input`,{type:`text`,className:`input input-pill`,placeholder:t,value:e,disabled:n,onChange:e=>o(e.target.value),onKeyDown:m}),(0,C.jsx)(`button`,{type:`button`,className:`btn btn-circle btn-primary send-btn`,onClick:s,disabled:ne,title:l(`chat.sendMessage`),children:(0,C.jsx)(ee,{size:18})})]})}var Ve=`mostbox.chat.lastReadAt`;function T(e){return Date.parse(e?.lastMessageAt||``)||Date.parse(e?.createdAt||``)||0}function He(e){let t=String(e||``).trim().toLowerCase();return t?`${Ve}:${t}`:``}function E(e,t=Date.now()){let n=Number(e);return Math.max(0,Math.floor(Number.isFinite(n)&&n>0?n:t))}function Ue(e,t=D()){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 We(e,t,n=D()){if(!(!e||!n))try{n.setItem(e,JSON.stringify(t))}catch{}}function Ge(e,t,n=Date.now(),r=Date.now()){if(!t)return{changed:!1,value:e};let i=E(n,r);return(e[t]||0)>=i?{changed:!1,value:e}:{changed:!0,value:{...e,[t]:i}}}function Ke(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]=E(T(e),n),r=!0)}return{changed:r,value:r?i:e}}function qe(e,{channelName:t,messageTime:n,activeChannelName:r=``,messageAuthor:i=``,userAddress:a=``,now:o=Date.now()}){if(!t)return{changed:!1,notify:!1,value:e};let s=E(n,o),c=t===r,l=String(i||``).toLowerCase()===String(a||``).toLowerCase();if(c||l)return{...Ge(e,t,s,o),notify:!1};let u=e[t]||0;if(u<s)return{changed:!1,notify:!0,value:e};let d=Math.max(0,s-1);return u===d?{changed:!1,notify:!0,value:e}:{changed:!0,notify:!0,value:{...e,[t]:d}}}function Je(e,t){let n=e?.channelKey||e?.name;return T(e)>(t[n]||0)}function D(){if(!(typeof window>`u`))return window.localStorage}var Ye=3,Xe=30,Ze=/^[a-zA-Z0-9_-]+$/,Qe=1e4,$e=12e3,et=1200;function O(e){return e?.channelKey||e?.name||``}function k(e){return e?.channelId||e?.name||``}function A(e){return e?.remark||k(e)}function tt(){return typeof window>`u`?``:(new URLSearchParams(window.location.search).get(`channel`)||``).trim()}var nt=`chat-file`;function rt(e,t){return e.type.startsWith(`image/`)?`image`:e.type.startsWith(`video/`)?`video`:e.type.startsWith(`audio/`)?`audio`:e.type.startsWith(`text/`)?`text`:re(t)}function it(e){return e?`${e.slice(0,6)}...${e.slice(-4)}`:`Unknown`}function at(e){return/#[a-fA-F0-9]{4}$/.test(String(e||``).trim())}function j(e){return String(e||``).trim().toLowerCase()}function ot(){if(typeof window>`u`)return;let e=window;return e.AudioContext||e.webkitAudioContext}function st(){let e=y(e=>e.isDarkMode),t=y(e=>e.setIsDarkMode),n=y(e=>e.hasBackend),r=y(e=>e.addToast),a=y(e=>e.openConnectModal),u=l(e=>e.identity),ee=l(e=>e.openLoginModal),[f,p]=(0,S.useState)([]),[m,h]=(0,S.useState)(null),[g,_]=(0,S.useState)(``),[me,v]=(0,S.useState)(!1),[ve,Ee]=(0,S.useState)(``),[Oe,ke]=(0,S.useState)(``),[Me,w]=se(!1),[Pe,Ve]=(0,S.useState)(``),[E,D]=(0,S.useState)(!1),[st,ct]=(0,S.useState)(!1),[lt,M]=se(!1),[ut,dt]=(0,S.useState)(null),[ft,pt]=(0,S.useState)(null),[mt,N]=(0,S.useState)(!1),[ht,gt]=(0,S.useState)(``),[_t,vt]=(0,S.useState)(!1),[yt,bt]=(0,S.useState)(null),[xt,St]=(0,S.useState)(!1),[P,F]=(0,S.useState)({}),[I,L]=(0,S.useState)(null),[Ct,wt]=(0,S.useState)(!1),[Tt,Et]=(0,S.useState)(!1),[Dt,R]=(0,S.useState)({}),[z,Ot]=(0,S.useState)([]),B=u?.identity===`user`,kt=B&&!Tt?u.logo:``,At=(0,S.useRef)(null),jt=(0,S.useRef)(null),Mt=(0,S.useRef)(``),Nt=(0,S.useRef)(new Set),Pt=(0,S.useRef)(new Set),V=(0,S.useRef)(null),Ft=(0,S.useRef)(!1),It=(0,S.useRef)(0),H=(0,S.useRef)(new Map),U=(0,S.useRef)(new Set),W=n===!0,{t:G,compareStrings:Lt,formatDate:Rt,formatTime:zt}=d(),K=(0,S.useCallback)(async(e,t)=>{r(await he(e,t),`error`)},[r]),q=(0,S.useMemo)(()=>He(u?.address),[u?.address]),Bt=(0,S.useCallback)((e,t=Date.now())=>{e&&R(n=>{let r=Ge(n,e,t);return r.changed?(We(q,r.value),r.value):n})},[q]),J=(0,S.useCallback)(()=>{if(Ft.current||typeof window>`u`)return;let e=ot();if(e)try{let t=V.current||new e;V.current=t,t.state===`suspended`&&t.resume().catch(()=>{}),Ft.current=!0}catch{}},[]),Vt=(0,S.useCallback)(()=>{if(!Ft.current)return;let e=Date.now();if(e-It.current<et)return;It.current=e;let t=ot();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{}},[]),Ht=(0,S.useCallback)(async(e=m)=>{let t=O(e);if(!t||!W){Ot([]);return}try{let e=await x.getChannelPresence(t);if(Mt.current!==t)return;Ot(e)}catch(e){console.warn(`[Chat] Failed to fetch channel presence:`,e instanceof Error?e.message:e)}},[m,W]);function Ut(e,t){switch(e){case`channel:message`:{let e=t?.channelKey||t?.channel,n=t?.message,r=Number(n?.timestamp)||Date.now();if(e){p(t=>t.map(t=>O(t)===e?{...t,lastMessageAt:new Date(r).toISOString()}:t));let t=e===Mt.current;R(i=>{let a=qe(i,{channelName:e,messageTime:r,activeChannelName:t?e:``,messageAuthor:n?.author,userAddress:u?.address});return a.changed&&We(q,a.value),a.notify&&Vt(),a.changed?a.value:i})}break}case`channel:presence`:{let e=t?.channelKey||t?.channel;m&&(!e||e===O(m))&&Ht(m);break}case`channel:joined`:case`channel:left`:$();break;case`user:metadata:updated`:t?.scope===`channels`&&$();break;case`download:success`:{let e=H.current.get(t.taskId);e&&(H.current.delete(t.taskId),U.current.delete(e.cid),F(t=>({...t,[e.cid]:{status:`available`}})),r(G(`chat.attachment.downloadCompleted`,{fileName:t.fileName||je(e.fileName)}),`success`),en(e,t.fileName||e.fileName));break}case`download:error`:case`download:cancelled`:{let n=H.current.get(t.taskId);n&&(H.current.delete(t.taskId),U.current.delete(n.cid),F(r=>({...r,[n.cid]:{status:`error`,message:e===`download:cancelled`?G(`chat.attachment.downloadCancelled`):t.error||G(`chat.attachment.downloadFailed`)}})),r(e===`download:cancelled`?G(`chat.attachment.downloadCancelled`):t.error||G(`chat.attachment.downloadFailed`),`error`));break}}}let Wt=(0,S.useMemo)(()=>f.map(e=>O(e)),[f]),Gt=(0,S.useMemo)(()=>u?{...Ce(u),profileUpdatedAt:u.profileUpdatedAt}:{},[u?.avatar,u?.displayName,u?.profileUpdatedAt,u?.username]),{clearMessages:Kt,messages:Y,sendMessage:qt,syncMessages:Jt}=we({isReady:W,enabled:!!u,channelName:O(m),extraSubscribedChannelNames:Wt,peerId:Pe,waitForPeerId:!0,onSyncError:e=>K(e,G(`chat.error.messages`)),onSocketEvent:Ut,onReconnect:()=>{$(),m&&Ht(m)},presenceEnabled:!!(m&&u),presenceProfile:Gt}),X=(0,S.useMemo)(()=>{let e=new Map;return Y.forEach((t,n)=>{let r=String(t.author||``).trim();if(!r)return;let i=r.toLowerCase(),a=Number(t.timestamp)||0,o=String(t.authorName||``).trim(),s=String(t.avatar||``).trim(),c=e.get(i);if(!c){e.set(i,{address:r,displayName:o,...s?{avatar:s}:{},firstSeenAt:a,lastSeenAt:a,index:n});return}a>=c.lastSeenAt&&(c.lastSeenAt=a,o&&(c.displayName=o),s&&(c.avatar=s))}),[...e.values()].sort((e,t)=>e.firstSeenAt-t.firstSeenAt||e.index-t.index)},[Y]),Yt=(0,S.useMemo)(()=>new Map(X.map(e=>[j(e.address),e])),[X]),Xt=(0,S.useMemo)(()=>{let e=new Map;return z.forEach(t=>{let n=j(t.address);!n||!t.online||e.set(n,t)}),e},[z]),Zt=(0,S.useMemo)(()=>{let e=new Map(Yt);return z.forEach((t,n)=>{let r=j(t.address);!r||e.has(r)||e.set(r,{address:t.address,displayName:t.displayName||``,...t.avatar?{avatar:t.avatar}:{},firstSeenAt:t.lastSeen||Date.now(),lastSeenAt:t.lastSeen||Date.now(),index:X.length+n})}),[...e.values()]},[X,z,Yt]),Qt=(0,S.useMemo)(()=>new Set(Xt.keys()),[Xt]);function Z(){return W?!0:(a(),!1)}function Q(){return u?!0:(ee(),!1)}(0,S.useEffect)(()=>{let e=()=>{_(tt())};return e(),window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[]),(0,S.useEffect)(()=>{u&&_(tt())},[u?.address]),(0,S.useEffect)(()=>{Et(!1)},[u?.logo]),(0,S.useEffect)(()=>{Mt.current=O(m)},[m]),(0,S.useEffect)(()=>{R(Ue(q))},[q]),(0,S.useEffect)(()=>{!q||f.length===0||R(e=>{let t=Ke(e,f);return t.changed&&We(q,t.value),t.changed?t.value:e})},[q,f]),(0,S.useEffect)(()=>(window.addEventListener(`pointerdown`,J,{passive:!0}),window.addEventListener(`keydown`,J),()=>{window.removeEventListener(`pointerdown`,J),window.removeEventListener(`keydown`,J)}),[J]),(0,S.useEffect)(()=>()=>{V.current?.close().catch(()=>{}),V.current=null,Ft.current=!1},[]),(0,S.useEffect)(()=>{At.current?.scrollIntoView({behavior:`smooth`})},[Y]),(0,S.useEffect)(()=>{if(!W){Ve(``);return}_e.get(`/api/node-id`).json().then(e=>Ve(e.id)).catch(e=>{console.warn(`[Chat] Failed to fetch node ID:`,e.message),K(e,G(`chat.error.nodeId`))})},[W,K,G]),(0,S.useEffect)(()=>{W&&u?(v(!1),$()):v(!1)},[n,W,u?.address]),(0,S.useEffect)(()=>{if(m){if(W){let e=O(m);Ot([]),Jt(e,{replace:!0}),Ht(m)}}else Ot([])},[m,W,Ht,Jt]),(0,S.useEffect)(()=>{if(!g)return;if(!u){Pt.current.has(g)||(Pt.current.add(g),ee());return}if(!W||!me)return;let e=f.find(e=>O(e)===g)||f.find(e=>k(e)===g);if(e&&(!m||O(m)!==O(e))){an(e);return}if(e&&m&&O(m)===O(e)&&(m.createdAt!==e.createdAt||m.coreKey!==e.coreKey||m.lastMessageAt!==e.lastMessageAt||m.pinned!==e.pinned||m.remark!==e.remark||m.type!==e.type)){h(e);return}if(e)return;let t=`${u.address}:${g}`;if(Nt.current.has(t)||E)return;let n=$t(g);if(Nt.current.add(t),n){r(n,`error`);return}cn(g)},[f,m,g,me,W,E,u?.address]),(0,S.useEffect)(()=>{u||(p([]),v(!1),h(null),_(tt()),pt(null),Kt(),ke(``),Ve(``),N(!1),bt(null),F({}),R({}),U.current.clear(),H.current.clear())},[Kt,u?.address]);function $t(e){return e.length<Ye?G(`chat.validation.nameMin`,{count:Ye}):e.length>Xe?G(`chat.validation.nameMax`,{count:Xe}):e.includes(`.`)?G(`chat.validation.dotReserved`):Ze.test(e)?``:G(`chat.validation.allowedChars`)}async function $(){if(!W){v(!1);return}try{p(await x.getChannels()),v(!0)}catch(e){p([]),v(!1),await K(e,G(`chat.error.channelList`))}}function en(e,t=e.fileName){let n=re(t);bt({cid:e.cid,fileName:t,subtype:n===`file`?e.kind:n})}async function tn(e){let t=xe(e.link,G);if(t)return F(n=>({...n,[e.cid]:{status:`error`,message:t}})),!1;try{F(t=>({...t,[e.cid]:{status:`checking`}}));let t=await b.checkDownload(e.link,{timeout:Qe,requestTimeout:$e});return F(n=>({...n,[e.cid]:{status:`available`,message:t.alreadyExists?G(`chat.attachment.localAvailable`):G(`chat.attachment.previewAvailable`)}})),!0}catch(t){let n=await be(t);return F(t=>({...t,[e.cid]:{status:`error`,message:n}})),!1}}async function nn(e){L(null),await tn(e)&&await rn(e)}async function rn(e){if(!U.current.has(e.cid)){U.current.add(e.cid),F(t=>({...t,[e.cid]:{status:`available`}}));try{let t=await b.downloadFile(e.link);if(t.alreadyExists||t.fileName){U.current.delete(e.cid),F(t=>({...t,[e.cid]:{status:`available`}})),en({...e,fileName:t.fileName||e.fileName},t.fileName||e.fileName);return}t.taskId&&(H.current.set(t.taskId,e),r(G(`chat.attachment.downloadStarted`),`success`))}catch(t){let n=await be(t);U.current.delete(e.cid),F(t=>({...t,[e.cid]:{status:`error`,message:n}}))}}}async function an(e){if(!Q()||!Z())return;let t=O(e);Bt(t,Math.max(T(e),Date.now())),h(e),_(t),window.history.pushState({},``,`?channel=${encodeURIComponent(t)}`)}async function on(e,t){if(t&&t.stopPropagation(),Q()&&Z()&&!st){ct(!0);try{if(await x.leaveChannel(e),O(m)===e){h(null),_(``),Kt();let e=new URL(window.location.href);e.searchParams.delete(`channel`),window.history.pushState({},``,e.pathname)}$(),M.close(),dt(null)}catch(e){await K(e,G(`chat.error.leave`))}finally{ct(!1)}}}async function sn(e){if(!Q()||!Z())return;let t=!e.pinned,n=O(e);try{let e=await x.setChannelPinned(n,t);p(t=>t.map(t=>O(t)===n?{...t,pinned:e.pinned}:t)),h(t=>t&&O(t)===n?{...t,pinned:e.pinned}:t)}catch(e){await K(e,G(t?`chat.error.pin`:`chat.error.unpin`))}}async function cn(e){let t=e.trim();if(!t||E)return;let n=$t(t);if(n){r(n,`error`);return}if(Q()&&Z()){D(!0);try{let e=await x.createChannel(t,`public`,Ce(u)),n=e.channelKey||e.key||e.name||t,r=f.find(e=>O(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=O(i);p(e=>e.some(e=>O(e)===a)?e.map(e=>O(e)===a?{...e,...i}:e):[...e,i]),w.close(),await an(i),$()}catch(e){await K(e,G(`chat.error.join`))}finally{D(!1)}}}async function ln(e,t){if(!e.trim()||!m||!Q()||!Z())return!1;let n=e.trim(),r=O(m);try{let e=await qt({channelName:r,content:n,attachment:t});return p(t=>t.map(t=>O(t)===r?{...t,lastMessageAt:new Date(Number(e?.timestamp)||Date.now()).toISOString()}:t)),e&&Bt(r,Number(e.timestamp)||Date.now()),!0}catch(e){return await K(e,G(`chat.error.send`)),!1}}async function un(){if(!Oe.trim())return;let e=Oe.trim();ke(``),await ln(e)}function dn(e,t){return`${nt}/${e}/${t}`}async function fn(e){if(!(!e||e.length===0||!m)&&Q()&&Z()&&!xt){St(!0);try{for(let t of Array.from(e)){let e=dn(k(m),t.name),n=await b.publishFile(t,e),i=n.fileName||e,a=n.link||`most://${n.cid}?filename=${encodeURIComponent(i)}`;await ln(a,{kind:rt(t,i),cid:n.cid,fileName:i,link:a,mimeType:t.type||void 0,size:t.size})&&r(G(`chat.attachment.published`,{fileName:je(i)}),`success`)}}catch(e){await K(e,G(`chat.error.attachmentSend`))}finally{St(!1)}}}async function pn(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 tn(e)&&await rn(e);return}await rn(e)}}async function mn(e,t){if(!Q()||!Z())return;let n=O(e),r=await x.setChannelRemark(n,t);return p(e=>e.map(e=>O(e)===n?{...e,remark:r.remark}:e)),h(e=>e&&O(e)===n?{...e,remark:r.remark}:e),r.remark}async function hn(){if(m)try{await mn(m,ht)}catch(e){await K(e,G(`chat.error.remark`))}}async function gn(e){if(!(!ft||_t)){vt(!0);try{await mn(ft,e),pt(null)}catch(e){await K(e,G(`chat.error.rename`))}finally{vt(!1)}}}function _n(e){if(!e.attachment)return(0,C.jsx)(Fe,{children:e.content});let t=e.attachment,n=P[t.cid]?.status;return(0,C.jsx)(Ie,{children:(0,C.jsx)(Ne,{attachment:t,status:n,pending:e.pending,onOpen:pn})})}function vn(e,t){let n=String(e||``).trim();return n?Ct?at(n)?n:t?`${n}#${t.slice(-4).toUpperCase()}`:n:n.replace(/#[a-fA-F0-9]{4}$/,``):it(t)}function yn(){return(0,C.jsx)(ze,{members:Zt.map(e=>{let t=Xt.get(j(e.address)),n=t?.displayName||e.displayName,r=t?.avatar||e.avatar;return{id:e.address,name:vn(n,e.address),avatarSrc:ge(e.address,r),online:Qt.has(j(e.address))}})})}let bn=B&&!!g&&!m,xn=m?(0,C.jsx)(`h2`,{className:`header-title`,translate:`no`,children:A(m)}):(0,C.jsx)(`h2`,{className:`header-title`,children:G(`chat.title`)}),Sn=ve.trim().toLowerCase(),Cn=(0,S.useMemo)(()=>[...f].sort((e,t)=>{let n=Number(!!t.pinned)-Number(!!e.pinned);if(n!==0)return n;let r=T(t)-T(e);return r===0?Lt(A(e),A(t)):r}),[f,Lt]),wn=Sn?Cn.filter(e=>[A(e),k(e),O(e)].some(e=>e.toLowerCase().includes(Sn))):Cn;return(0,C.jsxs)(ce,{className:`chat-app-layout`,defaultHide:B,sidebar:({closeSidebar:e})=>(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(le,{onNavigate:e}),(0,C.jsx)(`div`,{className:`chat-channel-search`,children:(0,C.jsxs)(`div`,{className:`ui-input-control`,children:[(0,C.jsx)(pe,{className:`ui-input-icon`,size:15}),(0,C.jsx)(`input`,{type:`search`,className:`input input-compact`,placeholder:G(`chat.search.placeholder`),value:ve,onChange:e=>Ee(e.target.value),"aria-label":G(`chat.search.placeholder`)})]})}),(0,C.jsx)(`nav`,{className:`sidebar-nav`,children:f.length===0?(0,C.jsx)(`div`,{className:`sidebar-empty-state`,children:(0,C.jsx)(`p`,{children:G(`chat.empty.noChannels`)})}):wn.length===0?(0,C.jsx)(`div`,{className:`sidebar-empty-state`,children:(0,C.jsx)(`p`,{children:G(`chat.empty.noMatches`)})}):wn.map(t=>(0,C.jsx)(Re,{active:O(m)===O(t),pinned:!!t.pinned,unread:Je(t,Dt),title:A(t),onSelect:()=>{an(t),e()},onTogglePin:()=>void sn(t),onRename:()=>pt(t),onLeave:()=>{dt(t),M.open()}},O(t)))}),(0,C.jsxs)(`button`,{className:`ui-action-dashed create-channel-btn`,onClick:()=>{!Q()||!Z()||w.open()},children:[(0,C.jsx)(fe,{size:16}),G(`chat.joinChannel`)]}),(0,C.jsx)(ye,{})]}),headerTitle:xn,sidebarToggleReplacement:B?(0,C.jsx)(`span`,{className:`sidebar-toggle-static-logo`,"aria-hidden":`true`,children:kt?(0,C.jsx)(`img`,{className:`sidebar-toggle-static-logo-img`,src:kt,alt:``,onError:()=>Et(!0)}):(0,C.jsx)(Se,{size:18})}):void 0,headerRight:(0,C.jsxs)(`div`,{className:`header-right-actions`,children:[(0,C.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>t(!e),title:G(`common.theme.toggle`),children:e?(0,C.jsx)(te,{size:16}):(0,C.jsx)(ne,{size:16})}),m&&(0,C.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>N(!0),title:G(`chat.channelSettings`),children:(0,C.jsx)(Ae,{size:16})})]}),children:[m?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`div`,{className:`chat-messages`,children:[Y.length===0?(0,C.jsxs)(`div`,{className:`ui-empty-state chat-messages-empty`,children:[(0,C.jsx)(`div`,{className:`ui-empty-icon empty-icon`,children:(0,C.jsx)(ue,{size:28})}),(0,C.jsx)(`p`,{children:G(`chat.empty.noMessages`)})]}):Y.map(e=>{let t=e.author?.toLowerCase()===u?.address.toLowerCase(),n=Xt.get(j(e.author)),r=Yt.get(j(e.author)),i=Qt.has(j(e.author)),a=n?.displayName||r?.displayName||e.authorName,o=n?.avatar||r?.avatar||e.avatar||(t?u.avatar:void 0);return(0,C.jsx)(Le,{variant:t?`self`:`other`,pending:e.pending,isOnline:i,avatarSrc:ge(e.author,o),author:vn(a,e.author),time:zt(e.timestamp),children:_n(e)},e.id||`${e.author}-${e.timestamp}`)}),(0,C.jsx)(`div`,{ref:At})]}),(0,C.jsx)(Be,{message:Oe,placeholder:G(u?`chat.composer.placeholder`:`chat.composer.signInPlaceholder`),disabled:!u,isPublishingAttachment:xt,attachmentInputRef:jt,onMessageChange:ke,onSend:un,onSelectAttachmentFiles:e=>{fn(e)}})]}):bn?(0,C.jsxs)(`div`,{className:`ui-empty-state chat-welcome`,children:[(0,C.jsx)(`div`,{className:`ui-empty-icon ui-empty-icon-lg welcome-icon`,children:(0,C.jsx)(oe,{size:36,className:`ui-spinner`})}),(0,C.jsx)(`h2`,{className:`ui-empty-title`,children:G(`chat.restoring.title`)}),(0,C.jsx)(`p`,{className:`ui-empty-desc`,children:G(`chat.restoring.desc`)})]}):(0,C.jsx)(C.Fragment,{children:(0,C.jsxs)(`div`,{className:`ui-empty-state chat-welcome`,children:[(0,C.jsx)(`div`,{className:`ui-empty-icon ui-empty-icon-lg welcome-icon`,children:(0,C.jsx)(ue,{size:36})}),(0,C.jsx)(`h2`,{className:`ui-empty-title`,children:G(`chat.select.title`)}),(0,C.jsx)(`p`,{className:`ui-empty-desc`,children:G(`chat.select.desc`)}),(0,C.jsx)(de,{label:G(`chat.openChannelList`)})]})}),Me&&(0,C.jsx)(s,{title:G(`chat.joinChannel`),placeholder:G(`chat.join.placeholder`),confirmText:G(`chat.join.confirm`),validate:$t,onConfirm:cn,onClose:()=>w.close(),isLoading:E,loadingText:G(`chat.join.joining`)}),ft&&(0,C.jsx)(s,{title:G(`chat.renameChannel`),placeholder:G(`chat.remark.placeholder`),defaultValue:ft.remark||``,confirmText:G(`chat.remark.save`),onConfirm:gn,onClose:()=>{_t||pt(null)},isLoading:_t,loadingText:G(`chat.remark.saving`),allowEmpty:!0,validate:e=>e.length>50?G(`chat.remark.tooLong`):``}),lt&&ut&&(0,C.jsx)(c,{title:G(`chat.leaveChannel`),message:G(`chat.leaveConfirm`,{channel:A(ut)}),confirmText:G(st?`chat.leaving`:`chat.leaveChannel`),onConfirm:()=>on(O(ut),void 0),danger:!0,onClose:()=>{M.close(),dt(null)}}),I&&(0,C.jsx)(o,{onClose:()=>L(null),children:(0,C.jsxs)(`div`,{className:`confirm-modal`,onClick:e=>e.stopPropagation(),children:[(0,C.jsxs)(`div`,{className:`modal-header`,children:[(0,C.jsx)(`h3`,{children:G(`chat.attachment.noSeedsTitle`)}),(0,C.jsx)(`button`,{type:`button`,className:`btn btn-icon`,onClick:()=>L(null),"aria-label":G(`common.close`),children:(0,C.jsx)(i,{size:18})})]}),(0,C.jsx)(`p`,{children:P[I.cid]?.message||G(`chat.attachment.noSeedsFallback`)}),(0,C.jsxs)(`div`,{className:`modal-actions`,children:[(0,C.jsx)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:()=>L(null),children:G(`common.cancel`)}),(0,C.jsx)(`button`,{type:`button`,className:`btn btn-primary`,onClick:()=>nn(I),disabled:P[I.cid]?.status===`checking`,children:P[I.cid]?.status===`checking`?G(`app.checking`):G(`chat.attachment.retryCheck`)})]})]})}),yt&&(0,C.jsx)(ae,{item:yt,isBackendReady:W,getFileDownloadUrl:b.getFileDownloadUrl,onClose:()=>bt(null)}),mt&&m&&(0,C.jsx)(`div`,{className:`channel-detail-overlay`,onClick:()=>N(!1),children:(0,C.jsxs)(`div`,{className:`channel-detail-drawer`,onClick:e=>e.stopPropagation(),children:[(0,C.jsxs)(`div`,{className:`channel-detail-header`,children:[(0,C.jsx)(`h3`,{children:G(`chat.details.title`)}),(0,C.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>N(!1),children:(0,C.jsx)(i,{size:18})})]}),(0,C.jsxs)(`div`,{className:`channel-detail-body`,children:[(0,C.jsxs)(`div`,{className:`channel-detail-section channel-members-section`,children:[(0,C.jsx)(`div`,{className:`channel-detail-label`,children:(0,C.jsx)(`span`,{children:G(`chat.details.members`,{count:Zt.length})})}),yn()]}),!B&&(0,C.jsx)(`div`,{className:`channel-detail-section`,children:(0,C.jsxs)(`label`,{className:`setting-switch`,children:[(0,C.jsx)(`span`,{children:G(`chat.details.showAddressSuffix`)}),(0,C.jsx)(`input`,{type:`checkbox`,checked:Ct,onChange:e=>wt(e.target.checked)})]})}),!B&&(0,C.jsxs)(`div`,{className:`channel-detail-section`,children:[(0,C.jsxs)(`div`,{className:`channel-detail-label`,children:[(0,C.jsx)(De,{size:14}),(0,C.jsx)(`span`,{children:G(`chat.details.channelId`)})]}),(0,C.jsx)(`div`,{className:`ui-meta-box channel-detail-value channel-detail-mono`,translate:`no`,children:k(m)})]}),(0,C.jsxs)(`div`,{className:`channel-detail-section`,children:[(0,C.jsxs)(`div`,{className:`channel-detail-label`,children:[(0,C.jsx)(ie,{size:14}),(0,C.jsx)(`span`,{children:G(`chat.remark.placeholder`)})]}),(0,C.jsx)(`input`,{type:`text`,className:`input input-compact`,placeholder:G(`chat.remark.placeholder`),value:ht,onChange:e=>gt(e.target.value),onFocus:()=>gt(m.remark||``),onBlur:()=>hn(),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()},maxLength:50})]}),(0,C.jsxs)(`div`,{className:`channel-detail-section`,children:[(0,C.jsxs)(`div`,{className:`channel-detail-label`,children:[(0,C.jsx)(Te,{size:14}),(0,C.jsx)(`span`,{children:G(`chat.channel.createdAt`)})]}),(0,C.jsx)(`div`,{className:`ui-meta-box channel-detail-value`,children:m.createdAt?Rt(m.createdAt):`-`})]})]}),!B&&(0,C.jsx)(`div`,{className:`channel-detail-footer`,children:(0,C.jsx)(`button`,{className:`btn btn-secondary btn-block`,onClick:()=>{N(!1),dt(m),M.open()},children:G(`chat.leaveChannel`)})})]})})]})}var ct=a(`/chat/`)({component:st});export{ct as Route};
@@ -0,0 +1 @@
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{C as r,T as i,d as a,l as o,s,u as c}from"./ui-BpDGD3IR.js";import{a as l}from"./i18n-NjvOSuV6.js";import{n as u,r as d}from"./LanguageToggle-CSQtRZ3A.js";import{t as f}from"./copy-DEzFUzeX.js";import{n as p}from"./SidebarHomeLink-qMFEGjZt.js";import{t as ee}from"./play-B-BjsTZz.js";import{a as m,i as te,n as h,r as g,t as ne}from"./useGameRoom-hHkV65ii.js";import{E as _,N as re,S as v,b as ie,c as y,i as ae,w as oe,x as b}from"./index-C-_ZwxuN.js";var se=r(`refresh-ccw`,[[`path`,{d:`M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`14sxne`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16`,key:`1hlbsb`}],[`path`,{d:`M16 16h5v5`,key:`ccwih5`}]]),x=t(e(),1),ce=[10,20,50,100],S=[`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`J`,`Q`,`K`,`A`],C=[`D`,`C`,`H`,`S`],w=new Map(S.map((e,t)=>[e,t+2])),T=new Map(C.map((e,t)=>[e,t+1])),E={high:1,pair:2,straight:3,flush:4,straightFlush:5,triple:6},le={[E.high]:`散牌`,[E.pair]:`对子`,[E.straight]:`顺子`,[E.flush]:`金花`,[E.straightFlush]:`顺金`,[E.triple]:`豹子`};function D(e){return oe(e)}function ue(e=`zhajinhua`){return ie(e)}function de(){return ue(`round`)}function fe(){let e=[];for(let t of C)for(let n of S)e.push(`${n}${t}`);return e}function O(e=fe(),t=Math.random){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 k(e){let t=String(e||``).trim().toUpperCase(),n=t.slice(-1),r=t.slice(0,-1);if(!w.has(r)||!T.has(n))throw Error(`Invalid card: ${e}`);return{id:`${r}${n}`,rank:r,suit:n,rankValue:w.get(r),suitValue:T.get(n)}}function A(e,t){let n=Math.max(e.length,t.length);for(let r=0;r<n;r++){let n=e[r]||0,i=t[r]||0;if(n!==i)return n-i}return 0}function j(e){let t=[...new Set(e)].sort((e,t)=>e-t);return t.length===3?t[0]===2&&t[1]===3&&t[2]===14?3:t[0]+1===t[1]&&t[1]+1===t[2]?t[2]:0:0}function M(e){if(!Array.isArray(e)||e.length!==3)throw Error(`炸金花手牌必须是 3 张牌`);let t=e.map(k),n=t.map(e=>e.rankValue),r=new Map;for(let e of n)r.set(e,(r.get(e)||0)+1);let i=new Set(t.map(e=>e.suit)).size===1,a=j(n),o=[...n].sort((e,t)=>t-e),s=Math.max(...t.map(e=>e.suitValue)),c=E.high,l=o;return r.size===1?(c=E.triple,l=[o[0]]):a&&i?(c=E.straightFlush,l=[a]):i?(c=E.flush,l=o):a?(c=E.straight,l=[a]):r.size===2&&(c=E.pair,l=[[...r.entries()].find(([,e])=>e===2)[0],[...r.entries()].find(([,e])=>e===1)[0]]),{category:c,label:le[c],tiebreakers:l,tieSuit:s,cards:t.map(e=>e.id)}}function N(e,t){let n=M(e),r=M(t);if(n.category!==r.category)return n.category-r.category;let i=A(n.tiebreakers,r.tiebreakers);return i===0?n.tieSuit-r.tieSuit:i}function pe(e){return M(e).label}function P({roundId:e,action:t,amount:n,target:r}){return{roundId:e,eventId:ue(`action`),action:t,amount:n,target:r}}function me(e=[]){let t=e.filter(e=>Number(e.chips)>=10);return t.length>=2&&t.length<=5}function he({roomCode:e,players:t,hostAddress:n,previousSeq:r=0,previousWinner:i=``,roundId:a=de(),random:o=Math.random}){let s=t.filter(e=>Number(e.chips)>=10).slice(0,5);if(s.length<2)throw Error(`至少需要 2 名有足够筹码的玩家`);let c=O(fe(),o),l={},u=s.map((e,t)=>{let n=c.slice(t*3,t*3+3);return l[e.address]=n,{address:e.address,name:e.name,avatar:v(e.avatar),publicKey:e.publicKey,chips:Number(e.chips)-10,status:`active`,looked:!1,bet:10}}),d,f=b(i),p=f?u.findIndex(e=>b(e.address)===f):-1;return d=p>=0?u[p].address:u[Math.floor(o()*u.length)].address,{roomCode:D(e),roundId:a,status:`playing`,host:b(n),seq:r+1,startedAt:Date.now(),ante:10,pot:10*u.length,currentBet:10,turnAddress:d,players:u,lastAction:`本局开始`,winner:null,showdown:null,appliedEventIds:[],hands:l,actionCounts:{},compareReveal:{}}}function ge(e){if(!e)return null;let t={...e};return delete t.hands,W(t)}function _e(e,t){let n=F(e);return!n||!t||typeof t!=`object`?null:{...n,hands:W(t)}}function F(e){return!e||typeof e!=`object`||!e.roundId||!Array.isArray(e.players)?null:{roomCode:D(e.roomCode),roundId:String(e.roundId),status:e.status===`finished`?`finished`:`playing`,host:b(e.host),seq:Number(e.seq)||1,startedAt:Number(e.startedAt)||Date.now(),ante:Number(e.ante)||10,pot:Math.max(0,Number(e.pot)||0),currentBet:Math.max(0,Number(e.currentBet)||10),turnAddress:b(e.turnAddress),players:e.players.map(be).filter(Boolean),lastAction:String(e.lastAction||``),winner:e.winner?b(e.winner):null,showdown:e.showdown&&typeof e.showdown==`object`?W(e.showdown):null,appliedEventIds:Array.isArray(e.appliedEventIds)?e.appliedEventIds.map(String):[],actionCounts:e.actionCounts&&typeof e.actionCounts==`object`?W(e.actionCounts):{},compareReveal:e.compareReveal&&typeof e.compareReveal==`object`?W(e.compareReveal):{},lastCompare:e.lastCompare&&typeof e.lastCompare==`object`?W(e.lastCompare):null,finishedAt:e.finishedAt?Number(e.finishedAt):null}}function I(e,t,n){let r=F(e);if(!r||r.status!==`playing`)return{ok:!1,error:`当前没有进行中的牌局`};let i=b(n),a=r.players.find(e=>e.address===i);if(!a||a.status!==`active`)return{ok:!1,error:`玩家不在本轮牌局中`};if(r.turnAddress!==i)return{ok:!1,error:`还没有轮到你操作`};let o=t?.action;if(![`look`,`call`,`raise`,`compare`,`fold`].includes(o))return{ok:!1,error:`未知操作`};if(o===`look`)return a.looked?{ok:!1,error:`已经看过牌`}:{ok:!0};if(o===`call`)return a.chips>=10?{ok:!0}:{ok:!1,error:`筹码不足,不能跟注`};if(o===`raise`){let e=Number(t.amount);if(!ce.includes(e))return{ok:!1,error:`加注档位无效`};let n=r.currentBet+e-a.bet;return a.chips>=n?{ok:!0}:{ok:!1,error:`筹码不足,不能加注`}}if(o===`compare`){let e=b(t.target),n=r.players.find(t=>t.address===e);if(!e||e===i||!n||n.status!==`active`)return{ok:!1,error:`请选择有效的比牌对象`};if(!r.players.filter(e=>e.status===`active`).every(e=>(r.actionCounts?.[e.address]||0)>=1))return{ok:!1,error:`第一轮不能比牌,请先跟注或加注`};let o=Math.max(0,r.currentBet-a.bet);return a.chips>=o?{ok:!0}:{ok:!1,error:`筹码不足,不能比牌`}}return{ok:!0}}function L(e,t,n){let r=I(e,t,n);if(!r.ok)return{ok:!1,error:r.error,state:e};let i=W(e),a=b(n),o=i.players.find(e=>e.address===a),s=String(t.eventId);if(i.appliedEventIds?.includes(s))return{ok:!0,state:i,duplicate:!0};if(Array.isArray(i.appliedEventIds)||(i.appliedEventIds=[]),i.appliedEventIds.push(s),t.action===`look`)return o.looked=!0,i.lastAction=`${o.name} 看牌`,U(i);if(t.action===`fold`)return o.status=`folded`,i.lastAction=`${o.name} 弃牌`,B(i,a),V(i,a);if(t.action===`call`)return o.chips-=10,o.bet+=10,i.pot+=10,i.lastAction=`${o.name} 跟注`,B(i,a),V(i,a);if(t.action===`raise`){let e=Number(t.amount);return i.currentBet+=e,z(i,o),i.lastAction=`${o.name} 加注 ${e}`,B(i,a),V(i,a)}if(t.action===`compare`){z(i,o);let e=b(t.target),n=i.players.find(t=>t.address===e),r=o.looked,s=n.looked,c=N(i.hands?.[a]||[],i.hands?.[e]||[]),l=c>=0?o:n,u=c>=0?n:o;u.status=`folded`,u.looked=!0,i.compareReveal||={};let d=r&&s,f=!r&&!s;if(d)i.compareReveal[a]=i.hands?.[e]||[],i.compareReveal[e]=i.hands?.[a]||[];else if(f)i.compareReveal[u.address]=i.hands?.[l.address]||[];else{let e=r?o:n,t=r?n:o;i.compareReveal[e.address]=i.hands?.[t.address]||[],i.compareReveal[u.address]=i.hands?.[l.address]||[]}return i.lastCompare={initiator:a,target:e,winner:l.address,loser:u.address,initiatorLooked:r,targetLooked:s,timestamp:Date.now()},i.lastAction=`${o.name} 与 ${n.name} 比牌,${u.name} 出局`,B(i,a),V(i,a)}return{ok:!1,error:`未知操作`,state:e}}function R(e){return(e?.players||[]).filter(e=>e.status===`active`)}function ve(e,t){let n=(e?.players||[]).find(e=>e.address===b(t));if(!e||e.status!==`playing`||!n||n.status!==`active`||e.turnAddress!==n.address)return[];let r=[];return n.looked||r.push(`look`),I(e,{action:`call`},n.address).ok&&r.push(`call`),ce.some(t=>I(e,{action:`raise`,amount:t},n.address).ok)&&r.push(`raise`),R(e).length>1&&e.players.filter(e=>e.status===`active`).every(t=>(e.actionCounts?.[t.address]||0)>=1)&&r.push(`compare`),r.push(`fold`),r}function z(e,t){let n=Math.max(0,e.currentBet-t.bet);t.chips-=n,t.bet+=n,e.pot+=n}function B(e,t){e.actionCounts||={},e.actionCounts[t]=(e.actionCounts[t]||0)+1}function V(e,t){let n=R(e);return n.length===1?ye(e,n[0].address):(e.turnAddress=H(e,t),U(e))}function ye(e,t){let n=e.players.find(e=>e.address===t),r=e.pot;return n&&(n.chips+=e.pot),e.status=`finished`,e.winner=t,e.winAmount=r,e.turnAddress=``,e.showdown=e.hands?W(e.hands):null,e.lastAction=n?`${n.name} 赢得 ${r} 筹码`:`本局结束`,e.pot=0,e.finishedAt=Date.now(),U(e)}function H(e,t){let n=e.players,r=Math.max(0,n.findIndex(e=>e.address===b(t)));for(let e=1;e<=n.length;e++){let t=n[(r+e)%n.length];if(t.status===`active`)return t.address}return``}function U(e){return e.seq=Number(e.seq||0)+1,{ok:!0,state:e}}function be(e){if(!e||typeof e!=`object`)return null;let t=b(e.address);return t?{address:t,name:String(e.name||_(t)).slice(0,50),avatar:v(e.avatar),publicKey:String(e.publicKey||``),chips:Math.max(0,Number(e.chips)||0),status:e.status===`folded`?`folded`:`active`,looked:e.looked===!0,bet:Math.max(0,Number(e.bet)||0)}:null}function W(e){return JSON.parse(JSON.stringify(e))}var G={page:`_page_p8eol_1`,headerActions:`_headerActions_p8eol_12`,entry:`_entry_p8eol_18`,entryBrand:`_entryBrand_p8eol_28`,cardMark:`_cardMark_p8eol_34`,entryPanel:`_entryPanel_p8eol_62`,accountLine:`_accountLine_p8eol_72`,joinForm:`_joinForm_p8eol_89`,status:`_status_p8eol_110`,board:`_board_p8eol_116`,table:`_table_p8eol_123`,tableCenter:`_tableCenter_p8eol_144`,finishBanner:`_finishBanner_p8eol_173`,finishBannerIcon:`_finishBannerIcon_p8eol_192`,seats:`_seats_p8eol_196`,seat:`_seat_p8eol_196`,seatTurn:`_seatTurn_p8eol_218`,seatWinner:`_seatWinner_p8eol_223`,seatFolded:`_seatFolded_p8eol_228`,seatAvatar:`_seatAvatar_p8eol_232`,seatAvatarOffline:`_seatAvatarOffline_p8eol_252`,onlineDot:`_onlineDot_p8eol_257`,seatMain:`_seatMain_p8eol_269`,seatMeta:`_seatMeta_p8eol_270`,panel:`_panel_p8eol_301`,panelSection:`_panelSection_p8eol_308`,panelTitle:`_panelTitle_p8eol_318`,hand:`_hand_p8eol_328`,card:`_card_p8eol_34`,red:`_red_p8eol_362`,black:`_black_p8eol_366`,cardBack:`_cardBack_p8eol_370`,handLabel:`_handLabel_p8eol_391`,actionGrid:`_actionGrid_p8eol_398`,raiseRow:`_raiseRow_p8eol_399`,statusGrid:`_statusGrid_p8eol_410`,muted:`_muted_p8eol_428`,compareOverlay:`_compareOverlay_p8eol_435`,compareBox:`_compareBox_p8eol_447`,compareTitle:`_compareTitle_p8eol_461`,comparePlayers:`_comparePlayers_p8eol_467`,compareSide:`_compareSide_p8eol_474`,compareWinner:`_compareWinner_p8eol_486`,compareName:`_compareName_p8eol_491`,compareCards:`_compareCards_p8eol_502`,compareLabel:`_compareLabel_p8eol_527`,compareVs:`_compareVs_p8eol_533`,compareResult:`_compareResult_p8eol_540`},K=n(),xe=`zhajinhua`;function q(...e){return e.filter(Boolean).join(` `)}function J(e,t){return String(e||``).toLowerCase()===String(t||``).toLowerCase()}function Se(e=``){return e?`${e.slice(0,6)}...${e.slice(-4)}`:``}function Ce(e){return e.displayName||e.username}function we(e){let t=String(e||``),n=t.slice(-1);return{rank:t.slice(0,-1),suit:{S:`♠`,H:`♥`,C:`♣`,D:`♦`}[n]||n,color:n===`H`||n===`D`?`red`:`black`}}function Y(){let{t:e}=l(),t=y(e=>e.isDarkMode),n=y(e=>e.setIsDarkMode),r=y(e=>e.addToast),i=s(e=>e.initializeUser),[_,v]=(0,x.useState)(``),[ie,oe]=(0,x.useState)(!1),b=(0,x.useRef)(``),S=(0,x.useRef)(!1),[C,w]=(0,x.useState)(20),[T,E]=(0,x.useState)(``),[le,D]=(0,x.useState)({}),[ue,de]=(0,x.useState)(!0),[fe,O]=(0,x.useState)(!1),k=(0,x.useRef)(null),A=(0,x.useRef)(new Set),j=ne({gameId:xe,onError:e=>r(e,`error`),getPlayerPayload:e=>{let t=o(e.danger);return{address:e.address,name:Ce(e),avatar:e.avatar||``,publicKey:t.public_key,joinedAt:Date.now()}}}),M=(0,x.useMemo)(()=>j.userIdentity?.danger?o(j.userIdentity.danger):null,[j.userIdentity?.danger]);(0,x.useEffect)(()=>{i()},[i]),(0,x.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get(`room`)?.toUpperCase();e&&(v(e),b.current=e)},[]),(0,x.useEffect)(()=>{let t=b.current;!t||S.current||!j.isBackendReady||!j.userIdentity||(S.current=!0,b.current=``,j.joinRoom(t).then(t=>{t&&r(e(`game.toast.joinedRoom`),`success`)}))},[j.isBackendReady,j.userIdentity,j.joinRoom,r,e]),(0,x.useEffect)(()=>{if(!j.roomCode)return;let e=`/game/zhajinhua?room=${j.roomCode}`;`${window.location.pathname}${window.location.search}`!==e&&window.history.replaceState(null,``,e)},[j.roomCode]);let N=(0,x.useMemo)(()=>h(j.messages,{gameId:xe,roomCode:j.roomCode}),[j.messages,j.roomCode]),F=(0,x.useMemo)(()=>g(j.messages,{gameId:xe,roomCode:j.roomCode}),[j.messages,j.roomCode])?.payload?.round||null,I=F?.host||N.hostAddress,z=J(I,j.userIdentity?.address),B=j.userIdentity?.address?.toLowerCase()||``,V=F?.players.find(e=>J(e.address,B)),ye=V||N.players.find(e=>J(e.address,B)),H=le[F?.roundId||``]||null,U=F?.showdown&&B?F.showdown[B]:null,be=F?.compareReveal&&B?F.compareReveal[B]:null,W=U||be||(V?.looked?H:null),Y=ve(F,B),Z=R(F),Q=z&&me(N.players.map(e=>({...e,chips:F?.players.find(t=>J(t.address,e.address))?.chips??1e3}))),De=j.roomCode&&typeof window<`u`?`${window.location.origin}/game/zhajinhua?room=${j.roomCode}`:``;(0,x.useEffect)(()=>{if(!(!F||!j.userIdentity||!M||!I))for(let e of j.roomEvents){let t=e.event;if(!t||t.event!==`deal:private`)continue;let n=t.payload;if(n.roundId!==F.roundId||!J(n.recipient,j.userIdentity.address))continue;let r=c(n.encrypted||``,{senderPublicKey:n.senderPublicKey||``,recipientPrivateKey:M.private_key});if(r)try{let e=JSON.parse(r);Array.isArray(e)&&D(t=>({...t,[F.roundId]:e.map(String)}))}catch{}}},[F?.roundId,j.roomEvents,j.userIdentity,I,M?.private_key]),(0,x.useEffect)(()=>{if(F?.status===`finished`&&F.winner){de(!0);let e=setTimeout(()=>de(!1),5e3);return()=>clearTimeout(e)}},[F?.finishedAt,F?.status,F?.winner]),(0,x.useEffect)(()=>{if(F?.lastCompare?.timestamp){O(!0);let e=setTimeout(()=>O(!1),5e3);return()=>clearTimeout(e)}else O(!1)},[F?.lastCompare?.timestamp,F?.roundId]),(0,x.useEffect)(()=>{if(!z||!F||F.status!==`playing`)return;let e=k.current;if(!e)return;let t=j.roomEvents.filter(e=>{let t=e.event;if(!t||t.event!==`player:action`)return!1;let n=t.payload.actionEvent;return!(!n||n.roundId!==F.roundId||A.current.has(n.eventId)||F.appliedEventIds?.includes(n.eventId))});if(t.length===0)return;let n=!1;async function r(){let r=_e(F,e);if(r)for(let e of t){if(n)return;let t=(e.event?.payload).actionEvent,i=L(r,t,e.message.author);if(!i.ok){let n=e.message.author;if(!J(n,j.userIdentity?.address)&&r.status===`playing`&&J(r.turnAddress,n)){let e=L(r,P({roundId:r.roundId,action:`call`,amount:void 0,target:void 0}),n);if(e.ok)i=e;else{let e=L(r,P({roundId:r.roundId,action:`fold`,amount:void 0,target:void 0}),n);e.ok&&(i=e)}}if(!i.ok){A.current.add(t.eventId);continue}}if(r=i.state,k.current=i.state.hands,await je(i.state)&&A.current.add(t.eventId),i.state.status===`finished`)break}}return r(),()=>{n=!0}},[F?.roundId,F?.seq,F?.status,j.roomEvents,z]);async function Oe(){await j.createRoom()&&r(e(`game.toast.roomCreated`),`success`)}async function ke(t){t.preventDefault(),await j.joinRoom(_)&&r(e(`game.toast.joinedRoom`),`success`)}async function Ae(){De&&(await navigator.clipboard.writeText(De),oe(!0),setTimeout(()=>oe(!1),1400))}async function je(e){return j.sendRoomEvent(`room:state`,{round:ge(e),seq:e.seq})}async function Me(){if(!j.userIdentity||!M||!Q){r(e(`game.zhajinhua.error.notEnoughPlayers`),`error`);return}try{let t=N.players.map(e=>({...e,chips:F?.players.find(t=>J(t.address,e.address))?.chips??1e3})),n=he({roomCode:j.roomCode,players:t,hostAddress:j.userIdentity.address,previousSeq:F?.seq||0,previousWinner:F?.winner||``});k.current=n.hands,A.current.clear(),await je(n);for(let e of n.players){let t=a(JSON.stringify(n.hands[e.address]),{senderPrivateKey:M.private_key,recipientPublicKey:e.publicKey});await j.sendRoomEvent(`deal:private`,{roundId:n.roundId,recipient:e.address,senderPublicKey:M.public_key,encrypted:t})}D(e=>({...e,[n.roundId]:n.hands[j.userIdentity.address.toLowerCase()]})),r(e(`game.zhajinhua.toast.roundStarted`),`success`)}catch(t){r(t instanceof Error?t.message:e(`game.zhajinhua.error.startFailed`),`error`)}}async function $(e,t={}){if(!F||!j.userIdentity)return;let n=P({roundId:F.roundId,action:e,amount:t.amount,target:t.target});await j.sendRoomEvent(`player:action`,{actionEvent:n})}let Ne=F?.status===`playing`?J(F.turnAddress,B)?e(`game.zhajinhua.status.yourTurn`):F.turnAddress?e(`game.zhajinhua.status.waitingPlayer`,{player:X(F.turnAddress,N.players,j.presenceByAddress)}):e(`game.status.playing`):F?.status===`finished`?e(`game.status.finished`):e(`game.status.waitingStart`),Pe=Z.filter(e=>!J(e.address,B));return(0,K.jsx)(p,{sidebar:({closeSidebar:e})=>(0,K.jsx)(te,{activeGame:`zhajinhua`,closeSidebar:e}),headerTitle:(0,K.jsx)(`h2`,{className:`header-title`,children:e(`game.zhajinhua.title`)}),headerRight:(0,K.jsxs)(`div`,{className:G.headerActions,children:[j.roomCode&&(0,K.jsxs)(`button`,{className:`btn btn-sm`,onClick:Ae,children:[(0,K.jsx)(f,{size:14}),e(ie?`common.copied`:`game.action.shareRoom`)]}),(0,K.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>n(!t),title:e(`common.theme.toggle`),children:t?(0,K.jsx)(u,{size:16}):(0,K.jsx)(d,{size:16})})]}),children:(0,K.jsx)(`main`,{className:G.page,children:j.roomCode?(0,K.jsxs)(`div`,{className:G.board,children:[(0,K.jsxs)(`section`,{className:G.table,children:[F?.status===`finished`&&F.winner&&ue&&(0,K.jsxs)(`div`,{className:G.finishBanner,children:[(0,K.jsx)(`span`,{className:G.finishBannerIcon,children:`🏆`}),(0,K.jsx)(`span`,{children:e(`game.zhajinhua.result.winChips`,{player:X(F.winner,N.players,j.presenceByAddress),amount:F.winAmount??0})})]}),F?.lastCompare&&fe&&(0,K.jsx)(Te,{lastCompare:F.lastCompare,compareReveal:F.compareReveal||{},myAddress:B,myDealtHand:H,lobbyPlayers:N.players,presenceByAddress:j.presenceByAddress,onClose:()=>O(!1)}),(0,K.jsxs)(`div`,{className:G.tableCenter,children:[(0,K.jsx)(`span`,{children:e(`game.zhajinhua.pot`)}),(0,K.jsx)(`strong`,{children:F?.pot||0}),(0,K.jsx)(`small`,{children:e(`game.zhajinhua.currentBet`,{amount:F?.currentBet||0})})]}),(0,K.jsx)(`div`,{className:G.seats,children:N.players.map(t=>{let n=F?.players.find(e=>J(e.address,t.address)),r=Ee(t,j.presenceByAddress,j.onlineAddresses),i=F?.turnAddress===t.address,a=F?.winner===t.address,o=n?.status===`folded`;return(0,K.jsxs)(`div`,{className:q(G.seat,i&&G.seatTurn,a&&G.seatWinner,o&&G.seatFolded),children:[(0,K.jsxs)(`div`,{className:q(G.seatAvatar,!r.online&&G.seatAvatarOffline),children:[(0,K.jsx)(`img`,{src:ae(t.address,r.avatar),alt:``}),r.online&&(0,K.jsx)(`span`,{className:G.onlineDot})]}),(0,K.jsxs)(`div`,{className:G.seatMain,children:[(0,K.jsx)(`strong`,{translate:`no`,children:r.name}),(0,K.jsx)(`span`,{translate:`no`,children:Se(t.address)})]}),(0,K.jsxs)(`div`,{className:G.seatMeta,children:[(0,K.jsx)(`span`,{children:e(`game.zhajinhua.chips`,{amount:n?.chips??1e3})}),(0,K.jsx)(`span`,{children:n?.status===`folded`?e(`game.zhajinhua.player.folded`):n?.looked?e(`game.zhajinhua.player.looked`):e(F?`game.zhajinhua.player.inRound`:`game.status.waitingStart`)})]})]},t.address)})})]}),(0,K.jsxs)(`aside`,{className:G.panel,children:[(0,K.jsxs)(`div`,{className:G.panelSection,children:[(0,K.jsxs)(`div`,{className:G.panelTitle,children:[(0,K.jsx)(m,{size:16}),(0,K.jsx)(`span`,{children:e(`game.zhajinhua.myHand`)})]}),(0,K.jsx)(`div`,{className:G.hand,children:W?W.map(e=>{let t=we(e),n=`${t.suit}${t.rank}`;return(0,K.jsxs)(`div`,{className:q(G.card,G[t.color]),children:[(0,K.jsx)(`span`,{children:n}),(0,K.jsx)(`i`,{children:t.suit})]},e)}):[0,1,2].map(e=>(0,K.jsx)(`div`,{className:G.cardBack,children:(0,K.jsx)(m,{size:18})},e))}),(0,K.jsx)(`p`,{className:G.handLabel,children:W?pe(W):e(H?`game.zhajinhua.hand.unlooked`:`game.zhajinhua.hand.waitingDeal`)})]}),(0,K.jsxs)(`div`,{className:G.panelSection,children:[(0,K.jsxs)(`div`,{className:G.panelTitle,children:[(0,K.jsx)(ee,{size:16}),(0,K.jsx)(`span`,{children:e(`game.actions`)})]}),z?(0,K.jsxs)(`button`,{className:`btn btn-primary btn-full`,onClick:Me,disabled:!Q||F?.status===`playing`,children:[(0,K.jsx)(se,{size:16}),F?.status===`finished`?e(`game.action.nextRound`):e(`game.action.startRound`)]}):(0,K.jsx)(`p`,{className:G.muted,children:e(`game.waitingHost`)}),z&&F?.status===`finished`&&!Q&&(0,K.jsx)(`p`,{className:G.muted,children:e(`game.zhajinhua.error.tooManyLowChips`)}),(0,K.jsxs)(`div`,{className:G.actionGrid,children:[(0,K.jsxs)(`button`,{className:`btn btn-secondary`,disabled:!Y.includes(`look`),onClick:()=>$(`look`),children:[(0,K.jsx)(re,{size:16}),e(`game.zhajinhua.action.look`)]}),(0,K.jsx)(`button`,{className:`btn btn-secondary`,disabled:!Y.includes(`call`),onClick:()=>$(`call`),children:e(`game.zhajinhua.action.call`)}),(0,K.jsx)(`button`,{className:`btn btn-secondary`,disabled:!Y.includes(`fold`),onClick:()=>$(`fold`),children:e(`game.zhajinhua.action.fold`)})]}),(0,K.jsxs)(`div`,{className:G.raiseRow,children:[(0,K.jsx)(`select`,{className:`input input-compact`,value:C,onChange:e=>w(Number(e.target.value)),children:ce.map(t=>(0,K.jsx)(`option`,{value:t,children:e(`game.zhajinhua.action.raiseOption`,{amount:t})},t))}),(0,K.jsx)(`button`,{className:`btn btn-secondary`,disabled:!Y.includes(`raise`),onClick:()=>$(`raise`,{amount:C}),children:e(`game.zhajinhua.action.raise`)})]}),(0,K.jsxs)(`div`,{className:G.raiseRow,children:[(0,K.jsxs)(`select`,{className:`input input-compact`,value:T,onChange:e=>E(e.target.value),children:[(0,K.jsx)(`option`,{value:``,children:e(`game.zhajinhua.action.comparePlaceholder`)}),Pe.map(e=>(0,K.jsx)(`option`,{value:e.address,children:X(e.address,Pe,j.presenceByAddress)},e.address))]}),(0,K.jsx)(`button`,{className:`btn btn-secondary`,disabled:!Y.includes(`compare`)||!T,onClick:()=>$(`compare`,{target:T}),children:e(`game.zhajinhua.action.compare`)})]})]}),(0,K.jsxs)(`div`,{className:G.panelSection,children:[(0,K.jsx)(`div`,{className:G.panelTitle,children:e(`game.status.title`)}),(0,K.jsxs)(`div`,{className:G.statusGrid,children:[(0,K.jsx)(`span`,{children:e(`game.host`)}),(0,K.jsx)(`strong`,{children:I?Se(I):`-`}),(0,K.jsx)(`span`,{children:e(`game.zhajinhua.myChips`)}),(0,K.jsx)(`strong`,{children:ye?.chips??1e3}),(0,K.jsx)(`span`,{children:e(`game.round`)}),(0,K.jsx)(`strong`,{children:Ne}),(0,K.jsx)(`span`,{children:e(`game.hint`)}),(0,K.jsx)(`strong`,{children:F?.lastAction||e(`game.waitingPlayers`)})]})]})]})]}):(0,K.jsxs)(`section`,{className:G.entry,children:[(0,K.jsxs)(`div`,{className:G.entryBrand,children:[(0,K.jsx)(`div`,{className:G.cardMark,children:(0,K.jsx)(m,{size:48})}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h1`,{children:e(`game.zhajinhua.hero.title`)}),(0,K.jsx)(`p`,{children:e(`game.hero.desc`)})]})]}),(0,K.jsxs)(`div`,{className:G.entryPanel,children:[(0,K.jsxs)(`div`,{className:G.accountLine,children:[(0,K.jsx)(`span`,{children:e(`game.currentAccount`)}),(0,K.jsx)(`strong`,{translate:`no`,children:j.userIdentity?.displayName||e(`web3.notSignedIn`)})]}),(0,K.jsxs)(`button`,{className:`btn btn-primary`,disabled:j.joining,onClick:Oe,children:[(0,K.jsx)(ee,{size:16}),e(`game.action.createRoom`)]}),(0,K.jsxs)(`form`,{onSubmit:ke,className:G.joinForm,children:[(0,K.jsxs)(`label`,{children:[e(`game.roomCode`),(0,K.jsx)(`input`,{value:_,maxLength:8,onChange:e=>v(e.target.value.toUpperCase()),placeholder:e(`game.roomCode.placeholder`)})]}),(0,K.jsx)(`button`,{className:`btn`,disabled:j.joining||!_,children:e(`game.action.joinRoom`)})]}),(0,K.jsx)(`p`,{className:G.status,children:j.isBackendReady?e(`game.status.nodeConnected`):e(`game.status.nodeConnecting`)})]})]})})})}function Te({lastCompare:e,compareReveal:t,myAddress:n,myDealtHand:r,lobbyPlayers:i,presenceByAddress:a,onClose:o}){let{t:s}=l(),c=X(e.initiator,i,a),u=X(e.target,i,a),d=X(e.winner,i,a),f=J(n,e.initiator),p=J(n,e.target),ee=f||p;function te(e,i){return t[e]||(ee&&J(e,n)&&i&&r?r:null)}let h=te(e.initiator,e.initiatorLooked),g=te(e.target,e.targetLooked);return(0,K.jsx)(`div`,{className:G.compareOverlay,onClick:o,children:(0,K.jsxs)(`div`,{className:G.compareBox,onClick:e=>e.stopPropagation(),children:[(0,K.jsx)(`div`,{className:G.compareTitle,children:s(`game.zhajinhua.compareResult`)}),(0,K.jsxs)(`div`,{className:G.comparePlayers,children:[(0,K.jsxs)(`div`,{className:q(G.compareSide,J(e.winner,e.initiator)&&G.compareWinner),children:[(0,K.jsx)(`div`,{className:G.compareName,children:c}),(0,K.jsx)(`div`,{className:G.compareCards,children:h?h.map(e=>{let t=we(e);return(0,K.jsxs)(`div`,{className:q(G.card,G[t.color]),children:[(0,K.jsx)(`span`,{children:t.rank}),(0,K.jsx)(`i`,{children:t.suit})]},e)}):[0,1,2].map(e=>(0,K.jsx)(`div`,{className:G.cardBack,children:(0,K.jsx)(m,{size:18})},e))}),h&&(0,K.jsx)(`div`,{className:G.compareLabel,children:pe(h)})]}),(0,K.jsx)(`div`,{className:G.compareVs,children:`VS`}),(0,K.jsxs)(`div`,{className:q(G.compareSide,J(e.winner,e.target)&&G.compareWinner),children:[(0,K.jsx)(`div`,{className:G.compareName,children:u}),(0,K.jsx)(`div`,{className:G.compareCards,children:g?g.map(e=>{let t=we(e);return(0,K.jsxs)(`div`,{className:q(G.card,G[t.color]),children:[(0,K.jsx)(`span`,{children:t.rank}),(0,K.jsx)(`i`,{children:t.suit})]},e)}):[0,1,2].map(e=>(0,K.jsx)(`div`,{className:G.cardBack,children:(0,K.jsx)(m,{size:18})},e))}),g&&(0,K.jsx)(`div`,{className:G.compareLabel,children:pe(g)})]})]}),(0,K.jsx)(`div`,{className:G.compareResult,children:s(`game.zhajinhua.result.winner`,{player:d})}),(0,K.jsx)(`button`,{className:`btn btn-sm`,onClick:o,children:s(`common.close`)})]})})}function X(e,t,n){let r=Z(e);return n.get(r)?.displayName||t.find(e=>Z(e.address)===r)?.name||Se(e)}function Z(e=``){return String(e||``).trim().toLowerCase()}function Ee(e,t,n){let r=Z(e.address),i=t.get(r);return{name:X(e.address,[e],t),avatar:i?.avatar||e.avatar||``,online:r?n.has(r):!1}}var Q=i(`/game/zhajinhua/`)({component:Y});export{Q as Route};
@@ -1,3 +1,3 @@
1
- import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{C as r,T as i,_ as a,d as o,g as s,l as c,m as l,s as u,u as d,y as f}from"./ui-BpDGD3IR.js";import{a as p}from"./i18n-NjvOSuV6.js";import{n as m,r as h}from"./LanguageToggle-CSQtRZ3A.js";import{n as g,t as _}from"./lock-CLIE8cct.js";import{t as v}from"./download-jEPn2njL.js";import{t as y}from"./external-link-BFaoZeK0.js";import{a as b,i as x,n as S,r as C,t as w}from"./mp-B6kdA94c.js";import{t as T}from"./key-round-DNcpSuMw.js";import{n as ee,t as te}from"./SidebarHomeLink-DXv0c9Ob.js";import{t as ne}from"./wallet-T7ONZ3Kg.js";import{N as E,P as D,c as re,i as ie}from"./index-BI8oNSVC.js";var O=r(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),ae=r(`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`}]]),oe=r(`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`}]]),se=r(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),ce=r(`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`}]]),k=t(e()),A=n();function le(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function ue({title:e,username:t,password:n,showPassword:r,showPrivateKey:i,account:a,onUsernameChange:o,onPasswordChange:s,onTogglePassword:c,onTogglePrivateKey:l,onGenerate:u}){let{t:d}=p();return(0,A.jsxs)(`div`,{className:`web3-box-account`,children:[(0,A.jsx)(`div`,{className:`web3-box-account-header`,children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{children:e}),(0,A.jsx)(`p`,{children:d(`web3.box.account.desc`)})]})}),(0,A.jsxs)(`div`,{className:`web3-box-login`,children:[(0,A.jsx)(`input`,{type:`text`,placeholder:d(`login.username.placeholder`),value:t,onChange:e=>o(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,A.jsxs)(`div`,{className:`input-wrap`,children:[(0,A.jsx)(`input`,{type:r?`text`:`password`,placeholder:d(`web3.login.passwordOptional`),value:n,onChange:e=>s(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,A.jsx)(`button`,{className:`input-eye`,onClick:c,type:`button`,children:r?(0,A.jsx)(D,{size:16}):(0,A.jsx)(E,{size:16})})]}),(0,A.jsxs)(`button`,{className:`btn btn-primary btn-full`,onClick:u,disabled:!t.trim(),type:`button`,children:[(0,A.jsx)(T,{size:16}),d(`web3.box.account.generate`)]})]}),a?(0,A.jsxs)(`div`,{className:`web3-box-key-list`,children:[(0,A.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,A.jsx)(`span`,{children:d(`web3.label.address`)}),(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:a.address.toLowerCase()}),(0,A.jsx)(C,{text:a.address.toLowerCase()})]})]}),(0,A.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,A.jsx)(`span`,{children:d(`web3.label.x25519Public`)}),(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:a.publicKey}),(0,A.jsx)(C,{text:a.publicKey})]})]}),(0,A.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,A.jsx)(`span`,{children:d(`web3.label.x25519Private`)}),(0,A.jsxs)(`div`,{className:`mono-row danger`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:i?a.privateKey:le(a.privateKey)}),(0,A.jsx)(`button`,{className:`btn btn-icon`,onClick:l,title:d(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,A.jsx)(E,{size:14}):(0,A.jsx)(D,{size:14})})]})]})]}):null]})}function de(e,t){return Number.isFinite(e)?t(e):`-`}function fe({title:e,description:t,message:n,cipherText:r,decryptedText:i,error:o,encryptLabel:s,decryptLabel:c,messagePlaceholder:l,cipherPlaceholder:u,onMessageChange:d,onCipherTextChange:f,onEncrypt:m,onDecrypt:h}){let{t:g,formatDateTime:v}=p(),y=`box-message-${e.replaceAll(/\s+/g,`-`)}`,b=a(r);return(0,A.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,A.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{children:e}),(0,A.jsx)(`p`,{children:t})]})}),(0,A.jsx)(`label`,{className:`web3-box-label`,htmlFor:y,children:g(`web3.box.plaintext`)}),(0,A.jsx)(`textarea`,{id:y,className:`textarea`,value:n,onChange:e=>d(e.target.value),rows:4,placeholder:l,translate:`no`}),(0,A.jsxs)(`div`,{className:`web3-box-actions`,children:[(0,A.jsxs)(`button`,{className:`btn btn-primary`,onClick:m,type:`button`,children:[(0,A.jsx)(_,{size:16}),s]}),(0,A.jsxs)(`button`,{className:`btn btn-secondary`,onClick:h,type:`button`,children:[(0,A.jsx)(T,{size:16}),c]})]}),o&&(0,A.jsx)(`p`,{className:`web3-tools-danger`,children:o}),(0,A.jsxs)(`div`,{className:`web3-box-result-grid`,children:[(0,A.jsxs)(`div`,{className:`web3-box-result`,children:[(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:g(`web3.box.ciphertext`)})}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:r,onChange:e=>f(e.target.value),rows:5,placeholder:u,translate:`no`})]}),(0,A.jsxs)(`div`,{className:`web3-box-result`,children:[(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:g(`web3.box.decryptResult`)})}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:i,readOnly:!0,rows:5,placeholder:g(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]}),b&&(0,A.jsxs)(`div`,{className:`web3-box-token-meta`,children:[(0,A.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,A.jsx)(`span`,{children:g(`web3.box.timestamp`)}),(0,A.jsx)(`code`,{translate:`no`,children:de(b.timestampMs,v)})]}),(0,A.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,A.jsx)(`span`,{children:g(`web3.box.nonce`)}),(0,A.jsx)(`code`,{translate:`no`,children:b.nonce})]})]})]})}function pe(e){let{t}=p();return(0,A.jsxs)(`div`,{className:`web3-box-workspace`,children:[(0,A.jsxs)(`div`,{className:`web3-box-grid`,children:[(0,A.jsx)(ue,{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,A.jsx)(ue,{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,A.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,A.jsx)(fe,{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,A.jsx)(fe,{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,A.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,A.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,A.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{children:t(`web3.box.encryptTitle`)}),(0,A.jsx)(`p`,{children:t(`web3.box.encryptDesc`)})]})}),(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,A.jsxs)(`div`,{className:`input-wrap`,children:[(0,A.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,A.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxEncryptShowPrivateKeyToggle,type:`button`,children:e.boxEncryptShowPrivateKey?(0,A.jsx)(D,{size:16}):(0,A.jsx)(E,{size:16})})]}),(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,A.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,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.plaintext`)})}),(0,A.jsx)(`textarea`,{className:`textarea`,value:e.boxEncryptMessage,onChange:t=>e.onBoxEncryptMessageChange(t.target.value),rows:4,placeholder:t(`web3.box.messagePlaceholder`),translate:`no`}),(0,A.jsx)(`div`,{className:`web3-box-actions`,children:(0,A.jsxs)(`button`,{className:`btn btn-primary`,onClick:e.onEncryptOnly,type:`button`,children:[(0,A.jsx)(_,{size:16}),t(`web3.box.encryptTitle`)]})}),e.boxEncryptError&&(0,A.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxEncryptError}),(0,A.jsxs)(`div`,{className:`web3-box-result`,children:[(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:e.boxEncryptCipherText,readOnly:!0,rows:5,placeholder:t(`web3.box.encryptResultPlaceholder`),translate:`no`})]})]}),(0,A.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,A.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{children:t(`web3.box.decryptTitle`)}),(0,A.jsx)(`p`,{children:t(`web3.box.decryptDesc`)})]})}),(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,A.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,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,A.jsxs)(`div`,{className:`input-wrap`,children:[(0,A.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,A.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxDecryptShowPrivateKeyToggle,type:`button`,children:e.boxDecryptShowPrivateKey?(0,A.jsx)(D,{size:16}):(0,A.jsx)(E,{size:16})})]}),(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,A.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,A.jsx)(`div`,{className:`web3-box-actions`,children:(0,A.jsxs)(`button`,{className:`btn btn-secondary`,onClick:e.onDecryptOnly,type:`button`,children:[(0,A.jsx)(T,{size:16}),t(`web3.box.decryptTitle`)]})}),e.boxDecryptError&&(0,A.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxDecryptError}),(0,A.jsxs)(`div`,{className:`web3-box-result`,children:[(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.decryptResult`)})}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptResult,readOnly:!0,rows:5,placeholder:t(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]})]})]})}function j({icon:e,message:t,className:n=`empty-state glass`}){return(0,A.jsxs)(`div`,{className:n,children:[(0,A.jsx)(`div`,{className:`empty-state-icon`,children:e}),(0,A.jsx)(`p`,{children:t})]})}function M({label:e,pem:t,filename:n}){let{t:r}=p();function i(){let e=new Blob([t],{type:`text/plain`}),r=URL.createObjectURL(e),i=document.createElement(`a`);i.href=r,i.download=n,i.click(),URL.revokeObjectURL(r)}return(0,A.jsxs)(`div`,{className:`web3-pem-block`,children:[(0,A.jsxs)(`div`,{className:`web3-pem-header`,children:[(0,A.jsx)(`span`,{className:`web3-pem-label`,children:e}),(0,A.jsxs)(`div`,{className:`web3-pem-actions`,children:[(0,A.jsx)(C,{text:t,label:r(`common.copy`),className:`btn btn-sm`,iconSize:14}),(0,A.jsxs)(`button`,{type:`button`,className:`btn btn-sm btn-primary`,onClick:i,title:r(`common.download`),children:[(0,A.jsx)(v,{size:14}),r(`common.download`)]})]})]}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:t,readOnly:!0,rows:6,translate:`no`})]})}function me({walletResult:e,publicPem:t,privatePem:n}){let{t:r}=p();if(!t||!n)return(0,A.jsx)(j,{icon:(0,A.jsx)(_,{size:36}),message:r(`web3.empty.pem`)});let i=e?.username||`wallet`;return(0,A.jsxs)(`div`,{className:`web3-pem-list`,children:[(0,A.jsx)(M,{label:`${i}.pub`,pem:t,filename:`${i}.pub`}),(0,A.jsx)(M,{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=k.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}=k.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=k.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,_=k.useRef(null),v=k.useRef(null),y=k.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=k.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});k.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)}}),k.useEffect(()=>{x(!1)},[g]);let ee=L({height:i,width:i},m),te=null;return g!=null&&(te=k.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),k.createElement(k.Fragment,null,k.createElement(`canvas`,L({style:ee,height:i,width:i,ref:y,role:`img`},h)),te)});Te.displayName=`QRCodeCanvas`;var J=k.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=k.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 k.createElement(`svg`,L({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&k.createElement(`title`,null,d),k.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),k.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:a,deriveShowPrivateKey:o,showAddressQr:s,showMnemonicReveal:c,showMnemonicQr:l,onToggleAddressQr:u,onToggleMnemonicReveal:d,onToggleMnemonicQr:f,onToggleDeriveIndex:m,onToggleDeriveAddress:h,onToggleDerivePrivateKey:_,onDerive:v}){let{t:y}=p(),b=e?.address||``;return!e||!b?(0,A.jsx)(j,{icon:(0,A.jsx)(ne,{size:36}),message:y(`web3.empty.walletTools`)}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,A.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:u,children:[(0,A.jsx)(oe,{size:14}),y(s?`web3.action.hideAddressQr`:`web3.action.showAddressQr`),s?(0,A.jsx)(O,{size:14}):(0,A.jsx)(g,{size:14})]}),s&&(0,A.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,A.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,A.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:b}),(0,A.jsx)(C,{text:b})]}),(0,A.jsx)(`div`,{className:`qr-wrap`,children:(0,A.jsx)(J,{value:b,size:200})})]})]}),t&&(0,A.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,A.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:d,children:[(0,A.jsx)(T,{size:14}),y(c?`web3.action.hideMnemonic`:`web3.action.showMnemonic`),c?(0,A.jsx)(O,{size:14}):(0,A.jsx)(g,{size:14})]}),c&&(0,A.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,A.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,A.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:t}),(0,A.jsx)(C,{text:t})]}),(0,A.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,A.jsx)(se,{size:14}),y(`web3.warning.mnemonic`)]}),(0,A.jsx)(`button`,{className:`web3-tools-toggle`,onClick:f,children:y(l?`web3.action.hideMnemonicQr`:`web3.action.showMnemonicQr`)}),l&&(0,A.jsx)(`div`,{className:`qr-wrap`,children:(0,A.jsx)(J,{value:t,size:260})})]})]}),t&&(0,A.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,A.jsx)(`div`,{children:(0,A.jsx)(`button`,{className:`btn btn-primary`,onClick:v,children:y(`web3.action.deriveAddresses`,{count:n})})}),(0,A.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,A.jsx)(se,{size:14}),y(`web3.warning.privateKey`)]}),r.length>0&&(0,A.jsx)(`div`,{className:`web3-derive-table-wrap`,children:(0,A.jsxs)(`table`,{className:`web3-derive-table`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{onClick:m,className:`web3-derive-th`,children:y(`web3.label.account`)}),(0,A.jsx)(`th`,{onClick:h,className:`web3-derive-th`,children:y(`web3.label.address`)}),(0,A.jsx)(`th`,{onClick:_,className:`web3-derive-th danger`,children:y(`web3.label.privateKeyToggle`,{action:y(o?`web3.action.hide`:`web3.action.show`)})})]})}),(0,A.jsx)(`tbody`,{children:r.map(e=>(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:i?e.index+1:``}),(0,A.jsx)(`td`,{translate:`no`,children:a?e.address:``}),(0,A.jsx)(`td`,{className:`danger`,children:(0,A.jsx)(`span`,{translate:`no`,children:o?e.privateKey:``})})]},e.index))})]})})]})]})}function Y({title:e,icon:t,children:n,accent:r=!1}){return(0,A.jsxs)(`div`,{className:`web3-key-card ${r?`accent`:``}`,children:[(0,A.jsxs)(`div`,{className:`web3-key-card-header`,children:[(0,A.jsx)(`span`,{className:`web3-key-card-icon`,children:t}),(0,A.jsx)(`span`,{className:`web3-key-card-title`,children:e})]}),(0,A.jsx)(`div`,{className:`web3-key-card-body`,translate:`no`,children:n})]})}function De(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function Oe({walletResult:e,keys:t,ipns:n,avatarSrc:r,showPrivateKey:i,onTogglePrivateKey:a}){let{t:o}=p(),s=e?.address||``;return!e||!s?(0,A.jsx)(j,{icon:(0,A.jsx)(x,{size:36}),message:o(`web3.empty.identity`)}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`web3-identity-card`,children:[(0,A.jsx)(`img`,{src:r,alt:`avatar`,className:`web3-identity-avatar`}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h1`,{className:`web3-identity-name`,children:e.username||o(`web3.notSignedIn`)}),(0,A.jsxs)(`div`,{className:`web3-identity-address`,children:[(0,A.jsx)(`code`,{translate:`no`,children:s.toLowerCase()}),(0,A.jsx)(C,{text:s.toLowerCase()}),(0,A.jsxs)(`a`,{href:`https://debank.com/profile/${s}`,target:`_blank`,rel:`noopener noreferrer`,className:`link`,children:[(0,A.jsx)(y,{size:14}),o(`web3.action.view`)]})]})]})]}),t&&(0,A.jsxs)(`div`,{className:`web3-key-grid`,children:[(0,A.jsx)(Y,{title:o(`web3.label.ed25519Public`),icon:(0,A.jsx)(b,{size:18}),children:(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:t.ed_public_key}),(0,A.jsx)(C,{text:t.ed_public_key})]})}),(0,A.jsx)(Y,{title:o(`web3.label.x25519Public`),icon:(0,A.jsx)(T,{size:18}),children:(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:t.public_key}),(0,A.jsx)(C,{text:t.public_key})]})}),(0,A.jsx)(Y,{title:o(`web3.label.combinedPrivate`),icon:(0,A.jsx)(ce,{size:18}),accent:!0,children:(0,A.jsxs)(`div`,{className:`mono-row danger`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:i?t.private_key:De(t.private_key)}),(0,A.jsx)(`button`,{className:`btn btn-icon`,onClick:a,title:o(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,A.jsx)(E,{size:14}):(0,A.jsx)(D,{size:14})})]})}),(0,A.jsx)(Y,{title:`IPNS ID`,icon:(0,A.jsx)(ae,{size:18}),children:(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:n}),(0,A.jsx)(C,{text:n})]})})]})]})}function ke({username:e,password:t,showPassword:n,generating:r,onUsernameChange:i,onPasswordChange:a,onTogglePassword:o,onGenerate:s}){let{t:c}=p();return(0,A.jsxs)(`div`,{className:`input-panel`,children:[(0,A.jsxs)(`div`,{className:`web3-tools-inputs`,children:[(0,A.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,A.jsxs)(`div`,{className:`input-wrap`,children:[(0,A.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,A.jsx)(`button`,{className:`input-eye`,onClick:o,type:`button`,children:n?(0,A.jsx)(D,{size:16}):(0,A.jsx)(E,{size:16})})]})]}),(0,A.jsx)(`button`,{className:`btn btn-primary btn-full`,onClick:s,disabled:!e.trim()||r,type:`button`,children:r?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{className:`spinner`}),c(`web3.login.generating`)]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ne,{size:16}),c(`web3.login.generateAndSignIn`)]})})]})}var X=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${X(a).match(/.{1,64}/g)?.join(`
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{C as r,T as i,_ as a,d as o,g as s,l as c,m as l,s as u,u as d,y as f}from"./ui-BpDGD3IR.js";import{a as p}from"./i18n-NjvOSuV6.js";import{n as m,r as h}from"./LanguageToggle-CSQtRZ3A.js";import{n as g,t as _}from"./lock-CLIE8cct.js";import{t as v}from"./download-jEPn2njL.js";import{t as y}from"./external-link-BFaoZeK0.js";import{a as b,i as x,n as S,r as C,t as w}from"./mp-B6kdA94c.js";import{t as T}from"./key-round-DNcpSuMw.js";import{n as ee,t as te}from"./SidebarHomeLink-qMFEGjZt.js";import{t as ne}from"./wallet-T7ONZ3Kg.js";import{N as E,P as D,c as re,i as ie}from"./index-C-_ZwxuN.js";var O=r(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),ae=r(`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`}]]),oe=r(`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`}]]),se=r(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),ce=r(`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`}]]),k=t(e()),A=n();function le(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function ue({title:e,username:t,password:n,showPassword:r,showPrivateKey:i,account:a,onUsernameChange:o,onPasswordChange:s,onTogglePassword:c,onTogglePrivateKey:l,onGenerate:u}){let{t:d}=p();return(0,A.jsxs)(`div`,{className:`web3-box-account`,children:[(0,A.jsx)(`div`,{className:`web3-box-account-header`,children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{children:e}),(0,A.jsx)(`p`,{children:d(`web3.box.account.desc`)})]})}),(0,A.jsxs)(`div`,{className:`web3-box-login`,children:[(0,A.jsx)(`input`,{type:`text`,placeholder:d(`login.username.placeholder`),value:t,onChange:e=>o(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,A.jsxs)(`div`,{className:`input-wrap`,children:[(0,A.jsx)(`input`,{type:r?`text`:`password`,placeholder:d(`web3.login.passwordOptional`),value:n,onChange:e=>s(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,A.jsx)(`button`,{className:`input-eye`,onClick:c,type:`button`,children:r?(0,A.jsx)(D,{size:16}):(0,A.jsx)(E,{size:16})})]}),(0,A.jsxs)(`button`,{className:`btn btn-primary btn-full`,onClick:u,disabled:!t.trim(),type:`button`,children:[(0,A.jsx)(T,{size:16}),d(`web3.box.account.generate`)]})]}),a?(0,A.jsxs)(`div`,{className:`web3-box-key-list`,children:[(0,A.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,A.jsx)(`span`,{children:d(`web3.label.address`)}),(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:a.address.toLowerCase()}),(0,A.jsx)(C,{text:a.address.toLowerCase()})]})]}),(0,A.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,A.jsx)(`span`,{children:d(`web3.label.x25519Public`)}),(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:a.publicKey}),(0,A.jsx)(C,{text:a.publicKey})]})]}),(0,A.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,A.jsx)(`span`,{children:d(`web3.label.x25519Private`)}),(0,A.jsxs)(`div`,{className:`mono-row danger`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:i?a.privateKey:le(a.privateKey)}),(0,A.jsx)(`button`,{className:`btn btn-icon`,onClick:l,title:d(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,A.jsx)(E,{size:14}):(0,A.jsx)(D,{size:14})})]})]})]}):null]})}function de(e,t){return Number.isFinite(e)?t(e):`-`}function fe({title:e,description:t,message:n,cipherText:r,decryptedText:i,error:o,encryptLabel:s,decryptLabel:c,messagePlaceholder:l,cipherPlaceholder:u,onMessageChange:d,onCipherTextChange:f,onEncrypt:m,onDecrypt:h}){let{t:g,formatDateTime:v}=p(),y=`box-message-${e.replaceAll(/\s+/g,`-`)}`,b=a(r);return(0,A.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,A.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{children:e}),(0,A.jsx)(`p`,{children:t})]})}),(0,A.jsx)(`label`,{className:`web3-box-label`,htmlFor:y,children:g(`web3.box.plaintext`)}),(0,A.jsx)(`textarea`,{id:y,className:`textarea`,value:n,onChange:e=>d(e.target.value),rows:4,placeholder:l,translate:`no`}),(0,A.jsxs)(`div`,{className:`web3-box-actions`,children:[(0,A.jsxs)(`button`,{className:`btn btn-primary`,onClick:m,type:`button`,children:[(0,A.jsx)(_,{size:16}),s]}),(0,A.jsxs)(`button`,{className:`btn btn-secondary`,onClick:h,type:`button`,children:[(0,A.jsx)(T,{size:16}),c]})]}),o&&(0,A.jsx)(`p`,{className:`web3-tools-danger`,children:o}),(0,A.jsxs)(`div`,{className:`web3-box-result-grid`,children:[(0,A.jsxs)(`div`,{className:`web3-box-result`,children:[(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:g(`web3.box.ciphertext`)})}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:r,onChange:e=>f(e.target.value),rows:5,placeholder:u,translate:`no`})]}),(0,A.jsxs)(`div`,{className:`web3-box-result`,children:[(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:g(`web3.box.decryptResult`)})}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:i,readOnly:!0,rows:5,placeholder:g(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]}),b&&(0,A.jsxs)(`div`,{className:`web3-box-token-meta`,children:[(0,A.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,A.jsx)(`span`,{children:g(`web3.box.timestamp`)}),(0,A.jsx)(`code`,{translate:`no`,children:de(b.timestampMs,v)})]}),(0,A.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,A.jsx)(`span`,{children:g(`web3.box.nonce`)}),(0,A.jsx)(`code`,{translate:`no`,children:b.nonce})]})]})]})}function pe(e){let{t}=p();return(0,A.jsxs)(`div`,{className:`web3-box-workspace`,children:[(0,A.jsxs)(`div`,{className:`web3-box-grid`,children:[(0,A.jsx)(ue,{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,A.jsx)(ue,{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,A.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,A.jsx)(fe,{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,A.jsx)(fe,{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,A.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,A.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,A.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{children:t(`web3.box.encryptTitle`)}),(0,A.jsx)(`p`,{children:t(`web3.box.encryptDesc`)})]})}),(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,A.jsxs)(`div`,{className:`input-wrap`,children:[(0,A.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,A.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxEncryptShowPrivateKeyToggle,type:`button`,children:e.boxEncryptShowPrivateKey?(0,A.jsx)(D,{size:16}):(0,A.jsx)(E,{size:16})})]}),(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,A.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,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.plaintext`)})}),(0,A.jsx)(`textarea`,{className:`textarea`,value:e.boxEncryptMessage,onChange:t=>e.onBoxEncryptMessageChange(t.target.value),rows:4,placeholder:t(`web3.box.messagePlaceholder`),translate:`no`}),(0,A.jsx)(`div`,{className:`web3-box-actions`,children:(0,A.jsxs)(`button`,{className:`btn btn-primary`,onClick:e.onEncryptOnly,type:`button`,children:[(0,A.jsx)(_,{size:16}),t(`web3.box.encryptTitle`)]})}),e.boxEncryptError&&(0,A.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxEncryptError}),(0,A.jsxs)(`div`,{className:`web3-box-result`,children:[(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:e.boxEncryptCipherText,readOnly:!0,rows:5,placeholder:t(`web3.box.encryptResultPlaceholder`),translate:`no`})]})]}),(0,A.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,A.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{children:t(`web3.box.decryptTitle`)}),(0,A.jsx)(`p`,{children:t(`web3.box.decryptDesc`)})]})}),(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,A.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,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,A.jsxs)(`div`,{className:`input-wrap`,children:[(0,A.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,A.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxDecryptShowPrivateKeyToggle,type:`button`,children:e.boxDecryptShowPrivateKey?(0,A.jsx)(D,{size:16}):(0,A.jsx)(E,{size:16})})]}),(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,A.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,A.jsx)(`div`,{className:`web3-box-actions`,children:(0,A.jsxs)(`button`,{className:`btn btn-secondary`,onClick:e.onDecryptOnly,type:`button`,children:[(0,A.jsx)(T,{size:16}),t(`web3.box.decryptTitle`)]})}),e.boxDecryptError&&(0,A.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxDecryptError}),(0,A.jsxs)(`div`,{className:`web3-box-result`,children:[(0,A.jsx)(`label`,{className:`web3-box-result-header`,children:(0,A.jsx)(`span`,{children:t(`web3.box.decryptResult`)})}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptResult,readOnly:!0,rows:5,placeholder:t(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]})]})]})}function j({icon:e,message:t,className:n=`empty-state glass`}){return(0,A.jsxs)(`div`,{className:n,children:[(0,A.jsx)(`div`,{className:`empty-state-icon`,children:e}),(0,A.jsx)(`p`,{children:t})]})}function M({label:e,pem:t,filename:n}){let{t:r}=p();function i(){let e=new Blob([t],{type:`text/plain`}),r=URL.createObjectURL(e),i=document.createElement(`a`);i.href=r,i.download=n,i.click(),URL.revokeObjectURL(r)}return(0,A.jsxs)(`div`,{className:`web3-pem-block`,children:[(0,A.jsxs)(`div`,{className:`web3-pem-header`,children:[(0,A.jsx)(`span`,{className:`web3-pem-label`,children:e}),(0,A.jsxs)(`div`,{className:`web3-pem-actions`,children:[(0,A.jsx)(C,{text:t,label:r(`common.copy`),className:`btn btn-sm`,iconSize:14}),(0,A.jsxs)(`button`,{type:`button`,className:`btn btn-sm btn-primary`,onClick:i,title:r(`common.download`),children:[(0,A.jsx)(v,{size:14}),r(`common.download`)]})]})]}),(0,A.jsx)(`textarea`,{className:`textarea mono`,value:t,readOnly:!0,rows:6,translate:`no`})]})}function me({walletResult:e,publicPem:t,privatePem:n}){let{t:r}=p();if(!t||!n)return(0,A.jsx)(j,{icon:(0,A.jsx)(_,{size:36}),message:r(`web3.empty.pem`)});let i=e?.username||`wallet`;return(0,A.jsxs)(`div`,{className:`web3-pem-list`,children:[(0,A.jsx)(M,{label:`${i}.pub`,pem:t,filename:`${i}.pub`}),(0,A.jsx)(M,{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=k.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}=k.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=k.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,_=k.useRef(null),v=k.useRef(null),y=k.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=k.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});k.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)}}),k.useEffect(()=>{x(!1)},[g]);let ee=L({height:i,width:i},m),te=null;return g!=null&&(te=k.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),k.createElement(k.Fragment,null,k.createElement(`canvas`,L({style:ee,height:i,width:i,ref:y,role:`img`},h)),te)});Te.displayName=`QRCodeCanvas`;var J=k.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=k.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 k.createElement(`svg`,L({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&k.createElement(`title`,null,d),k.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),k.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:a,deriveShowPrivateKey:o,showAddressQr:s,showMnemonicReveal:c,showMnemonicQr:l,onToggleAddressQr:u,onToggleMnemonicReveal:d,onToggleMnemonicQr:f,onToggleDeriveIndex:m,onToggleDeriveAddress:h,onToggleDerivePrivateKey:_,onDerive:v}){let{t:y}=p(),b=e?.address||``;return!e||!b?(0,A.jsx)(j,{icon:(0,A.jsx)(ne,{size:36}),message:y(`web3.empty.walletTools`)}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,A.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:u,children:[(0,A.jsx)(oe,{size:14}),y(s?`web3.action.hideAddressQr`:`web3.action.showAddressQr`),s?(0,A.jsx)(O,{size:14}):(0,A.jsx)(g,{size:14})]}),s&&(0,A.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,A.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,A.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:b}),(0,A.jsx)(C,{text:b})]}),(0,A.jsx)(`div`,{className:`qr-wrap`,children:(0,A.jsx)(J,{value:b,size:200})})]})]}),t&&(0,A.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,A.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:d,children:[(0,A.jsx)(T,{size:14}),y(c?`web3.action.hideMnemonic`:`web3.action.showMnemonic`),c?(0,A.jsx)(O,{size:14}):(0,A.jsx)(g,{size:14})]}),c&&(0,A.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,A.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,A.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:t}),(0,A.jsx)(C,{text:t})]}),(0,A.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,A.jsx)(se,{size:14}),y(`web3.warning.mnemonic`)]}),(0,A.jsx)(`button`,{className:`web3-tools-toggle`,onClick:f,children:y(l?`web3.action.hideMnemonicQr`:`web3.action.showMnemonicQr`)}),l&&(0,A.jsx)(`div`,{className:`qr-wrap`,children:(0,A.jsx)(J,{value:t,size:260})})]})]}),t&&(0,A.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,A.jsx)(`div`,{children:(0,A.jsx)(`button`,{className:`btn btn-primary`,onClick:v,children:y(`web3.action.deriveAddresses`,{count:n})})}),(0,A.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,A.jsx)(se,{size:14}),y(`web3.warning.privateKey`)]}),r.length>0&&(0,A.jsx)(`div`,{className:`web3-derive-table-wrap`,children:(0,A.jsxs)(`table`,{className:`web3-derive-table`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{onClick:m,className:`web3-derive-th`,children:y(`web3.label.account`)}),(0,A.jsx)(`th`,{onClick:h,className:`web3-derive-th`,children:y(`web3.label.address`)}),(0,A.jsx)(`th`,{onClick:_,className:`web3-derive-th danger`,children:y(`web3.label.privateKeyToggle`,{action:y(o?`web3.action.hide`:`web3.action.show`)})})]})}),(0,A.jsx)(`tbody`,{children:r.map(e=>(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:i?e.index+1:``}),(0,A.jsx)(`td`,{translate:`no`,children:a?e.address:``}),(0,A.jsx)(`td`,{className:`danger`,children:(0,A.jsx)(`span`,{translate:`no`,children:o?e.privateKey:``})})]},e.index))})]})})]})]})}function Y({title:e,icon:t,children:n,accent:r=!1}){return(0,A.jsxs)(`div`,{className:`web3-key-card ${r?`accent`:``}`,children:[(0,A.jsxs)(`div`,{className:`web3-key-card-header`,children:[(0,A.jsx)(`span`,{className:`web3-key-card-icon`,children:t}),(0,A.jsx)(`span`,{className:`web3-key-card-title`,children:e})]}),(0,A.jsx)(`div`,{className:`web3-key-card-body`,translate:`no`,children:n})]})}function De(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function Oe({walletResult:e,keys:t,ipns:n,avatarSrc:r,showPrivateKey:i,onTogglePrivateKey:a}){let{t:o}=p(),s=e?.address||``;return!e||!s?(0,A.jsx)(j,{icon:(0,A.jsx)(x,{size:36}),message:o(`web3.empty.identity`)}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`web3-identity-card`,children:[(0,A.jsx)(`img`,{src:r,alt:`avatar`,className:`web3-identity-avatar`}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h1`,{className:`web3-identity-name`,children:e.username||o(`web3.notSignedIn`)}),(0,A.jsxs)(`div`,{className:`web3-identity-address`,children:[(0,A.jsx)(`code`,{translate:`no`,children:s.toLowerCase()}),(0,A.jsx)(C,{text:s.toLowerCase()}),(0,A.jsxs)(`a`,{href:`https://debank.com/profile/${s}`,target:`_blank`,rel:`noopener noreferrer`,className:`link`,children:[(0,A.jsx)(y,{size:14}),o(`web3.action.view`)]})]})]})]}),t&&(0,A.jsxs)(`div`,{className:`web3-key-grid`,children:[(0,A.jsx)(Y,{title:o(`web3.label.ed25519Public`),icon:(0,A.jsx)(b,{size:18}),children:(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:t.ed_public_key}),(0,A.jsx)(C,{text:t.ed_public_key})]})}),(0,A.jsx)(Y,{title:o(`web3.label.x25519Public`),icon:(0,A.jsx)(T,{size:18}),children:(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:t.public_key}),(0,A.jsx)(C,{text:t.public_key})]})}),(0,A.jsx)(Y,{title:o(`web3.label.combinedPrivate`),icon:(0,A.jsx)(ce,{size:18}),accent:!0,children:(0,A.jsxs)(`div`,{className:`mono-row danger`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:i?t.private_key:De(t.private_key)}),(0,A.jsx)(`button`,{className:`btn btn-icon`,onClick:a,title:o(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,A.jsx)(E,{size:14}):(0,A.jsx)(D,{size:14})})]})}),(0,A.jsx)(Y,{title:`IPNS ID`,icon:(0,A.jsx)(ae,{size:18}),children:(0,A.jsxs)(`div`,{className:`mono-row`,children:[(0,A.jsx)(`code`,{className:`mono`,translate:`no`,children:n}),(0,A.jsx)(C,{text:n})]})})]})]})}function ke({username:e,password:t,showPassword:n,generating:r,onUsernameChange:i,onPasswordChange:a,onTogglePassword:o,onGenerate:s}){let{t:c}=p();return(0,A.jsxs)(`div`,{className:`input-panel`,children:[(0,A.jsxs)(`div`,{className:`web3-tools-inputs`,children:[(0,A.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,A.jsxs)(`div`,{className:`input-wrap`,children:[(0,A.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,A.jsx)(`button`,{className:`input-eye`,onClick:o,type:`button`,children:n?(0,A.jsx)(D,{size:16}):(0,A.jsx)(E,{size:16})})]})]}),(0,A.jsx)(`button`,{className:`btn btn-primary btn-full`,onClick:s,disabled:!e.trim()||r,type:`button`,children:r?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{className:`spinner`}),c(`web3.login.generating`)]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ne,{size:16}),c(`web3.login.generateAndSignIn`)]})})]})}var X=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${X(a).match(/.{1,64}/g)?.join(`
2
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${X(i).match(/.{1,64}/g)?.join(`
3
3
  `)}\n-----END PUBLIC KEY-----`},Me=[`wallet`,`pem`,`export`,`EA`];function Ne(){let e=window.location.hash.replace(`#`,``);return Me.includes(e)?e:`wallet`}function Pe(){let{t:e}=p(),t=re(e=>e.isDarkMode),n=re(e=>e.setIsDarkMode),r=re(e=>e.addToast),i=u(e=>e.setUserIdentity),[a,g]=(0,k.useState)(`wallet`),[v,y]=(0,k.useState)(``),[b,C]=(0,k.useState)(``),[E,D]=(0,k.useState)(!1),[O,ae]=(0,k.useState)(null),[oe,se]=(0,k.useState)(null),[ce,le]=(0,k.useState)(``),[ue,de]=(0,k.useState)(``),[fe,j]=(0,k.useState)(``),[M,he]=(0,k.useState)(``),[N,P]=(0,k.useState)([]),[F,I]=(0,k.useState)(0),[L,R]=(0,k.useState)(!0),[z,B]=(0,k.useState)(!0),[ge,_e]=(0,k.useState)(!1),[V,H]=(0,k.useState)(!1),[U,W]=(0,k.useState)(!1),[G,ve]=(0,k.useState)(!1),[ye,be]=(0,k.useState)(!1),[xe,K]=(0,k.useState)(!1),[Se,Ce]=(0,k.useState)(``),[q,we]=(0,k.useState)(``),[Te,J]=(0,k.useState)(!1),[Y,De]=(0,k.useState)(!1),[X,Me]=(0,k.useState)(null),[Pe,Fe]=(0,k.useState)(``),[Ie,Le]=(0,k.useState)(``),[Re,ze]=(0,k.useState)(!1),[Be,Ve]=(0,k.useState)(!1),[Z,He]=(0,k.useState)(null),[Ue,We]=(0,k.useState)(`Hello B. This is from A.`),[Ge,Ke]=(0,k.useState)(``),[qe,Je]=(0,k.useState)(``),[Ye,Xe]=(0,k.useState)(``),[Ze,Qe]=(0,k.useState)(`Hello A. This is from B.`),[$e,et]=(0,k.useState)(``),[tt,nt]=(0,k.useState)(``),[rt,it]=(0,k.useState)(``),[at,ot]=(0,k.useState)(``),[st,ct]=(0,k.useState)(``),[lt,ut]=(0,k.useState)(``),[dt,ft]=(0,k.useState)(``),[pt,Q]=(0,k.useState)(``),[mt,ht]=(0,k.useState)(!1),[gt,_t]=(0,k.useState)(``),[vt,yt]=(0,k.useState)(``),[bt,xt]=(0,k.useState)(``),[St,Ct]=(0,k.useState)(``),[wt,$]=(0,k.useState)(``),[Tt,Et]=(0,k.useState)(!1);(0,k.useEffect)(()=>{g(Ne());let e=()=>g(Ne());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let Dt=e=>{g(e),window.location.hash=e},Ot=(0,k.useCallback)(async()=>{if(!v.trim())return;K(!0),await new Promise(e=>setTimeout(e,0));let t=s(v.trim(),b),n=`${t.username}#${t.address.slice(-4).toUpperCase()}`;ae(t),i({...t,displayName:n}),r(e(`login.toast.signedIn`,{username:t.username}),`success`),he(l(t.danger));let a=c(t.danger);se(a),le(S(a.private_key,a.ed_public_key));let o=w(a.private_key,a.ed_public_key);de(Ae(o.secretKey)),j(je(o.publicKey)),P([]),I(0),H(!1),W(!1),ve(!1),be(!1),K(!1)},[r,b,i,e,v]);function kt(t,n,i){let a=t.trim();if(!a)return;let o=s(a,n),l=c(o.danger);i({username:o.username,address:o.address,publicKey:l.public_key,privateKey:l.private_key}),Je(``),Xe(``),nt(``),it(``),r(e(`web3.toast.accountGenerated`),`success`)}function At({senderAccount:t,recipientAccount:n,message:r,setCipherText:i,setDecryptedText:a,setError:s}){if(!t||!n){s(e(`web3.error.accountsRequired`));return}if(!r.trim()){s(e(`web3.error.messageRequired`));return}i(o(r,{senderPrivateKey:t.privateKey,recipientPublicKey:n.publicKey})),a(``),s(``)}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=d(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=d(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(o(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=f.fromPhrase(M,void 0,n);e.push({index:t,address:r.address,privateKey:r.privateKey})}P(t=>[...t,...e]),I(e=>e+10)},Ft=ie(O?.address||void 0),It=a===`wallet`?`web3.view.wallet`:a===`pem`?`web3.view.pem`:a===`EA`?`web3.view.asymmetric`:`web3.view.export`,Lt=[{id:`wallet`,icon:(0,A.jsx)(x,{size:16}),labelKey:`web3.view.wallet`},{id:`pem`,icon:(0,A.jsx)(_,{size:16}),labelKey:`web3.view.pem`},{id:`export`,icon:(0,A.jsx)(ne,{size:16}),labelKey:`web3.view.export`},{id:`EA`,icon:(0,A.jsx)(T,{size:16}),labelKey:`web3.view.asymmetric`}],Rt=a!==`EA`;return(0,A.jsx)(ee,{sidebar:({closeSidebar:t})=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(te,{onNavigate:t}),(0,A.jsx)(`nav`,{className:`sidebar-nav`,children:Lt.map(n=>(0,A.jsxs)(`button`,{onClick:()=>{Dt(n.id),t()},className:`sidebar-nav-btn ${a===n.id?`active`:``}`,children:[n.icon,(0,A.jsx)(`span`,{children:e(n.labelKey)})]},n.id))})]}),headerTitle:(0,A.jsx)(`h2`,{className:`header-title`,children:e(It)}),headerRight:(0,A.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>n(!t),title:e(`common.theme.toggle`),children:t?(0,A.jsx)(m,{size:16}):(0,A.jsx)(h,{size:16})}),children:(0,A.jsx)(`div`,{className:`web3-page`,children:(0,A.jsxs)(`div`,{className:`web3-container ${a===`EA`?`wide`:``}`,children:[Rt&&(0,A.jsx)(ke,{username:v,password:b,showPassword:E,generating:xe,onUsernameChange:y,onPasswordChange:C,onTogglePassword:()=>D(!E),onGenerate:Ot}),a===`wallet`&&(0,A.jsx)(Oe,{walletResult:O,keys:oe,ipns:ce,avatarSrc:Ft,showPrivateKey:ye,onTogglePrivateKey:()=>be(!ye)}),a===`pem`&&(0,A.jsx)(me,{walletResult:O,publicPem:fe,privatePem:ue}),a===`export`&&(0,A.jsx)(Ee,{walletResult:O,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}),a===`EA`&&(0,A.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:()=>De(!Y),onGenerateBoxA:()=>kt(Se,q,Me),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 Fe=i(`/web3/`)({component:Pe});export{Fe as Route};
@@ -1 +1 @@
1
- import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{C as r,S as i,T as a,a as o,n as s,r as ee,s as c}from"./ui-BpDGD3IR.js";import{a as te}from"./i18n-NjvOSuV6.js";import{i as l,n as u,r as ne}from"./LanguageToggle-CSQtRZ3A.js";import{n as re,t as d}from"./folder-Cfgc70_F.js";import{t as ie}from"./copy-DEzFUzeX.js";import{t as ae}from"./download-jEPn2njL.js";import{t as oe}from"./file-text-DPA1riJ_.js";import{a as f,i as p,n as m,r as se,t as ce}from"./FilePreviewOverlay-BYZIAMJ-.js";import{t as le}from"./loader-BXQtdens.js";import{i as ue,n as de,t as fe}from"./SidebarHomeLink-DXv0c9Ob.js";import{t as h}from"./music-B19Tg557.js";import{t as pe}from"./OpenSidebarButton-CLSCB7CG.js";import{t as me}from"./search-DSkiWdvX.js";import{t as he}from"./trash-2-V12tJ8lI.js";import{t as ge}from"./upload-CoCptKya.js";import{c as g,f as _,g as _e,m as ve}from"./index-BI8oNSVC.js";import{t as ye}from"./format-CR8oUWq6.js";import{t as be}from"./SidebarAccount-CNh0kvtB.js";import{n as v,r as xe,t as Se}from"./downloadValidation-Bzl7cci9.js";var Ce=r(`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`}]]),we=r(`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`}]]),Te=r(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Ee=r(`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`}]]),y=t(e(),1);function De(e={}){let t=e.timeout??2e3,[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),o=(0,y.useRef)(null);(0,y.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 b=n();function x(e){let t=e.lastIndexOf(`/`);return t===-1?{folder:``,name:e}:{folder:e.substring(0,t),name:e.substring(t+1)}}function Oe({file:e,isSelected:t,onSelect:n,onPreview:r}){let i=m(e.fileName),a=(0,b.jsx)(oe,{size:24,color:`#fff`});return i===`image`?a=(0,b.jsx)(p,{size:24,color:`#fff`}):i===`video`?a=(0,b.jsx)(f,{size:24,color:`#fff`}):i===`audio`&&(a=(0,b.jsx)(h,{size:24,color:`#fff`})),(0,b.jsxs)(`div`,{"data-id":e.cid,onClick:()=>n(e.cid),onDoubleClick:()=>r(e),className:`card ${t?`selected`:``}`,children:[(0,b.jsx)(`div`,{className:`card-icon ${e.starred?`starred`:`file`}`,children:a}),(0,b.jsx)(`p`,{className:`card-name`,translate:`no`,children:x(e.fileName).name})]})}function ke({folder:e,onClick:t}){return(0,b.jsxs)(`div`,{onClick:t,className:`card`,children:[(0,b.jsx)(`div`,{className:`card-icon folder`,children:(0,b.jsx)(d,{size:28,color:`#fff`})}),(0,b.jsx)(`p`,{className:`card-name`,translate:`no`,children:e.name})]})}function S(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 Ae({items:e,allFolders:t,currentPath:n,onMove:r,onClose:a}){let[s,ee]=(0,y.useState)(``),[c,l]=(0,y.useState)(n),{t:u}=te(),ne=S(s,u(`move.root`));function re(){r(s||c.trim())}let ie=t.filter(e=>{if(s===``)return!e.path.includes(`/`);let t=s+`/`;return e.path.startsWith(t)?!e.path.substring(t.length).includes(`/`):!1});return(0,b.jsx)(o,{onClose:a,children:(0,b.jsxs)(`div`,{className:`move-modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-header`,children:[(0,b.jsx)(`h3`,{children:u(`move.title`)}),(0,b.jsx)(`button`,{type:`button`,onClick:a,className:`btn btn-icon`,children:(0,b.jsx)(i,{size:18})})]}),(0,b.jsx)(`p`,{className:`move-modal-desc`,children:u(`move.selectedCount`,{count:e.length})}),(0,b.jsx)(`div`,{className:`move-new-folder`,children:(0,b.jsx)(`input`,{type:`text`,className:`input`,value:c,onChange:e=>l(e.target.value),placeholder:u(`move.pathPlaceholder`),translate:`no`})}),(0,b.jsx)(`p`,{className:`move-modal-hint`,children:u(`move.pathExample`)}),(0,b.jsx)(`div`,{className:`move-breadcrumb`,children:ne.map((e,t)=>(0,b.jsxs)(y.Fragment,{children:[t>0&&(0,b.jsx)(`span`,{className:`breadcrumb-separator`,children:`/`}),(0,b.jsx)(`button`,{type:`button`,onClick:()=>{ee(e.path),l(e.path)},className:`move-breadcrumb-btn ${s===e.path&&!c?`active`:``}`,children:(0,b.jsx)(`span`,{translate:e.path?`no`:`yes`,children:e.name})})]},e.path))}),(0,b.jsxs)(`div`,{className:`move-folder-list`,children:[ie.length===0&&(0,b.jsx)(`p`,{className:`move-modal-empty`,children:u(`move.noSubfolders`)}),ie.map(e=>(0,b.jsxs)(`button`,{type:`button`,onClick:()=>ee(e.path),className:`move-folder-item ${s===e.path&&!c?`selected`:``}`,children:[(0,b.jsx)(d,{size:16}),(0,b.jsx)(`span`,{translate:`no`,children:e.name})]},e.path))]}),(0,b.jsxs)(`div`,{className:`modal-actions`,children:[(0,b.jsx)(`button`,{type:`button`,onClick:a,className:`btn btn-secondary`,children:u(`common.cancel`)}),(0,b.jsx)(`button`,{type:`button`,onClick:re,className:`btn btn-primary`,children:u(`move.action`)})]})]})})}var je=`https://most.box`;function Me(e,t){let n=String(t||``).trim(),r=`${je}/cid/${encodeURIComponent(e)}`;return n?`${r}?filename=${encodeURIComponent(n)}`:r}function C(e){return x(e)}function Ne(e){let t=new Set;return e.forEach(e=>{let{folder:n}=C(e.fileName),r=n.split(`/`).filter(Boolean),i=``;for(let e of r)i+=(i?`/`:``)+e,t.add(i)}),[...t].sort()}function w(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 Pe(e,t,n){return{folders:w(t,n),files:e.filter(e=>C(e.fileName).folder===n)}}function Fe(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 T(){let e=g(e=>e.isDarkMode),t=g(e=>e.setIsDarkMode),n=g(e=>e.addToast),r=g(e=>e.hasBackend),a=g(e=>e.openConnectModal),d=c(e=>e.identity),f=c(e=>e.openLoginModal),[p,h]=(0,y.useState)([]),[x,S]=(0,y.useState)([]),[je,w]=(0,y.useState)(null),[T,Ie]=(0,y.useState)(`all`),[Le,Re]=(0,y.useState)(!1),[E,D]=(0,y.useState)([]),[ze,O]=(0,y.useState)(null),[k,A]=(0,y.useState)(null),[Be,Ve]=ue(!1),[He,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(null),[P,Ue]=(0,y.useState)(!1),[We,F]=(0,y.useState)([]),[Ge,I]=ue(!1),[L,R]=(0,y.useState)(``),{copy:Ke,copied:qe}=De({timeout:2e3}),[Je,Ye]=ue(!1),[z,B]=(0,y.useState)(null),[V,Xe]=(0,y.useState)(null),[Ze,Qe]=(0,y.useState)(!1),{t:H,formatDate:$e}=te(),U=r===!0,et=e=>e?$e(e):``,W=je||``,tt=Ne(p),{folders:nt,files:rt}=Pe(p,tt,W);function G(){return U?!0:(a(),!1)}function K(){return d?!0:(f(),!1)}let it=L?p.filter(e=>C(e.fileName).name.toLowerCase().includes(L.toLowerCase())):rt,q=async()=>{if(!U||!d){h([]);return}try{h(await v.listPublishedFiles()||[])}catch{h([])}},J=async()=>{if(!U||!d){S([]);return}try{S(await v.listTrashFiles()||[])}catch{S([])}},at=e=>{D(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},ot=async e=>{if(K()&&G())try{await v.restoreTrashFile(e),n(H(`app.toast.restored`),`success`),q(),J()}catch(e){n(await _(e,H(`app.toast.restoreFailed`)),`error`)}},st=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 v.emptyTrash(),n(H(`app.toast.trashEmptied`),`success`),J()}catch(e){n(await _(e,H(`app.toast.emptyFailed`)),`error`)}}})},ct=async e=>{if(K()&&G())try{let t=await v.toggleStar(e);h(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 _(e,H(`app.toast.actionFailed`)),`error`)}},lt=async()=>{if(!K()||!G())return;let e=T===`trash`;B({title:H(e?`app.permanentDelete`:`app.batchDelete`),message:H(e?`app.deleteSelectedPermanent`:`app.deleteSelected`,{count:E.length}),confirmText:H(e?`app.permanentDelete`:`app.delete`),danger:!0,onConfirm:async()=>{B(null);try{for(let t of E)e?await v.permanentDeleteTrashFile(t):t.startsWith(`__`)||await v.deletePublishedFile(t);D([]),n(H(e?`app.toast.deletedPermanently`:`app.toast.deleted`),`success`),q(),J()}catch(e){n(await _(e,H(`app.toast.deleteFailed`)),`error`)}}})},ut=async e=>{if(K()&&G())try{for(let t of E){let n=p.find(e=>e.cid===t);if(!n)continue;let{name:r}=C(n.fileName),i=e?`${e}/${r}`:r;n.fileName!==i&&await v.moveFile(t,i)}D([]),Ye.close(),n(H(`app.toast.moved`),`success`),q()}catch(e){n(await _(e,H(`app.toast.moveFailed`)),`error`)}},dt=e=>{let t=!!e.path,r=t?e.name:C(e.fileName).name;Xe({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()){Qe(!0);try{if(t){let t=e.path.lastIndexOf(`/`),r=t===-1?``:e.path.substring(0,t),a=r?`${r}/${i}`:i;await v.renameFolder(e.path,a),n(H(`app.toast.renamed`),`success`),q(),Q(a)}else{let{folder:t}=C(e.fileName),r=t?`${t}/${i}`:i;await v.moveFile(e.cid,r),n(H(`app.toast.renamed`),`success`),q()}Xe(null)}catch(e){n(await _(e,H(`app.toast.renameFailed`)),`error`)}finally{Qe(!1)}}}})},ft=async e=>{if(!d){f(),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(p.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),F(e=>[...e,o]),r.length>0&&I.open();try{(await v.publishFile(i,e)).alreadyExists?(F(e=>e.map(e=>e.id===a?{...e,status:`completed`}:e)),n(H(`app.fileAlreadyExists`,{fileName:i.name}),`warning`)):(F(e=>e.map(e=>e.id===a?{...e,progress:100,status:`completed`}:e)),n(H(`app.fileAddedLocal`,{fileName:i.name}),`success`))}catch(e){F(e=>e.map(e=>e.id===a?{...e,status:`error`}:e)),n(await _(e,H(`app.publishFailedWithFile`,{fileName:i.name})),`error`)}}setTimeout(()=>{F(e=>e.filter(e=>e.status!==`completed`&&e.status!==`error`&&e.status!==`cancelled`))},3e3),q()},pt=k?Me(k.cid,k.fileName):``,mt=()=>{pt&&Ke(pt)},[Y,ht]=(0,y.useState)(!1),X=He.trim(),Z=M?.status===`success`&&M.link===X,gt=()=>{Ve.close(),N(null)},_t=e=>{j(e.target.value),N(null)},vt=async()=>{let e=Se(X,H);if(e){N({status:`error`,link:X,message:e}),n(e,`warning`);return}if(!(P||Y)&&K()&&G()){Ue(!0),N(null);try{let e=await v.checkDownload(X);N({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 xe(e);N({status:`error`,link:X,message:t}),n(t,`error`)}finally{Ue(!1)}}},yt=async()=>{if(!d){f(),n(H(`app.toast.signInBeforeDownload`),`warning`);return}if(!G())return;let e=Se(X,H);if(e){n(e,`warning`);return}if(!Z){n(H(`app.toast.checkLinkFirst`),`warning`);return}if(!Y){ht(!0);try{let e=await v.downloadFile(X);if(j(``),N(null),gt(),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`};F(e=>[...e,t]),I.open(),n(H(`app.toast.downloadStarted`),`info`)}}catch(e){n(await _(e,H(`app.toast.downloadFailed`)),`error`)}finally{ht(!1)}}},bt=async e=>{if(K()&&G()&&e.type===`download`&&e.status===`downloading`){F(t=>t.map(t=>t.id===e.id?{...t,status:`cancelling`}:t));try{await v.cancelDownload(e.id)}catch(t){F(t=>t.map(t=>t.id===e.id?{...t,status:`downloading`}:t)),n(await _(t,H(`app.toast.cancelFailed`)),`error`)}}},xt=async e=>{if(K()&&G()){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}try{let t=await fetch(v.getFileDownloadUrl(e.cid),{headers:await ve(`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`)}}},St=async e=>{if(K()&&G())try{n(H(`app.toast.startPullLocal`),`info`),await v.cacheFile(e.cid),n(H(`app.toast.pulledAndSeeding`),`success`),q()}catch(e){n(await _(e,H(`app.toast.pullFailed`)),`error`)}},Q=e=>{w(e||null),D([])};(0,y.useEffect)(()=>{if(r!==!0)return;let e=null,t=!1;return(async()=>{if(e=new WebSocket(await _e(`/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;F(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(()=>{F(t=>t.filter(t=>!(t.id===e&&t.status===`completed`)))},3e3))}t===`publish:progress`&&F(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`&&F(e=>e.map(e=>e.id===r.taskId?{...e,progress:r.percent||0,loaded:r.loaded,total:r.total}:e)),t===`download:error`&&(F(e=>e.map(e=>e.id===r.taskId?{...e,status:`error`}:e)),n(H(`app.downloadFailedWithError`,{error:r.error}),`error`)),t===`download:status`&&F(e=>e.map(e=>e.id===r.taskId?{...e,fileName:r.file||e.fileName}:e)),t===`download:cancelled`&&(F(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()}},[r,d?.address]),(0,y.useEffect)(()=>{if(r===!0&&d){q(),J();return}r===!1&&(h([]),S([]))},[r,d?.address]),(0,y.useEffect)(()=>{d||(D([]),O(null),A(null),j(``),N(null),F([]),R(``),w(null),Ie(`all`))},[d?.address]);let Ct=H(T===`all`?`app.nav.local`:T===`starred`?`app.nav.favorites`:`app.nav.trash`),$=T===`all`?it:T===`starred`?p.filter(e=>e.starred&&C(e.fileName).name.toLowerCase().includes(L.toLowerCase())):x.filter(e=>C(e.fileName).name.toLowerCase().includes(L.toLowerCase())),wt=T===`starred`?[]:nt.filter(e=>e.name.toLowerCase().includes(L.toLowerCase())),Tt=Fe(W,H(`app.allContent`));return(0,b.jsxs)(de,{sidebar:({closeSidebar:e})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(fe,{onNavigate:e}),(0,b.jsx)(`nav`,{className:`sidebar-nav`,children:[{id:`all`,icon:(0,b.jsx)(we,{size:18}),label:H(`app.nav.local`)},{id:`starred`,icon:(0,b.jsx)(Ee,{size:18}),label:H(`app.nav.favorites`)},{id:`trash`,icon:(0,b.jsx)(he,{size:18}),label:H(`app.nav.trash`)}].map(t=>(0,b.jsxs)(`button`,{onClick:()=>{Ie(t.id),w(null),D([]),R(``),e()},className:`sidebar-nav-btn ${T===t.id?`active`:``}`,children:[t.icon,(0,b.jsx)(`span`,{children:t.label})]},t.id))}),(0,b.jsx)(be,{})]}),headerTitle:(0,b.jsx)(`h2`,{className:`header-title`,children:Ct}),headerRight:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`search-box`,children:[(0,b.jsx)(me,{size:14}),(0,b.jsx)(`input`,{type:`text`,value:L,onChange:e=>R(e.target.value),placeholder:H(`app.search.placeholder`)}),L&&(0,b.jsx)(`button`,{onClick:()=>R(``),children:(0,b.jsx)(i,{size:12})})]}),T===`trash`&&x.length>0&&(0,b.jsx)(`button`,{onClick:st,className:`btn btn-sm btn-empty-trash`,children:H(`app.emptyTrash`)}),(0,b.jsx)(`button`,{onClick:()=>I.open(),className:`btn btn-icon`,children:(0,b.jsx)(Ce,{size:16})}),(0,b.jsx)(`button`,{onClick:()=>t(!e),className:`btn btn-icon`,children:e?(0,b.jsx)(u,{size:16}):(0,b.jsx)(ne,{size:16})})]}),children:[T===`all`&&(0,b.jsxs)(`div`,{className:`action-grid`,children:[(0,b.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())&&ft(e.dataTransfer.files)},children:[(0,b.jsx)(`input`,{type:`file`,multiple:!0,onClick:e=>{(!K()||!G())&&e.preventDefault()},onChange:e=>ft(e.target.files),className:`action-card-input`}),(0,b.jsx)(ge,{size:20,className:`action-grid-icon`}),(0,b.jsx)(`p`,{children:H(`app.publishFile`)})]}),(0,b.jsxs)(`div`,{className:`action-card action-card-download`,onClick:()=>{!K()||!G()||Ve.open()},children:[(0,b.jsx)(ae,{size:20,className:`action-grid-icon`}),(0,b.jsx)(`p`,{children:H(`app.downloadFile`)})]})]}),T===`all`&&(0,b.jsx)(`div`,{className:`breadcrumb`,children:W?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{onClick:()=>Q(``),children:H(`app.allContent`)}),Tt.slice(1).map((e,t)=>(0,b.jsxs)(y.Fragment,{children:[(0,b.jsx)(re,{size:12}),(0,b.jsx)(`button`,{onClick:()=>Q(e.path),className:t===Tt.length-2?`current`:``,children:(0,b.jsx)(`span`,{translate:`no`,children:e.name})}),t===Tt.length-2&&(0,b.jsx)(`button`,{onClick:()=>dt(e),className:`breadcrumb-edit-btn`,children:(0,b.jsx)(se,{size:12})})]},e.path))]}):null}),(0,b.jsxs)(`div`,{className:`content-grid`,children:[T===`trash`&&($.length===0?(0,b.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,b.jsx)(`p`,{children:H(L?`app.noMatches`:`app.trashEmpty`)}),(0,b.jsx)(pe,{label:H(`app.openFileNavigation`)})]}):(0,b.jsx)(`div`,{className:`file-grid`,children:$.map(e=>(0,b.jsxs)(`div`,{onClick:()=>D(t=>t.includes(e.cid)?t.filter(t=>t!==e.cid):[...t,e.cid]),onDoubleClick:()=>ot(e.cid),className:`card ${E.includes(e.cid)?`selected`:``}`,children:[(0,b.jsx)(`div`,{className:`card-icon trash`,children:(0,b.jsx)(oe,{size:24,color:`#fff`})}),(0,b.jsx)(`p`,{className:`card-name`,translate:`no`,children:C(e.fileName).name}),(0,b.jsx)(`p`,{className:`card-date`,children:H(`app.deletedOn`,{date:et(e.deletedAt)})})]},e.cid))})),T!==`trash`&&($.length===0&&wt.length===0?(0,b.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,b.jsx)(`p`,{children:H(L?`app.noMatches`:T===`starred`?`app.noFavorites`:`app.noLocalFiles`)}),(0,b.jsx)(pe,{label:H(`app.openFileNavigation`)})]}):(0,b.jsxs)(`div`,{className:`file-grid`,children:[wt.map(e=>(0,b.jsx)(ke,{folder:e,onClick:()=>Q(e.path)},e.path)),$.map(e=>(0,b.jsx)(Oe,{file:e,isSelected:E.includes(e.cid),onSelect:at,onPreview:e=>{if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}O({...e,subtype:m(e.fileName)})}},e.cid))]}))]}),z&&(0,b.jsx)(ee,{title:z.title,message:z.message,confirmText:z.confirmText,danger:z.danger,onConfirm:z.onConfirm,onClose:()=>B(null)}),V&&(0,b.jsx)(s,{title:V.title,placeholder:V.placeholder,defaultValue:V.defaultValue,confirmText:V.confirmText,isLoading:Ze,onConfirm:V.onConfirm,onClose:()=>Xe(null)}),Je&&(0,b.jsx)(Ae,{items:E.map(e=>p.find(t=>t.cid===e)).filter(Boolean),allFolders:tt.map(e=>({path:e,name:e.split(`/`).pop()})),currentPath:W,onMove:ut,onClose:()=>Ye.close()}),k&&(0,b.jsx)(o,{onClose:()=>A(null),children:(0,b.jsxs)(`div`,{className:`share-modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-header`,children:[(0,b.jsx)(`h3`,{children:H(`app.shareLink`)}),(0,b.jsx)(`button`,{onClick:()=>A(null),className:`btn btn-icon`,children:(0,b.jsx)(i,{size:18})})]}),(0,b.jsxs)(`div`,{className:`share-link-box`,children:[(0,b.jsx)(`div`,{className:`share-link-text`,translate:`no`,children:pt}),(0,b.jsx)(`button`,{onClick:mt,className:`btn btn-circle btn-primary ${qe?`copied`:``}`,children:qe?(0,b.jsx)(l,{size:18}):(0,b.jsx)(ie,{size:18})})]}),(0,b.jsx)(`div`,{className:`share-storage-note`,children:(0,b.jsx)(`span`,{children:H(`app.shareSeedNote`)})})]})}),Be&&(0,b.jsx)(o,{onClose:gt,children:(0,b.jsxs)(`div`,{className:`download-modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-header`,children:[(0,b.jsx)(`h3`,{children:H(`app.downloadFile`)}),(0,b.jsx)(`button`,{onClick:gt,className:`btn btn-icon`,children:(0,b.jsx)(i,{size:18})})]}),(0,b.jsxs)(`div`,{className:`download-link-row`,children:[(0,b.jsx)(`input`,{type:`text`,className:`input`,value:He,onChange:_t,placeholder:H(`app.downloadLink.placeholder`)}),(0,b.jsxs)(`button`,{type:`button`,onClick:vt,disabled:!X||P||Y,className:`btn btn-secondary download-check-btn`,children:[P?(0,b.jsx)(le,{size:14,className:`spin`}):Z?(0,b.jsx)(l,{size:14}):(0,b.jsx)(me,{size:14}),H(P?`app.checking`:Z?`app.passed`:`app.check`)]})]}),M&&(0,b.jsxs)(`div`,{className:`download-check-status ${M.status}`,children:[M.status===`success`?(0,b.jsx)(l,{size:14}):(0,b.jsx)(Te,{size:14}),(0,b.jsx)(`span`,{children:M.message})]}),(0,b.jsxs)(`button`,{onClick:yt,disabled:!Z||Y||P,className:`btn btn-info btn-full`,children:[Y?(0,b.jsx)(le,{size:14,className:`spin`}):(0,b.jsx)(ae,{size:14}),H(Y?`app.downloading`:`app.startDownload`)]})]})}),ze&&(0,b.jsx)(ce,{item:ze,isBackendReady:U,getFileDownloadUrl:v.getFileDownloadUrl,onClose:()=>O(null)}),E.length>0&&(0,b.jsxs)(`div`,{className:`batch-bar`,children:[(0,b.jsx)(`span`,{className:`batch-info`,children:H(`app.selectedItems`,{count:E.length})}),(0,b.jsx)(`button`,{onClick:()=>D([]),className:`batch-dismiss`,children:(0,b.jsx)(i,{size:16})}),(0,b.jsx)(`div`,{className:`batch-divider`}),T===`trash`?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{onClick:async()=>{K()&&G()&&(await Promise.all(E.map(e=>v.restoreTrashFile(e))),D([]),n(H(`app.toast.restored`),`success`),q(),J())},className:`btn btn-sm`,children:H(`app.restore`)}),(0,b.jsx)(`button`,{onClick:lt,className:`btn btn-sm btn-danger`,children:H(`app.permanentDelete`)})]}):(0,b.jsxs)(b.Fragment,{children:[E.length===1&&(()=>{let e=p.find(e=>e.cid===E[0]);return e&&m(e.fileName)!==`file`})()&&(0,b.jsx)(`button`,{onClick:()=>{let e=p.find(e=>e.cid===E[0]);if(e){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}let t=m(e.fileName);O({...e,subtype:t})}},className:`btn btn-sm`,children:H(`app.preview`)}),(0,b.jsx)(`button`,{onClick:()=>{let e=E.some(e=>{let t=p.find(t=>t.cid===e);return t&&!t.starred});E.forEach(t=>{let n=p.find(e=>e.cid===t);n&&(e?!n.starred:n.starred)&&ct(t)})},className:`btn btn-sm btn-star`,children:H(`app.favorite`)}),E.length===1&&(0,b.jsx)(`button`,{onClick:()=>{let e=p.find(e=>e.cid===E[0]);e&&dt(e)},className:`btn btn-sm`,children:H(`app.rename`)}),(0,b.jsx)(`button`,{onClick:()=>Ye.open(),className:`btn btn-sm btn-move`,children:H(`app.move`)}),(0,b.jsx)(`button`,{onClick:lt,className:`btn btn-sm btn-danger`,children:H(`app.delete`)}),E.length===1&&(()=>{let e=p.find(e=>e.cid===E[0]);return e&&e.localAvailable===!1})()&&(0,b.jsx)(`button`,{onClick:()=>{let e=p.find(e=>e.cid===E[0]);e&&St(e)},className:`btn btn-sm`,children:H(`app.pullToLocal`)}),E.length===1&&(0,b.jsx)(`button`,{onClick:()=>A(p.find(e=>e.cid===E[0])),className:`btn btn-sm`,children:H(`app.share`)}),E.length===1&&(0,b.jsx)(`button`,{onClick:()=>{let e=p.find(e=>e.cid===E[0]);e&&xt(e)},className:`btn btn-sm`,children:H(`app.saveAs`)})]})]}),Ge&&(0,b.jsx)(o,{onClose:()=>I.close(),children:(0,b.jsxs)(`div`,{className:`transfer-modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-header`,children:[(0,b.jsx)(`h3`,{children:H(`app.transfers`)}),(0,b.jsx)(`button`,{onClick:()=>I.close(),className:`btn btn-icon`,children:(0,b.jsx)(i,{size:18})})]}),We.length===0?(0,b.jsx)(`div`,{className:`empty-transfer`,children:H(`app.noTransfers`)}):We.map(e=>(0,b.jsxs)(`div`,{className:`transfer-item`,children:[(0,b.jsxs)(`div`,{className:`transfer-item-header`,children:[e.type===`upload`?(0,b.jsx)(ge,{size:14}):(0,b.jsx)(ae,{size:14}),(0,b.jsx)(`span`,{className:`transfer-item-name`,translate:`no`,children:e.fileName}),e.status===`downloading`&&e.type===`download`&&(0,b.jsx)(`button`,{onClick:()=>bt(e),className:`transfer-item-cancel`,children:(0,b.jsx)(i,{size:14})})]}),(0,b.jsxs)(`div`,{className:`transfer-progress-row`,children:[(0,b.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,b.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?`${ye(e.loaded)}/${ye(e.total)}`:`${e.progress}%`})]})]},e.id))]})})]})}var Ie=a(`/app/`)({component:T});export{Ie as Route};
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{C as r,S as i,T as a,a as o,n as s,r as ee,s as c}from"./ui-BpDGD3IR.js";import{a as te}from"./i18n-NjvOSuV6.js";import{i as l,n as u,r as ne}from"./LanguageToggle-CSQtRZ3A.js";import{n as re,t as d}from"./folder-Cfgc70_F.js";import{t as ie}from"./copy-DEzFUzeX.js";import{t as ae}from"./download-jEPn2njL.js";import{t as oe}from"./file-text-DPA1riJ_.js";import{a as f,i as p,n as m,r as se,t as ce}from"./FilePreviewOverlay-CM5IqnZD.js";import{t as le}from"./loader-BXQtdens.js";import{i as ue,n as de,t as fe}from"./SidebarHomeLink-qMFEGjZt.js";import{t as h}from"./music-B19Tg557.js";import{t as pe}from"./OpenSidebarButton-D8qfUGzU.js";import{t as me}from"./search-DSkiWdvX.js";import{t as he}from"./trash-2-V12tJ8lI.js";import{t as ge}from"./upload-CoCptKya.js";import{c as g,f as _,g as _e,m as ve}from"./index-C-_ZwxuN.js";import{t as ye}from"./format-CR8oUWq6.js";import{t as be}from"./SidebarAccount-_RBE5K_o.js";import{n as v,r as xe,t as Se}from"./downloadValidation-CSXwoQKW.js";var Ce=r(`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`}]]),we=r(`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`}]]),Te=r(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Ee=r(`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`}]]),y=t(e(),1);function De(e={}){let t=e.timeout??2e3,[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),o=(0,y.useRef)(null);(0,y.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 b=n();function x(e){let t=e.lastIndexOf(`/`);return t===-1?{folder:``,name:e}:{folder:e.substring(0,t),name:e.substring(t+1)}}function Oe({file:e,isSelected:t,onSelect:n,onPreview:r}){let i=m(e.fileName),a=(0,b.jsx)(oe,{size:24,color:`#fff`});return i===`image`?a=(0,b.jsx)(p,{size:24,color:`#fff`}):i===`video`?a=(0,b.jsx)(f,{size:24,color:`#fff`}):i===`audio`&&(a=(0,b.jsx)(h,{size:24,color:`#fff`})),(0,b.jsxs)(`div`,{"data-id":e.cid,onClick:()=>n(e.cid),onDoubleClick:()=>r(e),className:`card ${t?`selected`:``}`,children:[(0,b.jsx)(`div`,{className:`card-icon ${e.starred?`starred`:`file`}`,children:a}),(0,b.jsx)(`p`,{className:`card-name`,translate:`no`,children:x(e.fileName).name})]})}function ke({folder:e,onClick:t}){return(0,b.jsxs)(`div`,{onClick:t,className:`card`,children:[(0,b.jsx)(`div`,{className:`card-icon folder`,children:(0,b.jsx)(d,{size:28,color:`#fff`})}),(0,b.jsx)(`p`,{className:`card-name`,translate:`no`,children:e.name})]})}function S(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 Ae({items:e,allFolders:t,currentPath:n,onMove:r,onClose:a}){let[s,ee]=(0,y.useState)(``),[c,l]=(0,y.useState)(n),{t:u}=te(),ne=S(s,u(`move.root`));function re(){r(s||c.trim())}let ie=t.filter(e=>{if(s===``)return!e.path.includes(`/`);let t=s+`/`;return e.path.startsWith(t)?!e.path.substring(t.length).includes(`/`):!1});return(0,b.jsx)(o,{onClose:a,children:(0,b.jsxs)(`div`,{className:`move-modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-header`,children:[(0,b.jsx)(`h3`,{children:u(`move.title`)}),(0,b.jsx)(`button`,{type:`button`,onClick:a,className:`btn btn-icon`,children:(0,b.jsx)(i,{size:18})})]}),(0,b.jsx)(`p`,{className:`move-modal-desc`,children:u(`move.selectedCount`,{count:e.length})}),(0,b.jsx)(`div`,{className:`move-new-folder`,children:(0,b.jsx)(`input`,{type:`text`,className:`input`,value:c,onChange:e=>l(e.target.value),placeholder:u(`move.pathPlaceholder`),translate:`no`})}),(0,b.jsx)(`p`,{className:`move-modal-hint`,children:u(`move.pathExample`)}),(0,b.jsx)(`div`,{className:`move-breadcrumb`,children:ne.map((e,t)=>(0,b.jsxs)(y.Fragment,{children:[t>0&&(0,b.jsx)(`span`,{className:`breadcrumb-separator`,children:`/`}),(0,b.jsx)(`button`,{type:`button`,onClick:()=>{ee(e.path),l(e.path)},className:`move-breadcrumb-btn ${s===e.path&&!c?`active`:``}`,children:(0,b.jsx)(`span`,{translate:e.path?`no`:`yes`,children:e.name})})]},e.path))}),(0,b.jsxs)(`div`,{className:`move-folder-list`,children:[ie.length===0&&(0,b.jsx)(`p`,{className:`move-modal-empty`,children:u(`move.noSubfolders`)}),ie.map(e=>(0,b.jsxs)(`button`,{type:`button`,onClick:()=>ee(e.path),className:`move-folder-item ${s===e.path&&!c?`selected`:``}`,children:[(0,b.jsx)(d,{size:16}),(0,b.jsx)(`span`,{translate:`no`,children:e.name})]},e.path))]}),(0,b.jsxs)(`div`,{className:`modal-actions`,children:[(0,b.jsx)(`button`,{type:`button`,onClick:a,className:`btn btn-secondary`,children:u(`common.cancel`)}),(0,b.jsx)(`button`,{type:`button`,onClick:re,className:`btn btn-primary`,children:u(`move.action`)})]})]})})}var je=`https://most.box`;function Me(e,t){let n=String(t||``).trim(),r=`${je}/cid/${encodeURIComponent(e)}`;return n?`${r}?filename=${encodeURIComponent(n)}`:r}function C(e){return x(e)}function Ne(e){let t=new Set;return e.forEach(e=>{let{folder:n}=C(e.fileName),r=n.split(`/`).filter(Boolean),i=``;for(let e of r)i+=(i?`/`:``)+e,t.add(i)}),[...t].sort()}function w(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 Pe(e,t,n){return{folders:w(t,n),files:e.filter(e=>C(e.fileName).folder===n)}}function Fe(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 T(){let e=g(e=>e.isDarkMode),t=g(e=>e.setIsDarkMode),n=g(e=>e.addToast),r=g(e=>e.hasBackend),a=g(e=>e.openConnectModal),d=c(e=>e.identity),f=c(e=>e.openLoginModal),[p,h]=(0,y.useState)([]),[x,S]=(0,y.useState)([]),[je,w]=(0,y.useState)(null),[T,Ie]=(0,y.useState)(`all`),[Le,Re]=(0,y.useState)(!1),[E,D]=(0,y.useState)([]),[ze,O]=(0,y.useState)(null),[k,A]=(0,y.useState)(null),[Be,Ve]=ue(!1),[He,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(null),[P,Ue]=(0,y.useState)(!1),[We,F]=(0,y.useState)([]),[Ge,I]=ue(!1),[L,R]=(0,y.useState)(``),{copy:Ke,copied:qe}=De({timeout:2e3}),[Je,Ye]=ue(!1),[z,B]=(0,y.useState)(null),[V,Xe]=(0,y.useState)(null),[Ze,Qe]=(0,y.useState)(!1),{t:H,formatDate:$e}=te(),U=r===!0,et=e=>e?$e(e):``,W=je||``,tt=Ne(p),{folders:nt,files:rt}=Pe(p,tt,W);function G(){return U?!0:(a(),!1)}function K(){return d?!0:(f(),!1)}let it=L?p.filter(e=>C(e.fileName).name.toLowerCase().includes(L.toLowerCase())):rt,q=async()=>{if(!U||!d){h([]);return}try{h(await v.listPublishedFiles()||[])}catch{h([])}},J=async()=>{if(!U||!d){S([]);return}try{S(await v.listTrashFiles()||[])}catch{S([])}},at=e=>{D(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},ot=async e=>{if(K()&&G())try{await v.restoreTrashFile(e),n(H(`app.toast.restored`),`success`),q(),J()}catch(e){n(await _(e,H(`app.toast.restoreFailed`)),`error`)}},st=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 v.emptyTrash(),n(H(`app.toast.trashEmptied`),`success`),J()}catch(e){n(await _(e,H(`app.toast.emptyFailed`)),`error`)}}})},ct=async e=>{if(K()&&G())try{let t=await v.toggleStar(e);h(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 _(e,H(`app.toast.actionFailed`)),`error`)}},lt=async()=>{if(!K()||!G())return;let e=T===`trash`;B({title:H(e?`app.permanentDelete`:`app.batchDelete`),message:H(e?`app.deleteSelectedPermanent`:`app.deleteSelected`,{count:E.length}),confirmText:H(e?`app.permanentDelete`:`app.delete`),danger:!0,onConfirm:async()=>{B(null);try{for(let t of E)e?await v.permanentDeleteTrashFile(t):t.startsWith(`__`)||await v.deletePublishedFile(t);D([]),n(H(e?`app.toast.deletedPermanently`:`app.toast.deleted`),`success`),q(),J()}catch(e){n(await _(e,H(`app.toast.deleteFailed`)),`error`)}}})},ut=async e=>{if(K()&&G())try{for(let t of E){let n=p.find(e=>e.cid===t);if(!n)continue;let{name:r}=C(n.fileName),i=e?`${e}/${r}`:r;n.fileName!==i&&await v.moveFile(t,i)}D([]),Ye.close(),n(H(`app.toast.moved`),`success`),q()}catch(e){n(await _(e,H(`app.toast.moveFailed`)),`error`)}},dt=e=>{let t=!!e.path,r=t?e.name:C(e.fileName).name;Xe({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()){Qe(!0);try{if(t){let t=e.path.lastIndexOf(`/`),r=t===-1?``:e.path.substring(0,t),a=r?`${r}/${i}`:i;await v.renameFolder(e.path,a),n(H(`app.toast.renamed`),`success`),q(),Q(a)}else{let{folder:t}=C(e.fileName),r=t?`${t}/${i}`:i;await v.moveFile(e.cid,r),n(H(`app.toast.renamed`),`success`),q()}Xe(null)}catch(e){n(await _(e,H(`app.toast.renameFailed`)),`error`)}finally{Qe(!1)}}}})},ft=async e=>{if(!d){f(),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(p.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),F(e=>[...e,o]),r.length>0&&I.open();try{(await v.publishFile(i,e)).alreadyExists?(F(e=>e.map(e=>e.id===a?{...e,status:`completed`}:e)),n(H(`app.fileAlreadyExists`,{fileName:i.name}),`warning`)):(F(e=>e.map(e=>e.id===a?{...e,progress:100,status:`completed`}:e)),n(H(`app.fileAddedLocal`,{fileName:i.name}),`success`))}catch(e){F(e=>e.map(e=>e.id===a?{...e,status:`error`}:e)),n(await _(e,H(`app.publishFailedWithFile`,{fileName:i.name})),`error`)}}setTimeout(()=>{F(e=>e.filter(e=>e.status!==`completed`&&e.status!==`error`&&e.status!==`cancelled`))},3e3),q()},pt=k?Me(k.cid,k.fileName):``,mt=()=>{pt&&Ke(pt)},[Y,ht]=(0,y.useState)(!1),X=He.trim(),Z=M?.status===`success`&&M.link===X,gt=()=>{Ve.close(),N(null)},_t=e=>{j(e.target.value),N(null)},vt=async()=>{let e=Se(X,H);if(e){N({status:`error`,link:X,message:e}),n(e,`warning`);return}if(!(P||Y)&&K()&&G()){Ue(!0),N(null);try{let e=await v.checkDownload(X);N({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 xe(e);N({status:`error`,link:X,message:t}),n(t,`error`)}finally{Ue(!1)}}},yt=async()=>{if(!d){f(),n(H(`app.toast.signInBeforeDownload`),`warning`);return}if(!G())return;let e=Se(X,H);if(e){n(e,`warning`);return}if(!Z){n(H(`app.toast.checkLinkFirst`),`warning`);return}if(!Y){ht(!0);try{let e=await v.downloadFile(X);if(j(``),N(null),gt(),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`};F(e=>[...e,t]),I.open(),n(H(`app.toast.downloadStarted`),`info`)}}catch(e){n(await _(e,H(`app.toast.downloadFailed`)),`error`)}finally{ht(!1)}}},bt=async e=>{if(K()&&G()&&e.type===`download`&&e.status===`downloading`){F(t=>t.map(t=>t.id===e.id?{...t,status:`cancelling`}:t));try{await v.cancelDownload(e.id)}catch(t){F(t=>t.map(t=>t.id===e.id?{...t,status:`downloading`}:t)),n(await _(t,H(`app.toast.cancelFailed`)),`error`)}}},xt=async e=>{if(K()&&G()){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}try{let t=await fetch(v.getFileDownloadUrl(e.cid),{headers:await ve(`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`)}}},St=async e=>{if(K()&&G())try{n(H(`app.toast.startPullLocal`),`info`),await v.cacheFile(e.cid),n(H(`app.toast.pulledAndSeeding`),`success`),q()}catch(e){n(await _(e,H(`app.toast.pullFailed`)),`error`)}},Q=e=>{w(e||null),D([])};(0,y.useEffect)(()=>{if(r!==!0)return;let e=null,t=!1;return(async()=>{if(e=new WebSocket(await _e(`/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;F(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(()=>{F(t=>t.filter(t=>!(t.id===e&&t.status===`completed`)))},3e3))}t===`publish:progress`&&F(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`&&F(e=>e.map(e=>e.id===r.taskId?{...e,progress:r.percent||0,loaded:r.loaded,total:r.total}:e)),t===`download:error`&&(F(e=>e.map(e=>e.id===r.taskId?{...e,status:`error`}:e)),n(H(`app.downloadFailedWithError`,{error:r.error}),`error`)),t===`download:status`&&F(e=>e.map(e=>e.id===r.taskId?{...e,fileName:r.file||e.fileName}:e)),t===`download:cancelled`&&(F(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()}},[r,d?.address]),(0,y.useEffect)(()=>{if(r===!0&&d){q(),J();return}r===!1&&(h([]),S([]))},[r,d?.address]),(0,y.useEffect)(()=>{d||(D([]),O(null),A(null),j(``),N(null),F([]),R(``),w(null),Ie(`all`))},[d?.address]);let Ct=H(T===`all`?`app.nav.local`:T===`starred`?`app.nav.favorites`:`app.nav.trash`),$=T===`all`?it:T===`starred`?p.filter(e=>e.starred&&C(e.fileName).name.toLowerCase().includes(L.toLowerCase())):x.filter(e=>C(e.fileName).name.toLowerCase().includes(L.toLowerCase())),wt=T===`starred`?[]:nt.filter(e=>e.name.toLowerCase().includes(L.toLowerCase())),Tt=Fe(W,H(`app.allContent`));return(0,b.jsxs)(de,{sidebar:({closeSidebar:e})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(fe,{onNavigate:e}),(0,b.jsx)(`nav`,{className:`sidebar-nav`,children:[{id:`all`,icon:(0,b.jsx)(we,{size:18}),label:H(`app.nav.local`)},{id:`starred`,icon:(0,b.jsx)(Ee,{size:18}),label:H(`app.nav.favorites`)},{id:`trash`,icon:(0,b.jsx)(he,{size:18}),label:H(`app.nav.trash`)}].map(t=>(0,b.jsxs)(`button`,{onClick:()=>{Ie(t.id),w(null),D([]),R(``),e()},className:`sidebar-nav-btn ${T===t.id?`active`:``}`,children:[t.icon,(0,b.jsx)(`span`,{children:t.label})]},t.id))}),(0,b.jsx)(be,{})]}),headerTitle:(0,b.jsx)(`h2`,{className:`header-title`,children:Ct}),headerRight:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`search-box`,children:[(0,b.jsx)(me,{size:14}),(0,b.jsx)(`input`,{type:`text`,value:L,onChange:e=>R(e.target.value),placeholder:H(`app.search.placeholder`)}),L&&(0,b.jsx)(`button`,{onClick:()=>R(``),children:(0,b.jsx)(i,{size:12})})]}),T===`trash`&&x.length>0&&(0,b.jsx)(`button`,{onClick:st,className:`btn btn-sm btn-empty-trash`,children:H(`app.emptyTrash`)}),(0,b.jsx)(`button`,{onClick:()=>I.open(),className:`btn btn-icon`,children:(0,b.jsx)(Ce,{size:16})}),(0,b.jsx)(`button`,{onClick:()=>t(!e),className:`btn btn-icon`,children:e?(0,b.jsx)(u,{size:16}):(0,b.jsx)(ne,{size:16})})]}),children:[T===`all`&&(0,b.jsxs)(`div`,{className:`action-grid`,children:[(0,b.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())&&ft(e.dataTransfer.files)},children:[(0,b.jsx)(`input`,{type:`file`,multiple:!0,onClick:e=>{(!K()||!G())&&e.preventDefault()},onChange:e=>ft(e.target.files),className:`action-card-input`}),(0,b.jsx)(ge,{size:20,className:`action-grid-icon`}),(0,b.jsx)(`p`,{children:H(`app.publishFile`)})]}),(0,b.jsxs)(`div`,{className:`action-card action-card-download`,onClick:()=>{!K()||!G()||Ve.open()},children:[(0,b.jsx)(ae,{size:20,className:`action-grid-icon`}),(0,b.jsx)(`p`,{children:H(`app.downloadFile`)})]})]}),T===`all`&&(0,b.jsx)(`div`,{className:`breadcrumb`,children:W?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{onClick:()=>Q(``),children:H(`app.allContent`)}),Tt.slice(1).map((e,t)=>(0,b.jsxs)(y.Fragment,{children:[(0,b.jsx)(re,{size:12}),(0,b.jsx)(`button`,{onClick:()=>Q(e.path),className:t===Tt.length-2?`current`:``,children:(0,b.jsx)(`span`,{translate:`no`,children:e.name})}),t===Tt.length-2&&(0,b.jsx)(`button`,{onClick:()=>dt(e),className:`breadcrumb-edit-btn`,children:(0,b.jsx)(se,{size:12})})]},e.path))]}):null}),(0,b.jsxs)(`div`,{className:`content-grid`,children:[T===`trash`&&($.length===0?(0,b.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,b.jsx)(`p`,{children:H(L?`app.noMatches`:`app.trashEmpty`)}),(0,b.jsx)(pe,{label:H(`app.openFileNavigation`)})]}):(0,b.jsx)(`div`,{className:`file-grid`,children:$.map(e=>(0,b.jsxs)(`div`,{onClick:()=>D(t=>t.includes(e.cid)?t.filter(t=>t!==e.cid):[...t,e.cid]),onDoubleClick:()=>ot(e.cid),className:`card ${E.includes(e.cid)?`selected`:``}`,children:[(0,b.jsx)(`div`,{className:`card-icon trash`,children:(0,b.jsx)(oe,{size:24,color:`#fff`})}),(0,b.jsx)(`p`,{className:`card-name`,translate:`no`,children:C(e.fileName).name}),(0,b.jsx)(`p`,{className:`card-date`,children:H(`app.deletedOn`,{date:et(e.deletedAt)})})]},e.cid))})),T!==`trash`&&($.length===0&&wt.length===0?(0,b.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,b.jsx)(`p`,{children:H(L?`app.noMatches`:T===`starred`?`app.noFavorites`:`app.noLocalFiles`)}),(0,b.jsx)(pe,{label:H(`app.openFileNavigation`)})]}):(0,b.jsxs)(`div`,{className:`file-grid`,children:[wt.map(e=>(0,b.jsx)(ke,{folder:e,onClick:()=>Q(e.path)},e.path)),$.map(e=>(0,b.jsx)(Oe,{file:e,isSelected:E.includes(e.cid),onSelect:at,onPreview:e=>{if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}O({...e,subtype:m(e.fileName)})}},e.cid))]}))]}),z&&(0,b.jsx)(ee,{title:z.title,message:z.message,confirmText:z.confirmText,danger:z.danger,onConfirm:z.onConfirm,onClose:()=>B(null)}),V&&(0,b.jsx)(s,{title:V.title,placeholder:V.placeholder,defaultValue:V.defaultValue,confirmText:V.confirmText,isLoading:Ze,onConfirm:V.onConfirm,onClose:()=>Xe(null)}),Je&&(0,b.jsx)(Ae,{items:E.map(e=>p.find(t=>t.cid===e)).filter(Boolean),allFolders:tt.map(e=>({path:e,name:e.split(`/`).pop()})),currentPath:W,onMove:ut,onClose:()=>Ye.close()}),k&&(0,b.jsx)(o,{onClose:()=>A(null),children:(0,b.jsxs)(`div`,{className:`share-modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-header`,children:[(0,b.jsx)(`h3`,{children:H(`app.shareLink`)}),(0,b.jsx)(`button`,{onClick:()=>A(null),className:`btn btn-icon`,children:(0,b.jsx)(i,{size:18})})]}),(0,b.jsxs)(`div`,{className:`share-link-box`,children:[(0,b.jsx)(`div`,{className:`share-link-text`,translate:`no`,children:pt}),(0,b.jsx)(`button`,{onClick:mt,className:`btn btn-circle btn-primary ${qe?`copied`:``}`,children:qe?(0,b.jsx)(l,{size:18}):(0,b.jsx)(ie,{size:18})})]}),(0,b.jsx)(`div`,{className:`share-storage-note`,children:(0,b.jsx)(`span`,{children:H(`app.shareSeedNote`)})})]})}),Be&&(0,b.jsx)(o,{onClose:gt,children:(0,b.jsxs)(`div`,{className:`download-modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-header`,children:[(0,b.jsx)(`h3`,{children:H(`app.downloadFile`)}),(0,b.jsx)(`button`,{onClick:gt,className:`btn btn-icon`,children:(0,b.jsx)(i,{size:18})})]}),(0,b.jsxs)(`div`,{className:`download-link-row`,children:[(0,b.jsx)(`input`,{type:`text`,className:`input`,value:He,onChange:_t,placeholder:H(`app.downloadLink.placeholder`)}),(0,b.jsxs)(`button`,{type:`button`,onClick:vt,disabled:!X||P||Y,className:`btn btn-secondary download-check-btn`,children:[P?(0,b.jsx)(le,{size:14,className:`spin`}):Z?(0,b.jsx)(l,{size:14}):(0,b.jsx)(me,{size:14}),H(P?`app.checking`:Z?`app.passed`:`app.check`)]})]}),M&&(0,b.jsxs)(`div`,{className:`download-check-status ${M.status}`,children:[M.status===`success`?(0,b.jsx)(l,{size:14}):(0,b.jsx)(Te,{size:14}),(0,b.jsx)(`span`,{children:M.message})]}),(0,b.jsxs)(`button`,{onClick:yt,disabled:!Z||Y||P,className:`btn btn-info btn-full`,children:[Y?(0,b.jsx)(le,{size:14,className:`spin`}):(0,b.jsx)(ae,{size:14}),H(Y?`app.downloading`:`app.startDownload`)]})]})}),ze&&(0,b.jsx)(ce,{item:ze,isBackendReady:U,getFileDownloadUrl:v.getFileDownloadUrl,onClose:()=>O(null)}),E.length>0&&(0,b.jsxs)(`div`,{className:`batch-bar`,children:[(0,b.jsx)(`span`,{className:`batch-info`,children:H(`app.selectedItems`,{count:E.length})}),(0,b.jsx)(`button`,{onClick:()=>D([]),className:`batch-dismiss`,children:(0,b.jsx)(i,{size:16})}),(0,b.jsx)(`div`,{className:`batch-divider`}),T===`trash`?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{onClick:async()=>{K()&&G()&&(await Promise.all(E.map(e=>v.restoreTrashFile(e))),D([]),n(H(`app.toast.restored`),`success`),q(),J())},className:`btn btn-sm`,children:H(`app.restore`)}),(0,b.jsx)(`button`,{onClick:lt,className:`btn btn-sm btn-danger`,children:H(`app.permanentDelete`)})]}):(0,b.jsxs)(b.Fragment,{children:[E.length===1&&(()=>{let e=p.find(e=>e.cid===E[0]);return e&&m(e.fileName)!==`file`})()&&(0,b.jsx)(`button`,{onClick:()=>{let e=p.find(e=>e.cid===E[0]);if(e){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}let t=m(e.fileName);O({...e,subtype:t})}},className:`btn btn-sm`,children:H(`app.preview`)}),(0,b.jsx)(`button`,{onClick:()=>{let e=E.some(e=>{let t=p.find(t=>t.cid===e);return t&&!t.starred});E.forEach(t=>{let n=p.find(e=>e.cid===t);n&&(e?!n.starred:n.starred)&&ct(t)})},className:`btn btn-sm btn-star`,children:H(`app.favorite`)}),E.length===1&&(0,b.jsx)(`button`,{onClick:()=>{let e=p.find(e=>e.cid===E[0]);e&&dt(e)},className:`btn btn-sm`,children:H(`app.rename`)}),(0,b.jsx)(`button`,{onClick:()=>Ye.open(),className:`btn btn-sm btn-move`,children:H(`app.move`)}),(0,b.jsx)(`button`,{onClick:lt,className:`btn btn-sm btn-danger`,children:H(`app.delete`)}),E.length===1&&(()=>{let e=p.find(e=>e.cid===E[0]);return e&&e.localAvailable===!1})()&&(0,b.jsx)(`button`,{onClick:()=>{let e=p.find(e=>e.cid===E[0]);e&&St(e)},className:`btn btn-sm`,children:H(`app.pullToLocal`)}),E.length===1&&(0,b.jsx)(`button`,{onClick:()=>A(p.find(e=>e.cid===E[0])),className:`btn btn-sm`,children:H(`app.share`)}),E.length===1&&(0,b.jsx)(`button`,{onClick:()=>{let e=p.find(e=>e.cid===E[0]);e&&xt(e)},className:`btn btn-sm`,children:H(`app.saveAs`)})]})]}),Ge&&(0,b.jsx)(o,{onClose:()=>I.close(),children:(0,b.jsxs)(`div`,{className:`transfer-modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-header`,children:[(0,b.jsx)(`h3`,{children:H(`app.transfers`)}),(0,b.jsx)(`button`,{onClick:()=>I.close(),className:`btn btn-icon`,children:(0,b.jsx)(i,{size:18})})]}),We.length===0?(0,b.jsx)(`div`,{className:`empty-transfer`,children:H(`app.noTransfers`)}):We.map(e=>(0,b.jsxs)(`div`,{className:`transfer-item`,children:[(0,b.jsxs)(`div`,{className:`transfer-item-header`,children:[e.type===`upload`?(0,b.jsx)(ge,{size:14}):(0,b.jsx)(ae,{size:14}),(0,b.jsx)(`span`,{className:`transfer-item-name`,translate:`no`,children:e.fileName}),e.status===`downloading`&&e.type===`download`&&(0,b.jsx)(`button`,{onClick:()=>bt(e),className:`transfer-item-cancel`,children:(0,b.jsx)(i,{size:14})})]}),(0,b.jsxs)(`div`,{className:`transfer-progress-row`,children:[(0,b.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,b.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?`${ye(e.loaded)}/${ye(e.total)}`:`${e.progress}%`})]})]},e.id))]})})]})}var Ie=a(`/app/`)({component:T});export{Ie as Route};
@@ -1 +1 @@
1
- import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{C as r,D as i,T as a}from"./ui-BpDGD3IR.js";import{a as o}from"./i18n-NjvOSuV6.js";import{n as s,t as c}from"./smartphone-tRRFFO0a.js";import{t as l}from"./download-jEPn2njL.js";import{F as u}from"./index-BI8oNSVC.js";import{t as d}from"./MarketingHeader-ceWdRCpe.js";import{n as f}from"./format-CR8oUWq6.js";var p=r(`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`}]]),m=r(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),h=r(`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`}]]),g=r(`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`}]]),_=r(`tablet-smartphone`,[[`rect`,{width:`10`,height:`14`,x:`3`,y:`8`,rx:`2`,key:`1vrsiq`}],[`path`,{d:`M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4`,key:`1j4zmg`}],[`path`,{d:`M8 18h.01`,key:`lrp35t`}]]),v=t(e(),1),y=[`windows`,`macos`,`linux`],b=[`x64`,`arm64`],x=[`installer`];Object.freeze([{platform:`windows`,arch:`x64`},{platform:`windows`,arch:`arm64`},{platform:`macos`,arch:`x64`},{platform:`macos`,arch:`arm64`},{platform:`linux`,arch:`x64`},{platform:`linux`,arch:`arm64`}]);var S=new Set(y),C=new Set(b),w=new Set(x);function T(e){return typeof e==`object`&&!!e}function E(e){return typeof e==`string`&&e.trim().length>0}function D(e){return Number.isFinite(e)&&e>0}function O(e){return e===void 0||E(e)}function k(e){return T(e)?S.has(e.platform)&&C.has(e.arch)&&w.has(e.kind)&&E(e.filename)&&D(e.size)&&E(e.cid)&&E(e.githubUrl)&&O(e.r2Url):!1}function A(e){return!T(e)||!E(e.version)||!E(e.publishedAt)||!Array.isArray(e.assets)?!1:e.assets.every(k)}function j(e){return`${e.platform}:${e.arch}`}function M(e){return A(e)?e.assets.filter(e=>e.kind===`installer`):[]}function N(e){return Array.isArray(e)?e.some(e=>T(e)&&E(e.r2Url)):!1}function P(e,t=`r2`){return t===`r2`&&T(e)&&E(e.r2Url)?{source:`r2`,url:e.r2Url}:{source:`github`,url:T(e)&&E(e.githubUrl)?e.githubUrl:``}}var F=`https://github.com/most-people/most/releases/latest`,I=[{platform:`windows`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`windows`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`macos`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`macos`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`linux`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`linux`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F}];function L(e){return e.VITE_RELEASE_MANIFEST_URL||`${(e.VITE_R2_PUBLIC_BASE_URL||`https://download.most.box`).replace(/\/+$/,``)}/releases/latest.json`}function R({manifest:e,currentKey:t,requestedSource:n}){let r=e?M(e):[],i=r.length?r:I,a=N(i),o=n===`r2`&&a?`r2`:`github`,s=i.find(e=>j(e)===t)||null;return{assets:i,currentAsset:s,otherAssets:s?i.filter(e=>j(e)!==t):i,hasR2Assets:a,activeSource:o,currentDownload:s?P(s,o):null}}function z(e,t){return P(e,t)}var B=n(),V=L({VITE_RELEASE_MANIFEST_URL:void 0,VITE_R2_PUBLIC_BASE_URL:void 0}),H={windows:{name:`Windows`,ext:`.exe`,descKey:`download.platform.windows.desc`,icon:g},macos:{name:`macOS`,ext:`.dmg`,descKey:`download.platform.macos.desc`,icon:p},linux:{name:`Linux`,ext:`.AppImage`,descKey:`download.platform.linux.desc`,icon:h}},U=[{key:`ios`,nameKey:`download.platform.ios.name`,descKey:`download.platform.ios.desc`,icon:c},{key:`android`,nameKey:`download.platform.android.name`,descKey:`download.platform.android.desc`,icon:_}];function W(){return[navigator.userAgentData?.platform,navigator.platform,navigator.userAgent].filter(Boolean).join(` `).toLowerCase()}function G(){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 K(){let{t:e}=o(),[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(V?`loading`:`fallback`),[a,c]=(0,v.useState)(`windows:x64`),[d,p]=(0,v.useState)(`r2`);(0,v.useEffect)(()=>{c(G())},[]),(0,v.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(!A(e))throw Error(`Invalid download manifest`);n(e),i(`ready`)}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||(n(null),i(`fallback`))}),()=>e.abort()},[]),(0,v.useEffect)(()=>{r===`fallback`&&p(`github`)},[r]);let{currentAsset:h,otherAssets:g,hasR2Assets:_,activeSource:y}=R({manifest:t,currentKey:a,requestedSource:d}),b=t=>z(t,y).source===`r2`?e(`download.source.r2Mirror`):`GitHub Releases`,x=e=>z(e,y).url,S=t=>{let n=H[t.platform],r=n.icon;return(0,B.jsxs)(`article`,{className:`download-current-card`,children:[(0,B.jsxs)(`div`,{className:`download-current-main`,children:[(0,B.jsx)(`div`,{className:`download-current-icon`,children:(0,B.jsx)(r,{size:34})}),(0,B.jsxs)(`div`,{className:`download-current-copy`,children:[(0,B.jsxs)(`div`,{className:`download-current-labels`,children:[(0,B.jsxs)(`span`,{className:`download-current-kicker`,children:[(0,B.jsx)(u,{size:14}),e(`download.platform.currentSystem`)]}),(0,B.jsx)(`span`,{className:`download-current-recommended`,children:e(`download.platform.recommended`)})]}),(0,B.jsxs)(`div`,{className:`download-current-heading`,children:[(0,B.jsx)(`h3`,{children:n.name}),(0,B.jsx)(`span`,{children:t.arch})]}),(0,B.jsx)(`p`,{children:e(n.descKey)}),(0,B.jsxs)(`dl`,{className:`download-current-meta`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e(`download.platform.source`)}),(0,B.jsx)(`dd`,{children:b(t)})]}),t.size?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e(`download.platform.size`)}),(0,B.jsx)(`dd`,{children:f(t.size)})]}):null,t.cid?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:`CID`}),(0,B.jsx)(`dd`,{children:t.cid.slice(0,12)})]}):null]})]})]}),(0,B.jsxs)(`div`,{className:`download-current-actions`,children:[(0,B.jsx)(`span`,{children:e(`download.platform.matchedSystem`)}),(0,B.jsxs)(`a`,{href:x(t),className:`btn btn-primary`,children:[(0,B.jsx)(l,{size:17}),e(`download.platform.action`,{ext:n.ext})]}),(0,B.jsx)(`p`,{children:b(t)})]})]})},C=t=>{let n=H[t.platform],r=n.icon,i=j(t),o=i===a;return(0,B.jsxs)(`article`,{className:[`download-platform-card`,o?`is-recommended`:``].filter(Boolean).join(` `),children:[(0,B.jsx)(`div`,{className:`download-platform-icon`,children:(0,B.jsx)(r,{size:32})}),(0,B.jsxs)(`div`,{className:`download-platform-content`,children:[(0,B.jsxs)(`div`,{className:`download-platform-heading`,children:[(0,B.jsx)(`h3`,{children:n.name}),(0,B.jsx)(`span`,{children:t.arch})]}),(0,B.jsx)(`p`,{children:e(n.descKey)}),(0,B.jsxs)(`dl`,{className:`download-platform-meta`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e(`download.platform.source`)}),(0,B.jsx)(`dd`,{children:b(t)})]}),t.size?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e(`download.platform.size`)}),(0,B.jsx)(`dd`,{children:f(t.size)})]}):null,t.cid?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:`CID`}),(0,B.jsx)(`dd`,{children:t.cid.slice(0,12)})]}):null]}),(0,B.jsx)(`div`,{className:`download-platform-actions`,children:(0,B.jsxs)(`a`,{href:x(t),className:`btn btn-primary`,children:[(0,B.jsx)(l,{size:16}),e(`download.platform.action`,{ext:n.ext})]})})]}),o?(0,B.jsx)(`span`,{className:`download-recommended-badge`,children:e(`download.platform.current`)}):null]},i)},w=t=>{let n=t.icon;return(0,B.jsxs)(`article`,{className:`download-coming-soon-card`,children:[(0,B.jsx)(`div`,{className:`download-platform-icon download-coming-soon-icon`,children:(0,B.jsx)(n,{size:32})}),(0,B.jsxs)(`div`,{className:`download-platform-content`,children:[(0,B.jsxs)(`div`,{className:`download-platform-heading`,children:[(0,B.jsx)(`h3`,{children:e(t.nameKey)}),(0,B.jsx)(`span`,{children:e(`download.platform.comingSoon`)})]}),(0,B.jsx)(`p`,{children:e(t.descKey)})]})]},t.key)};return(0,B.jsxs)(`div`,{className:`download-options`,children:[(0,B.jsxs)(`div`,{className:`ui-segmented-control download-source-tabs`,role:`tablist`,"aria-label":e(`download.source.label`),children:[(0,B.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":y===`r2`,disabled:!_,className:y===`r2`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,onClick:()=>p(`r2`),children:[(0,B.jsx)(s,{size:15}),`Cloudflare R2`]}),(0,B.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":y===`github`,className:y===`github`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,onClick:()=>p(`github`),children:[(0,B.jsx)(m,{size:15}),`GitHub Releases`]})]}),(0,B.jsx)(`p`,{className:`download-source-note`,children:r===`loading`?e(`download.source.loading`):r===`ready`&&t?e(`download.source.ready`,{version:t.version}):e(`download.source.fallback`)}),h?(0,B.jsx)(`div`,{className:`download-current-platform`,"aria-label":e(`download.platform.currentSystem`),children:S(h)}):null,g.length?(0,B.jsxs)(`div`,{className:`download-other-platforms`,children:[(0,B.jsx)(`p`,{className:`download-other-platforms-title`,children:e(`download.platform.otherPlatforms`)}),(0,B.jsx)(`div`,{className:`download-platform-grid`,children:g.map(e=>C(e))}),(0,B.jsxs)(`div`,{className:`download-coming-soon`,children:[(0,B.jsx)(`p`,{className:`download-coming-soon-title`,children:e(`download.platform.mobilePlatforms`)}),(0,B.jsx)(`div`,{className:`download-coming-soon-grid`,children:U.map(e=>w(e))})]})]}):null]})}var q=[{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 J(){let{t:e}=o();return(0,v.useEffect)(()=>{document.title=e(`download.meta.title`)},[e]),(0,B.jsxs)(`div`,{className:`download-page`,children:[(0,B.jsx)(d,{}),(0,B.jsx)(`section`,{className:`download-hero`,children:(0,B.jsxs)(`div`,{className:`mkt-container`,children:[(0,B.jsx)(`div`,{className:`download-hero-icon`,children:(0,B.jsx)(l,{size:40})}),(0,B.jsx)(`h1`,{className:`download-hero-title`,children:e(`download.hero.title`)}),(0,B.jsx)(`p`,{className:`download-hero-desc`,children:e(`download.hero.desc`)})]})}),(0,B.jsx)(`section`,{className:`download-platforms`,children:(0,B.jsxs)(`div`,{className:`mkt-container`,children:[(0,B.jsx)(`h2`,{className:`download-section-title`,children:e(`download.platforms.title`)}),(0,B.jsx)(K,{})]})}),(0,B.jsx)(`section`,{className:`download-comparison`,children:(0,B.jsxs)(`div`,{className:`mkt-container`,children:[(0,B.jsx)(`h2`,{className:`download-section-title`,children:e(`download.comparison.title`)}),(0,B.jsx)(`div`,{className:`download-table-wrap`,children:(0,B.jsxs)(`table`,{className:`download-table`,children:[(0,B.jsx)(`thead`,{children:(0,B.jsxs)(`tr`,{children:[(0,B.jsx)(`th`,{children:e(`download.comparison.feature`)}),(0,B.jsx)(`th`,{children:e(`download.comparison.web`)}),(0,B.jsx)(`th`,{children:e(`download.comparison.desktop`)})]})}),(0,B.jsx)(`tbody`,{children:q.map(t=>(0,B.jsxs)(`tr`,{children:[(0,B.jsx)(`td`,{children:e(t.featureKey)}),(0,B.jsx)(`td`,{className:`col-web`,children:e(t.webKey)}),(0,B.jsx)(`td`,{className:`col-desktop`,children:e(t.desktopKey)})]},t.featureKey))})]})})]})}),(0,B.jsx)(`section`,{className:`download-cta`,children:(0,B.jsx)(`div`,{className:`mkt-container`,children:(0,B.jsx)(`p`,{className:`download-hero-desc`,children:e(`download.npmNote`)})})}),(0,B.jsx)(`section`,{className:`download-cta`,children:(0,B.jsx)(`div`,{className:`mkt-container`,children:(0,B.jsx)(i,{to:`/`,className:`btn btn-primary`,children:e(`common.backHome`)})})}),(0,B.jsx)(`footer`,{className:`mkt-footer`,children:(0,B.jsx)(`div`,{className:`mkt-container`,children:(0,B.jsx)(`div`,{className:`mkt-footer-inner`,children:(0,B.jsx)(`p`,{className:`mkt-footer-copy`,children:`MostBox`})})})})]})}var Y=a(`/download/`)({component:J});export{Y as Route};
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{C as r,D as i,T as a}from"./ui-BpDGD3IR.js";import{a as o}from"./i18n-NjvOSuV6.js";import{n as s,t as c}from"./smartphone-tRRFFO0a.js";import{t as l}from"./download-jEPn2njL.js";import{F as u}from"./index-C-_ZwxuN.js";import{t as d}from"./MarketingHeader-B45AaM29.js";import{n as f}from"./format-CR8oUWq6.js";var p=r(`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`}]]),m=r(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),h=r(`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`}]]),g=r(`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`}]]),_=r(`tablet-smartphone`,[[`rect`,{width:`10`,height:`14`,x:`3`,y:`8`,rx:`2`,key:`1vrsiq`}],[`path`,{d:`M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4`,key:`1j4zmg`}],[`path`,{d:`M8 18h.01`,key:`lrp35t`}]]),v=t(e(),1),y=[`windows`,`macos`,`linux`],b=[`x64`,`arm64`],x=[`installer`];Object.freeze([{platform:`windows`,arch:`x64`},{platform:`windows`,arch:`arm64`},{platform:`macos`,arch:`x64`},{platform:`macos`,arch:`arm64`},{platform:`linux`,arch:`x64`},{platform:`linux`,arch:`arm64`}]);var S=new Set(y),C=new Set(b),w=new Set(x);function T(e){return typeof e==`object`&&!!e}function E(e){return typeof e==`string`&&e.trim().length>0}function D(e){return Number.isFinite(e)&&e>0}function O(e){return e===void 0||E(e)}function k(e){return T(e)?S.has(e.platform)&&C.has(e.arch)&&w.has(e.kind)&&E(e.filename)&&D(e.size)&&E(e.cid)&&E(e.githubUrl)&&O(e.r2Url):!1}function A(e){return!T(e)||!E(e.version)||!E(e.publishedAt)||!Array.isArray(e.assets)?!1:e.assets.every(k)}function j(e){return`${e.platform}:${e.arch}`}function M(e){return A(e)?e.assets.filter(e=>e.kind===`installer`):[]}function N(e){return Array.isArray(e)?e.some(e=>T(e)&&E(e.r2Url)):!1}function P(e,t=`r2`){return t===`r2`&&T(e)&&E(e.r2Url)?{source:`r2`,url:e.r2Url}:{source:`github`,url:T(e)&&E(e.githubUrl)?e.githubUrl:``}}var F=`https://github.com/most-people/most/releases/latest`,I=[{platform:`windows`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`windows`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`macos`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`macos`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`linux`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F},{platform:`linux`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:F}];function L(e){return e.VITE_RELEASE_MANIFEST_URL||`${(e.VITE_R2_PUBLIC_BASE_URL||`https://download.most.box`).replace(/\/+$/,``)}/releases/latest.json`}function R({manifest:e,currentKey:t,requestedSource:n}){let r=e?M(e):[],i=r.length?r:I,a=N(i),o=n===`r2`&&a?`r2`:`github`,s=i.find(e=>j(e)===t)||null;return{assets:i,currentAsset:s,otherAssets:s?i.filter(e=>j(e)!==t):i,hasR2Assets:a,activeSource:o,currentDownload:s?P(s,o):null}}function z(e,t){return P(e,t)}var B=n(),V=L({VITE_RELEASE_MANIFEST_URL:void 0,VITE_R2_PUBLIC_BASE_URL:void 0}),H={windows:{name:`Windows`,ext:`.exe`,descKey:`download.platform.windows.desc`,icon:g},macos:{name:`macOS`,ext:`.dmg`,descKey:`download.platform.macos.desc`,icon:p},linux:{name:`Linux`,ext:`.AppImage`,descKey:`download.platform.linux.desc`,icon:h}},U=[{key:`ios`,nameKey:`download.platform.ios.name`,descKey:`download.platform.ios.desc`,icon:c},{key:`android`,nameKey:`download.platform.android.name`,descKey:`download.platform.android.desc`,icon:_}];function W(){return[navigator.userAgentData?.platform,navigator.platform,navigator.userAgent].filter(Boolean).join(` `).toLowerCase()}function G(){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 K(){let{t:e}=o(),[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(V?`loading`:`fallback`),[a,c]=(0,v.useState)(`windows:x64`),[d,p]=(0,v.useState)(`r2`);(0,v.useEffect)(()=>{c(G())},[]),(0,v.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(!A(e))throw Error(`Invalid download manifest`);n(e),i(`ready`)}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||(n(null),i(`fallback`))}),()=>e.abort()},[]),(0,v.useEffect)(()=>{r===`fallback`&&p(`github`)},[r]);let{currentAsset:h,otherAssets:g,hasR2Assets:_,activeSource:y}=R({manifest:t,currentKey:a,requestedSource:d}),b=t=>z(t,y).source===`r2`?e(`download.source.r2Mirror`):`GitHub Releases`,x=e=>z(e,y).url,S=t=>{let n=H[t.platform],r=n.icon;return(0,B.jsxs)(`article`,{className:`download-current-card`,children:[(0,B.jsxs)(`div`,{className:`download-current-main`,children:[(0,B.jsx)(`div`,{className:`download-current-icon`,children:(0,B.jsx)(r,{size:34})}),(0,B.jsxs)(`div`,{className:`download-current-copy`,children:[(0,B.jsxs)(`div`,{className:`download-current-labels`,children:[(0,B.jsxs)(`span`,{className:`download-current-kicker`,children:[(0,B.jsx)(u,{size:14}),e(`download.platform.currentSystem`)]}),(0,B.jsx)(`span`,{className:`download-current-recommended`,children:e(`download.platform.recommended`)})]}),(0,B.jsxs)(`div`,{className:`download-current-heading`,children:[(0,B.jsx)(`h3`,{children:n.name}),(0,B.jsx)(`span`,{children:t.arch})]}),(0,B.jsx)(`p`,{children:e(n.descKey)}),(0,B.jsxs)(`dl`,{className:`download-current-meta`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e(`download.platform.source`)}),(0,B.jsx)(`dd`,{children:b(t)})]}),t.size?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e(`download.platform.size`)}),(0,B.jsx)(`dd`,{children:f(t.size)})]}):null,t.cid?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:`CID`}),(0,B.jsx)(`dd`,{children:t.cid.slice(0,12)})]}):null]})]})]}),(0,B.jsxs)(`div`,{className:`download-current-actions`,children:[(0,B.jsx)(`span`,{children:e(`download.platform.matchedSystem`)}),(0,B.jsxs)(`a`,{href:x(t),className:`btn btn-primary`,children:[(0,B.jsx)(l,{size:17}),e(`download.platform.action`,{ext:n.ext})]}),(0,B.jsx)(`p`,{children:b(t)})]})]})},C=t=>{let n=H[t.platform],r=n.icon,i=j(t),o=i===a;return(0,B.jsxs)(`article`,{className:[`download-platform-card`,o?`is-recommended`:``].filter(Boolean).join(` `),children:[(0,B.jsx)(`div`,{className:`download-platform-icon`,children:(0,B.jsx)(r,{size:32})}),(0,B.jsxs)(`div`,{className:`download-platform-content`,children:[(0,B.jsxs)(`div`,{className:`download-platform-heading`,children:[(0,B.jsx)(`h3`,{children:n.name}),(0,B.jsx)(`span`,{children:t.arch})]}),(0,B.jsx)(`p`,{children:e(n.descKey)}),(0,B.jsxs)(`dl`,{className:`download-platform-meta`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e(`download.platform.source`)}),(0,B.jsx)(`dd`,{children:b(t)})]}),t.size?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e(`download.platform.size`)}),(0,B.jsx)(`dd`,{children:f(t.size)})]}):null,t.cid?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:`CID`}),(0,B.jsx)(`dd`,{children:t.cid.slice(0,12)})]}):null]}),(0,B.jsx)(`div`,{className:`download-platform-actions`,children:(0,B.jsxs)(`a`,{href:x(t),className:`btn btn-primary`,children:[(0,B.jsx)(l,{size:16}),e(`download.platform.action`,{ext:n.ext})]})})]}),o?(0,B.jsx)(`span`,{className:`download-recommended-badge`,children:e(`download.platform.current`)}):null]},i)},w=t=>{let n=t.icon;return(0,B.jsxs)(`article`,{className:`download-coming-soon-card`,children:[(0,B.jsx)(`div`,{className:`download-platform-icon download-coming-soon-icon`,children:(0,B.jsx)(n,{size:32})}),(0,B.jsxs)(`div`,{className:`download-platform-content`,children:[(0,B.jsxs)(`div`,{className:`download-platform-heading`,children:[(0,B.jsx)(`h3`,{children:e(t.nameKey)}),(0,B.jsx)(`span`,{children:e(`download.platform.comingSoon`)})]}),(0,B.jsx)(`p`,{children:e(t.descKey)})]})]},t.key)};return(0,B.jsxs)(`div`,{className:`download-options`,children:[(0,B.jsxs)(`div`,{className:`ui-segmented-control download-source-tabs`,role:`tablist`,"aria-label":e(`download.source.label`),children:[(0,B.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":y===`r2`,disabled:!_,className:y===`r2`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,onClick:()=>p(`r2`),children:[(0,B.jsx)(s,{size:15}),`Cloudflare R2`]}),(0,B.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":y===`github`,className:y===`github`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,onClick:()=>p(`github`),children:[(0,B.jsx)(m,{size:15}),`GitHub Releases`]})]}),(0,B.jsx)(`p`,{className:`download-source-note`,children:r===`loading`?e(`download.source.loading`):r===`ready`&&t?e(`download.source.ready`,{version:t.version}):e(`download.source.fallback`)}),h?(0,B.jsx)(`div`,{className:`download-current-platform`,"aria-label":e(`download.platform.currentSystem`),children:S(h)}):null,g.length?(0,B.jsxs)(`div`,{className:`download-other-platforms`,children:[(0,B.jsx)(`p`,{className:`download-other-platforms-title`,children:e(`download.platform.otherPlatforms`)}),(0,B.jsx)(`div`,{className:`download-platform-grid`,children:g.map(e=>C(e))}),(0,B.jsxs)(`div`,{className:`download-coming-soon`,children:[(0,B.jsx)(`p`,{className:`download-coming-soon-title`,children:e(`download.platform.mobilePlatforms`)}),(0,B.jsx)(`div`,{className:`download-coming-soon-grid`,children:U.map(e=>w(e))})]})]}):null]})}var q=[{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 J(){let{t:e}=o();return(0,v.useEffect)(()=>{document.title=e(`download.meta.title`)},[e]),(0,B.jsxs)(`div`,{className:`download-page`,children:[(0,B.jsx)(d,{}),(0,B.jsx)(`section`,{className:`download-hero`,children:(0,B.jsxs)(`div`,{className:`mkt-container`,children:[(0,B.jsx)(`div`,{className:`download-hero-icon`,children:(0,B.jsx)(l,{size:40})}),(0,B.jsx)(`h1`,{className:`download-hero-title`,children:e(`download.hero.title`)}),(0,B.jsx)(`p`,{className:`download-hero-desc`,children:e(`download.hero.desc`)})]})}),(0,B.jsx)(`section`,{className:`download-platforms`,children:(0,B.jsxs)(`div`,{className:`mkt-container`,children:[(0,B.jsx)(`h2`,{className:`download-section-title`,children:e(`download.platforms.title`)}),(0,B.jsx)(K,{})]})}),(0,B.jsx)(`section`,{className:`download-comparison`,children:(0,B.jsxs)(`div`,{className:`mkt-container`,children:[(0,B.jsx)(`h2`,{className:`download-section-title`,children:e(`download.comparison.title`)}),(0,B.jsx)(`div`,{className:`download-table-wrap`,children:(0,B.jsxs)(`table`,{className:`download-table`,children:[(0,B.jsx)(`thead`,{children:(0,B.jsxs)(`tr`,{children:[(0,B.jsx)(`th`,{children:e(`download.comparison.feature`)}),(0,B.jsx)(`th`,{children:e(`download.comparison.web`)}),(0,B.jsx)(`th`,{children:e(`download.comparison.desktop`)})]})}),(0,B.jsx)(`tbody`,{children:q.map(t=>(0,B.jsxs)(`tr`,{children:[(0,B.jsx)(`td`,{children:e(t.featureKey)}),(0,B.jsx)(`td`,{className:`col-web`,children:e(t.webKey)}),(0,B.jsx)(`td`,{className:`col-desktop`,children:e(t.desktopKey)})]},t.featureKey))})]})})]})}),(0,B.jsx)(`section`,{className:`download-cta`,children:(0,B.jsx)(`div`,{className:`mkt-container`,children:(0,B.jsx)(`p`,{className:`download-hero-desc`,children:e(`download.npmNote`)})})}),(0,B.jsx)(`section`,{className:`download-cta`,children:(0,B.jsx)(`div`,{className:`mkt-container`,children:(0,B.jsx)(i,{to:`/`,className:`btn btn-primary`,children:e(`common.backHome`)})})}),(0,B.jsx)(`footer`,{className:`mkt-footer`,children:(0,B.jsx)(`div`,{className:`mkt-container`,children:(0,B.jsx)(`div`,{className:`mkt-footer-inner`,children:(0,B.jsx)(`p`,{className:`mkt-footer-copy`,children:`MostBox`})})})})]})}var Y=a(`/download/`)({component:J});export{Y as Route};