most-box 0.2.5 → 0.2.6

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 (126) hide show
  1. package/electron/main.js +58 -4
  2. package/electron/updateChecker.js +6 -2
  3. package/electron/updateChecker.test.js +24 -0
  4. package/out/admin/index.html +0 -0
  5. package/out/app/index.html +0 -0
  6. package/out/assets/FilePreviewOverlay-DqH7uKb7.js +1 -0
  7. package/out/assets/LanguageToggle-BoBNesNU.js +1 -0
  8. package/out/assets/{MarketingHeader-B3vYocUz.js → MarketingHeader-Derv67Vs.js} +1 -1
  9. package/out/assets/MarketingLayout-fc2mymJm.js +1 -0
  10. package/out/assets/MarketingThemeToggle-BLuQ_uE-.js +1 -0
  11. package/out/assets/{MilkdownEditor-CRA9oxMp.js → MilkdownEditor-f2vRIY21.js} +1 -1
  12. package/out/assets/OpenSidebarButton-BKX4B_yG.js +1 -0
  13. package/out/assets/SidebarAccount-D6wj_ijc.js +1 -0
  14. package/out/assets/SidebarHomeLink-ByOHwlH8.js +1 -0
  15. package/out/assets/arrow-right-BCi9KXDX.js +1 -0
  16. package/out/assets/circle-alert-Dyc-4wje.js +1 -0
  17. package/out/assets/cloud-DfaFxhLj.js +1 -0
  18. package/out/assets/copy-D8HSH5Ki.js +1 -0
  19. package/out/assets/download-Q6jKMPIG.js +1 -0
  20. package/out/assets/{downloadValidation-eInMiVSX.js → downloadValidation-B-w8D_0W.js} +1 -1
  21. package/out/assets/external-link-GQcZwDTT.js +1 -0
  22. package/out/assets/file-text-CVl5SZPJ.js +1 -0
  23. package/out/assets/folder-BtIdk-YN.js +1 -0
  24. package/out/assets/hard-drive-Cew_LD0N.js +1 -0
  25. package/out/assets/i18n--maTEG0d.js +1 -0
  26. package/out/assets/{index-DEu4udaa.css → index-B2-kpfu5.css} +1 -1
  27. package/out/assets/index-Cg4kEvx8.js +31 -0
  28. package/out/assets/index.lazy-BAq__8ON.js +2 -0
  29. package/out/assets/index.lazy-BPh8D_H9.js +1 -0
  30. package/out/assets/index.lazy-Bn4kDToA.js +1 -0
  31. package/out/assets/index.lazy-BqHgW5fE.js +1 -0
  32. package/out/assets/index.lazy-CLYRM_kh.js +1 -0
  33. package/out/assets/index.lazy-CMSCQucz.js +1 -0
  34. package/out/assets/index.lazy-Cut4XkPH.js +1 -0
  35. package/out/assets/index.lazy-DKOSJyaQ.js +2 -0
  36. package/out/assets/index.lazy-DjPbRI_L.js +1 -0
  37. package/out/assets/index.lazy-DujygWms.js +1 -0
  38. package/out/assets/index.lazy-DxAGUwlf.js +3 -0
  39. package/out/assets/index.lazy-WXDn5r_l.js +1 -0
  40. package/out/assets/index.lazy-ghLI7p1x.js +1 -0
  41. package/out/assets/key-round-D1zfZzvP.js +1 -0
  42. package/out/assets/loader-BSclU8WE.js +1 -0
  43. package/out/assets/lock-C9VP0ezG.js +1 -0
  44. package/out/assets/message-square-Dg3YjjmO.js +1 -0
  45. package/out/assets/mp-FQvFEcYM.js +1 -0
  46. package/out/assets/music-BeCPak70.js +1 -0
  47. package/out/assets/notebook-pen-DO1CJiqn.js +1 -0
  48. package/out/assets/play-CnhsLC5C.js +1 -0
  49. package/out/assets/plus-BpjwXzbO.js +1 -0
  50. package/out/assets/save-BVeMjaW1.js +1 -0
  51. package/out/assets/search-CsAnnJyH.js +1 -0
  52. package/out/assets/send-C1J-eGNs.js +1 -0
  53. package/out/assets/shield-check-CZYDVJoh.js +1 -0
  54. package/out/assets/trash-2-C_LtCiNh.js +1 -0
  55. package/out/assets/triangle-alert-DOwc-41Y.js +1 -0
  56. package/out/assets/ui-PnUvY9zL.js +4 -0
  57. package/out/assets/upload-DgxxldtV.js +1 -0
  58. package/out/assets/{useChannelMessages-D_306Ymv.js → useChannelMessages-CZHmH5n-.js} +1 -1
  59. package/out/assets/useGameRoom-B8Ds_PKe.js +1 -0
  60. package/out/assets/userProfile-CRGZ8PUF.js +1 -0
  61. package/out/assets/wallet-DBTWBi6K.js +1 -0
  62. package/out/assets/wifi-pP6SJLcu.js +1 -0
  63. package/out/chat/index.html +0 -0
  64. package/out/chat/join/index.html +0 -0
  65. package/out/download/index.html +2 -2
  66. package/out/game/gandengyan/index.html +0 -0
  67. package/out/game/index.html +0 -0
  68. package/out/game/zhajinhua/index.html +0 -0
  69. package/out/index.html +2 -2
  70. package/out/note/index.html +0 -0
  71. package/out/ping/index.html +2 -2
  72. package/out/profile/index.html +0 -0
  73. package/out/web3/index.html +0 -0
  74. package/package.json +1 -1
  75. package/out/assets/AppShell-oF8wPXde.js +0 -1
  76. package/out/assets/FilePreviewOverlay-DTBZt89J.js +0 -1
  77. package/out/assets/LanguageToggle-HAJ3D6Ne.js +0 -1
  78. package/out/assets/MarketingLayout-CapVVXTP.js +0 -1
  79. package/out/assets/MarketingThemeToggle-B47H68ro.js +0 -1
  80. package/out/assets/OpenSidebarButton-D3JRO-Hh.js +0 -1
  81. package/out/assets/SidebarAccount-8_hQAYXx.js +0 -1
  82. package/out/assets/arrow-right-mNO53HQi.js +0 -1
  83. package/out/assets/circle-alert-CofRTRHr.js +0 -1
  84. package/out/assets/cloud-DAGFCFIp.js +0 -1
  85. package/out/assets/copy-5aEv78Eq.js +0 -1
  86. package/out/assets/download-Bhqn6hL1.js +0 -1
  87. package/out/assets/external-link-CNR21yFA.js +0 -1
  88. package/out/assets/file-text-CFfvvCnM.js +0 -1
  89. package/out/assets/folder-BGJCjyba.js +0 -1
  90. package/out/assets/hard-drive-4vHpA5kz.js +0 -1
  91. package/out/assets/index--p9MKNEl.js +0 -31
  92. package/out/assets/index.lazy-2K3f5PZe.js +0 -1
  93. package/out/assets/index.lazy-B-2etVwK.js +0 -1
  94. package/out/assets/index.lazy-B4WTQF5E.js +0 -1
  95. package/out/assets/index.lazy-BFfsQrRe.js +0 -1
  96. package/out/assets/index.lazy-C5udBnrO.js +0 -1
  97. package/out/assets/index.lazy-C84HrZpm.js +0 -1
  98. package/out/assets/index.lazy-CBC2N5p_.js +0 -3
  99. package/out/assets/index.lazy-CzANViGX.js +0 -1
  100. package/out/assets/index.lazy-D3cw7yyA.js +0 -2
  101. package/out/assets/index.lazy-DVVZzbCN.js +0 -1
  102. package/out/assets/index.lazy-DxZgywoV.js +0 -1
  103. package/out/assets/index.lazy-RBLN4SE9.js +0 -1
  104. package/out/assets/index.lazy-s4E2z9AY.js +0 -2
  105. package/out/assets/key-round-BpSdpOHi.js +0 -1
  106. package/out/assets/loader-ByMmV2_4.js +0 -1
  107. package/out/assets/lock-C0pdaery.js +0 -1
  108. package/out/assets/message-square-Eu86zZup.js +0 -1
  109. package/out/assets/mp-CJWipckT.js +0 -1
  110. package/out/assets/music-Btrhub6z.js +0 -1
  111. package/out/assets/notebook-pen-CfdFgaDE.js +0 -1
  112. package/out/assets/play-D5r9Yvbq.js +0 -1
  113. package/out/assets/plus-Mlh7r_bm.js +0 -1
  114. package/out/assets/refresh-cw--JB8k6mH.js +0 -1
  115. package/out/assets/save-DN4eprSt.js +0 -1
  116. package/out/assets/search-CbzMyENy.js +0 -1
  117. package/out/assets/send-D8p6f8OD.js +0 -1
  118. package/out/assets/shield-check-c0labdRH.js +0 -1
  119. package/out/assets/trash-2-zdhWec_U.js +0 -1
  120. package/out/assets/triangle-alert-CO_5uXy2.js +0 -1
  121. package/out/assets/upload-BD23c5Pz.js +0 -1
  122. package/out/assets/useGameRoom-CURx56m6.js +0 -1
  123. package/out/assets/userProfile-oeBvU6ch.js +0 -1
  124. package/out/assets/userStore-q0BBZsIV.js +0 -4
  125. package/out/assets/wallet-DmZMdK9A.js +0 -1
  126. package/out/assets/wifi-CVqaPDcv.js +0 -1
