share-home 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +19 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/dev/build-manifest.json +18 -0
  5. package/.next/dev/cache/webpack/client-development/0.pack.gz +0 -0
  6. package/.next/dev/cache/webpack/client-development/index.pack.gz +0 -0
  7. package/.next/dev/cache/webpack/server-development/0.pack.gz +0 -0
  8. package/.next/dev/cache/webpack/server-development/index.pack.gz +0 -0
  9. package/.next/dev/react-loadable-manifest.json +1 -0
  10. package/.next/dev/server/app/api/config/route_client-reference-manifest.js +1 -0
  11. package/.next/dev/server/app/api/documents/route_client-reference-manifest.js +1 -0
  12. package/.next/dev/server/app/api/init/route_client-reference-manifest.js +1 -0
  13. package/.next/dev/server/app/api/peers/route_client-reference-manifest.js +1 -0
  14. package/.next/dev/server/app/api/transfer/download/route_client-reference-manifest.js +1 -0
  15. package/.next/dev/server/app/api/transfer/prepare/route_client-reference-manifest.js +1 -0
  16. package/.next/dev/server/app/api/transfer/shared/download/route_client-reference-manifest.js +1 -0
  17. package/.next/dev/server/app/api/transfer/shared/route_client-reference-manifest.js +1 -0
  18. package/.next/dev/server/app/api/transfer/tasks/route_client-reference-manifest.js +1 -0
  19. package/.next/dev/server/app/page_client-reference-manifest.js +1 -0
  20. package/.next/dev/server/app-paths-manifest.json +3 -0
  21. package/.next/dev/server/middleware-build-manifest.js +18 -0
  22. package/.next/dev/server/middleware-react-loadable-manifest.js +1 -0
  23. package/.next/dev/server/next-font-manifest.js +1 -0
  24. package/.next/dev/server/next-font-manifest.json +1 -0
  25. package/.next/dev/server/pages-manifest.json +1 -0
  26. package/.next/dev/server/server-reference-manifest.js +1 -0
  27. package/.next/dev/server/server-reference-manifest.json +5 -0
  28. package/.next/dev/server/vendor-chunks/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4.js +3998 -0
  29. package/.next/dev/server/webpack-runtime.js +209 -0
  30. package/.next/dev/static/development/_buildManifest.js +1 -0
  31. package/.next/dev/static/development/_ssgManifest.js +1 -0
  32. package/.next/dev/types/app/layout.ts +87 -0
  33. package/.next/dev/types/app/page.ts +87 -0
  34. package/.next/dev/types/package.json +1 -0
  35. package/.next/diagnostics/build-diagnostics.json +6 -0
  36. package/.next/diagnostics/framework.json +1 -0
  37. package/.next/export-marker.json +6 -0
  38. package/.next/images-manifest.json +68 -0
  39. package/.next/next-minimal-server.js.nft.json +1 -0
  40. package/.next/next-server.js.nft.json +1 -0
  41. package/.next/package.json +1 -0
  42. package/.next/prerender-manifest.json +114 -0
  43. package/.next/react-loadable-manifest.json +1 -0
  44. package/.next/required-server-files.js +337 -0
  45. package/.next/required-server-files.json +337 -0
  46. package/.next/routes-manifest.json +147 -0
  47. package/.next/server/app/_global-error/page.js +32 -0
  48. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  49. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  50. package/.next/server/app/_global-error.html +1 -0
  51. package/.next/server/app/_global-error.meta +16 -0
  52. package/.next/server/app/_global-error.rsc +14 -0
  53. package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  54. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  55. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  56. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  57. package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  58. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  59. package/.next/server/app/_not-found/page.js +7 -0
  60. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  61. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  62. package/.next/server/app/_not-found.html +6 -0
  63. package/.next/server/app/_not-found.meta +16 -0
  64. package/.next/server/app/_not-found.rsc +18 -0
  65. package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -0
  66. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  67. package/.next/server/app/_not-found.segments/_index.segment.rsc +5 -0
  68. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  69. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  70. package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -0
  71. package/.next/server/app/api/board/sync/route.js +1 -0
  72. package/.next/server/app/api/board/sync/route.js.nft.json +1 -0
  73. package/.next/server/app/api/board/sync/route_client-reference-manifest.js +1 -0
  74. package/.next/server/app/api/config/route.js +1 -0
  75. package/.next/server/app/api/config/route.js.nft.json +1 -0
  76. package/.next/server/app/api/config/route_client-reference-manifest.js +1 -0
  77. package/.next/server/app/api/documents/route.js +1 -0
  78. package/.next/server/app/api/documents/route.js.nft.json +1 -0
  79. package/.next/server/app/api/documents/route_client-reference-manifest.js +1 -0
  80. package/.next/server/app/api/documents/sync/route.js +1 -0
  81. package/.next/server/app/api/documents/sync/route.js.nft.json +1 -0
  82. package/.next/server/app/api/documents/sync/route_client-reference-manifest.js +1 -0
  83. package/.next/server/app/api/init/route.js +1 -0
  84. package/.next/server/app/api/init/route.js.nft.json +1 -0
  85. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -0
  86. package/.next/server/app/api/peers/route.js +1 -0
  87. package/.next/server/app/api/peers/route.js.nft.json +1 -0
  88. package/.next/server/app/api/peers/route_client-reference-manifest.js +1 -0
  89. package/.next/server/app/api/transfer/download/route.js +1 -0
  90. package/.next/server/app/api/transfer/download/route.js.nft.json +1 -0
  91. package/.next/server/app/api/transfer/download/route_client-reference-manifest.js +1 -0
  92. package/.next/server/app/api/transfer/prepare/route.js +1 -0
  93. package/.next/server/app/api/transfer/prepare/route.js.nft.json +1 -0
  94. package/.next/server/app/api/transfer/prepare/route_client-reference-manifest.js +1 -0
  95. package/.next/server/app/api/transfer/request/route.js +1 -0
  96. package/.next/server/app/api/transfer/request/route.js.nft.json +1 -0
  97. package/.next/server/app/api/transfer/request/route_client-reference-manifest.js +1 -0
  98. package/.next/server/app/api/transfer/shared/download/route.js +1 -0
  99. package/.next/server/app/api/transfer/shared/download/route.js.nft.json +1 -0
  100. package/.next/server/app/api/transfer/shared/download/route_client-reference-manifest.js +1 -0
  101. package/.next/server/app/api/transfer/shared/route.js +1 -0
  102. package/.next/server/app/api/transfer/shared/route.js.nft.json +1 -0
  103. package/.next/server/app/api/transfer/shared/route_client-reference-manifest.js +1 -0
  104. package/.next/server/app/api/transfer/start/route.js +1 -0
  105. package/.next/server/app/api/transfer/start/route.js.nft.json +1 -0
  106. package/.next/server/app/api/transfer/start/route_client-reference-manifest.js +1 -0
  107. package/.next/server/app/api/transfer/tasks/route.js +1 -0
  108. package/.next/server/app/api/transfer/tasks/route.js.nft.json +1 -0
  109. package/.next/server/app/api/transfer/tasks/route_client-reference-manifest.js +1 -0
  110. package/.next/server/app/favicon.ico/route.js +1 -0
  111. package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  112. package/.next/server/app/favicon.ico.body +0 -0
  113. package/.next/server/app/favicon.ico.meta +1 -0
  114. package/.next/server/app/index.html +6 -0
  115. package/.next/server/app/index.meta +14 -0
  116. package/.next/server/app/index.rsc +21 -0
  117. package/.next/server/app/index.segments/__PAGE__.segment.rsc +10 -0
  118. package/.next/server/app/index.segments/_full.segment.rsc +21 -0
  119. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  120. package/.next/server/app/index.segments/_index.segment.rsc +5 -0
  121. package/.next/server/app/index.segments/_tree.segment.rsc +5 -0
  122. package/.next/server/app/page.js +115 -0
  123. package/.next/server/app/page.js.nft.json +1 -0
  124. package/.next/server/app/page_client-reference-manifest.js +1 -0
  125. package/.next/server/app-paths-manifest.json +19 -0
  126. package/.next/server/chunks/31.js +2 -0
  127. package/.next/server/chunks/4.js +1 -0
  128. package/.next/server/chunks/404.js +1 -0
  129. package/.next/server/chunks/516.js +1 -0
  130. package/.next/server/chunks/718.js +45 -0
  131. package/.next/server/chunks/887.js +1 -0
  132. package/.next/server/chunks/891.js +18 -0
  133. package/.next/server/functions-config-manifest.json +4 -0
  134. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  135. package/.next/server/middleware-build-manifest.js +1 -0
  136. package/.next/server/middleware-manifest.json +6 -0
  137. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  138. package/.next/server/next-font-manifest.js +1 -0
  139. package/.next/server/next-font-manifest.json +1 -0
  140. package/.next/server/pages/404.html +6 -0
  141. package/.next/server/pages/500.html +1 -0
  142. package/.next/server/pages-manifest.json +4 -0
  143. package/.next/server/prefetch-hints.json +1 -0
  144. package/.next/server/server-reference-manifest.js +1 -0
  145. package/.next/server/server-reference-manifest.json +1 -0
  146. package/.next/server/webpack-runtime.js +1 -0
  147. package/.next/static/JAumJsHdasa7bQ7jxx37q/_buildManifest.js +1 -0
  148. package/.next/static/JAumJsHdasa7bQ7jxx37q/_ssgManifest.js +1 -0
  149. package/.next/static/chunks/148-2d58b90f6dc8cfaf.js +32 -0
  150. package/.next/static/chunks/5d8f0495-d87c92750ebe0885.js +82 -0
  151. package/.next/static/chunks/649-20578e0ca00dbde1.js +14 -0
  152. package/.next/static/chunks/991cd08a-0938e33045166413.js +1 -0
  153. package/.next/static/chunks/app/_global-error/page-a02f063e5aaa162f.js +1 -0
  154. package/.next/static/chunks/app/_not-found/page-5696c6e9b39a4885.js +1 -0
  155. package/.next/static/chunks/app/api/board/sync/route-a02f063e5aaa162f.js +1 -0
  156. package/.next/static/chunks/app/api/config/route-a02f063e5aaa162f.js +1 -0
  157. package/.next/static/chunks/app/api/documents/route-a02f063e5aaa162f.js +1 -0
  158. package/.next/static/chunks/app/api/documents/sync/route-a02f063e5aaa162f.js +1 -0
  159. package/.next/static/chunks/app/api/init/route-a02f063e5aaa162f.js +1 -0
  160. package/.next/static/chunks/app/api/peers/route-a02f063e5aaa162f.js +1 -0
  161. package/.next/static/chunks/app/api/transfer/download/route-a02f063e5aaa162f.js +1 -0
  162. package/.next/static/chunks/app/api/transfer/prepare/route-a02f063e5aaa162f.js +1 -0
  163. package/.next/static/chunks/app/api/transfer/request/route-a02f063e5aaa162f.js +1 -0
  164. package/.next/static/chunks/app/api/transfer/shared/download/route-a02f063e5aaa162f.js +1 -0
  165. package/.next/static/chunks/app/api/transfer/shared/route-a02f063e5aaa162f.js +1 -0
  166. package/.next/static/chunks/app/api/transfer/start/route-a02f063e5aaa162f.js +1 -0
  167. package/.next/static/chunks/app/api/transfer/tasks/route-a02f063e5aaa162f.js +1 -0
  168. package/.next/static/chunks/app/layout-f1c1109b37ee9a67.js +1 -0
  169. package/.next/static/chunks/app/page-d667dde9ae730a9e.js +15 -0
  170. package/.next/static/chunks/be838f7e-d7eb8d1a464523ea.js +1 -0
  171. package/.next/static/chunks/framework-1af2d653ea416252.js +1 -0
  172. package/.next/static/chunks/main-app-2475c374c5ac40b5.js +1 -0
  173. package/.next/static/chunks/main-c04fb4d60a5182d4.js +5 -0
  174. package/.next/static/chunks/next/dist/client/components/builtin/app-error-a02f063e5aaa162f.js +1 -0
  175. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-a02f063e5aaa162f.js +1 -0
  176. package/.next/static/chunks/next/dist/client/components/builtin/global-error-9771ee9f95e5e628.js +1 -0
  177. package/.next/static/chunks/next/dist/client/components/builtin/not-found-a02f063e5aaa162f.js +1 -0
  178. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a02f063e5aaa162f.js +1 -0
  179. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  180. package/.next/static/chunks/webpack-1bf2fae924e39757.js +1 -0
  181. package/.next/static/css/30baeec9f6889470.css +1 -0
  182. package/.next/static/css/30f58f83a0192172.css +1 -0
  183. package/.next/static/media/0f1bdadaf30e2d5f-s.woff2 +0 -0
  184. package/.next/static/media/22a5144ee8d83bca-s.p.woff2 +0 -0
  185. package/.next/static/media/2c34d62a75506231-s.woff2 +0 -0
  186. package/.next/static/media/601f5c280d60caca-s.woff2 +0 -0
  187. package/.next/static/media/9766a7e9e2e0ad5a-s.woff2 +0 -0
  188. package/.next/static/media/a115172161b307bb-s.woff2 +0 -0
  189. package/.next/static/media/aa016aab0e6d1295-s.woff2 +0 -0
  190. package/.next/static/media/b66cf8e69499582a-s.woff2 +0 -0
  191. package/.next/static/media/d100b2a099e34044-s.woff2 +0 -0
  192. package/.next/static/media/f5271587012faf78-s.p.woff2 +0 -0
  193. package/.next/static/media/f639721981034f88-s.woff2 +0 -0
  194. package/.next/trace +3 -0
  195. package/.next/trace-build +1 -0
  196. package/.next/types/app/api/board/sync/route.ts +351 -0
  197. package/.next/types/app/api/config/route.ts +351 -0
  198. package/.next/types/app/api/documents/route.ts +351 -0
  199. package/.next/types/app/api/documents/sync/route.ts +351 -0
  200. package/.next/types/app/api/init/route.ts +351 -0
  201. package/.next/types/app/api/peers/route.ts +351 -0
  202. package/.next/types/app/api/transfer/download/route.ts +351 -0
  203. package/.next/types/app/api/transfer/prepare/route.ts +351 -0
  204. package/.next/types/app/api/transfer/request/route.ts +351 -0
  205. package/.next/types/app/api/transfer/shared/download/route.ts +351 -0
  206. package/.next/types/app/api/transfer/shared/route.ts +351 -0
  207. package/.next/types/app/api/transfer/start/route.ts +351 -0
  208. package/.next/types/app/api/transfer/tasks/route.ts +351 -0
  209. package/.next/types/app/layout.ts +87 -0
  210. package/.next/types/app/page.ts +87 -0
  211. package/.next/types/cache-life.d.ts +145 -0
  212. package/.next/types/package.json +1 -0
  213. package/.next/types/routes.d.ts +85 -0
  214. package/.next/types/validator.ts +187 -0
  215. package/README.md +85 -0
  216. package/bin/cli.js +51 -0
  217. package/package.json +52 -0
  218. package/public/file.svg +1 -0
  219. package/public/globe.svg +1 -0
  220. package/public/next.svg +1 -0
  221. package/public/vercel.svg +1 -0
  222. package/public/window.svg +1 -0
  223. package/src/services/configService.ts +144 -0
  224. package/src/services/documentService.ts +210 -0
  225. package/src/services/fileService.ts +595 -0
  226. package/src/services/mdnsService.ts +284 -0
  227. package/src/services/socketService.ts +214 -0
  228. package/tsconfig.json +34 -0
