most-box 0.1.9 → 0.2.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.
- package/README.md +16 -3
- package/out/admin/index.html +0 -0
- package/out/app/index.html +0 -0
- package/out/assets/AppShell-CQhg6DJU.js +1 -0
- package/out/assets/ChatUi-BepWs-ZU.js +1 -0
- package/out/assets/LanguageToggle-CtzCCAYv.js +1 -0
- package/out/assets/{LogoIcon-CYQ7cHd5.js → LogoIcon-Dxto3Sb4.js} +1 -1
- package/out/assets/{MarketingLayout-BTIbv4fW.js → MarketingLayout-BQw0IS2i.js} +1 -1
- package/out/assets/MarketingThemeToggle-DBaC9bjz.js +1 -0
- package/out/assets/MilkdownEditor-BqJzntYE.js +1054 -0
- package/out/assets/MoveModal-4D9n11Kw.js +1 -0
- package/out/assets/Nav-9MDdvgNs.js +1 -0
- package/out/assets/NoteSidebar-C-rIt32H.js +1 -0
- package/out/assets/OpenSidebarButton-Dd0JmKuE.js +1 -0
- package/out/assets/PemBlock-C8dEIzu-.js +1 -0
- package/out/assets/SidebarAccount-ClS-N0lq.js +1 -0
- package/out/assets/arrow-right-urE9Rd7j.js +1 -0
- package/out/assets/channelApi-BwQU0-h1.js +1 -0
- package/out/assets/check-DUNsD2t6.js +1 -0
- package/out/assets/chevron-down-D6mpsfv4.js +1 -0
- package/out/assets/{circle-alert-CqEQz6P4.js → circle-alert-W0iyN4sC.js} +1 -1
- package/out/assets/cloud-BMyOoC2x.js +1 -0
- package/out/assets/code-B1Cb_Icm.js +1 -0
- package/out/assets/{copy-CM-qWlbv.js → copy-C1MttOli.js} +1 -1
- package/out/assets/{dist-CvatM4u8.js → dist-8QDHqrPN.js} +1 -1
- package/out/assets/{dist-BmtYO1GG.js → dist-B0JrbG7f.js} +5 -5
- package/out/assets/{dist-DBpw-A8y.js → dist-BFSyuOuw.js} +1 -1
- package/out/assets/{dist-D5Cf0hK8.js → dist-BPs0Xns9.js} +2 -2
- package/out/assets/{dist-BQV5zYG_.js → dist-Br_5lLVO.js} +9 -9
- package/out/assets/{dist-CrzjJUOw.js → dist-BzqqCPi2.js} +1 -1
- package/out/assets/dist-C3lbe8SW.js +9 -0
- package/out/assets/{dist-CWJ3323z.js → dist-CfU9fwWz.js} +1 -1
- package/out/assets/{dist-BdmTLuCI.js → dist-DCX0ws1K.js} +1 -1
- package/out/assets/{dist-DrumcFOX.js → dist-DJdv-Ma3.js} +1 -1
- package/out/assets/{dist-C5HibLEW.js → dist-chOCTzB2.js} +1 -1
- package/out/assets/{download-0rM8xVCe.js → download-y7SZXu6E.js} +1 -1
- package/out/assets/downloadValidation-B0p9Ai_9.js +1 -0
- package/out/assets/filePreview-UI9NH34f.js +1 -0
- package/out/assets/format-CR8oUWq6.js +1 -0
- package/out/assets/game-CdU3xnZo.js +1 -0
- package/out/assets/{hard-drive-CCdIvSap.js → hard-drive-D13Qbobu.js} +1 -1
- package/out/assets/image-DJCA16l_.js +1 -0
- package/out/assets/index-BdaFEQG-.css +1 -0
- package/out/assets/index-QxXZzOUL.js +33 -0
- package/out/assets/index.lazy-BBTTFanX.js +1 -0
- package/out/assets/index.lazy-BG4ZylHD.js +2 -0
- package/out/assets/index.lazy-Bi-6ZXZX.js +1 -0
- package/out/assets/index.lazy-BixWVr0B.js +1 -0
- package/out/assets/index.lazy-BjFwNYy5.js +3 -0
- package/out/assets/index.lazy-C8EIQsXY.js +2 -0
- package/out/assets/index.lazy-CarNe2uu.js +1 -0
- package/out/assets/index.lazy-DEuGu3H3.js +1 -0
- package/out/assets/index.lazy-GPyILCA7.js +3 -0
- package/out/assets/index.lazy-I8ofndXl.js +1 -0
- package/out/assets/index.lazy-TxhWsA7y.js +1 -0
- package/out/assets/index.lazy-azfky8k7.js +1 -0
- package/out/assets/{key-round-tIqGrtt_.js → key-round-CZniN9lv.js} +1 -1
- package/out/assets/lock-D5OSNhep.js +1 -0
- package/out/assets/log-out-B6phyZ5z.js +1 -0
- package/out/assets/{music-BkZKq879.js → music-CbUskKgg.js} +1 -1
- package/out/assets/{notebook-pen-B4VSbweh.js → notebook-pen-DqKDQ6MJ.js} +1 -1
- package/out/assets/play-BIl8q9eU.js +1 -0
- package/out/assets/plus-BxxbpH6Q.js +1 -0
- package/out/assets/{save-BzjzC3eV.js → save-DkH1n_Ov.js} +1 -1
- package/out/assets/search-BQi5Z0E-.js +1 -0
- package/out/assets/{send-DtQInX0y.js → send-Cl6NtD2T.js} +1 -1
- package/out/assets/{trash-2-BhMrUgGM.js → trash-2-BBjpgK_f.js} +1 -1
- package/out/assets/triangle-alert-l98G8u9O.js +1 -0
- package/out/assets/upload-ByP6Ydde.js +1 -0
- package/out/assets/{useChannelMessages-Bs1hEJyd.js → useChannelMessages-BgbYfF2c.js} +2 -2
- package/out/assets/useGameRoom-DPmweWwe.js +1 -0
- package/out/assets/{wallet-YxbxCi7C.js → wallet-c7zIhNSM.js} +1 -1
- package/out/assets/{wifi-v3JpPCNm.js → wifi-Bm4biAjc.js} +1 -1
- package/out/chat/index.html +0 -0
- package/out/chat/join/index.html +0 -0
- package/out/demo/index.html +0 -0
- package/out/download/index.html +6 -2
- package/out/game/gandengyan/index.html +0 -0
- package/out/game/index.html +0 -0
- package/out/game/zhajinhua/index.html +0 -0
- package/out/index.html +6 -2
- package/out/note/index.html +0 -0
- package/out/ping/index.html +6 -2
- package/out/web3/index.html +0 -0
- package/package.json +2 -2
- package/server/index.js +9 -0
- package/server/src/core/channelAttachment.js +7 -3
- package/server/src/core/channelIdentity.js +50 -0
- package/server/src/core/cid.js +6 -1
- package/server/src/core/cidTopic.js +18 -4
- package/server/src/core/displayPath.js +10 -0
- package/server/src/core/gameRoom.js +2 -2
- package/server/src/core/mostLink.js +45 -25
- package/server/src/core/ownerMetadata.js +34 -0
- package/server/src/core/userSyncKeys.js +36 -0
- package/server/src/http/app.js +71 -149
- package/server/src/http/dataPath.js +26 -0
- package/server/src/http/errors.js +8 -4
- package/server/src/http/nodeStatus.js +13 -13
- package/server/src/http/rateLimit.js +39 -0
- package/server/src/http/routePolicy.js +43 -0
- package/server/src/index.js +1909 -759
- package/server/src/node/offlineSwarm.js +20 -0
- package/server/src/utils/api.js +1 -15
- package/server/src/utils/downloadMessages.js +17 -18
- package/server/src/utils/errors.js +3 -1
- package/server/src/utils/noteUtils.js +27 -3
- package/out/assets/AppShell-DmZQwVA9.js +0 -1
- package/out/assets/ChatUi-CVGqjFdx.js +0 -1
- package/out/assets/MilkdownEditor-BL8xE7u9.js +0 -1054
- package/out/assets/MoveModal-BKkVBvrS.js +0 -1
- package/out/assets/Nav-BDGeJnbC.js +0 -1
- package/out/assets/NoteSidebar-BIJ8_m5K.js +0 -1
- package/out/assets/OpenSidebarButton-Di62DGiu.js +0 -1
- package/out/assets/PemBlock-Dxx6k9MH.js +0 -1
- package/out/assets/SidebarAccount-CCHZLGdP.js +0 -1
- package/out/assets/admin-BepWGXWG.js +0 -2
- package/out/assets/app-3D79fY3w.js +0 -1
- package/out/assets/arrow-right-D0sGC8QA.js +0 -1
- package/out/assets/channelApi-CL7YsIQ-.js +0 -1
- package/out/assets/chat-B56sk6od.js +0 -1
- package/out/assets/check-DdfnsLKm.js +0 -1
- package/out/assets/chevron-down-Xlb3wTxd.js +0 -1
- package/out/assets/circle-check-CwAH4dgJ.js +0 -1
- package/out/assets/cloud-CcPRoob1.js +0 -1
- package/out/assets/code-Dr6STnCn.js +0 -1
- package/out/assets/database-DQ7ZtUT9.js +0 -1
- package/out/assets/dateTime-D1koKRQU.js +0 -1
- package/out/assets/demo-B_6rlIjn.js +0 -3
- package/out/assets/dist-BGtXa07s.js +0 -9
- package/out/assets/download-BLPU-Kzq.js +0 -1
- package/out/assets/downloadMessages-7Xbd-HhS.js +0 -1
- package/out/assets/ed25519-BEctXF0E.js +0 -1
- package/out/assets/filePreview-BvbHWUTG.js +0 -1
- package/out/assets/folder-CcbCxm-k.js +0 -1
- package/out/assets/game-B0zuqnOh.js +0 -1
- package/out/assets/gandengyan-DbQC7hCK.js +0 -1
- package/out/assets/index-BLhmAher.css +0 -1
- package/out/assets/index-Cf23WD2V.js +0 -29
- package/out/assets/join-DQHXjlfH.js +0 -1
- package/out/assets/note-DmWqGSS2.js +0 -2
- package/out/assets/ping-JILckfMu.js +0 -1
- package/out/assets/play-BIl5vwqS.js +0 -1
- package/out/assets/plus-DHvLpuuw.js +0 -1
- package/out/assets/routes-Dyckj88f.js +0 -1
- package/out/assets/search-C-EpsDNl.js +0 -1
- package/out/assets/sun-C3IUQTpa.js +0 -1
- package/out/assets/tools-BEctXF0E.js +0 -1
- package/out/assets/triangle-alert-DUODU79n.js +0 -1
- package/out/assets/upload-CpDM23UH.js +0 -1
- package/out/assets/useGameRoom-C6UgmIGG.js +0 -1
- package/out/assets/web3-CRX1YFmw.js +0 -3
- package/out/assets/zhajinhua-QDmSZbOp.js +0 -1
- package/out/web3/ed25519/index.html +0 -0
- package/out/web3/tools/index.html +0 -0
- /package/out/assets/{gandengyan-8eWJAjpY.css → index-8eWJAjpY.css} +0 -0
- /package/out/assets/{zhajinhua-BZc4blbW.css → index-BZc4blbW.css} +0 -0
package/README.md
CHANGED
|
@@ -59,6 +59,19 @@ npm run dev
|
|
|
59
59
|
node server/index.js
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
开发模式需要两个进程:`npm run dev` 启动 TanStack Start 前端,默认访问 `http://localhost:3000`;`node server/index.js` 启动本地 daemon,默认监听 `http://localhost:1976`。
|
|
63
|
+
|
|
64
|
+
## 项目结构
|
|
65
|
+
|
|
66
|
+
前端源码集中在 `src/`:
|
|
67
|
+
|
|
68
|
+
- `src/routes/`:TanStack Router file-based routes。`index.tsx` 保留路由关键配置,`index.lazy.tsx` 加载页面组件。
|
|
69
|
+
- `src/features/`:页面和业务实现,例如文件分享、聊天、笔记、管理台、游戏和 Web3 工具箱。
|
|
70
|
+
- `src/components/`:跨功能共享 UI。
|
|
71
|
+
- `src/hooks/`、`src/lib/`、`src/stores/`、`src/styles/`:共享 hooks、工具、状态和样式。
|
|
72
|
+
- `src/lib/i18n/messages/*.ts`:按域拆分的中英文文案 catalog,由 `src/lib/i18n/messages.ts` 聚合。
|
|
73
|
+
- `server/`:daemon、HTTP API、P2P 引擎和协议测试。
|
|
74
|
+
|
|
62
75
|
## 测试
|
|
63
76
|
|
|
64
77
|
```bash
|
|
@@ -180,7 +193,7 @@ npx most-box@latest
|
|
|
180
193
|
|
|
181
194
|
## 路线图
|
|
182
195
|
|
|
183
|
-
###
|
|
196
|
+
### v0.2.0(当前版本)
|
|
184
197
|
|
|
185
198
|
- ✅ P2P 文件上传与下载
|
|
186
199
|
- ✅ 确定性 CID 生成
|
|
@@ -214,8 +227,8 @@ npx most-box@latest
|
|
|
214
227
|
发布新版本时,推送 tag 即可自动构建:
|
|
215
228
|
|
|
216
229
|
```bash
|
|
217
|
-
git tag v0.0
|
|
218
|
-
git push origin v0.0
|
|
230
|
+
git tag v0.2.0
|
|
231
|
+
git push origin v0.2.0
|
|
219
232
|
```
|
|
220
233
|
|
|
221
234
|
触发后自动执行:
|
package/out/admin/index.html
CHANGED
|
Binary file
|
package/out/app/index.html
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{t as r}from"./LanguageToggle-CtzCCAYv.js";import{G as i,W as a}from"./index-QxXZzOUL.js";var o=a(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),s=t(e(),1);function c(e,t){return typeof t==`boolean`?t:typeof window<`u`&&`matchMedia`in window?window.matchMedia(e).matches:!1}function l(e,t,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){let[r,i]=(0,s.useState)(n?t:c(e));return(0,s.useEffect)(()=>{try{if(`matchMedia`in window){let t=window.matchMedia(e);i(t.matches);let n=e=>i(e.matches);return t.addEventListener(`change`,n),()=>{t.removeEventListener(`change`,n)}}}catch{return}},[e]),r||!1}function u(e=!1,t={}){let[n,r]=(0,s.useState)(e),i=(0,s.useCallback)(()=>{r(e=>e||(t.onOpen?.(),!0))},[t.onOpen]),a=(0,s.useCallback)(()=>{r(e=>e&&(t.onClose?.(),!1))},[t.onClose]);return[n,{open:i,close:a,toggle:(0,s.useCallback)(()=>{n?a():i()},[a,i,n]),set:r}]}var d=n(),f=(0,s.createContext)(null);function p(){let e=(0,s.useContext)(f);if(!e)throw Error(`useAppShell must be used within AppShell`);return e}function m({sidebar:e,className:t=``,headerTitle:n,headerRight:a,sidebarToggleReplacement:c,defaultHide:p=!1,children:m}){let[h,g]=u(!1),[_,v]=(0,s.useState)(p),y=(0,s.useRef)(p),b=l(`(max-width: 768px)`),{t:x}=i(),S=(0,s.useCallback)((e={})=>{g.close(),e.collapse&&v(!0)},[g]);(0,s.useEffect)(()=>{p!==y.current&&(p?S({collapse:!0}):v(!1),y.current=p)},[p,S]);let C=()=>{b?g.toggle():v(!_)},w=()=>{b?g.open():v(!1)},T=b?h:!_;return(0,d.jsx)(f.Provider,{value:{closeSidebar:S,openSidebar:w,isSidebarVisible:T},children:(0,d.jsxs)(`div`,{className:[`app-layout`,t].filter(Boolean).join(` `),children:[(0,d.jsx)(`div`,{className:`sidebar-overlay ${h?`visible`:``}`,onClick:()=>S()}),(0,d.jsx)(`div`,{className:`sidebar ${h?`open`:``} ${_?`collapsed`:``}`,children:e({closeSidebar:S,openSidebar:w})}),(0,d.jsxs)(`div`,{className:`main-content`,children:[(0,d.jsxs)(`header`,{className:`app-header`,children:[(0,d.jsxs)(`div`,{className:`header-left`,children:[c??(0,d.jsx)(`button`,{onClick:C,className:`btn btn-icon sidebar-toggle-btn`,"aria-label":x(b?`appShell.openMenu`:_?`appShell.expandSidebar`:`appShell.collapseSidebar`),children:(0,d.jsx)(o,{size:16})}),n]}),(0,d.jsxs)(`div`,{className:`header-right`,children:[(0,d.jsx)(r,{className:`btn btn-icon app-language-toggle`}),a]})]}),m]})]})})}export{p as n,u as r,m as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-Bt-cYkS5.js";import{t}from"./arrow-right-urE9Rd7j.js";import{t as n}from"./circle-alert-W0iyN4sC.js";import{t as r}from"./download-y7SZXu6E.js";import{n as i}from"./SidebarAccount-ClS-N0lq.js";import{n as a,t as o}from"./trash-2-BBjpgK_f.js";import{i as s,n as c,r as l}from"./filePreview-UI9NH34f.js";import{t as u}from"./image-DJCA16l_.js";import{n as d}from"./LogoIcon-Dxto3Sb4.js";import{t as f}from"./music-CbUskKgg.js";import{t as p}from"./plus-BxxbpH6Q.js";import{G as m,V as h,W as g,a as _}from"./index-QxXZzOUL.js";var v=g(`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`}]]),y=g(`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`}]]),b=e();function x(e){return!e||e<=0?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function S(e){let t=String(e||``).split(`/`);return t[t.length-1]||e}function C(e){return e===`image`?(0,b.jsx)(u,{size:20}):e===`video`?(0,b.jsx)(s,{size:20}):e===`audio`?(0,b.jsx)(f,{size:20}):(0,b.jsx)(a,{size:20})}function w({attachment:e,status:t=`idle`,pending:i=!1,onOpen:a}){let{t:o}=m(),s=t===`checking`,c=[`ui-file-action`,`chat-attachment-action`,t===`error`?`error`:``,t===`available`?`available`:``].filter(Boolean).join(` `),u=x(e.size)||o(`chat.mostboxFile`);return(0,b.jsxs)(`button`,{type:`button`,className:`ui-file-card chat-attachment-card`,onClick:()=>a?.(e),disabled:i||s,title:e.link,translate:`no`,children:[(0,b.jsx)(`span`,{className:`ui-file-icon chat-attachment-icon ${e.kind}`,children:s?(0,b.jsx)(l,{size:20,className:`ui-spinner chat-attachment-spinner`}):C(e.kind)}),(0,b.jsxs)(`span`,{className:`ui-file-info chat-attachment-info`,children:[(0,b.jsx)(`span`,{className:`ui-file-name chat-attachment-name`,translate:`no`,children:S(e.fileName)}),(0,b.jsx)(`span`,{className:`ui-file-meta chat-attachment-meta`,translate:`yes`,children:i?o(`chat.sending`):u})]}),(0,b.jsx)(`span`,{className:c,translate:`yes`,children:s?o(`chat.checking`):t===`available`?(0,b.jsx)(h,{size:16}):t===`error`?(0,b.jsx)(n,{size:17}):(0,b.jsx)(r,{size:16})})]})}var T=[{key:`image`,labelKey:`chat.attachment.image`,accept:`image/*`,icon:u},{key:`video`,labelKey:`chat.attachment.video`,accept:`video/*`,icon:s},{key:`file`,labelKey:`chat.attachment.file`,accept:``,icon:a}],E=T.map(e=>e.accept).join(`,`);function D({children:e}){return(0,b.jsx)(`div`,{className:`message-bubble`,translate:`no`,children:e})}function O({children:e}){return(0,b.jsx)(`div`,{className:`message-bubble has-attachment`,children:e})}function k({variant:e,pending:t=!1,avatarSrc:n,author:r,time:i,children:a}){return(0,b.jsxs)(`div`,{className:[`chat-message`,e,t?`pending`:``].filter(Boolean).join(` `),children:[(0,b.jsx)(`img`,{className:`msg-avatar`,src:n,alt:`avatar`}),(0,b.jsxs)(`div`,{className:`msg-content`,children:[(0,b.jsx)(`span`,{className:`message-author`,translate:`no`,children:r}),a,(0,b.jsx)(`span`,{className:`message-time`,children:i})]})]})}function A({active:e=!1,pinned:t=!1,unread:n=!1,title:r,onSelect:a,onTogglePin:s,onRename:l,onLeave:u}){let{t:f}=m(),p=!!(s||l||u);return(0,b.jsxs)(`div`,{className:[`sidebar-nav-btn`,e?`active`:``,t?`pinned`:``,n?`unread`:``].filter(Boolean).join(` `),onClick:a,role:`button`,tabIndex:0,onKeyDown:e=>{e.target===e.currentTarget&&e.key===`Enter`&&a?.()},children:[(0,b.jsxs)(`span`,{className:`chat-channel-icon-wrap`,children:[(0,b.jsx)(d,{size:16}),n&&(0,b.jsx)(`span`,{className:`chat-channel-unread-dot`,title:f(`chat.unread`),"aria-hidden":`true`})]}),(0,b.jsx)(`span`,{className:`chat-channel-title`,children:(0,b.jsx)(`span`,{className:`chat-channel-title-text`,translate:`no`,children:r})}),p&&(0,b.jsx)(_,{ariaLabel:f(`chat.channelActions`),className:`channel-actions-anchor`,placement:`bottom-end`,items:[{key:`pin`,label:f(t?`chat.unpin`:`chat.pin`),icon:t?(0,b.jsx)(y,{size:16}):(0,b.jsx)(v,{size:16}),onSelect:()=>s?.()},{key:`rename`,label:f(`chat.rename`),icon:(0,b.jsx)(c,{size:16}),onSelect:()=>l?.()},{key:`delete`,label:f(`chat.delete`),icon:(0,b.jsx)(o,{size:16}),onSelect:()=>u?.()}],renderTrigger:e=>(0,b.jsx)(`button`,{...e,className:`leave-channel-btn channel-actions-trigger`,title:f(`common.moreActions`),"aria-label":f(`common.moreActions`),children:(0,b.jsx)(i,{size:16})})})]})}function j({members:e,isLoading:t=!1}){let{t:n}=m();return t&&e.length===0?(0,b.jsx)(`div`,{className:`ui-empty-inline channel-members-empty`,children:n(`chat.loadingMembers`)}):e.length===0?(0,b.jsx)(`div`,{className:`ui-empty-inline channel-members-empty`,children:n(`chat.noMembers`)}):(0,b.jsx)(`div`,{className:`channel-members-grid`,children:e.map(e=>(0,b.jsxs)(`div`,{className:`channel-member`,children:[(0,b.jsx)(`img`,{className:`channel-member-avatar`,src:e.avatarSrc,alt:`avatar`}),(0,b.jsx)(`span`,{className:`channel-member-name`,translate:`no`,children:e.name})]},e.id))})}function M({message:e,placeholder:n,disabled:r=!1,isPublishingAttachment:i=!1,attachmentButtonTitle:a,attachmentInputRef:o,onMessageChange:s,onSend:c,onSelectAttachmentFiles:u}){let{t:d}=m(),f=r||i,h=r||!e.trim(),g=a||d(`chat.attachment.add`);function v(e,t){t?.(e.currentTarget.files),e.currentTarget.value=``}function y(t){t.key===`Enter`&&e.trim()&&c()}function x(e){if(f)return;let t=o?.current;t&&(t.accept=e,t.click())}return(0,b.jsxs)(`div`,{className:`chat-input-area`,children:[(0,b.jsx)(`input`,{ref:o,type:`file`,accept:E,className:`chat-file-input`,onChange:e=>v(e,u)}),(0,b.jsx)(_,{ariaLabel:d(`chat.attachmentType`),placement:`top-start`,disabled:f,items:T.map(e=>{let t=e.icon;return{key:e.key,label:d(e.labelKey),icon:(0,b.jsx)(t,{size:16}),onSelect:()=>x(e.accept)}}),renderTrigger:e=>(0,b.jsx)(`button`,{...e,className:`btn btn-circle chat-tool-btn`,"aria-label":g,children:i?(0,b.jsx)(l,{size:18,className:`ui-spinner chat-attachment-spinner`}):(0,b.jsx)(p,{size:18})})}),(0,b.jsx)(`input`,{type:`text`,className:`input input-pill`,placeholder:n,value:e,disabled:r,onChange:e=>s(e.target.value),onKeyDown:y}),(0,b.jsx)(`button`,{type:`button`,className:`btn btn-circle btn-primary send-btn`,onClick:c,disabled:h,title:d(`chat.sendMessage`),children:(0,b.jsx)(t,{size:18})})]})}export{k as a,S as c,M as i,O as n,D as o,A as r,w as s,j as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-Bt-cYkS5.js";import{G as t,W as n}from"./index-QxXZzOUL.js";var r=n(`languages`,[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),i=n(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),a=n(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),o=e();function s({className:e=``}){let{locale:n,nextLocale:i,setLocale:a,t:s}=t(),c=s(n===`zh-CN`?`common.locale.switchToEnglish`:`common.locale.switchToChinese`);return(0,o.jsx)(`button`,{type:`button`,className:[`language-toggle`,e].filter(Boolean).join(` `),onClick:()=>a(i),"aria-label":c,title:c,children:(0,o.jsx)(r,{size:16})})}export{a as n,i as r,s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-Bt-cYkS5.js";import{W as t}from"./index-
|
|
1
|
+
import{t as e}from"./jsx-runtime-Bt-cYkS5.js";import{W as t}from"./index-QxXZzOUL.js";var n=t(`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`}]]),r=e();function i({size:e=24}){return(0,r.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,r.jsx)(`rect`,{x:`2`,y:`2`,width:`8`,height:`8`,rx:`2`,fill:`var(--accent)`,opacity:`0.4`}),(0,r.jsx)(`rect`,{x:`14`,y:`2`,width:`8`,height:`8`,rx:`2`,fill:`var(--accent)`,opacity:`0.7`}),(0,r.jsx)(`rect`,{x:`2`,y:`14`,width:`8`,height:`8`,rx:`2`,fill:`var(--accent)`,opacity:`0.7`}),(0,r.jsx)(`rect`,{x:`14`,y:`14`,width:`8`,height:`8`,rx:`2`,fill:`var(--accent)`})]})}export{n,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-Bt-cYkS5.js";import
|
|
1
|
+
import{t as e}from"./jsx-runtime-Bt-cYkS5.js";import{n as t,t as n}from"./Nav-9MDdvgNs.js";import"./index-QxXZzOUL.js";var r=e();function i({children:e}){return(0,r.jsxs)(`div`,{className:`mkt-layout`,children:[(0,r.jsx)(n,{}),(0,r.jsx)(`main`,{className:`mkt-layout-main`,children:e}),(0,r.jsx)(t,{})]})}export{i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{n as r,r as i}from"./LanguageToggle-CtzCCAYv.js";import{G as a}from"./index-QxXZzOUL.js";var o=t(e(),1),s=n();function c(){let[e,t]=(0,o.useState)(!1),{t:n}=a();return(0,o.useEffect)(()=>{let e=localStorage.getItem(`theme`),n=window.matchMedia(`(prefers-color-scheme: dark)`).matches;(e===`dark`||!e&&n)&&t(!0)},[]),(0,o.useEffect)(()=>{document.documentElement.setAttribute(`data-theme`,e?`dark`:`light`),localStorage.setItem(`theme`,e?`dark`:`light`)},[e]),(0,s.jsx)(`button`,{type:`button`,className:`mkt-theme-toggle`,onClick:()=>t(!e),"aria-label":n(`common.theme.toggle`),title:n(`common.theme.toggle`),children:e?(0,s.jsx)(r,{size:16}):(0,s.jsx)(i,{size:16})})}export{c as t};
|