@@ -0,0 +1 @@
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{E as r,O as i,c as a,r as o,u as s,w as c}from"./ui-PnUvY9zL.js";import{a as l}from"./i18n--maTEG0d.js";import{o as u}from"./LanguageToggle-BoBNesNU.js";import{t as ee}from"./download-Q6jKMPIG.js";import{t as d}from"./external-link-GQcZwDTT.js";import{a as f,i as p,n as m,r as h}from"./mp-FQvFEcYM.js";import{t as g}from"./key-round-D1zfZzvP.js";import{t as _}from"./loader-BSclU8WE.js";import{t as v}from"./save-BVeMjaW1.js";import{t as te}from"./shield-check-CZYDVJoh.js";import{t as ne}from"./upload-DgxxldtV.js";import{a as y,c as b,f as x,i as S,l as C,n as w,o as T,r as E,s as D}from"./index-Cg4kEvx8.js";import{t as O}from"./MarketingHeader-Derv67Vs.js";import{t as k}from"./MarketingLayout-fc2mymJm.js";var re=c(`cloud-download`,[[`path`,{d:`M12 13v8l-4-4`,key:`1f5nwf`}],[`path`,{d:`m12 21 4-4`,key:`1lfcce`}],[`path`,{d:`M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284`,key:`ui1hmy`}]]),ie=c(`cloud-upload`,[[`path`,{d:`M12 13v8`,key:`1l5pq0`}],[`path`,{d:`M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242`,key:`1pljnt`}],[`path`,{d:`m8 17 4-4 4 4`,key:`1quai1`}]]),ae=c(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),oe=c(`wallet-cards`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2`,key:`4125el`}],[`path`,{d:`M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21`,key:`1dpki6`}]]),A=t(e(),1),j=n(),se=[{value:``,labelKey:`profile.avatar.address`},...E.map(e=>({value:y(e),labelKey:`profile.avatar.${e}`}))];function ce(e){if(T(e))return!0;try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function M(){let{t:e}=l(),t=b(e=>e.addToast),n=b(e=>e.hasBackend),r=a(e=>e.identity),c=a(e=>e.openLoginModal),y=a(e=>e.setUserIdentity),T=a(e=>e.logoutUser),E=w(),[M,F]=(0,A.useState)(``),[I,L]=(0,A.useState)(``),[R,z]=(0,A.useState)(``),[B,V]=(0,A.useState)(null),[H,U]=(0,A.useState)(!1),W=(0,j.jsx)(O,{});(0,A.useEffect)(()=>{if(!r){F(``),L(``),z(``);return}F(r.displayName||r.username),L(D(r.avatar)||r.avatar||``),z(``)},[r]);let G=(0,A.useMemo)(()=>r?s(r.danger):null,[r]),le=(0,A.useMemo)(()=>G?m(G.private_key,G.ed_public_key):``,[G]);if(!r)return(0,j.jsx)(k,{header:W,children:(0,j.jsx)(`section`,{className:`profile-page`,children:(0,j.jsx)(`div`,{className:`profile-container narrow`,children:(0,j.jsxs)(`div`,{className:`profile-empty glass`,children:[(0,j.jsx)(`div`,{className:`profile-empty-icon`,children:(0,j.jsx)(p,{size:34})}),(0,j.jsx)(`h1`,{children:e(`profile.signedOut.title`)}),(0,j.jsx)(`p`,{children:e(`profile.signedOut.desc`)}),(0,j.jsxs)(`button`,{type:`button`,className:`btn btn-primary`,onClick:c,children:[(0,j.jsx)(p,{size:16}),e(`account.signIn`)]})]})})})});let ue=D(r.avatar)||r.avatar||``,de=S(r.address,r.avatar),K=r.address.toLowerCase(),fe=I.trim().length>0;async function q(r){if(n===!0)try{await C.put(`/api/user/profile`,{json:{displayName:r.displayName||r.username,avatar:r.avatar||``,updatedAt:r.profileUpdatedAt||Date.now()}}).json()}catch(n){t(await x(n,e(`profile.backup.error.profileSaveFailed`)),`error`)}}function J(n){if(!r)return;let i={...r,avatar:n||void 0,profileUpdatedAt:Date.now()};y(i),q(i),z(``),t(e(`profile.toast.avatarUpdated`),`success`)}function pe(){if(!r)return;let n=M.trim()||r.username,i={...r,displayName:n,profileUpdatedAt:Date.now()};y(i),q(i),F(n),t(e(`profile.toast.saved`),`success`)}function me(){let t=I.trim();if(!t){J(void 0);return}if(!ce(t)){z(e(`nav.avatarUrlInvalid`));return}J(t)}function he(){T(),U(!1)}function ge(){V({title:e(`profile.backup.confirm.backupTitle`),message:e(`profile.backup.confirm.backupMessage`),confirmText:e(`profile.backup.action.cloudBackup`),onConfirm:async()=>{V(null),await E.backupToCloud()}})}function _e(){V({title:e(`profile.backup.confirm.restoreTitle`),message:e(`profile.backup.confirm.restoreMessage`),confirmText:e(`profile.backup.action.cloudRestore`),onConfirm:async()=>{V(null),await E.restoreFromCloud({confirm:!1})}})}function Y(){return new Promise(t=>{let n=e=>{V(null),t(e)};V({title:e(`profile.backup.confirm.importTitle`),message:e(`profile.backup.confirm.restore`),confirmText:e(`profile.backup.action.importLocal`),onConfirm:()=>n(!0),onClose:()=>n(!1)})})}function ve(){E.importLocalBackup({requestConfirm:Y})}let X=E.action===`backup`,Z=E.action===`restore`,Q=E.action===`export`,$=E.action===`import`;return(0,j.jsxs)(k,{header:W,children:[(0,j.jsx)(`section`,{className:`profile-page`,children:(0,j.jsxs)(`div`,{className:`profile-container`,children:[(0,j.jsxs)(`section`,{className:`profile-panel profile-backup-panel`,children:[(0,j.jsx)(`div`,{className:`profile-panel-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:e(`profile.section.backup`)}),(0,j.jsx)(`p`,{children:e(`profile.section.backup.desc`)})]})}),(0,j.jsxs)(`div`,{className:`profile-backup-actions`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`btn btn-secondary ${Q?`btn-loading`:``}`,onClick:E.exportLocalBackup,disabled:E.busy,children:[Q?(0,j.jsx)(_,{size:16,className:`ui-spinner`}):(0,j.jsx)(ee,{size:16}),e(Q?`profile.backup.status.exporting`:`profile.backup.action.exportLocal`)]}),(0,j.jsxs)(`button`,{type:`button`,className:`btn btn-secondary ${$?`btn-loading`:``}`,onClick:ve,disabled:E.busy,children:[$?(0,j.jsx)(_,{size:16,className:`ui-spinner`}):(0,j.jsx)(ne,{size:16}),e($?`profile.backup.status.importing`:`profile.backup.action.importLocal`)]}),(0,j.jsxs)(`button`,{type:`button`,className:`btn btn-primary ${X?`btn-loading`:``}`,onClick:ge,disabled:E.busy,children:[X?(0,j.jsx)(_,{size:16,className:`ui-spinner`}):(0,j.jsx)(ie,{size:16}),e(X?`profile.backup.status.backingUp`:`profile.backup.action.cloudBackup`)]}),(0,j.jsxs)(`button`,{type:`button`,className:`btn btn-secondary ${Z?`btn-loading`:``}`,onClick:_e,disabled:E.busy,children:[Z?(0,j.jsx)(_,{size:16,className:`ui-spinner`}):(0,j.jsx)(re,{size:16}),e(Z?`profile.backup.status.restoring`:`profile.backup.action.cloudRestore`)]})]})]}),(0,j.jsxs)(`header`,{className:`profile-header`,children:[(0,j.jsx)(`img`,{className:`profile-avatar-large`,src:de,alt:``}),(0,j.jsxs)(`div`,{className:`profile-heading`,children:[(0,j.jsx)(`p`,{className:`profile-kicker`,children:e(`profile.kicker`)}),(0,j.jsx)(`h1`,{children:r.displayName||r.username}),(0,j.jsxs)(`div`,{className:`profile-address-line`,children:[(0,j.jsx)(`code`,{translate:`no`,children:K}),(0,j.jsx)(h,{text:K}),(0,j.jsxs)(`a`,{href:`https://debank.com/profile/${r.address}`,target:`_blank`,rel:`noopener noreferrer`,className:`btn btn-secondary btn-sm`,children:[(0,j.jsx)(d,{size:14}),e(`web3.action.view`)]})]})]}),(0,j.jsxs)(`button`,{type:`button`,className:`btn btn-secondary profile-logout-btn`,onClick:()=>U(!0),children:[(0,j.jsx)(ae,{size:16}),e(`account.logout`)]})]}),(0,j.jsxs)(`div`,{className:`profile-grid`,children:[(0,j.jsxs)(`section`,{className:`profile-panel`,children:[(0,j.jsx)(`div`,{className:`profile-panel-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:e(`profile.section.account`)}),(0,j.jsx)(`p`,{children:e(`profile.section.account.desc`)})]})}),(0,j.jsxs)(`label`,{className:`profile-field`,children:[(0,j.jsx)(`span`,{children:e(`profile.label.displayName`)}),(0,j.jsxs)(`div`,{className:`profile-field-row`,children:[(0,j.jsx)(`input`,{className:`input`,value:M,onChange:e=>F(e.target.value),placeholder:e(`nav.displayNamePlaceholder`)}),(0,j.jsxs)(`button`,{type:`button`,className:`btn btn-primary`,onClick:pe,children:[(0,j.jsx)(v,{size:16}),e(`profile.action.save`)]})]})]}),(0,j.jsxs)(`div`,{className:`profile-facts`,children:[(0,j.jsx)(N,{label:e(`profile.label.username`),value:r.username}),(0,j.jsx)(N,{label:e(`web3.label.address`),value:r.address,copy:!0})]})]}),(0,j.jsxs)(`section`,{className:`profile-panel`,children:[(0,j.jsx)(`div`,{className:`profile-panel-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:e(`profile.section.avatar`)}),(0,j.jsx)(`p`,{children:e(`profile.section.avatar.desc`)})]})}),(0,j.jsx)(`div`,{className:`profile-avatar-grid`,role:`list`,children:se.map(t=>{let n=ue===t.value;return(0,j.jsxs)(`button`,{type:`button`,className:[`profile-avatar-option`,n?`selected`:``].filter(Boolean).join(` `),onClick:()=>J(t.value),"aria-pressed":n,title:e(t.labelKey),children:[(0,j.jsx)(`img`,{src:S(r.address,t.value),alt:``,"aria-hidden":`true`}),(0,j.jsx)(`span`,{children:e(t.labelKey)}),n&&(0,j.jsx)(`span`,{className:`profile-avatar-check`,children:(0,j.jsx)(u,{size:14})})]},t.value||`address`)})}),(0,j.jsxs)(`div`,{className:`profile-avatar-url`,children:[(0,j.jsxs)(`label`,{className:`profile-field`,htmlFor:`profile-avatar-url`,children:[(0,j.jsx)(`span`,{children:e(`profile.label.customAvatar`)}),(0,j.jsxs)(`div`,{className:`profile-field-row`,children:[(0,j.jsx)(`input`,{id:`profile-avatar-url`,className:`input`,value:I,onChange:e=>{L(e.target.value),z(``)},placeholder:e(`nav.avatarUrlPlaceholder`)}),(0,j.jsxs)(`button`,{type:`button`,className:`btn btn-secondary`,onClick:me,disabled:!fe,children:[(0,j.jsx)(v,{size:16}),e(`profile.action.save`)]})]})]}),R&&(0,j.jsx)(`p`,{className:`profile-error`,children:R})]})]})]}),(0,j.jsxs)(`section`,{className:`profile-panel profile-identity-panel`,children:[(0,j.jsxs)(`div`,{className:`profile-panel-header`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:e(`profile.section.identity`)}),(0,j.jsx)(`p`,{children:e(`profile.section.identity.desc`)})]}),(0,j.jsxs)(i,{to:`/web3/`,hash:`wallet`,className:`btn btn-secondary`,children:[(0,j.jsx)(oe,{size:16}),e(`profile.action.openWallet`)]})]}),(0,j.jsxs)(`div`,{className:`profile-key-grid`,children:[G&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(P,{title:e(`web3.label.ed25519Public`),icon:(0,j.jsx)(f,{size:18}),value:G.ed_public_key}),(0,j.jsx)(P,{title:e(`web3.label.x25519Public`),icon:(0,j.jsx)(g,{size:18}),value:G.public_key})]}),(0,j.jsx)(P,{title:`IPNS ID`,icon:(0,j.jsx)(te,{size:18}),value:le||`-`})]})]})]})}),H&&(0,j.jsx)(o,{title:e(`account.logoutTitle`),message:e(`account.logoutConfirm`),confirmText:e(`account.logout`),danger:!0,onConfirm:he,onClose:()=>U(!1)}),B&&(0,j.jsx)(o,{title:B.title,message:B.message,confirmText:B.confirmText,danger:B.danger,onConfirm:B.onConfirm,onClose:B.onClose||(()=>V(null))})]})}function N({label:e,value:t,copy:n=!1}){return(0,j.jsxs)(`div`,{className:`profile-fact`,children:[(0,j.jsx)(`span`,{children:e}),(0,j.jsxs)(`div`,{className:`profile-fact-value`,children:[(0,j.jsx)(`code`,{translate:`no`,children:t}),n&&(0,j.jsx)(h,{text:t})]})]})}function P({title:e,icon:t,value:n}){return(0,j.jsxs)(`div`,{className:`profile-key-card`,children:[(0,j.jsxs)(`div`,{className:`profile-key-card-header`,children:[(0,j.jsx)(`span`,{className:`profile-key-card-icon`,children:t}),(0,j.jsx)(`span`,{children:e})]}),(0,j.jsxs)(`div`,{className:`mono-row`,children:[(0,j.jsx)(`code`,{className:`mono`,translate:`no`,children:n}),(0,j.jsx)(h,{text:n})]})]})}var F=r(`/profile/`)({component:M});export{F as Route};
@@ -0,0 +1 @@
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{E as r,c as i,w as a}from"./ui-PnUvY9zL.js";import{a as o}from"./i18n--maTEG0d.js";import{a as s,r as c}from"./LanguageToggle-BoBNesNU.js";import{t as ee}from"./copy-D8HSH5Ki.js";import{n as te}from"./SidebarHomeLink-ByOHwlH8.js";import{t as ne}from"./play-CnhsLC5C.js";import{t as re}from"./send-C1J-eGNs.js";import{i as ie,n as ae,r as oe,t as se}from"./useGameRoom-B8Ds_PKe.js";import{c as l,i as u}from"./index-Cg4kEvx8.js";var ce=a(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),d=t(e(),1),f=[`S`,`H`,`C`,`D`],p=[`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`J`,`Q`,`K`,`A`,`2`],m=p.filter(e=>e!==`2`),h=new Map(p.map((e,t)=>[e,t+3])),le=5,g=20,_=1e3;function ue({roomCode:e,ownerAddress:t,ownerName:n,players:r=[],random:i=Math.random}){let a=T(r);return a.some(e=>e.address===K(t))||a.unshift({address:K(t),name:q(n),avatar:``}),v({id:String(e||``).toUpperCase(),ownerAddress:K(t),status:`lobby`,seq:1,players:a.slice(0,6).map((e,t)=>({address:e.address,name:q(e.name),avatar:J(e.avatar),seat:t,hand:[],handCount:0,score:_,playedCards:0})),deck:[],discard:[],table:null,currentSeat:0,lastWinnerSeat:null,previousWinnerSeat:null,passSeats:[],baseScore:1,bombCount:0,diceRolls:[],roundResult:null,log:[`房间已创建`],winnerSeat:null,random:i})}function de(e,t=[]){let n=y(e);if(!n||n.status!==`lobby`)return n;let r=new Map(n.players.map(e=>[e.address,e.score]));return n.players=T(t).slice(0,6).map((e,t)=>({address:e.address,name:q(e.name),avatar:J(e.avatar),seat:t,hand:[],handCount:0,score:r.get(e.address)??_,playedCards:0})),n.seq+=1,v(n)}function fe(e,t=Math.random){let n=y(e);if(!n||n.players.length<2)throw Error(`至少需要 2 名玩家`);n.deck=M(j(),t),n.discard=[],n.table=null,n.passSeats=[],n.winnerSeat=null,n.roundResult=null,n.baseScore=1,n.bombCount=0,n.status=`playing`;for(let e of L(n))e.hand=N(n,le),e.handCount=e.hand.length,e.playedCards=0,P(e.hand);let r=O(n,t);return n.currentSeat=r.seat,n.lastWinnerSeat=null,n.log=[`新一局开始,${r.name} 先出牌`],n.diceRolls.length>0&&n.log.unshift(`骰子结果:${n.diceRolls.map(e=>`${e.name} ${e.value}`).join(`,`)}`),n.seq+=1,v(n)}function pe(e,t,n){let r=y(e),i=F(r),a=K(t);if(!i||i.address!==a)return{ok:!1,error:`还没轮到你`,state:v(r)};let o=n.map(e=>i.hand.find(t=>t.id===e));if(o.length===0||o.some(e=>!e))return{ok:!1,error:`手牌不存在`,state:v(r)};let s=ge(o);return s?w(s,r.table?.combo)?(o.sort(V),i.hand=i.hand.filter(e=>!n.includes(e.id)),i.handCount=i.hand.length,i.playedCards+=o.length,r.discard.push(...o),r.table={seat:i.seat,playerName:i.name,cards:o,combo:s},r.passSeats=[],r.lastWinnerSeat=i.seat,s.type===`bomb`&&(r.bombCount+=1,r.baseScore*=2),r.log.unshift(`${i.name} 出 ${s.label} ${o.map(G).join(` `)}${s.type===`bomb`?`,底分 ${r.baseScore}`:``}`),i.hand.length===0?k(r,i):R(r),r.seq+=1,{ok:!0,state:v(r)}):{ok:!1,error:`出的牌压不过上一手`,state:v(r)}:{ok:!1,error:`这个牌型不合法`,state:v(r)}}function me(e,t){let n=y(e),r=F(n),i=K(t);return!r||r.address!==i?{ok:!1,error:`还没轮到你`,state:v(n)}:n.table?(n.passSeats.includes(r.seat)||n.passSeats.push(r.seat),n.log.unshift(`${r.name} 不要`),I(n).map(e=>e.seat).filter(e=>e!==n.lastWinnerSeat).every(e=>n.passSeats.includes(e))?(A(n),n.currentSeat=n.lastWinnerSeat,n.table=null,n.passSeats=[],n.log.unshift(`本轮结束,所有玩家各补 1 张,重新领出`)):R(n),n.seq+=1,{ok:!0,state:v(n)}):{ok:!1,error:`领出时不能不要`,state:v(n)}}function he(e,t){let n=y(e);if(!n)return null;let r=K(t),i=n.players.findIndex(e=>e.address===r);if(i===-1)return v(n);let a=n.players[i],o=n.currentSeat===a.seat,s=n.lastWinnerSeat===a.seat;n.players.splice(i,1),n.passSeats=n.passSeats.filter(e=>e!==a.seat),n.log.unshift(`${a.name} 已退出房间`);let c=L(n);if(n.status===`playing`)if(c.length<=1)c.length===1?k(n,c[0]):(n.status=`finished`,n.log.unshift(`玩家不足,本局结束`));else{if(o){let e=I(n);if(e.length>0){let t=e.findIndex(e=>e.seat>a.seat);n.currentSeat=e[t>=0?t:0].seat}}s&&n.table&&(n.table=null,n.passSeats=[])}return n.seq+=1,v(n)}function v(e){return e?{id:e.id,ownerAddress:e.ownerAddress,status:e.status,seq:Number(e.seq||1),deck:Array.isArray(e.deck)?e.deck.map(W):[],deckCount:e.deck?.length||Number(e.deckCount||0),discard:Array.isArray(e.discard)?e.discard.map(W):[],discardCount:e.discard?.length||Number(e.discardCount||0),currentSeat:Number(e.currentSeat||0),lastWinnerSeat:e.lastWinnerSeat===null||e.lastWinnerSeat===void 0?null:Number(e.lastWinnerSeat),previousWinnerSeat:e.previousWinnerSeat===null||e.previousWinnerSeat===void 0?null:Number(e.previousWinnerSeat),baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,table:e.table?{...e.table,cards:e.table.cards.map(W)}:null,passSeats:Array.isArray(e.passSeats)?e.passSeats:[],winnerSeat:e.winnerSeat===null||e.winnerSeat===void 0?null:Number(e.winnerSeat),log:Array.isArray(e.log)?e.log.slice(0,18):[],players:L(e).map(e=>({address:e.address,name:e.name,avatar:J(e.avatar),seat:e.seat,handCount:e.hand?.length??e.handCount??0,score:Number(e.score??_),playedCards:Number(e.playedCards||0),hand:Array.isArray(e.hand)?e.hand.map(W):[]}))}:null}function y(e){return!e||typeof e!=`object`?null:{id:String(e.id||``).toUpperCase(),ownerAddress:K(e.ownerAddress),status:e.status===`playing`||e.status===`finished`?e.status:`lobby`,seq:Number(e.seq||1),players:Array.isArray(e.players)?e.players.map(E).filter(Boolean):[],deck:Array.isArray(e.deck)?e.deck.map(ve).filter(Boolean):[],discard:Array.isArray(e.discard)?e.discard.map(D).filter(Boolean):[],table:e.table&&typeof e.table==`object`?{...e.table,cards:Array.isArray(e.table.cards)?e.table.cards.map(D).filter(Boolean):[]}:null,currentSeat:Number(e.currentSeat||0),lastWinnerSeat:e.lastWinnerSeat===null||e.lastWinnerSeat===void 0?null:Number(e.lastWinnerSeat),previousWinnerSeat:e.previousWinnerSeat===null||e.previousWinnerSeat===void 0?null:Number(e.previousWinnerSeat),passSeats:Array.isArray(e.passSeats)?e.passSeats.map(Number):[],baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,log:Array.isArray(e.log)?e.log.map(String):[],winnerSeat:e.winnerSeat===null||e.winnerSeat===void 0?null:Number(e.winnerSeat)}}function ge(e){if(!e?.length)return null;e=[...e].sort(V);let t=e.filter(U).length,n=e.filter(e=>!U(e));if(n.length===0)return null;let r=b(e,n,t);if(r)return r;if(e.length===1&&t===0)return C(`single`,H(e[0]),1,[H(e[0])]);if(e.length===2&&z(n,t)){let e=B(n);return C(`pair`,e,2,[e,e])}return x(e)||S(e)}function b(e,t,n){if(e.length<3||!z(t,n))return null;let r=B(t);return C(`bomb`,r,e.length,Array(e.length).fill(r),n===0)}function x(e){if(e.length<3)return null;let t=e.filter(U).length,n=e.filter(e=>!U(e));for(let r=0;r<=m.length-e.length;r+=1){let i=m.slice(r,r+e.length).map(e=>h.get(e)),a=[...i],o=0;for(let e of n){let t=a.indexOf(H(e));t!==-1&&(a.splice(t,1),o+=1)}if(o+t===e.length&&a.length===t)return C(`straight`,i.at(-1),e.length,i)}return null}function S(e){if(e.length<4||e.length%2!=0)return null;let t=e.length/2,n=e.filter(U).length,r=e.filter(e=>!U(e));for(let i=0;i<=m.length-t;i+=1){let a=m.slice(i,i+t).map(e=>h.get(e)),o=a.flatMap(e=>[e,e]),s=0;for(let e of r){let t=o.indexOf(H(e));t!==-1&&(o.splice(t,1),s+=1)}if(s+n===e.length&&o.length===n){let t=a.flatMap(e=>[e,e]);return C(`pairStraight`,a.at(-1),e.length,t)}}return null}function C(e,t,n,r,i=!0){return{type:e,value:t,length:n,resolvedValues:r,pure:i,label:xe({type:e,value:t,length:n,resolvedValues:r,pure:i})}}function w(e,t){return e?!t||e.type===`bomb`&&t.type!==`bomb`?!0:e.type===t.type?e.type===`bomb`?e.length===t.length?e.value===t.value?e.pure&&!t.pure:e.value>t.value:e.length>t.length:e.length===t.length?e.type===`single`||e.type===`pair`?e.value===Ce(t.value)||e.value===h.get(`2`)&&t.value!==h.get(`2`):e.value===Ce(t.value):!1:!1:!1}function T(e){let t=new Set;return e.map(e=>({address:K(e.address),name:q(e.name),avatar:J(e.avatar),publicKey:String(e.publicKey||``)})).filter(e=>!e.address||t.has(e.address)?!1:(t.add(e.address),!0))}function E(e){let t=K(e.address);return t?{address:t,name:q(e.name),avatar:J(e.avatar),seat:Number(e.seat||0),hand:Array.isArray(e.hand)?e.hand.map(D).filter(Boolean):[],handCount:Number(e.handCount||0),score:Number(e.score??_),playedCards:Number(e.playedCards||0)}:null}function D(e){if(!e||typeof e!=`object`)return null;let t=String(e.rank||``),n=String(e.suit||``);return!h.has(t)&&t!==`SJ`&&t!==`BJ`||!f.includes(n)&&n!==`Joker`?null:{id:String(e.id||`${n}-${t}`),suit:n,rank:t,label:e.label||G({suit:n,rank:t}),color:e.color||be({suit:n,rank:t})}}function O(e,t){if(e.previousWinnerSeat!==null)return e.diceRolls=[],L(e).find(t=>t.seat===e.previousWinnerSeat)||L(e)[0];let n=L(e),r=[];for(;n.length>1;){r=n.map(e=>({seat:e.seat,name:e.name,value:we(t)}));let i=Math.max(...r.map(e=>e.value)),a=r.filter(e=>e.value===i);if(a.length===1)return e.diceRolls=r,n.find(e=>e.seat===a[0].seat);n=n.filter(e=>a.some(t=>t.seat===e.seat))}return e.diceRolls=r,n[0]}function k(e,t){e.status=`finished`,e.winnerSeat=t.seat,e.previousWinnerSeat=t.seat;let n=[],r=0;for(let i of L(e)){if(i.seat===t.seat)continue;let a=i.playedCards===0,o=a?g:i.hand.length*e.baseScore*.5;i.score-=o,r+=o,n.push({seat:i.seat,name:i.name,loss:o,sealed:a,cardsLeft:i.hand.length})}t.score+=r,e.roundResult={winnerSeat:t.seat,winnerName:t.name,winnerGain:r,baseScore:e.baseScore,bombCount:e.bombCount,losers:n},e.log.unshift(`${t.name} 获胜,赢 ${r} 分`)}function A(e){for(let t of I(e)){if(e.deck.length===0)break;t.hand.push(...N(e,1)),t.handCount=t.hand.length,P(t.hand)}}function j(){let e=[];for(let t of f)for(let n of p)e.push({id:`${t}-${n}`,suit:t,rank:n});return e.push({id:`SJ`,suit:`Joker`,rank:`SJ`}),e.push({id:`BJ`,suit:`Joker`,rank:`BJ`}),e.map(W)}function M(e,t){let n=[...e];for(let e=n.length-1;e>0;--e){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}function N(e,t){return e.deck.splice(0,t)}function P(e){e.sort(V)}function F(e){return e.players.find(t=>t.seat===e.currentSeat)}function I(e){return L(e).filter(e=>e.hand.length>0)}function L(e){return[...e?.players||[]].sort((e,t)=>e.seat-t.seat)}function R(e){let t=I(e).map(e=>e.seat);e.currentSeat=t[(t.indexOf(e.currentSeat)+1)%t.length]}function z(e,t=0){if(e.length===0)return!1;let n=e[0].rank;return e.every(e=>e.rank===n)&&e.length+t>=2}function B(e){return H(e[0])}function V(e,t){return H(e)-H(t)||_e(e.suit)-_e(t.suit)}function H(e){return h.get(e.rank)||99}function U(e){return e.rank===`SJ`||e.rank===`BJ`}function _e(e){return{D:0,C:1,H:2,S:3,Joker:4}[e]||0}function ve(e){if(typeof e==`string`){let[t,n]=e.split(`-`);return D({id:e,suit:t,rank:n})}return D(e)}function W(e){return{id:e.id,suit:e.suit,rank:e.rank,label:G(e),color:be(e)}}function G(e){return e.rank===`SJ`?`小王`:e.rank===`BJ`?`大王`:`${ye(e.suit)}${e.rank}`}function ye(e){return{S:`♠`,H:`♥`,C:`♣`,D:`♦`}[e]||``}function be(e){return e.suit===`H`||e.suit===`D`||e.rank===`BJ`?`red`:`black`}function xe(e){let t=e.resolvedValues?.length?`(${e.resolvedValues.map(Se).join(` `)})`:``;return`${{single:`单张`,pair:`对子`,straight:`顺子`,pairStraight:`连对`,bomb:e.pure?`纯炸弹`:`带王炸弹`}[e.type]}${t}`}function Se(e){return p.find(t=>h.get(t)===e)||String(e)}function Ce(e){let t=p.findIndex(t=>h.get(t)===e);return t===-1||t>=p.length-1?null:h.get(p[t+1])}function we(e){return Math.floor(e()*6)+1}function K(e){let t=String(e||``).trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():``}function q(e){return String(e||`玩家`).trim().slice(0,16)||`玩家`}function J(e){return String(e||``).trim().slice(0,4096)}var Y={page:`_page_p7qf6_1`,headerActions:`_headerActions_p7qf6_7`,entry:`_entry_p7qf6_13`,entryBrand:`_entryBrand_p7qf6_23`,cardMark:`_cardMark_p7qf6_29`,entryPanel:`_entryPanel_p7qf6_59`,panel:`_panel_p7qf6_60`,handPanel:`_handPanel_p7qf6_61`,accountLine:`_accountLine_p7qf6_74`,scoreMeta:`_scoreMeta_p7qf6_75`,roomBar:`_roomBar_p7qf6_76`,badges:`_badges_p7qf6_77`,actions:`_actions_p7qf6_78`,joinForm:`_joinForm_p7qf6_98`,status:`_status_p7qf6_119`,gameGrid:`_gameGrid_p7qf6_125`,tablePanel:`_tablePanel_p7qf6_136`,seats:`_seats_p7qf6_170`,player:`_player_p7qf6_176`,active:`_active_p7qf6_193`,winner:`_winner_p7qf6_197`,avatar:`_avatar_p7qf6_201`,centerTable:`_centerTable_p7qf6_235`,deckBox:`_deckBox_p7qf6_242`,playedBox:`_playedBox_p7qf6_243`,playedCards:`_playedCards_p7qf6_271`,notice:`_notice_p7qf6_279`,resultDetail:`_resultDetail_p7qf6_287`,sidePanel:`_sidePanel_p7qf6_298`,scoreRow:`_scoreRow_p7qf6_323`,logPanel:`_logPanel_p7qf6_331`,hand:`_hand_p7qf6_61`,cardButton:`_cardButton_p7qf6_358`,picked:`_picked_p7qf6_368`,card:`_card_p7qf6_29`,red:`_red_p7qf6_399`,black:`_black_p7qf6_403`,small:`_small_p7qf6_407`,preview:`_preview_p7qf6_425`,valid:`_valid_p7qf6_448`},X=n(),Z=`gandengyan`;function Q(...e){return e.filter(Boolean).join(` `)}function Te(e,t){return String(e||``).toLowerCase()===String(t||``).toLowerCase()}function Ee(e,t){if(typeof window>`u`||!(`speechSynthesis`in window)||!e)return;window.speechSynthesis.cancel();let n=new SpeechSynthesisUtterance(e);n.lang=t,n.rate=1.1,window.speechSynthesis.speak(n)}function De(){let{t:e,locale:t}=o(),n=l(e=>e.isDarkMode),r=l(e=>e.setIsDarkMode),a=l(e=>e.addToast),u=i(e=>e.initializeUser),[f,p]=(0,d.useState)(``),[m,h]=(0,d.useState)([]),[le,g]=(0,d.useState)(!1),_=(0,d.useRef)(``),v=(0,d.useRef)(!1),y=se({gameId:Z,onError:e=>a(e,`error`)});(0,d.useEffect)(()=>{u()},[u]),(0,d.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get(`room`)?.toUpperCase();e&&(p(e),_.current=e)},[]),(0,d.useEffect)(()=>{let t=_.current;!t||v.current||!y.isBackendReady||!y.userIdentity||(v.current=!0,_.current=``,y.joinRoom(t).then(t=>{t&&a(e(`game.toast.joinedRoom`),`success`)}))},[y.isBackendReady,y.userIdentity,y.joinRoom,a,e]),(0,d.useEffect)(()=>{if(!y.roomCode)return;let e=`/game/gandengyan?room=${y.roomCode}`;`${window.location.pathname}${window.location.search}`!==e&&window.history.replaceState(null,``,e)},[y.roomCode]);let b=(0,d.useMemo)(()=>ae(y.messages,y.roomCode?{gameId:Z,roomCode:y.roomCode}:{gameId:Z}),[y.messages,y.roomCode]),x=(0,d.useMemo)(()=>oe(y.messages,{gameId:Z,roomCode:y.roomCode}),[y.messages,y.roomCode]),S=x?.payload?.state,C=S?.players.find(e=>Te(e.address,y.userIdentity?.address)),w=Te(S?.ownerAddress||b.hostAddress,y.userIdentity?.address),T=S?.status===`playing`&&S.currentSeat===C?.seat,E=(0,d.useMemo)(()=>m.map(e=>C?.hand.find(t=>t.id===e)).filter(Boolean),[m,C]),D=(0,d.useMemo)(()=>ge(E),[E]),O=y.roomCode&&typeof window<`u`?`${window.location.origin}/game/gandengyan?room=${y.roomCode}`:``,k=(0,d.useRef)(-1),A=(0,d.useRef)(!1);(0,d.useEffect)(()=>{h([])},[S?.seq]),(0,d.useEffect)(()=>{if(!S)return;let n=S.seq;if(k.current<0){k.current=n;return}if(n!==k.current&&(k.current=n,S.status!==`finished`&&(A.current=!1),S.status===`finished`&&S.winnerSeat!==null)){A.current||(A.current=!0,Ee(e(`game.gandengyan.speech.gameOver`),t));return}},[t,S?.seq,e]),(0,d.useEffect)(()=>{if(!w||!y.roomCode||!y.userIdentity||x||b.players.length===0)return;let e=ue({roomCode:y.roomCode,ownerAddress:y.userIdentity.address,ownerName:y.userIdentity.displayName||y.userIdentity.username,players:b.players});y.sendRoomEvent(`room:state`,{state:e,seq:e.seq})},[y,w,x,b.players]),(0,d.useEffect)(()=>{if(!S||!w||S.status!==`lobby`)return;let e=de(S,b.players);e&&e.players.length!==S.players.length&&y.sendRoomEvent(`room:state`,{state:e,seq:e.seq})},[y,w,b.players,S]);let j=(0,d.useRef)(0),M=(0,d.useMemo)(()=>y.roomEvents.filter(e=>e.event?.event===`player:leave`),[y.roomEvents]);(0,d.useEffect)(()=>{if(M.length<=j.current)return;let t=M.slice(j.current);j.current=M.length;for(let n of t)a(e(`game.toast.playerLeft`,{player:n.event?.payload?.player?.name||e(`game.player`)}),`info`)},[M,a,e]),(0,d.useEffect)(()=>{if(!S||!w||S.status!==`playing`)return;let e=new Set(b.players.map(e=>e.address.toLowerCase())),t=S.players.find(t=>!e.has(t.address.toLowerCase()));if(!t)return;let n=he(S,t.address);n&&I(n)},[y,w,b.players,S]);async function N(){await y.createRoom()&&a(e(`game.toast.roomCreated`),`success`)}async function P(t){t.preventDefault(),await y.joinRoom(f)&&a(e(`game.toast.joinedRoom`),`success`)}async function F(){O&&(await navigator.clipboard.writeText(O),g(!0),setTimeout(()=>g(!1),1400))}async function I(e){await y.sendRoomEvent(`room:state`,{state:e,seq:e.seq})}async function L(){if(!(!S||!w))try{await I(fe(S))}catch(t){a(t instanceof Error?t.message:e(`game.zhajinhua.error.startFailed`),`error`)}}async function R(){await L()}async function z(){if(!S||!y.userIdentity)return;let t=pe(S,y.userIdentity.address,m);if(!t.ok){a(t.error||e(`game.gandengyan.error.playFailed`),`error`);return}await I(t.state)}async function B(){if(!S||!y.userIdentity)return;let t=me(S,y.userIdentity.address);if(!t.ok){a(t.error||e(`game.gandengyan.error.actionFailed`),`error`);return}await I(t.state)}function V(e){h(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}return(0,X.jsx)(te,{sidebar:({closeSidebar:e})=>(0,X.jsx)(ie,{activeGame:`gandengyan`,closeSidebar:e}),headerTitle:(0,X.jsx)(`h2`,{className:`header-title`,children:e(`game.gandengyan.title`)}),headerRight:(0,X.jsxs)(`div`,{className:Y.headerActions,children:[S&&(0,X.jsxs)(`button`,{className:`btn btn-sm`,onClick:F,children:[(0,X.jsx)(ee,{size:14}),e(le?`common.copied`:`game.action.shareRoom`)]}),(0,X.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>r(!n),title:e(`common.theme.toggle`),children:n?(0,X.jsx)(c,{size:16}):(0,X.jsx)(s,{size:16})})]}),children:(0,X.jsx)(`main`,{className:Y.page,children:S?(0,X.jsxs)(`section`,{className:Y.gameGrid,children:[(0,X.jsxs)(`div`,{className:Y.tablePanel,children:[(0,X.jsxs)(`div`,{className:Y.roomBar,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`strong`,{translate:`no`,children:e(`game.roomLabel`,{room:S.id})}),(0,X.jsx)(`span`,{children:S.status===`lobby`?e(`game.status.waitingStart`):S.status===`finished`?e(`game.status.finished`):e(`game.status.playing`)})]}),(0,X.jsx)(`div`,{className:Y.badges,children:(0,X.jsx)(`span`,{children:y.connected?e(`game.status.online`):e(`game.status.offline`)})})]}),(0,X.jsx)(`div`,{className:Y.seats,children:S.players.map(t=>(0,X.jsx)(Oe,{player:t,active:S.currentSeat===t.seat,winner:S.winnerSeat===t.seat,relation:ke(C,t,S.players.length,e)},t.seat))}),(0,X.jsxs)(`div`,{className:Y.centerTable,children:[(0,X.jsxs)(`div`,{className:Y.deckBox,children:[(0,X.jsx)(`span`,{children:e(`game.gandengyan.deck`)}),(0,X.jsx)(`strong`,{children:S.deckCount})]}),(0,X.jsx)(`div`,{className:Y.playedBox,children:S.table?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`strong`,{children:e(`game.gandengyan.tablePlay`,{player:S.table.playerName,combo:S.table.combo?.label||e(`game.card`)})}),(0,X.jsx)(`div`,{className:Y.playedCards,children:S.table.cards.map(e=>(0,X.jsx)($,{card:e,small:!0},e.id))})]}):(0,X.jsx)(`span`,{children:e(`game.gandengyan.waitingLead`)})}),(0,X.jsxs)(`div`,{className:Y.deckBox,children:[(0,X.jsx)(`span`,{children:e(`game.gandengyan.baseScore`)}),(0,X.jsx)(`strong`,{children:S.baseScore})]})]}),(0,X.jsx)(`div`,{className:Y.notice,children:S.status===`finished`?S.roundResult?(0,X.jsxs)(`div`,{className:Y.resultDetail,children:[(0,X.jsxs)(`p`,{children:[e(`game.gandengyan.result.winnerGain`,{player:S.roundResult.winnerName,score:S.roundResult.winnerGain}),S.roundResult.bombCount>0&&e(`game.gandengyan.result.bombCount`,{count:S.roundResult.bombCount})]}),S.roundResult.losers.map(t=>(0,X.jsx)(`p`,{children:t.sealed?e(`game.gandengyan.result.sealedLoss`,{player:t.name,loss:20}):e(`game.gandengyan.result.cardsLeftLoss`,{player:t.name,cards:t.cardsLeft,loss:t.loss})},t.seat))]}):e(`game.gandengyan.result.winner`,{player:S.players.find(e=>e.seat===S.winnerSeat)?.name||e(`game.player`)}):T?e(`game.gandengyan.status.yourTurn`):e(`game.zhajinhua.status.waitingPlayer`,{player:S.players.find(e=>e.seat===S.currentSeat)?.name||e(`game.player`)})})]}),(0,X.jsxs)(`aside`,{className:Y.sidePanel,children:[(0,X.jsxs)(`section`,{className:Y.panel,children:[(0,X.jsx)(`h3`,{children:e(`game.gandengyan.roundPanel`)}),w&&S.status===`lobby`&&(0,X.jsxs)(`button`,{className:`btn btn-primary`,disabled:S.players.length<2,onClick:L,children:[(0,X.jsx)(ne,{size:16}),e(`game.action.startRound`)]}),w&&S.status===`finished`&&(0,X.jsxs)(`button`,{className:`btn btn-primary`,onClick:R,children:[(0,X.jsx)(ce,{size:16}),e(`game.action.nextRound`)]}),!w&&(0,X.jsx)(`p`,{className:Y.status,children:e(`game.waitingHost`)})]}),(0,X.jsxs)(`section`,{className:Y.panel,children:[(0,X.jsx)(`h3`,{children:e(`game.gandengyan.score`)}),(0,X.jsxs)(`div`,{className:Y.scoreMeta,children:[(0,X.jsx)(`span`,{children:e(`game.gandengyan.bombCount`,{count:S.bombCount})}),(0,X.jsx)(`span`,{children:e(`game.gandengyan.discardCount`,{count:S.discardCount})})]}),S.players.map(e=>(0,X.jsxs)(`div`,{className:Y.scoreRow,children:[(0,X.jsx)(`span`,{translate:`no`,children:e.name}),(0,X.jsx)(`strong`,{children:e.score})]},e.seat))]}),(0,X.jsxs)(`section`,{className:Q(Y.panel,Y.logPanel),children:[(0,X.jsx)(`h3`,{children:e(`game.gandengyan.log`)}),S.log.map((e,t)=>(0,X.jsx)(`p`,{translate:`no`,children:e},`${e}-${t}`))]})]}),(0,X.jsxs)(`div`,{className:Y.handPanel,children:[(0,X.jsx)(Oe,{player:C,active:T,winner:S.winnerSeat===C?.seat}),(0,X.jsx)(`div`,{className:Y.hand,children:C?.hand.map(e=>(0,X.jsx)(`button`,{className:Q(Y.cardButton,m.includes(e.id)&&Y.picked),onClick:()=>V(e.id),children:(0,X.jsx)($,{card:e})},e.id))}),(0,X.jsxs)(`div`,{className:Y.actions,children:[(0,X.jsxs)(`div`,{className:Q(Y.preview,D&&Y.valid),children:[(0,X.jsx)(`strong`,{children:D?D.label:m.length?e(`game.gandengyan.invalidCombo`):e(`game.gandengyan.selectCards`)}),(0,X.jsx)(`span`,{children:E.map(e=>e.label).join(` `)||e(`game.gandengyan.jokerOrderHint`)})]}),(0,X.jsxs)(`button`,{className:`btn btn-primary`,disabled:!T||m.length===0||!D,onClick:z,children:[(0,X.jsx)(re,{size:16}),e(`game.gandengyan.action.play`)]}),(0,X.jsx)(`button`,{className:`btn`,disabled:!T||!S.table,onClick:B,children:e(`game.gandengyan.action.pass`)})]})]})]}):(0,X.jsxs)(`section`,{className:Y.entry,children:[(0,X.jsxs)(`div`,{className:Y.entryBrand,children:[(0,X.jsx)(`div`,{className:Y.cardMark,children:e(`game.gandengyan.mark`)}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h1`,{children:e(`game.gandengyan.hero.title`)}),(0,X.jsx)(`p`,{children:e(`game.hero.desc`)})]})]}),(0,X.jsxs)(`div`,{className:Y.entryPanel,children:[(0,X.jsxs)(`div`,{className:Y.accountLine,children:[(0,X.jsx)(`span`,{children:e(`game.currentAccount`)}),(0,X.jsx)(`strong`,{translate:`no`,children:y.userIdentity?.displayName||e(`web3.notSignedIn`)})]}),(0,X.jsxs)(`button`,{className:`btn btn-primary`,disabled:y.joining,onClick:N,children:[(0,X.jsx)(ne,{size:16}),e(`game.action.createRoom`)]}),(0,X.jsxs)(`form`,{onSubmit:P,className:Y.joinForm,children:[(0,X.jsxs)(`label`,{children:[e(`game.roomCode`),(0,X.jsx)(`input`,{value:f,maxLength:8,onChange:e=>p(e.target.value.toUpperCase()),placeholder:e(`game.roomCode.placeholder`)})]}),(0,X.jsx)(`button`,{className:`btn`,disabled:y.joining||!f,children:e(`game.action.joinRoom`)})]}),(0,X.jsx)(`p`,{className:Y.status,children:y.isBackendReady?e(`game.status.nodeConnected`):e(`game.status.nodeConnecting`)})]})]})})})}function Oe({player:e,active:t,winner:n,relation:r=``}){let{t:i}=o();return e?(0,X.jsxs)(`div`,{className:Q(Y.player,t&&Y.active,n&&Y.winner),children:[(0,X.jsx)(`div`,{className:Y.avatar,translate:`no`,children:(0,X.jsx)(`img`,{src:u(e.address,e.avatar),alt:``})}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`strong`,{translate:`no`,children:e.name}),(0,X.jsxs)(`span`,{children:[r,r?` · `:``,i(`game.gandengyan.handCount`,{count:e.handCount})]})]})]}):null}function $({card:e,small:t=!1}){return(0,X.jsxs)(`div`,{className:Q(Y.card,Y[e.color],t&&Y.small),children:[(0,X.jsx)(`span`,{children:e.label}),(0,X.jsx)(`i`,{children:e.suit===`Joker`?`*`:e.label.slice(0,1)})]})}function ke(e,t,n,r){if(!e)return r(`game.gandengyan.position.seat`,{seat:t.seat+1});let i=(t.seat-e.seat+n)%n;return i===0?r(`game.gandengyan.position.me`):n===2?r(`game.gandengyan.position.opponent`):n===3?r(i===1?`game.gandengyan.position.nextOpponent`:`game.gandengyan.position.prevOpponent`):n===4?r(i===1?`game.gandengyan.position.nextOpponent`:i===2?`game.gandengyan.position.partner`:`game.gandengyan.position.prevOpponent`):i%2==0?r(`game.gandengyan.position.seatPartner`,{seat:t.seat+1}):r(`game.gandengyan.position.seatOpponent`,{seat:t.seat+1})}var Ae=r(`/game/gandengyan/`)({component:De});export{Ae as Route};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`loader`,[[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m16.2 7.8 2.9-2.9`,key:`r700ao`}],[`path`,{d:`M18 12h4`,key:`wj9ykh`}],[`path`,{d:`m16.2 16.2 2.9 2.9`,key:`1bxg5t`}],[`path`,{d:`M12 18v4`,key:`jadmvz`}],[`path`,{d:`m4.9 19.1 2.9-2.9`,key:`bwix9q`}],[`path`,{d:`M2 12h4`,key:`j09sii`}],[`path`,{d:`m4.9 4.9 2.9 2.9`,key:`giyufr`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),n=e(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]);export{t as n,n as t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{w as r,x as i,y as a}from"./ui-PnUvY9zL.js";import{a as o}from"./i18n--maTEG0d.js";import{o as s}from"./LanguageToggle-BoBNesNU.js";import{t as c}from"./copy-D8HSH5Ki.js";import{t as l}from"./dayjs.min-Dcc0B6Je.js";var u=r(`fingerprint-pattern`,[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]]),d=r(`user`,[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`,key:`975kel`}],[`circle`,{cx:`12`,cy:`7`,r:`4`,key:`17ys0d`}]]),f=t(e(),1),p=n();function m({text:e,label:t,copiedLabel:n,className:r=`btn btn-icon`,iconSize:i=14}){let{t:a}=o(),[l,u]=(0,f.useState)(!1),d=n||a(`common.copied`),m=t||a(`common.copy`);async function h(){try{await navigator.clipboard.writeText(e),u(!0),setTimeout(()=>u(!1),1500)}catch{}}return(0,p.jsxs)(`button`,{type:`button`,className:r,onClick:h,title:l?d:m,children:[l?(0,p.jsx)(s,{size:i}):(0,p.jsx)(c,{size:i}),t?l?d:t:null]})}var h=t(a(),1);l();var g=`0123456789abcdefghijklmnopqrstuvwxyz`,_=e=>{let t=[];for(;e>=128;)t.push(e&127|128),e>>=7;return t.push(e),t},v=e=>{let t=new Uint8Array([8,1,18,..._(e.length)]),n=new Uint8Array(t.length+e.length);return n.set(t,0),n.set(e,t.length),n},y=(e,t)=>{if(e.length===0)return``;let n=t.length,r=0;for(;r<e.length&&e[r]===0;)r++;let i=[0];for(let t=r;t<e.length;t++){let r=e[t];for(let e=0;e<i.length;e++){let t=i[e]*256+r;i[e]=t%n,r=Math.floor(t/n)}for(;r>0;)i.push(r%n),r=Math.floor(r/n)}let a=``;for(let e=0;e<r;e++)a+=t[0];for(let e=i.length-1;e>=0;e--)a+=t[i[e]];return a},b=(e,t)=>{let n=t.slice(2),r=new Uint8Array(i(e+n));return h.default.sign.keyPair.fromSecretKey(r)},x=(e,t)=>{let n=v(b(e,t).publicKey),r=new Uint8Array(2+n.length);r[0]=0,r[1]=36,r.set(n,2);let i=new Uint8Array([1,114]),a=new Uint8Array(i.length+r.length);return a.set(i,0),a.set(r,i.length),`k`+y(a,g)};export{u as a,d as i,x as n,m as r,b as t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`music`,[[`path`,{d:`M9 18V5l12-2v13`,key:`1jmyc2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`circle`,{cx:`18`,cy:`16`,r:`3`,key:`1hluhg`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`notebook-pen`,[[`path`,{d:`M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4`,key:`re6nr2`}],[`path`,{d:`M2 6h4`,key:`aawbzj`}],[`path`,{d:`M2 10h4`,key:`l0bgd4`}],[`path`,{d:`M2 14h4`,key:`1gsvsf`}],[`path`,{d:`M2 18h4`,key:`1bu2t1`}],[`path`,{d:`M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z`,key:`pqwjuv`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`shield-check`,[[`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:`m9 12 2 2 4-4`,key:`dzmm74`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{w as e}from"./ui-PnUvY9zL.js";var t=e(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);export{t};