most-box 0.0.1 → 0.0.4
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 +182 -73
- package/out/404/index.html +15 -0
- package/out/404.html +15 -0
- package/out/__next.__PAGE__.txt +9 -0
- package/out/__next._full.txt +18 -0
- package/out/__next._head.txt +5 -0
- package/out/__next._index.txt +6 -0
- package/out/__next._tree.txt +2 -0
- package/out/_next/static/0h4f4QFk_KC9FlSRfQACk/_buildManifest.js +11 -0
- package/out/_next/static/0h4f4QFk_KC9FlSRfQACk/_clientMiddlewareManifest.js +1 -0
- package/out/_next/static/0h4f4QFk_KC9FlSRfQACk/_ssgManifest.js +1 -0
- package/out/_next/static/chunks/00l-yd3t8dvwz.js +5 -0
- package/out/_next/static/chunks/03k8t3tgym~8~.js +1 -0
- package/out/_next/static/chunks/03~yq9q893hmn.js +1 -0
- package/out/_next/static/chunks/09vfh8lfuacc0.css +1 -0
- package/out/_next/static/chunks/0bogtdbh.dcu1.js +1 -0
- package/out/_next/static/chunks/0dbhjjzl8qfwv.js +1 -0
- package/out/_next/static/chunks/0f73psqhr8dre.css +1 -0
- package/out/_next/static/chunks/0fbi7z4_.4j1j.js +1 -0
- package/out/_next/static/chunks/0ht900cau6_ur.js +31 -0
- package/out/_next/static/chunks/0ohm.ia-4ec60.js +1 -0
- package/out/_next/static/chunks/0u5ydb-f0.vxl.js +1 -0
- package/out/_next/static/chunks/14t2m1on-s5v~.js +1 -0
- package/out/_next/static/chunks/turbopack-076ce9exut_h3.js +1 -0
- package/out/_not-found/__next._full.txt +16 -0
- package/out/_not-found/__next._head.txt +5 -0
- package/out/_not-found/__next._index.txt +6 -0
- package/out/_not-found/__next._not-found/__PAGE__.txt +5 -0
- package/out/_not-found/__next._not-found.txt +5 -0
- package/out/_not-found/__next._tree.txt +2 -0
- package/out/_not-found/index.html +15 -0
- package/out/_not-found/index.txt +16 -0
- package/out/app.css +1535 -0
- package/out/bundle.js +107 -0
- package/out/bundle.js.map +7 -0
- package/out/chat/__next._full.txt +19 -0
- package/out/chat/__next._head.txt +5 -0
- package/out/chat/__next._index.txt +6 -0
- package/out/chat/__next._tree.txt +3 -0
- package/out/chat/__next.chat/__PAGE__.txt +9 -0
- package/out/chat/__next.chat.txt +5 -0
- package/out/chat/index.html +15 -0
- package/out/chat/index.txt +19 -0
- package/out/chat-page.js +112 -0
- package/out/chat.css +378 -0
- package/out/favicon.ico +0 -0
- package/out/index.html +15 -0
- package/out/index.js +148 -0
- package/out/index.txt +18 -0
- package/package.json +16 -7
- package/public/app.css +1535 -0
- package/public/bundle.js +10 -14
- package/public/bundle.js.map +4 -4
- package/public/chat-page.js +112 -0
- package/public/chat.css +378 -0
- package/public/index.js +148 -0
- package/server.js +464 -199
- package/src/config.js +36 -8
- package/src/core/cid.js +28 -19
- package/src/index.js +872 -276
- package/src/utils/api.js +6 -0
- package/src/utils/security.js +27 -24
- package/build.mjs +0 -40
- package/public/app.jsx +0 -1335
- package/public/icons/apple-touch-icon.png +0 -0
- package/public/icons/mask-icon.svg +0 -3
- package/public/icons/most.png +0 -0
- package/public/icons/pwa-192x192.png +0 -0
- package/public/icons/pwa-512x512.png +0 -0
- package/public/index.html +0 -15
- package/public/index.jsx +0 -5
package/out/chat.css
ADDED
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
/* =============================================
|
|
2
|
+
Chat Page Styles
|
|
3
|
+
Chat-specific components (reuses app.css for layout)
|
|
4
|
+
============================================= */
|
|
5
|
+
|
|
6
|
+
/* === Dark Theme Support === */
|
|
7
|
+
[data-theme="dark"] {
|
|
8
|
+
--chat-bg-secondary: #1e293b;
|
|
9
|
+
--chat-bg-tertiary: #334155;
|
|
10
|
+
--chat-border-color: rgba(255, 255, 255, 0.08);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* === Messages Area === */
|
|
14
|
+
.chat-messages {
|
|
15
|
+
flex: 1;
|
|
16
|
+
overflow-y: auto;
|
|
17
|
+
padding: 20px 24px;
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
gap: 16px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.chat-messages-empty {
|
|
24
|
+
flex: 1;
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
color: var(--text-muted);
|
|
30
|
+
gap: 12px;
|
|
31
|
+
|
|
32
|
+
.empty-icon {
|
|
33
|
+
width: 64px;
|
|
34
|
+
height: 64px;
|
|
35
|
+
border-radius: 16px;
|
|
36
|
+
background: var(--bg-tertiary);
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
39
|
+
justify-content: center;
|
|
40
|
+
color: var(--text-muted);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
p {
|
|
44
|
+
font-size: 14px;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.chat-message {
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
max-width: 70%;
|
|
52
|
+
animation: fadeIn 0.2s ease;
|
|
53
|
+
|
|
54
|
+
&.self {
|
|
55
|
+
align-self: flex-end;
|
|
56
|
+
align-items: flex-end;
|
|
57
|
+
|
|
58
|
+
.message-bubble {
|
|
59
|
+
background: color-mix(in srgb, var(--accent-blue) 12%, var(--bg-secondary));
|
|
60
|
+
border: 1px solid color-mix(in srgb, var(--accent-blue) 20%, var(--border-color));
|
|
61
|
+
border-radius: 18px 18px 4px 18px;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&.other {
|
|
66
|
+
align-self: flex-start;
|
|
67
|
+
align-items: flex-start;
|
|
68
|
+
|
|
69
|
+
.message-bubble {
|
|
70
|
+
background: var(--bg-tertiary);
|
|
71
|
+
border-radius: 18px 18px 18px 4px;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.message-author {
|
|
76
|
+
font-size: 11px;
|
|
77
|
+
color: var(--text-muted);
|
|
78
|
+
margin-bottom: 4px;
|
|
79
|
+
padding: 0 12px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.message-bubble {
|
|
83
|
+
padding: 12px 16px;
|
|
84
|
+
font-size: 14px;
|
|
85
|
+
line-height: 1.5;
|
|
86
|
+
word-break: break-word;
|
|
87
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.message-time {
|
|
91
|
+
font-size: 10px;
|
|
92
|
+
color: var(--text-muted);
|
|
93
|
+
margin-top: 4px;
|
|
94
|
+
padding: 0 12px;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&.pending .message-bubble {
|
|
98
|
+
opacity: 0.6;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@keyframes fadeIn {
|
|
103
|
+
from {
|
|
104
|
+
opacity: 0;
|
|
105
|
+
transform: translateY(8px);
|
|
106
|
+
}
|
|
107
|
+
to {
|
|
108
|
+
opacity: 1;
|
|
109
|
+
transform: translateY(0);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* === Input Area === */
|
|
114
|
+
.chat-input-area {
|
|
115
|
+
display: flex;
|
|
116
|
+
gap: 12px;
|
|
117
|
+
padding: 16px 24px;
|
|
118
|
+
border-top: 1px solid var(--border-color);
|
|
119
|
+
background: var(--bg-secondary);
|
|
120
|
+
|
|
121
|
+
.chat-input {
|
|
122
|
+
flex: 1;
|
|
123
|
+
padding: 12px 18px;
|
|
124
|
+
border-radius: 24px;
|
|
125
|
+
border: 1.5px solid var(--border-color);
|
|
126
|
+
background: var(--bg-primary);
|
|
127
|
+
color: var(--text-primary);
|
|
128
|
+
font-size: 14px;
|
|
129
|
+
outline: none;
|
|
130
|
+
transition: border-color 0.15s;
|
|
131
|
+
|
|
132
|
+
&::placeholder {
|
|
133
|
+
color: var(--text-muted);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
&:focus {
|
|
137
|
+
border-color: var(--accent-blue);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.send-btn {
|
|
142
|
+
width: 44px;
|
|
143
|
+
height: 44px;
|
|
144
|
+
border-radius: 50%;
|
|
145
|
+
border: none;
|
|
146
|
+
background: var(--accent-blue);
|
|
147
|
+
color: #fff;
|
|
148
|
+
cursor: pointer;
|
|
149
|
+
display: flex;
|
|
150
|
+
align-items: center;
|
|
151
|
+
justify-content: center;
|
|
152
|
+
transition: all 0.15s;
|
|
153
|
+
flex-shrink: 0;
|
|
154
|
+
|
|
155
|
+
&:hover:not(:disabled) {
|
|
156
|
+
background: color-mix(in srgb, var(--accent-blue) 85%, black);
|
|
157
|
+
transform: scale(1.05);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
&:disabled {
|
|
161
|
+
opacity: 0.5;
|
|
162
|
+
cursor: not-allowed;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* === Toast === */
|
|
168
|
+
.chat-toast {
|
|
169
|
+
position: fixed;
|
|
170
|
+
bottom: 24px;
|
|
171
|
+
left: 50%;
|
|
172
|
+
transform: translateX(-50%);
|
|
173
|
+
z-index: 200;
|
|
174
|
+
padding: 12px 24px;
|
|
175
|
+
border-radius: 12px;
|
|
176
|
+
background: var(--bg-secondary);
|
|
177
|
+
color: var(--text-primary);
|
|
178
|
+
font-size: 13px;
|
|
179
|
+
font-weight: 500;
|
|
180
|
+
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
|
|
181
|
+
border: 1px solid var(--border-color);
|
|
182
|
+
animation: toastIn 0.3s ease;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@keyframes toastIn {
|
|
186
|
+
from {
|
|
187
|
+
opacity: 0;
|
|
188
|
+
transform: translateX(-50%) translateY(20px);
|
|
189
|
+
}
|
|
190
|
+
to {
|
|
191
|
+
opacity: 1;
|
|
192
|
+
transform: translateX(-50%) translateY(0);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/* === Welcome State (no channel selected) === */
|
|
197
|
+
.chat-welcome {
|
|
198
|
+
flex: 1;
|
|
199
|
+
display: flex;
|
|
200
|
+
flex-direction: column;
|
|
201
|
+
align-items: center;
|
|
202
|
+
justify-content: center;
|
|
203
|
+
padding: 40px;
|
|
204
|
+
text-align: center;
|
|
205
|
+
background: var(--bg-primary);
|
|
206
|
+
|
|
207
|
+
.welcome-icon {
|
|
208
|
+
width: 80px;
|
|
209
|
+
height: 80px;
|
|
210
|
+
border-radius: 20px;
|
|
211
|
+
background: linear-gradient(135deg, color-mix(in srgb, var(--accent-blue) 15%, var(--bg-secondary)), color-mix(in srgb, var(--accent-blue) 5%, var(--bg-tertiary)));
|
|
212
|
+
display: flex;
|
|
213
|
+
align-items: center;
|
|
214
|
+
justify-content: center;
|
|
215
|
+
color: var(--accent-blue);
|
|
216
|
+
margin-bottom: 20px;
|
|
217
|
+
box-shadow: 0 10px 40px color-mix(in srgb, var(--accent-blue) 20%, transparent);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
h2 {
|
|
221
|
+
font-size: 22px;
|
|
222
|
+
font-weight: 700;
|
|
223
|
+
margin-bottom: 8px;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
p {
|
|
227
|
+
font-size: 14px;
|
|
228
|
+
color: var(--text-secondary);
|
|
229
|
+
max-width: 320px;
|
|
230
|
+
line-height: 1.6;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* === Create Channel Button === */
|
|
235
|
+
.create-channel-btn {
|
|
236
|
+
margin: 8px;
|
|
237
|
+
padding: 10px;
|
|
238
|
+
border-radius: 8px;
|
|
239
|
+
border: 1.5px dashed var(--border-color);
|
|
240
|
+
background: transparent;
|
|
241
|
+
color: var(--text-secondary);
|
|
242
|
+
cursor: pointer;
|
|
243
|
+
display: flex;
|
|
244
|
+
align-items: center;
|
|
245
|
+
justify-content: center;
|
|
246
|
+
gap: 6px;
|
|
247
|
+
font-size: 13px;
|
|
248
|
+
font-weight: 500;
|
|
249
|
+
transition: all 0.15s;
|
|
250
|
+
|
|
251
|
+
&:hover {
|
|
252
|
+
border-color: var(--accent-blue);
|
|
253
|
+
color: var(--accent-blue);
|
|
254
|
+
background: color-mix(in srgb, var(--accent-blue) 5%, transparent);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* === Peer Info === */
|
|
259
|
+
.peer-info {
|
|
260
|
+
display: flex;
|
|
261
|
+
align-items: center;
|
|
262
|
+
gap: 8px;
|
|
263
|
+
font-size: 11px;
|
|
264
|
+
color: var(--text-secondary);
|
|
265
|
+
|
|
266
|
+
.peer-dot {
|
|
267
|
+
width: 6px;
|
|
268
|
+
height: 6px;
|
|
269
|
+
border-radius: 50%;
|
|
270
|
+
background: var(--success);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.peer-id {
|
|
274
|
+
font-family: monospace;
|
|
275
|
+
flex: 1;
|
|
276
|
+
overflow: hidden;
|
|
277
|
+
text-overflow: ellipsis;
|
|
278
|
+
white-space: nowrap;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/* === Back Button (for chat sidebar) === */
|
|
283
|
+
.back-btn {
|
|
284
|
+
width: 32px;
|
|
285
|
+
height: 32px;
|
|
286
|
+
border-radius: 8px;
|
|
287
|
+
border: none;
|
|
288
|
+
background: transparent;
|
|
289
|
+
cursor: pointer;
|
|
290
|
+
color: var(--text-secondary);
|
|
291
|
+
display: flex;
|
|
292
|
+
align-items: center;
|
|
293
|
+
justify-content: center;
|
|
294
|
+
transition: background 0.15s;
|
|
295
|
+
|
|
296
|
+
&:hover {
|
|
297
|
+
background: var(--bg-tertiary);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* === Mobile === */
|
|
302
|
+
.chat-sidebar-overlay {
|
|
303
|
+
display: none;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
@media (max-width: 768px) {
|
|
307
|
+
.chat-sidebar {
|
|
308
|
+
position: fixed;
|
|
309
|
+
left: -240px;
|
|
310
|
+
top: 0;
|
|
311
|
+
bottom: 0;
|
|
312
|
+
z-index: 50;
|
|
313
|
+
transition: left 0.3s ease;
|
|
314
|
+
|
|
315
|
+
&.open {
|
|
316
|
+
left: 0;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.chat-sidebar-overlay {
|
|
321
|
+
display: block;
|
|
322
|
+
position: fixed;
|
|
323
|
+
inset: 0;
|
|
324
|
+
background: rgba(0, 0, 0, 0.5);
|
|
325
|
+
z-index: 40;
|
|
326
|
+
opacity: 0;
|
|
327
|
+
pointer-events: none;
|
|
328
|
+
transition: opacity 0.3s ease;
|
|
329
|
+
|
|
330
|
+
&.visible {
|
|
331
|
+
opacity: 1;
|
|
332
|
+
pointer-events: auto;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.chat-messages {
|
|
337
|
+
padding: 16px;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
.chat-message {
|
|
341
|
+
max-width: 85%;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
.chat-input-area {
|
|
345
|
+
padding: 12px 16px;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
.sidebar-nav-btn .leave-channel-btn {
|
|
349
|
+
opacity: 1;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/* === Leave Channel Button === */
|
|
354
|
+
.leave-channel-btn {
|
|
355
|
+
margin-left: auto;
|
|
356
|
+
opacity: 0;
|
|
357
|
+
background: none;
|
|
358
|
+
border: none;
|
|
359
|
+
color: var(--text-muted);
|
|
360
|
+
cursor: pointer;
|
|
361
|
+
padding: 4px;
|
|
362
|
+
border-radius: 4px;
|
|
363
|
+
transition: opacity 0.15s, color 0.15s;
|
|
364
|
+
display: flex;
|
|
365
|
+
align-items: center;
|
|
366
|
+
justify-content: center;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.sidebar-nav-btn:hover .leave-channel-btn {
|
|
370
|
+
opacity: 1;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.leave-channel-btn:hover {
|
|
374
|
+
color: var(--danger);
|
|
375
|
+
background: color-mix(in srgb, var(--danger) 10%, transparent);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
|
package/out/favicon.ico
ADDED
|
Binary file
|
package/out/index.html
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="UTF-8"/><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/09vfh8lfuacc0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ht900cau6_ur.js"/><script src="/_next/static/chunks/00l-yd3t8dvwz.js" async=""></script><script src="/_next/static/chunks/0bogtdbh.dcu1.js" async=""></script><script src="/_next/static/chunks/turbopack-076ce9exut_h3.js" async=""></script><script src="/_next/static/chunks/0u5ydb-f0.vxl.js" async=""></script><script src="/_next/static/chunks/0dbhjjzl8qfwv.js" async=""></script><script src="/_next/static/chunks/03k8t3tgym~8~.js" async=""></script><script src="/_next/static/chunks/0ohm.ia-4ec60.js" async=""></script><link rel="icon" href="/favicon.ico"/><title>MostBox 文件管理</title><meta name="description" content="MostBox P2P 文件管理"/><script>
|
|
2
|
+
(function() {
|
|
3
|
+
var theme = localStorage.getItem('theme');
|
|
4
|
+
if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
5
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
6
|
+
}
|
|
7
|
+
})();
|
|
8
|
+
</script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>
|
|
9
|
+
window.onerror = function(message, source, lineno, colno, error) {
|
|
10
|
+
console.error('[Global Error]', { message, source, lineno, colno, error });
|
|
11
|
+
};
|
|
12
|
+
window.onunhandledrejection = function(event) {
|
|
13
|
+
console.error('[Unhandled Promise Rejection]', event.reason);
|
|
14
|
+
};
|
|
15
|
+
</script><div class="app-layout"><div class="sidebar-overlay "></div><div class="sidebar "><div class="sidebar-header"><h1>Most.Box</h1></div><nav class="sidebar-nav"><button class="sidebar-nav-btn active"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-files" aria-hidden="true"><path d="M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8"></path><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"></path><path d="M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1"></path></svg><span>全部内容</span></button><button class="sidebar-nav-btn "><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star" aria-hidden="true"><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"></path></svg><span>收藏</span></button><button class="sidebar-nav-btn "><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2 lucide-trash-2" aria-hidden="true"><path d="M10 11v6"></path><path d="M14 11v6"></path><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"></path><path d="M3 6h18"></path><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg><span>回收站</span></button><button class="sidebar-nav-btn "><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square" aria-hidden="true"><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"></path></svg><span>聊天</span></button></nav><div class="sidebar-footer"><div class="sidebar-footer-label"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hard-drive" aria-hidden="true"><path d="M10 16h.01"></path><path d="M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></path><path d="M21.946 12.013H2.054"></path><path d="M6 16h.01"></path></svg><span>存储空间</span></div><div class="storage-bar"><div class="storage-bar-fill" style="width:0%"></div></div><div class="storage-info"><span>0 B</span><span>-</span></div></div></div><div class="main-content"><header class="app-header"><div class="header-left"><button class="icon-btn mobile-menu-btn"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button><h2 class="header-title">全部内容</h2><div class="header-badge"><div class="header-badge-dot "></div>等待连接</div></div><div class="header-right"><div class="search-box"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><input type="text" placeholder="搜索..." value=""/></div><button class="icon-btn"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-down" aria-hidden="true"><path d="m21 16-4 4-4-4"></path><path d="M17 20V4"></path><path d="m3 8 4-4 4 4"></path><path d="M7 4v16"></path></svg></button><button class="icon-btn theme-toggle"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon" aria-hidden="true"><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"></path></svg></button><button class="icon-btn"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button></div></header><div class="action-grid"><div class="action-card upload "><input type="file" multiple="" class="action-card-input"/><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-upload" aria-hidden="true" style="margin-bottom:8px"><path d="M12 3v12"></path><path d="m17 8-5-5-5 5"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path></svg><p>上传文件</p></div><div class="action-card action-card-download"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true" style="margin-bottom:8px"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg><p>下载文件</p></div></div><div class="breadcrumb"></div><div class="content-grid"><div class="empty-state">暂无文件</div></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0ht900cau6_ur.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[17279,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\"],\"ErrorBoundary\"]\n3:I[39756,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\"],\"default\"]\n5:I[47257,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\"],\"ClientPageRoot\"]\n6:I[29615,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\",\"/_next/static/chunks/03k8t3tgym~8~.js\",\"/_next/static/chunks/0ohm.ia-4ec60.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[97367,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\"],\"ViewportBoundary\"]\ne:I[97367,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\"],\"MetadataBoundary\"]\n10:I[68027,[\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"/_next/static/chunks/0dbhjjzl8qfwv.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/09vfh8lfuacc0.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/09vfh8lfuacc0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0u5ydb-f0.vxl.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0dbhjjzl8qfwv.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"charSet\":\"UTF-8\"}],[\"$\",\"meta\",null,{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n var theme = localStorage.getItem('theme');\\n if (theme === 'dark' || (!theme \u0026\u0026 window.matchMedia('(prefers-color-scheme: dark)').matches)) {\\n document.documentElement.setAttribute('data-theme', 'dark');\\n }\\n })();\\n \"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.onerror = function(message, source, lineno, colno, error) {\\n console.error('[Global Error]', { message, source, lineno, colno, error });\\n };\\n window.onunhandledrejection = function(event) {\\n console.error('[Unhandled Promise Rejection]', event.reason);\\n };\\n \"}}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/03k8t3tgym~8~.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0ohm.ia-4ec60.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/09vfh8lfuacc0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"0h4f4QFk_KC9FlSRfQACk\"}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"MostBox 文件管理\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"MostBox P2P 文件管理\"}]]\n"])</script></body></html>
|