@@ -0,0 +1,15 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{3371:(e,r,t)=>{Promise.resolve().then(t.bind(t,9875))},9875:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>eH});var a=t(9264),s=t(7196);class o{static{this.instance=null}constructor(){this.ws=null,this.listeners=new Map,this.reconnectTimer=null,this.isConnecting=!1,this.connect()}static getInstance(){return o.instance||(o.instance=new o),o.instance}async connect(){if(this.ws||this.isConnecting)return;this.isConnecting=!0;let e=window.location.hostname,r="https:"===window.location.protocol?"wss":"ws",t="",a="局域网伙伴",s="avatar-1",o="Windows";{(t=localStorage.getItem("share_home_client_id")||"")||(t=`peer_web_${Math.random().toString(36).substring(2,11)}`,localStorage.setItem("share_home_client_id",t)),a=localStorage.getItem("share_home_nickname")||"局域网伙伴",s=localStorage.getItem("share_home_avatar")||"avatar-1";let e=window.navigator.userAgent;-1!==e.indexOf("Windows NT")?o="Windows":-1!==e.indexOf("Macintosh")?o="macOS":-1!==e.indexOf("Android")?o="Android":-1!==e.indexOf("iPhone")||-1!==e.indexOf("iPad")?o="iOS":-1!==e.indexOf("Linux")&&(o="Linux")}try{await fetch(`/api/init?clientId=${encodeURIComponent(t)}&nickname=${encodeURIComponent(a)}&avatar=${encodeURIComponent(s)}&os=${o}`,{cache:"no-store"})}catch(e){console.warn("[SocketClient] 初始化宿主服务失败,仍将尝试连接 WebSocket:",e)}console.log(`[SocketClient] 正在建立全局共享通信长连接: ${r}://${e}:3001?clientId=${t}`);let n=new WebSocket(`${r}://${e}:3001?clientId=${t}&nickname=${encodeURIComponent(a)}&avatar=${encodeURIComponent(s)}&os=${o}`);this.ws=n,n.onopen=()=>{console.log("[SocketClient] 全局共享长连接成功建立。"),this.isConnecting=!1,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.trigger("system:connected",null)},n.onmessage=e=>{try{let{event:r,data:t}=JSON.parse(e.data);r&&this.trigger(r,t)}catch(e){}},n.onclose=()=>{console.warn("[SocketClient] 全局共享长连接已断开,3秒后尝试自愈重连..."),this.ws=null,this.isConnecting=!1,this.trigger("system:disconnected",null),this.reconnectTimer||(this.reconnectTimer=setTimeout(()=>void this.connect(),3e3))},n.onerror=e=>{console.error("[SocketClient] 全局共享长连接出现异常:",e),n.close()}}subscribe(e,r){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(r),()=>{let t=this.listeners.get(e);t&&(t.delete(r),0===t.size&&this.listeners.delete(e))}}trigger(e,r){let t=this.listeners.get(e);t&&t.forEach(t=>{try{t(r)}catch(r){console.error(`[SocketClient] 执行事件 ${e} 的回调时发生异常:`,r)}})}isConnected(){return null!==this.ws&&this.ws.readyState===WebSocket.OPEN}emit(e,r){return!!this.ws&&this.ws.readyState===WebSocket.OPEN&&(this.ws.send(JSON.stringify({event:e,data:r})),!0)}}let n=()=>{let e=window.navigator.userAgent;return -1!==e.indexOf("Windows NT")?"Windows":-1!==e.indexOf("Macintosh")?"macOS":-1!==e.indexOf("Android")?"Android":-1!==e.indexOf("iPhone")||-1!==e.indexOf("iPad")?"iOS":-1!==e.indexOf("Linux")?"Linux":"unknown"};function i(){return"u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}var l=t(3008),d=t.n(l);let c=({children:e,hoverable:r=!1,className:t="",style:s={},...o})=>{let n={background:"var(--bg-card)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",padding:"24px",backdropFilter:"blur(16px)",WebkitBackdropFilter:"blur(16px)",boxShadow:"var(--shadow-sm)",transition:"all 0.4s cubic-bezier(0.16, 1, 0.3, 1)",...s};return(0,a.jsx)("div",{style:n,onMouseEnter:e=>{r&&(e.currentTarget.style.borderColor="var(--border-color-hover)",e.currentTarget.style.background="var(--bg-card-hover)",e.currentTarget.style.transform="translateY(-2px)",e.currentTarget.style.boxShadow="var(--shadow-md)")},onMouseLeave:e=>{r&&(e.currentTarget.style.borderColor="var(--border-color)",e.currentTarget.style.background="var(--bg-card)",e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="var(--shadow-sm)")},className:t,...o,children:e})};var p=t(343),x=t(4409),g=t(9930),b=t(1162),m=t(1380),u=t(3383),f=t(3586);let h=({peers:e,self:r,onSendFile:t})=>{let[o,n]=(0,s.useState)(null),[i,l]=(0,s.useState)(null),h=(0,s.useRef)(null),[y,v]=(0,s.useState)(null),j=(e,r=18)=>{switch(e){case"avatar-1":default:return(0,a.jsx)(p.A,{size:r});case"avatar-2":return(0,a.jsx)(x.A,{size:r});case"avatar-3":return(0,a.jsx)(g.A,{size:r})}},w=e=>{let r=(e=>{if(!e)return"Unknown";let r=e.toLowerCase();return r.includes("win")?"Windows":r.includes("mac")||r.includes("ios")||r.includes("apple")||r.includes("os x")||r.includes("darwin")?"macOS":r.includes("android")?"Android":r.includes("linux")?"Linux":e})(e),t="rgba(128, 128, 128, 0.08)",s="var(--text-secondary)",o="1px solid var(--border-color)";return"Windows"===r?(t="rgba(14, 165, 233, 0.08)",s="#0ea5e9",o="1px solid rgba(14, 165, 233, 0.2)"):"macOS"===r?(t="rgba(236, 72, 153, 0.08)",s="#ec4899",o="1px solid rgba(236, 72, 153, 0.2)"):"Android"===r?(t="rgba(34, 197, 94, 0.08)",s="#22c55e",o="1px solid rgba(34, 197, 94, 0.2)"):"Linux"===r&&(t="rgba(249, 115, 22, 0.08)",s="#f97316",o="1px solid rgba(249, 115, 22, 0.2)"),(0,a.jsx)("span",{style:{fontSize:"0.62rem",padding:"2px 6px",borderRadius:"4px",background:t,color:s,border:o,fontWeight:600,letterSpacing:"0.02em",display:"inline-flex",alignItems:"center",gap:"3px",lineHeight:1},children:r})},k=(e,r)=>{e.preventDefault(),e.stopPropagation(),n(r)},S=e=>{e.preventDefault(),n(null)},N=(e,r)=>{if(e.preventDefault(),e.stopPropagation(),n(null),e.dataTransfer.files&&e.dataTransfer.files.length>0){let a=e.dataTransfer.files[0];console.log(`[Radar Drop] 精准捕获拖拽文件: ${a.name} -> ${r.nickname}`),t(r,a)}},z=e=>{v(e),h.current&&h.current.click()},I=e=>{let r=0;for(let t=0;t<e.length;t++)r=e.charCodeAt(t)+((r<<5)-r);return Math.abs(r)%4+1};return(0,a.jsxs)(c,{style:{display:"flex",flexDirection:"column",gap:"24px",minHeight:"660px",padding:"28px",overflow:"hidden",background:"var(--bg-card)",border:"1px solid var(--border-color)",boxShadow:"var(--shadow-lg)"},children:[(0,a.jsx)("input",{type:"file",ref:h,style:{display:"none"},onChange:e=>{if(e.target.files&&e.target.files.length>0&&y){let r=e.target.files[0];console.log(`[Radar Click] 选中本地文件投递: ${r.name} -> ${y.nickname}`),t(y,r),e.target.value=""}},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:"1px solid var(--border-color)",paddingBottom:"18px"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"14px"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsxs)("h2",{style:{fontSize:"1.25rem",fontWeight:700,letterSpacing:"-0.025em",color:"var(--text-primary)",display:"flex",alignItems:"center",gap:"8px"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)(b.A,{size:18,style:{color:"var(--accent-color)"}}),"超视距雷达协作台"]}),(0,a.jsxs)("span",{style:{fontSize:"0.68rem",background:"var(--radar-center-bg)",color:"var(--accent-color)",padding:"4px 12px",borderRadius:"20px",border:"1px solid var(--radar-corner-border)",display:"inline-flex",alignItems:"center",gap:"6px",fontWeight:600,letterSpacing:"0.02em"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("span",{style:{width:"6px",height:"6px",borderRadius:"50%",background:"var(--accent-color)",boxShadow:"0 0 10px var(--accent-color)",animation:"sonar-pulse-accent 2s infinite"},className:"jsx-5c0281c3624d3d4a"}),"MCAST MULTICAST DISCOVERY ACTIVE"]})]}),(0,a.jsx)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},className:"jsx-5c0281c3624d3d4a",children:(0,a.jsxs)("span",{style:{fontSize:"0.82rem",color:"var(--text-secondary)",fontWeight:500,fontFamily:"var(--font-mono), monospace"},className:"jsx-5c0281c3624d3d4a",children:["NODES ACTIVE: ",(0,a.jsx)("strong",{style:{color:"var(--accent-color)",fontSize:"0.95rem",fontWeight:700},className:"jsx-5c0281c3624d3d4a",children:e.length+ +!!r})]})})]}),(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",width:"100%",gap:"20px"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"row",flexWrap:"wrap",gap:"24px",width:"100%",alignItems:"stretch"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsxs)("div",{style:{flex:"1 1 500px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",background:"var(--radar-bg-outer)",borderRadius:"16px",border:"1px solid var(--border-color)",padding:"40px 24px",position:"relative",boxShadow:"var(--radar-inner-shadow, inset 0 4px 40px rgba(0,0,0,0.15))",minHeight:"520px",overflow:"hidden"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("div",{style:{position:"absolute",top:"16px",left:"16px",width:"16px",height:"16px",borderTop:"2px solid var(--radar-corner-border)",borderLeft:"2px solid var(--radar-corner-border)"},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("div",{style:{position:"absolute",top:"16px",right:"16px",width:"16px",height:"16px",borderTop:"2px solid var(--radar-corner-border)",borderRight:"2px solid var(--radar-corner-border)"},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("div",{style:{position:"absolute",bottom:"16px",left:"16px",width:"16px",height:"16px",borderBottom:"2px solid var(--radar-corner-border)",borderLeft:"2px solid var(--radar-corner-border)"},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("div",{style:{position:"absolute",bottom:"16px",right:"16px",width:"16px",height:"16px",borderBottom:"2px solid var(--radar-corner-border)",borderRight:"2px solid var(--radar-corner-border)"},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("div",{style:{position:"absolute",top:"16px",left:"38px",fontSize:"0.62rem",fontFamily:"var(--font-mono), monospace",color:"var(--radar-accent-text)",letterSpacing:"0.1em"},className:"jsx-5c0281c3624d3d4a",children:"SYS_STATUS: NOMINAL"}),(0,a.jsx)("div",{style:{position:"absolute",top:"16px",right:"38px",fontSize:"0.62rem",fontFamily:"var(--font-mono), monospace",color:"var(--radar-accent-text)",letterSpacing:"0.1em"},className:"jsx-5c0281c3624d3d4a",children:"GRID_REF: 48-T9_L"}),(0,a.jsx)("div",{style:{position:"absolute",bottom:"16px",left:"38px",fontSize:"0.62rem",fontFamily:"var(--font-mono), monospace",color:"var(--radar-accent-text)",letterSpacing:"0.1em"},className:"jsx-5c0281c3624d3d4a",children:"BANDWIDTH: UNLIMITED"}),(0,a.jsx)("div",{style:{position:"absolute",bottom:"16px",right:"38px",fontSize:"0.62rem",fontFamily:"var(--font-mono), monospace",color:"var(--radar-accent-text)",letterSpacing:"0.1em"},className:"jsx-5c0281c3624d3d4a",children:"DISC: mDNS_NODE"}),(0,a.jsxs)("div",{style:{width:"430px",height:"430px",borderRadius:"50%",position:"relative",background:"var(--radar-bg-inner)",border:"2px solid var(--radar-border)",boxShadow:"0 0 60px var(--radar-peer-shadow), inset 0 0 30px var(--radar-peer-shadow)",display:"flex",alignItems:"center",justifyContent:"center"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("div",{style:{position:"absolute",width:"100%",height:"100%",borderRadius:"50%",background:"var(--radar-sweep)",animation:"radar-sweep-animation 6s linear infinite",pointerEvents:"none",zIndex:1},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsxs)("svg",{style:{position:"absolute",width:"100%",height:"100%",zIndex:1,pointerEvents:"none"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("circle",{cx:"50%",cy:"50%",r:"20%",fill:"none",stroke:"var(--radar-grid-subtle)",strokeWidth:"1",strokeDasharray:"3, 3",className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("circle",{cx:"50%",cy:"50%",r:"40%",fill:"none",stroke:"var(--radar-grid)",strokeWidth:"1",className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("circle",{cx:"50%",cy:"50%",r:"60%",fill:"none",stroke:"var(--radar-grid-subtle)",strokeWidth:"1",strokeDasharray:"4, 4",className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("circle",{cx:"50%",cy:"50%",r:"80%",fill:"none",stroke:"var(--radar-grid)",strokeWidth:"1",className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("line",{x1:"0",y1:"50%",x2:"100%",y2:"50%",stroke:"var(--radar-grid)",strokeWidth:"1",className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("line",{x1:"50%",y1:"0",x2:"50%",y2:"100%",stroke:"var(--radar-grid)",strokeWidth:"1",className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("line",{x1:"15%",y1:"15%",x2:"85%",y2:"85%",stroke:"var(--radar-grid-subtle)",strokeWidth:"0.8",strokeDasharray:"4, 4",className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("line",{x1:"15%",y1:"85%",x2:"85%",y2:"15%",stroke:"var(--radar-grid-subtle)",strokeWidth:"0.8",strokeDasharray:"4, 4",className:"jsx-5c0281c3624d3d4a"})]}),(0,a.jsx)("div",{style:{position:"absolute",left:"50%",top:"50%",width:"100%",height:"100%",borderRadius:"50%",border:"1.5px solid var(--radar-grid-subtle)",pointerEvents:"none",transform:"translate(-50%, -50%)",animation:"radar-pulse-out 4s cubic-bezier(0.1, 0.8, 0.3, 1) infinite",zIndex:1},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("div",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:"44px",height:"44px",borderRadius:"50%",background:"var(--radar-center-bg)",border:"2px solid var(--accent-color)",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 0 20px var(--radar-center-glow)",zIndex:5,cursor:"default"},onMouseEnter:()=>l("self"),onMouseLeave:()=>l(null),className:"jsx-5c0281c3624d3d4a",children:(0,a.jsx)("div",{style:{width:"10px",height:"10px",borderRadius:"50%",background:"var(--accent-color)",boxShadow:"0 0 10px var(--accent-color)",animation:"sonar-pulse-accent 2s infinite"},className:"jsx-5c0281c3624d3d4a"})}),"self"===i&&r&&(0,a.jsxs)("div",{style:{position:"absolute",left:"50%",top:"40%",transform:"translateX(-50%) translateY(-100%)",background:"var(--radar-hud-bg)",border:"1px solid var(--radar-hud-border)",boxShadow:"var(--radar-hud-shadow)",borderRadius:"10px",padding:"12px 16px",zIndex:20,width:"200px",display:"flex",flexDirection:"column",gap:"5px",animation:"fade-in-quick 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards",pointerEvents:"none"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"0.58rem",fontFamily:"var(--font-mono), monospace",color:"var(--accent-color)",fontWeight:700,letterSpacing:"0.08em",width:"100%",borderBottom:"1px solid var(--radar-hud-divider)",paddingBottom:"5px",marginBottom:"3px"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)(m.A,{size:10}),"LOCAL CONSOLE"]}),(0,a.jsx)("span",{style:{fontSize:"0.9rem",fontWeight:800,color:"var(--radar-hud-text-primary)"},className:"jsx-5c0281c3624d3d4a",children:r.nickname}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--radar-hud-text-secondary)",fontFamily:"var(--font-mono), monospace"},className:"jsx-5c0281c3624d3d4a",children:["IP: ",r.ip,":",r.port]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"4px",alignItems:"center",marginTop:"2px"},className:"jsx-5c0281c3624d3d4a",children:[w(r.os),(0,a.jsx)("span",{style:{fontSize:"0.62rem",background:"rgba(16,185,129,0.08)",color:"var(--success-color)",border:"1px solid rgba(16,185,129,0.2)",padding:"2px 6px",borderRadius:"4px",fontWeight:600},className:"jsx-5c0281c3624d3d4a",children:"本机信道监听中"})]})]}),0===e.length?(0,a.jsx)("div",{style:{position:"absolute",width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none"},className:"jsx-5c0281c3624d3d4a",children:(0,a.jsx)("span",{style:{color:"var(--radar-accent-text)",fontSize:"0.78rem",letterSpacing:"0.2em",fontFamily:"var(--font-mono), monospace",fontWeight:600,animation:"radar-blink 2.2s ease-in-out infinite",marginTop:"130px"},className:"jsx-5c0281c3624d3d4a",children:"SCANNING FOR ACTIVE TERMINALS..."})}):e.map(e=>{let{left:r,top:t}=(e=>{let r=0,t=e.id+e.ip;for(let e=0;e<t.length;e++)r=t.charCodeAt(e)+((r<<5)-r);let a=Math.abs(r%360),s=16+Math.abs(r>>8)%24,o=a*Math.PI/180,n=50+s*Math.cos(o),i=50+s*Math.sin(o);return{left:`${n}%`,top:`${i}%`,angle:a,radius:s}})(e),s=o===e.id,n=i===e.id,d=I(e.id);return(0,a.jsxs)("div",{onDragOver:r=>k(r,e.id),onDragLeave:S,onDrop:r=>N(r,e),onClick:()=>z(e),onMouseEnter:()=>l(e.id),onMouseLeave:()=>l(null),style:{position:"absolute",left:r,top:t,transform:"translate(-50%, -50%)",zIndex:n||s?10:3,cursor:"pointer",transition:"transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("div",{style:{position:"absolute",left:"50%",top:"50%",width:"64px",height:"64px",borderRadius:"50%",border:`1.5px ${s?"dashed":"solid"} ${s||n?"var(--accent-color)":"var(--radar-corner-border)"}`,transform:"translate(-50%, -50%)",transition:"all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1)",boxShadow:s||n?"0 0 15px var(--accent-glow)":"none",animation:s||n?"spin-clockwise 10s linear infinite":"none"},className:"jsx-5c0281c3624d3d4a",children:(s||n)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{position:"absolute",top:"-4px",left:"50%",transform:"translateX(-50%)",width:"2px",height:"6px",background:"var(--accent-color)"},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("div",{style:{position:"absolute",bottom:"-4px",left:"50%",transform:"translateX(-50%)",width:"2px",height:"6px",background:"var(--accent-color)"},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("div",{style:{position:"absolute",left:"-4px",top:"50%",transform:"translateY(-50%)",width:"6px",height:"2px",background:"var(--accent-color)"},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("div",{style:{position:"absolute",right:"-4px",top:"50%",transform:"translateY(-50%)",width:"6px",height:"2px",background:"var(--accent-color)"},className:"jsx-5c0281c3624d3d4a"})]})}),(0,a.jsx)("div",{style:{position:"relative",width:"48px",height:"48px",borderRadius:"50%",background:"var(--radar-center-bg)",border:`2px solid ${s?"var(--accent-color)":"var(--border-color)"}`,color:n||s?"var(--accent-color)":"var(--text-primary)",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:n||s?"0 4px 14px var(--accent-glow)":"var(--shadow-sm)",transition:"all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1)",transform:n||s?"scale(1.1)":"scale(1)"},className:"jsx-5c0281c3624d3d4a",children:j(e.avatar,20)}),(0,a.jsx)("div",{style:{position:"absolute",top:"56px",left:"50%",transform:"translateX(-50%)",fontSize:"0.68rem",fontWeight:700,background:n||s?"var(--accent-color)":"var(--bg-card)",color:n||s?"#ffffff":"var(--text-secondary)",border:`1px solid ${n||s?"var(--accent-color)":"var(--border-color)"}`,padding:"2px 8px",borderRadius:"12px",whiteSpace:"nowrap",boxShadow:"var(--shadow-sm)",transition:"all 0.2s"},className:"jsx-5c0281c3624d3d4a",children:e.nickname}),n&&(0,a.jsxs)("div",{style:{position:"absolute",left:"50%",top:"-16px",transform:"translateX(-50%) translateY(-100%)",background:"var(--radar-hud-bg)",border:"1px solid var(--radar-hud-border)",boxShadow:"var(--radar-hud-shadow)",borderRadius:"10px",padding:"12px 16px",zIndex:20,width:"200px",display:"flex",flexDirection:"column",gap:"5px",animation:"fade-in-quick 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards",pointerEvents:"none"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"0.58rem",fontFamily:"var(--font-mono), monospace",color:"var(--accent-color)",fontWeight:700,letterSpacing:"0.08em",width:"100%",borderBottom:"1px solid var(--radar-hud-divider)",paddingBottom:"5px",marginBottom:"3px"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)(m.A,{size:10}),"DISCOVERED PEER NODE"]}),(0,a.jsx)("span",{style:{fontSize:"0.95rem",fontWeight:800,color:"var(--radar-hud-text-primary)",letterSpacing:"-0.01em"},className:"jsx-5c0281c3624d3d4a",children:e.nickname}),(0,a.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--radar-hud-text-secondary)",fontFamily:"var(--font-mono), monospace",fontWeight:500},className:"jsx-5c0281c3624d3d4a",children:e.ip}),(0,a.jsxs)("div",{style:{display:"flex",gap:"4px",alignItems:"center",margin:"2px 0"},className:"jsx-5c0281c3624d3d4a",children:[w(e.os),(0,a.jsxs)("span",{style:{fontSize:"0.62rem",background:"rgba(202,138,4,0.06)",color:"var(--accent-color)",border:"1px solid rgba(202,138,4,0.15)",padding:"2px 6px",borderRadius:"4px",fontWeight:600,fontFamily:"var(--font-mono), monospace"},className:"jsx-5c0281c3624d3d4a",children:["RTT: ~",d,"ms"]})]}),(0,a.jsxs)("div",{style:{fontSize:"0.65rem",color:"var(--radar-hud-text-muted)",borderTop:"1px solid var(--radar-hud-divider)",paddingTop:"6px",width:"100%",textAlign:"center",marginTop:"3px",display:"flex",alignItems:"center",justifyContent:"center",gap:"4px"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)(u.A,{size:11,style:{color:"var(--success-color)"}}),s?"松开即投递文件":"点击选择文件 / 拖放互传"]})]})]},e.id)})]})]}),(0,a.jsxs)("div",{style:{flex:"1 1 360px",background:"var(--bg-app)",borderRadius:"16px",border:"1px solid var(--border-color)",padding:"24px",display:"flex",flexDirection:"column",gap:"16px",boxShadow:"var(--shadow-sm)"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsxs)("h3",{style:{fontSize:"1rem",fontWeight:700,color:"var(--text-primary)",display:"flex",alignItems:"center",gap:"8px",borderBottom:"1px solid var(--border-color)",paddingBottom:"12px",margin:0},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)(f.A,{size:16,style:{color:"var(--accent-color)",animation:"radar-blink 2s infinite"}}),"协作终端控制中心"]}),(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"12px",overflowY:"auto",maxHeight:"430px",paddingRight:"4px"},className:"jsx-5c0281c3624d3d4a",children:[r&&(0,a.jsxs)("div",{style:{padding:"14px 16px",borderRadius:"12px",background:"var(--bg-card)",border:"1px solid var(--accent-color)",boxShadow:"var(--radar-center-glow)",display:"flex",alignItems:"center",gap:"12px",position:"relative",overflow:"hidden"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("div",{style:{width:"38px",height:"38px",borderRadius:"50%",background:"var(--accent-glow)",color:"var(--accent-color)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},className:"jsx-5c0281c3624d3d4a",children:j(r.avatar,20)}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"2px",flex:1,minWidth:0},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("span",{style:{fontSize:"0.88rem",fontWeight:700,color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},className:"jsx-5c0281c3624d3d4a",children:r.nickname}),(0,a.jsx)("span",{style:{fontSize:"0.6rem",padding:"1px 5px",borderRadius:"4px",background:"var(--accent-glow)",color:"var(--accent-color)",fontWeight:600},className:"jsx-5c0281c3624d3d4a",children:"本机"})]}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)",fontFamily:"var(--font-mono), monospace"},className:"jsx-5c0281c3624d3d4a",children:["IP: ",r.ip,":",r.port]})]}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"4px",flexShrink:0},className:"jsx-5c0281c3624d3d4a",children:[w(r.os),(0,a.jsxs)("span",{style:{fontSize:"0.62rem",color:"var(--success-color)",display:"flex",alignItems:"center",gap:"4px",fontWeight:600},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("span",{style:{width:"4px",height:"4px",borderRadius:"50%",background:"var(--success-color)"},className:"jsx-5c0281c3624d3d4a"}),"正在监听"]})]})]}),0===e.length?(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"160px",border:"1px dashed var(--border-color)",borderRadius:"12px",background:"rgba(128,128,128,0.01)",gap:"8px",color:"var(--text-muted)"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)(f.A,{size:24,style:{opacity:.4}}),(0,a.jsx)("span",{style:{fontSize:"0.78rem"},className:"jsx-5c0281c3624d3d4a",children:"正在搜寻局域网活跃终端..."})]}):e.map(e=>{let r=o===e.id,t=I(e.id);return(0,a.jsxs)("div",{onClick:()=>z(e),onDragOver:r=>k(r,e.id),onDragLeave:S,onDrop:r=>N(r,e),style:{padding:"14px 16px",borderRadius:"12px",background:r?"var(--accent-glow)":"var(--bg-card)",border:r?"2px dashed var(--accent-color)":"1px solid var(--border-color)",cursor:"pointer",display:"flex",alignItems:"center",gap:"12px",transition:"all 0.2s",position:"relative"},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent-color)",e.currentTarget.style.boxShadow="var(--shadow-md)"},onMouseLeave:e=>{e.currentTarget.style.borderColor=r?"var(--accent-color)":"var(--border-color)",e.currentTarget.style.boxShadow="none"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("div",{style:{width:"38px",height:"38px",borderRadius:"50%",background:"rgba(128,128,128,0.04)",color:"var(--text-secondary)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},className:"jsx-5c0281c3624d3d4a",children:j(e.avatar,20)}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"2px",flex:1,minWidth:0},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("span",{style:{fontSize:"0.88rem",fontWeight:700,color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},className:"jsx-5c0281c3624d3d4a",children:e.nickname}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)",fontFamily:"var(--font-mono), monospace"},className:"jsx-5c0281c3624d3d4a",children:["IP: ",e.ip]})]}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"4px",flexShrink:0},className:"jsx-5c0281c3624d3d4a",children:[w(e.os),(0,a.jsxs)("span",{style:{fontSize:"0.62rem",background:"rgba(202,138,4,0.06)",color:"var(--accent-color)",border:"1px solid rgba(202,138,4,0.15)",padding:"1px 5px",borderRadius:"4px",fontWeight:600,fontFamily:"var(--font-mono), monospace"},className:"jsx-5c0281c3624d3d4a",children:["~",t,"ms"]})]})]},e.id)})]})]})]}),(0,a.jsxs)("div",{style:{marginTop:"10px",fontSize:"0.78rem",color:"var(--text-secondary)",display:"flex",alignItems:"center",gap:"8px",background:"rgba(128,128,128,0.03)",border:"1px solid var(--border-color)",padding:"8px 18px",borderRadius:"30px",width:"100%",justifyContent:"center"},className:"jsx-5c0281c3624d3d4a",children:[(0,a.jsx)("span",{style:{width:"6px",height:"6px",borderRadius:"50%",background:"var(--accent-color)",animation:"sonar-pulse-accent 2s infinite"},className:"jsx-5c0281c3624d3d4a"}),(0,a.jsx)("span",{className:"jsx-5c0281c3624d3d4a",children:"终端操作指南:鼠标悬浮获取设备科技详情,点击设备节点或拖放文件至节点上即可触发高速安全传输"})]})]}),(0,a.jsx)(d(),{id:"5c0281c3624d3d4a",children:"@keyframes sonar-pulse-accent{0%{box-shadow:0 0 0 0 var(--radar-pulse-glow,rgba(202,138,4,.45))}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}@keyframes radar-sweep-animation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes radar-pulse-out{0%{transform:translate(-50%,-50%)scale(1);opacity:.8}100%{transform:translate(-50%,-50%)scale(3.2);opacity:0}}@keyframes radar-blink{0%,100%{opacity:.35}50%{opacity:.85}}@keyframes spin-clockwise{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin-counter-clockwise{0%{transform:rotate(360deg)}100%{transform:rotate(0deg)}}@keyframes fade-in-quick{0%{opacity:0;transform:translatex(-50%)translatey(4px)}100%{opacity:1;transform:translatex(-50%)translatey(0)}}"})]})},y=({children:e,variant:r="primary",style:t={},disabled:s,...o})=>{let n={padding:"10px 18px",fontSize:"0.875rem",fontWeight:500,borderRadius:"var(--radius-sm)",cursor:s?"not-allowed":"pointer",opacity:s?.4:1,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"8px",transition:"all 0.25s cubic-bezier(0.16, 1, 0.3, 1)",fontFamily:"var(--font-sans)",outline:"none",userSelect:"none",...(()=>{switch(r){case"primary":return{background:"var(--btn-primary-bg, #ffffff)",color:"var(--btn-primary-text, #000000)",border:"1px solid var(--btn-primary-bg, #ffffff)"};case"secondary":return{background:"var(--btn-secondary-bg)",color:"var(--text-primary)",border:"1px solid var(--border-color)"};case"danger":return{background:"rgba(239, 68, 68, 0.15)",color:"#f87171",border:"1px solid rgba(239, 68, 68, 0.3)"}}})(),...t};return(0,a.jsx)("button",{style:n,disabled:s,onMouseEnter:e=>{s||(e.currentTarget.style.transform="translateY(-1px)","primary"===r?(e.currentTarget.style.boxShadow="var(--shadow-md)",e.currentTarget.style.opacity="0.9"):"secondary"===r?(e.currentTarget.style.background="var(--btn-secondary-hover-bg)",e.currentTarget.style.borderColor="var(--border-color-hover)"):"danger"===r&&(e.currentTarget.style.background="rgba(239, 68, 68, 0.25)"))},onMouseLeave:e=>{s||(e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="none","primary"===r?(e.currentTarget.style.background="var(--btn-primary-bg, #ffffff)",e.currentTarget.style.opacity="1"):"secondary"===r?(e.currentTarget.style.background="var(--btn-secondary-bg)",e.currentTarget.style.borderColor="var(--border-color)"):"danger"===r&&(e.currentTarget.style.background="rgba(239, 68, 68, 0.15)"))},onMouseDown:e=>{s||(e.currentTarget.style.transform="translateY(0) scale(0.96)")},onMouseUp:e=>{s||(e.currentTarget.style.transform="translateY(-1px) scale(1)")},...o,children:e})};function v(e,r=2){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,t)).toFixed(r<0?0:r))} ${["B","KB","MB","GB","TB","PB"][t]}`}var j=t(2340),w=t(8536),k=t(8134),S=t(5584),N=t(1227),z=t(9299),I=t(4670),C=t(9449);let T=({tasks:e,incomingRequest:r,onAccept:t,onReject:s,onCancel:o,isOpen:n,onClose:i})=>{let l=Object.values(e).filter(e=>"transferring"===e.status||"pending"===e.status||"paused"===e.status).sort((e,r)=>r.startedAt-e.startedAt);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0, 0, 0, 0.5)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",zIndex:9998,opacity:+!!n,pointerEvents:n?"auto":"none",transition:"opacity 0.3s ease"},onClick:i,className:"jsx-a75baabafbe5ace4"}),(0,a.jsxs)("div",{style:{position:"fixed",top:0,right:0,width:"420px",height:"100vh",background:"var(--bg-sidebar)",borderLeft:"1px solid var(--border-color)",boxShadow:"-8px 0 32px rgba(0, 0, 0, 0.45)",zIndex:9999,padding:"24px",display:"flex",flexDirection:"column",gap:"20px",transform:n?"translateX(0)":"translateX(100%)",transition:"transform 0.35s cubic-bezier(0.16, 1, 0.3, 1)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",borderBottom:"1px solid var(--border-color)",paddingBottom:"16px",justifyContent:"space-between"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)("h2",{style:{fontSize:"1.1rem",fontWeight:700,letterSpacing:"-0.02em",color:"var(--text-primary)"},className:"jsx-a75baabafbe5ace4",children:"文件传输中心"}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)"},className:"jsx-a75baabafbe5ace4",children:["已载入任务: ",l.length," 个"]})]}),(0,a.jsx)("button",{onClick:i,title:"关闭面板",style:{width:"28px",height:"28px",borderRadius:"50%",background:"rgba(128, 128, 128, 0.05)",border:"1px solid var(--border-color)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",color:"var(--text-secondary)",transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-primary)",e.currentTarget.style.background="rgba(128, 128, 128, 0.1)",e.currentTarget.style.borderColor="var(--border-color-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-secondary)",e.currentTarget.style.background="rgba(128, 128, 128, 0.05)",e.currentTarget.style.borderColor="var(--border-color)"},className:"jsx-a75baabafbe5ace4",children:(0,a.jsx)(z.A,{size:14})})]}),(0,a.jsxs)("div",{style:{background:"var(--accent-glow)",border:"1px solid rgba(37, 99, 235, 0.15)",borderRadius:"var(--radius-md)",padding:"12px 14px",display:"flex",gap:"10px",alignItems:"flex-start"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)(I.A,{size:16,style:{color:"var(--accent-color)",flexShrink:0,marginTop:"2px"}}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)("span",{style:{fontSize:"0.78rem",fontWeight:600,color:"var(--text-primary)"},className:"jsx-a75baabafbe5ace4",children:"什么是传输中心?"}),(0,a.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--text-secondary)",lineHeight:1.4},className:"jsx-a75baabafbe5ace4",children:"实时展示您在局域网中发送和接收的文件进度。您可以随时通过右上角“传输任务”按钮展开此抽屉,查看任务的速度与剩余时间。"})]})]}),(0,a.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"12px",overflowY:"auto",paddingRight:"4px"},className:"jsx-a75baabafbe5ace4",children:0===l.length?(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"60px 0",opacity:.5},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)(N.A,{size:28,style:{color:"var(--text-muted)"}}),(0,a.jsx)("p",{style:{fontSize:"0.8rem",marginTop:"12px",color:"var(--text-secondary)"},className:"jsx-a75baabafbe5ace4",children:"当前没有任何传输任务"})]}):l.map(e=>{let r="completed"===e.status,t="failed"===e.status,s="pending"===e.status;return(0,a.jsxs)("div",{style:{padding:"14px",background:"rgba(128, 128, 128, 0.02)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",display:"flex",flexDirection:"column",gap:"10px",transition:"border-color 0.2s"},onMouseEnter:e=>e.currentTarget.style.borderColor="var(--border-color-hover)",onMouseLeave:e=>e.currentTarget.style.borderColor="var(--border-color)",className:"jsx-a75baabafbe5ace4",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",maxWidth:"75%"},className:"jsx-a75baabafbe5ace4",children:[(e=>{switch(e.status){case"completed":return(0,a.jsx)(j.A,{size:16,style:{color:"var(--success-color)"}});case"failed":return(0,a.jsx)(w.A,{size:16,style:{color:"var(--error-color)"}});case"paused":return(0,a.jsx)(k.A,{size:16,style:{color:"var(--warning-color)"}});default:return"send"===e.type?(0,a.jsx)(S.A,{size:16,className:"animate-bounce",style:{color:"var(--accent-color)"}}):(0,a.jsx)(N.A,{size:16,className:"animate-bounce",style:{color:"var(--accent-color)"}})}})(e),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"2px",overflow:"hidden"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-primary)"},title:e.fileName,className:"jsx-a75baabafbe5ace4",children:e.fileName}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)"},className:"jsx-a75baabafbe5ace4",children:["大小: ",v(e.fileSize)," | ","send"===e.type?`发给 ${e.peerName}`:`来自 ${e.peerName}`]})]})]}),(0,a.jsxs)("div",{style:{textAlign:"right",display:"flex",flexDirection:"column",gap:"4px",alignItems:"flex-end"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)("span",{style:{fontSize:"0.8rem",fontWeight:600,color:r?"var(--success-color)":t?"var(--error-color)":"var(--text-primary)"},className:"jsx-a75baabafbe5ace4",children:r?"已完成":t?"失败":s?"待接收":function(e){if(0===e)return"0 B/s";let r=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,r)).toFixed(1))} ${["B/s","KB/s","MB/s","GB/s"][r]}`}(e.speed)}),!r&&!t&&!s&&(0,a.jsxs)("span",{style:{fontSize:"0.68rem",color:"var(--text-secondary)",display:"flex",alignItems:"center",gap:"4px",justifyContent:"flex-end"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)(C.A,{size:10}),"剩余: ",(e=>{if("transferring"!==e.status||0===e.speed)return"估算中...";var r=(e.fileSize-e.transferredBytes)/e.speed;if(!isFinite(r)||isNaN(r)||r<0)return"--:--";if(r===1/0)return"估算中...";let t=Math.floor(r/60),a=Math.floor(r%60),s=t.toString().padStart(2,"0"),o=a.toString().padStart(2,"0");return`${s}:${o}`})(e)]}),!r&&!t&&(0,a.jsxs)("button",{onClick:()=>o(e.id),title:"取消本次传输",style:{fontSize:"0.68rem",color:"var(--error-color)",background:"rgba(239, 68, 68, 0.04)",border:"1px solid rgba(239, 68, 68, 0.15)",padding:"2px 8px",borderRadius:"10px",cursor:"pointer",marginTop:"2px",transition:"all 0.2s",display:"flex",alignItems:"center",gap:"2px"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239, 68, 68, 0.12)",e.currentTarget.style.borderColor="rgba(239, 68, 68, 0.35)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239, 68, 68, 0.04)",e.currentTarget.style.borderColor="rgba(239, 68, 68, 0.15)"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)(z.A,{size:10}),(0,a.jsx)("span",{className:"jsx-a75baabafbe5ace4",children:"取消"})]})]})]}),(0,a.jsxs)("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:"4px"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)("div",{style:{width:"100%",height:"4px",background:"rgba(128, 128, 128, 0.08)",borderRadius:"2px",overflow:"hidden",position:"relative"},className:"jsx-a75baabafbe5ace4",children:(0,a.jsx)("div",{style:{width:`${e.progress}%`,height:"100%",background:r?"var(--success-color)":t?"var(--error-color)":"linear-gradient(90deg, var(--accent-color), #60a5fa)",borderRadius:"2px",transition:"width 0.3s cubic-bezier(0.4, 0, 0.2, 1)",boxShadow:r?"0 0 6px var(--success-color)":t?"none":"0 0 6px var(--accent-color)"},className:"jsx-a75baabafbe5ace4"})}),(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"0.7rem",color:"var(--text-secondary)"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsxs)("span",{className:"jsx-a75baabafbe5ace4",children:[e.progress,"%"]}),(0,a.jsxs)("span",{className:"jsx-a75baabafbe5ace4",children:[v(e.transferredBytes)," / ",v(e.fileSize)]})]})]})]},e.id)})})]}),r&&(0,a.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(12px)",WebkitBackdropFilter:"blur(12px)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:99999,animation:"fade-in 0.2s ease-out"},className:"jsx-a75baabafbe5ace4",children:(0,a.jsxs)(c,{style:{width:"90%",maxWidth:"440px",display:"flex",flexDirection:"column",gap:"24px",border:"1px solid rgba(255, 255, 255, 0.1)",boxShadow:"0 20px 50px rgba(0, 0, 0, 0.8)"},children:[(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"8px",textAlign:"center"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)("div",{style:{width:"48px",height:"48px",borderRadius:"50%",background:"rgba(59, 130, 246, 0.1)",display:"flex",alignItems:"center",justifyContent:"center",border:"1px solid rgba(59, 130, 246, 0.3)",margin:"0 auto 12px auto"},className:"jsx-a75baabafbe5ace4",children:(0,a.jsx)(N.A,{size:22,style:{color:"var(--accent-color)"}})}),(0,a.jsx)("h3",{style:{fontSize:"1.2rem",fontWeight:600},className:"jsx-a75baabafbe5ace4",children:"收到文件互传请求"}),(0,a.jsxs)("p",{style:{fontSize:"0.85rem",color:"var(--text-secondary)",marginTop:"4px"},className:"jsx-a75baabafbe5ace4",children:["局域网内的 ",(0,a.jsx)("strong",{style:{color:"var(--accent-color)"},className:"jsx-a75baabafbe5ace4",children:r.senderName})," 想要投递给您一个大文件:"]})]}),(0,a.jsxs)("div",{style:{background:"rgba(255, 255, 255, 0.02)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",padding:"16px",display:"flex",flexDirection:"column",gap:"6px",textAlign:"center"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)("span",{style:{fontSize:"0.95rem",fontWeight:600,wordBreak:"break-all",color:"var(--text-primary)"},className:"jsx-a75baabafbe5ace4",children:r.fileName}),(0,a.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},className:"jsx-a75baabafbe5ace4",children:["文件大小: ",v(r.fileSize)]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"12px"},className:"jsx-a75baabafbe5ace4",children:[(0,a.jsx)(y,{variant:"secondary",onClick:s,style:{flex:1},children:"拒绝"}),(0,a.jsx)(y,{variant:"primary",onClick:t,style:{flex:1},children:"接收并极速下载"})]})]})}),(0,a.jsx)(d(),{id:"a75baabafbe5ace4",children:"@keyframes fade-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}"})]})};var A=t(493),R=t(5750),W=t(3806),D=t(6164),M=t(2761),$=t(4495),E=t(2482),B=t(9524),F=t(8665),L=t(563),O=t(5045),P=t(5294),_=t(3295),U=t(6260),H=t(5107),Y=t(5211),q=t(4508),K=t(2991),J=t(3020),X=t(3148);let V=({file:e,onClose:r})=>{let[t,o]=(0,s.useState)(1),[n,i]=(0,s.useState)(0),[l,d]=(0,s.useState)(!0),[c,p]=(0,s.useState)(!1),[x,g]=(0,s.useState)(!1),[b,m]=(0,s.useState)({x:0,y:0}),[u,f]=(0,s.useState)({x:0,y:0}),h=(0,s.useRef)(null);(0,s.useEffect)(()=>(p(!0),()=>p(!1)),[]),(0,s.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[r]);let y=e.fileName.toLowerCase().split(".").pop()||"",j=["png","jpg","jpeg","gif","webp","svg"].includes(y),w=["mp4","webm","ogg"].includes(y),S=["mp3","wav","ogg"].includes(y),N=`/api/transfer/shared/download?id=${e.id}&preview=true`;return c?(0,A.createPortal)((0,a.jsx)("div",{className:"preview-overlay",onClick:r,onMouseMove:e=>{x&&!(t<=1)&&m({x:e.clientX-u.x,y:e.clientY-u.y})},onMouseUp:()=>{g(!1)},style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:9999,backdropFilter:"blur(24px) saturate(190%)",display:"flex",alignItems:"center",justifyContent:"center",padding:"24px",animation:"fade-in 0.25s cubic-bezier(0.16, 1, 0.3, 1)"},children:(0,a.jsxs)("div",{className:"preview-modal-card-cinema",onClick:e=>e.stopPropagation(),style:{position:"relative",width:"100%",maxWidth:"1000px",maxHeight:"85vh",borderRadius:"24px",display:"flex",flexDirection:"column",overflow:"hidden",animation:"preview-scale-up-elastic 0.35s cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,a.jsxs)("div",{className:"preview-header-bar-cinema",style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"18px 28px"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px",minWidth:0},children:[(0,a.jsxs)("div",{className:"preview-header-icon-shell",style:{width:"32px",height:"32px",borderRadius:"8px",display:"flex",alignItems:"center",justifyContent:"center"},children:[j&&(0,a.jsx)(R.A,{size:16,style:{color:"#6366f1"}}),w&&(0,a.jsx)(W.A,{size:16,style:{color:"#10b981"}}),S&&(0,a.jsx)(D.A,{size:16,style:{color:"#ec4899"}}),!j&&!w&&!S&&(0,a.jsx)(M.A,{size:16,style:{color:"#a1a1aa"}})]}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",minWidth:0},children:[(0,a.jsx)("span",{className:"preview-header-title-cinema",style:{fontWeight:600,fontSize:"0.95rem",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.fileName,children:e.fileName}),(0,a.jsx)("span",{style:{fontSize:"0.72rem",color:"var(--text-muted)"},children:v(e.fileSize)})]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[(0,a.jsx)("a",{href:N,target:"_blank",rel:"noreferrer",className:"preview-action-pill",style:{display:"inline-flex",alignItems:"center",gap:"6px",padding:"8px 16px",borderRadius:"12px",fontSize:"0.78rem",textDecoration:"none",fontWeight:600,transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},children:(0,a.jsx)("span",{children:"新窗口查看"})}),(0,a.jsx)("button",{onClick:r,className:"preview-close-btn-cinema",style:{width:"34px",height:"34px",borderRadius:"12px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",border:"none",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},children:(0,a.jsx)(z.A,{size:16})})]})]}),(0,a.jsxs)("div",{className:"preview-content-area-cinema",onWheel:j?e=>{e.preventDefault();let r=e.deltaY<0?.15:-.15;o(e=>Math.max(.4,Math.min(3,e+r)))}:void 0,style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",position:"relative",minHeight:"420px",padding:"24px"},children:[j&&(0,a.jsxs)("div",{style:{position:"relative",width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",cursor:t>1?x?"grabbing":"grab":"default"},children:[l&&(0,a.jsxs)("div",{className:"preview-loading-box",style:{position:"absolute",fontSize:"0.85rem",display:"flex",alignItems:"center",gap:"10px",zIndex:2,padding:"12px 20px",borderRadius:"12px"},children:[(0,a.jsx)($.A,{size:14,className:"animate-spin-fast"}),(0,a.jsx)("span",{children:"正在极速载入高清画幅..."})]}),(0,a.jsx)("img",{ref:h,src:N,alt:e.fileName,onLoad:()=>d(!1),onMouseDown:e=>{t<=1||(e.preventDefault(),g(!0),f({x:e.clientX-b.x,y:e.clientY-b.y}))},className:"preview-img-element-cinema",style:{maxWidth:"100%",maxHeight:"62vh",objectFit:"contain",borderRadius:"12px",transform:`translate(${b.x}px, ${b.y}px) scale(${t}) rotate(${n}deg)`,transition:x?"none":"transform 0.28s cubic-bezier(0.16, 1, 0.3, 1)",opacity:+!l}})]}),w&&(0,a.jsx)("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,a.jsx)("video",{src:N,controls:!0,autoPlay:!0,playsInline:!0,preload:"auto",style:{maxWidth:"100%",maxHeight:"62vh",borderRadius:"16px",boxShadow:"0 20px 40px rgba(0,0,0,0.6)",outline:"none",background:"#000000",margin:"auto"}})}),S&&(0,a.jsxs)("div",{className:"preview-audio-shell",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"28px",padding:"48px 40px",width:"100%",maxWidth:"440px",borderRadius:"28px"},children:[(0,a.jsxs)("div",{className:"audio-disc-neon-container",style:{width:"150px",height:"150px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[(0,a.jsx)("div",{className:"audio-disc-neon-pulse"}),(0,a.jsxs)("div",{className:"audio-disc-core",style:{width:"138px",height:"138px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"radial-gradient(circle, #09090b 25%, #18181b 60%, #27272a 100%)",boxShadow:"inset 0 0 10px rgba(255,255,255,0.05), 0 8px 24px rgba(0,0,0,0.4)",animation:"spin 16s linear infinite",position:"relative"},children:[(0,a.jsx)("div",{className:"disc-grooves"}),(0,a.jsx)("div",{style:{width:"40px",height:"40px",borderRadius:"50%",background:"linear-gradient(135deg, #6366f1, #a855f7)",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 0 12px rgba(99, 102, 241, 0.4)",zIndex:2},children:(0,a.jsx)(E.A,{size:16,style:{color:"#ffffff"}})})]})]}),(0,a.jsxs)("div",{style:{textAlign:"center",display:"flex",flexDirection:"column",gap:"6px"},children:[(0,a.jsx)("span",{className:"preview-audio-name-cinema",style:{fontWeight:700,fontSize:"1rem",letterSpacing:"-0.01em"},children:e.fileName}),(0,a.jsx)("span",{style:{color:"var(--text-muted)",fontSize:"0.78rem"},children:v(e.fileSize)})]}),(0,a.jsx)("audio",{src:N,controls:!0,autoPlay:!0,style:{width:"100%",borderRadius:"30px",outline:"none"}})]}),!j&&!w&&!S&&(0,a.jsxs)("div",{className:"preview-unsupported-box",style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"20px",textAlign:"center",padding:"48px 32px",maxWidth:"400px",borderRadius:"20px"},children:[(0,a.jsx)("div",{className:"unsupported-icon-glow",style:{width:"60px",height:"60px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(239, 68, 68, 0.08)",border:"1px solid rgba(239, 68, 68, 0.15)",boxShadow:"0 0 16px rgba(239, 68, 68, 0.06)"},children:(0,a.jsx)(k.A,{size:28,style:{color:"#ef4444"}})}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:[(0,a.jsx)("span",{style:{fontWeight:700,fontSize:"1rem",color:"var(--text-primary)"},children:"暂不支持该格式在线预览"}),(0,a.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--text-secondary)",lineHeight:1.5},children:"该文件可能属于二进制、压缩包或未识别文档。您可以极速安全下载到本地打开。"})]}),(0,a.jsx)("a",{href:`/api/transfer/shared/download?id=${e.id}`,download:e.fileName,style:{textDecoration:"none",width:"100%",marginTop:"8px"},children:(0,a.jsx)("button",{className:"preview-action-btn-primary",style:{width:"100%",border:"none",padding:"12px 24px",borderRadius:"12px",fontWeight:600,fontSize:"0.85rem",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},children:"立即极速下载"})})]})]}),j&&(0,a.jsxs)("div",{className:"preview-bottom-toolbar-cinema",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"16px",padding:"14px 28px"},children:[(0,a.jsxs)("button",{onClick:()=>o(e=>Math.min(e+.2,3)),className:"preview-toolbar-btn-cinema",style:{padding:"8px 14px",borderRadius:"10px",display:"inline-flex",alignItems:"center",gap:"8px",fontSize:"0.78rem",fontWeight:600,cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},title:"放大 (支持滚轮)",children:[(0,a.jsx)(B.A,{size:14}),(0,a.jsx)("span",{children:"放大"})]}),(0,a.jsxs)("button",{onClick:()=>o(e=>Math.max(e-.2,.4)),className:"preview-toolbar-btn-cinema",style:{padding:"8px 14px",borderRadius:"10px",display:"inline-flex",alignItems:"center",gap:"8px",fontSize:"0.78rem",fontWeight:600,cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},title:"缩小",children:[(0,a.jsx)(F.A,{size:14}),(0,a.jsx)("span",{children:"缩小"})]}),(0,a.jsxs)("button",{onClick:()=>i(e=>e+90),className:"preview-toolbar-btn-cinema",style:{padding:"8px 14px",borderRadius:"10px",display:"inline-flex",alignItems:"center",gap:"8px",fontSize:"0.78rem",fontWeight:600,cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},title:"顺时针旋转 90\xb0",children:[(0,a.jsx)(L.A,{size:14}),(0,a.jsx)("span",{children:"旋转"})]}),(0,a.jsxs)("button",{onClick:()=>{o(1),i(0),m({x:0,y:0})},className:"preview-toolbar-btn-cinema",style:{padding:"8px 14px",borderRadius:"10px",display:"inline-flex",alignItems:"center",gap:"8px",fontSize:"0.78rem",fontWeight:600,cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},title:"恢复初始视口",children:[(0,a.jsx)($.A,{size:14}),(0,a.jsx)("span",{children:"重置"})]})]})]})}),document.body):null},G=({uploadPublicFile:e})=>{let[r,t]=(0,s.useState)([]),[n,i]=(0,s.useState)(!1),[l,c]=(0,s.useState)(null),[b,m]=(0,s.useState)(0),[u,f]=(0,s.useState)("idle"),[h,y]=(0,s.useState)(""),[w,S]=(0,s.useState)(null),[z,C]=(0,s.useState)(""),[T,A]=(0,s.useState)("all"),[$,E]=(0,s.useState)("time-desc"),[B,F]=(0,s.useState)("grid"),[L,G]=(0,s.useState)(1),[Z,Q]=(0,s.useState)(12);(0,s.useEffect)(()=>{G(1)},[z,T,$,Z]);let[ee,er]=(0,s.useState)(""),[et,ea]=(0,s.useState)(""),es=(0,s.useRef)(0),eo=(0,s.useRef)(null),en=async()=>{try{let e=await fetch("/api/transfer/shared"),r=await e.json();r.success&&t(r.files)}catch(e){console.error("[SharedFiles] 拉取公共共享文件列表失败:",e)}};(0,s.useEffect)(()=>{en();let e=o.getInstance().subscribe("shared-files:update",e=>{console.log("[SharedFiles] 收到局域网公共文件列表广播更新:",e),t(e)});return()=>{e()}},[]);let ei=async e=>{if(e.preventDefault(),i(!1),"uploading"===u)return;let r=e.dataTransfer.files;r&&r.length>0&&el(r[0])},el=async r=>{if(r){c(r),m(0),f("uploading"),y(""),er("计算中..."),ea(""),es.current=Date.now();try{let t,a=(t=window.navigator.userAgent,/android/i.test(t)?"Android":/iPad|iPhone|iPod/.test(t)?"iOS":/macintosh|mac os x/i.test(t)?"macOS":/windows nt/i.test(t)?/windows nt 10.0/i.test(t)?"Windows 11":"Windows 10":/linux/i.test(t)?"Linux":"未知设备");await e(r,a,e=>{m(e);let t=(Date.now()-es.current)/1e3;if(t>.3){let a=r.size*(e/100),s=a/t;er(`${v(s)}/s`);let o=r.size-a,n=s>0?Math.round(o/s):0;e>=99?ea("正在落盘校验合并..."):n>0?ea(`预计剩 ${n} 秒`):ea("即将完成")}})?(f("success"),setTimeout(()=>{f("idle"),c(null),m(0),er(""),ea("")},2e3),en()):(f("error"),y("上传分片合并失败"))}catch(e){f("error"),y(e.message||"上传异常")}}},ed=async e=>{if(confirm("确认要物理删除此共享文件吗?删除后局域网其他伙伴将无法下载。"))try{let r=await fetch(`/api/transfer/shared?id=${e}`,{method:"DELETE"}),t=await r.json();t.success?en():alert(`删除失败: ${t.error}`)}catch(e){alert(`删除异常: ${e.message}`)}},ec=e=>{let r=e.toLowerCase().split(".").pop()||"";return["png","jpg","jpeg","gif","webp","svg"].includes(r)?(0,a.jsx)(R.A,{size:16,style:{color:"#6366f1"}}):["mp4","webm","ogg"].includes(r)?(0,a.jsx)(W.A,{size:16,style:{color:"#10b981"}}):["mp3","wav","ogg"].includes(r)?(0,a.jsx)(D.A,{size:16,style:{color:"#ec4899"}}):(0,a.jsx)(M.A,{size:16,style:{color:"var(--text-secondary)"}})},ep=e=>{let r=e.toLowerCase().split(".").pop()||"";return["png","jpg","jpeg","gif","webp","svg"].includes(r)?"rgba(99, 102, 241, 0.08)":["mp4","webm","ogg"].includes(r)?"rgba(16, 185, 129, 0.08)":["mp3","wav","ogg"].includes(r)?"rgba(236, 72, 153, 0.08)":"rgba(128, 128, 128, 0.08)"},ex=e=>["png","jpg","jpeg","gif","webp","svg","mp4","webm","mp3","wav","ogg"].includes(e.toLowerCase().split(".").pop()||""),eg=e=>{let r=(0,a.jsx)(I.A,{size:11}),t="custom-device-badge general-glow";return e.includes("Windows")?(r=(0,a.jsx)(p.A,{size:11}),t="custom-device-badge windows-glow"):e.includes("macOS")||e.includes("iOS")?(r=(0,a.jsx)(x.A,{size:11}),t="custom-device-badge macos-glow"):e.includes("Android")?(r=(0,a.jsx)(g.A,{size:11}),t="custom-device-badge android-glow"):e.includes("Linux")&&(r=(0,a.jsx)(O.A,{size:11}),t="custom-device-badge linux-glow"),(0,a.jsxs)("span",{className:t,style:{display:"inline-flex",alignItems:"center",gap:"4px",padding:"3px 8px",borderRadius:"20px",fontSize:"0.7rem",fontWeight:600,transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},children:[r,e]})},eb=r.filter(e=>{if(!(e.fileName.toLowerCase().includes(z.toLowerCase())||e.deviceInfo.toLowerCase().includes(z.toLowerCase())))return!1;if("all"===T)return!0;let r=e.fileName.toLowerCase().split(".").pop()||"";return"image"===T?["png","jpg","jpeg","gif","webp","svg"].includes(r):"video"===T?["mp4","webm","ogg"].includes(r):"audio"===T?["mp3","wav","ogg"].includes(r):"document"!==T||!["png","jpg","jpeg","gif","webp","svg","mp4","webm","mp3","wav","ogg"].includes(r)}).sort((e,r)=>"time-desc"===$?r.uploadedAt-e.uploadedAt:"time-asc"===$?e.uploadedAt-r.uploadedAt:"size-desc"===$?r.fileSize-e.fileSize:"size-asc"===$?e.fileSize-r.fileSize:0),em=eb.length,eu=Math.max(1,Math.ceil(em/Z)),ef=Math.min(L,eu),eh=(ef-1)*Z,ey=Math.min(eh+Z,em),ev=eb.slice(eh,eh+Z);return(0,a.jsxs)("div",{onDragOver:e=>{e.preventDefault(),i(!0)},onDragLeave:e=>{e.preventDefault(),i(!1)},onDrop:ei,style:{display:"flex",flexDirection:"column",gap:"20px",width:"100%",position:"relative"},className:"jsx-7ef4928bd4b40453 share-center-master-container",children:[(0,a.jsxs)("div",{style:{padding:"16px 20px",borderRadius:"16px",display:"flex",flexDirection:"column",gap:"16px",backdropFilter:"blur(20px)",transition:"all 0.25s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 control-hub-panel",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"16px",flexWrap:"wrap"},className:"jsx-7ef4928bd4b40453 control-hub-top-row",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("div",{style:{width:"36px",height:"36px",borderRadius:"10px",display:"flex",alignItems:"center",justifyContent:"center",background:"linear-gradient(135deg, rgba(99,102,241,0.15), rgba(168,85,247,0.15))",border:"1px solid rgba(99,102,241,0.2)"},className:"jsx-7ef4928bd4b40453 control-hub-logo-icon",children:(0,a.jsx)(P.A,{size:16,style:{color:"#6366f1"}})}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsxs)("h2",{style:{fontSize:"1.05rem",fontWeight:700,color:"var(--text-primary)",letterSpacing:"-0.01em",display:"flex",alignItems:"center",gap:"6px"},className:"jsx-7ef4928bd4b40453",children:["公共落盘共享空间",(0,a.jsx)("span",{style:{fontSize:"0.62rem",fontWeight:800,padding:"1px 6px",borderRadius:"6px",background:"linear-gradient(90deg, #6366f1, #a855f7)",color:"#ffffff",boxShadow:"0 0 8px rgba(99,102,241,0.3)",textTransform:"uppercase"},className:"jsx-7ef4928bd4b40453 premium-glow-badge",children:"P2P Hub"})]}),(0,a.jsx)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)"},className:"jsx-7ef4928bd4b40453",children:"局域网长效存储中转站 \xb7 支持文件即拖即传"})]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px",flex:"1",justifyContent:"flex-end",minWidth:"280px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsxs)("div",{style:{position:"relative",maxWidth:"300px",width:"100%"},className:"jsx-7ef4928bd4b40453 search-input-shell",children:[(0,a.jsx)(_.A,{size:13,style:{position:"absolute",left:"12px",top:"50%",transform:"translateY(-50%)",color:"var(--text-muted)"}}),(0,a.jsx)("input",{type:"text",placeholder:"搜索文件、设备名称...",value:z,onChange:e=>C(e.target.value),style:{width:"100%",padding:"8px 14px 8px 34px",borderRadius:"10px",fontSize:"0.8rem",outline:"none",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453"})]}),(0,a.jsxs)("div",{style:{display:"flex",padding:"2px",borderRadius:"10px"},className:"jsx-7ef4928bd4b40453 view-mode-pill",children:[(0,a.jsx)("button",{onClick:()=>F("grid"),title:"网格视图",style:{border:"none",width:"32px",height:"32px",borderRadius:"8px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:`jsx-7ef4928bd4b40453 view-switch-btn ${"grid"===B?"active":""}`,children:(0,a.jsx)(U.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>F("list"),title:"精细列表",style:{border:"none",width:"32px",height:"32px",borderRadius:"8px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:`jsx-7ef4928bd4b40453 view-switch-btn ${"list"===B?"active":""}`,children:(0,a.jsx)(H.A,{size:13})})]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"16px",borderTop:"1px solid rgba(255, 255, 255, 0.05)",paddingTop:"12px",flexWrap:"wrap"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsxs)("div",{style:{display:"flex",gap:"8px",overflowX:"auto",paddingBottom:"2px"},className:"jsx-7ef4928bd4b40453 capsule-filters-scroller",children:[(0,a.jsx)("button",{onClick:()=>A("all"),className:`jsx-7ef4928bd4b40453 capsule-tab-btn ${"all"===T?"active":""}`,children:"全部"}),(0,a.jsx)("button",{onClick:()=>A("image"),className:`jsx-7ef4928bd4b40453 capsule-tab-btn ${"image"===T?"active":""}`,children:"图片 \uD83D\uDDBC️"}),(0,a.jsx)("button",{onClick:()=>A("video"),className:`jsx-7ef4928bd4b40453 capsule-tab-btn ${"video"===T?"active":""}`,children:"视频 \uD83C\uDFA5"}),(0,a.jsx)("button",{onClick:()=>A("audio"),className:`jsx-7ef4928bd4b40453 capsule-tab-btn ${"audio"===T?"active":""}`,children:"音频 \uD83C\uDFB5"}),(0,a.jsx)("button",{onClick:()=>A("document"),className:`jsx-7ef4928bd4b40453 capsule-tab-btn ${"document"===T?"active":""}`,children:"文档及其他 \uD83D\uDCC2"})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--text-muted)",display:"flex",alignItems:"center",gap:"4px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)(Y.A,{size:11}),"排序:"]}),(0,a.jsxs)("select",{value:$,onChange:e=>E(e.target.value),style:{fontSize:"0.75rem",padding:"6px 12px",borderRadius:"8px",border:"none",outline:"none",cursor:"pointer",fontWeight:600},className:"jsx-7ef4928bd4b40453 hub-sort-select",children:[(0,a.jsx)("option",{value:"time-desc",className:"jsx-7ef4928bd4b40453",children:"上传时间 (最新优先)"}),(0,a.jsx)("option",{value:"time-asc",className:"jsx-7ef4928bd4b40453",children:"上传时间 (最早优先)"}),(0,a.jsx)("option",{value:"size-desc",className:"jsx-7ef4928bd4b40453",children:"文件大小 (从大到小)"}),(0,a.jsx)("option",{value:"size-asc",className:"jsx-7ef4928bd4b40453",children:"文件大小 (从小到大)"})]}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",fontWeight:600,padding:"4px 10px",borderRadius:"20px"},className:"jsx-7ef4928bd4b40453 files-count-badge",children:["共 ",eb.length," 项"]})]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"20px",width:"100%",alignItems:"flex-start"},className:"jsx-7ef4928bd4b40453 share-center-workspace-columns",children:[(0,a.jsxs)("div",{style:{width:"320px",flexShrink:0,display:"flex",flexDirection:"column",gap:"16px"},className:"jsx-7ef4928bd4b40453 upload-cabin-aside",children:[(0,a.jsxs)("div",{onClick:()=>{"uploading"!==u&&eo.current?.click()},style:{padding:"40px 24px",borderRadius:"20px",border:"2px dashed rgba(99, 102, 241, 0.25)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:"uploading"===u?"not-allowed":"pointer",position:"relative",overflow:"hidden",transition:"all 0.3s cubic-bezier(0.16, 1, 0.3, 1)"},className:`jsx-7ef4928bd4b40453 drop-zone-cabin ${n?"drag-over":""} ${"uploading"===u?"disabled":""}`,children:[(0,a.jsx)("div",{className:"jsx-7ef4928bd4b40453 drop-zone-glow-aura"}),(0,a.jsx)("input",{type:"file",ref:eo,onChange:e=>{if("uploading"===u)return;let r=e.target.files;r&&r.length>0&&el(r[0])},style:{display:"none"},disabled:"uploading"===u,className:"jsx-7ef4928bd4b40453"}),(0,a.jsx)("div",{style:{width:"56px",height:"56px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"linear-gradient(135deg, rgba(99,102,241,0.08), rgba(168,85,247,0.08))",border:"1px solid rgba(99,102,241,0.15)",marginBottom:"16px",position:"relative",zIndex:2},className:"jsx-7ef4928bd4b40453 icon-cabin-pulse",children:(0,a.jsx)(q.A,{size:22,className:"cloud-upload-icon-anim",style:{color:"#6366f1"}})}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"6px",position:"relative",zIndex:2},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:700,color:"var(--text-primary)",display:"flex",alignItems:"center",justifyContent:"center",gap:"4px"},className:"jsx-7ef4928bd4b40453",children:"极速闪传投递舱"}),(0,a.jsx)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)"},className:"jsx-7ef4928bd4b40453",children:"松开文件拖入页面任意处上传"})]}),(0,a.jsx)("button",{style:{marginTop:"20px",border:"none",padding:"8px 18px",borderRadius:"10px",fontSize:"0.78rem",fontWeight:700,cursor:"uploading"===u?"not-allowed":"pointer",zIndex:2,transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 cabin-select-btn",children:"选择文件投递"})]}),"idle"!==u&&(0,a.jsxs)("div",{style:{padding:"20px",borderRadius:"20px",border:"1px solid rgba(255, 255, 255, 0.08)",display:"flex",flexDirection:"column",alignItems:"center",gap:"16px",animation:"fade-in 0.3s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 upload-progress-cabin",children:["uploading"===u&&l&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{style:{width:"100px",height:"100px",borderRadius:"50%",position:"relative",overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 8px 24px rgba(99, 102, 241, 0.15)",border:"2px solid rgba(99, 102, 241, 0.2)"},className:"jsx-7ef4928bd4b40453 wave-progress-orb",children:[(0,a.jsxs)("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:`${b}%`,background:"linear-gradient(180deg, #6366f1, #818cf8)",transition:"height 0.2s linear",width:"100%",zIndex:1},className:"jsx-7ef4928bd4b40453 wave-progress-water",children:[(0,a.jsx)("div",{className:"jsx-7ef4928bd4b40453 water-sine-wave wave-1"}),(0,a.jsx)("div",{className:"jsx-7ef4928bd4b40453 water-sine-wave wave-2"})]}),(0,a.jsxs)("span",{style:{fontSize:"1.25rem",fontWeight:800,color:b>48?"#ffffff":"var(--text-primary)",zIndex:3,fontFamily:"var(--font-mono)",letterSpacing:"-0.02em",transition:"color 0.2s"},className:"jsx-7ef4928bd4b40453",children:[b,"%"]})]}),(0,a.jsxs)("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:"8px",textAlign:"center"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.8rem",fontWeight:700,color:"var(--text-primary)",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",width:"100%",display:"block"},className:"jsx-7ef4928bd4b40453",children:l.name}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)"},className:"jsx-7ef4928bd4b40453",children:["文件大小: ",v(l.size)]})]}),(0,a.jsxs)("div",{style:{width:"100%",display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px",borderTop:"1px solid rgba(255, 255, 255, 0.05)",paddingTop:"12px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"2px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.62rem",color:"var(--text-muted)",textTransform:"uppercase",fontWeight:600},className:"jsx-7ef4928bd4b40453",children:"闪传速度"}),(0,a.jsx)("span",{style:{fontSize:"0.8rem",fontWeight:800,color:"#6366f1",fontFamily:"var(--font-mono)"},className:"jsx-7ef4928bd4b40453",children:ee})]}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"2px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.62rem",color:"var(--text-muted)",textTransform:"uppercase",fontWeight:600},className:"jsx-7ef4928bd4b40453",children:"预计剩余"}),(0,a.jsx)("span",{style:{fontSize:"0.78rem",fontWeight:700,color:"var(--text-primary)"},className:"jsx-7ef4928bd4b40453",children:et||"计算中"})]})]})]}),"success"===u&&(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"12px",padding:"16px 0",textAlign:"center"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("div",{style:{width:"44px",height:"44px",borderRadius:"50%",background:"rgba(16, 185, 129, 0.08)",border:"1px solid rgba(16, 185, 129, 0.15)",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 0 12px rgba(16, 185, 129, 0.1)"},className:"jsx-7ef4928bd4b40453",children:(0,a.jsx)(j.A,{size:20,style:{color:"#10b981"}})}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:700,color:"#10b981"},className:"jsx-7ef4928bd4b40453",children:"共享投递成功!"}),(0,a.jsx)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)"},className:"jsx-7ef4928bd4b40453",children:"文件已物理落盘并全局同步"})]})]}),"error"===u&&(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"12px",padding:"16px 0",textAlign:"center"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("div",{style:{width:"44px",height:"44px",borderRadius:"50%",background:"rgba(239, 68, 68, 0.08)",border:"1px solid rgba(239, 68, 68, 0.15)",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 0 12px rgba(239, 68, 68, 0.1)"},className:"jsx-7ef4928bd4b40453",children:(0,a.jsx)(k.A,{size:20,style:{color:"#ef4444"}})}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:700,color:"#ef4444"},className:"jsx-7ef4928bd4b40453",children:"投递遭遇异常"}),(0,a.jsx)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)"},className:"jsx-7ef4928bd4b40453",children:h||"发生了未知错误"})]})]})]}),(0,a.jsxs)("div",{style:{padding:"16px",borderRadius:"16px",border:"1px solid rgba(255, 255, 255, 0.05)",display:"flex",gap:"12px"},className:"jsx-7ef4928bd4b40453 cabin-info-card",children:[(0,a.jsx)(K.A,{size:14,style:{color:"#6366f1",flexShrink:0,marginTop:"2px"}}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.75rem",fontWeight:700,color:"var(--text-primary)"},className:"jsx-7ef4928bd4b40453",children:"去中心化局域网广播"}),(0,a.jsx)("p",{style:{fontSize:"0.68rem",color:"var(--text-secondary)",lineHeight:1.4},className:"jsx-7ef4928bd4b40453",children:"在这里上传的文件将被同步落盘于服务器指定物理目录,所有连入同一局域网的设备均可无损直接拉取,实现企业级 AirDrop 体验。"})]})]})]}),(0,a.jsx)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:"16px"},className:"jsx-7ef4928bd4b40453 resource-orbit-area",children:0===eb.length?(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"90px 24px",borderRadius:"20px",border:"1px dashed rgba(255, 255, 255, 0.06)"},className:"jsx-7ef4928bd4b40453 orbit-empty-state",children:[(0,a.jsx)("div",{style:{width:"64px",height:"64px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(255, 255, 255, 0.02)",border:"1px solid rgba(255, 255, 255, 0.04)",marginBottom:"16px"},className:"jsx-7ef4928bd4b40453",children:(0,a.jsx)(M.A,{size:24,style:{color:"var(--text-muted)"}})}),(0,a.jsx)("h3",{style:{fontSize:"0.88rem",fontWeight:700,color:"var(--text-primary)",marginBottom:"4px"},className:"jsx-7ef4928bd4b40453",children:"资源池里空空如也"}),(0,a.jsx)("p",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",textAlign:"center",maxWidth:"320px",lineHeight:1.4},className:"jsx-7ef4928bd4b40453",children:"暂无匹配该分类或关键字的文件。松开文件于页面任意位置,即可极速完成第一份投递!"})]}):(0,a.jsxs)(a.Fragment,{children:["grid"===B&&(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(210px, 1fr))",gap:"16px",width:"100%"},className:"jsx-7ef4928bd4b40453 orbit-files-grid",children:ev.map(e=>{let r=new Date(e.uploadedAt).toLocaleString("zh-CN",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}),t=ex(e.fileName);return(0,a.jsxs)("div",{style:{borderRadius:"16px",display:"flex",flexDirection:"column",overflow:"hidden",position:"relative",transition:"all 0.28s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 orbit-grid-card",children:[(0,a.jsxs)("div",{onClick:()=>{t&&S(e)},style:{height:"110px",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",cursor:t?"pointer":"default",overflow:"hidden"},className:"jsx-7ef4928bd4b40453 grid-card-thumbnail-wrapper",children:[ex(e.fileName)&&e.fileName.toLowerCase().match(/\.(png|jpg|jpeg|gif|webp|svg)$/)?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("img",{src:`/api/transfer/shared/download?id=${e.id}&preview=true`,alt:"",style:{position:"absolute",width:"100%",height:"100%",objectFit:"cover",filter:"blur(8px) brightness(0.65)",opacity:.8},className:"jsx-7ef4928bd4b40453"}),(0,a.jsx)("img",{src:`/api/transfer/shared/download?id=${e.id}&preview=true`,alt:e.fileName,style:{position:"relative",maxHeight:"85%",maxWidth:"85%",objectFit:"contain",borderRadius:"6px",boxShadow:"0 6px 16px rgba(0,0,0,0.35)",zIndex:2,transition:"transform 0.3s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 grid-thumbnail-image"})]}):(0,a.jsx)("div",{style:{width:"46px",height:"46px",borderRadius:"12px",background:ep(e.fileName),display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 8px 16px rgba(0,0,0,0.15)",transition:"transform 0.3s cubic-bezier(0.16, 1, 0.3, 1)",zIndex:2},className:"jsx-7ef4928bd4b40453 grid-thumbnail-icon-shell",children:ec(e.fileName)}),t&&(0,a.jsxs)("span",{style:{position:"absolute",top:"10px",left:"10px",zIndex:3,display:"inline-flex",alignItems:"center",gap:"4px",padding:"2px 8px",borderRadius:"20px",fontSize:"0.62rem",fontWeight:700},className:"jsx-7ef4928bd4b40453 grid-preview-badge",children:[(0,a.jsx)(J.A,{size:10}),(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:"在线预览"})]})]}),(0,a.jsxs)("div",{style:{padding:"14px",display:"flex",flexDirection:"column",gap:"10px",flex:1},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"2px",minWidth:0},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.82rem",fontWeight:700,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block"},title:e.fileName,className:"jsx-7ef4928bd4b40453 grid-card-filename",children:e.fileName}),(0,a.jsxs)("span",{style:{fontSize:"0.7rem",color:"var(--text-muted)"},className:"jsx-7ef4928bd4b40453",children:[v(e.fileSize)," \xb7 ",r]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",borderTop:"1px solid rgba(255, 255, 255, 0.04)",paddingTop:"8px",marginTop:"auto"},className:"jsx-7ef4928bd4b40453",children:[eg(e.deviceInfo),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},className:"jsx-7ef4928bd4b40453",children:[t&&(0,a.jsx)("button",{onClick:()=>S(e),title:"在线预览",style:{border:"none",width:"26px",height:"26px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 action-btn-circle preview-glow",children:(0,a.jsx)(J.A,{size:12,style:{color:"#6366f1"}})}),(0,a.jsx)("a",{href:`/api/transfer/shared/download?id=${e.id}`,download:e.fileName,style:{textDecoration:"none"},className:"jsx-7ef4928bd4b40453",children:(0,a.jsx)("button",{title:"极速下载",style:{border:"none",width:"26px",height:"26px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 action-btn-circle download-glow",children:(0,a.jsx)(N.A,{size:12,style:{color:"#10b981"}})})}),(0,a.jsx)("button",{onClick:()=>ed(e.id),title:"物理删除",style:{border:"none",width:"26px",height:"26px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 action-btn-circle delete-glow",children:(0,a.jsx)(X.A,{size:12,style:{color:"#ef4444"}})})]})]})]})]},e.id)})}),"list"===B&&(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"8px",width:"100%"},className:"jsx-7ef4928bd4b40453 orbit-files-list-container",children:ev.map(e=>{let r=new Date(e.uploadedAt).toLocaleString("zh-CN",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}),t=ex(e.fileName);return(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",borderRadius:"12px",transition:"all 0.24s cubic-bezier(0.16, 1, 0.3, 1)",cursor:t?"pointer":"default"},onClick:()=>{t&&S(e)},className:"jsx-7ef4928bd4b40453 orbit-list-row",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"14px",flex:"1",minWidth:0},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("div",{style:{width:"34px",height:"34px",borderRadius:"10px",background:ep(e.fileName),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},className:"jsx-7ef4928bd4b40453 list-row-icon-shell",children:ec(e.fileName)}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",minWidth:0,gap:"2px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:700,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.fileName,className:"jsx-7ef4928bd4b40453 list-row-filename",children:e.fileName}),t&&(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:"2px",padding:"1px 6px",borderRadius:"4px",fontSize:"0.62rem",fontWeight:700},className:"jsx-7ef4928bd4b40453 list-preview-pill",children:[(0,a.jsx)(J.A,{size:10}),(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:"在线预览"})]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px",fontSize:"0.72rem",color:"var(--text-muted)"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:v(e.fileSize)}),(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:"•"}),(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:r})]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"16px",flexShrink:0},onClick:e=>e.stopPropagation(),className:"jsx-7ef4928bd4b40453",children:[eg(e.deviceInfo),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},className:"jsx-7ef4928bd4b40453 list-row-actions",children:[t&&(0,a.jsx)("button",{onClick:()=>S(e),title:"在线预览",style:{border:"none",width:"26px",height:"26px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 action-btn-circle preview-glow",children:(0,a.jsx)(J.A,{size:12,style:{color:"#6366f1"}})}),(0,a.jsx)("a",{href:`/api/transfer/shared/download?id=${e.id}`,download:e.fileName,style:{textDecoration:"none"},className:"jsx-7ef4928bd4b40453",children:(0,a.jsx)("button",{title:"极速下载",style:{border:"none",width:"26px",height:"26px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 action-btn-circle download-glow",children:(0,a.jsx)(N.A,{size:12,style:{color:"#10b981"}})})}),(0,a.jsx)("button",{onClick:()=>ed(e.id),title:"物理删除",style:{border:"none",width:"26px",height:"26px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 action-btn-circle delete-glow",children:(0,a.jsx)(X.A,{size:12,style:{color:"#ef4444"}})})]})]})]},e.id)})}),em>0&&(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderRadius:"14px",marginTop:"16px",gap:"16px",flexWrap:"wrap",transition:"all 0.25s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 hub-pagination-bar",children:[(0,a.jsxs)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:"当前展示 "}),(0,a.jsx)("strong",{style:{color:"var(--text-primary)",fontFamily:"var(--font-mono)"},className:"jsx-7ef4928bd4b40453",children:eh+1}),(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:" - "}),(0,a.jsx)("strong",{style:{color:"var(--text-primary)",fontFamily:"var(--font-mono)"},className:"jsx-7ef4928bd4b40453",children:ey}),(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:" 项,共 "}),(0,a.jsx)("strong",{style:{color:"#6366f1",fontFamily:"var(--font-mono)",fontSize:"0.82rem"},className:"jsx-7ef4928bd4b40453",children:em}),(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:" 项"})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("button",{onClick:()=>G(e=>Math.max(1,e-1)),disabled:1===ef,style:{border:"none",padding:"6px 12px",borderRadius:"8px",fontSize:"0.75rem",fontWeight:600,cursor:1===ef?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 pagination-arrow-btn",children:(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:"上一页"})}),(()=>{let e=[];if(eu<=5)for(let r=1;r<=eu;r++)e.push(r);else{e.push(1);let r=Math.max(2,ef-1),t=Math.min(eu-1,ef+1);ef<=2&&(t=4),ef>=eu-1&&(r=eu-3),r>2&&e.push("ellipsis-start");for(let a=r;a<=t;a++)e.push(a);t<eu-1&&e.push("ellipsis-end"),e.push(eu)}return e.map((e,r)=>"string"==typeof e?(0,a.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--text-muted)",padding:"0 4px"},className:"jsx-7ef4928bd4b40453",children:"..."},`ell-${r}`):(0,a.jsx)("button",{onClick:()=>G(e),style:{border:"none",width:"30px",height:"30px",borderRadius:"8px",fontSize:"0.75rem",fontWeight:700,cursor:"pointer",fontFamily:"var(--font-mono)",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:`jsx-7ef4928bd4b40453 pagination-num-btn ${ef===e?"active":""}`,children:e},e))})(),(0,a.jsx)("button",{onClick:()=>G(e=>Math.min(eu,e+1)),disabled:ef===eu,style:{border:"none",padding:"6px 12px",borderRadius:"8px",fontSize:"0.75rem",fontWeight:600,cursor:ef===eu?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 pagination-arrow-btn",children:(0,a.jsx)("span",{className:"jsx-7ef4928bd4b40453",children:"下一页"})})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},className:"jsx-7ef4928bd4b40453",children:[(0,a.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--text-muted)"},className:"jsx-7ef4928bd4b40453",children:"每页显示:"}),(0,a.jsxs)("select",{value:Z,onChange:e=>Q(Number(e.target.value)),style:{fontSize:"0.75rem",padding:"4px 8px",borderRadius:"6px",border:"none",outline:"none",cursor:"pointer",fontWeight:600,transition:"all 0.2s cubic-bezier(0.16, 1, 0.3, 1)"},className:"jsx-7ef4928bd4b40453 pagination-size-select",children:[(0,a.jsx)("option",{value:8,className:"jsx-7ef4928bd4b40453",children:"8 项"}),(0,a.jsx)("option",{value:12,className:"jsx-7ef4928bd4b40453",children:"12 项"}),(0,a.jsx)("option",{value:24,className:"jsx-7ef4928bd4b40453",children:"24 项"}),(0,a.jsx)("option",{value:48,className:"jsx-7ef4928bd4b40453",children:"48 项"})]})]})]})]})})]}),w&&(0,a.jsx)(V,{file:w,onClose:()=>S(null)}),(0,a.jsx)(d(),{id:"7ef4928bd4b40453",children:'.control-hub-panel{background:rgba(30,30,35,.45)!important;border:1px solid rgba(255,255,255,.08)!important;box-shadow:0 20px 25px rgba(0,0,0,.2)!important}[data-theme="light"] .control-hub-panel{background:rgba(255,255,255,.75)!important;border:1px solid rgba(0,0,0,.06)!important;box-shadow:0 15px 30px rgba(0,0,0,.03)!important}.search-input-shell input{background:rgba(0,0,0,.2)!important;border:1px solid rgba(255,255,255,.06)!important;color:var(--text-primary)!important}.search-input-shell input:focus{border-color:rgba(99,102,241,.6)!important;background:rgba(0,0,0,.28)!important;box-shadow:0 0 12px rgba(99,102,241,.15)!important}[data-theme="light"] .search-input-shell input{background:rgba(0,0,0,.03)!important;border:1px solid rgba(0,0,0,.08)!important;color:var(--text-primary)!important}[data-theme="light"] .search-input-shell input:focus{border-color:rgba(99,102,241,.5)!important;background:#fff!important;box-shadow:0 0 12px rgba(99,102,241,.08)!important}.view-mode-pill{background:rgba(0,0,0,.15)!important;border:1px solid rgba(255,255,255,.04)!important}[data-theme="light"] .view-mode-pill{background:rgba(0,0,0,.03)!important;border:1px solid rgba(0,0,0,.04)!important}.view-switch-btn{background:transparent!important;color:var(--text-muted)!important}.view-switch-btn.active{background:rgba(255,255,255,.08)!important;color:#6366f1!important;box-shadow:0 2px 6px rgba(0,0,0,.15)!important}[data-theme="light"] .view-switch-btn.active{background:#fff!important;color:#6366f1!important;box-shadow:0 2px 6px rgba(0,0,0,.06)!important}.capsule-tab-btn{border:none!important;padding:6px 14px!important;border-radius:20px!important;font-size:.76rem!important;font-weight:600!important;cursor:pointer!important;transition:all.2s cubic-bezier(.16,1,.3,1)!important;background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.05)!important;color:var(--text-secondary)!important;white-space:nowrap!important}.capsule-tab-btn:hover{background:rgba(255,255,255,.06)!important;color:var(--text-primary)!important}.capsule-tab-btn.active{background:rgba(99,102,241,.12)!important;border-color:rgba(99,102,241,.25)!important;color:#818cf8!important;box-shadow:0 4px 12px rgba(99,102,241,.08)!important}[data-theme="light"] .capsule-tab-btn{background:rgba(0,0,0,.02)!important;border:1px solid rgba(0,0,0,.04)!important;color:var(--text-secondary)!important}[data-theme="light"] .capsule-tab-btn:hover{background:rgba(0,0,0,.04)!important;color:var(--text-primary)!important}[data-theme="light"] .capsule-tab-btn.active{background:#6366f1!important;border-color:#6366f1!important;color:#fff!important;box-shadow:0 4px 12px rgba(99,102,241,.18)!important}.hub-sort-select{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.05)!important;color:var(--text-secondary)!important}.hub-sort-select:hover{background:rgba(255,255,255,.06)!important;color:var(--text-primary)!important}[data-theme="light"] .hub-sort-select{background:rgba(0,0,0,.02)!important;border:1px solid rgba(0,0,0,.05)!important;color:var(--text-secondary)!important}[data-theme="light"] .hub-sort-select:hover{background:rgba(0,0,0,.04)!important;color:var(--text-primary)!important}.files-count-badge{background:rgba(255,255,255,.04)!important;color:var(--text-secondary)!important;border:1px solid rgba(255,255,255,.04)!important}[data-theme="light"] .files-count-badge{background:rgba(0,0,0,.03)!important;color:var(--text-secondary)!important;border:1px solid rgba(0,0,0,.04)!important}.drop-zone-cabin{background:rgba(30,30,35,.45)!important;box-shadow:0 15px 25px rgba(0,0,0,.15)!important}[data-theme="light"] .drop-zone-cabin{background:rgba(255,255,255,.75)!important;box-shadow:0 15px 25px rgba(0,0,0,.02)!important}.drop-zone-glow-aura{position:absolute;top:-40px;left:-40px;right:-40px;bottom:-40px;background:radial-gradient(circle at center,rgba(99,102,241,.04)0%,transparent 65%);z-index:1;pointer-events:none;transition:background.3s}.drop-zone-cabin.drag-over{border-color:#6366f1!important;box-shadow:0 0 25px rgba(99,102,241,.25)!important;background:rgba(99,102,241,.03)!important}.drop-zone-cabin.drag-over .drop-zone-glow-aura{background:radial-gradient(circle at center,rgba(99,102,241,.08)0%,transparent 70%)}.drop-zone-cabin.drag-over .cloud-upload-icon-anim{animation:drop-bounce.8s infinite alternate cubic-bezier(.25,.8,.25,1)}.cabin-select-btn{background:linear-gradient(135deg,#6366f1,#4f46e5)!important;color:#fff!important;box-shadow:0 4px 14px rgba(99,102,241,.2)!important}.cabin-select-btn:hover{filter:brightness(1.15)!important;box-shadow:0 6px 18px rgba(99,102,241,.3)!important;transform:translatey(-1px)}.upload-progress-cabin{background:rgba(30,30,35,.45)!important;box-shadow:0 15px 25px rgba(0,0,0,.15)!important}[data-theme="light"] .upload-progress-cabin{background:rgba(255,255,255,.75)!important;box-shadow:0 15px 25px rgba(0,0,0,.02)!important}.cabin-info-card{background:rgba(255,255,255,.01)!important;background:rgba(255,255,255,.01)!important}[data-theme="light"] .cabin-info-card{background:rgba(0,0,0,.01)!important;border-color:rgba(0,0,0,.04)!important}.water-sine-wave{position:absolute;width:200%;height:200%;background:rgba(255,255,255,.12);border-radius:38%;left:-50%;bottom:0;pointer-events:none}.wave-1{animation:spin-sine-1 7s linear infinite}.wave-2{animation:spin-sine-2 9s linear infinite;border-radius:40%;background:rgba(255,255,255,.08)}@keyframes spin-sine-1{0%{transform:translatey(0)rotate(0deg)}100%{transform:translatey(-4px)rotate(360deg)}}@keyframes spin-sine-2{0%{transform:translatey(0)rotate(0deg)}100%{transform:translatey(-2px)rotate(-360deg)}}.orbit-grid-card{background:rgba(30,30,35,.4)!important;border:1px solid rgba(255,255,255,.06)!important;box-shadow:0 8px 16px rgba(0,0,0,.1)!important}.orbit-grid-card:hover{border-color:rgba(99,102,241,.22)!important;box-shadow:0 12px 24px rgba(99,102,241,.06),0 4px 10px rgba(0,0,0,.12)!important;transform:translatey(-3px)scale(1.01)}[data-theme="light"] .orbit-grid-card{background:rgba(255,255,255,.7)!important;border:1px solid rgba(0,0,0,.05)!important;box-shadow:0 8px 16px rgba(0,0,0,.02)!important}[data-theme="light"] .orbit-grid-card:hover{border-color:rgba(99,102,241,.2)!important;box-shadow:0 12px 24px rgba(99,102,241,.05),0 4px 10px rgba(0,0,0,.03)!important;transform:translatey(-3px)scale(1.01)}.grid-card-thumbnail-wrapper{background:rgba(0,0,0,.25)!important;border-bottom:1px solid rgba(255,255,255,.04)!important}[data-theme="light"] .grid-card-thumbnail-wrapper{background:rgba(0,0,0,.02)!important;border-bottom:1px solid rgba(0,0,0,.04)!important}.orbit-grid-card:hover .grid-thumbnail-image{transform:scale(1.05)rotate(1deg)}.orbit-grid-card:hover .grid-thumbnail-icon-shell{transform:scale(1.08)rotate(-2deg)}.grid-preview-badge{background:rgba(9,9,11,.7)!important;border:1px solid rgba(255,255,255,.08)!important;color:#d4d4d8!important;backdrop-filter:blur(8px)!important}[data-theme="light"] .grid-preview-badge{background:rgba(255,255,255,.85)!important;border:1px solid rgba(0,0,0,.06)!important;color:#4b5563!important;backdrop-filter:blur(8px)!important}.grid-card-filename{color:var(--text-primary)!important}.action-btn-circle{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.08)!important;transition:all.2s cubic-bezier(.16,1,.3,1)!important}.action-btn-circle:hover{transform:scale(1.1)translatey(-.5px);background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.15)!important}[data-theme="light"] .action-btn-circle{background:rgba(0,0,0,.02)!important;border:1px solid rgba(0,0,0,.08)!important}[data-theme="light"] .action-btn-circle:hover{transform:scale(1.1)translatey(-.5px);background:rgba(0,0,0,.05)!important;border-color:rgba(0,0,0,.12)!important}.preview-glow:hover{box-shadow:0 0 10px rgba(99,102,241,.25)!important}.download-glow:hover{box-shadow:0 0 10px rgba(16,185,129,.25)!important}.delete-glow:hover{background:rgba(239,68,68,.08)!important;border-color:rgba(239,68,68,.25)!important;box-shadow:0 0 10px rgba(239,68,68,.25)!important}.orbit-list-row{background:rgba(30,30,35,.4)!important;border:1px solid rgba(255,255,255,.05)!important}.orbit-list-row:hover{background:rgba(30,30,35,.6)!important;border-color:rgba(99,102,241,.2)!important;transform:translatey(-1.5px);box-shadow:0 6px 14px rgba(0,0,0,.12),0 0 8px rgba(99,102,241,.04)!important}[data-theme="light"] .orbit-list-row{background:rgba(255,255,255,.7)!important;border:1px solid rgba(0,0,0,.04)!important}[data-theme="light"] .orbit-list-row:hover{background:rgba(255,255,255,.9)!important;border-color:rgba(99,102,241,.18)!important;transform:translatey(-1.5px);box-shadow:0 6px 14px rgba(0,0,0,.03),0 0 8px rgba(99,102,241,.03)!important}.list-row-filename{color:var(--text-primary)!important}.list-preview-pill{background:rgba(99,102,241,.1)!important;border:1px solid rgba(99,102,241,.15)!important;color:#818cf8!important}[data-theme="light"] .list-preview-pill{background:rgba(99,102,241,.06)!important;border:1px solid rgba(99,102,241,.12)!important;color:#4f46e5!important}.custom-device-badge{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.06)!important;color:var(--text-secondary)!important}[data-theme="light"] .custom-device-badge{background:rgba(0,0,0,.02)!important;border:1px solid rgba(0,0,0,.05)!important}.macos-glow{background:linear-gradient(135deg,rgba(226,232,240,.06),rgba(71,85,105,.06))!important;border-color:rgba(226,232,240,.15)!important;color:#e2e8f0!important;box-shadow:0 0 8px rgba(226,232,240,.03)}[data-theme="light"] .macos-glow{background:linear-gradient(135deg,rgba(241,245,249,.8),rgba(203,213,225,.8))!important;border-color:rgba(148,163,184,.2)!important;color:#334155!important;box-shadow:none}.windows-glow{background:linear-gradient(135deg,rgba(96,165,250,.08),rgba(37,99,235,.08))!important;border-color:rgba(96,165,250,.2)!important;color:#60a5fa!important;box-shadow:0 0 8px rgba(37,99,235,.05)}[data-theme="light"] .windows-glow{background:linear-gradient(135deg,rgba(239,246,255,.9),rgba(191,219,254,.9))!important;border-color:rgba(96,165,250,.3)!important;color:#2563eb!important;box-shadow:none}.android-glow{background:linear-gradient(135deg,rgba(52,211,153,.08),rgba(5,150,105,.08))!important;border-color:rgba(52,211,153,.2)!important;color:#34d399!important;box-shadow:0 0 8px rgba(5,150,105,.05)}[data-theme="light"] .android-glow{background:linear-gradient(135deg,rgba(236,253,245,.9),rgba(167,243,208,.9))!important;border-color:rgba(52,211,153,.3)!important;color:#059669!important;box-shadow:none}.linux-glow{background:linear-gradient(135deg,rgba(251,191,36,.08),rgba(217,119,6,.08))!important;border-color:rgba(251,191,36,.2)!important;color:#fbbf24!important;box-shadow:0 0 8px rgba(217,119,6,.05)}[data-theme="light"] .linux-glow{background:linear-gradient(135deg,rgba(255,251,235,.9),rgba(253,244,215,.9))!important;border-color:rgba(251,191,36,.3)!important;color:#d97706!important;box-shadow:none}.preview-overlay{background:rgba(6,6,8,.88)!important}[data-theme="light"] .preview-overlay{background:rgba(15,23,42,.6)!important}.preview-modal-card-cinema{background:rgba(24,24,28,.72)!important;border:1px solid rgba(255,255,255,.09)!important;box-shadow:0 30px 60px -15px rgba(0,0,0,.7)!important;backdrop-filter:blur(35px)!important;background-image:radial-gradient(circle at top,rgba(99,102,241,.08)0%,transparent 65%)!important}[data-theme="light"] .preview-modal-card-cinema{background:rgba(255,255,255,.85)!important;border:1px solid rgba(0,0,0,.08)!important;box-shadow:0 30px 60px -15px rgba(0,0,0,.15)!important;backdrop-filter:blur(35px)!important;background-image:radial-gradient(circle at top,rgba(99,102,241,.05)0%,transparent 65%)!important}.preview-header-bar-cinema{background:rgba(0,0,0,.25)!important;border-bottom:1px solid rgba(255,255,255,.05)!important}[data-theme="light"] .preview-header-bar-cinema{background:rgba(0,0,0,.02)!important;border-bottom:1px solid rgba(0,0,0,.05)!important}.preview-header-icon-shell{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.06)!important}[data-theme="light"] .preview-header-icon-shell{background:rgba(0,0,0,.02)!important;border-color:rgba(0,0,0,.06)!important}.preview-header-title-cinema{color:#f4f4f5!important}[data-theme="light"] .preview-header-title-cinema{color:#0f172a!important}.preview-action-pill{background:rgba(99,102,241,.1)!important;border:1px solid rgba(99,102,241,.2)!important;color:#818cf8!important}.preview-action-pill:hover{background:rgba(99,102,241,.16)!important;color:#fff!important;box-shadow:0 0 10px rgba(99,102,241,.2)!important;transform:translatey(-.5px)}[data-theme="light"] .preview-action-pill{background:#6366f1!important;border-color:#6366f1!important;color:#fff!important}[data-theme="light"] .preview-action-pill:hover{filter:brightness(1.08)!important;box-shadow:0 4px 10px rgba(99,102,241,.2)!important}.preview-close-btn-cinema{background:rgba(255,255,255,.04)!important;border:1px solid rgba(255,255,255,.06)!important;color:#a1a1aa!important}.preview-close-btn-cinema:hover{background:rgba(239,68,68,.12)!important;border-color:rgba(239,68,68,.25)!important;color:#fca5a5!important}[data-theme="light"] .preview-close-btn-cinema{background:rgba(0,0,0,.03)!important;border:1px solid rgba(0,0,0,.06)!important;color:#4b5563!important}[data-theme="light"] .preview-close-btn-cinema:hover{background:rgba(239,68,68,.08)!important;border-color:rgba(239,68,68,.2)!important;color:#ef4444!important}.preview-content-area-cinema{background-color:#0d0d0f!important;background-image:linear-gradient(45deg,#131316 25%,transparent 25%,transparent 75%,#131316 75%,#131316),linear-gradient(45deg,#131316 25%,transparent 25%,transparent 75%,#131316 75%,#131316)!important;background-size:24px 24px!important;background-position:0 0,12px 12px!important}[data-theme="light"] .preview-content-area-cinema{background-color:#fafafc!important;background-image:linear-gradient(45deg,#f1f1f5 25%,transparent 25%,transparent 75%,#f1f1f5 75%,#f1f1f5),linear-gradient(45deg,#f1f1f5 25%,transparent 25%,transparent 75%,#f1f1f5 75%,#f1f1f5)!important}.preview-loading-box{background:rgba(9,9,11,.8)!important;border:1px solid rgba(255,255,255,.08)!important;color:#d4d4d8!important;backdrop-filter:blur(8px)!important}[data-theme="light"] .preview-loading-box{background:rgba(255,255,255,.9)!important;border:1px solid rgba(0,0,0,.06)!important;color:#4b5563!important}.preview-img-element-cinema{box-shadow:0 25px 50px rgba(0,0,0,.5)!important}[data-theme="light"] .preview-img-element-cinema{box-shadow:0 20px 40px rgba(0,0,0,.08)!important}.preview-audio-shell{background:rgba(255,255,255,.02)!important;border:1px solid rgba(255,255,255,.05)!important;box-shadow:0 20px 40px rgba(0,0,0,.3)!important}[data-theme="light"] .preview-audio-shell{background:rgba(0,0,0,.02)!important;border-color:rgba(0,0,0,.06)!important;box-shadow:0 15px 30px rgba(0,0,0,.04)!important}.preview-audio-name-cinema{color:#f4f4f5!important}[data-theme="light"] .preview-audio-name-cinema{color:#0f172a!important}.audio-disc-neon-container{background:rgba(99,102,241,.03)!important;border:1px solid rgba(99,102,241,.1)!important}.audio-disc-neon-pulse{position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:50%;background:conic-gradient(from 180deg,#6366f1,#a855f7,#3b82f6,#6366f1);opacity:.15;filter:blur(12px);animation:spin 8s linear infinite}.disc-grooves{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:50%;background:repeating-radial-gradient(circle,transparent,transparent 3px,rgba(255,255,255,.01)4px,rgba(255,255,255,.02)5px);pointer-events:none}.preview-unsupported-box{background:rgba(255,255,255,.02)!important;border:1px solid rgba(255,255,255,.05)!important}[data-theme="light"] .preview-unsupported-box{background:rgba(0,0,0,.02)!important;border-color:rgba(0,0,0,.05)!important}.preview-action-btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5)!important;color:#fff!important;box-shadow:0 4px 12px rgba(99,102,241,.2)!important}.preview-action-btn-primary:hover{filter:brightness(1.1)!important;transform:translatey(-.5px);box-shadow:0 6px 16px rgba(99,102,241,.3)!important}.preview-bottom-toolbar-cinema{border-top:1px solid rgba(255,255,255,.05)!important;background:rgba(0,0,0,.25)!important}[data-theme="light"] .preview-bottom-toolbar-cinema{border-top:1px solid rgba(0,0,0,.05)!important;background:rgba(0,0,0,.02)!important}.preview-toolbar-btn-cinema{background:rgba(255,255,255,.04)!important;border:1px solid rgba(255,255,255,.06)!important;color:#d4d4d8!important}.preview-toolbar-btn-cinema:hover{background:rgba(255,255,255,.08)!important;color:#fff!important;border-color:rgba(255,255,255,.15)!important}[data-theme="light"] .preview-toolbar-btn-cinema{background:rgba(0,0,0,.03)!important;border:1px solid rgba(0,0,0,.06)!important;color:#4b5563!important}[data-theme="light"] .preview-toolbar-btn-cinema:hover{background:rgba(0,0,0,.06)!important;color:#0f172a!important;border-color:rgba(0,0,0,.12)!important}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes preview-scale-up-elastic{0%{opacity:0;transform:scale(.93)translatey(8px)}100%{opacity:1;transform:scale(1)translatey(0)}}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes spin-back{from{transform:rotate(360deg)}to{transform:rotate(0deg)}}.animate-spin-fast{animation:spin.8s linear infinite}@keyframes drop-bounce{from{transform:translatey(0)}to{transform:translatey(-6px)}}@media(max-width:1024px){.share-center-workspace-columns{flex-direction:column!important;align-items:stretch!important}.upload-cabin-aside{width:100%!important}}@media(max-width:640px){.control-hub-panel{padding:12px 14px!important}.search-input-shell{max-width:100%!important;width:100%!important;order:2}.control-hub-top-row{flex-direction:column!important;align-items:stretch!important}.control-hub-top-row>div:last-child{justify-content:space-between!important;width:100%!important}.orbit-files-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))!important}.grid-card-thumbnail-wrapper{height:90px!important}.hub-pagination-bar{padding:8px 10px!important;flex-direction:column!important;gap:10px!important;align-items:center!important}}.hub-pagination-bar{background:rgba(30,30,35,.35)!important;border:1px solid rgba(255,255,255,.05)!important;box-shadow:0 10px 20px rgba(0,0,0,.1)!important}[data-theme="light"] .hub-pagination-bar{background:rgba(255,255,255,.6)!important;border:1px solid rgba(0,0,0,.04)!important;box-shadow:0 8px 16px rgba(0,0,0,.02)!important}.pagination-arrow-btn{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.06)!important;color:var(--text-secondary)!important}.pagination-arrow-btn:hover:not(:disabled){background:rgba(255,255,255,.08)!important;color:var(--text-primary)!important;border-color:rgba(255,255,255,.12)!important}.pagination-arrow-btn:disabled{opacity:.35!important;cursor:not-allowed!important}[data-theme="light"] .pagination-arrow-btn{background:rgba(0,0,0,.02)!important;border:1px solid rgba(0,0,0,.06)!important;color:var(--text-secondary)!important}[data-theme="light"] .pagination-arrow-btn:hover:not(:disabled){background:rgba(0,0,0,.04)!important;color:var(--text-primary)!important;border-color:rgba(0,0,0,.1)!important}.pagination-num-btn{background:rgba(255,255,255,.02)!important;border:1px solid rgba(255,255,255,.04)!important;color:var(--text-secondary)!important}.pagination-num-btn:hover{background:rgba(255,255,255,.06)!important;color:var(--text-primary)!important;transform:scale(1.05)}.pagination-num-btn.active{background:linear-gradient(135deg,#6366f1,#818cf8)!important;border-color:#6366f1!important;color:#fff!important;box-shadow:0 0 10px rgba(99,102,241,.3)!important;transform:scale(1.05)}[data-theme="light"] .pagination-num-btn{background:rgba(0,0,0,.015)!important;border:1px solid rgba(0,0,0,.04)!important;color:var(--text-secondary)!important}[data-theme="light"] .pagination-num-btn:hover{background:rgba(0,0,0,.04)!important;color:var(--text-primary)!important}[data-theme="light"] .pagination-num-btn.active{background:#6366f1!important;border-color:#6366f1!important;color:#fff!important;box-shadow:0 4px 10px rgba(99,102,241,.2)!important}.pagination-size-select{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.06)!important;color:var(--text-secondary)!important}.pagination-size-select:hover{background:rgba(255,255,255,.06)!important;color:var(--text-primary)!important}[data-theme="light"] .pagination-size-select{background:rgba(0,0,0,.02)!important;border:1px solid rgba(0,0,0,.06)!important;color:var(--text-secondary)!important}[data-theme="light"] .pagination-size-select:hover{background:rgba(0,0,0,.04)!important;color:var(--text-primary)!important}'})]})};var Z=t(3043),Q=t(8191),ee=t(7906),er=t(3504);function et({tasks:e,self:r,onDeleteTask:t,onClearHistory:o}){let[n,i]=(0,s.useState)(""),[l,b]=(0,s.useState)("all"),[m,u]=(0,s.useState)(!1),f=Object.values(e).filter(e=>"completed"===e.status||"failed"===e.status||"rejected"===e.status),h=f.length,y=f.filter(e=>"completed"===e.status).length,v=f.filter(e=>"failed"===e.status||"rejected"===e.status).length,S=f.filter(e=>"send"===e.type&&"completed"===e.status).length,N=f.filter(e=>"receive"===e.type&&"completed"===e.status).length,z=h>0?Math.round(y/h*100):100,I=f.filter(e=>{if(""!==n.trim()){let r=n.toLowerCase(),t=e.fileName.toLowerCase().includes(r),a=e.peerName?.toLowerCase().includes(r)||!1;if(!t&&!a)return!1}return"send"===l?"send"===e.type:"receive"===l?"receive"===e.type:"completed"===l?"completed"===e.status:"failed"!==l||"failed"===e.status||"rejected"===e.status}).sort((e,r)=>r.startedAt-e.startedAt),C=e=>{let r=e.toLowerCase();return r.includes("win")?{icon:(0,a.jsx)(x.A,{size:12}),label:"Windows",className:"device-badge windows"}:r.includes("mac")||r.includes("ios")||r.includes("apple")?{icon:(0,a.jsx)(p.A,{size:12}),label:"macOS",className:"device-badge macos"}:r.includes("android")||r.includes("phone")||r.includes("mobile")?{icon:(0,a.jsx)(g.A,{size:12}),label:"Android",className:"device-badge android"}:{icon:(0,a.jsx)(p.A,{size:12}),label:"未知设备",className:"device-badge general"}},T=e=>{let r=e.trim().charAt(0).toUpperCase()||"P",t=e.split("").reduce((e,r)=>e+r.charCodeAt(0),0)%5;return(0,a.jsx)("div",{style:{width:"38px",height:"38px",borderRadius:"50%",background:["linear-gradient(135deg, #6366f1, #4f46e5)","linear-gradient(135deg, #10b981, #059669)","linear-gradient(135deg, #f59e0b, #d97706)","linear-gradient(135deg, #ec4899, #db2777)","linear-gradient(135deg, #06b6d4, #0891b2)"][t],color:"#ffffff",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:600,fontSize:"0.9rem",border:"1px solid rgba(255, 255, 255, 0.15)",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.08)",flexShrink:0,letterSpacing:"0.02em"},children:r})};return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"24px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:"20px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)(c,{style:{padding:"20px 24px",display:"flex",flexDirection:"column",gap:"12px",background:"var(--bg-card)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",position:"relative",overflow:"hidden"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{style:{fontSize:"0.8rem",fontWeight:500,color:"var(--text-secondary)"},className:"jsx-e14a739e99b2fa31",children:"累计物理互传"}),(0,a.jsx)(Z.A,{size:16,style:{color:"var(--text-muted)"}})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"6px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{style:{fontSize:"2rem",fontWeight:800,color:"var(--text-primary)",letterSpacing:"-0.02em"},className:"jsx-e14a739e99b2fa31",children:h}),(0,a.jsx)("span",{style:{fontSize:"0.78rem",color:"var(--text-secondary)"},className:"jsx-e14a739e99b2fa31",children:"次"})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"16px",fontSize:"0.75rem",color:"var(--text-secondary)",borderTop:"1px solid var(--border-color)",paddingTop:"10px",marginTop:"4px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"4px"},className:"jsx-e14a739e99b2fa31",children:["成功: ",(0,a.jsx)("strong",{style:{color:"var(--success-color)",fontWeight:600},className:"jsx-e14a739e99b2fa31",children:y})]}),(0,a.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"4px"},className:"jsx-e14a739e99b2fa31",children:["异常/拒绝: ",(0,a.jsx)("strong",{style:{color:"var(--error-color)",fontWeight:600},className:"jsx-e14a739e99b2fa31",children:v})]})]})]}),(0,a.jsxs)(c,{style:{padding:"20px 24px",display:"flex",flexDirection:"column",gap:"12px",background:"var(--bg-card)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",position:"relative",overflow:"hidden"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{style:{fontSize:"0.8rem",fontWeight:500,color:"var(--text-secondary)"},className:"jsx-e14a739e99b2fa31",children:"网络物理流向"}),(0,a.jsx)(Q.A,{size:16,style:{color:"var(--text-muted)"}})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"10px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"4px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{style:{fontSize:"2rem",fontWeight:800,color:"var(--accent-color)",letterSpacing:"-0.02em"},className:"jsx-e14a739e99b2fa31",children:S}),(0,a.jsx)("span",{style:{fontSize:"0.78rem",color:"var(--text-secondary)"},className:"jsx-e14a739e99b2fa31",children:"发"})]}),(0,a.jsx)("span",{style:{color:"var(--border-color)",fontSize:"1.2rem",fontWeight:300},className:"jsx-e14a739e99b2fa31",children:"/"}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"4px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{style:{fontSize:"2rem",fontWeight:800,color:"#a855f7",letterSpacing:"-0.02em"},className:"jsx-e14a739e99b2fa31",children:N}),(0,a.jsx)("span",{style:{fontSize:"0.78rem",color:"var(--text-secondary)"},className:"jsx-e14a739e99b2fa31",children:"收"})]})]}),(0,a.jsxs)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",borderTop:"1px solid var(--border-color)",paddingTop:"10px",marginTop:"4px",display:"flex",alignItems:"center",gap:"4px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)(ee.A,{size:12,style:{color:"var(--accent-color)"}}),(0,a.jsx)("span",{className:"jsx-e14a739e99b2fa31",children:"点对等极速高频互传信道已连接"})]})]}),(0,a.jsxs)(c,{style:{padding:"20px 24px",display:"flex",flexDirection:"column",gap:"12px",background:"var(--bg-card)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",position:"relative",overflow:"hidden"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{style:{fontSize:"0.8rem",fontWeight:500,color:"var(--text-secondary)"},className:"jsx-e14a739e99b2fa31",children:"物理传输信道质量"}),(0,a.jsx)("span",{style:{width:"8px",height:"8px",borderRadius:"50%",background:z>=90?"var(--success-color)":"var(--warning-color)",boxShadow:`0 0 8px ${z>=90?"var(--success-color)":"var(--warning-color)"}`},className:"jsx-e14a739e99b2fa31"})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"4px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("span",{style:{fontSize:"2rem",fontWeight:800,color:z>=90?"var(--success-color)":z>=70?"var(--warning-color)":"var(--error-color)",letterSpacing:"-0.02em"},className:"jsx-e14a739e99b2fa31",children:[z,"%"]}),(0,a.jsx)("span",{style:{fontSize:"0.78rem",color:"var(--text-secondary)"},className:"jsx-e14a739e99b2fa31",children:"传输成功率"})]}),(0,a.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",borderTop:"1px solid var(--border-color)",paddingTop:"10px",marginTop:"4px"},className:"jsx-e14a739e99b2fa31",children:(0,a.jsxs)("span",{className:"jsx-e14a739e99b2fa31",children:["信道评级: ",(0,a.jsx)("strong",{style:{color:z>=90?"var(--success-color)":"var(--warning-color)"},className:"jsx-e14a739e99b2fa31",children:z>=90?"极佳 (Excellent)":"良好 (Fair)"})]})})]})]}),(0,a.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",justifyContent:"space-between",gap:"16px",background:"var(--bg-card)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",padding:"12px 18px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"16px",flex:1,minWidth:"280px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{position:"relative",width:"220px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("input",{type:"text",value:n,onChange:e=>i(e.target.value),placeholder:"搜索文件名 / 对等伙伴...",style:{width:"100%",background:"var(--bg-item)",border:"1px solid var(--border-color)",borderRadius:"6px",padding:"8px 12px 8px 34px",color:"var(--text-primary)",fontSize:"0.82rem",outline:"none",transition:"all 0.2s",fontFamily:"inherit"},onFocus:e=>{e.target.style.borderColor="var(--accent-color)",e.target.style.boxShadow="0 0 0 2px var(--accent-glow)",e.target.style.background="var(--bg-sidebar)"},onBlur:e=>{e.target.style.borderColor="var(--border-color)",e.target.style.boxShadow="none",e.target.style.background="var(--bg-item)"},className:"jsx-e14a739e99b2fa31"}),(0,a.jsx)(_.A,{size:14,style:{position:"absolute",left:"12px",top:"50%",transform:"translateY(-50%)",color:"var(--text-muted)"}})]}),(0,a.jsx)("div",{style:{display:"flex",background:"rgba(0, 0, 0, 0.03)",borderRadius:"6px",padding:"2px",border:"1px solid var(--border-color)"},className:"jsx-e14a739e99b2fa31",children:["all","send","receive","completed","failed"].map(e=>{let r={all:"全部",send:"发送",receive:"接收",completed:"已落地",failed:"异常/拒绝"}[e],t=l===e;return(0,a.jsx)("button",{onClick:()=>b(e),style:{border:"none",background:t?"var(--bg-app)":"transparent",color:t?"var(--text-primary)":"var(--text-secondary)",fontWeight:t?600:500,fontSize:"0.78rem",padding:"6px 12px",borderRadius:"4px",cursor:"pointer",boxShadow:t?"0 1px 3px rgba(0, 0, 0, 0.05)":"none",transition:"all 0.15s"},className:"jsx-e14a739e99b2fa31",children:r},e)})})]}),o&&f.length>0&&(0,a.jsx)("div",{style:{position:"relative"},className:"jsx-e14a739e99b2fa31",children:m?(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--error-color)",display:"flex",alignItems:"center",gap:"4px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)(k.A,{size:12}),"物理抹除全部?"]}),(0,a.jsx)("button",{onClick:()=>{o(),u(!1)},style:{background:"var(--error-color)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"0.72rem",padding:"4px 8px",cursor:"pointer",fontWeight:600},className:"jsx-e14a739e99b2fa31",children:"确认"}),(0,a.jsx)("button",{onClick:()=>u(!1),style:{background:"rgba(128, 128, 128, 0.08)",color:"var(--text-secondary)",border:"1px solid var(--border-color)",borderRadius:"4px",fontSize:"0.72rem",padding:"4px 8px",cursor:"pointer"},className:"jsx-e14a739e99b2fa31",children:"取消"})]}):(0,a.jsxs)("button",{onClick:()=>u(!0),style:{background:"transparent",border:"1px solid var(--border-color)",color:"var(--text-secondary)",borderRadius:"6px",padding:"8px 12px",fontSize:"0.78rem",fontWeight:500,display:"flex",alignItems:"center",gap:"6px",cursor:"pointer",transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--error-color)",e.currentTarget.style.borderColor="rgba(239, 68, 68, 0.3)",e.currentTarget.style.background="rgba(239, 68, 68, 0.02)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-secondary)",e.currentTarget.style.borderColor="var(--border-color)",e.currentTarget.style.background="transparent"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)(X.A,{size:13}),"清空物理记录"]})})]}),(0,a.jsxs)(c,{style:{padding:"24px",background:"var(--bg-card)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)"},children:[(0,a.jsxs)("h3",{style:{fontSize:"0.92rem",fontWeight:700,borderBottom:"1px solid var(--border-color)",paddingBottom:"14px",color:"var(--text-primary)",letterSpacing:"-0.01em",display:"flex",justifyContent:"space-between",alignItems:"center"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{className:"jsx-e14a739e99b2fa31",children:"局域网对等体互传历史归档"}),(0,a.jsxs)("span",{style:{fontSize:"0.75rem",fontWeight:500,color:"var(--text-muted)"},className:"jsx-e14a739e99b2fa31",children:["已过滤出 ",I.length," 项记录"]})]}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"12px",marginTop:"16px"},className:"jsx-e14a739e99b2fa31",children:0===I.length?(0,a.jsxs)("div",{style:{padding:"80px 0",textAlign:"center",opacity:.7},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)(Z.A,{size:32,style:{color:"var(--text-muted)",margin:"0 auto 12px auto",opacity:.5}}),(0,a.jsx)("p",{style:{fontSize:"0.82rem",color:"var(--text-secondary)",fontWeight:500},className:"jsx-e14a739e99b2fa31",children:""!==n.trim()?"未搜索到匹配的历史物理传输记录":"当前尚无任何物理传输历史记录"})]}):I.map(e=>{let r,s="completed"===e.status,o="rejected"===e.status,n=e.senderName||"未知发送端",i=e.senderIp||"127.0.0.1",l=e.senderOS||"Windows",d=e.receiverName||"未知接收端",c=e.receiverIp||"127.0.0.1",p=e.receiverOS||"Windows",x=C(l),g=C(p);return(0,a.jsxs)("div",{style:{padding:"16px 20px",background:"rgba(0, 0, 0, 0.01)",border:"1px solid var(--border-color)",borderRadius:"8px",display:"flex",flexDirection:"column",gap:"14px",transition:"all 0.2s ease-in-out",position:"relative",overflow:"hidden"},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--border-color-hover)",e.currentTarget.style.boxShadow="0 4px 16px rgba(0, 0, 0, 0.03)",e.currentTarget.style.transform="translateY(-1px)";let r=e.currentTarget.querySelector(".delete-btn");r&&(r.style.opacity="1")},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border-color)",e.currentTarget.style.boxShadow="none",e.currentTarget.style.transform="none";let r=e.currentTarget.querySelector(".delete-btn");r&&(r.style.opacity="0")},className:"jsx-e14a739e99b2fa31 history-row",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"16px",flexWrap:"wrap"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px",minWidth:"170px",flex:1},className:"jsx-e14a739e99b2fa31",children:[T(n),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"3px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:700,color:"var(--text-primary)"},className:"jsx-e14a739e99b2fa31",children:n}),(0,a.jsxs)("span",{style:{fontSize:"0.62rem",fontWeight:600,padding:"2px 6px",borderRadius:"4px",display:"flex",alignItems:"center",gap:"3px"},className:"jsx-e14a739e99b2fa31 "+(x.className||""),children:[x.icon,x.label]})]}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)",fontFamily:"var(--font-mono)"},className:"jsx-e14a739e99b2fa31",children:["IP: ",i]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"4px",flex:2,minWidth:"150px",position:"relative"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("svg",{width:"100%",height:"8",viewBox:"0 0 200 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{overflow:"visible"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("path",{d:"M0 4H200",stroke:s?"var(--success-color)":o?"var(--warning-color)":"var(--error-color)",strokeWidth:"1.5",strokeDasharray:"6 4",style:{opacity:.6,animation:"dash 15s linear infinite"},className:"jsx-e14a739e99b2fa31"}),(0,a.jsx)("circle",{cx:s?"180":"100",cy:"4",r:"2.5",fill:s?"var(--success-color)":o?"var(--warning-color)":"var(--error-color)",style:{animation:"ping 1.5s cubic-bezier(0, 0, 0.2, 1) infinite"},className:"jsx-e14a739e99b2fa31"})]}),(0,a.jsx)("div",{style:{display:"flex",alignItems:"center",gap:"4px",padding:"3px 8px",borderRadius:"20px",fontSize:"0.68rem",fontWeight:600,background:s?"var(--success-glow)":o?"rgba(245, 158, 11, 0.08)":"var(--error-glow)",border:`1px solid ${s?"rgba(16, 185, 129, 0.2)":o?"rgba(245, 158, 11, 0.2)":"rgba(239, 68, 68, 0.2)"}`,color:s?"var(--success-color)":o?"var(--warning-color)":"var(--error-color)"},className:"jsx-e14a739e99b2fa31",children:s?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(j.A,{size:10}),(0,a.jsx)("span",{className:"jsx-e14a739e99b2fa31",children:"物理下载落地"})]}):o?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(er.A,{size:10}),(0,a.jsx)("span",{className:"jsx-e14a739e99b2fa31",children:"接收端拒绝"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(w.A,{size:10}),(0,a.jsx)("span",{className:"jsx-e14a739e99b2fa31",children:"信道中断/异常"})]})})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px",minWidth:"170px",flex:1,justifyContent:"flex-end",textAlign:"right"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"3px",alignItems:"flex-end"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("span",{style:{fontSize:"0.62rem",fontWeight:600,padding:"2px 6px",borderRadius:"4px",display:"flex",alignItems:"center",gap:"3px"},className:"jsx-e14a739e99b2fa31 "+(g.className||""),children:[g.icon,g.label]}),(0,a.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:700,color:"var(--text-primary)"},className:"jsx-e14a739e99b2fa31",children:d})]}),(0,a.jsxs)("span",{style:{fontSize:"0.72rem",color:"var(--text-secondary)",fontFamily:"var(--font-mono)"},className:"jsx-e14a739e99b2fa31",children:["IP: ",c]})]}),T(d)]})]}),(0,a.jsx)("div",{style:{borderTop:"1px solid var(--border-color)",margin:"2px 0"},className:"jsx-e14a739e99b2fa31"}),(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:"0.75rem",color:"var(--text-secondary)",flexWrap:"wrap",gap:"12px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("span",{style:{fontWeight:600,color:"var(--text-primary)"},className:"jsx-e14a739e99b2fa31",children:e.fileName}),(0,a.jsxs)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)"},className:"jsx-e14a739e99b2fa31",children:["(",(e=>{if(0===e)return"0 Bytes";let r=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,r)).toFixed(2))+" "+["Bytes","KB","MB","GB","TB"][r]})(e.fileSize),")"]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},className:"jsx-e14a739e99b2fa31",children:[(0,a.jsx)("div",{style:{color:"var(--text-muted)"},className:"jsx-e14a739e99b2fa31",children:(r=new Date(e.startedAt),`${r.getFullYear()}-${String(r.getMonth()+1).padStart(2,"0")}-${String(r.getDate()).padStart(2,"0")} ${String(r.getHours()).padStart(2,"0")}:${String(r.getMinutes()).padStart(2,"0")}:${String(r.getSeconds()).padStart(2,"0")}`)}),t&&(0,a.jsx)("button",{onClick:()=>t(e.id),title:"从本地数据库中彻底抹除此记录",style:{background:"transparent",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:"4px",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",opacity:0,transition:"all 0.2s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--error-color)",e.currentTarget.style.background="rgba(239, 68, 68, 0.08)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent"},className:"jsx-e14a739e99b2fa31 delete-btn",children:(0,a.jsx)(X.A,{size:13})})]})]})]},e.id)})})]}),(0,a.jsx)(d(),{id:"e14a739e99b2fa31",children:"@keyframes dash{to{stroke-dashoffset:-1000}}@keyframes ping{75%,100%{transform:scale(2.2);opacity:0}}"})]})}var ea=t(2902),es=t(8371),eo=t(6573),en=t(3516),ei=t(6606),el=t(9651),ed=t(3690),ec=t(1805),ep=t(3731),ex=t(7255),eg=t(8893),eb=t(3739),em=t(2006),eu=t(7044),ef=t(5922),eh=t(3908),ey=t(3342),ev=t(9956),ej=t(3009),ew=t(7522),ek=t(684),eS=t(6692),eN=t(9131),ez=t(9331),eI=t(6498),eC=t(8043),eT=t(5665),eA=t(3703),eR=t(2380),eW=t(4221),eD=t.n(eW);t(9700),t(5749),t(8053),t(7156),t(6298),t(7318),t(2078),t(9085),t(1475),t(5303),t(8411),t(4042),t(3358),t(259),t(5771),t(3487),t(4590);let eM=ea.YY.create({name:"markdownPaste",addProseMirrorPlugins(){return[new ed.k_({key:new ed.hs("markdownPaste"),props:{handlePaste:(e,r)=>{let t=r.clipboardData?.getData("text/plain");if(!t)return!1;let a=/^\s*(?:#+\s|-+\s|\*+\s|>+\s|```)/m.test(t)||t.includes("**")||t.includes("`"),s=this.editor.storage.markdown?.parser;if(a&&s)try{let r=s.parse(t),a=document.createElement("div");a.innerHTML=r;let o=el.S4.fromSchema(e.state.schema).parseSlice(a,{preserveWhitespace:!0}),n=e.state.tr.replaceSelection(o);return e.dispatch(n),!0}catch(e){console.error("[KB] 自定义 Extension 粘贴 Markdown 解析失败:",e)}return!1}}})]}}),e$=({peers:e,self:r})=>{let t,[n,l]=(0,s.useState)([]),[d,p]=(0,s.useState)(null),[x,g]=(0,s.useState)("split"),b=(0,s.useRef)(null),m=async e=>{let r=e.target.files?.[0];if(!r||!eW||!el)return;let t=new FileReader;t.onload=async e=>{let t=e.target?.result;if("string"!=typeof t)return;eW.commands.setContent(t),k(t),z(t);let a=r.name.replace(/\.md$/i,"");a?(j(a),ed.current=a,eH(a,t)):eH(ed.current,t)},t.readAsText(r),e.target.value=""},[u,f]=(0,s.useState)(!1);(0,s.useEffect)(()=>{f("true"===localStorage.getItem("kb_sidebar_collapsed"))},[]);let h=()=>{let e=!u;f(e),localStorage.setItem("kb_sidebar_collapsed",String(e))},[v,j]=(0,s.useState)(""),[w,k]=(0,s.useState)(""),[N,z]=(0,s.useState)(""),[I,C]=(0,s.useState)(!0);(0,s.useEffect)(()=>{C("false"!==localStorage.getItem("kb_outline_open"))},[]);let T=()=>{let e=!I;C(e),localStorage.setItem("kb_outline_open",String(e)),e&&(f(!0),localStorage.setItem("kb_sidebar_collapsed","true"))},[A,R]=(0,s.useState)(null),[W,D]=(0,s.useState)(""),[M,$]=(0,s.useState)(new Set),[E,B]=(0,s.useState)(null),[F,L]=(0,s.useState)(null),[O,_]=(0,s.useState)(null),U=e=>{let r=n.filter(r=>r.parentId===e),t=r.map(e=>e.id);return r.forEach(e=>{"folder"===e.type&&(t=[...t,...U(e.id)])}),t},Y=async(e,r)=>{e.preventDefault();let t=e.dataTransfer.getData("text/plain")||F;t&&"folder"===r.type&&t!==r.id&&(U(t).includes(r.id)||await V(t,r.id)),L(null),_(null)},q=()=>{L(null),_(null)},K=(e,r)=>{r&&r.stopPropagation(),$(r=>{let t=new Set(r);return t.has(e)?t.delete(e):t.add(e),t})},V=async(e,t)=>{let a=n.find(r=>r.id===e);if(!a||!r)return;let s={...a,parentId:t,senderId:r.id,senderName:r.nickname,senderAvatar:r.avatar,updatedAt:Date.now()};try{let r=await fetch("/api/documents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});(await r.json()).success&&(l(r=>r.map(r=>r.id===e?s:r)),d===e&&z(s.content),B(null),eU(s))}catch(e){console.error("[KB] 移动文档位置落盘失败:",e)}},G=async(e=null,t)=>{if(t&&t.stopPropagation(),!r)return;let a=i(),s={id:a,title:"未命名云文件夹",content:"",type:"folder",parentId:e,senderId:r.id,senderName:r.nickname,senderAvatar:r.avatar,createdAt:Date.now(),updatedAt:Date.now()};try{let r=await fetch("/api/documents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});(await r.json()).success&&(l(e=>e.some(e=>e.id===a)?e:[s,...e]),e&&$(r=>{let t=new Set(r);return t.add(e),t}),R(a),D("未命名云文件夹"),eU(s))}catch(e){console.error("[KB] 创建文件夹物理写入失败:",e)}},[Z,Q]=(0,s.useState)("saved"),[ee,er]=(0,s.useState)(null);(0,s.useRef)(null);let et=(0,s.useRef)(null),ea=(0,s.useRef)(null),el=n.find(e=>e.id===d)||null,ed=(0,s.useRef)(v);(0,s.useEffect)(()=>{ed.current=v},[v]);let eW=(0,es.hG)({extensions:[eo.A,en.o.configure({html:!1,linkify:!0,transformPastedText:!0,transformCopiedText:!0}),ei.A.configure({placeholder:"在这里开始书写飞书般的文档协作体验,输入 Markdown 标识符即时渲染...",emptyEditorClass:"is-editor-empty"}),eM],content:el?el.content:"",editorProps:{attributes:{class:"ProseMirror"}},onUpdate:({editor:e})=>{let r=e.storage.markdown.getMarkdown();k(r),eH(ed.current,r),ea.current&&clearTimeout(ea.current),ea.current=setTimeout(()=>{z(r)},300)}});(0,s.useEffect)(()=>{eW&&el&&eW.storage.markdown.getMarkdown()!==el.content&&eW.commands.setContent(el.content)},[el?.content,eW]);let e$=async()=>{try{let e=await fetch("/api/documents"),r=await e.json();r.success&&r.documents&&(l(r.documents),r.documents.length>0&&!d&&eE(r.documents[0]))}catch(e){console.error("[KB] 载入文档列表失败:",e)}};(0,s.useEffect)(()=>{e$();let e=o.getInstance(),t=e.subscribe("documents:update",e=>{l(r=>{let t=r.filter(r=>r.id!==e.id);return[e,...t].sort((e,r)=>r.updatedAt-e.updatedAt)}),d===e.id&&e.senderId!==r?.id&&(j(e.title),k(e.content),z(e.content),Q("saved"))}),a=e.subscribe("documents:delete",e=>{l(r=>r.filter(r=>r.id!==e.id)),d===e.id&&(p(null),j(""),k(""),z(""))});return()=>{t(),a()}},[d,r]),(0,s.useEffect)(()=>{("split"===x||"read"===x)&&setTimeout(()=>eD().highlightAll(),50)},[x,d,N]);let eE=e=>{p(e.id),j(e.title),k(e.content),z(e.content),Q("saved"),g("split")},eB=e=>{if(!e)return[];let r=e.split("\n"),t=[],a=!1;return r.forEach((e,r)=>{let s=e.trim();if(s.startsWith("```")){a=!a;return}!a&&(s.startsWith("# ")?t.push({id:`toc-${r}`,text:s.substring(2).trim(),level:1}):s.startsWith("## ")?t.push({id:`toc-${r}`,text:s.substring(3).trim(),level:2}):s.startsWith("### ")?t.push({id:`toc-${r}`,text:s.substring(4).trim(),level:3}):s.startsWith("#### ")&&t.push({id:`toc-${r}`,text:s.substring(5).trim(),level:4}))}),t},eF=(0,s.useMemo)(()=>{let e,r,t;if(0===n.length)return(0,a.jsx)("div",{style:{padding:"40px 16px",textAlign:"center",color:"var(--text-muted)",fontSize:"0.75rem"},children:"无任何知识库文档"});let s=(e={},n.forEach(r=>{e[r.id]={doc:r,children:[]}}),r=[],n.forEach(t=>{let a=e[t.id];t.parentId&&e[t.parentId]?e[t.parentId].children.push(a):r.push(a)}),(t=e=>{e.sort((e,r)=>{let t=e.doc.type||"file",a=r.doc.type||"file";return"folder"===t&&"folder"!==a?-1:"folder"!==t&&"folder"===a?1:r.doc.updatedAt-e.doc.updatedAt}),e.forEach(e=>{e.children.length>0&&t(e.children)})})(r),r),o=e=>{if(!n.find(r=>r.id===e))return[];let r=e=>{let t=n.filter(r=>r.parentId===e),a=t.map(e=>e.id);return t.forEach(e=>{"folder"===e.type&&(a=[...a,...r(e.id)])}),a},t=[e,...r(e)];return n.filter(e=>"folder"===e.type&&!t.includes(e.id))},i=(e,r=0)=>{let{doc:t,children:s}=e,n=t.id===d,l=t.id===A,c="folder"===t.type,x=M.has(t.id),g=E===t.id,b=12*r;return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,a.jsxs)("div",{draggable:!l,onDragStart:e=>{var r;return r=t.id,void(e.dataTransfer.setData("text/plain",r),L(r))},onDragOver:e=>{e.preventDefault(),"folder"===t.type&&t.id!==F&&!U(F||"").includes(t.id)&&_(t.id)},onDragLeave:e=>{O===t.id&&_(null)},onDrop:e=>Y(e,t),onDragEnd:q,onClick:()=>{l||(c?(K(t.id),p(t.id),j(t.title),k(t.content),z(t.content),Q("saved")):eE(t))},style:{padding:"6px 8px 6px 12px",marginLeft:`${b}px`,borderRadius:"var(--radius-sm)",background:O===t.id?"rgba(234, 179, 8, 0.15)":n?"var(--kb-item-selected-bg)":"transparent",cursor:l?"default":"grab",display:"flex",alignItems:"center",justifyContent:"space-between",transition:"all 0.15s",position:"relative",border:O===t.id?"1px dashed #CA8A04":n?"1px solid var(--kb-item-selected-border)":"1px solid transparent",boxShadow:O===t.id?"0 0 10px rgba(234, 179, 8, 0.25)":"none",opacity:F===t.id?.35:1,marginTop:"2px",minHeight:"34px"},onMouseEnter:e=>{n||O===t.id||(e.currentTarget.style.background="var(--kb-item-hover-bg)");let r=e.currentTarget.querySelector(".doc-actions");r&&(r.style.opacity="1")},onMouseLeave:e=>{n||O===t.id||(e.currentTarget.style.background="transparent");let r=e.currentTarget.querySelector(".doc-actions");r&&(r.style.opacity="0")},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px",flex:1,overflow:"hidden"},children:[c?(0,a.jsx)("span",{style:{display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",cursor:"pointer",width:"14px",height:"14px",borderRadius:"2px",transition:"background 0.1s"},onClick:e=>{e.stopPropagation(),K(t.id)},onMouseEnter:e=>{e.currentTarget.style.background="rgba(255, 255, 255, 0.08)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:x?(0,a.jsx)(ec.A,{size:12}):(0,a.jsx)(ep.A,{size:12})}):(0,a.jsx)("span",{style:{width:"14px",display:"inline-block"}}),c?x?(0,a.jsx)(P.A,{size:14,style:{color:"#EAB308",flexShrink:0}}):(0,a.jsx)(ex.A,{size:14,style:{color:"#CA8A04",flexShrink:0}}):(0,a.jsx)(eg.A,{size:14,style:{color:n?"var(--accent-color)":"var(--text-secondary)",flexShrink:0}}),l?(0,a.jsx)("input",{type:"text",value:W,onChange:e=>D(e.target.value),onBlur:()=>e_(t),onKeyDown:e=>"Enter"===e.key&&e_(t),autoFocus:!0,onClick:e=>e.stopPropagation(),style:{background:"var(--bg-app)",border:"1px solid var(--accent-color)",color:"var(--text-primary)",fontSize:"0.8rem",padding:"2px 4px",borderRadius:"4px",width:"100%",outline:"none"}}):(0,a.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:(0,a.jsx)("span",{style:{fontSize:"0.825rem",fontWeight:n||c&&x?600:400,color:n?"var(--text-primary)":"var(--text-secondary)"},children:t.title})})]}),!l&&(0,a.jsxs)("div",{className:"doc-actions",style:{display:"flex",alignItems:"center",gap:"2px",opacity:0,transition:"opacity 0.15s",marginLeft:"6px",flexShrink:0},children:[c&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),eL(t.id)},title:"新建子文档",style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",padding:"2px",borderRadius:"2px"},children:(0,a.jsx)(eb.A,{size:11})}),(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),G(t.id,e)},title:"新建子文件夹",style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",padding:"2px",borderRadius:"2px"},children:(0,a.jsx)(em.A,{size:11})})]}),(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),B(g?null:t.id)},title:"移动归属...",style:{background:"transparent",border:"none",color:g?"var(--accent-color)":"var(--text-secondary)",cursor:"pointer",padding:"2px"},children:(0,a.jsx)(eu.A,{size:11})}),(0,a.jsx)("button",{onClick:e=>eP(t,e),title:"重命名",style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",padding:"2px"},children:(0,a.jsx)(ef.A,{size:11})}),(0,a.jsx)("button",{onClick:e=>eO(t.id,e),title:"删除",style:{background:"transparent",border:"none",color:"var(--error-color)",cursor:"pointer",padding:"2px"},children:(0,a.jsx)(X.A,{size:11})})]})]}),g&&(0,a.jsxs)("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border-color)",borderRadius:"6px",padding:"6px",margin:"4px 8px 6px",marginLeft:`${b+12}px`,boxShadow:"var(--shadow-md)",zIndex:10,display:"flex",flexDirection:"column",gap:"4px"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{style:{fontSize:"0.65rem",color:"var(--text-muted)",fontWeight:600,padding:"2px 4px",borderBottom:"1px solid var(--border-color)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,a.jsx)("span",{children:"移动至文件夹:"}),(0,a.jsx)("button",{onClick:()=>B(null),style:{background:"transparent",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:"0.65rem"},children:"取消"})]}),(0,a.jsxs)("div",{style:{maxHeight:"160px",overflowY:"auto",display:"flex",flexDirection:"column",gap:"2px",marginTop:"2px"},children:[null!==t.parentId&&(0,a.jsxs)("button",{onClick:()=>V(t.id,null),style:{background:"transparent",border:"none",color:"var(--accent-color)",textAlign:"left",padding:"4px 6px",fontSize:"0.72rem",cursor:"pointer",borderRadius:"4px",fontWeight:600,display:"flex",alignItems:"center",gap:"4px"},onMouseEnter:e=>e.currentTarget.style.background="rgba(59, 130, 246, 0.08)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,a.jsx)(eh.A,{size:11}),"[ 根目录 ]"]}),o(t.id).map(e=>{let r=t.parentId===e.id;return(0,a.jsxs)("button",{disabled:r,onClick:()=>V(t.id,e.id),style:{background:"transparent",border:"none",color:r?"var(--text-muted)":"var(--text-primary)",textAlign:"left",padding:"4px 6px",fontSize:"0.72rem",cursor:r?"not-allowed":"pointer",borderRadius:"4px",display:"flex",alignItems:"center",gap:"4px",opacity:r?.5:1},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--kb-item-hover-bg)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="transparent")},children:[(0,a.jsx)(ex.A,{size:11,style:{color:"#CA8A04"}}),e.title]},e.id)}),0===o(t.id).length&&null===t.parentId&&(0,a.jsx)("div",{style:{padding:"8px",textAlign:"center",fontSize:"0.65rem",color:"var(--text-muted)",fontStyle:"italic"},children:"暂无其他备选文件夹"})]})]}),c&&x&&s.length>0&&(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:s.map(e=>i(e,r+1))}),c&&x&&0===s.length&&(0,a.jsxs)("div",{style:{padding:"6px 8px 6px 12px",marginLeft:`${b+28}px`,fontSize:"0.65rem",color:"var(--text-muted)",fontStyle:"italic",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(ey.A,{size:10,style:{opacity:.5}}),"此文件夹为空"]})]},t.id)};return s.map(e=>i(e,0))},[n,d,A,W,M,E]),eL=async(e=null)=>{if(!r)return;let t=i(),a={id:t,title:"未命名云文档",content:"# 未命名云文档\n\n在这里开始书写飞书般的文档协作体验...\n\n你可以通过上方工具栏插入代码块。",type:"file",parentId:e,senderId:r.id,senderName:r.nickname,senderAvatar:r.avatar,createdAt:Date.now(),updatedAt:Date.now()};try{let r=await fetch("/api/documents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});(await r.json()).success&&(l(e=>e.some(e=>e.id===t)?e:[a,...e]),e&&$(r=>{let t=new Set(r);return t.add(e),t}),eE(a),g("split"),eU(a))}catch(e){console.error("[KB] 创建文档物理写入失败:",e)}},eO=async(r,t)=>{t.stopPropagation();let a=n.find(e=>e.id===r);if(!a)return;let s=[r],o="确定要删除这篇云文档吗?物理文件也将被一并清理!";if("folder"===a.type){let e=r=>{let t=n.filter(e=>e.parentId===r),a=t.map(e=>e.id);return t.forEach(r=>{"folder"===r.type&&(a=[...a,...e(r.id)])}),a},t=e(r);s=[r,...t],o=`确定要删除此文件夹《${a.title}》吗?其内部包含的 ${t.length} 个子文档/文件夹都将被一并物理删除!`}if(confirm(o))try{let r=!0;for(let e of s){let t=await fetch(`/api/documents?id=${e}`,{method:"DELETE"});(await t.json()).success||(r=!1)}r&&(l(e=>e.filter(e=>!s.includes(e.id))),s.includes(d||"")&&(p(null),j(""),k(""),z("")),s.forEach(r=>{e.forEach(async e=>{try{await fetch(`http://${e.ip}:${e.port}/api/documents?id=${r}`,{method:"DELETE"})}catch(r){console.error(`[KB] 向节点 ${e.nickname} 发起同步删除失败:`,r)}})}))}catch(e){console.error("[KB] 删除文档物理操作失败:",e)}},eP=(e,r)=>{r.stopPropagation(),R(e.id),D(e.title)},e_=async e=>{if(!W.trim()||!r)return void R(null);let t={...e,title:W.trim(),senderId:r.id,senderName:r.nickname,senderAvatar:r.avatar,updatedAt:Date.now()};try{let r=await fetch("/api/documents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});(await r.json()).success&&(l(r=>r.map(r=>r.id===e.id?t:r)),d===e.id&&j(t.title),R(null),eU(t))}catch(e){console.error("[KB] 重命名文档落盘失败:",e)}},eU=r=>{console.log(`[KB] 正在向局域网广播同步文档《${r.title}》. 接收端数: ${e.length}`),e.forEach(async e=>{try{await fetch(`http://${e.ip}:${e.port}/api/documents/sync`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}catch(r){console.warn(`[KB] 向节点 ${e.nickname} (${e.ip}) 投递文档同步失败:`,r)}})},eH=(e,t)=>{if(!d||!r)return;let a=el?.type==="folder";Q("dirty"),et.current&&clearTimeout(et.current),et.current=setTimeout(async()=>{Q("saving");let s={...el,id:d,title:e.trim()||"无标题文档",content:a?"":t,senderId:r.id,senderName:r.nickname,senderAvatar:r.avatar,createdAt:el?.createdAt||Date.now(),updatedAt:Date.now()};try{let e=await fetch("/api/documents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});(await e.json()).success&&(Q("saved"),l(e=>e.map(e=>e.id===d?s:e)),eU(s))}catch(e){console.error("[KB] 自动保存出错:",e),Q("dirty")}},1e3)};(0,s.useEffect)(()=>()=>{et.current&&clearTimeout(et.current),ea.current&&clearTimeout(ea.current)},[]);let eY=e=>{let r=e.target.value;j(r),eH(r,eW?eW.storage.markdown.getMarkdown():w)},eq=(e,r)=>{navigator.clipboard.writeText(e),er(r),setTimeout(()=>er(null),2e3)};return(0,a.jsxs)(c,{style:{display:"flex",flexDirection:"row",gap:"0px",padding:"0px",overflow:"hidden",height:"calc(100vh - 120px)",background:"var(--bg-card)",backdropFilter:"blur(20px)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-lg)"},children:[(0,a.jsxs)("div",{style:{width:u?"0px":"280px",borderRight:u?"none":"1px solid var(--border-color)",display:"flex",flexDirection:"column",background:"var(--kb-sidebar-bg)",height:"100%",transition:"width 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease-out, border-color 0.3s",opacity:+!u,pointerEvents:u?"none":"auto",overflow:"hidden"},children:[(0,a.jsxs)("div",{style:{padding:"16px 16px 10px 16px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,a.jsxs)("span",{style:{fontSize:"0.85rem",fontWeight:600,color:"var(--text-secondary)",display:"flex",alignItems:"center",gap:"6px",overflow:"hidden",whiteSpace:"nowrap"},children:[(0,a.jsx)(eh.A,{size:14,style:{color:"var(--accent-color)",flexShrink:0}}),"共享知识库 (",n.length,")"]}),(0,a.jsx)("button",{onClick:h,title:"收起知识库目录",style:{background:"transparent",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:"4px",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(128, 128, 128, 0.08)",e.currentTarget.style.color="var(--text-primary)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:(0,a.jsx)(ej.A,{size:15})})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"8px",padding:"0 16px 12px 16px",borderBottom:"1px solid var(--border-color)"},children:[(0,a.jsxs)(y,{variant:"primary",onClick:()=>eL(null),style:{flex:1,height:"30px",fontSize:"0.75rem",display:"flex",alignItems:"center",justifyContent:"center",gap:"6px",background:"linear-gradient(135deg, var(--accent-color), #2563EB)",boxShadow:"0 2px 6px rgba(59, 130, 246, 0.2)",border:"none",color:"#FFF",cursor:"pointer"},children:[(0,a.jsx)(eb.A,{size:12}),"新建文档"]}),(0,a.jsxs)("button",{onClick:e=>G(null,e),style:{flex:1,height:"30px",fontSize:"0.75rem",display:"flex",alignItems:"center",justifyContent:"center",gap:"6px",background:"rgba(234, 179, 8, 0.08)",border:"1px solid rgba(234, 179, 8, 0.2)",color:"#EAB308",borderRadius:"var(--radius-sm)",cursor:"pointer",fontWeight:600,transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(234, 179, 8, 0.14)",e.currentTarget.style.borderColor="rgba(234, 179, 8, 0.4)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(234, 179, 8, 0.08)",e.currentTarget.style.borderColor="rgba(234, 179, 8, 0.2)"},children:[(0,a.jsx)(em.A,{size:12}),"新建文件夹"]})]}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"12px 8px",display:"flex",flexDirection:"column",gap:"4px"},children:[eF,F&&(0,a.jsxs)("div",{onDragOver:e=>{e.preventDefault(),e.currentTarget.style.background="rgba(59, 130, 246, 0.12)",e.currentTarget.style.borderColor="var(--accent-color)",e.currentTarget.style.color="var(--text-primary)",e.currentTarget.style.boxShadow="0 0 10px rgba(59, 130, 246, 0.15)"},onDragLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.borderColor="var(--border-color)",e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.boxShadow="none"},onDrop:async e=>{e.preventDefault(),F&&await V(F,null),L(null),_(null)},style:{margin:"16px 8px 8px 8px",padding:"12px",border:"1.5px dashed var(--border-color)",borderRadius:"var(--radius-md)",textAlign:"center",fontSize:"0.72rem",color:"var(--text-muted)",cursor:"pointer",transition:"all 0.25s cubic-bezier(0.16, 1, 0.3, 1)",display:"flex",alignItems:"center",justifyContent:"center",gap:"6px",minHeight:"44px",animation:"slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards"},children:[(0,a.jsx)(eh.A,{size:12,style:{opacity:.7}}),(0,a.jsx)("span",{children:"✨ 放置于此移动到根目录"})]})]})]}),(0,a.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",height:"100%",background:"transparent"},children:d&&el?"folder"===el.type?(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",borderBottom:"1px solid var(--border-color)",background:"rgba(0, 0, 0, 0.05)"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[u&&(0,a.jsx)("button",{onClick:h,title:"展开共享知识库目录",style:{background:"rgba(128, 128, 128, 0.06)",border:"1px solid var(--border-color)",color:"var(--text-secondary)",cursor:"pointer",padding:"6px",borderRadius:"var(--radius-sm)",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s"},children:(0,a.jsx)(ew.A,{size:15})}),"saved"===Z&&(0,a.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--success-color)",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(ek.A,{size:13}),"已自动保存文件夹信息"]}),"saving"===Z&&(0,a.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--accent-color)",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)("span",{className:"saving-spinner",style:{width:"10px",height:"10px",border:"2px solid var(--accent-color)",borderTopColor:"transparent",borderRadius:"50%",display:"inline-block",animation:"spin 1s linear infinite"}}),"保存中..."]}),"dirty"===Z&&(0,a.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(eS.A,{size:13}),"有修改未保存..."]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,a.jsxs)(y,{variant:"primary",onClick:()=>eL(el.id),style:{padding:"6px 12px",fontSize:"0.75rem",height:"28px",display:"flex",alignItems:"center",gap:"4px",background:"linear-gradient(135deg, var(--accent-color), #2563EB)",boxShadow:"0 2px 8px rgba(59, 130, 246, 0.25)",border:"none",color:"#FFF",cursor:"pointer"},children:[(0,a.jsx)(eb.A,{size:13}),"新建子文档"]}),(0,a.jsxs)("button",{onClick:e=>G(el.id,e),style:{background:"rgba(234, 179, 8, 0.08)",border:"1px solid rgba(234, 179, 8, 0.2)",color:"#EAB308",cursor:"pointer",padding:"0 12px",borderRadius:"var(--radius-sm)",display:"flex",alignItems:"center",gap:"4px",transition:"all 0.2s",height:"28px",fontSize:"0.75rem",fontWeight:500},onMouseEnter:e=>{e.currentTarget.style.background="rgba(234, 179, 8, 0.15)",e.currentTarget.style.borderColor="rgba(234, 179, 8, 0.4)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(234, 179, 8, 0.08)",e.currentTarget.style.borderColor="rgba(234, 179, 8, 0.2)"},children:[(0,a.jsx)(em.A,{size:13}),"新建子文件夹"]}),(0,a.jsxs)("button",{onClick:e=>eO(el.id,e),style:{background:"rgba(239, 68, 68, 0.08)",border:"1px solid rgba(239, 68, 68, 0.2)",color:"var(--error-color)",cursor:"pointer",padding:"0 12px",borderRadius:"var(--radius-sm)",display:"flex",alignItems:"center",gap:"4px",transition:"all 0.2s",height:"28px",fontSize:"0.75rem",fontWeight:500},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239, 68, 68, 0.15)",e.currentTarget.style.borderColor="rgba(239, 68, 68, 0.4)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239, 68, 68, 0.08)",e.currentTarget.style.borderColor="rgba(239, 68, 68, 0.2)"},children:[(0,a.jsx)(X.A,{size:13}),"删除文件夹"]})]})]}),(0,a.jsxs)("div",{style:{flex:1,padding:"32px",overflowY:"auto",display:"flex",flexDirection:"column",gap:"24px"},children:[(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[(0,a.jsx)(P.A,{size:28,style:{color:"#EAB308",flexShrink:0,filter:"drop-shadow(0 2px 8px rgba(234, 179, 8, 0.3))"}}),(0,a.jsx)("input",{type:"text",value:v,onChange:eY,placeholder:"未命名云文件夹",style:{fontSize:"1.75rem",fontWeight:800,border:"none",background:"transparent",color:"var(--text-primary)",width:"100%",outline:"none",letterSpacing:"-0.02em"}})]}),(0,a.jsxs)("div",{style:{fontSize:"0.7rem",color:"var(--text-muted)",display:"flex",alignItems:"center",gap:"8px",paddingLeft:"38px"},children:[(0,a.jsxs)("span",{children:["创建时间: ",new Date(el.createdAt).toLocaleString()]}),(0,a.jsx)("span",{children:"\xb7"}),(0,a.jsxs)("span",{children:["最后修改者: ",el.senderName," (",new Date(el.updatedAt).toLocaleTimeString(),")"]}),(0,a.jsx)("span",{children:"\xb7"}),(0,a.jsxs)("span",{children:["子项数量: ",n.filter(e=>e.parentId===el.id).length," 项"]})]}),(0,a.jsx)("div",{style:{height:"1px",background:"var(--border-color)",marginTop:"16px"}})]}),((t=n.filter(e=>e.parentId===el.id)).sort((e,r)=>{let t=e.type||"file",a=r.type||"file";return"folder"===t&&"folder"!==a?-1:"folder"!==t&&"folder"===a?1:r.updatedAt-e.updatedAt}),0===t.length)?(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"60px 40px",color:"var(--text-muted)",background:"rgba(255, 255, 255, 0.01)",border:"1px dashed var(--border-color)",borderRadius:"var(--radius-lg)",marginTop:"20px"},children:[(0,a.jsx)(P.A,{size:48,style:{color:"rgba(234, 179, 8, 0.25)",marginBottom:"16px"}}),(0,a.jsx)("h4",{style:{fontSize:"0.95rem",color:"var(--text-secondary)",marginBottom:"8px",fontWeight:600},children:"当前文件夹为空"}),(0,a.jsx)("p",{style:{fontSize:"0.78rem",marginBottom:"20px",color:"var(--text-muted)",textAlign:"center",maxWidth:"320px",lineHeight:1.5},children:"在这个文件夹中尚无任何协作文档或子目录。点击下方按钮,立即开启属于您的专属局域网协同!"}),(0,a.jsxs)("div",{style:{display:"flex",gap:"10px"},children:[(0,a.jsxs)(y,{variant:"primary",onClick:()=>eL(el.id),style:{padding:"6px 14px",fontSize:"0.75rem",height:"28px",display:"flex",alignItems:"center",gap:"4px",background:"linear-gradient(135deg, var(--accent-color), #2563EB)",border:"none",color:"#FFF",cursor:"pointer"},children:[(0,a.jsx)(eb.A,{size:12}),"创建第一篇文档"]}),(0,a.jsxs)("button",{onClick:e=>G(el.id,e),style:{background:"rgba(234, 179, 8, 0.08)",border:"1px solid rgba(234, 179, 8, 0.2)",color:"#EAB308",cursor:"pointer",padding:"0 14px",borderRadius:"var(--radius-sm)",display:"flex",alignItems:"center",gap:"4px",transition:"all 0.2s",height:"28px",fontSize:"0.75rem",fontWeight:500},onMouseEnter:e=>{e.currentTarget.style.background="rgba(234, 179, 8, 0.15)",e.currentTarget.style.borderColor="rgba(234, 179, 8, 0.4)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(234, 179, 8, 0.08)",e.currentTarget.style.borderColor="rgba(234, 179, 8, 0.2)"},children:[(0,a.jsx)(em.A,{size:12}),"新建子目录"]})]})]}):(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(230px, 1fr))",gap:"16px",marginTop:"10px"},children:t.map(e=>{let r="folder"===e.type;return(0,a.jsxs)("div",{onClick:()=>{r&&$(r=>{let t=new Set(r);return t.add(e.id),t}),eE(e)},style:{padding:"16px",background:"var(--bg-card)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-md)",cursor:"pointer",transition:"all 0.2s ease",display:"flex",flexDirection:"column",gap:"12px",position:"relative",overflow:"hidden"},onMouseEnter:e=>{e.currentTarget.style.transform="translateY(-2px)",e.currentTarget.style.borderColor=r?"rgba(234, 179, 8, 0.4)":"rgba(59, 130, 246, 0.4)",e.currentTarget.style.boxShadow=r?"0 4px 12px rgba(234, 179, 8, 0.08)":"0 4px 12px rgba(59, 130, 246, 0.08)"},onMouseLeave:e=>{e.currentTarget.style.transform="none",e.currentTarget.style.borderColor="var(--border-color)",e.currentTarget.style.boxShadow="none"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[r?(0,a.jsx)(ex.A,{size:20,style:{color:"#CA8A04",flexShrink:0}}):(0,a.jsx)(eg.A,{size:20,style:{color:"var(--accent-color)",flexShrink:0}}),(0,a.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:600,color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:e.title})]}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"3px",marginTop:"4px"},children:[(0,a.jsxs)("div",{style:{fontSize:"0.65rem",color:"var(--text-muted)",display:"flex",justifyContent:"space-between"},children:[(0,a.jsxs)("span",{children:["类型: ",r?"文件夹":"云文档"]}),(0,a.jsxs)("span",{children:["作者: ",e.senderName]})]}),(0,a.jsxs)("div",{style:{fontSize:"0.65rem",color:"var(--text-muted)"},children:["修改时间: ",new Date(e.updatedAt).toLocaleString()]})]})]},e.id)})})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",borderBottom:"1px solid var(--border-color)",background:"rgba(0, 0, 0, 0.05)"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[u&&(0,a.jsx)("button",{onClick:h,title:"展开共享知识库目录",style:{background:"rgba(128, 128, 128, 0.06)",border:"1px solid var(--border-color)",color:"var(--text-secondary)",cursor:"pointer",padding:"6px",borderRadius:"var(--radius-sm)",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s",animation:"fadeIn 0.2s ease-out forwards",marginRight:"4px"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(128, 128, 128, 0.12)",e.currentTarget.style.borderColor="var(--border-color-hover)",e.currentTarget.style.color="var(--text-primary)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(128, 128, 128, 0.06)",e.currentTarget.style.borderColor="var(--border-color)",e.currentTarget.style.color="var(--text-secondary)"},children:(0,a.jsx)(ew.A,{size:15})}),"saved"===Z&&(0,a.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--success-color)",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(ek.A,{size:13}),"已自动保存落盘并同步局域网"]}),"saving"===Z&&(0,a.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--accent-color)",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)("span",{className:"saving-spinner",style:{width:"10px",height:"10px",border:"2px solid var(--accent-color)",borderTopColor:"transparent",borderRadius:"50%",display:"inline-block",animation:"spin 1s linear infinite"}}),"正在极速落盘同步..."]}),"dirty"===Z&&(0,a.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(eS.A,{size:13}),"有未保存改动..."]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"4px",background:"rgba(255, 255, 255, 0.03)",padding:"2px",borderRadius:"6px"},children:[(0,a.jsxs)("button",{onClick:()=>g("split"),style:{padding:"5px 12px",fontSize:"0.75rem",fontWeight:500,border:"none",background:"split"===x?"rgba(255, 255, 255, 0.06)":"transparent",color:"split"===x?"var(--text-primary)":"var(--text-secondary)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(eN.A,{size:12}),"实时分栏"]}),(0,a.jsxs)("button",{onClick:()=>g("write"),style:{padding:"5px 12px",fontSize:"0.75rem",fontWeight:500,border:"none",background:"write"===x?"rgba(255, 255, 255, 0.06)":"transparent",color:"write"===x?"var(--text-primary)":"var(--text-secondary)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(ez.A,{size:12}),"纯编辑"]}),(0,a.jsxs)("button",{onClick:()=>g("read"),style:{padding:"5px 12px",fontSize:"0.75rem",fontWeight:500,border:"none",background:"read"===x?"rgba(255, 255, 255, 0.06)":"transparent",color:"read"===x?"var(--text-primary)":"var(--text-secondary)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(J.A,{size:12}),"纯预览"]}),(0,a.jsx)("span",{style:{width:"1px",height:"14px",background:"var(--border-color)",margin:"0 8px"}}),(0,a.jsx)("input",{type:"file",accept:".md",style:{display:"none"},ref:b,onChange:m}),(0,a.jsxs)("button",{onClick:()=>{b.current?.click()},title:"导入本地 Markdown 内容并覆盖当前文档",style:{padding:"5px 12px",fontSize:"0.75rem",fontWeight:500,border:"none",background:"rgba(255, 255, 255, 0.04)",color:"var(--text-secondary)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px",transition:"all 0.2s",marginRight:"4px"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(255, 255, 255, 0.08)",e.currentTarget.style.color="var(--text-primary)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(255, 255, 255, 0.04)",e.currentTarget.style.color="var(--text-secondary)"},children:[(0,a.jsx)(S.A,{size:12}),"导入 MD"]}),(0,a.jsx)("span",{style:{width:"1px",height:"14px",background:"var(--border-color)",margin:"0 8px"}}),(0,a.jsxs)("button",{onClick:T,style:{padding:"5px 12px",fontSize:"0.75rem",fontWeight:500,border:"none",background:I?"rgba(59, 130, 246, 0.1)":"transparent",color:I?"var(--accent-color)":"var(--text-secondary)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px",transition:"all 0.2s"},children:[(0,a.jsx)(eN.A,{size:12,style:{transform:"rotate(90deg)"}}),I?"隐藏大纲":"显示大纲"]})]})]}),(0,a.jsxs)("div",{style:{padding:"20px 32px 0 32px",display:"flex",flexDirection:"column",gap:"6px"},children:[(0,a.jsx)("input",{type:"text",value:v,onChange:eY,disabled:"read"===x,placeholder:"请输入文档标题...",style:{fontSize:"1.75rem",fontWeight:800,border:"none",background:"transparent",color:"var(--text-primary)",width:"100%",outline:"none",letterSpacing:"-0.02em"}}),(0,a.jsxs)("div",{style:{fontSize:"0.7rem",color:"var(--text-muted)",display:"flex",alignItems:"center",gap:"8px"},children:[(0,a.jsxs)("span",{children:["创建时间: ",new Date(el.createdAt).toLocaleString()]}),(0,a.jsx)("span",{children:"\xb7"}),(0,a.jsxs)("span",{children:["最后修改者: ",el.senderName," (",new Date(el.updatedAt).toLocaleTimeString(),")"]})]}),(0,a.jsx)("div",{style:{height:"1px",background:"var(--border-color)",marginTop:"8px"}})]}),(0,a.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden",flexDirection:"row"},children:["read"!==x&&(0,a.jsxs)("div",{style:{flex:1,borderRight:"split"===x?"1px solid var(--border-color)":"none",display:"flex",flexDirection:"column",overflow:"hidden",transition:"all 0.2s"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px",padding:"6px 20px",background:"rgba(255, 255, 255, 0.01)",borderBottom:"1px solid var(--border-color)",overflowX:"auto"},children:[(0,a.jsx)("button",{onClick:()=>eW?.chain().focus().toggleBold().run(),title:"加粗",style:{background:eW?.isActive("bold")?"rgba(59, 130, 246, 0.1)":"transparent",border:"none",padding:"6px",borderRadius:"4px",cursor:"pointer",color:eW?.isActive("bold")?"var(--accent-color)":"var(--text-secondary)",transition:"all 0.15s"},children:(0,a.jsx)(eI.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>eW?.chain().focus().toggleItalic().run(),title:"斜体",style:{background:eW?.isActive("italic")?"rgba(59, 130, 246, 0.1)":"transparent",border:"none",padding:"6px",borderRadius:"4px",cursor:"pointer",color:eW?.isActive("italic")?"var(--accent-color)":"var(--text-secondary)",transition:"all 0.15s"},children:(0,a.jsx)(eC.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>eW?.chain().focus().toggleHeading({level:2}).run(),title:"二级标题",style:{background:eW?.isActive("heading",{level:2})?"rgba(59, 130, 246, 0.1)":"transparent",border:"none",padding:"6px",borderRadius:"4px",cursor:"pointer",color:eW?.isActive("heading",{level:2})?"var(--accent-color)":"var(--text-secondary)",transition:"all 0.15s"},children:(0,a.jsx)(eT.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>eW?.chain().focus().toggleBlockquote().run(),title:"引用块",style:{background:eW?.isActive("blockquote")?"rgba(59, 130, 246, 0.1)":"transparent",border:"none",padding:"6px",borderRadius:"4px",cursor:"pointer",color:eW?.isActive("blockquote")?"var(--accent-color)":"var(--text-secondary)",transition:"all 0.15s"},children:(0,a.jsx)(eA.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>eW?.chain().focus().toggleBulletList().run(),title:"无序列表",style:{background:eW?.isActive("bulletList")?"rgba(59, 130, 246, 0.1)":"transparent",border:"none",padding:"6px",borderRadius:"4px",cursor:"pointer",color:eW?.isActive("bulletList")?"var(--accent-color)":"var(--text-secondary)",transition:"all 0.15s"},children:(0,a.jsx)(H.A,{size:13})}),(0,a.jsx)("span",{style:{width:"1px",height:"14px",background:"var(--border-color)",margin:"0 4px"}}),(0,a.jsxs)("button",{onClick:()=>eW?.chain().focus().toggleCodeBlock().run(),title:"插入/取消 代码块",style:{background:eW?.isActive("codeBlock")?"rgba(59, 130, 246, 0.12)":"rgba(59, 130, 246, 0.08)",border:"1px solid rgba(59, 130, 246, 0.2)",padding:"4px 8px",borderRadius:"4px",cursor:"pointer",color:"var(--accent-color)",fontSize:"0.7rem",display:"flex",alignItems:"center",gap:"4px",transition:"all 0.15s"},children:[(0,a.jsx)(eR.A,{size:12}),"代码块"]})]}),(0,a.jsx)("div",{style:{flex:1,width:"100%",padding:"12px 32px",background:"transparent",color:"var(--text-primary)",fontFamily:"var(--font-sans)",outline:"none",overflowY:"auto"},children:(0,a.jsx)(es.$Z,{editor:eW})})]}),"write"!==x&&(0,a.jsx)("div",{style:{flex:1,padding:"24px 32px",overflowY:"auto",background:"transparent",transition:"all 0.2s"},children:(0,a.jsx)("div",{style:{maxWidth:"800px",margin:"0 auto"},children:(e=>{if(!e)return(0,a.jsx)("p",{style:{color:"var(--text-muted)",fontStyle:"italic"},children:"空内容"});let r=[],t="",s=!1,o="javascript",n=e.split("\n");for(let e=0;e<n.length;e++){let i=n[e];if(i.trim().startsWith("```")){if(s){let n=t,i=o,l=`code_${e}`;r.push((0,a.jsxs)("div",{style:{position:"relative",margin:"16px 0",borderRadius:"8px",overflow:"hidden",border:"1px solid var(--code-border)"},children:[(0,a.jsxs)("div",{style:{background:"var(--code-header-bg)",padding:"6px 12px",fontSize:"0.75rem",color:"var(--text-secondary)",display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:"1px solid var(--code-border)"},children:[(0,a.jsx)("span",{style:{fontWeight:600,fontFamily:"var(--font-mono)"},children:i.toUpperCase()}),(0,a.jsxs)("button",{onClick:()=>eq(n,l),style:{background:"transparent",border:"none",color:ee===l?"var(--success-color)":"var(--text-secondary)",cursor:"pointer",fontSize:"0.75rem",display:"flex",alignItems:"center",gap:"4px"},children:[(0,a.jsx)(ev.A,{size:12}),ee===l?"已复制":"复制"]})]}),(0,a.jsx)("pre",{style:{margin:0,padding:"16px",background:"var(--code-pre-bg)",overflowX:"auto"},children:(0,a.jsx)("code",{className:`language-${i}`,children:n})})]},l)),t="",s=!1}else s=!0,o=i.trim().substring(3).trim()||"javascript";continue}if(s)t+=(t?"\n":"")+i;else{let t=i,s=!1;t.endsWith("\\")&&(t=t.slice(0,-1),s=!0);let o=t.trim();if(o.startsWith("# "))r.push((0,a.jsx)("h2",{id:`toc-${e}`,style:{fontSize:"1.6rem",fontWeight:700,margin:"24px 0 12px",letterSpacing:"-0.02em",borderBottom:"1px solid var(--border-color)",paddingBottom:"6px"},children:o.substring(2)},e));else if(o.startsWith("## "))r.push((0,a.jsx)("h3",{id:`toc-${e}`,style:{fontSize:"1.3rem",fontWeight:600,margin:"20px 0 10px",letterSpacing:"-0.015em"},children:o.substring(3)},e));else if(o.startsWith("### "))r.push((0,a.jsx)("h4",{id:`toc-${e}`,style:{fontSize:"1.1rem",fontWeight:600,margin:"16px 0 8px"},children:o.substring(4)},e));else if(o.startsWith("#### "))r.push((0,a.jsx)("h5",{id:`toc-${e}`,style:{fontSize:"0.95rem",fontWeight:600,margin:"14px 0 6px"},children:o.substring(5)},e));else if(o.startsWith("> "))r.push((0,a.jsx)("blockquote",{style:{borderLeft:"4px style var(--accent-color)",borderLeftStyle:"solid",background:"rgba(59, 130, 246, 0.05)",padding:"12px 16px",borderRadius:"0 8px 8px 0",color:"var(--text-primary)",margin:"16px 0",fontStyle:"italic"},children:o.substring(2)},e));else if(o.startsWith("- ")||o.startsWith("* "))r.push((0,a.jsxs)("li",{style:{marginLeft:"24px",listStyleType:"disc",marginTop:"4px",marginBottom:"4px",fontSize:"0.95rem"},children:[o.substring(2),s&&(0,a.jsx)("br",{})]},e));else if(""===t)r.push((0,a.jsx)("div",{style:{height:"8px"}},e));else{let o=t;if(t.includes("**")){let e,r=/\*\*(.*?)\*\*/g,s=[],n=0,i=0;for(;null!==(e=r.exec(t));)e.index>n&&s.push(t.substring(n,e.index)),s.push((0,a.jsx)("strong",{style:{fontWeight:700,color:"var(--text-primary)"},children:e[1]},i++)),n=r.lastIndex;n<t.length&&s.push(t.substring(n)),o=s.length>0?s:o}r.push((0,a.jsxs)("p",{style:{lineHeight:1.7,fontSize:"0.95rem",margin:"8px 0",color:"var(--text-primary)",wordBreak:"break-word"},children:[o,s&&(0,a.jsx)("br",{})]},e))}}}return(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:r})})(N)})}),(0,a.jsxs)("div",{className:`kb-toc-container ${I?"":"collapsed"}`,children:[(0,a.jsxs)("div",{className:"kb-toc-header",children:[(0,a.jsx)("span",{children:"文档大纲"}),(0,a.jsx)("button",{onClick:T,style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",display:"flex",alignItems:"center"},children:(0,a.jsx)(ew.A,{size:14})})]}),(0,a.jsx)("div",{className:"kb-toc-list",children:0===eB(N).length?(0,a.jsx)("div",{style:{padding:"24px 8px",textAlign:"center",color:"var(--text-muted)",fontSize:"0.72rem",fontStyle:"italic"},children:"暂无标题大纲"}):eB(N).map((e,r)=>(0,a.jsx)("div",{onClick:()=>((e,r)=>{let t=document.getElementById(e);if(t)return void t.scrollIntoView({behavior:"smooth",block:"start"});let a=document.querySelector(".ProseMirror");if(a){let e=Array.from(a.querySelectorAll("h1, h2, h3, h4, h5")).find(e=>e.textContent?.trim()===r);e&&e.scrollIntoView({behavior:"smooth",block:"start"})}})(e.id,e.text),className:`kb-toc-item level-${e.level}`,title:e.text,children:e.text},r))})]})]})]}):(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",padding:"40px",opacity:.6},children:[(0,a.jsx)(eg.A,{size:48,style:{color:"var(--text-muted)",marginBottom:"16px"}}),(0,a.jsx)("h3",{style:{fontSize:"1rem",color:"var(--text-secondary)",marginBottom:"8px"},children:"欢迎来到局域网知识协作文档"}),(0,a.jsx)("p",{style:{fontSize:"0.8rem",textAlign:"center",maxWidth:"300px",lineHeight:1.5},children:"点击左侧的“新建”按钮,或者选择已有文档,即可实现类似飞书的去中心化局域网协作。"})]})}),(0,a.jsx)("style",{children:`
2
+ @keyframes spin {
3
+ 0% { transform: rotate(0deg); }
4
+ 100% { transform: rotate(360deg); }
5
+ }
6
+ @keyframes slideUp {
7
+ 0% { transform: translateY(12px); opacity: 0; }
8
+ 100% { transform: translateY(0); opacity: 1; }
9
+ }
10
+ @keyframes pulse {
11
+ 0% { transform: scale(1); opacity: 0.8; }
12
+ 50% { transform: scale(1.05); opacity: 1; }
13
+ 100% { transform: scale(1); opacity: 0.8; }
14
+ }
15
+ `})]})};var eE=t(7038),eB=t(6310),eF=t(7236),eL=t(6323),eO=t(9377),eP=t(2880),e_=t(3029),eU=t(7946);function eH(){let{peers:e,self:r,isConnected:t,updateProfile:l,refreshPeers:d}=function(){let[e,r]=(0,s.useState)([]),[t,a]=(0,s.useState)(null),[i,l]=(0,s.useState)(!1),d=(0,s.useRef)(null),c=(0,s.useRef)(null);(0,s.useEffect)(()=>{c.current=t},[t]);let p=async()=>{try{let e="",r="局域网伙伴",t="avatar-1",s=n();(e=localStorage.getItem("share_home_client_id")||"")||(e=`peer_web_${Math.random().toString(36).substring(2,11)}`,localStorage.setItem("share_home_client_id",e)),r=localStorage.getItem("share_home_nickname")||"局域网伙伴",t=localStorage.getItem("share_home_avatar")||"avatar-1";let i=await fetch(`/api/init?clientId=${e}&nickname=${encodeURIComponent(r)}&avatar=${t}&os=${s}`),d=await i.json();if("ready"===d.status){let e={...d.self,isSelf:!0,lastSeen:Date.now()};a(e),l(o.getInstance().isConnected()),x(e.id)}}catch(e){console.error("[useMdnsPeers] 宿主服务启动失败,将在 3 秒后重试:",e),d.current=setTimeout(p,3e3)}},x=async e=>{let t=e||c.current?.id;if(t)try{let e=await fetch("/api/peers"),a=await e.json();if(a.peers){let e=a.peers.filter(e=>e.id!==t);r(e)}}catch(e){console.error("[useMdnsPeers] 拉取设备列表失败:",e)}},g=async(e,r)=>{if(!t)return!1;try{let t=localStorage.getItem("share_home_client_id")||"",s=n(),o=await fetch("/api/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({nickname:e,avatar:r,clientId:t,os:s})});if((await o.json()).success)return a(t=>t?{...t,nickname:e,avatar:r}:null),localStorage.setItem("share_home_nickname",e),localStorage.setItem("share_home_avatar",r),console.log("[useMdnsPeers] 个人资料更新广播成功!"),x(),!0}catch(e){console.error("[useMdnsPeers] 个人资料更新失败:",e)}return!1};return(0,s.useEffect)(()=>{p();let e=o.getInstance(),t=e.subscribe("system:connected",()=>{l(!0),x()}),a=e.subscribe("system:disconnected",()=>{l(!1)}),s=e.subscribe("peers:update",e=>{let t=c.current;t?r(e.filter(e=>e.id!==t.id)):r(e)});return()=>{t(),a(),s(),d.current&&clearTimeout(d.current)}},[]),{peers:e,self:t,isConnected:i,updateProfile:g,refreshPeers:()=>x()}}(),[x,g]=(0,s.useState)(!1);(0,s.useEffect)(()=>{g("true"===localStorage.getItem("sidebar_collapsed"))},[]);let{tasks:b,incomingRequest:m,sendFile:u,acceptRequest:v,rejectRequest:j,cancelTransfer:w,uploadPublicFile:k,deleteTask:S,clearHistory:N}=function(e){let r=e?.id,t=e?.nickname,a=e?.os||"Windows",n=e?.avatar||"avatar-1",[l,d]=(0,s.useState)({}),[c,p]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=o.getInstance(),r=e.subscribe("transfer:request",e=>{p(e)}),t=e.subscribe("transfer:progress",e=>{d(r=>({...r,[e.id]:e})),("failed"===e.status||"completed"===e.status||"rejected"===e.status)&&p(r=>r&&r.taskId===e.id?null:r)}),a=e.subscribe("transfer:reject",e=>{d(r=>{let t=r[e.taskId];return t?{...r,[e.taskId]:{...t,status:"rejected",speed:0}}:r}),p(r=>r&&r.taskId===e.taskId?null:r)}),s=e.subscribe("transfer:complete",e=>{d(r=>{let t=r[e.taskId];return t?{...r,[e.taskId]:{...t,status:"completed",progress:100,speed:0}}:r})});return()=>{r(),t(),a(),s()}},[]),(0,s.useEffect)(()=>{r&&(async()=>{try{let e=await fetch(`/api/transfer/tasks?clientId=${encodeURIComponent(r)}`),t=await e.json();if(t.success&&t.tasks){let e={};t.tasks.forEach(t=>{e[t.id]={id:t.id,fileName:t.fileName,fileSize:t.fileSize,transferredBytes:"completed"===t.status?t.fileSize:0,progress:100*("completed"===t.status),speed:0,type:t.senderId===r?"send":"receive",status:t.status,peerId:t.senderId===r?t.peerId:t.senderId,peerName:t.senderId===r?t.peerName:t.senderName,startedAt:t.startedAt||Date.now(),error:"rejected"===t.status?"对方已拒绝接收该文件":void 0,senderId:t.senderId,senderName:t.senderName,senderIp:t.senderIp,senderOS:t.senderOS,senderAvatar:t.senderAvatar,receiverId:t.peerId||t.receiverId,receiverName:t.peerName||t.receiverName,receiverIp:t.receiverIp,receiverOS:t.receiverOS,receiverAvatar:t.receiverAvatar},t.peerId===r&&"pending"===t.status&&p({taskId:t.id,senderId:t.senderId,senderName:t.senderName,fileName:t.fileName,fileSize:t.fileSize,downloadUrl:t.downloadUrl})}),d(r=>({...e,...r}))}}catch(e){console.error("[useFileTransfer] 拉取互传历史任务失败:",e)}})()},[r]);let x=async()=>{if(!c)return;let{taskId:e,fileName:r,fileSize:t,downloadUrl:a,senderId:s,senderName:o}=c,n={id:e,fileName:r,fileSize:t,transferredBytes:0,progress:0,speed:0,type:"receive",status:"transferring",peerId:s,peerName:o,startedAt:Date.now()};d(r=>({...r,[e]:n})),p(null);try{console.log(`[useFileTransfer] 正在为对等端拉起浏览器物理落地流式下载: ${r}`);let e=a;try{let r=new URL(a);r.host=window.location.host,e=r.toString(),console.log(`[useFileTransfer] [局域网地址自愈] 将下载地址重定向至真实物理主机: ${e}`)}catch(e){console.error("[useFileTransfer] 自愈转换 downloadUrl 失败:",e)}let t=document.createElement("a");t.href=e,t.download=r,document.body.appendChild(t),t.click(),document.body.removeChild(t)}catch(r){console.error("[useFileTransfer] 启动浏览器附件流下载异常:",r),d(t=>({...t,[e]:{...t[e],status:"failed",error:r.message}}))}},g=async()=>{if(c){o.getInstance().emit("transfer:reject",{taskId:c.taskId});try{await fetch("/api/transfer/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:c.taskId,action:"reject"})})}catch(e){console.error("[useFileTransfer] 发送物理拒绝状态落盘失败:",e)}}p(null)};return{tasks:l,incomingRequest:c,sendFile:async(s,l)=>{if(!r||!t)return void alert("请等待系统初始化完毕!");let c=s.id,p=s.nickname,x=s.ip,g=s.os||"Windows",b=s.avatar||"avatar-1",m=i(),u=Math.ceil(l.size/0xa00000),f={id:m,fileName:l.name,fileSize:l.size,transferredBytes:0,progress:0,speed:0,type:"send",status:"pending",peerId:c,peerName:p,startedAt:Date.now(),senderId:r,senderName:t,senderIp:e?.ip||window.location.hostname||"127.0.0.1",senderOS:a,senderAvatar:n,receiverId:c,receiverName:p,receiverIp:x,receiverOS:g,receiverAvatar:b};d(e=>({...e,[m]:f})),console.log(`[useFileTransfer] 正在以本机高带宽暂存文件: ${l.name}, 总共 ${u} 分片`);let h=!0;for(let s=0;s<u;s++){let o=0xa00000*s,i=Math.min(o+0xa00000,l.size),f=l.slice(o,i);d(e=>{let r=e[m];return r?{...e,[m]:{...r,status:"transferring",progress:Math.round((s+1)/u*100),speed:0x3200000}}:e});try{let o=await f.arrayBuffer(),i=e?.ip||window.location.hostname||"127.0.0.1",d=`http://${i}:3000/api/transfer/download?taskId=${m}`,h=await fetch(`/api/transfer/prepare?taskId=${m}&chunkIndex=${s}&totalChunks=${u}&fileName=${encodeURIComponent(l.name)}&fileSize=${l.size}&targetClientId=${encodeURIComponent(c)}&targetPeerName=${encodeURIComponent(p)}&senderId=${encodeURIComponent(r)}&senderName=${encodeURIComponent(t)}&downloadUrl=${encodeURIComponent(d)}&senderIp=${encodeURIComponent(i)}&senderOS=${encodeURIComponent(a)}&senderAvatar=${encodeURIComponent(n)}&receiverIp=${encodeURIComponent(x)}&receiverOS=${encodeURIComponent(g)}&receiverAvatar=${encodeURIComponent(b)}`,{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:o}),y=await h.json();if(!y.success)throw Error(y.error||"分片写入失败")}catch(e){console.error(`[useFileTransfer] 分片 ${s} 投递失败:`,e),h=!1;break}}if(!h)return void d(e=>({...e,[m]:{...e[m],status:"failed",error:"本机文件暂存合并失败"}}));let y=window.location.hostname,v=`http://${y}:3000/api/transfer/download?taskId=${m}`;console.log("[useFileTransfer] 本地暂存合并完毕!正在向对方投递接收申请...");try{if(o.getInstance().emit("transfer:request",{targetClientId:c,taskId:m,senderId:r,senderName:t,fileName:l.name,fileSize:l.size,downloadUrl:v}))d(e=>({...e,[m]:{...e[m],status:"pending",speed:0}}));else throw Error("WebSocket 信道未就绪或连接断开,请刷新页面重试")}catch(e){console.error("[useFileTransfer] 跨机投递握手失败:",e),d(r=>({...r,[m]:{...r[m],status:"failed",error:`投递握手失败: ${e.message}`}}))}},acceptRequest:x,rejectRequest:g,cancelTransfer:async e=>{d(r=>{let t=r[e];return t?{...r,[e]:{...t,status:"failed",speed:0}}:r});try{await fetch("/api/transfer/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:e,action:"cancel"})})}catch(e){console.error("[useFileTransfer] 取消物理任务传输失败:",e)}},uploadPublicFile:async(e,r,t)=>{let a=i(),s=Math.ceil(e.size/0xa00000);console.log(`[useFileTransfer] 正在以上传共享文件: ${e.name}, 总共 ${s} 分片, 设备: ${r}`);let o=!0;for(let n=0;n<s;n++){let i=0xa00000*n,l=Math.min(i+0xa00000,e.size),d=e.slice(i,l),c=Math.round((n+1)/s*100);t&&t(c);try{let t=await d.arrayBuffer(),o=await fetch(`/api/transfer/prepare?taskId=${a}&chunkIndex=${n}&totalChunks=${s}&fileName=${encodeURIComponent(e.name)}&fileSize=${e.size}&isPublic=true&deviceInfo=${encodeURIComponent(r)}`,{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:t}),i=await o.json();if(!i.success)throw Error(i.error||"分片写入失败")}catch(e){console.error(`[useFileTransfer] 公共分片 ${n} 投递失败:`,e),o=!1;break}}return o},deleteTask:async e=>{try{let r=await fetch("/api/transfer/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:e,action:"delete"})}),t=await r.json();t.success?d(r=>{let t={...r};return delete t[e],t}):console.error("[useFileTransfer] 删除物理记录失败:",t.error)}catch(e){console.error("[useFileTransfer] 删除物理记录发生网络异常:",e)}},clearHistory:async()=>{if(r)try{let e=await fetch("/api/transfer/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",clientId:r})}),t=await e.json();t.success?d(e=>{let r={...e};return Object.keys(r).forEach(e=>{let t=r[e];t&&("completed"===t.status||"failed"===t.status||"rejected"===t.status)&&delete r[e]}),r}):console.error("[useFileTransfer] 清空物理记录失败:",t.error)}catch(e){console.error("[useFileTransfer] 清空物理记录发生网络异常:",e)}}}}(r),[z,I]=(0,s.useState)("transfer"),[C,A]=(0,s.useState)("dark"),[R,W]=(0,s.useState)(!1),[D,M]=(0,s.useState)(0),E=(0,s.useRef)(!0);(0,s.useEffect)(()=>{let e=setTimeout(()=>{E.current=!1},1e3);return()=>clearTimeout(e)},[]);let[B,F]=(0,s.useState)(!1),[L,_]=(0,s.useState)(""),[U,H]=(0,s.useState)("avatar-1"),[q,J]=(0,s.useState)(""),[X,V]=(0,s.useState)(""),[Q,ee]=(0,s.useState)("idle"),[er,ea]=(0,s.useState)("");(0,s.useEffect)(()=>{{let e=localStorage.getItem("theme")||"dark";A(e),document.documentElement.setAttribute("data-theme",e)}},[]),(0,s.useEffect)(()=>{let e=Object.values(b);if(E.current)return void M(e.length);if(e.length>D){W(!0);let r=setTimeout(()=>{W(!1)},3e3);return M(e.length),()=>clearTimeout(r)}e.length!==D&&M(e.length)},[b,D]);let es=async()=>{try{let e=await fetch("/api/config"),r=await e.json();r.success&&(J(r.storagePath),V(r.absolutePath))}catch(e){console.error("[Settings] 获取存储路径配置失败:",e)}};(0,s.useEffect)(()=>{es()},[]);let eo=async()=>{L.trim()&&await l(L.trim(),U)&&F(!1)},en=async()=>{if(q.trim()){ee("saving");try{let e=await fetch("/api/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({storagePath:q.trim()})}),r=await e.json();r.success?(J(r.storagePath),V(r.absolutePath),ee("success"),setTimeout(()=>ee("idle"),3e3)):(ee("error"),ea(r.error||"路径无效或系统没有对该路径的写权限"))}catch(e){ee("error"),ea(e.message||"配置提交异常")}}},ei=Object.values(b).filter(e=>"transferring"===e.status||"pending"===e.status).length;return Object.values(b).length,(0,a.jsxs)("div",{className:"app-container",children:[(0,a.jsxs)("aside",{className:`sidebar-container ${x?"collapsed":""}`,children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"sidebar-logo-group",style:{display:"flex",flexDirection:x?"column":"row",alignItems:"center",justifyContent:x?"center":"space-between",gap:x?"12px":"0px",padding:x?"20px 8px":"24px 20px",borderBottom:"1px solid var(--border-color)",position:"relative"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px",overflow:"hidden",justifyContent:"center"},children:[(0,a.jsx)("div",{style:{width:"32px",height:"32px",borderRadius:"6px",background:"var(--accent-glow)",display:"flex",alignItems:"center",justifyContent:"center",border:"1px solid rgba(37, 99, 235, 0.3)",boxShadow:"var(--shadow-sm)",flexShrink:0},children:(0,a.jsx)(f.A,{size:16,style:{color:"var(--accent-color)"}})}),!x&&(0,a.jsxs)("div",{className:"sidebar-title-group",style:{animation:"fadeIn 0.15s ease-out forwards"},children:[(0,a.jsx)("h1",{style:{fontSize:"1rem",fontWeight:700,letterSpacing:"-0.02em",color:"var(--text-primary)",whiteSpace:"nowrap"},children:"Share Home"}),(0,a.jsx)("p",{style:{fontSize:"0.68rem",color:"var(--text-secondary)",whiteSpace:"nowrap"},children:"局域网协作平台"})]})]}),(0,a.jsx)("button",{onClick:()=>{let e=!x;g(e),localStorage.setItem("sidebar_collapsed",String(e))},title:x?"展开导航":"收起导航",style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",padding:"6px",borderRadius:"var(--radius-sm)",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s",marginTop:x?"8px":"0px",width:x?"32px":"auto",height:x?"32px":"auto",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.background="rgba(128, 128, 128, 0.08)",e.currentTarget.style.color="var(--text-primary)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-secondary)"},children:x?(0,a.jsx)(ep.A,{size:14}):(0,a.jsx)(eE.A,{size:14})})]}),(0,a.jsxs)("nav",{className:"sidebar-nav",style:{padding:"16px 12px",display:"flex",flexDirection:"column",gap:"4px"},children:[(0,a.jsxs)("button",{onClick:()=>I("transfer"),className:"sidebar-nav-btn",style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"10px 14px",background:"transfer"===z?"rgba(128, 128, 128, 0.08)":"transparent",border:"transfer"===z?"1px solid var(--border-color-hover)":"1px solid transparent",color:"transfer"===z?"var(--text-primary)":"var(--text-secondary)",borderRadius:"var(--radius-sm)",fontSize:"0.85rem",fontWeight:"transfer"===z?600:500,cursor:"pointer",textAlign:"left",transition:"all 0.15s"},onMouseEnter:e=>{"transfer"!==z&&(e.currentTarget.style.background="rgba(128, 128, 128, 0.04)")},onMouseLeave:e=>{"transfer"!==z&&(e.currentTarget.style.background="transparent")},children:[(0,a.jsx)(eB.A,{size:15,style:{color:"transfer"===z?"var(--accent-color)":"var(--text-secondary)",flexShrink:0}}),(0,a.jsx)("span",{className:"sidebar-nav-text",children:"极速文件流"})]}),(0,a.jsxs)("button",{onClick:()=>I("share"),className:"sidebar-nav-btn",style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"10px 14px",background:"share"===z?"rgba(128, 128, 128, 0.08)":"transparent",border:"share"===z?"1px solid var(--border-color-hover)":"1px solid transparent",color:"share"===z?"var(--text-primary)":"var(--text-secondary)",borderRadius:"var(--radius-sm)",fontSize:"0.85rem",fontWeight:"share"===z?600:500,cursor:"pointer",textAlign:"left",transition:"all 0.15s"},onMouseEnter:e=>{"share"!==z&&(e.currentTarget.style.background="rgba(128, 128, 128, 0.04)")},onMouseLeave:e=>{"share"!==z&&(e.currentTarget.style.background="transparent")},children:[(0,a.jsx)(P.A,{size:15,style:{color:"share"===z?"var(--accent-color)":"var(--text-secondary)",flexShrink:0}}),(0,a.jsx)("span",{className:"sidebar-nav-text",children:"共享中心"})]}),(0,a.jsxs)("button",{onClick:()=>I("knowledge"),className:"sidebar-nav-btn",style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"10px 14px",background:"knowledge"===z?"rgba(128, 128, 128, 0.08)":"transparent",border:"knowledge"===z?"1px solid var(--border-color-hover)":"1px solid transparent",color:"knowledge"===z?"var(--text-primary)":"var(--text-secondary)",borderRadius:"var(--radius-sm)",fontSize:"0.85rem",fontWeight:"knowledge"===z?600:500,cursor:"pointer",textAlign:"left",transition:"all 0.15s"},onMouseEnter:e=>{"knowledge"!==z&&(e.currentTarget.style.background="rgba(128, 128, 128, 0.04)")},onMouseLeave:e=>{"knowledge"!==z&&(e.currentTarget.style.background="transparent")},children:[(0,a.jsx)(eg.A,{size:15,style:{color:"knowledge"===z?"var(--accent-color)":"var(--text-secondary)",flexShrink:0}}),(0,a.jsx)("span",{className:"sidebar-nav-text",children:"云文档"})]}),(0,a.jsxs)("button",{onClick:()=>I("history"),className:"sidebar-nav-btn",style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"10px 14px",background:"history"===z?"rgba(128, 128, 128, 0.08)":"transparent",border:"history"===z?"1px solid var(--border-color-hover)":"1px solid transparent",color:"history"===z?"var(--text-primary)":"var(--text-secondary)",borderRadius:"var(--radius-sm)",fontSize:"0.85rem",fontWeight:"history"===z?600:500,cursor:"pointer",textAlign:"left",transition:"all 0.15s"},onMouseEnter:e=>{"history"!==z&&(e.currentTarget.style.background="rgba(128, 128, 128, 0.04)")},onMouseLeave:e=>{"history"!==z&&(e.currentTarget.style.background="transparent")},children:[(0,a.jsx)(Z.A,{size:15,style:{color:"history"===z?"var(--accent-color)":"var(--text-secondary)",flexShrink:0}}),(0,a.jsx)("span",{className:"sidebar-nav-text",children:"传输记录"})]}),(0,a.jsxs)("button",{onClick:()=>I("settings"),className:"sidebar-nav-btn",style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"10px 14px",background:"settings"===z?"rgba(128, 128, 128, 0.08)":"transparent",border:"settings"===z?"1px solid var(--border-color-hover)":"1px solid transparent",color:"settings"===z?"var(--text-primary)":"var(--text-secondary)",borderRadius:"var(--radius-sm)",fontSize:"0.85rem",fontWeight:"settings"===z?600:500,cursor:"pointer",textAlign:"left",transition:"all 0.15s"},onMouseEnter:e=>{"settings"!==z&&(e.currentTarget.style.background="rgba(128, 128, 128, 0.04)")},onMouseLeave:e=>{"settings"!==z&&(e.currentTarget.style.background="transparent")},children:[(0,a.jsx)(eF.A,{size:15,style:{color:"settings"===z?"var(--accent-color)":"var(--text-secondary)",flexShrink:0}}),(0,a.jsx)("span",{className:"sidebar-nav-text",children:"系统配置"})]})]})]}),(0,a.jsx)("div",{style:{padding:"16px",borderTop:"1px solid var(--border-color)"},children:r&&(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,a.jsx)("div",{style:{flex:1,minWidth:0},children:B?(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"8px",background:"rgba(128, 128, 128, 0.04)",border:"1px solid var(--border-color)",padding:"10px",borderRadius:"var(--radius-sm)"},children:[(0,a.jsx)("input",{type:"text",value:L,onChange:e=>_(e.target.value),style:{background:"var(--bg-app)",border:"1px solid var(--border-color)",color:"var(--text-primary)",fontSize:"0.8rem",padding:"4px 6px",borderRadius:"4px",outline:"none",width:"100%"},maxLength:10,placeholder:"昵称"}),(0,a.jsxs)("div",{style:{display:"flex",gap:"6px",alignItems:"center"},children:[(0,a.jsxs)("select",{value:U,onChange:e=>H(e.target.value),style:{background:"var(--bg-app)",color:"var(--text-primary)",border:"1px solid var(--border-color)",borderRadius:"4px",fontSize:"0.75rem",outline:"none",padding:"3px",flex:1},children:[(0,a.jsx)("option",{value:"avatar-1",children:"笔记本"}),(0,a.jsx)("option",{value:"avatar-2",children:"显示器"}),(0,a.jsx)("option",{value:"avatar-3",children:"手机"})]}),(0,a.jsxs)("button",{onClick:eo,style:{background:"var(--accent-color)",border:"none",color:"#ffffff",padding:"4px 8px",borderRadius:"4px",cursor:"pointer",fontSize:"0.75rem",display:"flex",alignItems:"center",gap:"2px"},children:[(0,a.jsx)(eL.A,{size:12}),"存"]})]})]}):(0,a.jsxs)("div",{onClick:()=>{r&&(_(r.nickname),H(r.avatar),F(!0))},className:"sidebar-profile-card",style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer",background:"rgba(128, 128, 128, 0.04)",border:"1px solid var(--border-color)",padding:"8px 10px",borderRadius:"var(--radius-sm)",transition:"all 0.2s",overflow:"hidden"},onMouseEnter:e=>e.currentTarget.style.borderColor="var(--border-color-hover)",onMouseLeave:e=>e.currentTarget.style.borderColor="var(--border-color)",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px",overflow:"hidden",minWidth:0},children:[(0,a.jsx)(p.A,{size:13,style:{color:"var(--accent-color)",flexShrink:0}}),(0,a.jsx)("span",{className:"sidebar-profile-details",style:{fontSize:"0.78rem",fontWeight:600,color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.nickname})]}),(0,a.jsx)(ez.A,{size:11,className:"sidebar-profile-edit",style:{color:"var(--text-muted)",flexShrink:0}})]})}),!B&&(0,a.jsx)("button",{onClick:()=>{let e="dark"===C?"light":"dark";A(e),localStorage.setItem("theme",e),document.documentElement.setAttribute("data-theme",e)},title:"dark"===C?"切换至亮色模式":"切换至暗色模式",style:{width:"36px",height:"36px",borderRadius:"var(--radius-sm)",background:"rgba(128, 128, 128, 0.04)",border:"1px solid var(--border-color)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s",color:"var(--text-primary)",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--border-color-hover)",e.currentTarget.style.background="rgba(128, 128, 128, 0.08)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border-color)",e.currentTarget.style.background="rgba(128, 128, 128, 0.04)"},children:"dark"===C?(0,a.jsx)(eO.A,{size:15,style:{color:"#f59e0b"}}):(0,a.jsx)(eP.A,{size:15,style:{color:"#6366f1"}})})]})})]}),(0,a.jsxs)("main",{className:"workspace-container fade-in",children:[(0,a.jsxs)("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:"1px solid var(--border-color)",paddingBottom:"16px"},children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h2",{style:{fontSize:"1.1rem",fontWeight:700,color:"var(--text-primary)",letterSpacing:"-0.01em"},children:["transfer"===z&&"文件传输工作台","share"===z&&"公共共享中心","knowledge"===z&&"知识协作云文档","settings"===z&&"全局系统配置"]}),(0,a.jsxs)("p",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"2px"},children:["transfer"===z&&"安全、无压缩的局域网零阻碍点对点极速传输","share"===z&&"长效、大文件零压缩合并存储的局域网公共共享空间","knowledge"===z&&"支持富文本与代码的局域网去中心化物理落盘云文档","settings"===z&&"修改默认存储路径以及查看本端硬件和网络特征"]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[(0,a.jsxs)("span",{style:{fontSize:"0.7rem",color:t?"var(--success-color)":"var(--text-muted)",background:t?"var(--success-glow)":"transparent",border:`1px solid ${t?"rgba(16, 185, 129, 0.2)":"var(--border-color)"}`,padding:"4px 10px",borderRadius:"20px",fontWeight:600,display:"flex",alignItems:"center",gap:"6px"},children:[(0,a.jsx)("span",{style:{width:"6px",height:"6px",borderRadius:"50%",background:t?"var(--success-color)":"var(--text-muted)",display:"inline-block"}}),t?"局域网信道在线":"离线状态"]}),(0,a.jsxs)("button",{onClick:()=>W(!R),style:{position:"relative",display:"inline-flex",alignItems:"center",gap:"8px",padding:"8px 14px",background:"rgba(128, 128, 128, 0.04)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-sm)",color:"var(--text-primary)",fontSize:"0.82rem",fontWeight:500,cursor:"pointer",transition:"all 0.2s",boxShadow:ei>0?"0 0 12px var(--accent-glow)":"none"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(128, 128, 128, 0.08)",e.currentTarget.style.borderColor="var(--border-color-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(128, 128, 128, 0.04)",e.currentTarget.style.borderColor="var(--border-color)"},children:[(0,a.jsx)(Y.A,{size:14,style:{color:ei>0?"var(--accent-color)":"var(--text-secondary)"}}),(0,a.jsx)("span",{children:"传输任务"}),ei>0&&(0,a.jsx)("span",{style:{minWidth:"18px",height:"18px",borderRadius:"9px",background:"var(--accent-color)",color:"#ffffff",fontSize:"0.68rem",fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",padding:"0 5px"},children:ei})]}),(0,a.jsxs)(y,{variant:"secondary",onClick:d,style:{padding:"8px 12px"},children:[(0,a.jsx)($.A,{size:14}),"刷新雷达"]})]})]}),(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:["transfer"===z&&(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"24px"},className:"fade-in",children:(0,a.jsx)(h,{peers:e,self:r,onSendFile:(e,r)=>{u(e,r)}})}),"share"===z&&(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"24px"},className:"fade-in",children:(0,a.jsx)(G,{uploadPublicFile:k})}),"knowledge"===z&&(0,a.jsx)("div",{className:"fade-in",children:(0,a.jsx)(e$,{peers:e,self:r})}),"history"===z&&(0,a.jsx)("div",{className:"fade-in",children:(0,a.jsx)(et,{tasks:b,self:r,onDeleteTask:S,onClearHistory:N})}),"settings"===z&&(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"24px",maxWidth:"800px"},className:"fade-in",children:[(0,a.jsx)(c,{children:(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[(0,a.jsx)("div",{style:{width:"28px",height:"28px",borderRadius:"6px",background:"rgba(37, 99, 235, 0.08)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,a.jsx)(P.A,{size:14,style:{color:"var(--accent-color)"}})}),(0,a.jsx)("h3",{style:{fontSize:"0.95rem",fontWeight:600},children:"默认文件及文档存储目录"})]}),(0,a.jsx)("p",{style:{fontSize:"0.78rem",color:"var(--text-secondary)",lineHeight:1.5},children:"局域网中收到的所有大文件、文本文件,以及你创建/同步的飞书知识库 Markdown 云文档,都会实时存放于此物理目录中。支持绝对路径或以 `./` 开头的根相对路径。"}),(0,a.jsxs)("div",{style:{display:"flex",gap:"12px",marginTop:"4px"},children:[(0,a.jsx)("input",{type:"text",value:q,onChange:e=>J(e.target.value),placeholder:"例如: ./storage",style:{flex:1,background:"rgba(0, 0, 0, 0.2)",border:"1px solid var(--border-color)",borderRadius:"var(--radius-sm)",padding:"10px 16px",color:"var(--text-primary)",fontSize:"0.85rem",outline:"none",transition:"border-color 0.2s"},onFocus:e=>e.target.style.borderColor="var(--accent-color)",onBlur:e=>e.target.style.borderColor="var(--border-color)"}),(0,a.jsx)(y,{onClick:en,disabled:"saving"===Q||!q.trim(),children:"saving"===Q?"正在校验保存...":"应用修改"})]}),"success"===Q&&(0,a.jsxs)("div",{style:{padding:"10px 14px",background:"var(--success-glow)",border:"1px solid rgba(16, 185, 129, 0.15)",borderRadius:"var(--radius-sm)",fontSize:"0.75rem",color:"var(--success-color)",display:"flex",alignItems:"center",gap:"8px"},children:[(0,a.jsx)(eL.A,{size:14}),"存储路径校验通过,修改已成功持久化保存!"]}),"error"===Q&&(0,a.jsxs)("div",{style:{padding:"10px 14px",background:"rgba(239, 68, 68, 0.08)",border:"1px solid rgba(239, 68, 68, 0.15)",borderRadius:"var(--radius-sm)",fontSize:"0.75rem",color:"#f87171",display:"flex",alignItems:"center",gap:"8px"},children:[(0,a.jsx)(e_.A,{size:14}),"修改失败:",er]}),X&&(0,a.jsxs)("div",{style:{fontSize:"0.72rem",color:"var(--text-muted)",background:"rgba(255, 255, 255, 0.01)",padding:"10px 14px",borderRadius:"var(--radius-sm)",border:"1px dashed var(--border-color)",wordBreak:"break-all"},children:[(0,a.jsx)("strong",{children:"当前服务器绝对落盘路径:"})," ",X]})]})}),(0,a.jsx)(c,{children:(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[(0,a.jsx)("div",{style:{width:"28px",height:"28px",borderRadius:"6px",background:"rgba(37, 99, 235, 0.08)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,a.jsx)(O.A,{size:14,style:{color:"var(--accent-color)"}})}),(0,a.jsx)("h3",{style:{fontSize:"0.95rem",fontWeight:600},children:"本端局域网硬件参数"})]}),r&&(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:[(0,a.jsxs)("div",{style:{display:"flex",fontSize:"0.8rem",borderBottom:"1px solid var(--border-color)",paddingBottom:"8px"},children:[(0,a.jsx)("span",{style:{color:"var(--text-secondary)",width:"120px"},children:"设备标识 (ID)"}),(0,a.jsx)("span",{style:{color:"var(--text-primary)",fontFamily:"var(--font-mono)"},children:r.id})]}),(0,a.jsxs)("div",{style:{display:"flex",fontSize:"0.8rem",borderBottom:"1px solid var(--border-color)",paddingBottom:"8px"},children:[(0,a.jsx)("span",{style:{color:"var(--text-secondary)",width:"120px"},children:"局域网 IP 地址"}),(0,a.jsx)("span",{style:{color:"var(--text-primary)",fontFamily:"var(--font-mono)"},children:r.ip})]}),(0,a.jsxs)("div",{style:{display:"flex",fontSize:"0.8rem",borderBottom:"1px solid var(--border-color)",paddingBottom:"8px"},children:[(0,a.jsx)("span",{style:{color:"var(--text-secondary)",width:"120px"},children:"节点监听端口"}),(0,a.jsx)("span",{style:{color:"var(--text-primary)",fontFamily:"var(--font-mono)"},children:r.port})]}),(0,a.jsxs)("div",{style:{display:"flex",fontSize:"0.8rem"},children:[(0,a.jsx)("span",{style:{color:"var(--text-secondary)",width:"120px"},children:"系统默认服务"}),(0,a.jsxs)("span",{style:{color:"var(--text-primary)",display:"flex",alignItems:"center",gap:"6px"},children:[(0,a.jsx)(eU.A,{size:12,style:{color:"var(--accent-color)"}}),"Next.js Web 服务 (Active) \xb7 WebSocket 信道 (Active)"]})]})]})]})}),(0,a.jsx)(c,{children:(0,a.jsxs)("div",{style:{display:"flex",gap:"14px",alignItems:"flex-start"},children:[(0,a.jsx)(K.A,{size:16,style:{color:"var(--accent-color)",flexShrink:0,marginTop:"2px"}}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[(0,a.jsx)("h4",{style:{fontSize:"0.85rem",fontWeight:600},children:"去中心化网络提醒"}),(0,a.jsx)("p",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",lineHeight:1.5},children:"Share Home 依赖 mDNS 多播及去中心化点对点网络工作。请确保所有协作节点设备均连入同一局域网(或 Wi-Fi),且本端防火墙已开放相应的 WebSocket 及 HTTP 端口信道,即可获得最佳体验。"})]})]})})]})]})]}),(0,a.jsx)(T,{tasks:b,incomingRequest:m,onAccept:v,onReject:j,onCancel:w,isOpen:R,onClose:()=>W(!1)})]})}}},e=>{e.O(0,[317,276,284,649,829,148,358],()=>e(e.s=3371)),_N_E=e.O()}]);